> Note:
> We're no longer publishing API release notes. Instead, you can find the latest updates on Shopify APIs in our [developer changelog](https://shopify.dev/changelog). You can filter updates by area. For example, you can filter API updates by the API name and version, such as GraphQL Admin API changes in version 2025-04.


<table>
  <caption>The API version release date and the date that the version is no longer supported</caption>
  <thead>
    <tr>
      <th scope="col">Release date</th>
      <th scope="col">Date version is no longer supported</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td scope="row">July 1, 2023</td>
      <td scope="row">July 1, 2024</td>
   </tr>
  </tbody>
 </table>

**What's new in 2023-07**

The following features were added in version 2023-07 of Shopify's APIs.

Highlights from the GraphQL Admin API changes:

- Additional fees as a sale line type
- New mutation for removing a `CompanyContact` from a `Company`
- Creation of the new Customer Merge API
- Transition of application credit creation to the Partner API
- New mutations `fulfillmentOrderSplit` and `fulfillmentOrderMerge` that enable splitting and merging fulfillment orders
- Sort orders by total item quantity
- Specify a custom filename when using the `fileCreate` mutation

Highlights from the GraphQL Storefront API changes:

- Search and predictive search are now available
- Local pickup inventory availability is now available

Highlights from the REST Admin API changes:

