Skip to content
Log in

Upgrade guide — v19 to v20 — E-commerce

On this page

This section applies to all stores. Make sure you review every subsection.

Salesforce package changes

Review: New cart objects

v20 adds three new objects to support saved shopping carts. Object permissions are already included in the standard StoreConnect permission sets — no manual permission assignment is needed for the out-of-the-box sets.

Object Purpose Standard permission sets
Cart__c Stores the shopping cart header, including addresses, customer metadata, source, and status Administrator, Sync, Order Manager, Content Manager
Cart_Item__c Individual line items within a saved cart Administrator, Sync, Order Manager, Content Manager
Cart_Campaign__c UTM campaign tracking data associated with a cart Administrator, Sync, Order Manager, Content Manager

See Cart Object Reference and Cart Item Object Reference for full field details. If you have created custom permission sets in your org, review whether those sets should include access to the new cart objects.

  1. If you use only the standard StoreConnect permission sets, no action is needed.
  2. If you have custom permission sets, navigate to Setup > Permission Sets, open each custom set, and assess whether access to Cart__c, Cart_Item__c, and Cart_Campaign__c is appropriate for that set’s audience.

Review: Deprecated objects and fields

The following objects and fields have been deprecated in v20. Their labels are now prefixed with [DEPRECATED]. Consider removing any references from automations, flows, validation rules, reports, and page layouts.

Deprecated item Type Action
Product_Purchasable_Media__c Object Remove references from flows, reports, and page layouts
Product_Purchasable_Media__c.Media_Id__c Field Remove from page layouts and any automation referencing this field
Product_Purchasable_Media__c.Product_Id__c Field Remove from page layouts and any automation referencing this field
Trait_Category__c.Display_As_Filter_Top_Level__c Field Remove from page layouts and any automation referencing this field
  1. In Salesforce Setup, search Flows, Process Builder processes, and Validation Rules for references to the deprecated objects and fields above.
  2. Search your Reports and Dashboards for any that include these fields or objects.
  3. Remove or update any references found.

Review: New fields on existing objects

Object New field Purpose
Zone__c Strict__c Enables strict address matching for an individual zone
Payment__c Fingerprint__c Payment fingerprint, auto-assigned for manual payments
Payment_Provider__c Channel__c Payment provider channel identifier

Review whether any of these fields should be added to your object page layouts. See Configure zones for tax and shipping areas for documentation on zone configuration.

Liquid template changes

The line_item / LineItem concept has been renamed to cart_item / CartItem throughout StoreConnect Liquid. This affects template snippet keys, translation keys, Liquid drop properties, and cart controller parameters. All deprecated references still function in v20 but generate warnings in the Web Console and will be removed in a future version.

Action required: Update deprecated keys

Deprecation warnings are logged to the Web Console in real time as pages are rendered.

  1. Open the StoreConnect Web Console for your store.
  2. Browse through your store — visit the cart page, checkout, and any custom pages that render cart or order data.
  3. In the Web Console log, use the Warnings filter to display only entries that triggered deprecation warnings.
  4. Click each flagged entry to see the warning detail. Each warning identifies the deprecated key and its replacement.
  5. Update the affected templates and re-browse those pages to confirm the warnings are resolved.

Action required: Update deprecated template keys

If your theme includes custom versions of these snippets or controllers, rename them using the replacement keys in the table below. See CartItems Controller - Liquid Controller Reference for the current controller documentation.

Deprecated key Replacement key
snippets/shared/line_items/booking_details snippets/shared/cart_items/booking_details
snippets/shared/line_items/item snippets/shared/cart_items/item
snippets/shared/line_items/pricing snippets/shared/cart_items/pricing
controllers/line_items/destroy controllers/cart_items/destroy

Action required: Update deprecated translation keys

If your store uses custom translations, update any entries using the replacement keys in the table below.

Deprecated key Replacement key
line_items.links.edit_bundle cart_items.links.edit_bundle
line_items.links.remove_item cart_items.links.remove_item
line_items.quantity cart_items.quantity

Action required: Update deprecated Liquid drop properties

Search your templates for the deprecated property names below and update them using the replacement properties in the table below. See Cart - Liquid Object Reference and DeliveryOptions - Liquid Object Reference for current drop documentation.

Drop Deprecated property Replacement property
cart bookable_line_items_valid_until bookable_cart_items_valid_until
delivery_options line_item cart_item

Action required: Update deprecated cart controller parameters

If your templates submit forms to cart.update or cart.remove Liquid controller actions using a line_item parameter, update them using the replacement parameters in the table below.

Action Deprecated parameter Replacement parameter
cart.update line_item cart_item
cart.remove line_item cart_item

Review: New Liquid drop properties

The following new properties are available in your Liquid templates.

Drop Property Type Description
subscription renewal_order Order The Order associated with the next subscription renewal
subscription renewal_order_date Timestamp Date when the renewal Order will be generated
order checkout_step String Current checkout step. The value "pending_renewal" identifies subscription renewal orders
cart bookable_cart_items_valid_until Timestamp Booking timer expiration for bookable items in the cart

Behavior changes

Review: Returns no longer increase available-to-sell

Processing a return no longer increases the Available to Sell quantity on a product. Returned stock must now be manually adjusted back into inventory before it is made available for sale again.

  1. Review your current returns process. If you previously relied on StoreConnect automatically restoring stock on return, you will now need to manually adjust inventory or build your own automation to do so.
  2. Update any internal SOPs or documentation for your operations team to reflect this change.

Review: Strict zone matching

Individual zones can now be configured as strict using Zone__c.Strict__c. When enabled, a customer’s address must exactly match the zone’s criteria to qualify. Review your zones if any of your shipping or tax rules rely on zone matching behavior. See Configure zones for tax and shipping areas for full zone configuration reference.

  1. In the StoreConnect Config app, navigate to Zones and review your existing zone records.
  2. Assess whether any zones should have strict matching enabled based on your shipping or tax requirements.
  3. If you enable Strict__c on any zones, test checkout flows with borderline addresses to confirm the behavior is correct.

Action required: Abandoned orders no longer created, review abandoned carts

In v19, when a customer started checkout but did not complete payment, StoreConnect created an order record to represent the incomplete checkout. These were commonly referred to as ‘abandoned orders’.

In v20, this changed. A Cart__c record tracks the customer’s intent from the moment they arrive at the store. An order is only created after the customer completes payment. There are no abandoned orders.

Incomplete checkouts that have been idle beyond the configured abandonment window are processed by the automated abandoned cart job, which sets the Abandoned__c checkbox on the Cart__c record. The abandonment window defaults to 10 hours and is configurable per store via the cart_abandoned_hours Store Variable. Only carts with a Source of web are eligible — POS, API, and manual carts are never automatically abandoned.

  1. Identify any reports, list views, or dashboards that tracked abandoned orders. Recreate them using Cart__c records filtered by Abandoned__c = true.
  2. Identify any Flows, Process Builder processes, or automation triggered by abandoned orders — for example, recovery email campaigns or internal notifications. Update these to trigger on Cart__c records where Abandoned__c becomes true.
  3. Review the cart_abandoned_hours Store Variable on each store to confirm the abandonment window matches your business requirements.
  4. Confirm any external integrations that consumed abandoned order data are updated to consume Cart__c records instead.

See Process empty and abandoned carts and Saved carts for full documentation on how carts work in v20.

Was this article helpful?

Was this article helpful?