Package v20.19 - 31 March 2026
On this page
This release is a substantial cart and POS update. New discount fields on Cart and Cart Item records lay the groundwork for flexible discounting at the cart level. Two new Cart Fulfillment objects introduce a structured model for grouping items by fulfilment type before an order is placed, supporting split-fulfilment scenarios such as combining shipping and pickup in a single cart. POS improvements include the ability to assign a specific view to a layout, and a new cart context option for print templates. Staff-assisted sales can now be tracked directly on cart and order item records. Bug fixes resolve media upload rendering for non-admin users and timeout error display.
Breaking changes and cautions
:::warning Channel default migrations may not have run for v20.17 → v20.18 upgrades. A versioning error in the v20.18 post-install migration caused the automatic channel default assignments for Payment Provider, Script Block, Shipping Provider, and Style Block records to be skipped when upgrading directly from v20.17. After upgrading to v20.19, the migration will run automatically and apply the correct defaults. Review your channel settings on these records after upgrading to confirm they are configured as expected. [PKG-7819] :::
Field and object changes
The following new fields, values, and objects were added to this version of StoreConnect. Not all of them automatically appear in your org when you upgrade, and they never appear on page layouts or record pages your org has customized. Refer to the relevant procedure to add them.
- Add a new field to your custom layout or record pages, see add new fields to your record pages.
- Add new picklist values, see update picklist values.
- Display a field on a page layout, see page layouts and profiles.
New fields on existing objects
| Object | Field | API name | Type | What it records | Where it appears after upgrading |
|---|---|---|---|---|---|
| Cart | Discount Amount | s_c__Discount_Amount__c |
Currency | The amount of a cart-wide discount | Nowhere. Add it to your Cart layout |
| Cart | Discount Mode | s_c__Discount_Mode__c |
Picklist | Whether the cart-wide discount is an amount or a percentage | Nowhere. Add it to your Cart layout |
| Cart | Discount Percentage | s_c__Discount_Percentage__c |
Number | The percentage of a cart-wide discount | Nowhere. Add it to your Cart layout |
| Cart Item | Assisted By User | s_c__Assisted_By_User_Id__c |
Lookup (User) | The staff member who helped add the item | Nowhere. Add it to your Cart Item layout |
| Cart Item | Discount Amount | s_c__Discount_Amount__c |
Currency | The discount amount on the cart item | Nowhere. Add it to your Cart Item layout |
| Cart Item | Discount Mode | s_c__Discount_Mode__c |
Picklist | Whether the cart item discount is an amount or a percentage | Nowhere. Add it to your Cart Item layout |
| Cart Item | Discount Percentage | s_c__Discount_Percentage__c |
Number | The discount percentage on the cart item | Nowhere. Add it to your Cart Item layout |
| Order Product | Assisted By User | s_c__Assisted_By_User_Id__c |
Lookup (User) | The staff member who helped add the item | Nowhere. Add it to your Order Product layout |
| POS Layout | POS View | s_c__Pos_View_Id__c |
Lookup (POS View) | A POS view to show in place of the default display | StoreConnect POS Layout record page |
| Shipment | Ship To Account | s_c__Ship_To_Account_Id__c |
Lookup (Account) | The account the shipment goes to | Nowhere. Add it to your Shipment layout |
| Shipment | Ship To Contact | s_c__Ship_To_Contact_Id__c |
Lookup (Contact) | The contact the shipment goes to | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping City | s_c__Shipping_City__c |
Text | The city of the shipping address | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping Country | s_c__Shipping_Country__c |
Text | The country of the shipping address | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping Country Code | s_c__Shipping_Country_Code__c |
Text | The country code of the shipping address | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping Postal Code | s_c__Shipping_Postal_Code__c |
Text | The postal code of the shipping address | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping Recipient Name | s_c__Shipping_Recipient_Name__c |
Text | The name the shipment is addressed to | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping State | s_c__Shipping_State__c |
Text | The state of the shipping address | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping State Code | s_c__Shipping_State_Code__c |
Text | The state code of the shipping address | Nowhere. Add it to your Shipment layout |
| Shipment | Shipping Street | s_c__Shipping_Street__c |
Text | The street of the shipping address | Nowhere. Add it to your Shipment layout |
New values on existing picklist fields
| Object | Field | API name | New values |
|---|---|---|---|
| POS Print Template | Context | s_c__Context__c |
Cart |
| Shipment | Fulfillment Type | s_c__Fulfillment_Type__c |
Reserved |
New objects
| Object | API name | What it does | What to do |
|---|---|---|---|
| Cart Fulfillment | s_c__Cart_Fulfillment__c |
Groups cart items by fulfillment type before the order is placed | Nothing. StoreConnect creates these records |
| Cart Fulfillment Item | s_c__Cart_Fulfillment_Item__c |
Links a cart item to a cart fulfillment | Nothing. StoreConnect creates these records |
Enhancements
Discount fields on cart and cart items [PKG-7843] Discount information can now be recorded directly on Cart and Cart Item records. Three new fields are available on both objects: - Discount Mode — a picklist with options: Amount or Percentage. - Discount Amount — a currency field for fixed-amount discounts. - Discount Percentage — a number field for percentage-based discounts.
These fields provide the data structure for applying discounts at both the whole-cart and individual-item level, enabling flexible discount workflows for web and POS orders.
Cart Fulfillment and Cart Fulfillment Item objects [PKG-7822] Two new objects — Cart Fulfillment and Cart Fulfillment Item — have been added to support split-fulfilment at the cart stage. A Cart Fulfillment groups cart items by delivery type, with fields for shipping address, shipping provider, fulfilment type (delivery, pickup, digital, subscription, transfer order, or custom), and purchase type. Cart Fulfillment Items link individual cart items to a fulfilment group, with quantity and asset reference. These objects allow merchants to manage multi-fulfilment carts — for example, some items shipped and others picked up in store — before an order is placed.
Shipping address fields on Shipment records [PKG-7822] A full shipping address is now available directly on Shipment records, complementing the Cart Fulfillment shipping data. New fields added to Shipment: Shipping Recipient Name, Shipping Street, Shipping City, Shipping State, Shipping State Code, Shipping Postal Code, Shipping Country, Shipping Country Code, Ship To Account, and Ship To Contact. These fields bring the Shipment record in line with the address data captured on Cart Fulfillment.
POS Layout view assignment [PKG-7899] POS Layouts can now reference a specific POS View. The new View field on a POS Layout record lets you assign a custom view to render instead of the default display, giving merchants greater control over the checkout screen presented at each terminal.
Cart context for POS print templates [PKG-7911] A new Cart option has been added to the Context field on POS Print Template records. This allows you to configure a dedicated print template for the cart stage — for example, to print a quote or cart summary before payment is taken — in addition to the existing transaction and order contexts.
Assisted By user tracking on cart items and order items [PKG-7937] A new Assisted By User ID field is now available on both Cart Item and Order Item records. This field records the Salesforce user ID of the store staff member who assisted a customer with that line item, enabling staff-assisted sales tracking and reporting at the line-item level.
Deprecated fields
No fields have been formally deprecated in this release.
:::note Several fields on Cart Fulfillment Item (Payment Amount, Payment Mode, and Payment Percentage) were included for compatibility purposes and are marked as deprecated. These fields will be removed in a future release. :::
Fixed bugs
Media uploaded by non-admin users not rendering [PKG-7720] Media files uploaded by users with minimum Salesforce access — using SC Content or Theme Manager permission sets rather than SC Admin or System Admin profiles — were not rendering in content blocks and could not be used by other users. The uploaded files were accessible via direct URL, but the underlying Cloudinary folder path was not being scoped to the organization correctly for these users. This is now fixed: media uploaded by any user is stored in the correct organizational folder and renders as expected.
Timeout errors displayed as a blank screen [PKG-7818] When a server request timed out and returned a non-JSON response (such as a blank Heroku timeout page), no error message was shown and users saw an empty screen. Timeout errors are now detected and handled correctly, displaying a meaningful error message to the user.
Channel migrations skipped during v20.17 to v20.18 upgrade [PKG-7819] Version references in the post-install migration were incorrect, causing the channel default migrations introduced in v20.18 to be skipped when upgrading from v20.17. This affected automatic channel assignments for Payment Providers, Script Blocks, Shipping Providers, and Style Blocks. The version gate has been corrected and the migrations will now run for both v20.17 and v20.18 upgrade paths.
Was this article helpful?
Thanks for your feedback! It helps us improve our docs.