<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Elastic Path Documentation Blog</title>
        <link>https://elasticpath.dev/changelog</link>
        <description>Elastic Path Cloud Services Changelog</description>
        <lastBuildDate>Mon, 10 Aug 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>Copyright © 2026 Elastic Path</copyright>
        <item>
            <title><![CDATA[Catalog Search query-triggered boost and bury with search rules]]></title>
            <link>https://elasticpath.dev/changelog/2026/08/10/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/08/10/2026/changelog</guid>
            <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Catalog Search query-triggered boost and bury with search rules]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Catalog Search query-triggered boost and bury with search rules</p>
<p>Catalog Search now supports <strong>search rules</strong> in <strong>rule groups</strong> so merchandisers can boost, bury, pin, hide, rewrite, or filter results when a shopper query or browse listing matches a trigger.</p>
<p>What's New?</p>
<ul>
<li><strong>Search rule groups</strong> - Named containers for query-time merchandising rules</li>
<li><strong>Search rules</strong> - Exact, contains, and browse triggers with boost/bury, pin, hide, query rewrite, and rule filter actions</li>
<li><strong>Profile <code>rule_groups</code></strong> - Attach ordered rule group IDs to a search profile to activate the rules engine</li>
<li><strong>Ordering controls</strong> - <code>execution_order</code> within a group and <code>stop_after_match</code> across the profile pipeline</li>
<li><strong><code>matched_rules</code> on search results</strong> - See which rule and rule group IDs matched a full search (not autocomplete)</li>
</ul>
<p>What's Changed?</p>
<ul>
<li>Always-on profile boosts remain available for every search on a profile; search rules apply only when a trigger matches</li>
<li>Autocomplete does not evaluate search rules</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/guides/How-To/Catalogs/Search/using-search-rules">Using Search Rules</a></li>
<li><a href="https://elasticpath.dev/guides/How-To/Catalogs/Search/setting-up-search#attaching-search-rule-groups">Setting Up Catalog Search</a></li>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/search-rule-groups">Search Rule Groups API</a></li>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/search-rules">Search Rules API</a></li>
</ul>]]></content:encoded>
            <category>Catalog Search</category>
            <category>API</category>
        </item>
        <item>
            <title><![CDATA[Catalog Search Indexed Fields replaces Searchable Fields for schema discovery]]></title>
            <link>https://elasticpath.dev/changelog/2026/08/10/2026/indexed-fields-changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/08/10/2026/indexed-fields-changelog</guid>
            <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Catalog Search Indexed Fields replaces Searchable Fields for schema discovery]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Catalog Search Indexed Fields replaces Searchable Fields for schema discovery</p>
<p>Use <strong>Indexed Fields</strong> to list every field in the search index — including numeric, boolean, and date fields — with flags for how each field can be used.</p>
<p>What's New?</p>
<ul>
<li><strong><code>GET /pcm/catalogs/search/indexed-fields</code></strong> - Returns all exposed indexed fields of every type</li>
<li><strong><code>searchable</code> and <code>filterable</code> flags</strong> - See whether a field can be used as a full-text query field and in filter expressions</li>
<li><strong>Guide coverage</strong> - <a href="https://elasticpath.dev/guides/How-To/Catalogs/Search/setting-up-search#list-indexed-fields">List Indexed Fields</a> in Setting Up Catalog Search, with links from filtering, faceting, and sorting guides</li>
</ul>
<p>What's Changed?</p>
<ul>
<li><strong><code>GET /pcm/catalogs/searchable-fields</code> is deprecated</strong> - Prefer Indexed Fields. Searchable Fields returns only text query fields and does not cover fields needed for filtering and sorting</li>
<li>Searchable Fields remains available for existing integrations; migrate to Indexed Fields for complete schema discovery</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/guides/How-To/Catalogs/Search/setting-up-search#list-indexed-fields">List Indexed Fields</a></li>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/indexed-fields">Indexed Fields API</a></li>
<li><a href="https://elasticpath.dev/guides/How-To/Catalogs/Search/setting-up-search">Setting Up Catalog Search</a></li>
</ul>]]></content:encoded>
            <category>Catalog Search</category>
            <category>API</category>
        </item>
        <item>
            <title><![CDATA[Price books and product configurations in Commerce Manager]]></title>
            <link>https://elasticpath.dev/changelog/2026/08/03/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/08/03/2026/changelog</guid>
            <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MAJOR New price books and product configurations experience]]></description>
            <content:encoded><![CDATA[<p><strong>MAJOR</strong> New price books and product configurations experience</p>
<p>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.</p>
<p>What's New?</p>
<ul>
<li><strong>New price book UI</strong> - 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.</li>
<li><strong>Templates &amp; attributes</strong> - Templates and attributes are now a single page, with attributes created and edited inline under their owning template</li>
<li><strong>Variations</strong> - A dedicated list and editor, with variation options managed in slide-in sheets</li>
<li><strong>Product relationships</strong> - Previously "Custom relationships", now with its own list and editor view</li>
</ul>]]></content:encoded>
            <category>Commerce Manager</category>
            <category>Product Experience Manager</category>
        </item>
        <item>
            <title><![CDATA[Deprecation of with_tax and without_tax attributes in Orders filtering]]></title>
            <link>https://elasticpath.dev/changelog/2026/07/22/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/07/22/2026/changelog</guid>
            <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Deprecation notice of withtax and withouttax attributes when filtering Orders]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Deprecation notice of <code>with_tax</code> and <code>without_tax</code> attributes when filtering Orders</p>
