Skip to content
Log in

Package v21.3 to v21.4 - 5 July 2026

On this page

Two patch releases covering new cancellation fields on order line items, tighter validation for custom data mappings and product bundles, hardened access to custom settings, and a set of tax precision and sync reliability fixes.

Breaking changes and cautions

Nested bundles limited to a single level

Product bundles support one level of nesting: a bundle may contain a sub-bundle, but that sub-bundle’s components must not themselves be bundles. Deeper nesting cannot be priced, displayed, or edited by the platform. StoreConnect now blocks the creation of a three-level bundle chain at configuration time, in either direction — adding a bundle as a component of a bundle that is already nested, or adding a bundle that already contains a sub-bundle. Existing records that already violate this rule are left in place and are not affected unless you edit them. If you rely on deeper nesting, restructure those bundles into a single level of nesting.

Enhancements

Cancellation tracking on order line items

Two new fields are available on the Order Product (OrderItem) object to record when and by whom an individual line item was cancelled:

  • Cancelled At — the date and time the order item was cancelled.
  • Cancelled By User — a lookup to the Salesforce user who cancelled the order item.

Both fields appear on the Order Product page layout and are readable through the Administrator, Order Manager, and Sync permission sets.

Custom data mappings block colliding field names

When you configure a custom data mapping, StoreConnect now validates that the target field name does not collide with an existing field on the object. Mappings that would introduce a duplicate or conflicting field name are rejected at save time, preventing sync errors and ambiguous data caused by two mappings competing for the same field.

Hardened access to custom settings

Access to StoreConnect custom settings from Lightning components has been tightened. The custom setting controller now exposes a single method that returns only an allow-listed set of non-sensitive setting values, rather than returning the full settings record. This prevents sensitive configuration values from being read by front-end components. Standard StoreConnect components have been updated to use the new method.

Deprecated fields

No fields have been formally deprecated in this release.

The CustomSetting Aura component is now marked as deprecated and will be removed in a future version. If you have built custom Lightning components that depend on it, plan to migrate them. This component is only relevant to developers who have extended StoreConnect with custom Salesforce components; it does not affect standard store configuration.

Fixed bugs

Tax rounding loss on order totals

Order tax calculations could lose sub-cent precision when tax was truncated too early during aggregation, producing small discrepancies in order totals — most noticeable on low-value, high-quantity orders. Tax amounts are now calculated and stored at full precision, with the Total Tax Amount and Tax Amount fields storing values to four decimal places, so order totals accurately reflect the tax-inclusive amount. Manual sub-cent price edits are also detected correctly and no longer cause recalculated totals to drift upward.

Sync update events missing a timestamp on same-second saves

Following an earlier fix for update events sent without a timestamp, a related case remained: when a record was saved more than once within the same second, the change comparison treated the timestamp as unchanged (Salesforce stores it only to whole-second precision) and omitted it from the event. Update events now always carry a timestamp, so downstream sync consumers can reliably order changes.

Sync summary batch aborting on unrecognized objects

The sync summary batch job could fail entirely when it encountered an object name that the org could not resolve — for example, a table that exists only on the website side, or one from a package version the org does not yet have. A single unresolvable name would abort the whole batch and lose the counts for every other object in the same run. Unrecognized object names are now skipped and recounted on a later run, so the rest of the batch completes.

Duplicate sync summary entries breaking change-event batches

A sync payload can legitimately list the same object more than once — for example, several payment method subtypes that all map to a single StoreConnect object. Because sync summaries are keyed by a unique identifier, the duplicated entry caused a duplicate-value error that rolled back the entire change-event batch, taking unrelated changes down with it. Duplicate entries are now collapsed before saving, so a repeated object in the payload can no longer break the batch.

Authorizing a different sync user during setup

The store connection setup flow did not correctly handle authorizing a sync user different from the one currently signed in. The setup screen now guides you through signing in as the intended sync user, clarifies the instructions for using a separate browser session, and provides a manual copy option for the authorization link if the automatic copy fails.

Was this article helpful?

Was this article helpful?