Skip to main content
Skip table of contents

Hierarchy of Objects

The Hopstack platform follows a specific hierarchy in its data model. This is to ensure that every transaction against every entity can be tracked and no stray entries are made in the platform.

The hierarchy is explained below as follows:

Level 1: Warehouse

This is the topmost entity in our data model. This refers to any physical location from where fulfillment is performed. The warehouse can be referred to as the parent entity in the Hopstack platform. Every physical location in the world is a separate, single warehouse. There are very few situations in which multiple fulfillment locations can be combined into a single warehouse.

Level 2: Clients

In the context of prep centers, where the inventory and products do NOT belong to the warehouse operator, clients refer to any merchants that are performing fulfillment through the prep center. This distinction is created because all inventory in the warehouse belongs to each of the clients.

In the context of 3PLs and brands, where the inventory and products belong to the warehouse operator, the client is a secondary-level data identifier. We will always have a DEFAULT client that can be used to as a placeholder attribute. 3PLs and brands can also create multiple sub-brands as clients in case they want to maintain a deeper level of tracking.

Level 3: Products

Products refer to all the SKUs that are being fulfilled by the warehouse. All products belong to a client. There are typically two sources from where products get populated in the Hopstack system:

  • Marketplace integrations - Every marketplace integration such as Amazon, eBay, Shopify, etc. will pull in all the products associated with that integration.

  • Self-generated - Warehouse managers, merchants, or any user with access to the product management screen will be able to create product entries.

Every product-client-source relationship must be unique. This is illustrated with the following example:

Let's imagine you're selling books online. Every product will have the following inventory.

  • Product - This could be any book like "Harry Potter and the Philosopher's Stone".

  • Client - This could be any merchant selling products, like "John Doe".

  • Source - This is your marketplace, like “Amazon”, “Shopify”, etc.

In our database, we keep track of all these in a record, also known as product or SKU. A product could look like this:

  • Product 1: "John Doe" sells "Harry Potter and the Philosopher's Stone" on “Amazon”

  • Product 2: "John Doe" sells "Harry Potter and the Philosopher's Stone" on “Shopify”

Now, if we want every product-client-source entry to be unique in our database, it means we can't have two identical transactions.

Level 4: Inventory

Inventory refers to the actual count of the products that you have. Inventory can belong only to one product at a time. Inventory can be transferred from one product to another as long as they have the same SKU ID (ref: same products but different sources/marketplaces.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.