Skip to main content

Elastic Path Changelog

Keep up with changes to Elastic Path services by subscribing to our RSS Feed, Atom Feed, or JSON Feed

Catalog Search highlighting, facet value search, and ranking settings

MINOR Catalog Search highlight settings

Search profiles now control how matched words are highlighted in search hits, so highlights match your storefront's markup and show the right amount of each field.

What's New?

  • highlight_settings.fields - Choose which fields are highlighted, including fields the profile does not query
  • highlight_settings.full_fields - Return the whole marked-up value of chosen fields. The highlight_full_fields request parameter overrides it per request
  • highlight_settings.start_tag and end_tag - Set the tags wrapped around matched words. Defaults are <mark> and </mark>
  • highlight_settings.snippet_threshold and context_num_tokens - Control when a long field is trimmed to a snippet and how many words are kept either side of each match

For details see:


MINOR Catalog Search facet value search

Search within the values of a facet, so storefronts can offer a searchable filter list for facets with many values, such as brands.

What's New?

  • facet_query request parameter - Returns only the values of one facet_by field that match the text, each with its count and a highlighted label
  • facet_settings.query_num_typos - Set how many typos a facet query corrects, from 0 to 2. Defaults to 2

For details see:


MINOR Catalog Search ranking settings

Search profiles now expose two relevance ranking signals, and a new guide explains how relevance, boosts, sorting, and pins combine into the final result order.

What's New?

  • ranking_settings.prioritize_exact_match - Rank products whose field contains only the query words above longer matches. On by default
  • ranking_settings.prioritize_token_position - Rank products whose field matches a query word nearer the start of the field higher. Off by default
  • How Ranking Works guide - Covers the relevance signals, text match types, boost scores, and request sort_by

For details see:

Removed advanced promotion usage filtering (cm_search) in standard Promotions

MINOR Removed cm_search advanced promotion usage filtering in standard Promotions

As announced on July 8, 2026, the advanced promotion usage filtering enabled by passing the EP-Public-Search-Type: cm_search header to the GET /v2/promotions endpoint has been removed.

What's Changed?

  • EP-Public-Search-Type: cm_search is no longer supported - Requests to GET /v2/promotions that include this header now return a 400 Bad Request error
  • Advanced usage filter attributes removed - promo_name, promo_status, code_code, order_id, order_customer_email, and the other advanced usage filter attributes are no longer available on this endpoint
  • Standard filtering is unaffected - Filtering promotions with eq(code,...) on GET /v2/promotions continues to work as before

For details see:

Subscriber Pause and Resume, and Proration Refunds

MINOR Subscriber Pause and Resume

If the pricing option allows it, subscribers can now pause and resume their own subscriptions.

What's New?

  • Self-service pause and resume - The can_pause and can_resume pricing option fields now control subscriber pause and resume. A merchandizer can always pause or resume a subscription
  • Who paused a subscription - The new paused_by field records who paused the subscription: subscriber, merchandizer, or dunning. Only merchandizer, store, or organization-scoped callers can see this field
  • Dunning pauses stay with the merchandizer - A subscriber cannot resume a subscription that dunning paused or suspended. Subscriptions cannot tell who paused a subscription before this release, so a subscriber cannot resume those either. A merchandizer must resume these subscriptions

For details see:


MINOR Proration Refunds for Negative Prorations

A plan or pricing option change that results in a negative proration can now issue a refund instead of being rejected. A proration is negative when the credit for the unused time on the old plan is more than the cost of the new plan.

What's New?

  • Configurable per proration policy - To allow proration refunds, turn on Allow automatic refunds for negative prorations in Commerce Manager, or set allow_negative_proration_refund to true through the API. The default is false, so existing proration policies continue to reject negative prorations
  • Automatic gateway refund - If a proration policy allows refunds, Subscriptions refunds the negative amount through the payment gateway. The refund is against the payment for the previous invoice
  • Refund details on the subscription - The new last_refund_id and last_refund_amount fields show the most recent proration refund for a subscription
  • Preview the refund - The proration preview now returns would_refund and refund_amount. It also returns the new rejection reasons refund_not_possible and refund_disallowed_by_policy. The preview no longer returns the negative_amount rejection reason