<p>As of July 22, 2026, filtering orders using the <code>with_tax</code> and <code>without_tax</code> attributes on the <code>GET /v2/orders</code> endpoint is deprecated. This capability will be removed on October 19, 2026.</p>
<p>What's Changed?</p>
<ul>
<li><strong>Deprecated as of July 22, 2026</strong> - Requests to <code>GET /v2/orders?filter=</code> using the <code>with_tax</code> and <code>without_tax</code> attributes continue to work during the deprecation period, but we recommend removing any dependency on these filters now</li>
<li><strong>Removed on October 19, 2026</strong> - After this date, requests to <code>GET /v2/orders?filter=</code> filtered using the <code>with_tax</code> and <code>without_tax</code> attributes will return an error</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/carts/get-customer-orders">Get all Orders</a></li>
</ul>]]></content:encoded>
            <category>Carts &amp; Orders</category>
            <category>API</category>
        </item>
        <item>
            <title><![CDATA[Catalog rules can specify a search profile for shopper segments]]></title>
            <link>https://elasticpath.dev/changelog/2026/07/16/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/07/16/2026/changelog</guid>
            <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Catalog rules can specify a search profile for shopper segments]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Catalog rules can specify a search profile for shopper segments</p>
<p>Catalog rules can optionally include a search profile so shopper search follows the same segment as catalog and pricing — without hard-coding <code>search_profile</code> in your storefront.</p>
<p>What's New?</p>
<ul>
<li><strong>Optional <code>search_profile_slug</code> on catalog rules</strong> - Attach a search profile when configuring the rule for an account, customer, channel, or context tag</li>
<li><strong>Automatic profile on shopper search</strong> - Matching shopper search and multi-search use that profile for filters, ranking, and related search behavior; a valid rule slug takes precedence over the <code>search_profile</code> query parameter</li>
<li><strong><code>EP-Search-Profile</code> response header</strong> - See which profile was applied (<code>SYSTEMS_DEFAULT_PROFILE</code> when the built-in default is used)</li>
<li><strong>Price and assortment together</strong> - Use the same rule for price books and searchable assortment (for example a reseller-only category filter on the profile)</li>
</ul>
<p>What's Changed?</p>
<ul>
<li><strong>Shopper search profile resolution</strong> - Catalog rule slug (when valid) → <code>search_profile</code> query parameter → tenant default → built-in default</li>
<li><strong>Admin search unchanged</strong> - Explicit catalog/release search does not apply catalog rule profiles</li>
<li><strong>Safe fallthrough</strong> - An invalid or stale rule slug does not fail the search; Catalog Search falls through to the next resolution source</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/guides/How-To/Catalogs/Search/setting-up-search#how-a-search-profile-is-chosen">How a search profile is chosen</a></li>
<li><a href="https://elasticpath.dev/guides/How-To/Catalogs/price_segmentation#segment-product-assortment-with-a-search-profile">Price Segmentation — product assortment</a></li>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/catalog-search-introduction">Catalog Search API</a></li>
<li><a href="https://elasticpath.dev/guides/How-To/Catalogs/Search/setting-up-search">Setting Up Catalog Search</a></li>
</ul>]]></content:encoded>
            <category>Catalog Search</category>
            <category>Catalogs</category>
            <category>API</category>
        </item>
        <item>
            <title><![CDATA[Upcoming deprecation of advanced promotion usage filtering (cm_search) in standard Promotions]]></title>
            <link>https://elasticpath.dev/changelog/2026/07/08/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/07/08/2026/changelog</guid>
            <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Upcoming deprecation of cm_search advanced promotion usage filtering in standard Promotions]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Upcoming deprecation of <code>cm_search</code> advanced promotion usage filtering in standard Promotions</p>
