Cart
Add product variations to cart
Where to find it: Storefront product pages
When you'd use this: When your customers want to purchase a specific variation of a product (such as size, color, or style combinations).
What happens behind the scenes:
When a customer adds a product variation to their cart, the system looks up the product details from the search index. The index includes new variations when you add them to existing variants.
When checking stock availability during add to cart, the system validates stock based on the exact product and quantity the customer is requesting. This includes checking the specific unit of measure (such as "each," "dozen," or "case") from the customer's selection rather than using default product settings.
The system first tries to read real-time stock levels from your warehouse data. If that check fails for any reason, the system falls back to using cached stock information from the product index. When using real-time warehouse data, the system also updates the product index with current stock status to keep the cache fresh.
When checking whether a second or subsequent item can be added to cart, the system accounts for items already in the cart to ensure accurate stock availability for the new item being added.
When multiple requests attempt to create a cart at the same time for a customer who doesn't have one yet, the system handles this automatically. If a duplicate cart would be created, the system detects the conflict and retrieves the existing cart instead, ensuring each customer has only one active cart.
For guest checkout (B2C storefronts), the system tracks each guest's cart using a unique browser identifier that remains consistent throughout the shopping session — from adding items to cart through checkout and order placement. This ensures guests can maintain their cart and complete their purchase without logging in.
On multilingual storefronts, the system automatically handles product links in the cart to match your storefront version. The cart includes a link to each product's detail page. For older storefronts, the link includes the language code (such as "/en/"). For newer storefronts that manage language routing themselves, the system removes the language code to prevent duplicate language segments in the URL.
Each item in the cart receives a unique identifier that tracks it throughout the shopping session. The system includes this identifier when returning cart information to your storefront or other integrations, allowing you to reference specific items when updating quantities or removing items from the cart.
Using it day-to-day:
When customers add items to cart on B2B storefronts, they see non-blocking confirmation that keeps them moving through the catalog:
- The header cart quantity animates as a rolling counter (the old number slides up, the new number slides in and briefly displays in your brand color)
- The cart icon tilts briefly to signal the addition
- A small "+1" (or the actual quantity added) rises above the cart badge and fades out
- The clicked Add To Cart button changes to green with "Added" and a check icon for about one second, then returns to normal
When customers add multiple items in quick succession, each addition restarts the animation from the current count and the header always settles on the correct total. Multiple Add To Cart buttons can show the "Added" confirmation at the same time.
These confirmations appear everywhere customers can add to cart: product listing pages, product detail pages, quick order forms, and reorder from order history.
For customers using assistive technology, the system announces the new cart quantity via screen reader after each addition.
If you have browser settings that reduce motion for accessibility, the cart count updates instantly without animation, the "+1" indicator and icon tilt are disabled, and the Add To Cart button still shows the "Added" confirmation.
The system formats fractional quantities (common in B2B for items sold by weight or length) cleanly in the cart count, the "+N" indicator, and screen reader announcements, removing technical rounding artifacts that can appear in decimal calculations.
Troubleshooting:
-
Customer sees "product not found" error when adding a newly created variation to cart — The search index needs to catch up with the new variation. Run a product reindex from the admin. Once the reindex completes, customers will be able to add the variation to their cart.
-
Customer sees "out of stock" error (cart-400-014-product-out-of-stock) when trying to add a product that should be available — The cached stock information in the product index may be outdated. The system checks warehouse stock levels directly when customers add items to cart, which resolves most cases. If the error persists, run a product reindex from the admin to refresh all stock data in the index.
-
Customer cannot add a second product to cart after successfully adding a first product — The system validates stock for each add-to-cart request by checking availability for the new item being added, accounting for quantities already allocated to items in the cart. If you see this issue, verify that sufficient stock exists for both items in the assigned warehouse.
-
Guest customers cannot add items to cart on B2C storefronts — Verify that the warehouse is properly configured for the B2C customer in the admin. Guest checkout requires a valid warehouse assignment to check stock availability during add to cart.
-
Product links in the cart lead to 404 errors on multilingual storefronts — The product URL may contain duplicate language codes (such as "/en-US/en/products/..."). This can happen if your storefront and the cart service both add language codes to the URL. The system automatically adjusts product links based on your storefront version. If you see this error, verify that multilanguage settings are configured correctly in the admin and that your storefront is sending the correct version information with cart requests.
Set minimum order values
Where to find it: Admin → Minimum Orders → Setting (global setting), or Admin → Customers → Edit Customer → Customer Level Custom Fields (customer-specific setting)
When you'd use this: When you need to require customers to meet a minimum order amount before they can check out. You can set this globally for all customers or customize it for individual customers.
What happens behind the scenes:
The system compares the cart subtotal to the minimum order value each time the cart updates. If the subtotal is below the minimum, the checkout button becomes disabled and a message displays above it informing the customer of the minimum order requirement.
The message text can include a placeholder (%s) that the system automatically replaces with the formatted minimum order amount.
Customer-specific minimum order values take precedence over the global setting when configured.
Troubleshooting:
-
Checkout button is disabled even though the cart total appears to meet the minimum — The system uses the subtotal (before taxes and shipping) to compare against the minimum order value. Check that the subtotal specifically meets the threshold. If the issue persists, verify that the correct minimum order value is configured for that customer or globally.
-
Minimum order message is not displaying — If no custom message is configured, the system displays a default message: "Make sure you have ordered your minimum order value." To customize this message, configure it in the minimum order settings in the admin.
View abandoned carts
Where to find it: Admin → Carts → Abandoned Carts
When you'd use this: When you want to identify customers who added items to their cart but didn't complete checkout, so you can follow up with them to recover potential sales.
What happens behind the scenes:
The system identifies abandoned carts by looking for carts that still contain items and haven't been touched by the shopper for a specified period. When a customer completes checkout, their cart is deleted — so any cart that still exists never converted to an order.
The system measures inactivity based on when the customer last added, changed, or removed an item from the cart. Background processes like live price updates don't affect the abandonment clock.
Only carts created by shoppers on the storefront appear in the abandoned cart report. Carts created through other channels (such as orders being edited or quotes) are excluded automatically.
Using it day-to-day:
The abandoned cart report shows:
- How long the cart has been idle (you can filter by minimum idle hours, defaulting to 24 hours)
- Whether the cart belongs to a guest or registered customer
- Customer name, email, and customer code
- Number of line items in the cart
- Total quantity across all items
- Cart grand total
- When the customer last modified the cart
You can sort the report by last activity date to see the most recent abandonments first.
Click into any cart to view its full contents, including individual products and quantities. You can view cart details even if the customer has since resumed shopping — the link remains valid regardless of the cart's current state.
Set a date range to limit the report to carts abandoned after a specific date.
Troubleshooting:
-
A cart appears in the report even though the customer is still actively shopping — The abandonment clock only moves when customers add, change, or remove items. If a customer is browsing without modifying their cart, it may appear idle. Check the last activity timestamp to confirm when they last interacted with the cart.
-
Recently abandoned carts are not appearing in the report — Verify your idle hours filter. The default is 24 hours, so carts abandoned more recently won't appear unless you lower the threshold.
Edit orders created from standing orders
Where to find it: Order management or integration tools that allow editing existing sales orders
When you'd use this: When customers need to modify orders that were automatically created from standing order templates.
What happens behind the scenes:
When an order is created from a standing order template, the system may include line items with zero quantity as placeholders. When you edit these orders, the system automatically excludes zero-quantity lines from validation, allowing you to save changes to the other line items without errors.
The system filters out zero-quantity lines when loading the order for editing, so only items with quantities greater than zero are subject to stock and quantity validation.
Troubleshooting:
- Order edit fails with error "Total requested quantity should be greater than zero" (cart-400-017) — This error indicates a zero-quantity line item is being validated. The system automatically excludes zero-quantity lines from standing orders during editing. If you see this error, verify that the line items you're modifying have quantities greater than zero. Lines with zero quantity from the standing order template are excluded automatically and should not trigger this error.
Customize date formats in order details
Where to find it: Admin → Grid configuration for order details pages
When you'd use this: When you need to display order dates (order date, delivery date, ship date) in a specific format that matches your business requirements or regional conventions.
What happens behind the scenes:
When displaying dates in order details, the system uses the date format you configure in the grid settings. You can specify custom date formats using standard date formatting patterns (such as "DD/MM/YYYY" for day-month-year with slashes, or "D MMM YYYY" for formats like "22 Feb 2026").
If you don't configure a custom format, the system uses your global date format setting. The legacy date type settings (0 for DD-MM-YYYY and 1 for MM-DD-YYYY) continue to work as before.
The date formatting applies to:
- Order date
- Requested delivery date
- Promised delivery date
- Expected ship date
- Actual ship date
Troubleshooting:
-
Dates are showing in the wrong format — Check the format configuration in your grid settings for the order details page. If no custom format is set, the system will use your global date format setting from the admin.
-
Dates are not displaying at all — Verify that the date fields contain valid dates. The system validates dates before formatting them and will display nothing if the date value is invalid or missing.