For details see:

Removed per_application promotion codes in Rule Promotions

MINOR Removed per_application promotion codes in Rule Promotions

As announced on June 16, 2026, the per_application value for the consume_unit field has been removed when creating promotion codes for Rule Promotions.

What's Changed?

  • consume_unit: per_application is no longer supported - Requests that create Rule Promotion codes with per_application, either directly or through a bulk code generation job, now return a 422 Unprocessable Entity error; set consume_unit to per_checkout or omit the field to use the default
  • Existing codes are retained - Promotion codes already created with consume_unit: per_application continue to work as configured
  • Rule Promotions only - This change applies only to Rule Promotions. Promotion codes for standard (V1) Promotions are not affected

For details see:

Tiered cart subtotal discounts in a single promotion

MINOR Tiered cart subtotal discounts in a single promotion

You can now set up all tiers of a tiered cart discount in one promotion in Promotions Builder. Each tier is its own Cart discount action with a cart subtotal range, so you no longer need a separate promotion for each tier.

What's New?

  • Cart subtotal ranges on cart discounts - Use +refine on a cart discount action to add a Cart subtotal range. The discount applies only when the cart subtotal is within that range, inclusive of both amounts
  • Multiple tiers per promotion - Add one cart discount action per tier, and use Duplicate action to copy an existing tier, including its range and inclusions, then change the percentage and range
  • Inclusions and exclusions on ranges - Add inclusions or exclusions, such as a category, to a range to control which items count toward the cart subtotal for that tier. When a tier applies, the discount applies to the whole cart subtotal
  • Open-ended top tier - Leave the maximum amount blank to apply a tier to any cart subtotal equal to or greater than the minimum amount

Promotions Builder doesn't check tiers for overlaps or gaps, so make sure your ranges don't overlap and only one tier applies to a cart. Create the lowest tier first and add higher tiers in ascending order. Otherwise, a higher tier's discount can reduce the cart subtotal into a lower tier's range and both discounts apply.

For details see:

Order shipping group events available to webhooks and integrations

MINOR Order shipping group events

Integrations can now observe changes to order shipping groups. Two new observable events are available for webhooks and message queue integrations.

What's New?

  • order-shipping-group.created - Triggered when a shipping group is added to an order, including shipping groups created at checkout from a cart with shipping groups
  • order-shipping-group.updated - Triggered when an order shipping group is updated, for example a change to its shipping address, tracking reference, or delivery estimate
  • Order item linkage - The delivered shipping group payload includes relationships.items, identifying the order items the shipping group applies to

For details see:

Cart item custom fields returned in cart include responses

MINOR Cart item custom fields in include=items responses

Retrieving a single cart with include=items now returns each item's custom fields, the same data you get from Get Cart Items. Storefronts can read a cart and its fully described items in one request instead of two.

What's New?

  • Consistent item data - Fields defined on the cart_items flow now appear on every item under included.items in GET /v2/carts/:id?include=items, exactly as they do in GET /v2/carts/:id/items
  • Fewer requests - Storefronts that called Get Cart Items only to read item custom fields can drop that call
  • No change without a flow - Stores that have not defined a cart_items flow see no difference in the response

What's Changed?

  • Cart event payloads - cart.created and cart.updated events delivered to webhooks and message queues are built from this same cart response, so the items in those payloads now carry the same custom fields. The change is additive; existing keys are unchanged
  • Payload size - Each field on the cart_items flow adds one key to every included item, null when unset. SQS queues cap messages at 256 KiB and elide included resources above that limit, so stores with a wide cart_items flow and large carts may want to check their headroom

This applies to single-cart reads only. The cart list endpoint, orders, and quotes are unchanged.

For details see:

Custom User Roles in Commerce Manager

MAJOR Custom User Roles

Commerce Manager now supports custom user roles, so admins can define exactly the access each team member needs instead of choosing from the built-in standard roles alone. Manage roles from Settings > Team > Roles.