<p>As of July 8, 2026, the advanced promotion usage filtering enabled by passing the <code>EP-Public-Search-Type: cm_search</code> header to the <code>GET /v2/promotions</code> endpoint is deprecated. This capability will be removed on October 6, 2026.</p>
<p>What's Changed?</p>
<ul>
<li><strong>Deprecated as of July 8, 2026</strong> - Requests to <code>GET /v2/promotions</code> with the <code>EP-Public-Search-Type: cm_search</code> header continue to work during the deprecation period, but we recommend removing any dependency on this header now</li>
<li><strong>Removed on October 6, 2026</strong> - After this date, the <code>EP-Public-Search-Type: cm_search</code> header and its advanced usage filter attributes (such as <code>promo_name</code>, <code>promo_status</code>, <code>code_code</code>, <code>order_id</code>, and <code>order_customer_email</code>) are no longer supported on this endpoint</li>
<li><strong>Standard filtering is unaffected</strong> - Filtering promotions with <code>eq(code,...)</code> on <code>GET /v2/promotions</code> continues to work as before</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/promotions/get-all-promotions">Get all Promotions</a></li>
<li><a href="https://elasticpath.dev/docs/api/promotions/promotions-standard-introduction">Promotions Standard Introduction</a></li>
</ul>]]></content:encoded>
            <category>Promotions Standard</category>
            <category>API</category>
        </item>
        <item>
            <title><![CDATA[Subscription Details and Invoice Improvements in Commerce Manager]]></title>
            <link>https://elasticpath.dev/changelog/2026/06/26/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/06/26/2026/changelog</guid>
            <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Improved Subscription and Invoice Management]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Improved Subscription and Invoice Management</p>
<p>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.</p>
<p>What's New?</p>
<ul>
<li><strong>Stripe payment ID in invoices</strong> - The invoices table now displays the associated Stripe payment ID, so you can quickly reconcile payments</li>
<li><strong>Subscription details in a sheet</strong> - 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</li>
<li><strong>Richer subscription sheet</strong> - The sheet now includes subscriber details, a link to the subscriber, and that subscription's invoices in one place</li>
<li><strong>Clearer invoice context</strong> - In the Subscriber panel, each invoice now shows which subscription it belongs to via a subscription link/column and on the "last invoice" card</li>
<li><strong>Pagination fix</strong> - Fixed a bug where invoice pagination would reset when closing the sheet</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/commerce-manager/subscriptions/invoicing/viewing-invoices">Viewing Invoices</a></li>
<li><a href="https://elasticpath.dev/docs/commerce-manager/subscriptions/subscriptions/managing-active-subscriptions">Managing Active Subscriptions</a></li>
</ul>]]></content:encoded>
            <category>Commerce Manager</category>
            <category>Subscriptions</category>
            <category>Payments</category>
        </item>
        <item>
            <title><![CDATA[Address line 3 support for shipping and billing addresses]]></title>
            <link>https://elasticpath.dev/changelog/2026/06/22/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/06/22/2026/changelog</guid>
            <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Address line 3 support for shipping and billing addresses]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Address line 3 support for shipping and billing addresses</p>
