Skip to content
Log in

Fulfillment and inventory objects

On this page

This domain answers two separate questions: how much of something there is, and how it reaches the customer. Use this article to find the object you need before you query stock or configure shipping.

Stock is a quantity per location

There is no stock field on a product. A Stock Level record holds the quantity of one product at one Stock Location, so a product stocked in three places has three records.

That is the single most important fact in this domain, and it has two consequences:

  • To read inventory, query Stock Level, not Product2. Filter by location, or sum across the locations a store can sell from.
  • A store sells from the locations assigned to it. Store Stock Location makes a location available to a store and sets its priority, which is how one warehouse can serve several storefronts.

Stock changes through records rather than edits. Stock Adjustment logs a change and its reason, Manual Stock Adjustment is a batch of hand-entered corrections, and Stock Transfer moves stock between locations.

Fulfillment continues what the cart started

Delivery method is chosen on the cart, as a Cart Fulfillment. After checkout the work becomes a Fulfillment Item per order item and, for anything posted, a Shipment carrying the tracking details.

Where that work happens is routed by category. A product carries a fulfillment category, a Fulfillment Station is a physical place, and Fulfillment Category Station connects the two. Pick and pack lists follow those assignments.

Zones scope almost everything geographic

A Zone is a named area, built by adding countries, states, cities, or postcodes to it through four join objects. Zones are what Shipping Rates and taxes are scoped by, so a rate applies to a zone rather than to a list of countries.

:::tip If a shipping rate is not offering at checkout, the usual cause is the delivery address not falling in any zone the rate is scoped to. Check the zone’s join records before checking the rate. :::

Objects in this domain

Object API name Purpose
Shipment s_c__Shipment__c A dispatch of goods to a customer, with its tracking details
Fulfillment Item s_c__Fulfillment_Item__c One order item being fulfilled, and the quantity
Fulfillment Category s_c__Fulfillment_Category__c A class of fulfillment work, used to route items to the right station
Fulfillment Station s_c__Fulfillment_Station__c A physical place where fulfillment work is done
Fulfillment Category Station s_c__Fulfillment_Category_Station__c Assigns a fulfillment category to a station
Product Fulfillment Category s_c__Product_Fulfillment_Category__c Gives a product a fulfillment category, so it routes correctly
Allocated Fulfillment Payment s_c__Allocated_Fulfillment_Payment__c Allocates payment to one fulfillment, for part-shipped orders
Stock Location s_c__Stock_Location__c A warehouse, store room, or shop floor that holds stock
Store Stock Location s_c__Store_Stock_Location__c Makes a stock location available to a store, and sets its priority
Stock Level s_c__Stock_Level__c The quantity of one product at one location. The record inventory is read from
Stock Adjustment s_c__Stock_Adjustment__c A change to a stock level, with its reason
Manual Stock Adjustment s_c__Manual_Stock_Adjustment__c A batch of hand-entered stock corrections
Manual Stock Adjustment Item s_c__Manual_Stock_Adjustment_Item__c One product and quantity within a manual adjustment
Stock Transfer s_c__Stock_Transfer__c A movement of stock between two locations
Stock Transfer Item s_c__Stock_Transfer_Item__c One product and quantity within a transfer
Shipping Provider s_c__Shipping_Provider__c A carrier integration and its credentials
Shipping Provider Product s_c__Shipping_Provider_Product__c A named service offered by a provider, such as express or standard
Shipping Carrier Product s_c__Shipping_Carrier_Product__c A carrier’s own product code for a service
Shipping Rate s_c__Shipping_Rate__c A price for shipping, scoped by zone, weight, or order value
Zone s_c__Zone__c A named geographic area, used to scope shipping rates and taxes
Zone Country s_c__Zone_Country__c Puts a country in a zone
Zone State s_c__Zone_State__c Puts a state in a zone
Zone City s_c__Zone_City__c Puts a city in a zone
Zone Postcode s_c__Zone_Postcode__c Puts a postcode in a zone
Country s_c__Country__c A country, and whether the store sells to it
State s_c__State__c A state or province within a country
City s_c__City__c A city, used for zone and delivery matching
Postcode s_c__Postcode__c A postcode, used for zone and delivery matching
Collection Point s_c__Collection_Point__c A place a customer can collect an order, such as a locker or shop
Delivery Window s_c__Delivery_Window__c A bookable delivery slot
Product Delivery Window s_c__Product_Delivery_Window__c Limits a product to particular delivery windows
Location Group s_c__Location_Group__c A named set of locations, used to scope availability
Location Group Account s_c__Location_Group_Account__c Puts an account in a location group

Where it meets other domains

Zones, stations, and stock locations are all reached through join records. Junction objects explains what that means for querying and importing.

Was this article helpful?

Was this article helpful?