What's New?

  • Create Custom Roles - Define a role with a name, description, and a per-permission-group access level (No access, View, or Manage) across areas like Catalogs, Orders, Content and Pages, Team, and more
  • Standard and Custom role tabs - The Roles page lists the built-in standard roles and your custom roles separately, with a permissions summary showing how many groups have View vs. Manage access
  • Assign custom roles to team members - Choose a standard or custom role when inviting a new team member or editing an existing one
  • Organization-owned roles - A role created at the organization level is inherited, read-only, by every store in the organization; duplicating it creates a store-owned copy you can edit independently

For details see:

Subscription Proration Previews and Pending Cancellation

MINOR Proration Preview Endpoint

You can now preview the cost impact of a subscription plan or pricing option change before submitting it, so subscribers can see what they'll be charged or refunded ahead of time.

What's New?

  • Proration preview endpoint - Compute the proration amounts a prospective plan or pricing option change would produce, without persisting anything or affecting billing
  • Clear rejection reasons - A response with would_prorate: false isn't an error - it tells you why the change wouldn't result in a proration (for example, no_change or negative_amount)

For details see:


MINOR Cancel Pending Subscriptions Before Go-Live

Subscriptions that haven't yet reached their go_live_after date can now be canceled directly, without needing to wait for the subscription to become active.

What's New?

  • Immediate cancellation for pending subscriptions - Canceling a pending subscription (one with no invoices yet) is always immediate, since there's no billing period in progress to defer to
  • Self-service for subscribers - Subscribers can cancel their own pending subscription without needing to set the cancel_immediately flag

For details see:

Catalog Search query-triggered boost and bury with search rules

MINOR Catalog Search query-triggered boost and bury with search rules

Catalog Search now supports search rules in rule groups so merchandisers can boost, bury, pin, hide, rewrite, or filter results when a shopper query or browse listing matches a trigger.

What's New?

  • Search rule groups - Named containers for query-time merchandising rules
  • Search rules - Exact, contains, and browse triggers with boost/bury, pin, hide, query rewrite, and rule filter actions
  • Profile rule_groups - Attach ordered rule group IDs to a search profile to activate the rules engine
  • Ordering controls - execution_order within a group and stop_after_match across the profile pipeline
  • matched_rules on search results - See which rule and rule group IDs matched a full search (not autocomplete)

What's Changed?

  • Always-on profile boosts remain available for every search on a profile; search rules apply only when a trigger matches
  • Autocomplete does not evaluate search rules

For details see:

Catalog Search Indexed Fields replaces Searchable Fields for schema discovery

MINOR Catalog Search Indexed Fields replaces Searchable Fields for schema discovery

Use Indexed Fields to list every field in the search index — including numeric, boolean, and date fields — with flags for how each field can be used.

What's New?

  • GET /pcm/catalogs/search/indexed-fields - Returns all exposed indexed fields of every type
  • searchable and filterable flags - See whether a field can be used as a full-text query field and in filter expressions
  • Guide coverage - List Indexed Fields in Setting Up Catalog Search, with links from filtering, faceting, and sorting guides

What's Changed?

  • GET /pcm/catalogs/searchable-fields is deprecated - Prefer Indexed Fields. Searchable Fields returns only text query fields and does not cover fields needed for filtering and sorting
  • Searchable Fields remains available for existing integrations; migrate to Indexed Fields for complete schema discovery

For details see:

Price books and product configurations in Commerce Manager

MAJOR New price books and product configurations experience

To make price books and product configurations consistent with recent updates to product pages, we have released a redesigned user interface for these areas in Commerce Manager.

What's New?

  • New price book UI - The price book list design has been updated. Within the price books editor, the pricing table has been refreshed, and products are added to it from a searchable slide-in sheet. Currencies can be shown and hidden with the column selector on the product list. The price modifiers UI has also been updated, and can be accessed via a new tab within the editor.
  • Templates & attributes - Templates and attributes are now a single page, with attributes created and edited inline under their owning template
  • Variations - A dedicated list and editor, with variation options managed in slide-in sheets
  • Product relationships - Previously "Custom relationships", now with its own list and editor view