<p>Shipping and billing addresses on orders and shipping groups now support a <code>line_3</code> field, giving merchants a third address line for complex address requirements.</p>
<p>What's New?</p>
<ul>
<li><strong><code>line_3</code> on order shipping address</strong> - The <code>shipping_address</code> object on orders now accepts and returns a <code>line_3</code> field</li>
<li><strong><code>line_3</code> on order billing address</strong> - The <code>billing_address</code> object on orders now also supports <code>line_3</code></li>
<li><strong>Shipping groups support</strong> - <code>line_3</code> is available when creating and updating shipping groups on both carts and orders</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/carts/checkout-api">Checkout</a></li>
<li><a href="https://elasticpath.dev/docs/api/carts/create-order-shipping-group">Create a Shipping Group for an Order</a></li>
</ul>]]></content:encoded>
            <category>Carts &amp; Orders</category>
        </item>
        <item>
            <title><![CDATA[Catalog Search: relevance scores, synonym tuning, and date field faceting]]></title>
            <link>https://elasticpath.dev/changelog/2026/06/17/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/06/17/2026/changelog</guid>
            <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Text match relevance scores on search results]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Text match relevance scores on search results</p>
<p>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.</p>
<p>What's New?</p>
<ul>
<li><strong><code>text_match_info</code> on each hit</strong> - Every hit includes the overall relevance <code>score</code> plus additional signals such as <code>best_field_score</code>, <code>best_field_weight</code>, <code>fields_matched</code>, <code>tokens_matched</code>, <code>num_tokens_dropped</code>, and <code>typo_prefix_score</code></li>
<li><strong>Diagnose ranking</strong> - Use these signals to understand why one product ranks above another, or to build custom relative metrics for relevance evaluation</li>
<li><strong>Internal ranking signals, not display metrics</strong> - 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</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/search">Search</a></li>
</ul>
<hr>
<p><strong>MINOR</strong> Synonym tuning settings on search profiles</p>
<p>Search profiles now expose a dedicated <code>synonym_settings</code> object so you can control how synonym matches are ranked and resolved at search time, independent of typo tolerance settings.</p>
<p>What's New?</p>
<ul>
<li><strong>Demote synonym matches</strong> - Set <code>demote_synonym_match</code> to rank results matched via a synonym below direct (non-synonym) matches</li>
<li><strong>Prefix synonym resolution</strong> - Set <code>synonym_resolution_allowed_on_prefix</code> to allow incomplete (prefix) query tokens to resolve to synonyms at every token position</li>
<li><strong>Typo-tolerant synonym resolution</strong> - Set <code>number_of_typos_allowed_when_resolving_synonyms</code> (0, 1, or 2) so misspelled terms can still trigger a synonym expansion; this setting has moved here from typo tolerance</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/search-profiles">Search Profiles</a></li>
</ul>
<hr>
<p><strong>MINOR</strong> Faceting on date fields</p>
<p>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.</p>
<p>What's New?</p>
<ul>
<li><strong>Custom date field faceting</strong> - Date-typed custom fields are now facetable, joining the existing string, integer, float, and boolean facet types</li>
<li><strong>Core date field faceting</strong> - Enable faceting on built-in date fields such as <code>created_at</code> and <code>updated_at</code> by setting <code>facetable</code> in <code>core_field_overrides</code></li>
<li><strong>Re-index required</strong> - A re-index is required for the change to take effect</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/indexable-fields">Indexable Fields</a></li>
</ul>]]></content:encoded>
            <category>Search</category>
            <category>Product Experience Manager</category>
            <category>Catalogs</category>
            <category>API</category>
        </item>
        <item>
            <title><![CDATA[Redesigned Product & Bundle Editor in Commerce Manager]]></title>
            <link>https://elasticpath.dev/changelog/2026/06/16/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/06/16/2026/changelog</guid>
            <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MAJOR A Revamped Product Editing Experience]]></description>
            <content:encoded><![CDATA[<p><strong>MAJOR</strong> A Revamped Product Editing Experience</p>
<p>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.</p>
<iframe src="https://drive.google.com/file/d/10LBNgcRSLBtGLzYoiHoRg9uw-BHf9K_M/preview" width="640" height="480"></iframe>
<p>What's New?</p>
<ul>
<li><strong>Side-by-side editor</strong> - The editor opens alongside your product list, so you can select and switch between products without losing your place or disrupting your workflow</li>
<li><strong>Preserved search &amp; filter criteria</strong> - Active search and filter settings are retained as you navigate between products, making bulk review and updates far more efficient</li>
<li><strong>Global saving</strong> - 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</li>
<li><strong>Streamlined section navigation</strong> - Product sections are organized into four clear areas: Product Details, Categorization, Pricing, and Inventory</li>
<li><strong>Variation navigator</strong> - For products with variations, switch between them using the variation selector or expand the product list table to navigate child products directly</li>
<li><strong>Reorganized layout</strong> - 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</li>
<li><strong>Integrated custom attributes</strong> - 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</li>
<li><strong>Improved categorization</strong> - 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</li>
<li><strong>Redesigned pricing tables</strong> - 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</li>
<li><strong>Unified inventory experience</strong> - 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</li>
</ul>
<p>Explore the new experience today in the Products section of Commerce Manager</p>]]></content:encoded>
            <category>Commerce Manager</category>
            <category>Product Experience Manager</category>
        </item>
        <item>
            <title><![CDATA[Upcoming deprecation of per_application promotion codes in Rule Promotions]]></title>
            <link>https://elasticpath.dev/changelog/2026/06/16/2026/changelog2</link>
            <guid>https://elasticpath.dev/changelog/2026/06/16/2026/changelog2</guid>
            <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Upcoming deprecation of per_application promotion codes in Rule Promotions]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Upcoming deprecation of <code>per_application</code> promotion codes in Rule Promotions</p>
