{"title":"Order and checkout objects","slug":"order-and-checkout-objects","url":"https://support.storeconnect.com/articles/order-and-checkout-objects","url_markdown":"https://support.storeconnect.com/articles/order-and-checkout-objects.md","subtitle":null,"summary":"The Salesforce objects behind checkout and everything after it: carts, orders, payments, subscriptions, vouchers, promotions, discounts, rewards, and tax. Use it to find the right object before you query or report on sales data.","type":"Developer_Documentation","video_url":"","keywords":"order objects, cart, cart item, order item, payment, payment provider, payment method, subscription, voucher, promotion2, discount, reward, tax, tax group, checkout, data model, salesforce schema","last_modified":"2026-09-15T02:32:04+0000","body_markdown":"This is the largest domain in the schema, because it holds both sides of a\npurchase: the cart while a shopper is still deciding, and the order once they have\npaid. Use this article to find the object you need before you query or report on\nsales data.\n\n## A cart becomes an order\n\nThe single most useful thing to know is that **cart** and **order** are parallel\nstructures, not one record changing state.\n\nA [Cart](cart-object-reference) holds [Cart Items](cart-item-object-reference).\nAt checkout StoreConnect creates an [Order](order-object-reference) with\n[Order Items](orderitem-object-reference), and the cart is kept rather than\ndeleted. So a completed purchase exists twice, and which one you query depends on\nthe question:\n\n- **What is in progress, or was abandoned?** Query the cart.\n- **What was sold?** Query the order. Prices on an order item are what was\n  actually charged, not what the price book says now.\n\nFulfillment is decided on the cart, before the order exists. A\n[Cart Fulfillment](cart-fulfillment-object-reference) is one delivery method for\npart of the basket, and\n[Cart Fulfillment Item](cart-fulfillment-item-object-reference) assigns items to it.\nThat is how one order ships some items and holds others for pickup.\n\n## Money is separate from the order\n\nA [Payment](payment-object-reference) is one attempt to move money, so an order\ncan have several: a failed attempt, a retry, a partial refund. The order's paid\nstate is the sum of its payments rather than a field someone sets.\n\n[Payment Item](payment-item-object-reference) is the record that allocates part of\na payment to a particular order or fulfillment, which matters when one payment\ncovers a split shipment, or one order is paid by card and voucher together.\n\n:::note\nA [Payment Provider](payment-provider-object-reference) is the configured gateway.\nA [Payment Method](payment-method-object-reference) is what the shopper sees at\ncheckout. One provider usually offers several methods, and surcharges are set on\nthe method.\n:::\n\n## Two generations of promotions\n\nThe schema carries both promotions models, which is the most common source of\nconfusion here.\n\n[Promotion](promotion2-object-reference) (`s_c__Promotion2__c`) is the current\nmodel. Its [conditions](promotion2-condition-object-reference) say what a cart\nmust satisfy, its [product scope](promotion2-product-scope-object-reference)\nlimits what it applies to, and [usage](promotion2-usage-object-reference) records\nenforce limits.\n\nThe objects labeled **Legacy Promotion** in the table below are the superseded\nmodel, kept so existing data still reads. Write against the current model.\n\n[Discount](discount-object-reference) is a different thing again: it reduces a\nprice automatically, with no code entered.\n\n## Objects in this domain\n\n| Object | API name | Purpose |\n|--------|----------|---------|\n| [Cart](cart-object-reference) | `s_c__Cart__c` | An in-progress basket. Becomes an order at checkout, and is kept afterwards |\n| [Cart Item](cart-item-object-reference) | `s_c__Cart_Item__c` | One product and quantity in a cart |\n| [Cart Fulfillment](cart-fulfillment-object-reference) | `s_c__Cart_Fulfillment__c` | How one part of a cart will be delivered: shipped, picked up, or collected |\n| [Cart Fulfillment Item](cart-fulfillment-item-object-reference) | `s_c__Cart_Fulfillment_Item__c` | Assigns a cart item to one of the cart's fulfillments |\n| [Cart Promotion](cart-promotion2-object-reference) | `s_c__Cart_Promotion2__c` | Records a promotion code applied to a cart |\n| [Cart Campaign](cart-campaign-object-reference) | `s_c__Cart_Campaign__c` | Links a cart to the marketing campaign it came from |\n| [Order](order-object-reference) | `Order` | The standard Salesforce order object, created from a cart at checkout |\n| [Order Item](orderitem-object-reference) | `OrderItem` | One line on an order: product, quantity, and the price charged |\n| [Order Item Tax](order-items-taxes-object-reference) | `s_c__Order_Items_Taxes__c` | The tax applied to one order line, one record per tax |\n| [Order Item Reward](order-item-reward-object-reference) | `s_c__Order_Item_Reward__c` | A reward granted against an order line |\n| [Order Campaign](order-campaign-object-reference) | `s_c__Order_Campaign__c` | Links an order to the marketing campaign it came from |\n| [Payment](payment-object-reference) | `s_c__Payment__c` | One attempt to take or refund money, with its gateway result |\n| [Payment Item](payment-item-object-reference) | `s_c__Payment_Item__c` | Allocates part of a payment to a specific order or fulfillment |\n| [Payment Method](payment-method-object-reference) | `s_c__Payment_Method__c` | A method offered at checkout, such as a card or account payment, and its surcharge |\n| [Payment Provider](payment-provider-object-reference) | `s_c__Payment_Provider__c` | A configured gateway, holding its credentials and which methods it supports |\n| [Payment Installment](payment-installment-object-reference) | `s_c__Payment_Installment__c` | One scheduled payment where the total is taken over time |\n| [Subscription](subscription-object-reference) | `s_c__Subscription__c` | A recurring purchase, its schedule, and its billing state |\n| [Subscription Change](subscription-change-object-reference) | `s_c__Subscription_Change__c` | A pending or applied change to a subscription, such as a new price or quantity |\n| [Voucher](voucher-object-reference) | `s_c__Voucher__c` | A gift card or credit note, with its balance, code, and PIN |\n| [Voucher Payment](voucher-payment-object-reference) | `s_c__Voucher_Payment__c` | Records a voucher being spent against a payment |\n| [Voucher Log](voucher-log-object-reference) | `s_c__Voucher_Log__c` | An entry for every change to a voucher's balance |\n| [Asset](asset-object-reference) | `Asset` | Serialized stock. Currently used as the template for the code and PIN issued on voucher creation |\n| [Promotion](promotion2-object-reference) | `s_c__Promotion2__c` | A promotion: what triggers it, what it gives, and when it runs |\n| [Promotion Condition](promotion2-condition-object-reference) | `s_c__Promotion2_Condition__c` | One test a cart must pass for a promotion to apply |\n| [Condition](condition-object-reference) | `s_c__Condition__c` | What must be true for a promotion reward to apply |\n| [Promotion Product Scope](promotion2-product-scope-object-reference) | `s_c__Promotion2_Product_Scope__c` | Limits a promotion to particular products or categories |\n| [Promotion Usage](promotion2-usage-object-reference) | `s_c__Promotion2Usage__c` | Records each use of a promotion, enforcing usage limits |\n| [Legacy Promotion](promotion-object-reference) | `s_c__Promotion__c` | The superseded promotions model, kept for existing data |\n| [Legacy Promotion Action](promotion-action-object-reference) | `s_c__Promotion_Action__c` | What a legacy promotion does when it applies |\n| [Legacy Promotion Scope](promotion-scope-object-reference) | `s_c__Promotion_Scope__c` | What a legacy promotion applies to |\n| [Promotion Credit](promotion-credit-object-reference) | `s_c__Promotion_Credit__c` | Account credit issued by a promotion |\n| [Discount](discount-object-reference) | `s_c__Discount__c` | An automatic price reduction, applied without a code |\n| [Discount Credit](discount-credit-object-reference) | `s_c__Discount_Credit__c` | Account credit issued by a discount |\n| [Reward](reward-object-reference) | `s_c__Reward__c` | A benefit earned by a shopper, such as points or a free item |\n| [Reward Usage](reward-usage-object-reference) | `s_c__Reward_Usage__c` | Records a reward being redeemed |\n| [Tax](tax-object-reference) | `s_c__Tax__c` | One tax rate and how it is applied |\n| [Tax Group](tax-group-object-reference) | `s_c__Tax_Group__c` | A set of taxes applied together, typically per region |\n| [Tax Tax Group](tax-tax-group-object-reference) | `s_c__Tax_Tax_Group__c` | Places a tax in a tax group |\n| [Product Tax](product-tax-object-reference) | `s_c__Product_Tax__c` | Applies a specific tax to a product |\n| [Product Tax Group](product-tax-group-object-reference) | `s_c__Product_Tax_Group__c` | Applies a tax group to a product |\n| [Tax Provider](tax-provider-object-reference) | `s_c__Tax_Provider__c` | An external tax calculation service and its credentials |\n| [Tax Provider Log](tax-provider-log-object-reference) | `s_c__Tax_Provider_Log__c` | The request and response for one external tax calculation |\n\n## Where it meets other domains\n\n- **Catalog.** Cart items, order items, and promotion scopes all point at\n  products and categories. Prices come from the price book, not the product. See\n  [catalog objects](catalog-objects).\n- **Customers and accounts.** An order belongs to an account and a contact, and\n  account credit is spent through payments. See\n  [customer and account objects](customer-and-account-objects).\n- **Fulfillment and inventory.** Cart fulfillments become\n  [shipments](shipment-object-reference) and\n  [fulfillment items](fulfillment-item-object-reference) after checkout, and stock\n  moves when they do. See\n  [fulfillment and inventory objects](fulfillment-and-inventory-objects).\n- **Point of sale.** A POS sale creates the same cart, order, and payment records\n  as the web, linked to the register and shift that took it. See\n  [POS objects](pos-objects).\n\nTax and promotion scoping both run through join records. If you are querying or\nimporting one, [junction objects](junction-objects) explains what that means."}