{"title":"Fulfillment and inventory objects","slug":"fulfillment-and-inventory-objects","url":"https://support.storeconnect.com/articles/fulfillment-and-inventory-objects","url_markdown":"https://support.storeconnect.com/articles/fulfillment-and-inventory-objects.md","subtitle":null,"summary":"The Salesforce objects behind getting goods to customers and tracking what is in stock: shipments, fulfillments, stock levels and locations, transfers, shipping rates, and zones. Use it to find the right object before you query stock or configure shipping.","type":"Developer_Documentation","video_url":"","keywords":"fulfillment objects, inventory, shipment, fulfillment item, fulfillment station, stock level, stock location, stock transfer, stock adjustment, shipping rate, shipping provider, zone, collection point, delivery window, data model, salesforce schema","last_modified":"2026-09-15T02:32:04+0000","body_markdown":"This domain answers two separate questions: how much of something there is, and\nhow it reaches the customer. Use this article to find the object you need before\nyou query stock or configure shipping.\n\n## Stock is a quantity per location\n\nThere is no stock field on a product. A\n[Stock Level](stock-level-object-reference) record holds the quantity of one\nproduct at one [Stock Location](stock-location-object-reference), so a product\nstocked in three places has three records.\n\nThat is the single most important fact in this domain, and it has two\nconsequences:\n\n- **To read inventory, query Stock Level, not Product2.** Filter by location, or\n  sum across the locations a store can sell from.\n- **A store sells from the locations assigned to it.**\n  [Store Stock Location](store-stock-location-object-reference) makes a location\n  available to a store and sets its priority, which is how one warehouse can serve\n  several storefronts.\n\nStock changes through records rather than edits.\n[Stock Adjustment](stock-adjustment-object-reference) logs a change and its\nreason, [Manual Stock Adjustment](manual-stock-adjustment-object-reference) is a\nbatch of hand-entered corrections, and\n[Stock Transfer](stock-transfer-object-reference) moves stock between locations.\n\n## Fulfillment continues what the cart started\n\nDelivery method is chosen on the cart, as a\n[Cart Fulfillment](cart-fulfillment-object-reference). After checkout the work\nbecomes a [Fulfillment Item](fulfillment-item-object-reference) per order item and,\nfor anything posted, a [Shipment](shipment-object-reference) carrying the tracking\ndetails.\n\nWhere that work happens is routed by category. A product carries a\n[fulfillment category](product-fulfillment-category-object-reference), a\n[Fulfillment Station](fulfillment-station-object-reference) is a physical place,\nand [Fulfillment Category Station](fulfillment-category-station-object-reference)\nconnects the two. Pick and pack lists follow those assignments.\n\n## Zones scope almost everything geographic\n\nA [Zone](zone-object-reference) is a named area, built by adding countries,\nstates, cities, or postcodes to it through four join objects. Zones are what\n[Shipping Rates](shipping-rate-object-reference) and taxes are scoped by, so a\nrate applies to a zone rather than to a list of countries.\n\n:::tip\nIf a shipping rate is not offering at checkout, the usual cause is the delivery\naddress not falling in any zone the rate is scoped to. Check the zone's join\nrecords before checking the rate.\n:::\n\n## Objects in this domain\n\n| Object | API name | Purpose |\n|--------|----------|---------|\n| [Shipment](shipment-object-reference) | `s_c__Shipment__c` | A dispatch of goods to a customer, with its tracking details |\n| [Fulfillment Item](fulfillment-item-object-reference) | `s_c__Fulfillment_Item__c` | One order item being fulfilled, and the quantity |\n| [Fulfillment Category](fulfillment-category-object-reference) | `s_c__Fulfillment_Category__c` | A class of fulfillment work, used to route items to the right station |\n| [Fulfillment Station](fulfillment-station-object-reference) | `s_c__Fulfillment_Station__c` | A physical place where fulfillment work is done |\n| [Fulfillment Category Station](fulfillment-category-station-object-reference) | `s_c__Fulfillment_Category_Station__c` | Assigns a fulfillment category to a station |\n| [Product Fulfillment Category](product-fulfillment-category-object-reference) | `s_c__Product_Fulfillment_Category__c` | Gives a product a fulfillment category, so it routes correctly |\n| [Allocated Fulfillment Payment](allocated-fulfillment-payment-object-reference) | `s_c__Allocated_Fulfillment_Payment__c` | Allocates payment to one fulfillment, for part-shipped orders |\n| [Stock Location](stock-location-object-reference) | `s_c__Stock_Location__c` | A warehouse, store room, or shop floor that holds stock |\n| [Store Stock Location](store-stock-location-object-reference) | `s_c__Store_Stock_Location__c` | Makes a stock location available to a store, and sets its priority |\n| [Stock Level](stock-level-object-reference) | `s_c__Stock_Level__c` | The quantity of one product at one location. The record inventory is read from |\n| [Stock Adjustment](stock-adjustment-object-reference) | `s_c__Stock_Adjustment__c` | A change to a stock level, with its reason |\n| [Manual Stock Adjustment](manual-stock-adjustment-object-reference) | `s_c__Manual_Stock_Adjustment__c` | A batch of hand-entered stock corrections |\n| [Manual Stock Adjustment Item](manual-stock-adjustment-item-object-reference) | `s_c__Manual_Stock_Adjustment_Item__c` | One product and quantity within a manual adjustment |\n| [Stock Transfer](stock-transfer-object-reference) | `s_c__Stock_Transfer__c` | A movement of stock between two locations |\n| [Stock Transfer Item](stock-transfer-item-object-reference) | `s_c__Stock_Transfer_Item__c` | One product and quantity within a transfer |\n| [Shipping Provider](shipping-provider-object-reference) | `s_c__Shipping_Provider__c` | A carrier integration and its credentials |\n| [Shipping Provider Product](shipping-provider-product-object-reference) | `s_c__Shipping_Provider_Product__c` | A named service offered by a provider, such as express or standard |\n| [Shipping Carrier Product](shipping-carrier-product-object-reference) | `s_c__Shipping_Carrier_Product__c` | A carrier's own product code for a service |\n| [Shipping Rate](shipping-rate-object-reference) | `s_c__Shipping_Rate__c` | A price for shipping, scoped by zone, weight, or order value |\n| [Zone](zone-object-reference) | `s_c__Zone__c` | A named geographic area, used to scope shipping rates and taxes |\n| [Zone Country](zone-country-object-reference) | `s_c__Zone_Country__c` | Puts a country in a zone |\n| [Zone State](zone-state-object-reference) | `s_c__Zone_State__c` | Puts a state in a zone |\n| [Zone City](zone-city-object-reference) | `s_c__Zone_City__c` | Puts a city in a zone |\n| [Zone Postcode](zone-postcode-object-reference) | `s_c__Zone_Postcode__c` | Puts a postcode in a zone |\n| [Country](country-object-reference) | `s_c__Country__c` | A country, and whether the store sells to it |\n| [State](state-object-reference) | `s_c__State__c` | A state or province within a country |\n| [City](city-object-reference) | `s_c__City__c` | A city, used for zone and delivery matching |\n| [Postcode](postcode-object-reference) | `s_c__Postcode__c` | A postcode, used for zone and delivery matching |\n| [Collection Point](collection-point-object-reference) | `s_c__Collection_Point__c` | A place a customer can collect an order, such as a locker or shop |\n| [Delivery Window](delivery-window-object-reference) | `s_c__Delivery_Window__c` | A bookable delivery slot |\n| [Product Delivery Window](product-delivery-window-object-reference) | `s_c__Product_Delivery_Window__c` | Limits a product to particular delivery windows |\n| [Location Group](location-group-object-reference) | `s_c__Location_Group__c` | A named set of locations, used to scope availability |\n| [Location Group Account](location-group-account-object-reference) | `s_c__Location_Group_Account__c` | Puts an account in a location group |\n\n## Where it meets other domains\n\n- **Catalog.** Stock levels and fulfillment categories both point at\n  [Product2](product2-object-reference). See [catalog objects](catalog-objects).\n- **Orders and checkout.** Cart fulfillments, payments allocated per fulfillment,\n  and tax scoped by zone all sit on the checkout side. See\n  [order and checkout objects](order-and-checkout-objects).\n- **Point of sale.** An [outlet](outlet-object-reference) sells from a stock\n  location, through\n  [Outlet Stock Location](outlet-stock-location-object-reference), and POS\n  fulfillment routes through the same stations. See [POS objects](pos-objects).\n\nZones, stations, and stock locations are all reached through join records.\n[Junction objects](junction-objects) explains what that means for querying and\nimporting."}