<p>On September 14, 2026, we will remove the <code>per_application</code> value for the <code>consume_unit</code> field when creating promotion codes for Rule Promotions.</p>
<p>What's Changed?</p>
<ul>
<li><strong><code>consume_unit: per_application</code> removed on September 14, 2026</strong> - After this date, new promotion codes for a Rule Promotion can no longer be created with <code>per_application</code>; set <code>consume_unit</code> to <code>per_checkout</code> or omit the field to use the default</li>
<li><strong>Existing codes are retained</strong> - Promotion codes already created with <code>consume_unit: per_application</code> continue to work as configured</li>
<li><strong>Rule Promotions only</strong> - This change applies only to Rule Promotions. Promotion codes for standard (V1) Promotions are not affected</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/promotions-builder/promotions-builder-codes/create-promotion-codes">Create Promotion Codes</a></li>
<li><a href="https://elasticpath.dev/docs/commerce-manager/promotions-builder/creating-promotion-codes">Creating Promotion Codes in Commerce Manager</a></li>
</ul>]]></content:encoded>
            <category>Promotions Builder</category>
            <category>API</category>
        </item>
        <item>
            <title><![CDATA[Custom Discounts and Rule Promotions can coexist at the store level]]></title>
            <link>https://elasticpath.dev/changelog/2026/06/11/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/06/11/2026/changelog</guid>
            <pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Custom Discounts and Rule Promotions store-level coexistence]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Custom Discounts and Rule Promotions store-level coexistence</p>
<p>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.</p>
<p>What's New?</p>
<ul>
<li><strong>Simultaneous store-level configuration</strong> - Custom Discounts and Rule Promotions can both be enabled in a store's configuration without conflict</li>
<li><strong>Per-cart exclusion preserved</strong> - A single cart applies only one promotion system at a time — Custom Discounts or Rule Promotions, never both.</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/carts/put-v-2-settings-cart">Cart settings</a></li>
</ul>]]></content:encoded>
            <category>Carts &amp; Orders</category>
        </item>
        <item>
            <title><![CDATA[Catalog Search: synonyms, stopwords, typo tolerance, and richer indexing controls]]></title>
            <link>https://elasticpath.dev/changelog/2026/06/08/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/06/08/2026/changelog</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Synonym Sets for Catalog Search]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Synonym Sets for Catalog Search</p>