- Transition of application credit creation to the Partner API
- Discount class for `applied_discounts` and `discount_allocations` is now available on a line item for the [`Checkout`](/docs/api/admin-rest/2023-07/resources/checkout) resource
- The `tax_exempt` field is now available on the `Order` resource
- The [`ONLINE_STORE_POST_PURCHASE_CROSS_SELL`](docs/api/admin-graphql/2023-07/enums/FulfillmentHoldReason#value-onlinestorepostpurchasecrosssell) fulfillment hold reason is now available

## Breaking changes

These changes require special attention. If your app uses these API resources, and you don’t adjust your usage of the resources according to the following instructions, then your app might break when you update to this API version.


### Deprecating creation of application credits through the Admin API

Creating app credits through the Admin API is now deprecated. This affects both the [REST resource](/docs/api/admin-rest/2023-07/resources/applicationcredit#post-application-credits) and the [GraphQL mutation](/docs/api/admin-graphql/2023-07/mutations/appCreditCreate).

Moving forward, create app credits using the new [`appCreditCreate`](/docs/api/partner/2023-07/mutations/appCreditCreate) mutation in the Partner API. This change will now allow Partners to issue credits to stores that have uninstalled their app.

Learn more about [awarding app credits](/docs/apps/launch/billing/award-app-credits).

### Breaking changes to the product_feeds webhook topics

The following major changes have been introduced to the `product_feeds` webhook topics:

- Deprecation of the use of `bulk` in favour of `full` for the [`product_feeds/full_sync`](/docs/api/admin-rest/2023-07/resources/webhook#event-topics-product-feeds-full-sync) webhook topic. To continue receiving full sync notifications, use the [`productFullSync`](/docs/api/admin-graphql/2023-07/mutations/productFullSync) mutation instead of `productBulkSync`.
- The spelling of the `occurred_at` field in the metadata for `product_feeds` notifications has been corrected.

### Creation of region-specific subfolders on country-code top-level domains (ccTLDs)

You can now create region-specific subfolders on ccTLDs such as `shop.ca` or `shop.fr`. This is a departure from the previous behaviour where subfolders could only be created on generic top-level domains (gTLDs).

### New error code added to inventory quantity mutations

The error code `item_not_stocked_at_location` has been added to the [`inventorySetOnHandQuantities`](/docs/api/admin-graphql/2023-07/mutations/inventorySetOnHandQuantities), [`inventoryAdjustQuantities`](/docs/api/admin-graphql/2023-07/mutations/inventoryAdjustQuantities), and [`inventoryMoveQuantities`](/docs/api/admin-graphql/2023-07/mutations/inventoryMoveQuantities) mutations. This error code is returned when you attempt to change inventory quantities for an item that isn't stocked at the specified location.

### No automatic creation of a subfolder web presence for a single-country market

As of API version 2023-07, a subfolder web presence for a single-country market is no longer automatically created.

To maintain the existing functionality, use the [`marketWebPresenceCreate`](/docs/api/admin-graphql/2023-07/mutations/marketWebPresenceCreate) mutation following the creation of a market. Passing the country code of the market region as the `subfolderSuffix` will create the corresponding web presence.

### Mandatory provision of the `chargebackLiability` field in the Payments Apps API

As of version 2023-07 of the Payments Apps API, the [`chargebackLiability`](/docs/api/payments-apps/2023-07/input-objects/PaymentSessionThreeDSecureAuthenticationData#field-paymentsessionthreedsecureauthenticationdata-chargebackliability) field must be provided in the 3-D Secure [`PaymentSessionThreeDSecureAuthenticationData`](/docs/api/payments-apps/2023-07/input-objects/PaymentSessionThreeDSecureAuthenticationData) input object. This change allows merchants to better manage their orders.

Learn more about the [Payments Apps API and 3-D Secure](/docs/apps/build/payments/credit-card/use-the-cli).

### Removal of the `delivery_category` field on order shipping lines

As of API version 2023-07, we're deprecating the order shipping line `delivery_category` property. The property hasn't been in use since `2020-06-12` and will no longer be present.

### Translate filter settings

As of API version 2023-07, we're introducing a new capability to translate filters.

When enabled, all filter labels will be eligible for translations through the [Translations API](/docs/apps/build/markets/manage-translated-content) as well as the [Translate and Adapt](https://apps.shopify.com/translate-and-adapt?shpxid=c0b0c0ff-6A02-4274-4021-DD5A9A2B85A9) app.

### Use of Flow action extensions to update marketing activity delivery status

We're deprecating the [`abandonmentEmailStateUpdate`](/docs/api/admin-graphql/2023-07/mutations/abandonmentEmailStateUpdate) mutation. Instead, you can use the [`abandonmentUpdateActivitiesDeliveryStatuses`](/docs/api/admin-graphql/2023-07/mutations/abandonmentUpdateActivitiesDeliveryStatuses) to update the delivery status of marketing activities created using a Flow action extension.

### Use of `total_count` on `CustomerSegmentMemberConnection` endpoint

You can now use `total_count` on the [`CustomerSegmentMemberConnection`](/docs/api/admin-graphql/2023-07/connections/CustomerSegmentMemberConnection) endpoint, which provides the total count of a specified customer segment. Additionally, the `total_count` field on [`SegmentStatistics`](/docs/api/admin-graphql/2023-07/objects/SegmentStatistics) object has been removed. The new `total_count` functionality makes it easier to know the count of members of a specified segment.

## GraphQL Admin API changes

The following are all the changes introduced in the 2023-07 version of the GraphQL Admin API.

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New API to update marketing activity delivery status <span id="marketing-delivery-status" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of 2023-07, you can use the <a href="/docs/api/admin-graphql/2023-07/mutations/abandonmentUpdateActivitiesDeliveryStatuses"><code class="text-highlight text-highlight--grey">abandonmentUpdateActivitiesDeliveryStatuses</code></a> to update the delivery status of marketing activities created via Flow action extension. We&#39;re deprecating the <a href="/docs/api/admin-graphql/2023-07/mutations/abandonmentEmailStateUpdate"><code class="text-highlight text-highlight--grey">abandonmentEmailStateUpdate</code></a> mutation since it&#39;s being replaced by the new API.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New error codes added to <code>fileUpdate</code> mutation <span id="fileupdate-error-codes" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, the <a href="/docs/api/admin-graphql/2023-07/enums/FilesErrorCode">new error codes</a> <code class="text-highlight text-highlight--grey">FILENAME_ALREADY_EXISTS</code> and <code class="text-highlight text-highlight--grey">INVALID_FILENAME</code> have been added to the <a href="/docs/api/admin-graphql/2023-07/mutations/fileUpdate"><code class="text-highlight text-highlight--grey">fileUpdate</code></a> mutation. These error codes are returned when you attempt to update the filename (URL Handle) and the input either matches an existing filename (URL Handle) or it&#39;s invalid.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New field <code>taxExempt</code> on the <code>Order</code> object</h3>
  </div>
  <div class="accordion-content">
    <p>As of GraphQL Admin API 2023-07, the <code class="text-highlight text-highlight--grey">taxExempt</code> field has been added to the <a href="/docs/api/admin-graphql/2023-07/objects/Order"><code class="text-highlight text-highlight--grey">Order</code></a> object. You can use this field to determine whether an order was exempt from taxes.</p>
<p>Orders can be exempt from taxes if the <strong>Charge taxes</strong> option was disabled during the creation of a draft order, or if the order was created for a customer with the <strong>Collect tax</strong> option disabled.</p>
<aside class="note">
  <h4>Note</h4>
  <p>
Any products that are tax exempt in an order aren&#39;t considered when calculating the <code class="text-highlight text-highlight--grey">taxExempt</code> field.</p>
</aside>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Tax partners can now configure the state of a tax app configuration</h3>
  </div>
  <div class="accordion-content">
    <p>We’ve added the <a href="/docs/api/admin-graphql/2023-07/mutations/taxAppConfigure"><code class="text-highlight text-highlight--grey">taxAppConfigure</code></a> mutation, which enables selected tax partners to configure the state of an existing integrated tax service. This extended control provides Partners with more flexibility and adaptability in managing tax services, ensuring a smoother, more efficient operation for their app.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Additional fees as a sale line type</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, sales records can now be of type <a href="/docs/api/admin-graphql/2023-07/objects/AdditionalFeeSale"><code class="text-highlight text-highlight--grey">AdditonalFeeSale</code></a>, which represents a sale associated with an additional fee charge.</p>
<p>For more information on this new type implementation, refer to the <a href="/docs/api/admin-graphql/2023-07/interfaces/Sale">sale interface</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Subfolders can now exist on ccTLD domains</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now create region-specific subfolders on country-code top-level domains (ccTLDs), such as <code class="text-highlight text-highlight--grey">shop.ca</code> or <code class="text-highlight text-highlight--grey">shop.fr</code>. Previously, subfolders could only be created on generic top-level domains (gTLDs).</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New mutation for removing a <code>CompanyContact</code> from a Company</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the <a href="/docs/api/admin-graphql/2023-07/mutations/companyContactRemoveFromCompany"><code class="text-highlight text-highlight--grey">companyContactRemoveFromCompany</code></a> mutation to remove a company contact from a company, even if they have placed orders on behalf of the company.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Webhooks for B2B Customers Flow primitives</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re providing <a href="/docs/api/admin-graphql/2023-07/enums/WebhookSubscriptionTopic">additional webhook notifications</a> for changes to the major entities within the B2B Customers product. These hooks enable better integration with Flow. The following webhooks are provided:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">company_contact_roles/assign</code></li>
<li><code class="text-highlight text-highlight--grey">company_contact_roles/revoke</code></li>
</ul>
<p><a href="/docs/api/admin-rest/2023-07/resources/webhook#event-topics">Learn more about the webhooks</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3><code>`ExchangeV2`</code> field is available behind beta flag on the <code>Order</code> object</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the <code class="text-highlight text-highlight--grey">exchangeV2</code> field on the <a href="/docs/api/admin-graphql/2023-07/objects/Order"><code class="text-highlight text-highlight--grey">Order</code></a> object to get a better exchange (an <code class="text-highlight text-highlight--grey">exchangeV2</code> object value). This helps ERP partners properly integrate optimal exchange values.</p>
<p><a rel="external noreferrer noopener" target="_blank" href="https://docs.google.com/document/d/1miy-zl9wP5CI7x_ZeTHUFOlE6EiFXxFlrx9hgSHsrVc/edit#heading=h.zcwwdnbswa1k">Learn more</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Shop Promise details presented to buyer at checkout</h3>
  </div>
  <div class="accordion-content">
    <p>The <a href="/docs/api/admin-graphql/2023-07/objects/DeliveryMethod"><code class="text-highlight text-highlight--grey">DeliveryMethod</code></a> object now has a <code class="text-highlight text-highlight--grey">brandedPromise</code> field that can be used to determine if an order was branded with <strong>Shop Promise</strong> at checkout.</p>
<p>Additionally, the <a href="/docs/api/admin-graphql/2023-07/objects/MailingAddress"><code class="text-highlight text-highlight--grey">MailingAddress</code></a> object now includes the <code class="text-highlight text-highlight--grey">timeZone</code> field, which you can use with the <code class="text-highlight text-highlight--grey">DeliveryMethod</code>&#39;s <code class="text-highlight text-highlight--grey">maxDeliveryDateTime</code> field, to determine the date and time according to the time zone of the destination address.</p>
<p>Learn more about <a rel="external noreferrer noopener" target="_blank" href="https://www.shopify.com/shop-promise">Shop Promise eligibility</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Breaking changes to Product Feeds API <span id="product-feeds-api" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re introducing the following breaking changes to the product feeds webhook topics:</p>
<ul>
<li>Deprecated use of <code class="text-highlight text-highlight--grey">bulk</code> in favour of <code class="text-highlight text-highlight--grey">full</code> for the <a href="/docs/api/admin-rest/2023-07/resources/webhook#event-topics-product-feeds-full-sync"><code class="text-highlight text-highlight--grey">product_feeds/full_sync</code></a> webhook topic</li>
<li>Corrected spelling of <code class="text-highlight text-highlight--grey">occurred_at</code> field in metadata for <code class="text-highlight text-highlight--grey">product_feeds</code> notifications metadata</li>
</ul>
<p>Partners who want to continue receiving full sync notifications should start using the <a href="/docs/api/admin-graphql/2023-07/mutations/productFullSync"><code class="text-highlight text-highlight--grey">productFullSync</code></a> mutation instead of <a href="/docs/api/admin-graphql/2023-07/mutations/productBulkSync"><code class="text-highlight text-highlight--grey">productBulkSync</code></a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Introducing the new Customer Merge API</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now use the Customer Merge API to combine two separate customer profiles with certain non-blocking criteria. You can use the new mutations and queries to do the following tasks:</p>
<ul>
<li><a href="/docs/api/admin-graphql/2023-07/queries/customerMergePreview">Preview a customer merge</a></li>
<li><a href="/docs/api/admin-graphql/2023-07/mutations/customerMerge">Merge two customers</a></li>
<li><a href="/docs/api/admin-graphql/2023-07/queries/customerMergeJobStatus">Follow the status of an ongoing merge</a></li>
</ul>
<p>Additionally, you can check whether a customer can be merged with another customer using the new <a href="/docs/api/admin-graphql/2023-07/objects/Customer#field-customer-mergeable"><code class="text-highlight text-highlight--grey">Customer.mergeable</code></a> field. This field is also available on the <a href="/docs/api/admin-graphql/2023-07/objects/CustomerSegmentMember#field-customersegmentmember-mergeable"><code class="text-highlight text-highlight--grey">CustomerSegmentMember.mergeable</code></a> object.</p>
<p><a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/customers/manage-customers#merging-customer-profiles">Learn more about merging customer profiles</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Adding metafield attributes to the <code>CustomerSegmentMember</code> object</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, the <a href="/docs/api/admin-graphql/2023-07/objects/CustomerSegmentMember"><code class="text-highlight text-highlight--grey">CustomerSegmentMember</code></a> object now has the attributes and connections to access the metafields associated to the customer.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Added <code>acceptsMultipleValues</code> attribute to the <code>SegmentEventFilterParameter</code> object</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, the <a href="/docs/api/admin-graphql/2023-07/objects/SegmentEventFilterParameter"><code class="text-highlight text-highlight--grey">SegmentEventFilterParameter</code></a> object now has the attribute <code class="text-highlight text-highlight--grey">acceptsMultipleValues</code> to denote if the parameter can handle multiple values. For example, the <code class="text-highlight text-highlight--grey">id</code> parameter for the <code class="text-highlight text-highlight--grey">products_purchased</code> function can accept multiple values, such as <code class="text-highlight text-highlight--grey">products_purchased(id: (2012162031638, 1012132033639) = false</code>.</p>
<p>Learn more about <a href="/docs/api/shopifyql/segment-query-language-reference">segment query language</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Function parameter values can be queried</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the new <code class="text-highlight text-highlight--grey">functionParameterQueryName</code> argument on <a href="/docs/api/admin-graphql/2023-07/queries/segmentValueSuggestions"><code class="text-highlight text-highlight--grey">segmentValueSuggestions</code></a> to query for function parameter value suggestions for customer segmentation.</p>
<p>For example, the <code class="text-highlight text-highlight--grey">products_purchased</code> filter has the function parameter <code class="text-highlight text-highlight--grey">id</code>: <code class="text-highlight text-highlight--grey">products_purchased(id: &#39;2012162031638&#39;) = true</code>. To retrieve a list of possible product IDs to use for the <code class="text-highlight text-highlight--grey">id</code> function parameter, provide <code class="text-highlight text-highlight--grey">filterQueryName: &#39;products_purchased&#39;, functionParameterQueryName: &#39;id&#39;</code> as arguments to the <code class="text-highlight text-highlight--grey">segmentValueSuggestions</code> query.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Additional webhook subscription topics for customer tags</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, Shopify&#39;s providing additional webhook subscription topics for customer tags:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">CUSTOMER_TAGS_ADDED</code></li>
<li><code class="text-highlight text-highlight--grey">CUSTOMER_TAGS_REMOVED</code></li>
</ul>
<p><a href="/docs/api/admin-graphql/2023-07/enums/WebhookSubscriptionTopic">Learn more about these webhooks</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Transition of application credit creation to the Partner API  <span id="app-credit-partner-api" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re&#39; deprecating creating app credits through the Admin API. Both the <a href="/docs/api/admin-rest/2023-07/resources/applicationcredit#post-application-credits">REST resource</a>, and the <a href="/docs/api/admin-graphql/2023-07/mutations/appCreditCreate">GraphQL mutation</a> include the capability to create app credits deprecated. Going forward, you should create app credits using the <a href="/docs/api/partner/2023-07/mutations/appCreditCreate"><code class="text-highlight text-highlight--grey">appCreditCreate</code></a> mutation in the Partner API.</p>
<p>This change enables us to implement new features for creating app credits, such as allowing Partners to issue credits to stores that have uninstalled their app.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Purchase order numbers added to <code>Order</code> and <code>DraftOrder</code> objects</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;ve added a new field called <code class="text-highlight text-highlight--grey">poNumber</code> to the <a href="/docs/api/admin-graphql/2023-07/objects/Order"><code class="text-highlight text-highlight--grey">Order</code></a> and <a href="/docs/api/admin-graphql/2023-07/objects/DraftOrder"><code class="text-highlight text-highlight--grey">DraftOrder</code></a> objects.</p>
<p>The <a href="/docs/api/admin-graphql/2023-07/input-objects/OrderInput"><code class="text-highlight text-highlight--grey">OrderInput</code></a> and <a href="/(/docs/api/admin-graphql/2023-07/input-objects/DraftOrderInput)"><code class="text-highlight text-highlight--grey">DraftOrderInput</code></a> input objects now accept a <code class="text-highlight text-highlight--grey">poNumber</code>. This sets the purchase order number during <a href="/docs/api/admin-graphql/2023-07/mutations/orderUpdate"><code class="text-highlight text-highlight--grey">orderUpdate</code></a>, <a href="/docs/api/admin-graphql/2023-07/mutations/draftOrderUpdate"><code class="text-highlight text-highlight--grey">draftOrderUpdate</code></a>, and <a href="/docs/api/admin-graphql/2023-07/mutations/draftOrderCreate"><code class="text-highlight text-highlight--grey">draftOrderCreate</code></a> mutations.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New field <code>isMarketplace</code> on <code>ChannelDefinition</code> object</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the new field <code class="text-highlight text-highlight--grey">isMarketplace</code> on the <a href="/docs/api/admin-graphql/2023-07/objects/ChannelDefinition"><code class="text-highlight text-highlight--grey">ChannelDefinition</code></a> object to check if a channel definition represents a marketplace, such as shops on Facebook, Instagram, or Buy on Google.</p>
<p>The new <code class="text-highlight text-highlight--grey">isMarketplace</code> field indicates whether any object that references <code class="text-highlight text-highlight--grey">ChannelDefinition</code> is related to a marketplace channel. For example, you can determine if an order was placed on a channel that&#39;s a marketplace or if the store has available channels that are marketplaces.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New field <code>type</code> on <code>TranslatableContent</code> object</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the new field <code class="text-highlight text-highlight--grey">type</code> on <a href="/docs/api/admin-graphql/2023-07/objects/TranslatableContent"><code class="text-highlight text-highlight--grey">TranslatableContent</code></a> to get the type of the translatable content.</p>
<p>The new <code class="text-highlight text-highlight--grey">type</code> field gives more information about the underlying translatable content which enables you to conditionally render UI elements, such as input fields.</p>
<p>Learn more about the <a href="/docs/api/admin-graphql/2023-07/enums/LocalizableContentType"><code class="text-highlight text-highlight--grey">LocalizableContentType</code></a> object.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New <code>tax_partners/update</code> webhook</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, the <code class="text-highlight text-highlight--grey">tax_partners/update</code> webhook is available.</p>
<p>The <code class="text-highlight text-highlight--grey">tax_partners/update</code> webhook is called whenever a tax partner is added or updated. Partners can use this webhook to determine when a merchant has made changes to the partner&#39;s tax app.</p>
<p><a href="/docs/api/admin-graphql/2023-04/enums/WebhookSubscriptionTopic">Learn more about these webhooks</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Translate filter settings <span id="translate-filter-settings" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re introducing a new capability to translate filters.</p>
<p>When enabled, all filter labels will be eligible for translations through the <a href="/docs/apps/build/markets/manage-translated-content">Translations API</a> as well as the <a rel="external noreferrer noopener" target="_blank" href="https://apps.shopify.com/translate-and-adapt?shpxid=c0b0c0ff-6A02-4274-4021-DD5A9A2B85A9">Translate and Adapt</a> app.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3><code>duplicateResolutionMode</code> field added to <code>fileCreate</code></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the new <code class="text-highlight text-highlight--grey">duplicateResolutionMode</code> field on the <a href="/docs/api/admin-graphql/2023-07/mutations/fileCreate"><code class="text-highlight text-highlight--grey">fileCreate</code></a> mutation to control how duplicate filenames are handled.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3><code>ONLINE_STORE_POST_PURCHASE_CROSS_SELL</code> fulfillment hold reason</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can determine whether fulfillment has been placed on hold for a post-purchase with the reason <a href="/docs/api/admin-graphql/2023-07/objects/FulfillmentHold"><code class="text-highlight text-highlight--grey">ONLINE_STORE_POST_PURCHASE_CROSS_SELL</code></a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Splitting and merging fulfillment orders</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can split and merge fulfillment orders. You can split a single fulfillment order into multiple fulfillment orders by dividing the line items across multiple fulfillment orders. You can also merge fulfillment orders together into a single fulfillment order.</p>
<p>Learn more about the <a href="/docs/api/admin-graphql/2023-07/mutations/fulfillmentOrderSplit"><code class="text-highlight text-highlight--grey">fulfillmentOrderSplit</code></a> and <a href="/docs/api/admin-graphql/2023-07/mutations/fulfillmentOrderMerge"><code class="text-highlight text-highlight--grey">fulfillmentOrderMerge</code></a> mutations.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Update bytes in-place using <code>fileUpdate</code></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the <a href="/docs/api/admin-graphql/2023-07/input-objects/FileUpdateInput"><code class="text-highlight text-highlight--grey">fileUpdateInput</code></a> input object to provide an <code class="text-highlight text-highlight--grey">originalSource</code>, which is used to update the bytes of a file. Passing <code class="text-highlight text-highlight--grey">originalSource</code> when updating is supported for media images and generic files.</p>
<p>Using this functionality makes it easy to do an in-place update of an existing file.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Inventory states</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, there are new mutations that enable you to alter the inventory quantities at a location. State quantities <code class="text-highlight text-highlight--grey">reserved</code> and <code class="text-highlight text-highlight--grey">on_hand</code> are adjustable through the API. In addition, there are queries to retrieve quantities for every state.</p>
<p>For more information, refer to <a href="/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states">Inventory management apps</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New error code added to inventory quantity mutations <span id="inventory-quantity-error-code" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, a new error code <code class="text-highlight text-highlight--grey">item_not_stocked_at_location</code> has been added to the <a href="/docs/api/admin-graphql/2023-07/mutations/inventorySetOnHandQuantities"><code class="text-highlight text-highlight--grey">inventorySetOnHandQuantities</code></a>, <a href="/docs/api/admin-graphql/2023-07/mutations/inventoryAdjustQuantities"><code class="text-highlight text-highlight--grey">inventoryAdjustQuantities</code></a>, and <a href="/docs/api/admin-graphql/2023-07/mutations/inventoryMoveQuantities"><code class="text-highlight text-highlight--grey">inventoryMoveQuantities</code></a> mutations. This error code is returned when you attempt to change inventory quantities for an item that isn&#39;t stocked at the specified location.</p>
<p><a href="/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#step-3-manage-inventory-quantities">Learn more about managing inventory quantities</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3><code>metafieldsSet</code> support for <code>MediaImage</code></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the <a href="/docs/api/admin-graphql/2023-07/mutations/metafieldsSet"><code class="text-highlight text-highlight--grey">metafieldsSet</code></a> mutation to set metafields on images using <code class="text-highlight text-highlight--grey">MediaImage</code> GIDs.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Deprecation of image-related fields in product and product variants mutations</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re deprecating a set of fields used for associating images with products and variants:</p>
<ul>
<li><strong><a href="/docs/api/admin-graphql/2023-07/input-objects/ProductInput"><code class="text-highlight text-highlight--grey">ProductInput</code></a></strong>: <code class="text-highlight text-highlight--grey">images</code> field deprecation. Use the newly introduced <code class="text-highlight text-highlight--grey">media</code> field instead.</li>
<li><strong><a href="/docs/api/admin-graphql/2023-07/input-objects/ProductVariantInput"><code class="text-highlight text-highlight--grey">ProductVariantInput</code></a></strong>: <code class="text-highlight text-highlight--grey">imageId</code> and <code class="text-highlight text-highlight--grey">imageSrc</code> field deprecation. Use <code class="text-highlight text-highlight--grey">mediaId</code> and <code class="text-highlight text-highlight--grey">mediaSrc</code> instead.</li>
<li><strong><a href="/docs/api/admin-graphql/2023-07/input-objects/ProductVariantsBulkInput"><code class="text-highlight text-highlight--grey">ProductVariantsBulkInput</code></a></strong>: <code class="text-highlight text-highlight--grey">imageSrc</code> field deprecation. Use <code class="text-highlight text-highlight--grey">mediaSrc</code> instead.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3><code>PUBLIC_READ</code> access setting for app-owned metafields</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now apply a <code class="text-highlight text-highlight--grey">PUBLIC_READ</code> access setting to your metafield definitions. If your metafield definition is <code class="text-highlight text-highlight--grey">PUBLIC_READ</code>, this means the following:</p>
<ul>
<li>The merchant can read the metafields on the definition.</li>
<li>All installed applications with proper access scopes can read the metafields on the definition.</li>
<li>Only the owner of the definition can write metafields.</li>
</ul>
<p>This new setting builds upon the <code class="text-highlight text-highlight--grey">PRIVATE</code>, <code class="text-highlight text-highlight--grey">MERCHANT_READ</code>, and <code class="text-highlight text-highlight--grey">MERCHANT_READ_WRITE</code> access settings that were <a href="https://shopify.dev/changelog/access-controls-for-app-metafields">released in January 2023</a>.</p>
<p>Learn more about <a href="/docs/apps/build/custom-data/ownership#reserved-prefixes">access controls</a>.</p>
<aside class="note">
  <h4>Note</h4>
  <p>
The <code class="text-highlight text-highlight--grey">access</code> field can only be set when the definition is in your own <a href="/docs/apps/build/custom-data/ownership#reserved-prefixes">reserved namespace</a>.</p>
</aside>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Moving <code>total_count</code> field from <code>SegmentStatistics</code>` to <code>CustomerSegmentMemberConnection</code></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now use <code class="text-highlight text-highlight--grey">total_count</code> on the <a href="/docs/api/admin-graphql/2023-07/connections/CustomerSegmentMemberConnection"><code class="text-highlight text-highlight--grey">CustomerSegmentMemberConnection</code></a> endpoint, which provides the total count of a specified customer segment.</p>
<p>Additionally, the <code class="text-highlight text-highlight--grey">total_count</code> field on <a href="/docs/api/admin-graphql/2023-07/objects/SegmentStatistics"><code class="text-highlight text-highlight--grey">SegmentStatistics</code></a> object has been removed. The new <code class="text-highlight text-highlight--grey">total_count</code> functionality makes it easier to know the count of members of a specified segment.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Creating a single-country market will no longer automatically create a subfolder web presence for this market</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re no longer automatically creating a subfolder web presence for a single-country market. To maintain existing behaviour, you can follow up creating a market with the <a href="/docs/api/admin-graphql/2023-07/mutations/marketWebPresenceCreate"><code class="text-highlight text-highlight--grey">marketWebPresenceCreate</code></a> mutation. Passing in the country code of the market region as the <code class="text-highlight text-highlight--grey">subfolderSuffix</code> creates the corresponding web presence.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Unknown sale type</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re introducing sales type <code class="text-highlight text-highlight--grey">UnknownSale</code> with line type <code class="text-highlight text-highlight--grey">UNKNOWN</code> that represents new types of sales that might be added in the future and don&#39;t exist on older versions.</p>
<p>This is a complimentary object type for the <a href="/docs/api/admin-graphql/2023-07/enums/SaleLineType#value-unknown"><code class="text-highlight text-highlight--grey">SalesLineType</code> UNKNOWN</a> and implements the <a href="/docs/api/admin-graphql/2023-07/interfaces/Sale"><code class="text-highlight text-highlight--grey">Sale</code></a> interface.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Adding the ability to sort orders by total item quantity</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;ve added <code class="text-highlight text-highlight--grey">TOTAL_ITEM_QUANTITY</code> to <a href="/docs/api/admin-graphql/2023-07/enums/OrderSortKeys"><code class="text-highlight text-highlight--grey">OrderSortKeys</code></a> so that you can sort orders by the total quantity of items.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Manage quantity rules for B2B customers</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can use the <a href="/docs/api/admin-graphql/2023-07/mutations/quantityRulesAdd"><code class="text-highlight text-highlight--grey">quantityRulesAdd</code></a> and <a href="/docs/api/admin-graphql/2023-07/mutations/quantityRulesDelete"><code class="text-highlight text-highlight--grey">quantityRulesDelete</code></a> mutations to manage product variant minimums, maximums, and increments for B2B customers. Use the <code class="text-highlight text-highlight--grey">quantityRules</code> field on the <a href="/docs/api/admin-graphql/2023-07/objects/ProductVariantContextualPricing"><code class="text-highlight text-highlight--grey">ProductVariantContextualPricing</code></a> object to view the quantity rules applied for the <code class="text-highlight text-highlight--grey">companyLocationId</code> input.</p>
<p><a href="/docs/api/admin-graphql/2023-07/objects/QuantityRule">Learn more about quantity rules</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Sale attribution edits now can be subscribed using the <code>orders/updated</code> webhook</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now subscribe to the <code class="text-highlight text-highlight--grey">orders/updated</code> webhook to be notified of any sale attribution edits to an order. When a staff attribution edit is made on POS, the <code class="text-highlight text-highlight--grey">orders/updated</code> webhook fires. The payload include sa new <code class="text-highlight text-highlight--grey">attributed_staffs</code> field under <code class="text-highlight text-highlight--grey">line_items</code>. This new field will reflect the new attributions on the order after the edit.</p>
<p>A user can edit the staff attributions on multiple line items at once on POS. In this case, the webhook payload could include multiple updated line items with different attributions applied to them.</p>
<p><a href="/docs/api/admin-rest/2023-07/resources/webhook#event-topics">Learn more about the <code class="text-highlight text-highlight--grey">orders/updated</code> webhook</a>.</p>
<aside class="note">
  <h4>Note</h4>
  <p>
The payload in the <code class="text-highlight text-highlight--grey">orders/create</code> webhook will also be updated to include <code class="text-highlight text-highlight--grey">attributed_staffs</code>.</p>
</aside>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Specify a custom filename using <code>fileCreate</code></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now specify a custom <code class="text-highlight text-highlight--grey">filename</code> when using the <a href="/docs/api/admin-graphql/2023-07/mutations/fileCreate"><code class="text-highlight text-highlight--grey">fileCreate</code></a> mutation to create files that will appear in the Shopify admin.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Update a filename using <code>fileUpdate</code></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;ve added a new field called <code class="text-highlight text-highlight--grey">filename</code> to the <a href="/docs/api/admin-graphql/2023-07/mutations/fileUpdate"><code class="text-highlight text-highlight--grey">fileUpdate</code></a> mutation. This new field allows you to update the <code class="text-highlight text-highlight--grey">filename</code> of both generic files and images.</p>
  </div>
</div>
  </div>
</div>


## GraphQL Storefront API changes

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Search and predictive search are now available</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now use <code class="text-highlight text-highlight--grey">search</code> and <code class="text-highlight text-highlight--grey">predictiveSearch</code> queries to enable natural language search on your custom storefronts.</p>
<p>The <a href="/docs/api/storefront/2023-07/queries/search"><code class="text-highlight text-highlight--grey">search</code></a> query returns the most relevant search results among product, page and article resource types. Merchants can use the <a rel="external noreferrer noopener" target="_blank" href="https://apps.shopify.com/search-and-discovery">Shopify Search &amp; Discovery app</a> to change the default value of the resource types and customize search results.</p>
<p>The <a href="/docs/api/storefront/2023-07/queries/predictiveSearch"><code class="text-highlight text-highlight--grey">predictiveSearch</code></a> query helps you implement a predictive search dropdown interface where suggested results are displayed immediately as buyers type into the search bar.</p>
<p><a href="/docs/storefronts/headless/building-with-the-storefront-api/search-discovery">Learn more</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Determining local pickup inventory availability</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now use the <code class="text-highlight text-highlight--grey">quantityAvailable</code> field on the <a href="/docs/api/storefront/2023-07/objects/StoreAvailability"><code class="text-highlight text-highlight--grey">StoreAvailability</code></a> object to determine the inventory available for a product variant at a particular local pickup location.</p>
  </div>
</div>
  </div>
</div>


## GraphQL Payments Apps API changes

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New <code>chargebackLiability</code> field for onsite credit card payments apps with 3-D Secure <span id="chargebackLiability-field" class="heading-flag action-required"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you must provide the <a href="/docs/api/payments-apps/2023-07/input-objects/PaymentSessionThreeDSecureAuthenticationData#field-paymentsessionthreedsecureauthenticationdata-chargebackliability"><code class="text-highlight text-highlight--grey">chargebackLiability</code></a> field in the 3-D Secure <a href="/docs/api/payments-apps/2023-07/input-objects/PaymentSessionThreeDSecureAuthenticationData"><code class="text-highlight text-highlight--grey">PaymentSessionThreeDSecureAuthenticationData</code></a> input object. Merchants will benefit from this information to better manage their orders.</p>
<p>Learn more about the <a href="/docs/apps/build/payments/credit-card/use-the-cli">Payments Apps API and 3-D Secure</a>.</p>
  </div>
</div>
  </div>
</div>


## REST Admin API changes

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Transition of application credit creation to the Partner API <span id="application-credit-creation" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re deprecating creating app credits through the Admin API. Both the <a href="/docs/api/admin-rest/2023-07/resources/applicationcredit#post-application-credits">REST resource</a> and the <a href="/docs/api/admin-graphql/2023-07/mutations/appCreditCreate">GraphQL mutation</a> include the capability to create app credits deprecated. Going forward, you should create app credits using the <a href="/docs/api/partner/2023-07/mutations/appCreditCreate"><code class="text-highlight text-highlight--grey">appCreditCreate</code></a> mutation in the Partner API.</p>
<p>This change allows Shopify to implement new features for app credit creation, such as allowing Partners to issue credits to stores that have uninstalled their app.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Removal of the <code>delivery_category</code> field on order shipping lines <span id="delivery-category-field" class="heading-flag breaking"></h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;re deprecating the order shipping line <code class="text-highlight text-highlight--grey">delivery_category</code> property. The property hasn&#39;t been in use since <code class="text-highlight text-highlight--grey">2020-06-12</code> and will no longer be present.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Purchase order numbers added to <code>Order</code> and <code>DraftOrder</code> objects</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;ve added a new field called <code class="text-highlight text-highlight--grey">poNumber</code> to the <a href="/docs/api/admin-rest/2023-07/resources/order"><code class="text-highlight text-highlight--grey">Order</code></a> and <a href="/docs/api/admin-rest/2023-07/resources/draftorder"><code class="text-highlight text-highlight--grey">DraftOrder</code></a> resources.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Discount class for <code>applied_discounts</code> and <code>discount_allocations</code> on a line item in the <code>Checkout</code> resource</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, the <a href="/docs/api/admin-rest/2023-07/resources/checkout"><code class="text-highlight text-highlight--grey">Checkout</code></a> resource includes the <code class="text-highlight text-highlight--grey">discount_class</code> attribute in the <code class="text-highlight text-highlight--grey">line_items[n].applied_discounts</code> and <code class="text-highlight text-highlight--grey">line_items[n].discount_allocations</code>.</p>
<p>The <code class="text-highlight text-highlight--grey">discount_class</code> identifies the type of discount applied to a line_item:</p>
<p><strong><code class="text-highlight text-highlight--grey">PRODUCT</code></strong>: Denotes a product class discount that applies to specific products only.
<strong><code class="text-highlight text-highlight--grey">ORDER</code></strong>: Denotes an order class discount that applies across all line items.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>New field tax_exempt on the <code>Order</code> resource</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, we&#39;ve added the <code class="text-highlight text-highlight--grey">tax_exempt</code> field to the <a href="/docs/api/admin-rest/2023-07/resources/order"><code class="text-highlight text-highlight--grey">Order</code></a> resource. You can use this field to determine whether an order was exempt from taxes.</p>
<p>Orders can be exempt from taxes if the <strong>Charge taxes</strong> option was disabled during the creation of a draft order, or if the order was created for a customer with the <strong>Collect tax</strong> option disabled.</p>
<aside class="note">
  <h4>Note</h4>
  <p>
Any products that are tax exempt in an order aren&#39;t considered when calculating the <code class="text-highlight text-highlight--grey">tax_exempt</code> field.</p>
</aside>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3><code>ONLINE_STORE_POST_PURCHASE_CROSS_SELL</code> fulfillment hold reason</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can determine whether a fulfillment has been placed on hold for a post-purchase with the reason <code class="text-highlight text-highlight--grey">ONLINE_STORE_POST_PURCHASE_CROSS_SELL</code>.</p>
<p><a href="/docs/api/admin-graphql/2023-07/objects/FulfillmentHold">Learn more</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Splitting and merging fulfillment orders</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can split and merge fulfillment orders. You can split a single fulfillment order into multiple fulfillment orders by dividing the line items across multiple fulfillment orders. You can also merge fulfillment orders together into a single fulfillment order.</p>
<p><a href="/docs/api/admin-rest/2023-07/resources/fulfillmentorder">Learn more about the <code class="text-highlight text-highlight--grey">FulfillmentOrder</code> resource</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Sale attribution edits now can be subscribed using the <code>orders/updated</code> webhook</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2023-07, you can now subscribe to the <code class="text-highlight text-highlight--grey">orders/updated</code> webhook to be notified of any sale attribution edits to an order. When a staff attribution edit is made on POS, the <code class="text-highlight text-highlight--grey">orders/updated</code> webhook fires. The payload includes a new <code class="text-highlight text-highlight--grey">attributed_staffs</code> field under <code class="text-highlight text-highlight--grey">line_items</code>. This new field will reflect the new attributions on the order after the edit.</p>
<p>A user can edit the staff attributions on multiple line items at once on POS. In this case, the webhook payload could include multiple updated line items with different attributions applied to them.</p>
<p><a href="/docs/api/admin-rest/2023-07/resources/webhook">Learn more about the <code class="text-highlight text-highlight--grey">orders/updated</code> webhook</a>.</p>
<aside class="note">
  <h4>Note</h4>
  <p>
The payload in the <code class="text-highlight text-highlight--grey">orders/create</code> webhook will also be updated to include <code class="text-highlight text-highlight--grey">attributed_staffs</code>.</p>
</aside>
  </div>
</div>
  </div>
</div>