{"title":"About carts: statuses, sessions, flows","slug":"about-carts-statuses-sessions-flows","url":"https://support.storeconnect.com/articles/about-carts-statuses-sessions-flows","url_markdown":"https://support.storeconnect.com/articles/about-carts-statuses-sessions-flows.md","subtitle":null,"summary":"Cart records track a customer\u0026#39;s purchase intent before an order is created: cart sources (web, POS, API, manual), status progression through checkout, session tokens, and resumable vs abandonable states.","type":"Help_Documentation","video_url":"","keywords":"cart status, checkout flow, cart session, session token, abandoned cart, cart source, resumable cart, sc_token, pos cart, quotation request, payment processing, open cart","last_modified":"2026-08-21T07:12:35+0000","body_markdown":"Carts are distinct from orders. A cart captures what a customer intends to purchase. An order is only created after the customer has completed payment (or submitted a quotation request). Until that point, the cart is the active record.\n\n## Permissions for cart management\n\nMost cart-related tasks require one of the following permission sets assigned to your Salesforce profile:\n\n| Role | Permissions |\n|------|-------------|\n| StoreConnect Administrator | Full access: view, edit, configure, and delete cart records; configure store settings |\n| Order Manager or similar role | View and edit cart records |\n\n## How carts are created\n\nA cart record is created automatically as soon as any visitor arrives at a StoreConnect webstore, before they add any products. This means many cart records in Salesforce have no items. This is expected behavior, not an error.\n\nEach cart has an auto-numbered name in the format `Cart-{000000}` (for example, `Cart-000142`). This is assigned automatically and cannot be changed. A cart always belongs to a single store, identified by the **Store** field on the cart record.\n\n### Cart sources\n\nThe **Source** field on the cart record shows how the cart was created.\n\n| Source | Description |\n|--------|-------------|\n| `web` | Created by a customer browsing a StoreConnect webstore. |\n| `pos` | Created through the StoreConnect Point of Sale (POS) terminal. |\n| `api` | Created through the StoreConnect API by an external integration. |\n| `manual` | Created directly in Salesforce by an admin or user. |\n\n:::note\nOnly carts with a **Source** of `web` are eligible for automated abandoned cart processing. POS, API, and manual carts are excluded.\n:::\n\n### Cart statuses\n\nThe **Status** field tracks where the cart is in the checkout flow.\n\n| Status | Description |\n|--------|-------------|\n| `open` | Cart created. Customer can add or remove items. Default status for new carts. |\n| `customer` | Customer has provided contact information (email, name, billing address). |\n| `shipping` | Customer has selected a shipping method. |\n| `terms_and_conditions` | Customer has accepted the terms and conditions. |\n| `payment` | Customer has selected a payment method. Cart is ready for payment. |\n| `payment_processing` | Payment is in progress. Cart can no longer be modified. |\n| `paid` | Payment completed successfully. Cart can no longer be modified. |\n| `complete` | Order fully processed and synced. Cart can no longer be modified. |\n| `failed` | Payment failed. Customer may retry by returning to the payment step. |\n| `quotation_requested` | A quotation has been requested. Cart can no longer be modified. |\n\n### The checkout flow\n\nThe standard checkout moves a cart through statuses in this sequence:\n\n`open` → `customer` → `shipping` → `terms_and_conditions` → `payment` → `payment_processing` → `paid` → `complete`\n\nTwo alternate paths exist:\n\n- Payment failure: status moves to `failed`. The customer can retry, moving status back to `payment`.\n- Quotation request: status moves to `quotation_requested` instead of completing payment.\n\n### Status categories\n\nStatuses fall into three categories that affect how the system handles the cart.\n\nIn unmodifiable statuses, cart items can no longer be changed:\n\n- `payment_processing`\n- `paid`\n- `complete`\n- `quotation_requested`\n\nAbandonable statuses are eligible for the abandoned cart process:\n\n- `customer`\n- `shipping`\n- `terms_and_conditions`\n- `payment`\n- `failed`\n\nCarts with an `open` status are not eligible for abandonment because the customer has not yet entered the checkout flow.\n\nA cart is resumable by a returning customer only when all of these conditions are met:\n\n- The browser still holds a valid `sc_token` cookie.\n- The token matches a cart record in the database for the current store.\n- The cart's **Status** is one of `open`, `customer`, `shipping`, `terms_and_conditions`, `payment`, `failed`, or `payment_processing`.\n- The **Abandoned** checkbox is not selected on the cart record.\n\n## Cart sessions across visits\n\nWhen a customer visits a StoreConnect webstore, the application generates a unique session token stored in the browser as a signed, HTTP-only cookie named `sc_token`. The cookie cannot be read or modified by JavaScript.\n\nWhen the customer returns, the application reads the cookie, finds the matching cart record in Salesforce, and resumes the session from where they left off. The same mechanism applies on desktop, mobile, and tablet devices.\n\n### When a session is lost\n\nA session is lost when the `sc_token` cookie is removed. This can happen when the customer:\n\n- Clears their browser cookies or browsing data.\n- Closes a private or incognito browsing window.\n- Uses a browser with aggressive privacy settings.\n\nWhen this happens, a new session token and a new cart record are created. The previous cart record is not deleted. It remains in Salesforce and is eventually processed by the abandoned cart job.\n\n### POS cart sessions\n\nPOS carts use a different mechanism to web carts. Cart data is stored in the POS terminal's browser using local storage rather than a cookie. POS carts do not rely on the `sc_token` cookie and are tied to the specific terminal and operator, not to the customer's browser session.\n\nIf a POS terminal's browser data is cleared, any unsynchronized cart data may be lost."}