<p>You can now define groups of equivalent or related terms so shoppers find products regardless of the exact wording they use.</p>
<p>What's New?</p>
<ul>
<li><strong>Manage synonym sets</strong> - Create, list, retrieve, update, and delete named synonym sets, scoped to an organization or a store</li>
<li><strong>Multi-way and one-way synonyms</strong> - Treat terms as fully equivalent (<code>sneakers</code>, <code>trainers</code>, <code>running shoes</code>) or map a root term (<code>fruit</code>) to its synonyms (<code>apple</code>, <code>mango</code>, <code>peach</code>) in one direction only</li>
<li><strong>Attach to search profiles</strong> - Reference synonym sets from a search profile's <code>synonym_sets</code> attribute so they apply at search time, with locale and symbol-indexing options per item</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/synonym-sets">Synonym Sets</a></li>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/search-profiles">Search Profiles</a></li>
</ul>
<hr>
<p><strong>MINOR</strong> Stopword Sets for Catalog Search</p>
<p>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.</p>
<p>What's New?</p>
<ul>
<li><strong>Manage stopword sets</strong> - Create, list, retrieve, update, and delete stopword sets, scoped to an organization or a store</li>
<li><strong>Per-locale sets</strong> - Maintain one stopword set per locale, with a default set for unspecified locales</li>
<li><strong>Asynchronous sync</strong> - Track each set's sync status (<code>pending_sync</code>, <code>synced</code>, <code>sync_failed</code>) directly in API responses</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/stopword-sets">Stopword Sets</a></li>
</ul>
<hr>
<p><strong>MINOR</strong> Handling typographical errors (misspellings) and prefix matching for search profiles</p>
<p>Search profiles now expose fine-grained control over how forgiving and predictive matching is, both at the profile level and per field.</p>
<p>What's New?</p>
<ul>
<li><strong>Typo tolerance</strong> - Configure typo correction with number of typos (misspellings), length thresholds, token-dropping behavior, split/join handling, and synonym typo resolution</li>
<li><strong>Prefix matching</strong> - 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</li>
<li><strong>Per-field overrides</strong> - Override <code>num_typos</code> and <code>prefix</code> on individual fields in your field weight configuration</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/search-profiles">Search Profiles</a></li>
</ul>
<hr>
<p><strong>MINOR</strong> Stemming and tokenization controls for indexable fields</p>
<p>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.</p>
<p>What's New?</p>
<ul>
<li><strong>Stemming</strong> - Enable Snowball stemming per field so a search for "running" also matches "run" or "runs" on both custom and core fields</li>
<li><strong>Token separators and symbols to index</strong> - Control how text is split into tokens and which special characters are preserved, at the collection level or per field</li>
<li><strong>Core field overrides</strong> - Apply stemming, tokenization, and sorting settings to built-in fields like <code>name</code>, <code>description</code>, and <code>sku</code> using <code>core_field_overrides</code></li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/pxm/catalog-search/indexable-fields">Indexable Fields</a></li>
</ul>]]></content:encoded>
            <category>Search</category>
            <category>Product Experience Manager</category>
            <category>Catalogs</category>
        </item>
        <item>
            <title><![CDATA[Planned changes to pagination on some PXM endpoints]]></title>
            <link>https://elasticpath.dev/changelog/2026/05/27/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/05/27/2026/changelog</guid>
            <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Planned changes to pagination on some endpoints to align closer with the platform standard.]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Planned changes to pagination on some endpoints to align closer with the platform standard.</p>
<p>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.</p>
<p>The following endpoints will be affected:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/products</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/products/{productID}/children</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/products/{productID}/nodes</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/products/{productID}/custom-relationships</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/products/{productID}/custom-relationships/{customRelationshipSlug}/products</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/hierarchies</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/hierarchies/nodes</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/hierarchies/{hierarchyID}/nodes</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/hierarchies/{hierarchyID}/children</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/hierarchies/{hierarchyID}/nodes/{nodeID}/children</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/hierarchies/{hierarchyID}/nodes/{nodeID}/products</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">GET /pcm/custom-relationships</span><br></span></code></pre></div></div>
<p>For more details see: <a href="https://elasticpath.dev/docs/api/pxm/products/get-all-products#pagination">Product Pagination</a></p>]]></content:encoded>
            <category>Product Experience Manager</category>
        </item>
        <item>
            <title><![CDATA[Cart Total Condition Support for Cart Discount Actions]]></title>
            <link>https://elasticpath.dev/changelog/2026/05/19/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/05/19/2026/changelog</guid>
            <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Promotions Builder now supports carttotal as an action condition on cartdiscount actions]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Promotions Builder now supports <code>cart_total</code> as an action condition on <code>cart_discount</code> actions</p>