Deprecation of with_tax and without_tax attributes in Orders filtering

MINOR Deprecation notice of with_tax and without_tax attributes when filtering Orders

As of July 22, 2026, filtering orders using the with_tax and without_tax attributes on the GET /v2/orders endpoint is deprecated. This capability will be removed on October 19, 2026.

What's Changed?

  • Deprecated as of July 22, 2026 - Requests to GET /v2/orders?filter= using the with_tax and without_tax attributes continue to work during the deprecation period, but we recommend removing any dependency on these filters now
  • Removed on October 19, 2026 - After this date, requests to GET /v2/orders?filter= filtered using the with_tax and without_tax attributes will return an error

For details see:

Catalog rules can specify a search profile for shopper segments

MINOR Catalog rules can specify a search profile for shopper segments

Catalog rules can optionally include a search profile so shopper search follows the same segment as catalog and pricing — without hard-coding search_profile in your storefront.

What's New?

  • Optional search_profile_slug on catalog rules - Attach a search profile when configuring the rule for an account, customer, channel, or context tag
  • Automatic profile on shopper search - Matching shopper search and multi-search use that profile for filters, ranking, and related search behavior; a valid rule slug takes precedence over the search_profile query parameter
  • EP-Search-Profile response header - See which profile was applied (SYSTEMS_DEFAULT_PROFILE when the built-in default is used)
  • Price and assortment together - Use the same rule for price books and searchable assortment (for example a reseller-only category filter on the profile)

What's Changed?

  • Shopper search profile resolution - Catalog rule slug (when valid) → search_profile query parameter → tenant default → built-in default
  • Admin search unchanged - Explicit catalog/release search does not apply catalog rule profiles
  • Safe fallthrough - An invalid or stale rule slug does not fail the search; Catalog Search falls through to the next resolution source

For details see:

Upcoming deprecation of advanced promotion usage filtering (cm_search) in standard Promotions

MINOR Upcoming deprecation of cm_search advanced promotion usage filtering in standard Promotions

As of July 8, 2026, the advanced promotion usage filtering enabled by passing the EP-Public-Search-Type: cm_search header to the GET /v2/promotions endpoint is deprecated. This capability will be removed on October 6, 2026.

What's Changed?

  • Deprecated as of July 8, 2026 - Requests to GET /v2/promotions with the EP-Public-Search-Type: cm_search header continue to work during the deprecation period, but we recommend removing any dependency on this header now
  • Removed on October 6, 2026 - After this date, the EP-Public-Search-Type: cm_search header and its advanced usage filter attributes (such as promo_name, promo_status, code_code, order_id, and order_customer_email) are no longer supported on this endpoint
  • Standard filtering is unaffected - Filtering promotions with eq(code,...) on GET /v2/promotions continues to work as before

For details see:

Subscription Details and Invoice Improvements in Commerce Manager

MINOR Improved Subscription and Invoice Management

We've made it easier to review subscriptions and invoices in Commerce Manager, with quicker access to details, clearer invoice context, and a smoother browsing experience.

What's New?

  • Stripe payment ID in invoices - The invoices table now displays the associated Stripe payment ID, so you can quickly reconcile payments
  • Subscription details in a sheet - Subscription details now open in a side sheet instead of a separate page, showing a focused version of the Subscriber view scoped to a single subscription and its invoices
  • Richer subscription sheet - The sheet now includes subscriber details, a link to the subscriber, and that subscription's invoices in one place
  • Clearer invoice context - In the Subscriber panel, each invoice now shows which subscription it belongs to via a subscription link/column and on the "last invoice" card
  • Pagination fix - Fixed a bug where invoice pagination would reset when closing the sheet

For details see:

Address line 3 support for shipping and billing addresses

MINOR Address line 3 support for shipping and billing addresses

Shipping and billing addresses on orders and shipping groups now support a line_3 field, giving merchants a third address line for complex address requirements.

What's New?

  • line_3 on order shipping address - The shipping_address object on orders now accepts and returns a line_3 field
  • line_3 on order billing address - The billing_address object on orders now also supports line_3
  • Shipping groups support - line_3 is available when creating and updating shipping groups on both carts and orders

For details see:

Catalog Search: relevance scores, synonym tuning, and date field faceting

MINOR Text match relevance scores on search results

Search hits now return a breakdown of how their text relevance score was derived, giving merchandisers a window into ranking decisions for debugging and relevance tuning.

What's New?

  • text_match_info on each hit - Every hit includes the overall relevance score plus additional signals such as best_field_score, best_field_weight, fields_matched, tokens_matched, num_tokens_dropped, and typo_prefix_score
  • Diagnose ranking - Use these signals to understand why one product ranks above another, or to build custom relative metrics for relevance evaluation
  • Internal ranking signals, not display metrics - Scores are not normalized to a 0–100 scale and are only comparable within the same result set, so they are intended for debugging rather than shopper-facing "match %" display

For details see:


MINOR Synonym tuning settings on search profiles

Search profiles now expose a dedicated synonym_settings object so you can control how synonym matches are ranked and resolved at search time, independent of typo tolerance settings.

What's New?

  • Demote synonym matches - Set demote_synonym_match to rank results matched via a synonym below direct (non-synonym) matches
  • Prefix synonym resolution - Set synonym_resolution_allowed_on_prefix to allow incomplete (prefix) query tokens to resolve to synonyms at every token position
  • Typo-tolerant synonym resolution - Set number_of_typos_allowed_when_resolving_synonyms (0, 1, or 2) so misspelled terms can still trigger a synonym expansion; this setting has moved here from typo tolerance

For details see:


MINOR Faceting on date fields

Date fields can now be used as facets, so users can filter results by dates such as when a product was created or last updated. Faceting is supported on both core date fields and custom (flow) date fields.

What's New?

  • Custom date field faceting - Date-typed custom fields are now facetable, joining the existing string, integer, float, and boolean facet types
  • Core date field faceting - Enable faceting on built-in date fields such as created_at and updated_at by setting facetable in core_field_overrides
  • Re-index required - A re-index is required for the change to take effect

For details see:

Redesigned Product & Bundle Editor in Commerce Manager

MAJOR A Revamped Product Editing Experience

We've completely redesigned the Product Editor in Commerce Manager, making it faster and easier to manage your catalog with greater clarity and less friction.

What's New?

  • Side-by-side editor - The editor opens alongside your product list, so you can select and switch between products without losing your place or disrupting your workflow
  • Preserved search & filter criteria - Active search and filter settings are retained as you navigate between products, making bulk review and updates far more efficient
  • Global saving - Changes are automatically queued as you work across sections; save everything at once with a single button, or discard to revert to the last saved state
  • Streamlined section navigation - Product sections are organized into four clear areas: Product Details, Categorization, Pricing, and Inventory
  • Variation navigator - For products with variations, switch between them using the variation selector or expand the product list table to navigate child products directly
  • Reorganized layout - The most relevant fields are prioritized up front, less frequently updated fields are read-only by default, and empty fields are hidden to reduce clutter, with a secondary view available when needed
  • Integrated custom attributes - Attribute templates are built directly into the Product Details tab, with inline value updates, expand/collapse via the toolbar, and a toggle to hide empty fields
  • Improved categorization - Assign products to hierarchies, nodes, or tags with ease, using a secondary pane to search, select multiple nodes at once, and remove them with a single click
  • Redesigned pricing tables - Pricing is displayed in a structured table with inline value entry, currency visibility toggles, and tax inclusion mode controls; volume and sale pricing options appear only when in use
  • Unified inventory experience - Inventory is organized by location for a clearer view of stock levels, with multi-location support and quantity management consistent with the broader inventory section in Commerce Manager

Explore the new experience today in the Products section of Commerce Manager

Upcoming deprecation of per_application promotion codes in Rule Promotions