<p>What's New?</p>
<ul>
<li>You can now gate a <code>cart_discount</code> action behind a cart total threshold using the <code>condition</code> field. For example, you can create tiered <code>cart_total</code> discounts using multiple <code>cart_total</code> conditions in a single promotion.</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/promotions-builder/create-rule-promotion">Promotions Builder API Overview</a></li>
</ul>]]></content:encoded>
            <category>Promotions Builder</category>
        </item>
        <item>
            <title><![CDATA[Shopper and Admin Custom Attributes on Products]]></title>
            <link>https://elasticpath.dev/changelog/2026/04/16/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/04/16/2026/changelog</guid>
            <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Introduced Shopper and Admin Custom Attributes for Products]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Introduced Shopper and Admin Custom Attributes for Products</p>
<p>Merchandisers and integrators can now attach flexible string metadata to products in two visibility tiers—catalog-visible <strong>shopper</strong> attributes and <strong>admin-only</strong> attributes—using the same model already established for hierarchy nodes.</p>
<p>What's New?</p>
<p>Extended the PIM product model with <code>shopper_attributes</code> and <code>admin_attributes</code>: 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).</p>
<p>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.</p>
<p>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.</p>
<p>CSV <strong>export</strong> can emit custom attribute columns using the <code>shopper_attributes.</code> and <code>admin_attributes.</code> prefixes; <strong>selective exports</strong> use <code>columns.include</code> with either explicit keys or a per-type wildcard (<code>shopper_attributes.*</code> / <code>admin_attributes.*</code>), with validation that prevents combining a wildcard and individual columns for the same attribute type in one request.</p>
<p>CSV <strong>import</strong> understands the same column naming, so bulk workflows can round-trip attribute data alongside core product fields.</p>
<p>For variant matrices, <strong>new</strong> child products inherit the base product’s shopper and admin attributes at build time; <strong>rebuild</strong> reconciles parent keys onto matched existing children so shared parent metadata stays aligned while child-specific keys remain unless the parent removes them.</p>
<p>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.</p>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/guides/key-concepts/product-experience-manager/custom-attributes">Custom attributes on products</a></li>
</ul>]]></content:encoded>
            <category>Products</category>
            <category>PIM</category>
            <category>Commerce Manager</category>
            <category>Hierarchies</category>
        </item>
        <item>
            <title><![CDATA[Custom Data Fields for Shipping Groups]]></title>
            <link>https://elasticpath.dev/changelog/2026/03/31/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/03/31/2026/changelog</guid>
            <pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Custom Data Fields for Shipping Groups]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Custom Data Fields for Shipping Groups</p>
<p>Shipping Groups now support flows, enabling clients to add custom data fields to shipping group objects.</p>
<p>What's New?</p>
<ul>
<li><strong>Custom fields for Shipping Groups</strong> - Extend cart and order shipping groups with custom data fields using flows</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/docs/api/carts/create-shipping-group">Cart Shipping Groups</a></li>
<li><a href="https://elasticpath.dev/docs/api/flows/flows">Extend a Resource</a></li>
</ul>]]></content:encoded>
            <category>Carts &amp; Orders</category>
            <category>Flows</category>
        </item>
        <item>
            <title><![CDATA[Custom Attribute-Based Condition for Cart Items]]></title>
            <link>https://elasticpath.dev/changelog/2026/03/02/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/03/02/2026/changelog</guid>
            <pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Custom Attribute-Based Condition for Cart Items]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Custom Attribute-Based Condition for Cart Items</p>
<p>You can now target cart items based on their custom attributes when creating promotions in Promotions Builder.</p>
<p>What's New?</p>
<ul>
<li><strong>Custom attributes on cart items</strong> - Specify custom attributes to be added to cart items for use in promotional targeting.</li>
<li><strong>Custom attribute targeting</strong> - Create promotion conditions that target cart items by their custom attributes, enabling more precise promotional rules.</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/guides/How-To/promotions-builder/item-custom-attribute-promotion">How to create promotion with item custom attribute</a></li>
<li><a href="https://elasticpath.dev/docs/api/carts/cart-items">Cart Items</a></li>
<li><a href="https://elasticpath.dev/docs/api/promotions-builder/create-rule-promotion">Promotions Builder API</a></li>
</ul>
<!-- -->
<grid class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6"><a class="block rounded-3xl overflow-hidden hover:bg-gray-100 hover:shadow-md shadow-lg transition-shadow duration-200 no-underline hover:no-underline dark:bg-gray-900 undefined"><div class="aspect-video"><iframe class="w-full h-full object-cover" src="" title="Embedded video" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div><div class="px-4 py-2"><div class="font-bold text-lg mb-2">Item custom attribute conditions update</div><div class="text-gray-700 dark:text-white text-sm font-normal pb-4">Item custom attribute conditions update in Commerce Manager</div></div></a></grid>]]></content:encoded>
            <category>Commerce Manager</category>
            <category>Promotions Builder</category>
            <category>Carts &amp; Orders</category>
        </item>
        <item>
            <title><![CDATA[Location-Based Cart Item Separation]]></title>
            <link>https://elasticpath.dev/changelog/2026/02/26/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/02/26/2026/changelog</guid>
            <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Location-Based Cart Item Separation]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Location-Based Cart Item Separation</p>
<p>You can now control how cart items with the same SKU but different inventory locations are handled. When the <code>separate_items_by_location</code> setting is enabled, items with the same SKU are kept as separate line items based on their location instead of being merged.</p>
<p>What's New?</p>
<ul>
<li>
<p><strong>Location-based item separation</strong> - Enable or disable location-based item separation by setting <code>separate_items_by_location</code> to <code>true</code> or <code>false</code>. When enabled, cart items with the same SKU but different inventory locations are kept as separate line items instead of being merged.</p>
<ul>
<li>Can be set at the store level or for individual carts with the setting: <code>"item_settings": { "separate_items_by_location": true }</code>. By default, it is <code>false</code>.</li>
</ul>
</li>
<li>
<p>For details see:</p>
</li>
<li>
<p><a href="https://elasticpath.dev/docs/api/carts/put-v-2-settings-cart">Carts settings API</a></p>
</li>
<li>
<p><a href="https://elasticpath.dev/docs/api/pxm/inventory_mli/inventories-introduction#multi-location-inventories">Multi location inventories</a></p>
</li>
<li>
<p><a href="https://elasticpath.dev/docs/api/carts/manage-carts#stock-locations">Cart item with location API</a></p>
</li>
</ul>]]></content:encoded>
            <category>Carts &amp; Orders</category>
        </item>
        <item>
            <title><![CDATA[Max Units Limitation for Promotions]]></title>
            <link>https://elasticpath.dev/changelog/2026/02/23/2026/changelog</link>
            <guid>https://elasticpath.dev/changelog/2026/02/23/2026/changelog</guid>
            <pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MINOR Max Units Limitation for Promotions]]></description>
            <content:encoded><![CDATA[<p><strong>MINOR</strong> Max Units Limitation for Promotions</p>
<p>You can now set a maximum quantity limit across all eligible items in a promotion. This new <strong>Maximum discounted quantities across all eligible items</strong> option allows you to cap the total number of units that receive a discount.</p>
<p>What's New?</p>
<ul>
<li><strong>Cross-item unit cap</strong> - Set a total unit limit that applies across all eligible SKUs, not per-SKU</li>
</ul>
<p>For details see:</p>
<ul>
<li><a href="https://elasticpath.dev/guides/How-To/promotions-builder/item-discount-with-max-units-limitation">Creating an Item Discount with Max Units Limitation Guide</a></li>
<li><a href="https://elasticpath.dev/docs/api/promotions-builder/create-rule-promotion">Rule Promotions API</a></li>
</ul>]]></content:encoded>
            <category>Commerce Manager</category>
            <category>Promotions Builder</category>
        </item>
    </channel>
</rss>