MINOR Upcoming deprecation of per_application promotion codes in Rule Promotions

On September 14, 2026, we will remove the per_application value for the consume_unit field when creating promotion codes for Rule Promotions.

What's Changed?

  • consume_unit: per_application removed on September 14, 2026 - After this date, new promotion codes for a Rule Promotion can no longer be created with per_application; set consume_unit to per_checkout or omit the field to use the default
  • Existing codes are retained - Promotion codes already created with consume_unit: per_application continue to work as configured
  • Rule Promotions only - This change applies only to Rule Promotions. Promotion codes for standard (V1) Promotions are not affected

For details see:

Custom Discounts and Rule Promotions can coexist at the store level

MINOR Custom Discounts and Rule Promotions store-level coexistence

A store can now enable both Custom Discounts and Rule Promotions at the same time without the system rejecting either at the store configuration level.

What's New?

  • Simultaneous store-level configuration - Custom Discounts and Rule Promotions can both be enabled in a store's configuration without conflict
  • Per-cart exclusion preserved - A single cart applies only one promotion system at a time — Custom Discounts or Rule Promotions, never both.

For details see:

Catalog Search: synonyms, stopwords, typo tolerance, and richer indexing controls

MINOR Synonym Sets for Catalog Search

You can now define groups of equivalent or related terms so shoppers find products regardless of the exact wording they use.

What's New?

  • Manage synonym sets - Create, list, retrieve, update, and delete named synonym sets, scoped to an organization or a store
  • Multi-way and one-way synonyms - Treat terms as fully equivalent (sneakers, trainers, running shoes) or map a root term (fruit) to its synonyms (apple, mango, peach) in one direction only
  • Attach to search profiles - Reference synonym sets from a search profile's synonym_sets attribute so they apply at search time, with locale and symbol-indexing options per item

For details see:


MINOR Stopword Sets for Catalog Search

Define sets of common, low-value words (such as "the", "a", "an", "is") to ignore during search so results stay relevant and free of noise.

What's New?

  • Manage stopword sets - Create, list, retrieve, update, and delete stopword sets, scoped to an organization or a store
  • Per-locale sets - Maintain one stopword set per locale, with a default set for unspecified locales
  • Asynchronous sync - Track each set's sync status (pending_sync, synced, sync_failed) directly in API responses

For details see:


MINOR Handling typographical errors (misspellings) and prefix matching for search profiles

Search profiles now expose fine-grained control over how forgiving and predictive matching is, both at the profile level and per field.

What's New?

  • Typo tolerance - Configure typo correction with number of typos (misspellings), length thresholds, token-dropping behavior, split/join handling, and synonym typo resolution
  • Prefix matching - Treat the last query token as a prefix so results appear as shoppers type (for example, "red app" matches "red apple"), with a profile-level default and per-field overrides
  • Per-field overrides - Override num_typos and prefix on individual fields in your field weight configuration

For details see:


MINOR Stemming and tokenization controls for indexable fields

Indexable Fields can now fine-tune how text is analyzed, improving recall for descriptive content and giving you control over how terms containing special characters are indexed.

What's New?

  • Stemming - Enable Snowball stemming per field so a search for "running" also matches "run" or "runs" on both custom and core fields
  • Token separators and symbols to index - Control how text is split into tokens and which special characters are preserved, at the collection level or per field
  • Core field overrides - Apply stemming, tokenization, and sorting settings to built-in fields like name, description, and sku using core_field_overrides

For details see:

Planned changes to pagination on some PXM endpoints

MINOR Planned changes to pagination on some endpoints to align closer with the platform standard.

We're planning to introduce some minor changes to the way pagination works on some endpoints on or after 1st September 2026. We do not expect these changes to cause problems with existing customer implementations in most cases but are announcing in advance as there is a slim possibility that this may be a breaking change for some.

The following endpoints will be affected:

GET /pcm/products
GET /pcm/products/{productID}/children
GET /pcm/products/{productID}/nodes
GET /pcm/products/{productID}/custom-relationships
GET /pcm/products/{productID}/custom-relationships/{customRelationshipSlug}/products
GET /pcm/hierarchies
GET /pcm/hierarchies/nodes
GET /pcm/hierarchies/{hierarchyID}/nodes
GET /pcm/hierarchies/{hierarchyID}/children
GET /pcm/hierarchies/{hierarchyID}/nodes/{nodeID}/children
GET /pcm/hierarchies/{hierarchyID}/nodes/{nodeID}/products
GET /pcm/custom-relationships

For more details see: Product Pagination

Shopper and Admin Custom Attributes on Products

MINOR Introduced Shopper and Admin Custom Attributes for Products

Merchandisers and integrators can now attach flexible string metadata to products in two visibility tiers—catalog-visible shopper attributes and admin-only attributes—using the same model already established for hierarchy nodes.

What's New?

Extended the PIM product model with shopper_attributes and admin_attributes: optional maps of string keys to string values, validated consistently with nodes (including limits on the number of keys and on name and value length).

Product APIs support creating, updating, and reading these fields on products; persisted data is stored on the product document for downstream catalog and administration flows.

Product lifecycle events for create and update now include shopper and admin custom attributes where applicable, so downstream consumers can react without an extra round trip.

CSV export can emit custom attribute columns using the shopper_attributes. and admin_attributes. prefixes; selective exports use columns.include with either explicit keys or a per-type wildcard (shopper_attributes.* / admin_attributes.*), with validation that prevents combining a wildcard and individual columns for the same attribute type in one request.

CSV import understands the same column naming, so bulk workflows can round-trip attribute data alongside core product fields.

For variant matrices, new child products inherit the base product’s shopper and admin attributes at build time; rebuild reconciles parent keys onto matched existing children so shared parent metadata stays aligned while child-specific keys remain unless the parent removes them.

This release brings product custom attributes in line with hierarchy behavior and reduces the need for parallel systems or workarounds for storefront versus internal metadata.

For details see:

Custom Attribute-Based Condition for Cart Items

MINOR Custom Attribute-Based Condition for Cart Items

You can now target cart items based on their custom attributes when creating promotions in Promotions Builder.

What's New?

  • Custom attributes on cart items - Specify custom attributes to be added to cart items for use in promotional targeting.
  • Custom attribute targeting - Create promotion conditions that target cart items by their custom attributes, enabling more precise promotional rules.

For details see:

Item custom attribute conditions update
Item custom attribute conditions update in Commerce Manager

Location-Based Cart Item Separation

MINOR Location-Based Cart Item Separation

You can now control how cart items with the same SKU but different inventory locations are handled. When the separate_items_by_location setting is enabled, items with the same SKU are kept as separate line items based on their location instead of being merged.

What's New?

  • Location-based item separation - Enable or disable location-based item separation by setting separate_items_by_location to true or false. When enabled, cart items with the same SKU but different inventory locations are kept as separate line items instead of being merged.

    • Can be set at the store level or for individual carts with the setting: "item_settings": { "separate_items_by_location": true }. By default, it is false.
  • For details see:

  • Carts settings API

  • Multi location inventories

  • Cart item with location API

Max Units Limitation for Promotions

MINOR Max Units Limitation for Promotions

You can now set a maximum quantity limit across all eligible items in a promotion. This new Maximum discounted quantities across all eligible items option allows you to cap the total number of units that receive a discount.

What's New?

  • Cross-item unit cap - Set a total unit limit that applies across all eligible SKUs, not per-SKU

For details see:

External Reference ID for Shipping Groups

MINOR External Reference ID for Shipping Groups

Cart and order shipping groups now support an external_ref field, enabling merchants to link shipping groups to external systems such as ERPs.

What's New?

  • External reference field - Shipping groups support an external_ref field for integration with external systems. Set it when creating cart shipping groups, or update it on existing cart or order shipping groups without affecting other data.
  • Checkout persistence - When a cart with shipping groups is checked out, the external_ref values are preserved on the resulting order shipping groups

For details see:

Ask External AI