<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Recent changes to Shopify's platform</title>
    <link>https://shopify.dev/changelog</link>
    <description>Shopify's developer changelog documents all changes to Shopify's platform. Find the latest news and learn about new platform opportunities.</description>
    <language>en-us</language>
    <ttl>40</ttl>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <lastBuildDate>Wed, 01 Apr 2026 16:16:31 +0000</lastBuildDate>
    <category>Changelog</category>
    <atom:link rel="self" type="application/rss+xml" href="https://shopify.dev/changelog/feed.xml"/>
  <item>
    <title>Add Tags to Discounts</title>
    <description><![CDATA[ <div class=""><p>Starting in API version 2026-04, discounts support tags allowing you to efficiently label, group, and organize your discounts.</p>
<p><strong>What's new:</strong></p>
<ul>
<li>The <code>tags</code> field has been added to all discount types</li>
<li>Tags can be added, updated, and removed via the Admin API</li>
</ul>
<p>For more information, visit the <a href="https://shopify.dev/docs/api/admin-graphql/2026-04" target="_blank" class="body-link">Admin API documentation</a></p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/add-tags-to-discounts</link>
  </item>
  <item>
    <title>Add Prerequisites to Product Discount Functions</title>
    <description><![CDATA[ <div class=""><p>Discount functions now support prerequisites for product discount candidates, allowing you to define the &quot;Buy X&quot; portion of a Buy X, Get Y (BXGY) discount. In a BXGY discount, customers must purchase a specified quantity of one product (Buy X) to receive a discount on another product (Get Y).</p>
<p><strong>What's New:</strong></p>
<ul>
<li>A <code>prerequisites</code> field has been added to product discount candidates.</li>
<li>Each prerequisite is defined as a <code>cartLinePrerequisite</code>, which includes:<ul>
<li><code>id</code>: The identifier for the cart line used as the prerequisite.</li>
<li><code>quantity</code>: The number of items from that cart line required to qualify for the discount.</li>
</ul>
</li>
</ul>
<p>For more detailed information, please visit the <a href="https://shopify.dev/docs/api/functions/latest/discount" target="_blank" class="body-link">Discount Functions documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/add-prerequisites-to-product-discount-functions</link>
  </item>
  <item>
    <title>App-owned metaobjects can be used without access scopes</title>
    <description><![CDATA[ <div class=""><p>App-owned metaobjects, identified by types such as <code>$app:example</code>, including those created using <a href="https://shopify.dev/docs/apps/build/metaobjects#step-1-create-a-metaobject-definition" target="_blank" class="body-link">declarative metaobject definitions</a>, can now be utilized by their owning app without requiring any access scopes. This change simplifies the process for developers by eliminating the need to request additional access scopes, thereby reducing potential merchant friction.</p>
<p>If you are considering using declarative metaobjects in your app, you can now proceed without worrying about additional access scope requests. Ensure you are using Admin API version 2026-04 or later to read or write app-owned metaobjects without the need for additional access scopes.</p>
<p>Working with <a href="https://shopify.dev/docs/apps/build/metaobjects#metaobject-ownership" target="_blank" class="body-link">merchant-owned metaobject types</a> still requires specific access scopes, such as <code>read_metaobjects</code> or <code>write_metaobject_definitions</code>, to be granted.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/metaobject-scopes-not-required-for-app-metaobjects</link>
  </item>
  <item>
    <title>Removing outdated Polaris reference docs</title>
    <description><![CDATA[ <div class=""><p>Polaris reference docs now follow the same <a href="https://shopify.dev/docs/api/usage/versioning" target="_blank" class="body-link">versioning policy</a> as Shopify's GraphQL APIs: Each stable version is supported for a minimum of 12 months. Older versions continue to work, they just won’t have dedicated docs on Shopify.dev. Shopify CLI already prevents deploys targeting API versions older than 12 months, so we recommend keeping your extensions on a supported version.</p>
<p>Starting with the 2026-04 release, we'll only publish docs for the last four stable versions of these reference docs:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-extensions/latest" target="_blank" class="body-link">Admin UI extensions</a></li>
<li><a href="https://shopify.dev/docs/api/checkout-ui-extensions/latest" target="_blank" class="body-link">Checkout UI extensions</a></li>
<li><a href="https://shopify.dev/docs/api/customer-account-ui-extensions/latest" target="_blank" class="body-link">Customer account UI extensions</a></li>
<li><a href="https://shopify.dev/docs/api/pos-ui-extensions/latest" target="_blank" class="body-link">POS UI extensions</a></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin Extensions</category>
    <category>Checkout UI</category>
    <category>Customer Accounts</category>
    <category>POS Extensions</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/removing-outdated-polaris-reference-docs</link>
  </item>
  <item>
    <title>Adding access field to StandardMetaobjectDefinitionTemplate</title>
    <description><![CDATA[ <div class=""><p>We are introducing a new <code>access</code> field to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/StandardMetaobjectDefinitionTemplate" target="_blank" class="body-link"><code>StandardMetaobjectDefinitionTemplate</code></a>. This field will display the template's access rules, helping you determine if a specific template is configured for access via the Storefront API. By understanding these access rules, developers can plan their API interactions more effectively, ensuring seamless integration with the Storefront.</p>
<p>The <code>StandardMetaobjectDefinitionTemplate</code> is a component that defines the structure and behavior of metaobjects within Shopify. With the new <code>access</code> field, you can proactively verify access configurations, optimizing your development workflow and enhancing the user experience.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-07</category>
    <link>https://shopify.dev/changelog/adding-access-field-to-standardmetaobjectdefinitiontemplate</link>
  </item>
  <item>
    <title>`delegateAccessTokenCreate` mutation now returns `expiresIn`</title>
    <description><![CDATA[ <div class=""><p>We have introduced an <code>expiresIn</code> field to the <code>DelegateAccessToken</code> type, which is returned by the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/delegateAccessTokenCreate" target="_blank" class="body-link"><code>delegateAccessTokenCreate</code></a> mutation. This addition allows app developers using delegate tokens to know precisely when their tokens will expire. The <code>expiresIn</code> field provides the number of seconds remaining until the token expires, aligning with the data available through the REST Admin API's delegate endpoint.</p>
<p>This feature is particularly beneficial when the <code>expiresIn</code> input is not specified, causing the delegate token to inherit the parent token's Time to Live (TTL). Previously, developers had no means to ascertain the expiration time of such tokens. </p>
<p>This update is available in GraphQL Admin API version <strong>2026-04</strong> and later.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/delegateaccesstokencreate-mutation-now-returns-expiresin</link>
  </item>
  <item>
    <title>Line item component information now available for draft orders on the Customer Account API</title>
    <description><![CDATA[ <div class=""><p>As of Customer Account API version 2026-04, the <code>DraftOrderLineItem</code> object includes a new <a href="https://shopify.dev/docs/api/customer/2026-04/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.components" target="_blank" class="body-link"><code>components</code></a> field. This field returns the individual component line items associated with a parent line item.</p>
<p>Additionally, a new optional argument, <a href="https://shopify.dev/docs/api/customer/2026-04/objects/DraftOrder#field-DraftOrder.fields.lineItems.arguments.flattenComponents" target="_blank" class="body-link"><code>flattenComponents</code></a>, has been introduced to the <a href="https://shopify.dev/docs/api/customer/latest/connections/DraftOrderLineItemConnection#reference-DraftOrder.lineItems" target="_blank" class="body-link"><code>DraftOrder.lineItems</code></a> connection. For API versions 2026-04 and later, <code>flattenComponents</code> defaults to <code>false</code>, meaning only top-level line items are returned as nodes, with their components accessible via the <code>DraftOrderLineItem.components</code> field. If set to <code>true</code>, both parent and component line items are returned as top-level nodes, aligning with the behavior of earlier API versions. For versions prior to 2026-04, <code>flattenComponents</code> defaults to <code>true</code> to ensure backward compatibility.</p>
<h3>Example</h3>
<pre><code class="language-graphql">query {
  draftOrder(id: &quot;gid://shopify/DraftOrder/1&quot;) {
    lineItems(first: 10) {
      nodes {
        name
        quantity
        components {
          name
          quantity
        }
      }
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/line-item-components-draft-orders-customer-account-api</link>
  </item>
  <item>
    <title>Cart and checkout validation adds billing address and PO number error targets</title>
    <description><![CDATA[ <div class=""><p>As of API version 2026-04, you can validate billing addresses and purchase order (PO) numbers in Cart and Checkout Validation Functions. We've added billing address and PO Number to the function input graph and introduced new checkout field targets. This allows you to enforce compliance rules such as blocking prohibited billing countries and requiring PO numbers for B2B orders without relying upon client-side UI extensions.</p>
<p>What's changed</p>
<ul>
<li>Input graph fields: billingAddress and poNumber are available on all Shopify Function input graphs. They return null outside of Cart and Checkout Validation.  </li>
<li>Supported checkout field targets for error messages in Cart and Checkout Validation:  <ul>
<li><code>$.cart.billingAddress.{field}</code> (all standard address subfields)  </li>
<li><code>$.cart.poNumber</code></li>
</ul>
</li>
</ul>
<p>Impact</p>
<ul>
<li>No breaking changes. Your existing functions continue to run. You can optionally add validations for these targets.</li>
<li>Checkout surfaces field-level errors for billing address and PO number when your function returns validations for these targets.</li>
</ul>
<p>To learn more, see the <a href="https://shopify.dev/docs/api/functions/latest/cart-and-checkout-validation#supported-checkout-field-targets" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/cart-and-checkout-validation-adds-billing-address-and-po-number-error-targets</link>
  </item>
  <item>
    <title>Multi-channel support for sales channel apps</title>
    <description><![CDATA[ <div class=""><p>Sales channel apps can now create and manage multiple channel connections from a single app. A single app can now establish more than one channel on a shop, with a separate specification and/or external account for each connection.</p>
<h2>Why this matters</h2>
<p>If you build a sales channel app that needs separate connections for different accounts or to sell in different markets or have different surfaces, you no longer need to split that model across multiple apps. You can keep those connections inside one app and manage them as distinct channels.</p>
<h2>What's new</h2>
<ul>
<li>A single sales channel app can establish multiple channels on the same shop.</li>
<li>Sales channels can now uses the Channel Config extension plus one specification file per target channel.</li>
<li>Each channel can point to a different specification and external account.</li>
</ul>
<h2>What partners should do</h2>
<h3>For new sales channel apps</h3>
<ul>
<li>All new sales channels should add a Channel Config extension.</li>
<li>Define one specification file per target channel.</li>
<li>Use <code>channelCreate</code> with a <code>specificationHandle</code>, <code>accountId</code>, and <code>accountName</code> to create each channel connection.</li>
</ul>
<h3>For existing sales channel apps</h3>
<ul>
<li>Migrate legacy sales channel app to use channel connections using this <a href="https://shopify.dev/docs/apps/build/sales-channels/migrating-channel-connection-apis" target="_blank" class="body-link">guide</a></li>
<li>Review any downstream code that assumes one channel per app. If your app reads or mutates channel-specific state, pass a channel ID instead of relying on app-level defaults.</li>
</ul>
<h2>New APIs in this release</h2>
<ul>
<li><p><a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/channel" target="_blank" class="body-link">channel</a></p>
</li>
<li><p><code>channelCreate</code></p>
</li>
<li><p><code>channelByHandle</code></p>
</li>
<li><p><code>channelUpdate</code></p>
</li>
<li><p><code>channelDelete</code></p>
</li>
<li><p><code>channelFullSync</code></p>
</li>
</ul>
<h2>APIs impacted by this release</h2>
<p><strong>Deprecated</strong>: These single-channel APIs are now deprecated. They still function today but will be removed in a future API version:</p>
<p>| Deprecated API | Use instead |
|</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/multi-channel-support-for-sales-channel-apps</link>
  </item>
  <item>
    <title>Payment method identifier now required for customerPaymentMethodRemoteCreate</title>
    <description><![CDATA[ <div class=""><p>As of API version 2026-07, the payment method identifier field is now required when using the <code>customerPaymentMethodRemoteCreate</code> mutation with Stripe, Authorize.net, or Braintree inputs.</p>
<p>The affected fields are:</p>
<ul>
<li><code>paymentMethodId</code> on <code>RemoteStripePaymentMethodInput</code></li>
<li><code>customerPaymentProfileId</code> on <code>RemoteAuthorizeNetCustomerPaymentProfileInput</code></li>
<li><code>paymentMethodToken</code> on <code>RemoteBraintreePaymentMethodInput</code></li>
</ul>
<p>These fields were previously optional at the schema level but are required for the payment method to be functional. Without a payment method identifier, remotely created payment methods cannot be used for payment processing. This change aligns the API schema with existing runtime requirements.</p>
<p>If you are already passing a payment method identifier when calling this mutation, no changes are needed. If you are not, update your integration to include the appropriate identifier for your gateway before adopting API version 2026-07.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2026-07</category>
    <link>https://shopify.dev/changelog/payment-method-identifier-now-required-for-customerpaymentmethodremotecreate</link>
  </item>
  <item>
    <title>Report Fulfillment Order progress with new fulfillmentOrderReportProgress GraphQL mutation</title>
    <description><![CDATA[ <div class=""><p>As of API Version <code>2026-04</code> third-party logistics providers (3PLs) and fulfillment apps can now report progress on fulfillment orders with the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderReportProgress" target="_blank" class="body-link"><code>fulfillmentOrderReportProgress</code> mutation</a>. This feature enables fulfillment services to indicate that work has commenced and, optionally, add brief status notes so merchants see what’s happening in their fulfilment pipeline.</p>
<h4>Key Details:</h4>
<ul>
<li>Reporting progress for 3PL-managed orders works with fulfillment orders in <code>IN_PROGRESS</code> status</li>
<li>Reporting progress for merchant-managed orders works with fulfillment orders in <code>OPEN</code> or <code>IN_PROGRESS</code> status (requires <code>write_merchant_managed_fulfillment_orders</code> scope)</li>
<li>Supports optional <code>reasonNotes</code> field (up to 256 characters) for additional context</li>
<li>New <code>fulfillment_orders/progress_reported</code> webhook available to track when progress has been reported</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/objects/fulfillmentorder#field-supportedactions" target="_blank" class="body-link">fulfillmentOrder.supportedActions</a> field will now return the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/FulfillmentOrderAction#enum-REPORT_PROGRESS" target="_blank" class="body-link">REPORT_PROGRESS</a> action when a fulfillment order can have progress reported.</li>
</ul>
<h4>New Webhooks</h4>
<p>Topic: <a href="https://shopify.dev/docs/api/webhooks/2026-04?accordionItem=webhooks-fulfillment_orders-progress_reported&reference=toml" target="_blank" class="body-link"><code>fulfillment_orders/progress_reported</code></a></p>
<p>This webhook is triggered when progress is reported on a fulfillment order. The payload includes the fulfillment order ID and status, the <code>initial_status</code> before the update, and <code>progress_report</code> details including <code>reason_notes</code> and attribution data for the app or user that reported the progress.</p>
<p>Topic: <a href="https://shopify.dev/docs/api/webhooks/2026-04?accordionItem=webhooks-fulfillment_orders-manually_reported_progress_stopped&reference=toml" target="_blank" class="body-link"><code>fulfillment_orders/manually_reported_progress_stopped</code></a></p>
<p> This webhook fires when a merchant-managed fulfillment order that has had progress manually reported (via <code>fulfillmentOrderReportProgress</code>) is subsequently marked as &quot;ready for fulfillment&quot;, transitioning it from IN_PROGRESS back to OPEN status. This webhook allows apps to know when a merchant has &quot;undone&quot; or &quot;cancelled&quot; the in-progress status they previously reported.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/report-fulfillment-order-progress-with-new-fulfillmentorderreportprogress-graphql-mutation</link>
  </item>
  <item>
    <title>Create subscriptions contracts without payment methods</title>
    <description><![CDATA[ <div class=""><p>In the API <code>2026-04</code> release candidate version, the <code>paymentMethodId</code> field is no longer required when creating a subscription contract using the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptioncontractatomiccreate#arguments-input.fields.contract.paymentMethodId" target="_blank" class="body-link"><code>subscriptionContractAtomicCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptioncontractcreate#arguments-input.fields.contract.paymentMethodId" target="_blank" class="body-link"><code>subscriptionContractCreate</code></a> mutations. This allows you to migrate subscription contracts even if they have missing or expired payment methods. </p>
<p>For implementation instructions, see our docs on <a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract" target="_blank" class="body-link">how to build a subscription contract</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/create-subscriptions-contracts-without-payment-methods</link>
  </item>
  <item>
    <title>Create unpaid orders from subscription billing attempts</title>
    <description><![CDATA[ <div class=""><p>In the API <code>2026-04</code> release candidate version, you can now include a new field called <code>paymentProcessingPolicy</code> when creating a billing attempt using the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/subscriptionBillingAttemptCreate#arguments-subscriptionBillingAttemptInput.fields.paymentProcessingPolicy" target="_blank" class="body-link"><code>subscriptionBillingAttemptCreate</code></a> mutation. A billing attempt is an action to charge a customer based on their subscription.</p>
<p>The <code>paymentProcessingPolicy</code> field determines how the billing attempt is handled depending on the validity of the payment method:</p>
<ul>
<li>If you don't provide the <code>paymentProcessingPolicy</code> field, or if you set it to <code>FAIL_UNLESS_VALID_PAYMENT_METHOD</code>, a valid payment method is necessary to create an order successfully.</li>
<li>Alternatively, if you set the value to <code>SKIP_PAYMENT_AND_CREATE_UNPAID_ORDER</code>, the system will create an unpaid order even if there isn't a valid payment method available on the subscription contract.</li>
</ul>
<p>For detailed implementation instructions, please refer to our documentation on <a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract" target="_blank" class="body-link">building a subscription contract</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2026 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/create-unpaid-orders-from-subscription-billing-attempts</link>
  </item>
  <item>
    <title>New rejection reason codes in Payments Apps API</title>
    <description><![CDATA[ <div class=""><p>The Payments Apps API now provides more granular decline reason codes for rejected payment sessions. Multiple new rejection codes have been added to the <a href="https://shopify.dev/docs/api/payments-apps/2026-04/enums/PaymentSessionStateRejectedReason" target="_blank" class="body-link"><code>PaymentSessionStateRejectedReason</code></a> enum alongside a new source field, giving payments apps more standardized, actionable ways to communicate to merchants why a payment was declined.</p>
<h2>New rejection reason codes</h2>
<p>The following error codes expand the existing set of rejection reasons with more specific rejection information:</p>
<p>| Error Code | Description |
|</p>
</div> ]]></description>
    <pubDate>Tue, 31 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/new-rejection-reason-codes-in-payments-apps-graphql-api</link>
  </item>
  <item>
    <title>Role-based access control and org management for partners</title>
    <description><![CDATA[ <div class=""><p>We have revamped the way partner organizations manage users and stores.</p>
<ul>
<li><strong>Role-based Access Control:</strong> Assign roles to users instead of configuring permissions individually. We offer seven system roles that cover organization-wide administration, store access, app development, and merchant-granted collaborator permissions. You can also create custom roles for any needs not covered by the system roles.</li>
<li><strong>New Organization Structure:</strong> Partner organizations now have one Organization Owner and multiple Organization Admins. Previous owners, except the primary owner, have been migrated to Organization Admins, retaining the same access without transferring ownership.</li>
<li><strong>Unified Store Management in Dev Dashboard:</strong> All your dev stores, client transfer stores, and collaborator stores are now consolidated in one place. No more switching between dashboards.</li>
<li><strong>Seamless Migration:</strong> Your organization will be automatically migrated, preserving your team's access and converting it to corresponding roles. No action is required. </li>
<li><strong>Partner Dashboard:</strong> Payouts, app distribution, theme submissions, and referrals remain unchanged in the Partner Dashboard.</li>
</ul>
<p><a href="https://www.shopify.com/partners/blog/improved-building-for-partners" target="_blank" class="body-link">Learn more</a> → 
<a href="https://help.shopify.com/partners/manage-account/manage-users?utm_source=mozart&utm_medium=email&utm_campaign=partner_rbac&utm_content=changelog" target="_blank" class="body-link">View help docs</a> →</p>
</div> ]]></description>
    <pubDate>Mon, 30 Mar 2026 16:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/role-based-access-control-and-org-management-for-partners</link>
  </item>
  <item>
    <title>Updated handling of customer data erasure requests with recent orders</title>
    <description><![CDATA[ <div class=""><p>As of March 23, 2026, <a href="https://help.shopify.com/en/manual/privacy-and-security/privacy/processing-customer-data-requests#erase-customer-personal-data" target="_blank" class="body-link">customer data erasure requests</a> will no longer be held in a pending state for 180 days from the date of the customer's most recent order. </p>
<p>Erasure requests will now be processed 10 days after the request was submitted, regardless of when the customer's most recent order was placed. For recipients of gift cards that have been scheduled to send, the erasure request will remain in a pending state until the gift card has been delivered.</p>
<p>This update simplifies the overall experience for managing customer data requests.</p>
</div> ]]></description>
    <pubDate>Sat, 28 Mar 2026 03:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-handling-of-customer-data-erasure-requests-with-recent-orders</link>
  </item>
  <item>
    <title>The Shopify CLI app release `--force` flag is deprecated and will be removed</title>
    <description><![CDATA[ <div class=""><p>We are deprecating the <code>--force</code> flag on the <code>shopify app deploy</code> and <code>shopify app release</code> commands. The flag will be removed in a Shopify CLI release in May 2026.</p>
<h2>Why we're making this change</h2>
<p>The <code>--force</code> flag skips all confirmation prompts, including for extension deletions that can permanently remove data on installed shops. It doesn't distinguish between low-risk operations (adding or updating extensions) and high-risk ones (deleting them). The <a href="https://shopify.dev/changelog/more-control-over-app-deploys-in-cicd-pipelines" target="_blank" class="body-link">previously released</a> <code>--allow-updates</code> and <code>--allow-deletes</code> flags give you granular control, so your CI/CD pipelines can run unattended without the risk of accidental, irreversible deletions.</p>
<h2>What you should do</h2>
<p>If you are <a href="https://shopify.dev/docs/apps/launch/deployment/deploy-in-ci-cd-pipeline" target="_blank" class="body-link">automating your app releases in a CI/CD environment</a>, you should adjust your scripts to use the <a href="https://shopify.dev/docs/api/shopify-cli/app/app-deploy#flags-propertydetail-allowupdates" target="_blank" class="body-link"><code>--allow-updates</code></a> flag instead, which will ensure that extensions can be added and updated, but not deleted.</p>
<p>For example:  </p>
<pre><code>shopify app deploy --config production --allow-updates
</code></pre>
<p>When extension deletion is needed, you can utilize an interactive <code>deploy</code> or enable the <a href="https://shopify.dev/docs/api/shopify-cli/app/app-deploy#flags-propertydetail-allowdeletes" target="_blank" class="body-link"><code>--allow-deletes</code></a> flag. Use caution and enable <code>--allow-deletes</code> only for manual workflow runs when you are certain that you want to delete an extension and all its configuration on installed shops.</p>
<p>For more information, see <a href="https://shopify.dev/docs/apps/launch/deployment/deploy-in-ci-cd-pipeline#controlling-extension-and-configuration-deployment" target="_blank" class="body-link">documentation on CI/CD deployment for apps</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 25 Mar 2026 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/the-shopify-cli-app-release-force-flag-is-deprecated-and-will-be-removed</link>
  </item>
  <item>
    <title>Adding barcode support to inventory shipments API</title>
    <description><![CDATA[ <div class=""><p>We're adding barcode support to inventory shipments in version <code>2026-04</code>, enabling merchants to assign barcodes to shipments for faster receiving workflows.</p>
<p>The following API changes are included:</p>
<p><strong>New field on <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryShipment" target="_blank" class="body-link"><code>InventoryShipment</code></a></strong></p>
<ul>
<li><code>barcode: String</code> - A nullable field representing the unique barcode assigned to a shipment.</li>
</ul>
<p><strong>Updated <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryShipmentCreate" target="_blank" class="body-link"><code>inventoryShipmentCreate</code></a> mutation</strong></p>
<ul>
<li>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/InventoryShipmentCreateInput" target="_blank" class="body-link"><code>InventoryShipmentCreateInput</code></a> now accepts an optional <code>barcode: String</code> field to assign a barcode when creating a shipment.</li>
</ul>
<p><strong>New <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryShipmentSetBarcode" target="_blank" class="body-link"><code>inventoryShipmentSetBarcode</code></a> mutation</strong></p>
<ul>
<li>Sets or clears the barcode on an existing shipment. Pass an empty string to clear the barcode.</li>
</ul>
<p>Example usage:</p>
<pre><code class="language-graphql">mutation {
  inventoryShipmentSetBarcode(
    inventoryShipmentId: &quot;gid://shopify/InventoryShipment/123&quot;
    barcode: &quot;SHIP-2026-0001&quot;
  ) {
    inventoryShipment {
      id
      barcode
    }
    userErrors {
      code
      field
      message
    }
  }
}
</code></pre>
<p><strong>What you need to know</strong></p>
<ul>
<li>Barcodes must be unique per shop. Two shipments in the same shop cannot share the same barcode.</li>
<li>Barcodes have a maximum length of <code>255</code> characters.</li>
<li>Leading/trailing whitespace is automatically stripped. Barcodes consisting only of whitespace are treated as empty.</li>
</ul>
<p><strong>Error codes</strong></p>
<ul>
<li><code>DUPLICATE_BARCODE</code>: Another shipment in the same shop already has this barcode.</li>
<li><code>SHIPMENT_NOT_FOUND</code>: The specified shipment does not exist.</li>
<li><code>BARCODE_TOO_LONG</code>: The barcode exceeds the maximum length of <code>255</code> characters.</li>
</ul>
<p><strong>Why we made this change</strong>
Merchants transferring inventory between locations, for example, from a warehouse to a retail store, currently have to scan and receive each item in a shipment one by one. This is slow and error-prone for large shipments. Shipment barcodes let warehouse systems and 3PLs attach a scannable identifier (such as a GS1-128 code) to a shipment so that the entire shipment can be identified and received in a single scan.</p>
</div> ]]></description>
    <pubDate>Mon, 23 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/adding-barcode-support-to-inventory-shipments-api</link>
  </item>
  <item>
    <title>Removal of pre_tax_price from the Order REST Admin API</title>
    <description><![CDATA[ <div class=""><p>The <code>pre_tax_price</code> and <code>pre_tax_price_set</code> fields on order line items in the <a href="https://shopify.dev/docs/api/admin-rest" target="_blank" class="body-link">REST Admin API</a> are being removed. These fields were previously available to stores with the Avalara AvaTax 1.0 integration enabled, which was deprecated in April 2025.</p>
<h3>What you should do</h3>
<p>Use the GraphQL Admin API to access order line item pricing data. </p>
</div> ]]></description>
    <pubDate>Mon, 23 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/removal-of-pretaxprice-from-the-order-rest-admin-api</link>
  </item>
  <item>
    <title>Checkout and Customer Account UI extensions available by default in new development shops</title>
    <description><![CDATA[ <div class=""><p>We are ending the developer preview for checkout and customer account UI extensions. With this update:</p>
<ul>
<li>All <strong>new</strong> development shops on the Shopify Plus plan have access to checkout UI extensions</li>
<li>All <strong>new</strong> development shops on all plans have access to customer account UI extensions</li>
<li>All <strong>existing</strong> development shops will not be affected by this change</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 20 Mar 2026 16:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/checkout-and-customer-account-ui-extensions-available-by-default-in-new-development-shops</link>
  </item>
  <item>
    <title>`inventoryTransferDelete` adds `INVALID_STATE` error code for transfers with in-progress product import</title>
    <description><![CDATA[ <div class=""><p>Starting in version 2026-07, the <code>inventoryTransferDelete</code> mutation will return a new error code: <code>INVALID_STATE</code>. This error will be returned when a client attempts to delete an inventory transfer while a product import related to that transfer is in progress.</p>
<ul>
<li><strong>New error code added:</strong> <code>INVALID_STATE</code>  </li>
<li><strong>API affected:</strong> <code>inventoryTransferDelete</code> mutation  </li>
<li><strong>Error enum updated:</strong> <code>InventoryTransferDeleteUserErrorCode</code></li>
</ul>
<p>For older API versions, the mutation will not include the <code>INVALID_STATE</code> code in the error payload. However, the <code>message</code> field will still provide context about the blocking product import.</p>
<p>For more details, see the updated <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/InventoryTransferDeleteUserErrorCode" target="_blank" class="body-link">InventoryTransferDeleteUserErrorCode enum</a> and the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferDelete" target="_blank" class="body-link">inventoryTransferDelete mutation documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Mar 2026 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-07</category>
    <link>https://shopify.dev/changelog/inventorytransferdelete-adds-invalidstate-error-code-for-transfers-with-in-progress-product-import</link>
  </item>
  <item>
    <title>New retail cash management capabilities</title>
    <description><![CDATA[ <div class=""><p>We've rebuilt cash management on Shopify POS from the ground up. The new Admin GraphQL APIs and POS UI extension targets open up cash management data and controls to app developers, enabling custom cash management workflows that were previously impossible to build on Shopify POS.</p>
<h2>What's new</h2>
<h3>Cash Drawers</h3>
<p><a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/CashDrawer" target="_blank" class="body-link"><code>CashDrawer</code></a> is a new resource that decouples cash management from individual POS devices. A cash drawer represents a physical cash storage unit at a location. Multiple devices can connect to a single drawer, enabling flexible store setups.</p>
<p>| Resource | Description |
| </p>
</div> ]]></description>
    <pubDate>Mon, 16 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>POS Extensions</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/new-retail-cash-management-capabilities</link>
  </item>
  <item>
    <title>POS UI extensions can now run without network access</title>
    <description><![CDATA[ <div class=""><p>POS UI extensions can now continue running even when a merchant’s device loses network access.</p>
<p>This feature ensures uninterrupted service during connectivity issues. It is especially beneficial for merchants in environments with unreliable internet, such as pop-up shops, outdoor markets, or large retail spaces.</p>
<h3>How to Enable</h3>
<p>To enable this feature, set <code>runs_offline = true</code> in the <code>[extensions.supported_features]</code> section of your extension configuration:</p>
<pre><code class="language-toml">[extensions.supported_features]
runs_offline = true
</code></pre>
<p>Once enabled, your extension will continue to function even if the merchant’s device loses network access. For comprehensive details on configuring offline behavior and best practices, refer to our <a href="https://shopify.dev/docs/api/pos-ui-extensions/latest#run-extensions-without-network-access" target="_blank" class="body-link">developer documentation</a>.</p>
<h3>Requirements</h3>
<ul>
<li>POS version 11.0 or later</li>
<li>Shopify CLI v3.92 or later</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 16 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-can-now-run-without-network-access</link>
  </item>
  <item>
    <title>Metaobject access in Shopify Functions</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version 2026-04, all Shopify Functions can access app-owned metaobject entries.</p>
<p>Metaobjects are now available for every function target. This feature enables you to query additional structured data present in metaobjects, such as tiered pricing and bundles. To query a metaobject entry, specify a handle or ID in your input query file. Note that only app-owned metaobject types, identified by the <code>$app</code> reserved prefix, are accessible to functions.</p>
<p>For details look under the Shop field for any of the 2026-04 Functions, like the <a href="https://shopify.dev/docs/api/functions/latest/cart-transform#Input.fields.shop.metaobject" target="_blank" class="body-link">metaobject input object</a> in Cart Transform. Learn more about <a href="https://shopify.dev/docs/apps/build/metaobjects#metaobject-ownership" target="_blank" class="body-link">metaobject ownership</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 14 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/metaobject-access-in-functions</link>
  </item>
  <item>
    <title>Making `fieldDefinitions` optional in `metaobjectDefinitionCreate`</title>
    <description><![CDATA[ <div class=""><p>Starting in April 2026, the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/metaobjectDefinitionCreate#arguments-definition.fields.fieldDefinitions" target="_blank" class="body-link"><code>fieldDefinitions</code></a> input argument for the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/metaobjectDefinitionCreate" target="_blank" class="body-link"><code>metaobjectDefinitionCreate</code></a> mutation will become optional. This change means that developers will no longer be required to specify <code>fieldDefinitions</code> when creating a new metaobject definition. Existing implementations that rely on <code>fieldDefinitions</code> will continue to function as before, but developers can now choose to omit this argument if it is not needed for their specific use case.</p>
</div> ]]></description>
    <pubDate>Sat, 14 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/making-fielddefinitions-optional-in-metaobjectdefinitioncreate</link>
  </item>
  <item>
    <title>Expiring offline access tokens required for new public apps as of April 1, 2026</title>
    <description><![CDATA[ <div class=""><p>We're updating how public apps handle offline access tokens to enhance merchant data protection. Starting April 1, 2026, all new public apps must request and use <a href="https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/offline-access-tokens#expiring-vs-non-expiring-offline-tokens" target="_blank" class="body-link">expiring offline access tokens</a>.</p>
<h2>What apps are affected</h2>
<ul>
<li><a href="https://shopify.dev/docs/apps/launch/distribution#capabilities-and-requirements" target="_blank" class="body-link">Public apps</a> created on or after April 1, 2026 that call the Admin API</li>
</ul>
<h2>What apps are not affected</h2>
<ul>
<li>Public apps created before April 1, 2026</li>
<li>Custom apps created at any time</li>
<li>Apps created by merchants either in the Dev Dashboard or in the admin</li>
</ul>
<h2>Why we’re making this change</h2>
<p>Expiring tokens enhance security. If a token is ever leaked, its limited lifespan significantly narrows the risk to both your app and the merchants who trust it. This change aligns with modern OAuth practices, and as a developer it lets you build your app around predictable refresh flows.</p>
<h2>Action required</h2>
<p><strong>New public apps</strong>: Implement expiring offline access tokens. If you use Shopify’s app templates and libraries this is already handled for you.</p>
<p>Need help? Engage with the <a href="https://community.shopify.dev/c/dev-platform/32" target="_blank" class="body-link">dev platform community</a> for support and questions.</p>
</div> ]]></description>
    <pubDate>Fri, 13 Mar 2026 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/expiring-offline-access-tokens-required-for-public-apps-april-1-2026</link>
  </item>
  <item>
    <title>Admin intents now support Settings</title>
    <description><![CDATA[ <div class=""><p>We're excited to announce that <a href="/docs/apps/build/admin/admin-intents" target="_blank" class="body-link">admin intents</a> now support Settings. This new feature allows apps to direct merchants straight to specific <strong>Settings</strong> pages within the Shopify admin.</p>
<h3>What's new?</h3>
<p>Previously, directing merchants to a specific <strong>Settings</strong> page required deep links or manual navigation instructions. Now, with Settings support for admin intents, your app can open a Settings route with a single API call. This keeps merchants focused and eliminates unnecessary navigation steps.</p>
<h3>Supported intents</h3>
<p>The following Settings intents are now available:</p>
<p><strong>General</strong></p>
<ul>
<li><code>edit:settings/StoreDetails</code></li>
<li><code>edit:settings/StoreDefaults</code></li>
<li><code>edit:settings/OrderIdFormat</code></li>
<li><code>edit:settings/OrderProcessing</code></li>
</ul>
<p><strong>Locations</strong></p>
<ul>
<li><code>create:shopify/Location</code></li>
<li><code>edit:shopify/Location</code></li>
<li><code>edit:settings/LocationDefault</code></li>
</ul>
<h3>How it works</h3>
<p>When your app invokes a Settings intent, the Shopify admin opens the relevant <strong>Settings</strong> page within a page stack, which organizes pages in a layered manner. The Shopify admin automatically scrolls to the targeted card, ensuring merchants land precisely where they need to be.</p>
<p>Sidekick uses Settings intents to streamline configuration tasks, providing merchants with a link that opens the correct <strong>Settings</strong> page upon clicking.</p>
<h3>Learn more</h3>
<p>To get started, refer to the <a href="/docs/apps/build/admin/admin-intents" target="_blank" class="body-link">admin intents documentation</a> and the <a href="/docs/api/app-home/apis/intents" target="_blank" class="body-link">Intents API reference</a>.</p>
<h3>Holler at us</h3>
<p>Leave us feedback, comments, and questions in the <a href="https://community.shopify.dev/c/extensions/5" target="_blank" class="body-link">Shopify Developer Community</a>. We'd love to hear from you. </p>
</div> ]]></description>
    <pubDate>Fri, 13 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/admin-intents-now-support-settings</link>
  </item>
  <item>
    <title>Adding `createdAt` and `updatedAt` fields to `MetaobjectDefinition` objects</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/metaobjectdefinition#field-MetaobjectDefinition.fields.createdAt" target="_blank" class="body-link"><code>createdAt</code></a> and  <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/metaobjectdefinition#field-MetaobjectDefinition.fields.updatedAt" target="_blank" class="body-link"><code>updatedAt</code></a> fields will become available on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/metaobjectdefinition" target="_blank" class="body-link"><code>MetaobjectDefinition</code></a> objects in API version <code>2026-04</code></p>
</div> ]]></description>
    <pubDate>Fri, 13 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/adding-createdat-and-updatedat-fields-to-metaobjectdefinition-objects</link>
  </item>
  <item>
    <title>Clearer standards for app listing images </title>
    <description><![CDATA[ <div class=""><p>We've updated requirement 4.4.4 and added a new requirement 4.4.5 for Shopify App Store apps.</p>
<p><strong><a href="https://shopify.dev/docs/apps/launch/shopify-app-store/app-store-requirements#provide-clear-focused-images" target="_blank" class="body-link">Requirement 4.4.4</a> now provides clearer standards for image quality:</strong> images should primarily show your app's actual user interface and features. Screenshots must not include desktop backgrounds or browser windows. Feature images and screenshots that solely contain your app logo are not permitted.</p>
<p><strong><a href="https://shopify.dev/docs/apps/launch/shopify-app-store/app-store-requirements#provide-unique-images" target="_blank" class="body-link">New requirement 4.4.5</a> introduces a dedicated standard for image uniqueness:</strong> each image in your app listing must be unique. Screenshots should showcase different features, views, or states of your app. Don't submit duplicate or near-identical images. </p>
<p>If your app listing already uses distinct screenshots showing different parts of your app, no action is required. These requirements will be enforced starting March 26, 2026.</p>
</div> ]]></description>
    <pubDate>Thu, 12 Mar 2026 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/clearer-standards-for-app-listing-images</link>
  </item>
  <item>
    <title>Identifier support added to the productUpdate mutation</title>
    <description><![CDATA[ <div class=""><p>The <code>productUpdate</code> mutation now accepts an <code>identifier</code> argument, allowing you to look up the product to update by <code>id</code>, <code>handle</code>, or <code>customId</code> instead of passing the product <code>ID</code> inside the <code>input</code>.</p>
<p>The <code>id</code> and <code>handle</code> identifiers let you specify a product's global <code>ID</code> or <code>handle</code> directly. The <code>customId</code> identifier lets you reference a product by a unique metafield value using a <code>namespace</code>, <code>key</code>, and <code>value</code> combination, enabling workflows where external systems identify products by their own <code>ID</code>s.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Mar 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/identifier-support-added-to-the-productupdate-mutation</link>
  </item>
  <item>
    <title>`inventorySetScheduledChanges` mutation is being removed with no replacement</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/inventorysetscheduledchanges" target="_blank" class="body-link"><code>inventorySetScheduledChanges</code></a> mutation will be removed from the GraphQL Admin API in version <code>2026-07</code>. This mutation has no replacement, so any apps currently using it should stop relying on it to avoid disruptions.</p>
<p>This change is part of our ongoing efforts to streamline and modernize the inventory management APIs, focusing on more robust and consistent methods for handling inventory updates.</p>
<h3>What you need to do</h3>
<p>Review your app's code for any uses of <code>inventorySetScheduledChanges</code> and remove them. If your app depends on scheduled inventory changes, consider alternative approaches such as using the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/inventoryadjustquantities" target="_blank" class="body-link"><code>inventoryAdjustQuantities</code></a> mutation for immediate adjustments or integrating with other inventory tools. Refer to the <a href="https://shopify.dev/docs/api/admin-graphql/latest" target="_blank" class="body-link">API reference</a> for available options.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Mar 2026 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2026-07</category>
    <link>https://shopify.dev/changelog/inventorysetscheduledchanges-mutation-is-being-removed-with-no-replacement</link>
  </item>
  <item>
    <title>Shop Minis February 2026 update</title>
    <description><![CDATA[ <div class=""><h2>New Features</h2>
<p>The following new features are available for Shopify Minis as of February 2026:</p>
<h3>Product Tagging for User-Generated Content</h3>
<p>The <code>useCreateImageContent</code> <a href="https://shopify.dev/docs/api/shop-minis/hooks/content/usecreateimagecontent" target="_blank" class="body-link">hook</a> now supports tagging products directly to user-generated content. Three new parameters provide partners with enhanced control over content creation:</p>
<ul>
<li><code>productIds</code>: Associate one or more products with a piece of content.</li>
<li><code>externalId</code>: Link content to an identifier in your own system.</li>
<li><code>description</code>: Add a text description to content.</li>
</ul>
<pre><code class="language-jsx">import {useCreateImageContent} from '@shopify/shop-minis-react';
const {createImageContent} = useCreateImageContent();
await createImageContent({
  imageUri: 'https://example.com/photo.jpg',
  productIds: [
    'gid://shopify/Product/123',
    'gid://shopify/Product/456',
  ],
  externalId: 'my-content-abc',
  description: 'Styled with our summer collection',
});
</code></pre>
<p>This feature enables shoppable UGC experiences, allowing users browsing content to discover and purchase tagged products directly.</p>
<h3>SafeArea Component and useSafeArea Hook</h3>
<p>A new <code>SafeArea</code> (<a href="https://shopify.dev/docs/api/shop-minis/components/primitives/safearea" target="_blank" class="body-link">documentation</a>) component and <code>useSafeArea</code> (<a href="https://shopify.dev/docs/api/shop-minis/hooks/util/usesafearea" target="_blank" class="body-link">documentation</a>) hook help minis handle device safe area insets. This is especially important for minis that render full-screen or use custom layouts on notched devices.</p>
<pre><code class="language-jsx">import {SafeArea, useSafeArea} from '@shopify/shop-minis-react';

// Option 1: Wrap content in the SafeArea component
function MyMini() {
  return (
    &lt;SafeArea&gt;
      &lt;MyContent /&gt;
    &lt;/SafeArea&gt;
  );
}

// Option 2: Use the hook for manual control
function MyComponent() {
  const {top, bottom, left, right} = useSafeArea();
  return &lt;View style={{paddingTop: top, paddingBottom: bottom}} /&gt;;
}
</code></pre>
<h3>CLI Enable and Disable Commands</h3>
<p>The Shop Minis CLI now includes <code>enable</code> and <code>disable</code> commands for toggling minis directly from the command line. This is useful for testing development minis or managing mini availability during the review process.</p>
<pre><code class="language-bash">npx minis enable
npx minis disable
</code></pre>
<p><a href="https://shopify.dev/docs/api/shop-minis/commands/enable" target="_blank" class="body-link">Additional documentation here</a></p>
<h3>Consent Flow &amp; Scopes</h3>
<ul>
<li><strong>Terms consent toast</strong>: Users see a confirmation toast when accepting terms, improving clarity.</li>
<li><strong>Development mode consent</strong>: The consent dialog now appears in dev mode when a mini requests scopes, facilitating easier testing of the consent flow during development.</li>
<li><strong>Favorite and unfavorite bypass</strong>: Tapping favorite or unfavorite on a mini no longer triggers the consent popup, reducing unnecessary friction.</li>
<li><strong>Removed Consent Scopes</strong>: Unused read scopes have been removed from the platform. Minis that only use <code>ProductCard</code> or <code>ProductLink</code> no longer require the <code>product_list:write</code> scope, reducing the consent burden for simpler minis.</li>
<li><strong>OpenId scope removed</strong>: The <code>openid</code> scope is no longer required for custom backend support. It is only needed if your Mini uses the public user ID (<code>publicId</code>) for personalization or data persistence.</li>
</ul>
<h3>Home Page Quick Link</h3>
<p>Minis are now accessible through a quick link on the Shop App home screen, making it easier for users to discover and browse the Explore section. This enhancement gives minis greater visibility across the app.</p>
<h2>Documentation Updates</h2>
<p>The following documentation updates accompany these changes:</p>
<h3>Manifest File</h3>
<p><a href="https://shopify.dev/docs/api/shop-minis/manifest-file" target="_blank" class="body-link">Updated documentation</a> reflects the removal of legacy read scopes from the manifest file. Partners using removed scopes should update their <code>manifest.json</code> accordingly.</p>
<h3>Custom Backend</h3>
<p>The <a href="https://shopify.dev/docs/api/shop-minis/custom-backend" target="_blank" class="body-link">custom backend guide</a> has been revised with clearer instructions and updated markdown formatting.</p>
<h2>Other Changes</h2>
<ul>
<li>Removed the unused <code>variants</code> field, continuing cleanup from January.</li>
<li>The CLI template no longer includes unnecessary scopes in the default <code>manifest.json</code>.</li>
<li>Development minis can now be queried by UUID before they are enabled, supporting consent checks during development.</li>
</ul>
<h2>Summary</h2>
<p>February focuses on richer content, better developer experience, and reducing friction:</p>
<ol>
<li><strong>Product tagging for UGC</strong>: Tag products directly to user-generated content for shoppable experiences.</li>
<li><strong>SafeArea support</strong>: New component and hook for handling device safe areas in full-screen minis.</li>
<li><strong>CLI enable/disable</strong>: Toggle minis directly from the command line.</li>
<li><strong>Consent improvements</strong>: Smoother consent flow with dev mode support and fewer unnecessary popups.</li>
<li><strong>Scope simplification</strong>: Removed legacy read scopes and reduced consent requirements for simpler minis.</li>
<li><strong>Explore quick link</strong>: Greater visibility for minis on the Shop App home screen.</li>
</ol>
<p>For questions or feedback, reach out to the Shop Minis team or post in the <a href="https://community.shopify.dev/c/shop-minis/33" target="_blank" class="body-link">community forums</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 06 Mar 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Shop Minis</category>
    <link>https://shopify.dev/changelog/shop-minis-february-2026-update</link>
  </item>
  <item>
    <title>ShopifyQL returns fields deprecated and replaced with sales reversals fields</title>
    <description><![CDATA[ <div class=""><p>In GraphQL Admin API version <code>2026-04</code>, several Returns fields in analytics, which can be queried through <a href="https://shopify.dev/docs/api/shopifyql" target="_blank" class="body-link">ShopifyQL</a>, have been deprecated and replaced with renamed versions (e.g., <code>sales_reversals</code>, <code>reversed_quantity</code>) to better reflect that they capture all order adjustments, including refunds, returns, order edits, and cancellations. The definitions remain unchanged.</p>
<h2>Deprecation timeline</h2>
<p>Deprecated fields will be removed in version 2026-07, but will still be accessible via older API versions until 2027-04.</p>
<h2>Why we did this</h2>
<p>The new field names clarify the difference between broad order adjustments (sales reversals) and physical returns. With the launch of return reason reporting, you can now see physical quantities returned and their reasons at the line item level, separate from overall order adjustments. Access these details in the returns schema using <code>returned_quantity</code>, <code>return_line_item_reason</code>, and <code>is_unverified_return_line_item</code>.</p>
<h2>What you need to do</h2>
<p>Update your ShopifyQL queries to use the new <code>sales_reversals</code> and <code>reversed_quantity</code> fields (see mapping table below)</p>
<p>| Deprecated field | New replacement field |
| :</p>
</div> ]]></description>
    <pubDate>Thu, 05 Mar 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/shopifyql-returns-fields-deprecated-and-replaced-with-sales-reversals-fields</link>
  </item>
  <item>
    <title>New analyticsQueryable capability for Metafield Definitions</title>
    <description><![CDATA[ <div class=""><p>The <code>analyticsQueryable</code> capability is now available on the <code>MetafieldDefinition</code> type in the GraphQL Admin API, enabling you to specify whether a metafield can be queried in Shopify Analytics. This enhancement allows merchants to leverage custom metafield values for filtering and grouping data, providing deeper insights into their store's performance.</p>
<p>You can access this capability via the <code>MetafieldDefinition.capabilities</code> field. It can be set during the creation or update of a metafield definition using the <code>metafieldDefinitionCreate</code> and <code>metafieldDefinitionUpdate</code> mutations.</p>
<p>Once enabled, the metafield becomes a dimension and filter in ShopifyQL and Shopify's Analytics, empowering merchants to refine their data analysis. Currently, this functionality supports the following <code>MetafieldDefinition.ownerType</code> values:</p>
<ul>
<li><code>PRODUCT</code></li>
<li><code>PRODUCTVARIANT</code></li>
<li><code>ORDER</code></li>
<li><code>CUSTOMER</code></li>
</ul>
<p><strong>Example: Enabling Analytics Queryable on a New Metafield Definition</strong></p>
<p>The following GraphQL mutation demonstrates how to enable the <code>analyticsQueryable</code> capability for a new metafield definition. This example sets up a metafield for products, allowing it to be used in analytics queries:</p>
<pre><code class="language-graphql">mutation {
  metafieldDefinitionCreate(definition: {
    name: &quot;Fabric&quot;
    namespace: &quot;custom&quot;
    key: &quot;fabric&quot;
    type: &quot;single_line_text_field&quot;
    ownerType: PRODUCT
    capabilities: {
      analyticsQueryable: { enabled: true }
    }
  }) {
    createdDefinition {
      id
      capabilities {
        analyticsQueryable {
          enabled
        }
      }
    }
    userErrors {
      field
      message
    }
  }
}
</code></pre>
<p>This mutation creates a new metafield definition with the <code>analyticsQueryable</code> capability enabled, making it available for use in Shopify Analytics.</p>
</div> ]]></description>
    <pubDate>Thu, 05 Mar 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/new-analyticsqueryable-capability-for-metafield-definitions</link>
  </item>
  <item>
    <title>Metafield translations now available via GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>The <code>Metafield</code> type now includes a <code>translations</code> field, enabling you to query localized metafield values directly via the GraphQL Admin API. This enhancement allows you to access translations for metafields associated with any resource, including products, collections, customers, orders, locations, and more.</p>
<h2>Querying translations</h2>
<p>To query translations for a resource's metafields, including their localized values, see the <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/queries/product?example=get-translations-for-a-product-metafield" target="_blank" class="body-link">Get translations for a product metafield</a> example.</p>
<h2>Registering a translation</h2>
<p>To register a translation, use the <code>translationsRegister</code> mutation with the metafield's resource ID and a content digest. The <code>compareDigest</code> ensures that translations remain synchronized with the original value. You can obtain this digest when creating or querying a metafield.</p>
<p>See the <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/translationsRegister?example=register-a-french-translation-for-a-metafield-value" target="_blank" class="body-link">Register a French translation for a metafield value</a> example for the full workflow.</p>
<p>Translation is supported for text-based metafield types, including <code>single_line_text_field</code>, <code>multi_line_text_field</code>, <code>rich_text_field</code>, and <code>html</code>. Ensure that the target locale is <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/shopLocaleEnable" target="_blank" class="body-link">enabled and published</a> on your store.</p>
<p>For further information, refer to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield" target="_blank" class="body-link">Metafield</a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister" target="_blank" class="body-link">translationsRegister</a> documentation.</p>
</div> ]]></description>
    <pubDate>Wed, 04 Mar 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/metafield-translations-now-available-via-graphql-admin-api</link>
  </item>
  <item>
    <title>Process refunds only through the original payment processor – Requirement update</title>
    <description><![CDATA[ <div class=""><p>We've updated <a href="https://shopify.dev/docs/apps/launch/shopify-app-store/app-store-requirements#process-refunds-only-through-the-original-payment-processor" target="_blank" class="body-link">requirement 1.1.15</a> for Shopify App Store apps. </p>
<p>Apps must now process refunds only through the original payment processor. Previously, apps were prohibited from offering methods for processing refunds outside of the original payment processor. With this update, if your app issues store credits during a refund, it must use either the '<a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/refundCreate" target="_blank" class="body-link">refundCreate</a>' or '<a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnProcess" target="_blank" class="body-link">returnProcess</a>' mutation. This change ensures that refunds and store credits are handled securely and consistently within Shopify’s platform.</p>
<p>For more details on the updated requirement, please refer to the <a href="https://shopify.dev/docs/apps/launch/shopify-app-store/app-store-requirements#process-refunds-only-through-the-original-payment-processor" target="_blank" class="body-link">Shopify App Store requirements documentation</a>.</p>
<p>This requirement update will be enforced immediately for new app submissions and will take effect on April 22, 2026, for published apps.</p>
</div> ]]></description>
    <pubDate>Fri, 27 Feb 2026 21:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/process-refunds-only-through-the-original-payment-processor-requirement-update</link>
  </item>
  <item>
    <title>Updates effective February 27 to our Partner Program Agreement and API License and Terms of Use</title>
    <description><![CDATA[ <div class=""><p>Effective Friday, February 27, 2026, <strong>Action Required</strong></p>
<p>We have updated our <a href="https://www.shopify.ca/partners/terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Partner Program Agreement</a> and <a href="https://www.shopify.com/legal/api-terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">API License and Terms of Use</a>. These changes clarify roles, enhance data protection, and support new platform features.</p>
<p>By continuing to use Shopify services on or after February 27, 2026, you confirm that you have read, understood, and accepted these new terms.</p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 27 Feb 2026 20:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-effective-february-27-to-our-partner-program-agreement-and-api-license-and-terms-of-use</link>
  </item>
  <item>
    <title>Bare query strings no longer bust the cache for assets</title>
    <description><![CDATA[ <div class=""><h2>Action required</h2>
<p>We're enhancing Shopify's asset caching to improve load times. As part of this update, we are modifying the URL query parameters recognized for cache busting.</p>
<p>Effective March 24, 2026, bare query strings (a <code>?</code> followed by a value with no key) will not refresh cached assets. Previously, these strings appeared to refresh assets because altering the URL could bypass the cache; this incidental behavior will be discontinued.</p>
<p>If your asset URLs are generated with Liquid filters (such as <code>asset_url</code>), you’re already compatible—no changes are necessary.</p>
<h2>What’s changing</h2>
<p>Referencing assets (e.g., images, fonts) with a URL containing a bare query string will no longer refresh the cached asset when the value is updated.</p>
<p>For example:</p>
<pre><code>image.png?123
</code></pre>
<p>The same applies within CSS:</p>
<pre><code class="language-css">background-image: url('image.png?123');
</code></pre>
<h2>What to do</h2>
<p>Use the appropriate Liquid filter to generate URLs (e.g., <code>asset_url</code>, <code>file_url</code>). Shopify handles versioning and updates the URL automatically whenever the asset changes.</p>
<p>In templates:</p>
<pre><code class="language-liquid">{{ 'image.png' | asset_url }}
</code></pre>
<p>This outputs a URL with a version parameter:</p>
<pre><code>image.png?v=1384022871
</code></pre>
<p>In CSS, use a <code>.css.liquid</code> file to incorporate Liquid:</p>
<pre><code class="language-css">background-image: url('{{ &quot;image.png&quot; | asset_url }}');
</code></pre>
<h2>Why this matters</h2>
<p>Continuing to use bare query strings may result in stale assets being served until the cache expires. Using Liquid filters ensures that the correct, current version of each asset is delivered, enhancing performance by enabling more effective CDN and browser caching.</p>
<h2>Learn more</h2>
<ul>
<li><a href="https://shopify.dev/docs/api/liquid/filters/asset_url" target="_blank" class="body-link">asset_url</a> filter</li>
<li><a href="https://shopify.dev/docs/api/liquid/filters/file_url" target="_blank" class="body-link">file_url</a> filter</li>
<li><a href="https://shopify.dev/docs/storefronts/themes/best-practices/performance/platform#css-syntax-to-ensure-automatic-updates" target="_blank" class="body-link">CSS syntax to ensure automatic updates</a></li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 27 Feb 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/bare-query-strings-no-longer-bust-the-cache-for-assets</link>
  </item>
  <item>
    <title>Enhanced discounts support in the Shopify Functions Cart</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version <code>2026-04</code>, Shopify Functions can now access detailed discount information at three levels:</p>
<ol>
<li><strong>Cart-level</strong>: All discount applications on the cart.</li>
<li><strong>Line item-level</strong>: Discounts allocated to specific line items.</li>
<li><strong>Delivery-level</strong>: Discounts allocated to delivery groups.</li>
</ol>
<p>Based on the <a href="https://shopify.dev/docs/api/functions/2026-04#function-execution-order-in-checkout" target="_blank" class="body-link">function execution order</a>, only functions that execute after discounts can see complete discount information. </p>
<p>Learn more about <a href="https://shopify.dev/docs/api/functions/2026-04#graphql-schema-and-versioning" target="_blank" class="body-link">function inputs</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 24 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/enhanced-discounts-support-in-the-shopify-functions-cart</link>
  </item>
  <item>
    <title>Support for market-aware auth URLs in Customer Account API </title>
    <description><![CDATA[ <div class=""><p>You can now pass <code>locale</code> and <code>region_country</code> parameters to the Customer Account API authorization endpoint to build<br> market-aware login experiences in headless storefronts.</p>
<p>Liquid storefronts handle this automatically with <code>{{ routes.account_login_url }}</code>, but headless storefronts previously had no
documented way to construct login URLs that respect market context. We've added documentation and support for two optional<br>authorization parameters:                                                                                                     </p>
<ul>
<li><strong><a href="https://shopify.dev/docs/api/customer#authorization" target="_blank" class="body-link"><code>locale</code></a></strong>: Controls the language of the login screen. Supports regional variants like <code>fr-CA</code> and <code>en-GB</code>, which load market-specific translations set through Translate &amp; Adapt.</li>
<li><strong><a href="https://shopify.dev/docs/api/customer#authorization" target="_blank" class="body-link"><code>region_country</code></a></strong>: Controls the market context for policies, branding, and other non-translation content. Uses an ISO 3166-1 Alpha-2 country code.</li>
</ul>
<p>These parameters can be used independently or together for a fully localized login experience.</p>
<p>Learn more about <a href="https://shopify.dev/docs/storefronts/headless/building-with-the-customer-account-api/market-aware-auth-urls" target="_blank" class="body-link">building market-aware auth URLs for headless stores</a>. For the full list of authorization parameters, refer to the <a href="https://shopify.dev/docs/api/customer#authorization" target="_blank" class="body-link">Customer Account API authorization reference</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 24 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Customer Account API</category>
    <link>https://shopify.dev/changelog/support-for-market-aware-auth-urls-in-customer-account-api</link>
  </item>
  <item>
    <title>Subscriptions APIs: Introduce SubscriptionBillingAttemptState</title>
    <description><![CDATA[ <div class=""><p>As of April 2026, you now have access to the <code>SubscriptionBillingAttemptState</code> field in the GraphQL Admin API. This new field replaces several loosely-typed nullable fields with a discriminated union pattern, enhancing the API's ergonomics and self-documentation.</p>
<p>| Deprecated Field | New Equivalent | Notes |
| </p>
</div> ]]></description>
    <pubDate>Mon, 23 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/subscriptions-apis-introduce-subscriptionbillingattemptstate</link>
  </item>
  <item>
    <title>New rejection reason codes and merchant message added to `verificationSessionReject` mutation</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/payments-apps/latest/mutations/verificationSessionReject" target="_blank" class="body-link"><code>verificationSessionReject</code> mutation</a> in the Payments Apps API now supports two new rejection reason codes and an optional merchant-facing message. The <a href="https://shopify.dev/docs/api/payments-apps/latest/mutations/verificationSessionReject#arguments-reason.fields.code" target="_blank" class="body-link">new enum values</a> on <a href="https://shopify.dev/docs/api/payments-apps/latest/enums/VerificationSessionStateReason" target="_blank" class="body-link"><code>VerificationSessionStateReason</code></a> include:</p>
<ul>
<li><code>RESOURCE_NOT_FOUND</code>: The payment method could not be found in the payment provider's system.</li>
<li><code>RESOURCE_INVALID</code>: The payment token is not valid for this use case (for example, a mismatch between customer and payment method).</li>
</ul>
<p>A new input field on <code>VerificationSessionRejectionReasonInput</code>(<a href="https://shopify.dev/docs/api/payments-apps/2026-04/input-objects/VerificationSessionRejectionReasonInput" target="_blank" class="body-link">https://shopify.dev/docs/api/payments-apps/2026-04/input-objects/VerificationSessionRejectionReasonInput</a>) has also been added:</p>
<ul>
<li><code>merchantMessage</code> (string, optional): A custom, localized message to provide to the merchant when a verification is rejected.</li>
</ul>
<p>These changes give payment apps more granular control over verification rejection reporting.</p>
</div> ]]></description>
    <pubDate>Sat, 21 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Payments Apps API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/new-rejection-reason-codes-and-merchant-message-added-to-verificationsessionreject-mutation</link>
  </item>
  <item>
    <title>New APIs to read and write shipping options in delivery profile</title>
    <description><![CDATA[ <div class=""><p>As part of the enhanced UI for creating shipping options, a shipping option can now include multiple tiered rates grouped together.</p>
<p>If your app integrates with delivery profiles and uses <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/DeliveryMethodDefinition" target="_blank" class="body-link"><code>DeliveryMethodDefinition</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput" target="_blank" class="body-link"><code>DeliveryMethodDefinitionInput</code></a> to manage shipping options, then evaluate if you need to transition to the new APIs in the unstable version:</p>
<ul>
<li>If your app reads merchant-managed <code>DeliveryProfile</code>, you might need to migrate to the new read API. Refer to the [Read API](#Read API) and <a href="#backwards-compatibility-for-queries" target="_blank" class="body-link">backwards compatibility</a> sections.</li>
<li>If your app writes merchant-managed  <code>DeliveryProfile</code>, then you must migrate to the new write API to avoid unexpected behaviour. Refer to the [Write API](#Write API) section.</li>
<li>If your app reads and/or writes app-managed <code>DeliveryProfile</code>, then no action is needed.</li>
</ul>
<p><strong>Glossary:</strong></p>
<ul>
<li>Merchant-managed  <code>DeliveryProfile</code>: Shipping profiles that merchants create and edit in the Shopify admin.</li>
<li>App-managed  <code>DeliveryProfile</code>: Shipping profiles that the app creates and edits.</li>
</ul>
<p>This guide outlines the new GraphQL fields and input types for managing shipping options within shipping profiles.</p>
<h2>What's changed?</h2>
<h3>Read API</h3>
<p>We're introducing the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/DeliveryMethodDefinition#field-DeliveryMethodDefinition.fields.rateGroups" target="_blank" class="body-link"><code>DeliveryMethodDefinition.rateGroups</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/DeliveryRateDefinition#field-DeliveryRateDefinition.fields.conditions" target="_blank" class="body-link"><code>DeliveryRateDefinition.conditions</code></a> fields. These replace the legacy <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/DeliveryMethodDefinition#field-DeliveryMethodDefinition.fields.rateProvider" target="_blank" class="body-link"><code>DeliveryMethodDefinition.rateProvider</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/DeliveryMethodDefinition#field-DeliveryMethodDefinition.fields.methodConditions" target="_blank" class="body-link"><code>DeliveryMethodDefinition.methodConditions</code></a> fields.</p>
<p>To prevent unexpected behavior, migrate to these new fields. Refer to the <a href="#how-to-query-shipping-options" target="_blank" class="body-link">example query</a> to learn how to use these fields to fetch a <code>DeliveryMethodDefinition</code>.</p>
<p>The legacy fields are scheduled for deprecation. For details on their current behavior, see <a href="#backward-compatibility-for-queries" target="_blank" class="body-link">backward compatibility for queries</a>.</p>
<h3>Write API</h3>
<p>The following new input fields have been added to <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput" target="_blank" class="body-link"><code>DeliveryMethodDefinitionInput</code></a>: 
*<a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-priceConditionsToCreate" target="_blank" class="body-link"> <code>rateGroupsToCreate</code></a></p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-rateGroupsToUpdate" target="_blank" class="body-link"><code>rateGroupsToUpdate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-freeConditions" target="_blank" class="body-link"><code>freeConditions</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-currencyCode" target="_blank" class="body-link"><code>currencyCode</code> </a></li>
</ul>
<p>The following legacy fields will become obsolete when merchants start using multiple tiered rates:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-participant" target="_blank" class="body-link"><code>DeliveryMethodDefinitionInput.participant</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-rateDefinition" target="_blank" class="body-link"><code>DeliveryMethodDefinitionInput.rateDefinition</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-priceConditionsToCreate" target="_blank" class="body-link"><code>DeliveryMethodDefinitionInput.priceConditionsToCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/DeliveryMethodDefinitionInput#fields-weightConditionsToCreate" target="_blank" class="body-link"><code>DeliveryMethodDefinitionInput.weightConditionsToCreate</code></a> .</li>
</ul>
<p>To learn how to update a <code>DeliveryMethodDefinition</code> using the new fields, see the <a href="#how-to-create-and-update-shipping-options" target="_blank" class="body-link">example mutation</a></p>
<h2>Examples</h2>
<h3>How to query shipping options</h3>
<pre><code class="language-graphql">query DeliveryProfile {
  deliveryProfile(id: &quot;gid://shopify/DeliveryProfile/123&quot;) {
    profileLocationGroups {
      locationGroup {
        id
      }
      locationGroupZones(first: 10) {
        edges {
          node {
            methodDefinitions(first: 10) {
              edges {
                node {
                  id
                  name
                  description
                  active
                  currencyCode
                  rateGroups(first: 10) {
                    edges {
                      node {
                        id
                        rateProviders(first: 10) {
                          edges {
                            node {
                              ... on DeliveryRateDefinition {
                                id
                                price {
                                  amount
                                  currencyCode
                                }
                                minTransitTime
                                maxTransitTime
                                conditions {
                                  subject
                                  min {
                                    ... on MoneyV2 {
                                      amount
                                      currencyCode
                                    }
                                    ... on Weight {
                                      value
                                      unit
                                    }
                                  }
                                  max {
                                    ... on MoneyV2 {
                                      amount
                                      currencyCode
                                    }
                                    ... on Weight {
                                      value
                                      unit
                                    }
                                  }
                                }
                              }
                              ... on DeliveryParticipant {
                                id
                                carrierService {
                                  id
                                  name
                                }
                                fixedFee {
                                  amount
                                  currencyCode
                                }
                                percentageOfRateFee
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  freeConditions {
                    subject
                    min {
                      ... on MoneyV2 {
                        amount
                        currencyCode
                      }
                      ... on Weight {
                        value
                        unit
                      }
                    }
                    max {
                      ... on MoneyV2 {
                        amount
                        currencyCode
                      }
                      ... on Weight {
                        value
                        unit
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
</code></pre>
<h3>How to create and update shipping options</h3>
<p>For the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/deliveryProfileCreate" target="_blank" class="body-link"><code>deliveryProfileCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/deliveryProfileUpdate" target="_blank" class="body-link"><code>deliveryProfileUpdate</code></a> mutations, the following new input fields are added to <code>DeliveryMethodDefinitionInput</code>: </p>
<ul>
<li><code>rateGroupsToCreate</code></li>
<li><code>rateGroupsToUpdate</code></li>
<li><code>freeConditions</code></li>
<li><code>currencyCode</code></li>
</ul>
<p>Here's how to update a shipping option using the new input fields:</p>
<pre><code class="language-graphql">mutation ProfileUpdate {
  deliveryProfileUpdate(
    id: &quot;gid://shopify/DeliveryProfile/123&quot;
    profile: {
      profileLocationGroups: [
        {
          id: &quot;gid://shopify/DeliveryProfileLocationGroup/456&quot;
          zonesToUpdate: [
            {
              id: &quot;gid://shopify/DeliveryLocationGroupZone/789&quot;
              methodDefinitionsToUpdate: [
                {
                  id: &quot;gid://shopify/DeliveryMethodDefinition/321&quot;
                  rateGroupsToUpdate: [
                    {
                      id: &quot;gid://shopify/DeliveryRateGroup/555&quot;
                      rateDefinitionsToUpdate: [
                        {
                          id: &quot;gid://shopify/DeliveryRateDefinition/666&quot;
                          price: {
                            amount: 7.50
                            currencyCode: USD
                          }
                          minTransitTime: 172800
                        }
                      ]
                      rateDefinitionsToDelete: [
                        &quot;gid://shopify/DeliveryRateDefinition/777&quot;
                      ]
                      rateDefinitionsToCreate: [
                        {
                          price: {
                            amount: 15.00
                            currencyCode: USD
                          }
                          conditions: [
                            {
                              subject: PACKAGE_WEIGHT
                              min: 20.0
                              unit: &quot;kg&quot;
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ) {
    profile {
      id
    }
    userErrors {
      field
      message
    }
  }
}
</code></pre>
<h3>Backwards compatibility for queries</h3>
<p>The <code>DeliveryMethodDefinition.rateProvider</code> and <code>DeliveryMethodDefinition.methodConditions</code> fields will continue to be supported temporarily to facilitate a smooth transition.</p>
<p>When using the legacy API:</p>
<ul>
<li>If a method definition includes multiple rate definitions, then each additional rate is represented as a separate method definition with its own <code>rateProvider</code> and <code>methodConditions</code>.</li>
<li>Free conditions are represented as separate method definitions with a zero-price rate definition as the <code>rateProvider</code>.</li>
</ul>
<p>For example, a method definition with three rate definitions and a free condition will yield different results in the new and legacy APIs. The <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile#field-DeliveryProfile.fields.activeMethodDefinitionsCount" target="_blank" class="body-link"><code>activeMethodDefinitionsCount</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/DeliveryLocationGroupZone#field-DeliveryLocationGroupZone.fields.methodDefinitionCounts" target="_blank" class="body-link"><code>methodDefinitionCounts</code></a> will reflect these differences.</p>
<p><strong>New API response</strong></p>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;node&quot;: {
      &quot;activeMethodDefinitionsCount&quot;: 1,
      &quot;profileLocationGroups&quot;: [
        {
          &quot;locationGroupZones&quot;: {
            &quot;nodes&quot;: [
              {
                &quot;methodDefinitionCounts&quot;: {
                  &quot;rateDefinitionsCount&quot;: 1,
                  &quot;participantDefinitionsCount&quot;: 0
                },
                &quot;methodDefinitions&quot;: {
                  &quot;nodes&quot;: [
                    {
                      &quot;id&quot;: &quot;gid://shopify/DeliveryMethodDefinition/825837944888&quot;,
                      &quot;name&quot;: &quot;Standard&quot;,
                      &quot;rateGroups&quot;: {
                        &quot;nodes&quot;: [
                          {
                            &quot;rateProviders&quot;: {
                              &quot;nodes&quot;: [
                                {
                                  &quot;id&quot;: &quot;gid://shopify/DeliveryRateDefinition/760813584440&quot;,
                                  &quot;price&quot;: {
                                    &quot;amount&quot;: &quot;10.0&quot;,
                                    &quot;currencyCode&quot;: &quot;CAD&quot;
                                  },
                                  &quot;conditions&quot;: [
                                    {
                                      &quot;subject&quot;: &quot;PACKAGE_WEIGHT&quot;,
                                      &quot;min&quot;: {
                                        &quot;value&quot;: 0,
                                        &quot;unit&quot;: &quot;KILOGRAMS&quot;
                                      },
                                      &quot;max&quot;: {
                                        &quot;value&quot;: 10,
                                        &quot;unit&quot;: &quot;KILOGRAMS&quot;
                                      }
                                    }
                                  ]
                                },
                                {
                                  &quot;id&quot;: &quot;gid://shopify/DeliveryRateDefinition/760813617208&quot;,
                                  &quot;price&quot;: {
                                    &quot;amount&quot;: &quot;20.0&quot;,
                                    &quot;currencyCode&quot;: &quot;CAD&quot;
                                  },
                                  &quot;conditions&quot;: [
                                    {
                                      &quot;subject&quot;: &quot;PACKAGE_WEIGHT&quot;,
                                      &quot;min&quot;: {
                                        &quot;value&quot;: 10.0001,
                                        &quot;unit&quot;: &quot;KILOGRAMS&quot;
                                      },
                                      &quot;max&quot;: {
                                        &quot;value&quot;: 20,
                                        &quot;unit&quot;: &quot;KILOGRAMS&quot;
                                      }
                                    }
                                  ]
                                },
                                {
                                  &quot;id&quot;: &quot;gid://shopify/DeliveryRateDefinition/760813649976&quot;,
                                  &quot;price&quot;: {
                                    &quot;amount&quot;: &quot;30.0&quot;,
                                    &quot;currencyCode&quot;: &quot;CAD&quot;
                                  },
                                  &quot;conditions&quot;: [
                                    {
                                      &quot;subject&quot;: &quot;PACKAGE_WEIGHT&quot;,
                                      &quot;min&quot;: {
                                        &quot;value&quot;: 20.0001,
                                        &quot;unit&quot;: &quot;KILOGRAMS&quot;
                                      },
                                      &quot;max&quot;: null
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        ]
                      },
                      &quot;freeShippingConditions&quot;: [
                        {
                          &quot;min&quot;: {
                            &quot;amount&quot;: &quot;100.0&quot;,
                            &quot;currencyCode&quot;: &quot;CAD&quot;
                          }
                        }
                      ]
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
}
</code></pre>
<p><strong>Legacy API response</strong></p>
<p>With the legacy API, you receive multiple method definitions, one for each rate definition and one for the free condition:</p>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;node&quot;: {
      &quot;activeMethodDefinitionsCount&quot;: 4,
      &quot;profileLocationGroups&quot;: [
        {
          &quot;locationGroupZones&quot;: {
            &quot;nodes&quot;: [
              {
                &quot;methodDefinitionCounts&quot;: {
                  &quot;rateDefinitionsCount&quot;: 4,
                  &quot;participantDefinitionsCount&quot;: 0
                },
                &quot;methodDefinitions&quot;: {
                  &quot;nodes&quot;: [
                    {
                      &quot;id&quot;: &quot;gid://shopify/DeliveryMethodDefinition/825837944888&quot;,
                      &quot;name&quot;: &quot;Standard&quot;,
                      &quot;rateProvider&quot;: {
                        &quot;__typename&quot;: &quot;DeliveryRateDefinition&quot;,
                        &quot;id&quot;: &quot;gid://shopify/DeliveryRateDefinition/760813584440&quot;,
                        &quot;price&quot;: {
                          &quot;amount&quot;: &quot;10.0&quot;,
                          &quot;currencyCode&quot;: &quot;CAD&quot;
                        }
                      },
                      &quot;methodConditions&quot;: [
                        {
                          &quot;id&quot;: &quot;gid://shopify/DeliveryCondition/21530181688?operator=greater_than_or_equal_to&quot;,
                          &quot;field&quot;: &quot;TOTAL_WEIGHT&quot;,
                          &quot;conditionCriteria&quot;: {
                            &quot;value&quot;: 0,
                            &quot;unit&quot;: &quot;KILOGRAMS&quot;
                          }
                        },
                        {
                          &quot;id&quot;: &quot;gid://shopify/DeliveryCondition/21530181688?operator=less_than_or_equal_to&quot;,
                          &quot;field&quot;: &quot;TOTAL_WEIGHT&quot;,
                          &quot;conditionCriteria&quot;: {
                            &quot;value&quot;: 10,
                            &quot;unit&quot;: &quot;KILOGRAMS&quot;
                          }
                        }
                      ]
                    },
                    {
                      &quot;id&quot;: &quot;gid://shopify/DeliveryMethodDefinition/825837944888?source=RateDefinition&amp;source_id=760813617208&quot;,
                      &quot;name&quot;: &quot;Standard&quot;,
                      &quot;rateProvider&quot;: {
                        &quot;__typename&quot;: &quot;DeliveryRateDefinition&quot;,
                        &quot;id&quot;: &quot;gid://shopify/DeliveryRateDefinition/760813617208&quot;,
                        &quot;price&quot;: {
                          &quot;amount&quot;: &quot;20.0&quot;,
                          &quot;currencyCode&quot;: &quot;CAD&quot;
                        }
                      },
                      &quot;methodConditions&quot;: [
                        {
                          &quot;id&quot;: &quot;gid://shopify/DeliveryCondition/21530214456?operator=greater_than_or_equal_to&quot;,
                          &quot;field&quot;: &quot;TOTAL_WEIGHT&quot;,
                          &quot;conditionCriteria&quot;: {
                            &quot;value&quot;: 10.0001,
                            &quot;unit&quot;: &quot;KILOGRAMS&quot;
                          }
                        },
                        {
                          &quot;id&quot;: &quot;gid://shopify/DeliveryCondition/21530214456?operator=less_than_or_equal_to&quot;,
                          &quot;field&quot;: &quot;TOTAL_WEIGHT&quot;,
                          &quot;conditionCriteria&quot;: {
                            &quot;value&quot;: 20,
                            &quot;unit&quot;: &quot;KILOGRAMS&quot;
                          }
                        }
                      ]
                    },
                    {
                      &quot;id&quot;: &quot;gid://shopify/DeliveryMethodDefinition/825837944888?source=RateDefinition&amp;source_id=760813649976&quot;,
                      &quot;name&quot;: &quot;Standard&quot;,
                      &quot;rateProvider&quot;: {
                        &quot;__typename&quot;: &quot;DeliveryRateDefinition&quot;,
                        &quot;id&quot;: &quot;gid://shopify/DeliveryRateDefinition/760813649976&quot;,
                        &quot;price&quot;: {
                          &quot;amount&quot;: &quot;30.0&quot;,
                          &quot;currencyCode&quot;: &quot;CAD&quot;
                        }
                      },
                      &quot;methodConditions&quot;: [
                        {
                          &quot;id&quot;: &quot;gid://shopify/DeliveryCondition/21530247224?operator=greater_than_or_equal_to&quot;,
                          &quot;field&quot;: &quot;TOTAL_WEIGHT&quot;,
                          &quot;conditionCriteria&quot;: {
                            &quot;value&quot;: 20.0001,
                            &quot;unit&quot;: &quot;KILOGRAMS&quot;
                          }
                        }
                      ]
                    },
                    {
                      &quot;id&quot;: &quot;gid://shopify/DeliveryMethodDefinition/825837944888?source=RateRangeCondition&amp;source_id=21530279992&quot;,
                      &quot;name&quot;: &quot;Standard&quot;,
                      &quot;rateProvider&quot;: {
                        &quot;__typename&quot;: &quot;DeliveryRateDefinition&quot;,
                        &quot;id&quot;: &quot;gid://shopify/DeliveryRateDefinition/0?source=RateRangeCondition&amp;source_id=21530279992&quot;,
                        &quot;price&quot;: {
                          &quot;amount&quot;: &quot;0.0&quot;,
                          &quot;currencyCode&quot;: &quot;CAD&quot;
                        }
                      },
                      &quot;methodConditions&quot;: [
                        {
                          &quot;id&quot;: &quot;gid://shopify/DeliveryCondition/21530279992?operator=greater_than_or_equal_to&quot;,
                          &quot;field&quot;: &quot;TOTAL_PRICE&quot;,
                          &quot;conditionCriteria&quot;: {
                            &quot;amount&quot;: &quot;100.0&quot;,
                            &quot;currencyCode&quot;: &quot;CAD&quot;
                          }
                        }
                      ]
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 20 Feb 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-apis-to-read-and-write-shipping-options-in-delivery-profile</link>
  </item>
  <item>
    <title>Legacy customer accounts are now deprecated</title>
    <description><![CDATA[ <div class=""><p>Legacy customer accounts are no longer available to new stores and existing stores not using it. Shopify will stop providing feature updates and technical support for this older version. </p>
<p>A final sunset date for legacy customer accounts will be announced later in 2026. We strongly recommend that merchants <a href="https://help.shopify.com/en/manual/customers/customer-accounts/upgrade" target="_blank" class="body-link">upgrade</a> their customer accounts ahead of the deadline.</p>
<h2>If you build themes</h2>
<p>Theme developers should no longer include legacy customer account liquid files. Any store that is on legacy customer accounts, that upgrades to a theme without the legacy files, will automatically be upgraded to the latest version of customer accounts. </p>
<p>Simplify customer account implementation across your themes with our new <a href="https://shopify.dev/docs/storefronts/themes/customer-engagement/account-component" target="_blank" class="body-link">shopify-account web component</a> that automatically redirects to the latest version of customer accounts. </p>
<h2>If you build apps</h2>
<p>Developers can use Shopify Extensions to develop apps that customize and extend customer accounts in a way that does not require customizing liquid templates. If your app relies on legacy customer account liquid pages, it won’t work for merchants on the latest version of customer accounts.</p>
<p>With <a href="https://shopify.dev/docs/api/customer-account-ui-extensions/latest" target="_blank" class="body-link">customer account UI extensions</a>, you can enhance native pages like order status, order list, profile, and even build unique full-page experiences. <a href="https://apps.shopify.com/extensions/customer-account" target="_blank" class="body-link">800+ apps</a> have already made the switch. <a href="https://shopify.dev/docs/apps/build/customer-accounts" target="_blank" class="body-link">Build your first customer account extension</a> now and put your app in front of over 70% of Shopify merchants (and growing) already using customer accounts.</p>
<h2>If you build custom storefronts</h2>
<p>Use the <a href="https://shopify.dev/docs/api/customer/latest" target="_blank" class="body-link">Customer Account API</a> as your source for customer-scoped data and authenticated customer actions in order to create the most secure customer experiences. </p>
<p>If you build custom storefronts or apps that currently use Storefront API customer-scoped mutations, we recommend switching to the Customer Account API as soon as possible.</p>
</div> ]]></description>
    <pubDate>Fri, 20 Feb 2026 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/legacy-customer-accounts-are-deprecated</link>
  </item>
  <item>
    <title>JSON metafield values limited to 128KB</title>
    <description><![CDATA[ <div class=""><p>When using API version 2026-04 or later, JSON type metafield writes will be limited to 128KB. Limits for all other metafield types remain unchanged (<a href="https://shopify.dev/docs/apps/build/metafields/metafield-limits" target="_blank" class="body-link">current limits</a>). <strong>All apps that use JSON fields (prior to April 1st, 2026), will be grandfathered at the current 2MB limit.</strong> Large metafield values continue to be readable by all API versions, including future versions.</p>
<p>Large JSON metafield negatively impact storefront performance—particularly when multiple large values are loaded together, which can result in tens of megabytes of data being fetched for a single page. Our goal is to accommodate all current use cases while preventing performance issues stemming from extremely large values. </p>
<p>If you are a new app and believe you have a use case that requires &gt;128KB JSON fields, please fill out this <a href="https://docs.google.com/forms/d/e/1FAIpQLSdMEzS4NoKB3BfL3gjQMRhPT3ZNtZipzuBxVWy8SqJCYYBkMw/viewform?usp=publish-editor" target="_blank" class="body-link">form</a> to request access. Additional limits will be granted on a case by case basis.</p>
<p><strong>Note</strong>: Initially, this change limited metafields to 16KB. After feedback from our developer community, we've revised those limits to accommodate more use cases and updated this post.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Feb 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Customer Account API</category>
    <category>Storefront GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/reduced-metafield-value-sizes</link>
  </item>
  <item>
    <title>Improved app logs and monitoring</title>
    <description><![CDATA[ <div class=""><p>We are enhancing app monitoring and logs to provide better visibility and debugging capabilities, starting with webhooks.</p>
<p><strong>Monitoring Page Improvements</strong></p>
<ul>
<li>Expanded History: Access up to 30 days of webhook data, including successful deliveries, error counts, and p90 response times.  </li>
<li>Topic Filtering: List all topics and filter the page to view charts specific to a single topic.</li>
</ul>
<p><strong>Logs Page Improvements</strong></p>
<ul>
<li>Fine-Grained Time Filters: Search logs using customized start and end dates and times for faster troubleshooting.  </li>
<li>Multi-Select Filters: Filter by multiple Shops, Statuses, or Topics simultaneously.  </li>
<li>Filter counts: See the count of events associated with each Shop, Status, and Topic filter option.</li>
</ul>
<p>These features are now available in the <a href="https://dev.shopify.com/dashboard/" target="_blank" class="body-link">Dev Dashboard</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Feb 2026 17:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/improved-app-logs-and-monitoring</link>
  </item>
  <item>
    <title>Manage dev previews on your dev store without leaving admin</title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI 3.91, the Dev Console has been updated to show all active <code>dev</code> previews and their extensions, right in the admin. You can now see information on the developer who created the preview, and when it was last updated. Additionally, the Dev Console allows you to:</p>
<ul>
<li>Access preview links for your app and extensions  </li>
<li>Open QR codes for mobile testing  </li>
<li>Clean up <code>dev</code> previews that are no longer in use  </li>
<li>Open your app on the Dev Dashboard</li>
</ul>
<p>The Dev Console is available for your app when running <code>shopify app dev</code> and opening the admin. For more information, see the <a href="https://shopify.dev/docs/apps/build/cli-for-apps/test-apps-locally" target="_blank" class="body-link">app testing documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Feb 2026 13:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/manage-dev-previews-on-your-dev-store-without-leaving-admin</link>
  </item>
  <item>
    <title>Use the Admin API and bulk operations in Shopify CLI</title>
    <description><![CDATA[ <div class=""><p>Shopify CLI 3.90.1 now features commands that let you execute queries, mutations, and <a href="https://shopify.dev/docs/api/usage/bulk-operations/queries" target="_blank" class="body-link">bulk operations</a> right from your terminal.</p>
<ul>
<li><code>shopify app execute</code> allows you to run standard Admin API queries and mutations.  </li>
<li><code>shopify app bulk execute</code> allows you to start bulk queries and bulk mutations, and optionally <code>--watch</code> them synchronously.  </li>
<li><code>shopify app bulk status</code> and <code>shopify app bulk cancel</code> allow you to monitor and manage bulk operations.</li>
</ul>
<p>These new commands come on the heels of the release of <a href="https://shopify.dev/changelog/faster-bulk-operations" target="_blank" class="body-link">improved performance and expanded mutation support for bulk operations</a>, which make it possible to handle larger data sets for a wider variety of data types. With this Shopify CLI release, it’s now easy for you to script and automate both bulk operations and standard GraphQL operations with the Admin API, or utilize them with coding agents to query and manipulate your dev stores.</p>
<p>For more information, see the <a href="https://shopify.dev/docs/api/usage/api-exploration/admin-cli-app-execute" target="_blank" class="body-link">documentation</a> and our <a href="https://community.shopify.dev/t/admin-api-and-bulk-operations-in-shopify-cli/29467" target="_blank" class="body-link">community announcement</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Feb 2026 13:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/use-the-admin-api-and-bulk-operations-in-shopify-cli</link>
  </item>
  <item>
    <title>The Dev Dashboard is now multi-lingual</title>
    <description><![CDATA[ <div class=""><p>The Dev Dashboard now renders in your preferred language, and is available in all the languages supported by the Shopify admin.</p>
<p>For more information, see <a href="https://help.shopify.com/en/manual/your-account/languages" target="_blank" class="body-link">Choosing your account language and region</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Feb 2026 13:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-dev-dashboard-is-now-multi-lingual</link>
  </item>
  <item>
    <title>Removing `permitsSkuSharing` field from fulfillment service</title>
    <description><![CDATA[ <div class=""><p>As of API version 2026-04, we've removed the <code>permitsSkuSharing</code> field from the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService" target="_blank" class="body-link"><code>FulfillmentService</code></a> object and from the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceCreate" target="_blank" class="body-link"><code>fulfillmentServiceCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentserviceupdate" target="_blank" class="body-link"><code>fulfillmentServiceUpdate</code></a> mutations. SKU sharing will be enabled by default for all fulfillment services.</p>
<h3>Why we made this change</h3>
<p>By enabling <code>permitsSkuSharing</code> for all fulfillment services, we're standardizing inventory behavior across fulfillment services and simplifying the API. Previously, having <code>permitsSkuSharing</code> set to disabled would restrict inventory to a single location. This didn't always represent how the merchant's inventory item was setup in the real world.</p>
<h3>Impact on your app</h3>
<ul>
<li><strong>GraphQL</strong>: In the <code>unstable</code> or <code>2026-04</code> and later releases, if you are querying for the <code>permitsSkuSharing</code> field or sending it in mutations in API version, you will begin receiving errors. </li>
<li><strong>REST</strong>: In the <code>unstable</code> or <code>2026-04</code> and later releases, the <code>permitsSkuSharing</code> field won't be returned in <code>GET</code> requests. In <code>POST</code> and <code>PUT</code> requests, the <code>permitsSkuSharing</code> argument will be ignored.</li>
<li><code>permitsSkuSharing</code> will be enabled for all fulfillment services.</li>
<li>When <code>permitsSkuSharing</code> was disabled, inventory could only be stocked at a single location. With it enabled for all fulfillment services, inventory can be stocked at multiple locations.</li>
</ul>
<h3>What you need to do</h3>
<ul>
<li>Remove any reads/writes of <code>permitsSkuSharing</code> from your code for the <code>unstable</code> or <code>2026-04</code> and later releases.</li>
<li>Review any business logic that assumed inventory could only be stocked at a single location for a fulfillment service.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 16 Feb 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/removing-permitsskusharing-field-from-fulfillment-service</link>
  </item>
  <item>
    <title>Remaining line items weight available for fulfillment orders</title>
    <description><![CDATA[ <div class=""><p>In the API 2026-04 release candidate version, a new field, <code>remainingLineItemsWeight</code>, has been added to the <code>FulfillmentOrder</code> GraphQL type. This field returns the total weight of line items that haven’t been fulfilled yet, which enables you to make decisions based on remaining weight in your fulfillment order.</p>
<p>For implementation details and further information, see the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link">fulfillment orders documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Feb 2026 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/remaining-line-items-weight-available-for-fulfillment-orders</link>
  </item>
  <item>
    <title>Added new enum values for ColumnDataType in ShopifyqlTableDataColumn</title>
    <description><![CDATA[ <div class=""><p>We have introduced 3 new enum values to <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/enums/ColumnDataType" target="_blank" class="body-link">ColumnDataType</a> in <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/ShopifyqlTableDataColumn" target="_blank" class="body-link">ShopifyqlTableDataColumn</a>: </p>
<ul>
<li><code>RATING</code> : Represents a rating value as float.</li>
<li><code>STRING IDENTITY</code>:  Represents a GID/UUID value.</li>
<li><code>COLOR</code>:  Represents a color value in HEX format.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 12 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/added-new-enum-values-for-columndatatype-in-shopifyqltabledatacolumn</link>
  </item>
  <item>
    <title>Webhook subscriptions now support a name field for identification</title>
    <description><![CDATA[ <div class=""><p>You can now assign an optional name to your webhook subscriptions to simplify identification and management. This feature is available for both TOML-based subscriptions and subscriptions created through the Admin API subscriptions created via the GraphQL Admin API.</p>
<p>Naming your webhooks is particularly beneficial when you have multiple subscriptions targeting the same endpoint or listening to the same topic with different filters. When a webhook is delivered, its name is included in the request headers, allowing you to route and process incoming webhooks without needing to parse the payload body.</p>
<p>For admin API subscriptions, the webhook name must be unique per shop. For declarative subscriptions, the name must be unique per app. Names can be up to 50 characters long and may include alphanumeric characters, underscores, and hyphens.</p>
<p>To set a name for TOML-based subscriptions, update the <code>name</code> field in your <code>shopify.app.toml</code> webhook configuration. From <code>2026-04</code>, you can name admin API subscriptions, the <code>name</code> field can be set using the <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/WebhookSubscription" target="_blank" class="body-link">WebhookSubscription</a> GraphQL object, as well as through the <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/webhookSubscriptionCreate" target="_blank" class="body-link">webhookSubscriptionCreate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/webhookSubscriptionUpdate" target="_blank" class="body-link">webhookSubscriptionUpdate</a> mutations.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/webhook-subscriptions-now-support-a-name-field-for-identification</link>
  </item>
  <item>
    <title>shopify.app.extensions() in App Bridge now supports POS UI extensions</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/app-home/apis/app" target="_blank" class="body-link"><code>shopify.app.extensions()</code> method in App Bridge</a> now supports <strong>Point of Sale (POS) UI extensions</strong>, in addition to checkout, customer account, Admin, and Theme extensions.</p>
<p>With this update, your embedded app can query the status of POS UI extensions along with other extension surfaces. This enables you to consistently handle and activate your Point of Sale extensions, simplifying the creation of onboarding flows and setup dashboards that encompass your entire app extension ecosystem, including in-store experiences.</p>
<p>For more information, refer to the <a href="https://shopify.dev/docs/api/app-home/apis/app" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Feb 2026 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>App Bridge</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/shopifyappextensions-in-app-bridge-now-supports-pos-ui-extensions</link>
  </item>
  <item>
    <title>Accelerated checkouts now support multiple product variants on the product page</title>
    <description><![CDATA[ <div class=""><p>Accelerated checkout now supports adding multiple product variants from the product page. Theme devs can include additional items alongside the main product (for example, a TV and its warranty), allowing customers to purchase products and their add-ons using accelerated checkout</p>
<p>Learn more in our <a href="https://shopify.dev/docs/storefronts/themes/pricing-payments/accelerated-checkout/multiple-product-checkout" target="_blank" class="body-link">dev docs</a>. </p>
</div> ]]></description>
    <pubDate>Fri, 06 Feb 2026 17:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/accelerated-checkout-now-supports-addons-from-the-product-page</link>
  </item>
  <item>
    <title>The `GiftCardConfiguration` object now includes default gift card expiration</title>
    <description><![CDATA[ <div class=""><p>You can now query a merchant's default gift card expiration settings using the GraphQL Admin API.</p>
<p>The new <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/GiftCardConfiguration#field-GiftCardConfiguration.fields.expirationConfiguration" target="_blank" class="body-link"><code>expirationConfiguration</code></a> field on the <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/GiftCardConfiguration" target="_blank" class="body-link"><code>GiftCardConfiguration</code></a> object returns the merchant's configured expiration settings, including the duration value and time unit (days, months, or years). When merchants have automatic gift card expiration enabled, you can use these settings to calculate the <code>expiresOn</code> date for new gift cards.</p>
<h2>How it works</h2>
<ul>
<li>The <code>expirationConfiguration</code> field returns either:<ul>
<li>a <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/GiftCardExpirationConfiguration" target="_blank" class="body-link"><code>GiftCardExpirationConfiguration</code></a> object when the merchant has configured a default gift card expiration</li>
<li><code>null</code> when the merchant has gift cards set never to expire</li>
</ul>
</li>
<li>The <code>GiftCardExpirationConfiguration</code> object includes:<ul>
<li>an <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/GiftCardExpirationConfiguration#field-GiftCardExpirationConfiguration.fields.expirationValue" target="_blank" class="body-link"><code>expirationValue</code></a> field (integer)</li>
<li>an <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/GiftCardExpirationConfiguration#field-GiftCardExpirationConfiguration.fields.expirationUnit" target="_blank" class="body-link"><code>expirationUnit</code></a> field (enum: <code>DAYS</code>, <code>MONTHS</code>, <code>YEARS</code>)</li>
</ul>
</li>
</ul>
<h2>Example query</h2>
<pre><code>query {
  giftCardConfiguration {
    expirationConfiguration {
      expirationValue
      expirationUnit
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 06 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/giftcardconfiguration-now-includes-default-gift-card-expiration</link>
  </item>
  <item>
    <title>Shop Minis January 2026 update</title>
    <description><![CDATA[ <div class=""><h2>New Features</h2>
<h3>Delayed Consent</h3>
<p>We've enhanced consent management by introducing a delayed consent popup for all Shop Minis.</p>
<p><strong>What this means for partners:</strong></p>
<ul>
<li>Users will see a consent screen before your mini loads if you request scopes.</li>
<li>The mini's landing (splash) screen is shown while consent is pending.</li>
<li>Partners should customize their splash screen to provide a great first impression.</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 06 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Shop Minis</category>
    <link>https://shopify.dev/changelog/shop-minis-january-2026-update</link>
  </item>
  <item>
    <title>Subscriptions APIs: new payment error code and error classification</title>
    <description><![CDATA[ <div class=""><p>We’ve added new payment error codes for subscription billing attempts in the GraphQL Admin API. These new error codes provide more granularity and consistency, making payment errors easier to diagnose. They’re <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/SubscriptionBillingAttemptErrorCode" target="_blank" class="body-link">currently available</a> in the <code>unstable</code> API version, will be released in version <code>2026-04</code>.</p>
<p>We’re also updating our error-code mapping to be more explicit:</p>
<ul>
<li>In the <code>unstable</code> version, you’ll start seeing new error codes display, along with fewer <code>AUTHENTICATION_ERROR</code> and <code>PAYMENT_METHOD_DECLINED</code> errors.</li>
<li>If you’re on version <code>2026-01</code> or earlier, you might still notice a shift in error volumes across existing error codes. We improved our mapping so that some errors previously categorized as generic decline errors, such as <code>PAYMENT_METHOD_DECLINED</code>, are now mapped more explicitly to existing error codes. For example, we can map more cases to <code>INSUFFICIENT_FUNDS</code> instead of generic declines.</li>
</ul>
<h2>Known issue resolved</h2>
<p>From January 28, 2026, to February 4, 2026, there was a temporary issue with error mapping, which might have caused a surge in <code>TRANSIENT_ERROR</code>. This has been fixed.</p>
<h2>Error code mapping</h2>
<ul>
<li><p>If you're on version <code>unstable</code> or <code>2026-04</code>, you'll see the new error code.</p>
</li>
<li><p>If you're on <code>2026-01</code> or earlier versions, you'll see the currently mapped code.</p>
<p>| New error code | Currently mapped error code |
|</p>
</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 03 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/new-payment-error-codes-added-to-subscriptions-apis</link>
  </item>
  <item>
    <title>Introducing the `tracks_inventory` query filter for products</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2026-04</code>, you can <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/products#argument-query-filter-tracks_inventory" target="_blank" class="body-link">filter products</a> based on whether their inventory is tracked using the new <code>tracks_inventory</code> Boolean filter.</p>
<p>This is especially useful when working with merchants like dropshippers who might not maintain on-hand inventory.</p>
<h3>Example usage</h3>
<pre><code>query RetrieveWithInventoryProducts {
  withInventory: products(first: 10, query: &quot;published_status:published AND tracks_inventory:true&quot;) {
    edges {
      node {
        id
        title
        status
        totalInventory
        tracksInventory
      }
    }
  }
</code></pre>
</div> ]]></description>
    <pubDate>Tue, 03 Feb 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/introducing-tracksinventory-query-filter-for-products</link>
  </item>
  <item>
    <title>Increasing the app block limit to 30 for theme app extensions</title>
    <description><![CDATA[ <div class=""><p>You can now include up to 30 app blocks in a single theme app extension, an increase from the previous limit of 25. This gives you more flexibility to build comprehensive app experiences that integrate seamlessly with themes.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/online-store/theme-app-extensions" target="_blank" class="body-link">theme app extensions</a> and <a href="https://shopify.dev/docs/apps/build/online-store/theme-app-extensions/configuration#file-and-content-size-limits" target="_blank" class="body-link">file and content size limits</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Tue, 03 Feb 2026 11:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increasing-the-app-block-limit-to-30-for-theme-app-extensions</link>
  </item>
  <item>
    <title>New `article_list` input setting for themes</title>
    <description><![CDATA[ <div class=""><p>You can now add an <code>article_list</code> input setting to your theme sections and blocks. This new setting type outputs an article picker that lets merchants select multiple published articles, which can be used for creating featured article sections, related content areas, or article galleries.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/input-settings#article_list" target="_blank" class="body-link">article_list input setting</a> in the theme documentation.</p>
</div> ]]></description>
    <pubDate>Mon, 02 Feb 2026 17:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-articlelist-input-setting-for-themes</link>
  </item>
  <item>
    <title>Removed Checkout ID from checkout and order webhooks</title>
    <description><![CDATA[ <div class=""><p>To simplify and standardize our checkout references, Shopify has removed the following fields from checkout and orders webhooks. Merchants and partners should update their webhook handlers to use the <code>token</code> or <code>checkout_token</code> fields going forward.</p>
<h2>Checkout webhooks</h2>
<p>The <code>id</code> field has been removed from the following webhook topics:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?accordionItem=webhooks-checkouts-create&reference=toml" target="_blank" class="body-link"><code>checkouts/create</code></a></li>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?accordionItem=webhooks-checkouts-update&reference=toml" target="_blank" class="body-link"><code>checkouts/update</code></a></li>
</ul>
<h3>What you need to do</h3>
<p>If you depend on the <code>id</code> field , update your infrastructure to use the <code>token</code> field instead. </p>
<h2>Orders webhooks</h2>
<p>The <code>checkout_id</code> field has been removed from the following webhook topics:  </p>
<ul>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml&accordionItem=webhooks-orders-cancelled" target="_blank" class="body-link"><code>orders/cancelled</code></a></li>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?accordionItem=webhooks-orders-create&reference=toml" target="_blank" class="body-link"><code>orders/create</code></a></li>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml&accordionItem=webhooks-orders-fulfilled" target="_blank" class="body-link"><code>orders/fulfilled</code></a></li>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml&accordionItem=webhooks-orders-link_requested" target="_blank" class="body-link"><code>orders/link_requested</code></a></li>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml&accordionItem=webhooks-orders-paid" target="_blank" class="body-link"><code>orders/paid</code></a></li>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml&accordionItem=webhooks-orders-partially_fulfilled" target="_blank" class="body-link"><code>orders/partially_fulfilled</code></a></li>
<li><a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml&accordionItem=webhooks-orders-updated" target="_blank" class="body-link"><code>orders/updated</code></a></li>
</ul>
<h3>What you need to do</h3>
<p>If you depend on the  <code>checkout_id</code>  field, update your infrastructure to use the <code>checkout_token</code> field instead. </p>
<h2>Summary</h2>
<p>These changes improves consistency across our APIs and ensure that all integrations reference checkouts using the same identifier. Merchants and partners should update their webhook handlers to use the <code>token</code> or <code>checkout_token</code> fields going forward.</p>
<p>For more details, see the <a href="https://shopify.dev/docs/api/webhooks/latest" target="_blank" class="body-link">public webhook documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 30 Jan 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Webhook</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/removed-checkout-id-from-checkouts-and-orders-webhooks</link>
  </item>
  <item>
    <title>Automatically copy cart metafields to orders at checkout completion</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2026-04</code>, order metafield definitions can copy values from cart metafields to order metafields when an order is created. You can specify which cart metafields should be carried over to orders. </p>
<p>The metafield value is copied if both these conditions are true:</p>
<ul>
<li>An order metafield definition exists with the same namespace and key as a cart metafield. </li>
<li>The <code>cartToOrderCopyable</code> capability is enabled on that order metafield definition.</li>
</ul>
<p>View <a href="https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities#cart-to-order-copyable" target="_blank" class="body-link">developer documentation</a>.</p>
<p>Cart metafields are now accessible in all APIs that interact with the buyer journey, including the Storefront API, Checkout UI extensions, Functions, and the GraphQL Admin API. </p>
<p>We now recommend using cart metafields instead of cart attributes and checkout metafields for custom data storage. Cart metafields offer enhanced security features, such as edit and view permissions, and app-reserved namespaces, which prevent unauthorized access by other apps.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities" target="_blank" class="body-link">metafield capabilities</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 28 Jan 2026 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/automatically-copy-cart-metafields-to-orders-at-checkout-completion</link>
  </item>
  <item>
    <title>Ensuring POS UI extension stability by hardening callback handling</title>
    <description><![CDATA[ <div class=""><p>Starting with <code>POS 10.19.0</code>, unhandled errors in extension callbacks trigger an error page instead of failing silently. This change ensures a more stable and predictable experience for merchants and helps developers identify issues proactively.</p>
<p>To prevent disruptions for merchants and minimize unexpected failures, developers should thoroughly test callbacks and ensure all exceptions are properly handled.</p>
<p>For example, this code will now trigger an error page:</p>
<pre><code class="language-js">// Before: Errors occur but do not display an error page.
// POS 10.19.0 onwards: Displays an error page upon encountering an error.
&lt;Screen
  name=&quot;example&quot;
  title=&quot;Example&quot;
  onReceiveParams={(params) =&gt; mayNotExist(params)}
&gt;&lt;/Screen&gt;
</code></pre>
<p>One solution is to wrap the logic in try/catch blocks:</p>
<pre><code class="language-js">&lt;Screen
  name=&quot;example&quot;
  title=&quot;Example&quot;
  onReceiveParams={(params) =&gt; {
    try {
      mayNotExist(params);
    } catch (error) {
      // Handle errors.
    }
  }}
&gt;&lt;/Screen&gt;
</code></pre>
</div> ]]></description>
    <pubDate>Tue, 27 Jan 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/ensuring-pos-ui-extension-stability-by-hardening-callback-handling</link>
  </item>
  <item>
    <title>Events data now limited to one year retention</title>
    <description><![CDATA[ <div class=""><p>Access to <code>events</code> data older than one year is no longer available via the <a href="https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Event" target="_blank" class="body-link">Admin GraphQL <code>Event</code> interface</a> or the <a href="https://shopify.dev/docs/api/admin-rest/latest/resources/event" target="_blank" class="body-link">Admin REST <code>events</code> resource</a>. This update is part of our ongoing efforts to optimize data management and improve system performance. </p>
<p>Please review and update any dependencies on these events. If you have any questions or need further assistance, feel free to reach out on the <a href="https://community.shopify.dev/" target="_blank" class="body-link">Shopify Developer Community forums</a>. </p>
</div> ]]></description>
    <pubDate>Fri, 23 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/events-data-now-limited-to-one-year-retention</link>
  </item>
  <item>
    <title>More control over app deploys in CI/CD pipelines</title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI 3.89, you now have more control over the types of extension and configuration updates that should be allowed in your automated app releases. This allows developers to be more confident in the safety of CI/CD pipelines and other app deployment automation.</p>
<p>This is possible via new flags on the <code>shopify app deploy</code> and <code>shopify app release</code> commands:</p>
<ul>
<li><code>--allow-updates</code>: Lets you deploy new app configuration and extensions, and update existing ones.</li>
<li><code>--allow-deletes</code>: Lets you delete app configuration and extensions.</li>
</ul>
<p>The existing <code>--force</code> command is equivalent to using these flags together. </p>
<p><strong>Note</strong>: Deleting app configuration and extensions also deletes related data on stores that have your app installed. To avoid accidentally deleting store data, Shopify recommends that you only use the <code>--allow-updates</code> flag in your default CI/CD workflow.</p>
<p>For more information, see <a href="https://shopify.dev/docs/apps/launch/deployment/deploy-in-ci-cd-pipeline#controlling-extension-and-configuration-deployment" target="_blank" class="body-link">documentation on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 23 Jan 2026 14:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/more-control-over-app-deploys-in-cicd-pipelines</link>
  </item>
  <item>
    <title>Checkout UI extensions now default to non-blocking behavior</title>
    <description><![CDATA[ <div class=""><p>As of January 26, 2026, Checkout UI extensions that support blocking now default to non-blocking behavior. To enable blocking, merchants must explicitly activate the <strong>Allow app to block checkout</strong> setting in the checkout and accounts editor. </p>
<p>If your Checkout UI extension requires blocking, display a warning in the editor using the <a href="https://shopify.dev/docs/api/checkout-ui-extensions/latest/apis/buyer-journey" target="_blank" class="body-link"><code>useExtensionEditor()</code></a> hook, and include this step in your activation process. Inform merchants that they must enable <strong>Allow app to block checkout</strong> for the UI extension to function as intended.</p>
<p>We now recommend building custom checkout validation using Cart and Checkout Validation Functions instead of Checkout UI extensions, as they are more secure, performant, and guaranteed to run across supported checkouts. Learn more about <a href="https://shopify.dev/docs/apps/build/checkout/cart-checkout-validation" target="_blank" class="body-link">Cart and Checkout Validation Functions</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 22 Jan 2026 15:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>Checkout UI</category>
    <link>https://shopify.dev/changelog/checkout-ui-extensions-now-default-to-non-blocking-behavior</link>
  </item>
  <item>
    <title>Shopify-account web component for storefronts</title>
    <description><![CDATA[ <div class=""><p>Simplify customer account implementation with our new <code>shopify-account</code> component. This web component allows customers to sign in and access account navigation menu—all without leaving the storefront.</p>
<h2>What's included</h2>
<ul>
<li>Sign-in methods: passwordless sign-in, social sign-in with Facebook and Google, and automatic sign-in with Shop recognition</li>
<li>Account navigation menu with customizable quick links</li>
<li>Styling control via CSS variables</li>
<li>Automatic feature updates from Shopify without requiring you to update your code</li>
</ul>
<p>This component eliminates the guesswork around customer account implementation. It's fully integrated with the latest version of customer accounts, offers customizable styling to match your brand, and enables seamless sign-in for your customers.</p>
<p>Visit our <a href="https://shopify.dev/docs/api/storefront-web-components/components/shopify-account" target="_blank" class="body-link">dev docs</a> to get started now.</p>
<p>The account component is available now in the latest version of the Horizon themes. If stores you manage are using a Horizon theme, update your theme now to get this component live on your storefront.</p>
<h2>Coming soon</h2>
<p>The <code>shopify-account</code> component will soon be required for all themes submitted to or updated in the Theme Store. If you're a theme partner, we recommend <a href="https://shopify.dev/docs/storefronts/themes/customer-engagement/account-component" target="_blank" class="body-link">adding it to your themes</a> now.</p>
</div> ]]></description>
    <pubDate>Wed, 21 Jan 2026 17:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-account-web-component-for-storefronts</link>
  </item>
  <item>
    <title>POS UI extensions can now use the device camera</title>
    <description><![CDATA[ <div class=""><p>Starting with POS version 10.19.0, <a href="https://shopify.dev/docs/api/pos-ui-extensions/latest" target="_blank" class="body-link">POS UI extensions</a> can now access the device camera through a new Camera API. This enables new use cases like scanning IDs, capturing product photos, and attaching images directly within Shopify POS.</p>
<p>For options, usage examples, and best practices, see <a href="https://shopify.dev/docs/api/pos-ui-extensions/2026-01-rc/target-apis/standard-apis/camera-api" target="_blank" class="body-link">Camera API</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 19 Jan 2026 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>POS Extensions</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-camera-api</link>
  </item>
  <item>
    <title>Deprecating shopify_y and shopify_s cookies for Hydrogen</title>
    <description><![CDATA[ <div class=""><p>Shopify will stop setting the <code>shopify_y</code> and <code>shopify_s</code> cookies in 2026.</p>
<p>If you use these cookies, your storefront will continue to work normally. However, if you don’t upgrade, visitor and session attribution won't be reliable in in Shopify Analytics.</p>
<p><strong>For Hydrogen storefronts, upgrade by April 30, 2026.</strong></p>
<p>What you need to do:</p>
<ul>
<li><p>If you’re using Hydrogen (React Router) deployed to Oxygen: Run the Hydrogen CLI upgrade command. All Hydrogen versions from 2024.7 through 2025.7 include this fix.</p>
</li>
<li><p>For other setups: See instructions in the <a href="https://shopify.dev/docs/storefronts/headless/hydrogen/migrate/cookies" target="_blank" class="body-link">dev docs</a>.</p>
</li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 17 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/tracking-cookie-deprecation-hydrogen</link>
  </item>
  <item>
    <title>Shop Minis development now requires Partner account permissions</title>
    <description><![CDATA[ <div class=""><p>The Shop Minis CLI has been updated to ensure only authorized team members can create and manage Shop Minis. This is done by verifying the necessary permissions within your Partner organization.</p>
<h3>What's changing</h3>
<p>To develop Shop Minis, you must now have the <strong>Manage apps</strong> permission enabled on your Partner account. Without this permission, CLI commands will result in an error.</p>
<p>This change affects CLI actions such as:</p>
<ul>
<li>Setting up a new Mini</li>
<li>Submitting, canceling, and checking submissions</li>
</ul>
<h3>What you need to do</h3>
<p><strong>For organization owners or admins</strong></p>
<ol>
<li>Log in to your <a href="https://partners.shopify.com" target="_blank" class="body-link">Partner Dashboard</a>.</li>
<li>Navigate to <strong>Settings</strong> → <strong>Team</strong>.</li>
<li>Find the developer who needs access.</li>
<li>Edit their profile to adjust permissions.</li>
<li>Enable <strong>Manage apps</strong> under <strong>Sensitive permissions</strong>.</li>
<li>Save the changes.</li>
</ol>
<p><strong>For developers:</strong></p>
<p>Request that your organization owner or admin grants you the <strong>Manage apps</strong> permission.</p>
<p>After permissions are updated, you can begin developing and submitting Minis within your Partner organization.</p>
<h3>Learn more</h3>
<ul>
<li><a href="https://shopify.dev/docs/api/shop-minis#permissions" target="_blank" class="body-link">Shop Minis permissions docs</a></li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 17 Jan 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Shop Minis</category>
    <link>https://shopify.dev/changelog/shop-minis-development-now-requires-partner-account-permissions</link>
  </item>
  <item>
    <title>shopify.app.extensions() in App Bridge now supports Admin and Theme app extensions</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/app-home/apis/app" target="_blank" class="body-link"><code>shopify.app.extensions()</code> method in App Bridge</a> now supports Admin and Theme app extensions, in addition to the previously available checkout and customer account extensions.</p>
<p>With this update, your embedded app can query the status of extensions across all major surfaces. This means you can receive consistent handle and activation data for Admin and Theme app extensions. As a result, you can build more comprehensive onboarding experiences and create setup dashboards that encompass your entire app extension ecosystem.</p>
<p>For further details, see the <a href="https://shopify.dev/docs/api/app-home/apis/app" target="_blank" class="body-link">dev docs</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 14 Jan 2026 17:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>App Bridge</category>
    <link>https://shopify.dev/changelog/extended-surface-support-for-shopifyappextensions-now-including-admin-and-storefront</link>
  </item>
  <item>
    <title>Stricter Liquid parsing for themes and theme app extensions</title>
    <description><![CDATA[ <div class=""><p>Starting January 13, 2026, Shopify is enforcing stricter Liquid parsing for all themes. This improves code quality, prevents syntax errors, and enables future Liquid enhancements.</p>
<p>If your theme contains Liquid code that doesn't meet the stricter parsing requirements, we'll automatically rewrite those files to be compatible. Updated files will include a comment explaining what changed. The rewrite process preserves your theme's functionality and appearance while fixing syntax issues that could cause problems in the future.</p>
<p>If you're developing new themes or theme app extensions, all new submissions to the Theme Store and App Store already require strict-parsable Liquid code. This ensures new code meets the higher quality standards from the start.</p>
<p>View the <a href="https://shopify.dev/docs/storefronts/themes/tools/strict-liquid-migration" target="_blank" class="body-link">migration guide</a> for detailed information on updating your code. </p>
</div> ]]></description>
    <pubDate>Tue, 13 Jan 2026 20:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/liquid-is-getting-faster-and-ready-to-evolve</link>
  </item>
  <item>
    <title>Standardization of Asset URL Version Parameters</title>
    <description><![CDATA[ <div class=""><p>We're updating the format of versioning query parameters appended to store assets such as CSS and JS. Previously, some assets used a bare numeric query parameter, (for example, <code>?108</code>), while others used a key-value format with the <code>v</code> query parameter. Moving forward, all asset URLs will consistently use the <code>?v=VERSION_STRING</code> format for versioning.
The new format will be returned by liquid tags and will be present in Shopify-rendered storefront HTML.</p>
<p>For example, an asset URL that previously looked like this:
<a href="https://shop.example.com/cdn/shop/t/7/compiled_assets/styles.css?108" target="_blank" class="body-link">https://shop.example.com/cdn/shop/t/7/compiled_assets/styles.css?108</a></p>
<p>Will now look like this:
<a href="https://shop.example.com/cdn/shop/t/7/compiled_assets/styles.css?v=108" target="_blank" class="body-link">https://shop.example.com/cdn/shop/t/7/compiled_assets/styles.css?v=108</a></p>
<p>These changes are being made to support upcoming infrastructure improvements.</p>
<h1>Action Required:</h1>
<p><strong>Most themes will not require any changes.</strong> Themes utilizing standard Liquid asset filters to generate URLs will automatically output the updated format.</p>
<p>However, you should ensure that any app or custom theme code that uses asset URLs doesn’t require them to be expressed in the old bare numeric format. Regular expressions or logic specifically expecting a query string ending in only numbers should be updated to support the <code>?v=</code> format.</p>
</div> ]]></description>
    <pubDate>Mon, 12 Jan 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/standardization-of-asset-url-version-parameters</link>
  </item>
  <item>
    <title>New payment decline codes added to `OrderTransactionErrorCode` enum</title>
    <description><![CDATA[ <div class=""><p>We're adding new error codes to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/OrderTransactionErrorCode" target="_blank" class="body-link">OrderTransactionErrorCode</a> enum to provide more granular detail about the transaction failure. You can use this more detailed response to improve customer interactions.</p>
<h3>What's new</h3>
<p>These error codes enable precise identification of transaction issues:</p>
<p>| Error Code | Description |
|</p>
</div> ]]></description>
    <pubDate>Fri, 09 Jan 2026 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/new-payment-decline-codes-added-to-ordertransactionerrorcode-enum</link>
  </item>
  <item>
    <title>Migrate metafields with `shopify app import-custom-data-definitions`</title>
    <description><![CDATA[ <div class=""><p><code>shopify app import-custom-data-definitions</code> is now available in Shopify CLI version 3.89.</p>
<p>This command helps you migrate existing metafield and metaobject definitions for your app to <a href="https://shopify.dev/docs/apps/build/metafields/definitions#toml-app-owned-example" target="_blank" class="body-link">declarative TOML management</a>. All app-owned definitions configured on your dev store are automatically converted to their TOML equivalent. These definitions include those with a namespace like <code>$app</code> or metaobjects with a type like <code>$app:example</code>, You can review the TOML definitions and add them to your <code>shopify.app.toml</code> file. You can continue writing metafield and metaobject <em>values</em> without any changes.</p>
<p>You can migrate all your definitions at once, or you can work step by step by running the command multiple times. Run <code>shopify app dev</code> to test your TOML definitions in your dev store, then run <code>shopify app deploy</code> to deploy your new centrally managed Metafield and Metaobject definitions to all shops with your app installed. After you've deployed your changes, you can delete the unnecessary definition management code.</p>
<p>Declarative definitions offer several advantages over API management:</p>
<ul>
<li>Shopify updates declared definitions in every shop where your app is installed, ensuring consistency across installations.</li>
<li>Definitions stay in sync with your app's state, allowing you to roll out new metafields and related features simultaneously.</li>
<li>Definitions are version controlled as part of your app, making it easy to roll back.</li>
</ul>
<p>As always, feel free to reach out in the community forum to share your questions and feedback about using declarative metafield and metaobject definitions.</p>
</div> ]]></description>
    <pubDate>Fri, 09 Jan 2026 17:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/migrate-metafields-with-shopify-app-import-custom-data-definitions</link>
  </item>
  <item>
    <title>Deprecated `deliveryShippingOriginAssign` mutation</title>
    <description><![CDATA[ <div class=""><p>Support for legacy mode profiles in shipping has been discontinued, as this feature has been inactive for some time. Consequently, the GraphQL Admin API is being updated to align with this change.</p>
<p>The following mutation is now marked as deprecated:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/deliveryShippingOriginAssign" target="_blank" class="body-link"><code>deliveryShippingOriginAssign</code></a></li>
</ul>
<p>Developers are advised to cease using this mutation, as it will be removed in a future API version. To ensure compatibility with upcoming updates, developers should explore alternative methods for assigning shipping origins within the current API framework.</p>
</div> ]]></description>
    <pubDate>Thu, 08 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/deprecate-deliveryshippingoriginassign-mutation</link>
  </item>
  <item>
    <title>Enhanced Discount Function configuration with Admin UI extensions</title>
    <description><![CDATA[ <div class=""><p>Admin UI extensions for Discount Functions can now interact with the selected discount method and manage discount classes, letting you customize the discount configuration experience directly within the Shopify admin.</p>
<p>This is a non-breaking change that adds new functionality to existing discount UI extensions.</p>
<h3>What's new</h3>
<p>We've added a new <code>discounts</code> object to the Discount Function Settings API on the <code>2026-01</code> API version, providing these features:</p>
<ul>
<li><strong><code>discountClasses</code></strong>: Access enabled discount classes (product, order, shipping).</li>
<li><strong><code>updateDiscountClasses</code></strong>: Enable or disable discount classes programmatically.</li>
<li><strong><code>discountMethod</code></strong>: Access the selected discount method (code or automatic).</li>
</ul>
<h3>What this solves</h3>
<p>Previously, discount UI extensions had three main limitations:</p>
<ul>
<li><strong>Inability to manage discount classes</strong>: All Discount Functions defaulted to enabling all three discount classes, causing conflicts even when only one was needed.</li>
<li><strong>No conditional UI based on method</strong>: It wasn't possible to render different options for automatic versus code discounts.</li>
<li><strong>No conditional UI based on classes</strong>: There was no way to show/hide settings based on the enabled discount classes.</li>
</ul>
<h3>What you can build</h3>
<p>With these enhancements, you can now:</p>
<ul>
<li><strong>Create multi-effect discounts</strong>: Develop discounts that offer savings on products, order total, and/or shipping, allowing merchants to toggle each option.</li>
<li><strong>Method-specific configuration</strong>: Display different UI for automatic versus code discounts within the same app and discount type.</li>
<li><strong>Reduce combination conflicts</strong>: Enable only the discount classes that your function requires to prevent unnecessary conflicts.</li>
</ul>
<h3>Learn more</h3>
<ul>
<li><a href="https://shopify.dev/docs/apps/build/discounts/build-ui-extension?extension=javascript" target="_blank" class="body-link">Build a discount UI with UI extensions</a> (updated)</li>
<li><a href="https://shopify.dev/docs/api/admin-extensions/2026-01/api/target-apis/discount-function-settings-api#discounts" target="_blank" class="body-link">Admin UI extensions API reference</a></li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 06 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin Extensions</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/enhanced-discount-function-configuration-with-admin-ui-extensions</link>
  </item>
  <item>
    <title>Let buyers update subscription payment methods without leaving your extension</title>
    <description><![CDATA[ <div class=""><p>Buyers can now replace the payment method on their subscription contract without navigating away from your Customer Account UI extension. Simply invoke the intent and the native payment flow handles the rest, no need to store or display cards yourself.</p>
<p>This new capability is the first of its kind powered by a new Intents API that lets your extension invoke native customer account workflows for managing buyer information. </p>
<p>Dive into the <a href="https://shopify.dev/docs/api/customer-account-ui-extensions/latest/target-apis/platform-apis/intents-api" target="_blank" class="body-link">documentation on customer account intents</a> to get started.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Accounts</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/intents-api-for-customer-accounts</link>
  </item>
  <item>
    <title>Localization support for POS UI extensions</title>
    <description><![CDATA[ <div class=""><p>Starting in POS 10.19, you can now localize your POS UI extensions for international merchants, staff, and customers. You can</p>
<ul>
<li><strong>Translate extension text</strong>: Define locale files with translation strings that automatically resolve based on customer and shop locales.</li>
<li><strong>Format currencies and numbers</strong>: Use <code>formatCurrency</code> and <code>formatNumber</code> to display values in locale-appropriate formats.</li>
<li><strong>Handle pluralization</strong>: Support complex plural rules across languages using the standard <code>Intl.PluralRules</code> specification.</li>
</ul>
<p>Learn how to <a href="https://shopify.dev/docs/apps/build/pos/localization" target="_blank" class="body-link">localize a POS UI extension</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>POS Extensions</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/localization-support-for-pos-ui-extensions</link>
  </item>
  <item>
    <title>New Return Reason Definitions API for Better Return Insights</title>
    <description><![CDATA[ <div class=""><p>You can now use the new <code>ReturnReasonDefinition</code> type to capture more granular, category-specific return reasons when managing returns. This replaces the previous <code>ReturnReason</code> enum with a richer data model that helps provide merchants with better insights in their return analytics, and more tailored return experiences for their buyers.</p>
<h3>What's new</h3>
<ul>
<li>A new <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/objects/ReturnReasonDefinition" target="_blank" class="body-link"><code>ReturnReasonDefinition</code></a> type with <code>id</code>, <code>handle</code>, and <code>name</code> fields. Use the stable <code>handle</code> for programmatic logic.</li>
<li>The <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/queries/returnReasonDefinitions" target="_blank" class="body-link"><code>returnReasonDefinitions</code></a> query retrieves the full library of available return reasons.</li>
<li>A new <code>suggestedReturnReasonDefinitions</code> connection on <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/objects/LineItem#field-LineItem.fields.suggestedReturnReasonDefinitions" target="_blank" class="body-link"><code>LineItem</code></a> provides return reasons tailored to each product's category.</li>
<li>The <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/returnCreate" target="_blank" class="body-link"><code>returnCreate</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/returnRequest" target="_blank" class="body-link"><code>returnRequest</code></a>, and <a href="https://shopify.dev/docs/api/customer/2026-01/mutations/orderRequestReturn" target="_blank" class="body-link"><code>orderRequestReturn</code></a> mutations now accept <code>returnReasonDefinitionId</code> in their line item inputs.</li>
<li>Access <code>returnReasonDefinition</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/objects/ReturnLineItem" target="_blank" class="body-link"><code>ReturnLineItem</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/objects/UnverifiedReturnLineItem" target="_blank" class="body-link"><code>UnverifiedReturnLineItem</code></a> types.</li>
</ul>
<h3>Deprecations</h3>
<p>The <code>returnReason</code> field on input types and return line item types is deprecated. Use <code>returnReasonDefinitionId</code> for inputs and <code>returnReasonDefinition</code> for reading return data.</p>
<h3>Migration</h3>
<p>If your app creates returns, update your mutations to use <code>returnReasonDefinitionId</code> instead of <code>returnReason</code>. Query <code>suggestedReturnReasonDefinitions</code> on <code>LineItem</code> to get contextually relevant reasons for each product. For reading returns, update your queries to use <code>returnReasonDefinition</code> instead of <code>returnReason</code>.</p>
<p>These changes are available in API version 2026-01.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>Webhook</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/new-return-reason-definitions-api-for-better-return-insights</link>
  </item>
  <item>
    <title>Introducing the `orders/link_requested` webhook topic</title>
    <description><![CDATA[ <div class=""><p>Starting with API version 2026-01 of the GraphQL Admin API, your app can subscribe to the <code>orders/link_requested</code> webhook topic. This webhook is triggered when a customer requests a new order link from an expired <strong>Order status</strong> page, allowing your app to be notified when customers need access to their order details after the original link has expired.</p>
<p><strong>Webhook Trigger:</strong> This occurs when a customer visits an expired order status page and requests a new order link.</p>
<p><strong>Payload:</strong> The webhook delivers the complete <a href="https://shopify.dev/api/admin-graphql/unstable/objects/Order" target="_blank" class="body-link"><code>Order</code></a> object, which includes:</p>
<ul>
<li>Order ID and details</li>
<li>Customer information</li>
<li>Order status</li>
<li>Fulfillment information</li>
</ul>
<p>For more information and to view the full payload, visit the <a href="https://shopify.dev/docs/api/webhooks/latest?accordionItem=webhooks-orders-link_requested&reference=toml" target="_blank" class="body-link">Shopify developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/introducing-the-orderslinkrequested-webhook-topic</link>
  </item>
  <item>
    <title>Access transactions on the Return object</title>
    <description><![CDATA[ <div class=""><p>You can now access transaction data directly from the <code>Return</code> object in the Admin GraphQL API. This new <code>transactions</code> connection simplifies your ability to associate payments and refunds with specific returns, removing the need to deduce relationships based on amounts and timestamps. This helps ensure accurate financial reporting and reconciliation for integrations.</p>
<p>The <code>transactions</code> connection is populated for the following scenarios:</p>
<ul>
<li><strong>POS returns and exchanges</strong>: Includes both refunds and captured payments.</li>
<li><strong>Online returns and exchanges</strong>: Includes refunds only.</li>
</ul>
<p>Here's an example of how to query transactions on a return:</p>
<pre><code class="language-graphql">query {
  return(id: &quot;gid://shopify/Return/123&quot;) {
    transactions(first: 5) {
      edges {
        node {
          id
          kind
          status
          amountSet {
            shopMoney {
              amount
              currencyCode
            }
          }
        }
      }
    }
  }
}
</code></pre>
<p>For more details, refer to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/return?#returns-Return.fields.transactions" target="_blank" class="body-link">Return object documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/access-transactions-on-the-return-object</link>
  </item>
  <item>
    <title>Subscription billing attempts throttling</title>
    <description><![CDATA[ <div class=""><p>Beginning in API version 2026-01, billing attempts will be throttled based on internal trust metrics to prevent abuse. If an attempt is throttled, it will be visible in the new <code>throttled</code> error code on the <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/BillingAttemptUserErrorCode" target="_blank" class="body-link"><code>BillingAttemptUserErrorCode</code></a> enum.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jan 2026 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/subscription-billing-attempts-throttling</link>
  </item>
  <item>
    <title>Improved user errors on the `fulfillmentOrderMove` mutation</title>
    <description><![CDATA[ <div class=""><p>The <code>fulfillmentOrderMove</code> mutation now returns a specific <code>fulfillmentOrderMoveUserError</code> type instead of the generic <code>userError</code> type.</p>
<h2>What's changing:</h2>
<p>The user error response now includes a code field for easier programmatic error handling and identification.</p>
<h2>Why we made this change:</h2>
<p>This enhancement supports the new manual in-progress fulfillment orders feature, which allows merchants to self-report progress on their fulfillment orders. As part of this feature, moving fulfillment orders with reported progress is now restricted, and the enhanced error responses help developers handle these restrictions more effectively.</p>
<h2>Learn more</h2>
<p><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderMove" target="_blank" class="body-link">Learn more about the <code>fulfillmentOrderMove</code> mutation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jan 2026 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/fulfillment-order-move-mutation-error-codes</link>
  </item>
  <item>
    <title> _tracking_consent, _landing_page, _orig_referrer cookies will no longer be set</title>
    <description><![CDATA[ <div class=""><h3>What's changing?</h3>
<p>Starting on September 15th, 2025, Shopify will no longer set the following cookies on merchant storefronts:</p>
<ul>
<li><code>_landing_page</code></li>
<li><code>_orig_referrer</code></li>
<li><code>_tracking_consent</code></li>
</ul>
<h3>Required updates</h3>
<p>While accessing internal cookie values is never recommended as they frequently change, any code that currently accesses the cookie values will need to be adapted to use documented APIs.</p>
<h4>_landing_page and _orig_referrer</h4>
<p>We recommend keeping track of these values through browser APIs (<code>window.location.href</code> to save the landing page, and <code>document.referrer</code> for the referrer). To keep track of these values through the user’s session, you may use the <a href="https://shopify.dev/docs/api/web-pixels-api" target="_blank" class="body-link">Web Pixels API</a>. 
In the GraphQL Admin API, you can access this information by <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/order" target="_blank" class="body-link">querying an order</a>:</p>
<pre><code class="language-graphql">query referrerData {
  order(id: &quot;gid://shopify/Order/14134963208214&quot;) {
    customerJourneySummary {
      lastVisit {
        landingPage
        referrerUrl
      }
    }
  }
}
</code></pre>
<h4>_tracking_consent</h4>
<p>Please use the <a href="https://shopify.dev/docs/api/customer-privacy" target="_blank" class="body-link">Customer Privacy API</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/trackingconsent-landingpage-origreferrer-cookies-will-no-longer-be-set</link>
  </item>
  <item>
    <title>Discount Function support for rejecting discount codes</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/functions/reference/discount" target="_blank" class="body-link"><code>Discount Function API</code></a> now supports discount code rejection, allowing apps to conditionally reject discount codes with a custom message.</p>
<p>With discount rejection for the Discount Function API, merchants can:</p>
<ul>
<li>Prevent double discounting on sale prices</li>
<li>Manage fine-grained combinations of discount codes</li>
<li>Disqualify certain products from discounts</li>
</ul>
<p>For more information on discount rejections, visit the <a href="https://shopify.dev/docs/apps/build/discounts/discount-rejections?extension=rust" target="_blank" class="body-link">tutorial</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/discount-rejection-support-for-discount-functions</link>
  </item>
  <item>
    <title>Customer marketing URL fields now require write access</title>
    <description><![CDATA[ <div class=""><p><strong>Effective immediately</strong>: The following customer-related fields now require the <code>write_customers</code> scope and the <code>create_and_edit_customers</code> permission:</p>
<ul>
<li><code>Customer.emailOpenTrackingUrl</code> (deprecated)</li>
<li><code>Customer.unsubscribeUrl</code> (deprecated)</li>
<li><code>CustomerEmailAddress.openTrackingUrl</code></li>
<li><code>CustomerEmailAddress.marketingUnsubscribeUrl</code></li>
<li><code>CustomerPhoneNumber.marketingUnsubscribeUrl</code></li>
</ul>
<p><strong>Reason for change</strong></p>
<p>This update addresses a security vulnerability. These fields return URLs with secret tokens that can modify customer marketing consent, such as unsubscribing a customer. Previously, apps with only the <code>read_customers</code> scope could access these URLs, potentially leading to unauthorized changes to customer preferences. By updating the access requirements, we aim to prevent such security risks.</p>
<p>According to our <a href="https://vault.shopify.io/page/Types-of-changes~dhb7e32.md#security-fixes" target="_blank" class="body-link">API breaking change policy</a>, security fixes are implemented immediately across all API versions, bypassing the standard deprecation process.</p>
<p><strong>Action required</strong></p>
<p>If your app queries these fields, you must:</p>
<ol>
<li>Update your app to include the <code>write_customers</code> access scope. Previously, the <code>read_customers</code> scope was sufficient.</li>
<li>Ensure the user making the request has the <code>create_and_edit_customers</code> permission.</li>
</ol>
<p>Apps that only have the <code>read_customers</code> scope will now encounter an access denied error when attempting to query these fields.</p>
</div> ]]></description>
    <pubDate>Thu, 18 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/customer-marketing-url-fields-now-require-write-access</link>
  </item>
  <item>
    <title>Storefront API now returns a specific error code when Cart Transform Functions fail</title>
    <description><![CDATA[ <div class=""><p>As of API version 2026-04, the Storefront API will return a <code>MERCHANDISE_LINE_TRANSFORMERS_RUN_ERROR</code> <a href="https://shopify.dev/docs/api/storefront/latest/enums/CartErrorCode" target="_blank" class="body-link">cart error code</a> when a <a href="https://shopify.dev/docs/api/functions/latest/cart-transform" target="_blank" class="body-link">Cart Transform Function</a> encounters a runtime error during cart operations such as <a href="https://shopify.dev/docs/api/storefront/latest/mutations/cartCreate" target="_blank" class="body-link"><code>cartCreate</code></a> or <a href="https://shopify.dev/docs/api/storefront/latest/mutations/cartLinesAdd" target="_blank" class="body-link"><code>cartLinesAdd</code></a>.</p>
<p>Previously, when a Cart Transform Function failed, the Storefront API returned a generic <a href="https://shopify.dev/docs/api/storefront/latest/enums/CartErrorCode#enums-INVALID" target="_blank" class="body-link"><code>INVALID</code> error code</a> with the message &quot;An error occurred in your cart.&quot; This made it difficult to distinguish between failures in Cart Transform Functions and other validation errors programmatically.</p>
<p>With the introduction of the specific <code>MERCHANDISE_LINE_TRANSFORMERS_RUN_ERROR</code> code, you can now:</p>
<ul>
<li>Identify and handle Cart Transform Function failures separately from other cart errors.</li>
<li>Implement more precise error handling and debugging in your storefront.</li>
</ul>
<p>This change enhances your ability to maintain and troubleshoot your storefront implementation effectively.</p>
<p>Example error response:</p>
<pre><code>{
  &quot;data&quot;: {
    &quot;cartCreate&quot;: {
      &quot;cart&quot;: null,
      &quot;userErrors&quot;: [
        {
          &quot;code&quot;: &quot;MERCHANDISE_LINE_TRANSFORMERS_RUN_ERROR&quot;
        }
      ]
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Wed, 17 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/storefront-api-now-returns-a-specific-error-code-when-cart-transform-functions-fail</link>
  </item>
  <item>
    <title>Conversion tracking fields added to MarketingEngagementCreate</title>
    <description><![CDATA[ <div class=""><p>To improve the integration of marketing platforms that track conversions beyond traditional sales metrics, we have added new fields to the <code>MarketingEngagementCreateInput</code> and <code>MarketingEngagement</code> objects on the <code>MarketingEngagementCreate</code> mutation. These enhancements enable more comprehensive data integration into Shopify's marketing reports.</p>
<p>The new fields are:</p>
<ul>
<li><strong>primaryConversions</strong>: This field tracks the main conversion events, such as purchases or sign-ups, that are most critical to your marketing goals.</li>
<li><strong>allConversions</strong>: This field captures all types of conversion events, providing a complete view of customer interactions.</li>
</ul>
<p>For more information on sharing marketing data, please visit our <a href="https://help.shopify.com/en/manual/promoting-marketing/analyze-marketing/app-data-sharing" target="_blank" class="body-link">help page</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 17 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/conversion-tracking-fields-added-to-marketing-engagement-create</link>
  </item>
  <item>
    <title>Set and retrieve `processedAt` in the `refundCreate` mutation</title>
    <description><![CDATA[ <div class=""><p>We have introduced a new <code>processedAt</code> input field to the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/refundcreate" target="_blank" class="body-link"><code>refundCreate</code> mutation</a>. With this field, you can manage refund timestamps in your records more effectively.</p>
<p>If you don't provide a <code>processedAt</code> value, then the current timestamp is used by default. This ensures that existing integrations continue to function without modification.</p>
<h3>What's new</h3>
<p>The <code>refundCreate</code> mutation now includes an optional <code>processedAt</code> field, enabling you to specify the exact time a refund was processed. This feature is particularly useful for:</p>
<ul>
<li><strong>Processing backdated refunds</strong>: Manage refunds initiated offline or those that need to reflect a specific processing date for accounting purposes.</li>
<li><strong>Maintaining accurate financial records</strong>: Ensure your refund timestamps align with your actual business operations and reporting periods.</li>
</ul>
<h3>How it works</h3>
<p>To use this feature, include the <code>processedAt</code> field when creating a refund:</p>
<pre><code class="language-graphql">mutation refundCreate($input: RefundInput!) {
  refundCreate(input: $input) {
    refund {
      id
      processedAt
      createdAt
    }
    userErrors {
      field
      message
    }
  }
}
</code></pre>
<p>With input:</p>
<pre><code class="language-json">{
  &quot;input&quot;: {
    &quot;orderId&quot;: &quot;gid://shopify/Order/123&quot;,
    &quot;processedAt&quot;: &quot;2024-12-01T10:30:00Z&quot;,
    &quot;refundLineItems&quot;: [...]
  }
}
</code></pre>
<p>If you don't provide a <code>processedAt</code> value, the current timestamp is used by default. This ensures that existing integrations continue to function without modification.</p>
</div> ]]></description>
    <pubDate>Fri, 12 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/set-processed-at-in-refund-create</link>
  </item>
  <item>
    <title>Making idempotency mandatory for inventory adjustments and refund mutations</title>
    <description><![CDATA[ <div class=""><p>This changelog relates to <a href="https://shopify.dev/changelog/concurrency-protection-features" target="_blank" class="body-link">concurrency protection features</a>.</p>
<p>We're making the <a href="https://shopify.dev/changelog/adding-idempotency-for-inventory-adjustments-and-refund-mutations" target="_blank" class="body-link">idempotent directive introduced here</a> <strong>mandatory</strong> for the following mutations in version <code>2026-04</code>:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/refundCreate" target="_blank" class="body-link"><code>refundCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentReceive" target="_blank" class="body-link"><code>inventoryShipmentReceive</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryAdjustQuantities" target="_blank" class="body-link"><code>inventoryAdjustQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryMoveQuantities" target="_blank" class="body-link"><code>inventoryMoveQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetQuantities" target="_blank" class="body-link"><code>inventorySetQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetOnHandQuantities" target="_blank" class="body-link"><code>inventorySetOnHandQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentCreateInTransit" target="_blank" class="body-link"><code>inventoryShipmentCreateInTransit</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentCreate" target="_blank" class="body-link"><code>inventoryShipmentCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferCreate" target="_blank" class="body-link"><code>inventoryTransferCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferCreateAsReadyToShip" target="_blank" class="body-link"><code>inventoryTransferCreateAsReadyToShip</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferDuplicate" target="_blank" class="body-link"><code>inventoryTransferDuplicate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferSetItems" target="_blank" class="body-link"><code>inventoryTransferSetItems</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetScheduledChanges" target="_blank" class="body-link"><code>inventorySetScheduledChanges</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryActivate" target="_blank" class="body-link"><code>inventoryActivate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentAddItems" target="_blank" class="body-link"><code>inventoryShipmentAddItems</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/locationActivate" target="_blank" class="body-link"><code>locationActivate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/locationDeactivate" target="_blank" class="body-link"><code>locationDeactivate</code></a></li>
</ul>
<blockquote>
<p><strong>Note</strong>:
Even though the idempotency directive doesn't show up as mandatory at the schema level, calling these mutations without an idempotency directive will result in an error at runtime.</p>
</blockquote>
<h2>What you need to do</h2>
<p>Developers using these mutations must update their application logic to include the <code>@idempotent</code> directive before migrating to version <code>2026-04</code></p>
<h2>How to use the directive</h2>
<p>An idempotency key is a unique identifier (we recommend using a UUID) that you provide when making a mutation request (generally, you would regenerate this key on page load and after successful operations). If you retry the same request with the same idempotency key due to network issues or timeouts, Shopify will recognize it as a duplicate and ensure the inventory is only adjusted once (or that the refund is only created once), protecting against double-counting. It will return the result of the original operation instead of creating a new one.</p>
<p>Example usage:</p>
<pre><code>  mutation {
    inventoryAdjustQuantities(
      input: {
        reason: &quot;restock&quot;
        name: &quot;available&quot;
        changes: [{
          delta: 5
          inventoryItemId: &quot;gid://shopify/InventoryItem/123&quot;
          locationId: &quot;gid://shopify/Location/456&quot;
        }]
      }
    ) @idempotent(key: &quot;4f5b6ebf-143c-4da5-8d0f-fb8553bfd85d&quot;) {
      inventoryAdjustmentGroup {
        id
      }
      userErrors {
        code
        message
      }
    }
  }
</code></pre>
<h2>Why we made this change</h2>
<p>Idempotency keys are essential for building robust, production-ready integrations. Duplicate inventory adjustments and duplicate refunds have long been a pain-point for merchants and for Shopify, resulting in inventory inconsistencies and financial losses. Making idempotency mandatory for our refund and inventory mutations will mitigate these problems.</p>
<p>For more information on how to implement idempotency, refer to <a href="https://shopify.dev/docs/api/usage/idempotent-requests" target="_blank" class="body-link">our docs</a>.</p>
<h2>Error codes</h2>
<p>If there's an issue with your idempotency key usage, you'll receive one of these error codes:</p>
<ul>
<li><code>IDEMPOTENCY_CONCURRENT_REQUEST</code>: Another request with the same idempotency key is currently being processed</li>
<li><code>IDEMPOTENCY_KEY_PARAMETER_MISMATCH</code>: The same idempotency key was used with different parameters</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 12 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/making-idempotency-mandatory-for-inventory-adjustments-and-refund-mutations</link>
  </item>
  <item>
    <title>Making `changeFromQuantity` field required (with explicit opt-out)</title>
    <description><![CDATA[ <div class=""><p>This changelog relates to <a href="https://shopify.dev/changelog/concurrency-protection-features" target="_blank" class="body-link">concurrency protection features</a>.</p>
<p>Starting in <code>2026-04</code>, the  <code>changeFromQuantity</code> field will be required for the following mutations:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryAdjustQuantities" target="_blank" class="body-link"><code>inventoryAdjustQuantities</code></a>: Available on the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryChangeInput" target="_blank" class="body-link"><code>InventoryChangeInput</code></a> input type</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryMoveQuantities" target="_blank" class="body-link"><code>inventoryMoveQuantities</code></a>: Available on the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryMoveQuantityTerminalInput" target="_blank" class="body-link"><code>InventoryMoveQuantityTerminalInput</code></a> input type</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetOnHandQuantities" target="_blank" class="body-link"><code>inventorySetOnHandQuantities</code></a>: Available on the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventorySetQuantityInput" target="_blank" class="body-link"><code>InventorySetQuantityInput</code></a> input type</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/productVariantsBulkUpdate" target="_blank" class="body-link">productVariantsBulkUpdate</a>: Available on the InventoryAdjustmentInput type, which is available on the <code>quantityAdjustments</code> field of the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/ProductVariantsBulkInput" target="_blank" class="body-link"><code>ProductVariantsBulkInput</code></a> type</li>
</ul>
<p>This is a breaking change. Note that even though the <code>changeFromQuantity</code> field doesn't show up as mandatory at the schema level, calling these mutations without passing in <code>null</code> or passing in the current actual quantity will result in an error at runtime.</p>
<h2>What you need to do</h2>
<p>Before migrating to version 2026-04, update your application logic to include the <code>changeFromQuantity</code> argument:</p>
<ul>
<li>To enable concurrency checks (Recommended): Pass the expected current quantity.</li>
<li>To opt-out (skip checks): Explicitly pass <code>changeFromQuantity: null</code></li>
</ul>
<h2>How to use the field</h2>
<p>The <code>changeFromQuantity</code> field is useful to keep inventory data accurate, even if multiple updates are happening at the same time. If the actual quantity doesn't match the value you provide, the mutation will fail with a <code>CHANGE_FROM_QUANTITY_STALE</code> error, preventing unintended overwrites.</p>
<p>In the following example, the adjustment will only succeed if the current available quantity is 50. If another process has modified the quantity in the meantime, you'll receive an error and can retry with the updated value.</p>
<p>For more information on compare and swap, and when you should opt out of comparison checks, refer to <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap" target="_blank" class="body-link">our docs</a>. We encourage users to avoid opting-out unless it's justified by their use-case.
	</p>
<pre><code>  mutation {
    inventoryAdjustQuantities(
      input: {
        reason: &quot;correction&quot;
        name: &quot;available&quot;
        changes: [{
          delta: 10
          changeFromQuantity: 50
          inventoryItemId: &quot;gid://shopify/InventoryItem/123&quot;
          locationId: &quot;gid://shopify/Location/456&quot;
        }]
      }
    ) {
      inventoryAdjustmentGroup {
        id
      }
      userErrors {
        code
        message
      }
    }
  }
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 12 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/making-changefromquantity-field-required</link>
  </item>
  <item>
    <title>Concurrency protection features for inventory and refund mutations</title>
    <description><![CDATA[ <div class=""><p>This changelog consolidates all updates related to concurrency protection features for inventory and refund mutations.</p>
<h2>Compare and swap changes</h2>
<p>To prevent race conditions in inventory updates, we're introducing compare and swap protection through the <code>changeFromQuantity</code> field across multiple API versions:</p>
<ul>
<li><code>2026-01</code> : <a href="https://shopify.dev/changelog/compare-and-swap-for-inventory-mutations-with-change-from-quantity" target="_blank" class="body-link">Introducing a <code>changeFromQuantity</code> field for various inventory mutations</a> </li>
<li><code>2026-01</code>:  <a href="https://shopify.dev/changelog/compare-and-swap-redesign-for-inventory-set-quantities" target="_blank" class="body-link">Introducing a <code>changeFromQuantity</code> field for the <code>inventorySetQuantities</code> mutation and deprecating the old compare And swap fields</a></li>
<li><code>2026-04</code>: <a href="https://shopify.dev/changelog/making-changefromquantity-field-required" target="_blank" class="body-link">Making the <code>changeFromQuantity</code> field required (with explict opt-out) for various inventory mutations</a> <strong>(BREAKING)</strong> </li>
<li><code>2026-04</code>: <a href="https://shopify.dev/changelog/finalizing-compare-and-swap-redesign-for-inventory-set-quantities" target="_blank" class="body-link">Making the <code>changeFromQuantity</code> field required (with explict opt-out) for the <code>inventorySetQuantities</code> mutation and removing the old compare And swap fields</a> <strong>(BREAKING)</strong></li>
</ul>
<h2>Idempotency changes</h2>
<p>To prevent duplicate operations when requests are retried, we're introducing idempotency protection through the idempotent directive:</p>
<ul>
<li><code>2026-01</code>: <a href="https://shopify.dev/changelog/adding-idempotency-for-inventory-adjustments-and-refund-mutations" target="_blank" class="body-link">Introducing an optional <code>idempotent</code> directive for various inventory and refund mutations</a></li>
<li><code>2026-04</code> <a href="https://shopify.dev/changelog/making-idempotency-mandatory-for-inventory-adjustments-and-refund-mutations" target="_blank" class="body-link">Making the <code>idempotent</code> directive required for various inventory and refund mutations</a> <strong>(BREAKING)</strong></li>
</ul>
<h2>Why we made these changes</h2>
<p>Most inventory adjustments lack concurrency and idempotency protection, leaving systems vulnerable to race conditions, duplicate updates, and integrity issues—especially when commands are retried due to network disruptions. To solve this we will standardize concurrency and idempotency checks across Inventory APIs.</p>
<p>For more information, refer to our <a href="https://shopify.dev/docs/api/usage/idempotent-requests" target="_blank" class="body-link">idempotency</a> and <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap" target="_blank" class="body-link">compare and swap</a> docs.</p>
</div> ]]></description>
    <pubDate>Fri, 12 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/concurrency-protection-features</link>
  </item>
  <item>
    <title>New compare and swap syntax for the `inventorySetQuantities` mutation</title>
    <description><![CDATA[ <div class=""><p>This changelog is relates to <a href="https://shopify.dev/changelog/concurrency-protection-features" target="_blank" class="body-link">concurrency protection features</a>.</p>
<p>We're making the <code>changeFromQuantity</code> field introduced <a href="https://shopify.dev/changelog/compare-and-swap-redesign-for-inventory-set-quantities" target="_blank" class="body-link">in <code>2026-01</code></a> mandatory and removing the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryQuantityInput#fields-compareQuantity" target="_blank" class="body-link"><code>compareQuantity</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventorySetQuantitiesInput#fields-ignoreCompareQuantity" target="_blank" class="body-link"><code>ignoreCompareQuantity</code></a> fields for the <a href="https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/inventorysetquantities" target="_blank" class="body-link"><code>inventorySetQuantities</code></a> mutation.</p>
<p>This is a breaking change. Note that even though the <code>changeFromQuantity</code> field doesn't show up as mandatory at the schema level, calling these mutations without passing in <code>null</code> or passing in the current actual quantity will result in an error at runtime.</p>
<h3>What you need to do</h3>
<p>Before migrating to version <code>2026-04</code>, update your application logic to include the <code>changeFromQuantity</code> argument:</p>
<ul>
<li>To enable concurrency checks (Recommended): Pass the expected current quantity.</li>
<li>To opt-out (skip checks): Explicitly pass <code>changeFromQuantity: null</code></li>
</ul>
<p>Additionally, before migrating, you must remove the <code>ignoreCompareQuantity</code> argument and the <code>compareQuantity</code> argument from your mutation calls.</p>
<h3>How to use the field</h3>
<p>Previously, to bypass comparison checks, you set <code>ignoreCompareQuantity</code> to <code>true</code>.</p>
<p>Now, to bypass comparison checks, you explicitly pass <code>null</code> to the <code>changeFromQuantity</code> field. To enable checks, pass an integer that represents the initial quantity before it is updated to the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryQuantityInput#fields-quantity" target="_blank" class="body-link">desired value</a>.</p>
<p>In the following example, the operation will only successfully set the new available quantity to 12 if the current available quantity is 5. If another process has modified the quantity in the meantime, you'll receive an error and can retry with the updated value.</p>
<pre><code>  mutation {
    inventorySetQuantities(
      input: {
      quantities: [
        {
          quantity: 12,
          inventoryItemId: &quot;gid://shopify/InventoryItem/2&quot;,
          locationId: &quot;gid://shopify/Location/1&quot;,
          changeFromQuantity: 5
        }
      ],
      reason: &quot;correction&quot;,
      name: &quot;available&quot;
    }
    ) {
      inventoryAdjustmentGroup {
        id
      }
      userErrors {
        code
        message
      }
    }
  }
</code></pre>
<h3>Removing legacy fields</h3>
<p>The <code>compareQuantity</code> and <code>ignoreCompareQuantity</code> fields will be removed in version <code>2026-04</code>. </p>
<p>For more information on compare and swap, and when you should opt out of comparison checks, refer to <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap" target="_blank" class="body-link">our docs</a>. We encourage users to avoid opting-out unless it's justified by their use-case.</p>
</div> ]]></description>
    <pubDate>Fri, 12 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/finalizing-compare-and-swap-redesign-for-inventory-set-quantities</link>
  </item>
  <item>
    <title>Removal of payment method requirement on API created Subscription contracts</title>
    <description><![CDATA[ <div class=""><p>We've made it possible create subscription contracts without an attached payment method using the GraphQL Admin API. Contracts created through checkout will continue to require a payment method.</p>
<p>With this update, if you’re importing existing contracts with missing or expired payment methods, you can still migrate them to Shopify first and collect or update payment details later—removing a common onboarding blocker while keeping the buyer experience unchanged. </p>
<p><strong>Note</strong>: Charges can’t be processed until a valid payment method is added.</p>
<p><a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/migrate-to-subscriptions-api/migrate-subscription-contracts" target="_blank" class="body-link">Learn more in the dev docs</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 12 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/removal-of-payment-method-requirement-on-api-created-subscription-contracts</link>
  </item>
  <item>
    <title>Discouraging use of `receiptJson` on `OrderTransaction` in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>We’re <strong>discouraging</strong> use of <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction#field-OrderTransaction.fields.receiptJson" target="_blank" class="body-link"><code>OrderTransaction.receiptJson</code></a>. You should stop relying on <code>receiptJson</code> in production apps.</p>
<p><code>receiptJson</code> is <strong>gateway-defined</strong>, <strong>inconsistently shaped</strong>, and may <strong>change without notice</strong>. Because its structure isn’t stable or typed, changes can lead to unexpected app failures.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/discouraging-use-of-receiptjson-on-ordertransaction-in-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Faster bulk operations</title>
    <description><![CDATA[ <div class=""><p>We've updated bulk operations in the GraphQL Admin API to process large datasets faster.</p>
<p><strong>What's new:</strong>
Here's what we've done:</p>
<ul>
<li><strong>Support for all mutations</strong>: Previously bulk mutations only supported a limited set of actions. Now, you can execute any mutation using bulk operations across all API versions.</li>
<li><strong>Larger file uploads</strong> : Upload files up to 100MB (up from 20MB), reducing the number of operations needed for large datasets.</li>
<li><strong>Five concurrent operations</strong>: Each app can run up to five bulk operations per shop simultaneously. Split large imports and exports into parallel jobs and complete them faster without managing throttling or concurrency yourself.</li>
</ul>
<p>For setup guidance and examples, visit the <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/faster-bulk-operations</link>
  </item>
  <item>
    <title>Deprecation of `OrderTransaction.authorizationCode` in favor of `OrderTransaction.paymentId`</title>
    <description><![CDATA[ <div class=""><p>Starting with the <code>2026-01</code> API version, the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/ordertransaction#field-OrderTransaction.fields.authorizationCode" target="_blank" class="body-link"><code>authorizationCode</code></a> field on the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/ordertransaction#field-OrderTransaction" target="_blank" class="body-link"><code>OrderTransaction</code></a> object is deprecated. We recommend using the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/ordertransaction#field-OrderTransaction.fields.paymentId" target="_blank" class="body-link"><code>paymentId</code></a> field instead.</p>
<p>The <code>paymentId</code> field provides a consistent, standardized identifier for payment reconciliation across all payment providers on Shopify. Adopting <code>paymentId</code> ensures your integration relies on the most stable and supported field for tracking and reconciling transactions, regardless of the underlying payment gateway.</p>
<p><strong>Warning:</strong> <code>paymentId</code> returns a Shopify-specific identifier, which differs from the provider-specific value in <code>authorizationCode</code>. Ensure your systems are updated to store and reconcile using this new ID format.</p>
<h3>Recommended migration</h3>
<p>Developers should update their queries to use the <code>paymentId</code> field when accessing <code>OrderTransaction</code> objects in the Admin GraphQL API. Replace instances of <code>authorizationCode</code> with <code>paymentId</code>. By making these changes, you ensure your app relies on the standard identifier for payment transactions.</p>
<p>For example, update your query from:</p>
<pre><code class="language-graphql">query TransactionDetails {
  order(id: &quot;gid://shopify/Order/12345&quot;) {
    transactions {
      id
      authorizationCode
    }
  }
}
</code></pre>
<p>to:</p>
<pre><code class="language-graphql">query TransactionDetails {
  order(id: &quot;gid://shopify/Order/12345&quot;) {
    transactions {
      id
      paymentId
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/deprecation-of-ordertransaction-authorizationcode-in-favor-of-ordertransactionpaymentid</link>
  </item>
  <item>
    <title>Advanced Metafield &amp; Metaobject Querying</title>
    <description><![CDATA[ <div class=""><p>We've expanded the resources that you can query by metafield value to include Companies and Company Locations. We've also expanded how you can query metafield values on Products, Orders, and Metaobject entries to include:</p>
<ul>
<li>Greater than and less than comparisons</li>
<li>Prefix matching</li>
<li>Boolean operators (AND, OR, NOT)</li>
</ul>
<p>These work across more metafield types than before. No more fetching all resources and iterating through metafield values client-side. You can filter directly in your queries, and the query options now match how other properties are searchable on resources.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/advanced-metafield-metaobject-querying</link>
  </item>
  <item>
    <title>Introducing Sidekick app extensions</title>
    <description><![CDATA[ <div class=""><p>Today, we're introducing <a href="https://shopify.dev/docs/apps/build/sidekick" target="_blank" class="body-link">Sidekick app extensions</a> to give your app new ways to integrate your app with <a href="https://www.shopify.com/magic" target="_blank" class="body-link">Sidekick</a>, Shopify's AI-enabled commerce assistant. </p>
<h3>What are Sidekick app extensions?</h3>
<p>Your app can connect its data and workflows using app extensions. Sidekick can search your app’s data, answer questions with your app’s context, and take merchants straight to the right page in your app.</p>
<p>You can also let Sidekick assist directly inside your app. Define safe, scoped actions—like editing an email template, creating a product review, or updating a support issue—and Sidekick will suggest changes and bring up the right UI, but merchants stay in control of what gets updated.</p>
<h3>Learn more</h3>
<p>Jump in and take a tour through our <a href="https://shopify.dev/docs/apps/build/sidekick" target="_blank" class="body-link">documentation on Sidekick app extensions</a> to learn how you can integrate these new super-powers into your app!</p>
<h3>Holler at us</h3>
<p>Leave us feedback, comments, and questions in the <a href="https://community.shopify.dev/c/extensions/5" target="_blank" class="body-link">Shopify Developer Community</a>. We'd love to hear from you. </p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 14:50:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-sidekick-app-extensions</link>
  </item>
  <item>
    <title>The Winter '26 Edition is here</title>
    <description><![CDATA[ <div class=""><p>Announcing 150+ updates to Shopify.</p>
<p><a href="https://www.shopify.com/editions/winter2026?utm_source=changelog-dev&utm_medium=changelog-dev&utm_campaign=winter26edition-launch_Q425BACADO" target="_blank" class="body-link">See the updates</a></p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 14:30:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-winter-26-edition-is-here</link>
  </item>
  <item>
    <title>Offline access tokens now support expiry and refresh</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/offline-access-tokens" target="_blank" class="body-link">Offline access tokens</a> now can optionally expire after 60 minutes and come with a refresh token. You can use the refresh token to obtain a new offline access token without requiring merchant interaction. This update aligns our process with the OAuth 2.0 specification and enhances security.</p>
<h2>How expiry works</h2>
<p>OAuth authorizes your app to act on behalf of a store. Once the merchant approves your requested scopes, you receive tokens.</p>
<ol>
<li>Direct the merchant through OAuth and request offline access.</li>
<li>We provide:<ul>
<li><code>access_token</code> access token to be used to make API requests</li>
<li><code>expires_in</code> time to live (TTL) of the access token in seconds (3600 seconds)</li>
<li><code>refresh_token</code> used to request a new access token with an updated TTL</li>
</ul>
</li>
<li>Before or after the access token expires, exchange the <code>refresh_token</code> at the token endpoint to receive a new offline access token.</li>
<li>Update stored tokens with the latest values returned by the refresh response.</li>
</ol>
<p>Refer to the OAuth documentation for specific parameters, error codes, and retry guidance.</p>
<h2>How to implement expiry</h2>
<ul>
<li>Securely store refresh tokens, as they are sensitive credentials that can generate new access tokens. Use a secrets manager, encrypt at rest, and restrict access.</li>
<li>To implement expiring tokens, you'll need to:<ul>
<li>Track the access token’s 60-minute expiry.</li>
<li>Proactively refresh tokens a few minutes before they expire, and when you recieve a 401 response.</li>
<li>Update stored tokens with the latest values from the refresh response.</li>
<li>Remove any assumptions in your code that offline tokens never expire.</li>
</ul>
</li>
<li>Monitor logs and alerts for token refresh failures, and revert to a new OAuth authorization if necessary.</li>
</ul>
<h2>Migration and compatibility</h2>
<ul>
<li>This change is additive: existing perpetual offline tokens will continue to function for now.</li>
<li>Available with both <a href="https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/token-exchange" target="_blank" class="body-link">token exchange</a> and <a href="https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant" target="_blank" class="body-link">authorization code</a> grant types.  The <a href="https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/client-credentials-grant" target="_blank" class="body-link">client credentials grant</a> already supports expiry and refresh using a slightly different OAuth 2 spec process.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/offline-access-tokens-now-support-expiry-and-refresh</link>
  </item>
  <item>
    <title>Revamped POS UI extensions reference</title>
    <description><![CDATA[ <div class=""><p>We've overhauled the Point of Sale (POS) UI extensions reference, making it easier for you to build extensions that integrate into Shopify's <a href="https://shopify.dev/docs/apps/build/pos" target="_blank" class="body-link">Point of Sale interface</a>.</p>
<p>Updates include:</p>
<ul>
<li><strong>Expanded guidance:</strong> Detailed explanations and real-world use cases help you implement features.</li>
<li><strong>More examples:</strong> New code snippets and an example switcher help you find what you need faster.</li>
<li><strong>Clearer relationships:</strong> Support matrices show at a glance how targets, APIs, and components work together.</li>
<li><strong>Developer feedback addressed:</strong> We reviewed and resolved 100% of feedback submitted through our <strong>Was this doc helpful?</strong> form.</li>
</ul>
<p>Check out the new <a href="https://shopify.dev/docs/api/pos-ui-extensions" target="_blank" class="body-link">POS UI extensions reference</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/revamped-pos-ui-extensions-reference</link>
  </item>
  <item>
    <title>A more powerful Dev Assistant on shopify.dev</title>
    <description><![CDATA[ <div class=""><p>We've overhauled the Dev Assistant to make it a more reliable and comprehensive companion for your development workflow. While the Assistant is already a familiar tool, this update introduces a new engine designed to deliver higher accuracy and broader knowledge across the entire ecosystem.</p>
<p>Key improvements include:</p>
<ul>
<li><strong>Comprehensive platform knowledge</strong>: The Assistant now supports the full breadth of the Shopify development platform. Whether you're working with the GraphQL Admin API, building UI extensions, or configuring Hydrogen, you can ask about any aspect of the platform and get a relevant answer.</li>
<li><strong>Verified code examples</strong>: We've improved the accuracy of generated solutions. The Assistant now validates code blocks against our schemas before rendering the response, ensuring the snippets you receive are syntactically correct and ready to use.</li>
<li><strong>Direct documentation access</strong>: It's now easier to verify answers and dive deeper into specific topics. The Assistant provides transparent resource links alongside every response, enabling you to navigate quickly to the exact pages on shopify.dev that were used to generate the answer.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/a-more-powerful-dev-assistant-on-shopifydev</link>
  </item>
  <item>
    <title>Monitor admin performance issues by region with Web Vitals API</title>
    <description><![CDATA[ <div class=""><p>Enhance your app's global admin performance with regional data from the Web Vitals API. Each Web Vitals event now includes a country field with a two-letter ISO country code, allowing you to pinpoint where users encounter performance issues with your app.</p>
<p>This update enables you to understand regional performance patterns and optimize your app for users worldwide. You can segment admin performance data by geography to identify slow-loading regions, troubleshoot location-specific issues, and ensure consistent user experiences across various markets.</p>
<p>No additional setup is required; existing onReport callbacks automatically receive the new country field. Use this data to create more targeted performance optimizations and deliver faster admin experiences for merchants globally.</p>
<p>For more information about the Web Vitals API, visit the <a href="https://shopify.dev/docs/apps/build/performance/admin-installation-oauth?utm_source=w26-editions-website&utm_medium=product-cta&utm_campaign=winter26edition#measure-your-apps-loading-performance" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 13:45:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/monitor-admin-performance-issues-by-region-with-web-vitals-api</link>
  </item>
  <item>
    <title>Simplified App Store requirements</title>
    <description><![CDATA[ <div class=""><p>Preparing your app for review just became more straightforward. We've simplified and updated App Store requirements to be clearer, better organized, and easier to work with throughout the development process.</p>
<p><strong>What's improved:</strong></p>
<ul>
<li><strong>Streamlined structure:</strong> Requirements are organized for better structure and readability, so you can understand exactly what’s needed.</li>
<li><strong>Numbered for easy reference:</strong> Each requirement has a clear number and hyperlink associated with it, making it simple to reference specific items as you work through them.</li>
</ul>
<p><strong>What this means for you:</strong>
These improvements remove friction from understanding and following requirements, so you can focus on building features that merchants love.</p>
<p>All updated requirements are now live in the <a href="https://shopify.dev/docs/apps/launch/shopify-app-store/app-store-requirements" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 13:45:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/simplified-app-store-requirements</link>
  </item>
  <item>
    <title>New fields to combine bundle options</title>
    <description><![CDATA[ <div class=""><p>In the API <code>2026-01</code> release candidate version, we've introduced consolidated options in the GraphQL Admin API. This feature allows you to support merchants by combining options, such as size and length, to streamline the checkout process for customers.</p>
<p>The new <code>consolidatedOptions</code> field has been added to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductBundleCreateInput" target="_blank" class="body-link"><code>ProductBundleCreateInput</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/productbundleupdateinput" target="_blank" class="body-link"><code>ProductBundleUpdateInput</code></a> input objects in the GraphQL Admin API. Use this field to define which buyer-facing options to combine across components, ensuring a single selector for customers purchasing fixed bundles.</p>
<p>Learn more about combining bundle options by following this <a href="https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-product-fixed-bundle" target="_blank" class="body-link">tutorial</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Dec 2025 13:03:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/new-fields-to-combine-bundle-options</link>
  </item>
  <item>
    <title>ShopifyQL Python SDK and CLI now available for analytics</title>
    <description><![CDATA[ <div class=""><p>Developers and merchants can now access ShopifyQL data through a dedicated Python SDK and CLI tool designed for analytics workflows.</p>
<p>The ShopifyQL Python package provides a clean, Pythonic interface for ShopifyQL queries while handling GraphQL API complexity behind the scenes. It eliminates manual OAuth implementation and HTTP request handling, returning data directly as either pandas DataFrames or polars DataFrames.This enables you to create reporting apps and export data to data warehouses without managing GraphQL interactions directly.</p>
<p><a href="https://shopify.dev/docs/apps/build/shopifyql/python-sdk-and-cli" target="_blank" class="body-link">Learn more</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Dec 2025 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopifyql-python-sdk-and-cli-now-available-for-analytics</link>
  </item>
  <item>
    <title>Tax summary webhook and calculation requests now include customer and company metafields</title>
    <description><![CDATA[ <div class=""><p>As of API version 2026-04, tax calculation requests for tax partner apps now include buyer metafields. These fields provide custom data associated with customers (for D2C orders) and companies (for B2B orders) that may affect tax calculations. This enhancement allows tax partners to access merchant-defined buyer attributes for more accurate tax determination and compliance reporting.</p>
<h2>What's new</h2>
<p>The tax calculation request payload now includes new <code>metafields</code> arrays in the buyer identity section:</p>
<ol>
<li><p><strong>Customer metafields</strong> (<code>cart.buyer_identity.customer.metafields[]</code>):</p>
<ul>
<li>Available for D2C orders</li>
<li>Contains custom attributes defined by the merchant for individual customers</li>
<li>Examples include prescription status, tax exemption certificates, and customer classifications</li>
</ul>
</li>
<li><p><strong>Company metafields</strong> (<code>cart.buyer_identity.purchasing_company.company.metafields[]</code>):</p>
<ul>
<li>Available for B2B orders</li>
<li>Contains custom attributes defined by the merchant for business customers</li>
<li>Examples include wholesale status, resale certificates, and business classifications</li>
</ul>
</li>
</ol>
<h2>Metafield structure</h2>
<p>Each metafield contains information on namespace, key, type, and value. The following example shows the structure before and after the update:</p>
<h3>Customer metafields</h3>
<p><strong>Before (2026-01 and earlier):</strong> </p>
<pre><code class="language-json">{
  &quot;customer&quot;: {
    &quot;id&quot;: &quot;123&quot;,
    &quot;exemptions&quot;: []
  }
}
</code></pre>
<p><strong>After (2026-01):</strong></p>
<pre><code class="language-json">{
  &quot;customer&quot;: {
    &quot;id&quot;: &quot;123&quot;,
    &quot;exemptions&quot;: [],
    &quot;metafields&quot;: [
      {
        &quot;namespace&quot;: &quot;custom&quot;,
        &quot;key&quot;: &quot;has_prescription&quot;,
        &quot;type&quot;: &quot;boolean&quot;,
        &quot;value&quot;: &quot;true&quot;
      }
    ]
  }
}
</code></pre>
<h3>Company metafields</h3>
<p><strong>Before (2026-01 and earlier):</strong> </p>
<pre><code class="language-json">{
  &quot;purchasing_company&quot;: {
    &quot;company&quot;: {
      &quot;id&quot;: &quot;456&quot;,
      &quot;external_id&quot;: &quot;ACME-001&quot;
    },
    &quot;company_location&quot;: {
      &quot;id&quot;: &quot;789&quot;,
      &quot;external_id&quot;: &quot;ACME-LOCATION-001&quot;
    }
  }
}
</code></pre>
<p><strong>After (2026-04):</strong></p>
<pre><code class="language-json">{
  &quot;purchasing_company&quot;: {
    &quot;company&quot;: {
      &quot;id&quot;: &quot;456&quot;,
      &quot;external_id&quot;: &quot;ACME-001&quot;,
      &quot;metafields&quot;: [
        {
          &quot;namespace&quot;: &quot;custom&quot;,
          &quot;key&quot;: &quot;customer_class&quot;,
          &quot;type&quot;: &quot;single_line_text_field&quot;,
          &quot;value&quot;: &quot;wholesale&quot;
        }
      ]
    },
    &quot;company_location&quot;: {
      &quot;id&quot;: &quot;789&quot;,
      &quot;external_id&quot;: &quot;ACME-LOCATION-001&quot;
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Tue, 09 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/tax-summary-webhook-and-calculation-requests-now-include-customer-and-company-metafields</link>
  </item>
  <item>
    <title>Multi-environment theme commands in Shopify CLI</title>
    <description><![CDATA[ <div class=""><p>You can now run theme commands across multiple environments simultaneously, making it easier to manage themes across development, staging, and production stores in a single operation.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Dec 2025 17:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/multi-environment-theme-commands-shopify-cli</link>
  </item>
  <item>
    <title>Venmo and PayPal are now treated as separate payment methods</title>
    <description><![CDATA[ <div class=""><p>Starting in API version <code>2026-01</code>, Venmo and PayPal are treated as separate payment methods when using payment customization functions. Previously, hiding PayPal's express checkout placement would automatically hide Venmo as well. With this change, you can now hide or show Venmo independently from PayPal in your payment customization logic.</p>
<h2>Action required</h2>
<p>If you were previously hiding PayPal's accelerated checkout placement to also hide Venmo, you must now explicitly hide Venmo separately in your payment customization function.</p>
<h3>Previous behavior (automatic):</h3>
<ul>
<li>Hiding PayPal's <a href="https://shopify.dev/docs/api/functions/2026-01/payment-customization#Input.fields.paymentMethods.placements.ACCELERATED_CHECKOUT" target="_blank" class="body-link"><code>ACCELERATED_CHECKOUT</code></a> placement would automatically hide Venmo.</li>
</ul>
<pre><code class="language-javascript">export function run(input) {
  const operations = [];

  const paypal = input.paymentMethods.find(method =&gt;
    method.name.includes(&quot;PayPal&quot;)
  );

  if (paypal &amp;&amp; shouldHidePayPal(input)) {
    operations.push({
      paymentMethodHide: { paymentMethodId: paypal.id }
    });
    // Venmo was implicitly hidden
  }

  return { operations };
  
}
</code></pre>
<h3>New behavior (explicit control required):</h3>
<ul>
<li>Hiding PayPal's <code>ACCELERATED_CHECKOUT</code> placement only hides PayPal.</li>
<li>To hide Venmo, you must now explicitly hide Venmo's placement separately. Venmo is only available in the <code>ACCELERATED_CHECKOUT</code> placement.</li>
</ul>
<p>To maintain the previous behavior of hiding both PayPal and Venmo together, update your payment customization function logic to explicitly target the Venmo payment method. Venmo can be targeted by checking for the exact string <code>&quot;Venmo&quot;</code> in the payment method's <code>name</code> field.</p>
<pre><code class="language-javascript">export function run(input) {
  const operations = [];

  const paypal = input.paymentMethods.find(method =&gt;
    method.name.includes(&quot;PayPal&quot;)
  );

  const venmo = input.paymentMethods.find(method =&gt;
    method.name === &quot;Venmo&quot;
  );

  if (shouldHidePayPal(input)) {
    if (paypal) {
      operations.push({
        paymentMethodHide: { paymentMethodId: paypal.id }
      });
    }

    // NEW: Must explicitly hide Venmo if you want both hidden
    if (venmo) {
      operations.push({
        paymentMethodHide: { paymentMethodId: venmo.id }
      });
    }
  }

  return { operations };
}
</code></pre>
</div> ]]></description>
    <pubDate>Mon, 08 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Functions</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/venmo-and-paypal-are-now-treated-as-separate-payment-methods</link>
  </item>
  <item>
    <title>New: Open source experimentation platform</title>
    <description><![CDATA[ <div class=""><p>Tangle is a platform-agnostic, open source experimentation platform with a visual editor and content-based caching.  </p>
<p>With Tangle, you can build ML and data pipelines collaboratively, choosing from reusable modules in the component library or adding your own.</p>
<p><a href="https://tangleml.com/" target="_blank" class="body-link">Learn more about Tangle</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 08 Dec 2025 13:03:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-open-source-experimentation-platform</link>
  </item>
  <item>
    <title>Binary testing for Shopify Functions</title>
    <description><![CDATA[ <div class=""><p>We've released the <a href="https://www.npmjs.com/package/@shopify/shopify-function-test-helpers" target="_blank" class="body-link"><code>@shopify/shopify-function-test-helpers</code></a> package to simplify writing comprehensive integration tests for Shopify Functions using real production data. All function extension templates now include integration tests powered by this package.</p>
<h2>Why this matters</h2>
<ol>
<li><strong>Test the actual WASM binary</strong>: Integration tests validate the compiled code uploaded to Shopify's infrastructure, helping to catch breaking changes before they hit production; including compilation errors, runtime crashes, or serialization issues that unit tests might miss.</li>
<li><strong>Easily add new scenarios</strong>: Create new fixtures in the <code>tests/fixtures/</code> directory, and the test suite will automatically include them. There's no need to write additional test code for each new scenario.</li>
<li><strong>Build from real production data</strong>: Create your fixture library by copying function run logs directly from production. This enables you to test against the actual inputs your function encounters, ensuring your tests reflect real-world scenarios.</li>
</ol>
<h2>Learn more</h2>
<p>For more details, visit the <a href="https://www.npmjs.com/package/@shopify/shopify-function-test-helpers" target="_blank" class="body-link">package page</a> or explore the <a href="https://shopify.dev/docs/apps/build/functions/test-debug-functions#writing-wasm-integration-tests-for-functions" target="_blank" class="body-link">Shopify developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 05 Dec 2025 17:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/binary-testing-for-shopify-functions</link>
  </item>
  <item>
    <title>Order editing new validations and handled `userErrors`</title>
    <description><![CDATA[ <div class=""><p>Order editing mutations now include additional validations. When these validations fail, the API returns relevant <code>userErrors</code> in the response. These changes apply to all supported API versions.</p>
<h2>Gift card amount limit</h2>
<p>Gift cards added with the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditaddvariant" target="_blank" class="body-link"><code>orderEditAddVariant</code></a> mutation are now subject to a maximum value limit. Limits vary by currency but are set high enough to accommodate typical merchant use cases.</p>
<h3>Error message</h3>
<p><code>Gift card amount exceeds the limit of {limit}</code></p>
<h2>Line item count limit</h2>
<p>Orders are limited to a maximum number of active line items when using the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditaddvariant" target="_blank" class="body-link"><code>orderEditAddVariant</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditaddcustomitem" target="_blank" class="body-link"><code>orderEditAddCustomItem</code></a> mutations.</p>
<h3>Error message</h3>
<p><code>The number of line items exceeds the limit of {limit}</code></p>
<h2>Line item subtotal limit</h2>
<p>Orders now validate that the combined value of all active line items stays within the subtotal limit. </p>
<p>This validation already exists at checkout and now applies to order editing as well. The current limit is set high enough to avoid blocking legitimate orders in normal use.</p>
<h3>Error message</h3>
<p><code>Line item subtotal exceeds the limit of {limit}</code></p>
</div> ]]></description>
    <pubDate>Fri, 05 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/order-editing-new-validations-and-handled-usererrors</link>
  </item>
  <item>
    <title>InventoryItem.variant field deprecated in favor of InventoryItem.variants connection</title>
    <description><![CDATA[ <div class=""><p>The <code>InventoryItem.variant</code> field has been deprecated and will be removed in a future API version. Use the new <code>InventoryItem.variants</code> connection instead. </p>
<p>To learn more, see <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem" target="_blank" class="body-link"><code>InventoryItem</code> object</a> or <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/inventoryItem" target="_blank" class="body-link"><code>inventoryItem</code> query</a> in the GraphQL Admin API reference. </p>
<h3>Why we're making this change</h3>
<p>The new <code>variants</code> connection allows for retrieving <code>ProductVariants</code> through a paginated connection, rather than a single variant object. This update prepares the API to support multiple variants sharing a single inventory item in the future.</p>
<p>Initially the <code>variants</code> connection will return a single node. However, we recommend updating your integrations to handle <code>variants</code> as a connection to accommodate future changes.</p>
<h3>What you need to do</h3>
<p>Modify your GraphQL queries by replacing <code>variant</code> with <code>variants</code>. Since <code>variants</code> is a connection, ensure you request <code>edges</code> and <code>nodes</code>. Although the deprecated <code>variant</code> field remains functional in all supported API versions, including <code>2026-01</code> , it will eventually be removed. Updating your queries now will ensure they remain compatible with future API versions.</p>
<p><strong>Before (deprecated):</strong></p>
<pre><code class="language-graphql">{
  inventoryItem(id: &quot;gid://shopify/InventoryItem/123&quot;) {
    variant {
      id
      sku
    }
  }
}
</code></pre>
<p><strong>After (recommended):</strong></p>
<pre><code class="language-graphql">{
  inventoryItem(id: &quot;gid://shopify/InventoryItem/123&quot;) {
    variants(first: 10) {
      edges {
        node {
          id
          sku
        }
      }
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Tue, 02 Dec 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/inventory-item-variant-field-deprecation</link>
  </item>
  <item>
    <title>Deprecation of `Shop.billingAddress` in favor of `Shop.shopAddress`</title>
    <description><![CDATA[ <div class=""><p>As of API version 2026-01, the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/objects/shop#field-Shop.fields.shopAddress" target="_blank" class="body-link"><code>shopAddress</code> field will be introduced to the <code>Shop</code> object</a> in the GraphQL Admin API. This new field replaces the now-deprecated <code>billingAddress</code> field, which will be removed in a future version. <code>shopAddress</code> will have identical structure and values as <code>billingAddress</code>. </p>
<p>Billing account address currently corresponds to the shop address. This change makes that relationship clearer, and supports potential future separation of billing and shop addresses.</p>
<h3>Action required</h3>
<p>You should update your queries to use the new <code>shopAddress</code> field when accessing the <code>Shop</code> object in the GraphQL Admin API. Replace instances of <code>shop { billingAddress { ... } }</code> with <code>shop { shopAddress { ... } }</code>. </p>
<p>For example, update your query from:</p>
<pre><code class="language-graphql">query ShopAddress {
  shop {
    billingAddress {
      address1
      address2
      city
      province
      zip
      country
    }
  }
}
</code></pre>
<p>to:</p>
<pre><code class="language-graphql">query ShopAddress {
  shop {
    shopAddress {
      address1
      address2
      city
      province
      zip
      country
    }
  }
}
</code></pre>
<p>By making these changes, you ensure compatibility with future API versions.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Dec 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/deprecation-of-shop-billingaddress-in-favor-of-shop-shopaddress</link>
  </item>
  <item>
    <title>Tax summary webhook and calculation requests now includes shop and presentment currency amount</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2026-01</code>, the <code>tax_summaries/create</code> webhook and tax calculation requests for Tax Partner Apps include additional fields for currency. These fields provide amounts in both shop currency and presentment currency. This enhancement allows tax Partners to perform calculations and reporting in the merchant's accounting currency while maintaining the customer-facing currency for display.</p>
<h2>What's New</h2>
<p>The webhook and tax calculation request payloads now include new <a href="https://shopify.dev/docs/api/customer/2026-01/objects/MoneyBag" target="_blank" class="body-link"><code>MoneyBag</code></a> fields in both shop currency and presentment currency in the following locations:</p>
<ol>
<li><p><strong>Sale Records</strong> (<code>agreements[].sales[]</code>):</p>
<ul>
<li><code>discount_amount_set</code></li>
<li><code>tax_amount_set</code></li>
<li><code>amount_before_taxes_after_discounts_set</code></li>
<li><code>amount_after_taxes_after_discounts_set</code></li>
</ul>
</li>
<li><p><strong>Cart Line Costs</strong> (<code>delivery_groups[].cart_lines[].cost</code>):</p>
<ul>
<li><code>amount_per_quantity_set</code></li>
<li><code>subtotal_amount_set</code></li>
<li><code>total_amount_set</code></li>
</ul>
</li>
</ol>
<p>These fields complement the existing single-currency amount fields and are available when shops have multi-currency enabled.</p>
<h3>MoneyBag Structure</h3>
<p>The new <code>MoneyBag</code> fields contain two <a href="https://shopify.dev/docs/api/customer/2026-01/objects/MoneyV2" target="_blank" class="body-link"><code>MoneyV2</code></a>. Below is an example of the structure:</p>
<p><strong>Before (2025-10 and earlier):</strong> </p>
<pre><code class="language-json">{
    &quot;amount_before_taxes_after_discounts&quot;: {
        &quot;currency_code&quot;: &quot;CAD&quot;,
        &quot;amount&quot;: &quot;135.00&quot;
    }
}
</code></pre>
<p><strong>After (2026-01):</strong></p>
<pre><code class="language-json">{
    &quot;amount_before_taxes_after_discounts&quot;: {
        &quot;currency_code&quot;: &quot;CAD&quot;,
        &quot;amount&quot;: &quot;135.00&quot;
    },
    &quot;amount_before_taxes_after_discounts_set&quot;: {
        &quot;shop_money&quot;: {
            &quot;currency_code&quot;: &quot;USD&quot;,
            &quot;amount&quot;: &quot;100.00&quot;
        },
        &quot;presentment_money&quot;: {
            &quot;currency_code&quot;: &quot;CAD&quot;,
            &quot;amount&quot;: &quot;135.00&quot;
        }
    }
}
</code></pre>
</div> ]]></description>
    <pubDate>Sat, 22 Nov 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/tax-summary-webhook-and-calculation-requests-now-includes-shop-and-presentment-currency-amount</link>
  </item>
  <item>
    <title>New `changeFromQuantity` field to manage inventory</title>
    <description><![CDATA[ <div class=""><p>This changelog relates to <a href="https://shopify.dev/changelog/concurrency-protection-features" target="_blank" class="body-link">concurrency protection features</a>.</p>
<p>The following mutations now support the optional <code>changeFromQuantity</code> field:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryAdjustQuantities" target="_blank" class="body-link"><code>inventoryAdjustQuantities</code></a>: Available on the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryChangeInput" target="_blank" class="body-link"><code>InventoryChangeInput</code></a> input type</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryMoveQuantities" target="_blank" class="body-link"><code>inventoryMoveQuantities</code></a>: Available on the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryMoveQuantityTerminalInput" target="_blank" class="body-link"><code>InventoryMoveQuantityTerminalInput</code></a> input type</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetOnHandQuantities" target="_blank" class="body-link"><code>inventorySetOnHandQuantities</code></a>: Available on the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventorySetQuantityInput" target="_blank" class="body-link"><code>InventorySetQuantityInput</code></a> input type</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/productVariantsBulkUpdate" target="_blank" class="body-link"><code>productVariantsBulkUpdate</code></a>: Available on the InventoryAdjustmentInput type, which is available on the <code>quantityAdjustments</code> field of the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/ProductVariantsBulkInput" target="_blank" class="body-link"><code>ProductVariantsBulkInput</code></a> type</li>
</ul>
<blockquote>
<p><strong>Note</strong>: 
The  <code>quantityAdjustments</code> field of the <code>productVariantsBulkUpdate</code> mutation will only be public in version <code>2026-01</code>.</p>
</blockquote>
<h2>How to use the field</h2>
<p>The <code>changeFromQuantity</code> field is useful to keep inventory data accurate, even if multiple updates are happening at the same time. If the actual quantity doesn't match the value you provide, the mutation will fail with a <code>CHANGE_FROM_QUANTITY_STALE</code> error, preventing unintended overwrites.</p>
<p>In the following example, the adjustment only succeeds if the current available quantity is 50. If another process has modified the quantity in the meantime, you'll receive an error and can retry with the updated value. To opt-out of comparison checks you can explicitly pass in <code>null</code> to the <code>changeFromQuantity</code> field. 
	</p>
<pre><code>  mutation {
    inventoryAdjustQuantities(
      input: {
        reason: &quot;correction&quot;
        name: &quot;available&quot;
        changes: [{
          delta: 10
          changeFromQuantity: 50
          inventoryItemId: &quot;gid://shopify/InventoryItem/123&quot;
          locationId: &quot;gid://shopify/Location/456&quot;
        }]
      }
    ) {
      inventoryAdjustmentGroup {
        id
      }
      userErrors {
        code
        message
      }
    }
  }
</code></pre>
<p>For more information on compare and swap, and when you should opt out of comparison checks, refer to <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap" target="_blank" class="body-link">our docs</a>. We encourage users to avoid opting-out unless it's justified by their use case.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Nov 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/compare-and-swap-for-inventory-mutations-with-change-from-quantity</link>
  </item>
  <item>
    <title>Adding idempotency for inventory adjustments and refund mutations</title>
    <description><![CDATA[ <div class=""><p>This changelog relates to <a href="https://shopify.dev/changelog/concurrency-protection-features" target="_blank" class="body-link">concurrency protection features</a>.</p>
<p>We're introducing idempotency keys for several inventory and refund mutations. This enhancement helps you build more reliable integrations by preventing duplicate operations when retrying failed requests. You pass idempotency keys in using an <code>idempotent</code> directive. Refer to the <a href="https://shopify.dev/docs/api/usage/idempotent-requests" target="_blank" class="body-link">idempotent requests docs</a> for more details. </p>
<p>The following mutations now support the optional <code>idempotent</code> directive:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/refundCreate" target="_blank" class="body-link"><code>refundCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentReceive" target="_blank" class="body-link"><code>inventoryShipmentReceive</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryAdjustQuantities" target="_blank" class="body-link"><code>inventoryAdjustQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryMoveQuantities" target="_blank" class="body-link"><code>inventoryMoveQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetQuantities" target="_blank" class="body-link"><code>inventorySetQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetOnHandQuantities" target="_blank" class="body-link"><code>inventorySetOnHandQuantities</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentCreateInTransit" target="_blank" class="body-link"><code>inventoryShipmentCreateInTransit</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentCreate" target="_blank" class="body-link"><code>inventoryShipmentCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferCreate" target="_blank" class="body-link"><code>inventoryTransferCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferCreateAsReadyToShip" target="_blank" class="body-link"><code>inventoryTransferCreateAsReadyToShip</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferDuplicate" target="_blank" class="body-link"><code>inventoryTransferDuplicate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryTransferSetItems" target="_blank" class="body-link"><code>inventoryTransferSetItems</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorySetScheduledChanges" target="_blank" class="body-link"><code>inventorySetScheduledChanges</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryActivate" target="_blank" class="body-link"><code>inventoryActivate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventoryShipmentAddItems" target="_blank" class="body-link"><code>inventoryShipmentAddItems</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/locationActivate" target="_blank" class="body-link"><code>locationActivate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/locationDeactivate" target="_blank" class="body-link"><code>locationDeactivate</code></a></li>
</ul>
<blockquote>
<p><strong>Note</strong>:
While the <code>idempotent</code> directive is optional for now, we plan to make it mandatory for these mutations in version <code>2026-04</code>.</p>
</blockquote>
<h2>How to use the directive</h2>
<p>An idempotency key is a unique identifier (we recommend using a UUID) that you provide when making a mutation request (generally, you would regenerate this key on page load and after successful operations). If you retry the same request with the same idempotency key due to network issues or timeouts, Shopify will recognize it as a duplicate and ensure the inventory is only adjusted once (or that the refund is only created once), protecting against double-counting. It will return the result of the original operation instead of creating a new one.</p>
<p>Example usage:</p>
<pre><code>  mutation {
    inventoryAdjustQuantities(
      input: {
        reason: &quot;restock&quot;
        name: &quot;available&quot;
        changes: [{
          delta: 5
          inventoryItemId: &quot;gid://shopify/InventoryItem/123&quot;
          locationId: &quot;gid://shopify/Location/456&quot;
        }]
      }
    ) @idempotent(key: &quot;4f5b6ebf-143c-4da5-8d0f-fb8553bfd85d&quot;) {
      inventoryAdjustmentGroup {
        id
      }
      userErrors {
        code
        message
      }
    }
  }
</code></pre>
<h2>Why we made this change</h2>
<p>Idempotency keys are essential for building robust, production-ready integrations. Network failures and timeouts are inevitable, and without idempotency protection, retrying requests could lead to duplicate refunds, incorrect inventory counts, or other data inconsistencies. Making this feature publicly available gives you the tools to handle these scenarios safely.</p>
<h2>Error codes</h2>
<p>If there's an issue with your idempotency key usage, you'll receive one of these error codes:</p>
<ul>
<li><code>IDEMPOTENCY_CONCURRENT_REQUEST</code>: Another request with the same idempotency key is currently being processed.</li>
<li><code>IDEMPOTENCY_KEY_PARAMETER_MISMATCH</code>: The same idempotency key was used with different parameters.</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 21 Nov 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/adding-idempotency-for-inventory-adjustments-and-refund-mutations</link>
  </item>
  <item>
    <title>Tax summary webhook `created_at` field now returns UTC timezone</title>
    <description><![CDATA[ <div class=""><h2>What's new</h2>
<p>The <code>created_at</code> field from <code>tax_summaries/create</code> webhook for tax partners will now return timestamps in UTC format with the <code>Z</code> suffix, including millisecond precision. </p>
<h2>Action required</h2>
<p>Update your parsing logic to handle the new format. The following are examples of the format prior to and after the change:</p>
<p>Versions prior to <code>2026-01</code>:</p>
<pre><code class="language-json">{
  &quot;id&quot;: 14,
  &quot;shop_id&quot;: 1,
  &quot;order_id&quot;: 7,
  &quot;created_at&quot;: &quot;2025-11-19T08:16:53-05:00&quot;,
  &quot;summary&quot;: {
    ...
  }
}
</code></pre>
<p>Versions <code>2026-01</code> and higher.</p>
<pre><code class="language-json">{
  &quot;id&quot;: 14,
  &quot;shop_id&quot;: 1,
  &quot;order_id&quot;: 7,
  &quot;created_at&quot;: &quot;2025-11-19T13:16:53.784Z&quot;,
  &quot;summary&quot;: {
    ...
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Thu, 20 Nov 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Webhook</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/tax-summary-webhook-created-at-field-now-returns-utc-timezone</link>
  </item>
  <item>
    <title>`INVALID_BILLING_ADDRESS`: new processing error for subscription billing attempts</title>
    <description><![CDATA[ <div class=""><p>We've added a new processing error for subscription billing attempts: <a href="https://shopify.dev/docs/api/admin-graphql/latest/interfaces/SubscriptionBillingAttemptProcessingError#possible-types-SubscriptionBillingAttemptGenericError.fields.code.INVALID_BILLING_ADDRESS" target="_blank" class="body-link"><code>INVALID_BILLING_ADDRESS</code></a>.</p>
<p>This error is returned when one or more fields in the billing address contain invalid data. Validated fields include:</p>
<ul>
<li><code>firstName</code> or <code>lastName</code></li>
<li><code>address1</code> or <code>address2</code></li>
<li><code>city</code></li>
<li><code>province</code> or <code>provinceCode</code></li>
<li><code>country</code> or <code>countryCode</code></li>
<li><code>zip</code> (postal code)</li>
<li><code>phone</code></li>
<li><code>company</code></li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 14 Nov 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/subscription-billing-attempt-invalid-billing-address-error</link>
  </item>
  <item>
    <title>Improved compare and swap inventory updates for the `inventorySetQuantities` mutation</title>
    <description><![CDATA[ <div class=""><p>This changelog relates to <a href="https://shopify.dev/changelog/concurrency-protection-features" target="_blank" class="body-link">concurrency protection features</a>.</p>
<p>We've enhanced the compare-and-swap functionality in the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/inventorysetquantities" target="_blank" class="body-link"><code>inventorySetQuantities</code> mutation</a> to make concurrent inventory updates more intuitive. You can now use the new <code>changeFromQuantity</code> field in <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryQuantityInput" target="_blank" class="body-link">InventoryQuantityInput</a> to explicitly choose whether to perform quantity comparison checks.</p>
<p>The use of <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryQuantityInput#fields-compareQuantity" target="_blank" class="body-link"><code>compareQuantity</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventorySetQuantitiesInput#fields-ignoreCompareQuantity" target="_blank" class="body-link"><code>ignoreCompareQuantity</code></a> will be deprecated .</p>
<p>This <code>2026-01</code> change isn't considered breaking because if users don't pass in a value for <code>changeFromQuantity</code>, the mutation will fallback to using the values for <code>compareQuantity</code> and <code>ignoreCompareQuantity</code>.</p>
<h3>How to use the field</h3>
<p>Previously, to bypass comparison checks, you set <code>ignoreCompareQuantity</code> to <code>true</code>.</p>
<p>Now, to bypass comparison checks, you explicitly pass <code>null</code> to the <code>changeFromQuantity</code> field. To enable checks, pass an integer that represents the initial quantity before it is updated to the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/input-objects/InventoryQuantityInput#fields-quantity" target="_blank" class="body-link">desired value</a>.</p>
<p>Passing any value (including <code>null</code>) to <code>changeFromQuantity</code> will override any values passed to the <code>compareQuantity</code> and <code>ignoreCompareQuantity</code> fields. In the following example, the operation will only successfully set the new available quantity to 12 if the current available quantity is 5. If another process has modified the quantity in the meantime, you'll receive an error and can retry with the updated value.</p>
<pre><code>  mutation {
    inventorySetQuantities(
      input: {
      quantities: [
        {
          quantity: 12,
          inventoryItemId: &quot;gid://shopify/InventoryItem/2&quot;,
          locationId: &quot;gid://shopify/Location/1&quot;,
          changeFromQuantity: 5
        }
      ],
      reason: &quot;correction&quot;,
      name: &quot;available&quot;
    }
    ) {
      inventoryAdjustmentGroup {
        id
      }
      userErrors {
        code
        message
      }
    }
  }
</code></pre>
<h3>Deprecating legacy fields</h3>
<p>The <code>compareQuantity</code> and <code>ignoreCompareQuantity</code> fields will be deprecated in version <code>2026-01</code>. We plan to remove them entirely starting from version <code>2026-04</code>.</p>
<p>For more information on compare and swap, and when you should opt out of comparison checks, refer to <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap" target="_blank" class="body-link">our docs</a>. We encourage users to avoid opting-out unless it's justified by their use-case.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Nov 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/compare-and-swap-redesign-for-inventory-set-quantities</link>
  </item>
  <item>
    <title>New Google Cloud Run deployment tutorial released</title>
    <description><![CDATA[ <div class=""><p>We're excited to introduce a new <a href="https://shopify.dev/docs/apps/launch/deployment/deploy-to-google-cloud-run" target="_blank" class="body-link">deployment tutorial for Google Cloud Run</a>.</p>
<p>After scaffolding a Shopify app through the CLI and building out functionality in a local development store, what's next? </p>
<p>Deployment!</p>
<p>This tutorial guides you through the complete process of deploying your production Shopify apps, using Google Cloud Run as the target. You'll configure a project with the necessary permissions for continuous deployment, you'll set up a production database for persistent storage, and configure load balancing for multiple instances of your app across multiple regions.</p>
<p>Take a look and share your thoughts (including how you deploy your apps differently) on the <a href="https://community.shopify.dev/" target="_blank" class="body-link">Shopify community forum</a>!</p>
</div> ]]></description>
    <pubDate>Thu, 13 Nov 2025 17:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-google-cloud-run-deployment-tutorial-released</link>
  </item>
  <item>
    <title>Shopify Dev MCP now supports POS UI extensions</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/apps/build/devmcp" target="_blank" class="body-link">Shopify Dev MCP server</a> now includes support for code generation for <a href="https://shopify.dev/docs/api/pos-ui-extensions/latest" target="_blank" class="body-link">POS (Point of Sale) UI extensions</a>.</p>
<p>With this update, you can use the Shopify Dev MCP as a virtual pair programmer within your preferred IDE. This enhancement allows you to:</p>
<ul>
<li>Generate code snippets efficiently</li>
<li>Explore API capabilities seamlessly</li>
<li>Accelerate your development process across the Shopify platform</li>
</ul>
<h2>Get Started</h2>
<p>If you're already using the Shopify Dev MCP server, support for POS UI extensions is automatically included in the latest version. If not, follow these steps to get started:</p>
<ol>
<li><a href="https://shopify.dev/docs/apps/build/devmcp#set-up-the-server" target="_blank" class="body-link">Configure the Shopify Dev MCP server</a> to integrate it with your development environment.</li>
<li>Unlock the new capabilities by ensuring your setup is up-to-date.</li>
</ol>
<p>By following these steps, you can take full advantage of the new features and enhance your development workflow.</p>
</div> ]]></description>
    <pubDate>Wed, 12 Nov 2025 18:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/dev-mcp-now-supports-pos-ui-extensions</link>
  </item>
  <item>
    <title>Protected customer data scopes required for web pixel PII access starting on December 10th</title>
    <description><![CDATA[ <div class=""><p>We will be enforcing Shopify's protected customer data policy for all web pixel extensions starting on December 10th, 2025. Customer personally identifiable information (PII)—including name, email, phone, and address fields—will only be present in web pixel payloads when the app has been approved for the corresponding protected scopes.</p>
<h2>What’s changing</h2>
<ul>
<li>Web pixel payloads will be filtered at runtime based on the app’s approved access scopes.</li>
<li>If your app is not approved for a given scope, the corresponding fields in the pixel event will be set to null. Event data structure remains stable.</li>
<li>Enforcement applies on all web pixel surfaces: storefront, checkout, and customer accounts.</li>
<li>Custom pixels are out of scope for this change.</li>
</ul>
<h2>Protected scopes enforced</h2>
<ul>
<li>read_customer_name</li>
<li>read_customer_email</li>
<li>read_customer_phone</li>
<li>read_customer_address</li>
<li>read_customer_personal_data</li>
</ul>
<h2>Example</h2>
<pre><code>{
  &quot;event&quot;: &quot;checkout_completed&quot;,
  &quot;customer&quot;: {
    &quot;email&quot;: null,           // null if not approved for read_customer_email
    &quot;first_name&quot;: null,      // null if not approved for read_customer_name
    &quot;phone&quot;: null            // null if not approved for read_customer_phone
  },
  &quot;shipping_address&quot;: {
     &quot;first_name&quot;: null,	// null if not approved for read_customer_name
     &quot;address_1&quot;: null, 	// null if not approved for read_customer_address
     &quot;address_2&quot;: null, 	// null if not approved for read_customer_address
     &quot;zip&quot;: null,      	// null if not approved for read_customer_address
     &quot;phone&quot;: null            // null if not approved for read_customer_phone
     [other address fields exempt]
  }
}
</code></pre>
<p>Non-PII data events will continue to fire normally. Your analytics, conversion tracking, and non-PII use cases will not be affected.</p>
<h2>What you need to do</h2>
<ul>
<li><strong>Review and request access.</strong> Ensure you have approval for the protected scopes you require. See <a href="https://shopify.dev/docs/apps/launch/protected-customer-data" target="_blank" class="body-link">Protected Customer Data Policy</a>. You should only request the scopes your app uses.</li>
<li><strong>Update your code paths.</strong> Handle null for gated fields without breaking event handling or analytics pipelines.</li>
<li><strong>Test across surfaces.</strong> Verify behavior on storefront, checkout, and customer accounts. No downtime is expected.</li>
</ul>
<p>This change will take effect starting on December 10th, 2025. We recommend submitting your request for protected customer data review as soon as possible if you need to maintain access to these values. </p>
<p>No action is needed if your app is already approved for protected customer data, or is resilient to null values. If you have questions about this change, please comment on this post in the Developer Community forums.</p>
</div> ]]></description>
    <pubDate>Mon, 10 Nov 2025 15:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/protected-customer-data-scopes-required</link>
  </item>
  <item>
    <title>Tax webhook summary and calculation requests now use Global IDs</title>
    <description><![CDATA[ <div class=""><p>Starting with API version 2026-01, third-party tax apps will receive <a href="https://shopify.dev/docs/api/usage/gids" target="_blank" class="body-link">Global IDs (GIDs)</a> in tax calculation requests and tax summary webhook payloads for all entity references of the summary section. This aligns with how Partners interact with other Shopify APIs.</p>
<p>These apps can now use the same identifiers across all Shopify endpoints without managing different ID formats for tax-specific integrations. </p>
<h2>What's changed</h2>
<p>This change affects two key integration points:</p>
<p><strong>Tax calculation requests:</strong></p>
<ul>
<li><code>Customer</code>, <code>Company</code>, <code>CompanyLocation</code>, <code>Product</code>, and <code>ProductVariant</code> IDs now use the GID format.</li>
</ul>
<p><strong>Tax summary webhooks:</strong></p>
<ul>
<li>All entity IDs within the summary section (<a href="https://shopify.dev/docs/api/storefront/latest/objects/Order" target="_blank" class="body-link"><code>Order</code></a>, <a href="https://shopify.dev/docs/api/customer/latest/objects/Customer" target="_blank" class="body-link"><code>Customer</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Product" target="_blank" class="body-link"><code>Product</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant" target="_blank" class="body-link"><code>ProductVariant</code></a>, <code>SalesAgreement</code>, <code>Sale</code>, <a href="https://shopify.dev/docs/api/customer/latest/objects/LineItem" target="_blank" class="body-link"><code>LineItem</code></a>, <a href="https://shopify.dev/docs/api/customer/latest/objects/Company" target="_blank" class="body-link"><code>Company</code></a>, <a href="https://shopify.dev/docs/api/customer/latest/objects/CompanyLocation" target="_blank" class="body-link"><code>CompanyLocation</code></a> <a href="https://shopify.dev/docs/api/customer/latest/objects/ShippingLine" target="_blank" class="body-link"><code>ShippingLine</code></a>, and <a href="https://shopify.dev/docs/api/customer/latest/objects/TaxLine" target="_blank" class="body-link"><code>TaxLine</code></a>) now use the GID format.</li>
<li>The webhook payload also includes new <code>admin_graphql_api_id</code> fields at the top level for <code>TaxSummary</code>, <code>Shop</code>, and <code>Order</code> entities.</li>
</ul>
<p>Changes include:</p>
<ul>
<li><strong>Top Level:</strong> Adds <code>shop_admin_graphql_api_id</code> and <code>order_admin_graphql_api_id</code> fields (existing <code>shop_id</code> and <code>order_id</code> remain as integers).</li>
<li><strong>Customer IDs:</strong> Changes from <code>&quot;id&quot;: &quot;5&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/Customer/5&quot;</code>.</li>
<li><strong>Product IDs:</strong> Changes from <code>&quot;id&quot;: &quot;1&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/Product/1&quot;</code>.</li>
<li><strong>Product Variant IDs:</strong> Changes from <code>&quot;id&quot;: &quot;1&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/ProductVariant/1&quot;</code>.</li>
<li><strong>Line Item IDs:</strong> Changes from <code>&quot;line_item_id&quot;: &quot;5&quot;</code> to <code>&quot;line_item_id&quot;: &quot;gid://shopify/LineItem/5&quot;</code>.</li>
<li><strong>Sale IDs:</strong> Changes from <code>&quot;id&quot;: &quot;9&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/Sale/9&quot;</code>.</li>
<li><strong>Agreement IDs:</strong> Changes from <code>&quot;id&quot;: &quot;6&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/Agreement/6&quot;</code>.</li>
<li><strong>Company IDs:</strong> Changes from <code>&quot;id&quot;: &quot;3&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/Company/3&quot;</code>.</li>
<li><strong>Company Location IDs:</strong> Changes from <code>&quot;id&quot;: &quot;4&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/CompanyLocation/4&quot;</code>.</li>
<li><strong>Shipping Line IDs:</strong> Changes from <code>&quot;id&quot;: &quot;4&quot;</code> to <code>&quot;id&quot;: &quot;gid://shopify/ShippingLine/4&quot;</code>.</li>
<li><strong>Tax Line IDs:</strong> Changes from <code>&quot;id&quot;: 6</code> to <code>&quot;id&quot;: &quot;gid://shopify/TaxLine/6&quot;</code>.</li>
</ul>
<h2>What you need to do</h2>
<p>Update your integrations to handle the GID format when processing tax calculations and webhook payloads in API version 2026-01 and later. The following are some examples:</p>
<h3>Tax calculation request</h3>
<p><strong>Before (2025-10 and earlier):</strong> </p>
<pre><code class="language-json">{
  &quot;cart&quot;: {
    &quot;buyer_identity&quot;: {
      &quot;customer&quot;: {
        &quot;id&quot;: &quot;593934299&quot;
      }
    }
  }
}
</code></pre>
<p><strong>After (2026-01):</strong></p>
<pre><code class="language-json">{
  &quot;cart&quot;: {
    &quot;buyer_identity&quot;: {
      &quot;customer&quot;: {
        &quot;id&quot;: &quot;gid://shopify/Customer/593934299&quot;
      }
    }
  }
}
</code></pre>
<h3>Tax summary webhook</h3>
<p><strong>Before (2025-10 and earlier):</strong></p>
<pre><code class="language-json">{
  &quot;id&quot;: 80,
  &quot;shop_id&quot;: 1,
  &quot;order_id&quot;: 64,
  &quot;summary&quot;: {
    &quot;agreements&quot;: [{
      &quot;id&quot;: &quot;82&quot;,
      &quot;sales&quot;: [{
        &quot;id&quot;: &quot;106&quot;,
        &quot;line_item_id&quot;: &quot;76&quot;
      }]
    }]
  }
}
</code></pre>
<p><strong>After (2026-01):</strong></p>
<pre><code class="language-json">{
  &quot;id&quot;: 80,
  &quot;admin_graphql_api_id&quot;: &quot;gid://shopify/TaxSummary/80&quot;,
  &quot;shop_id&quot;: 1,
  &quot;shop_admin_graphql_api_id&quot;: &quot;gid://shopify/Shop/1&quot;,
  &quot;order_id&quot;: 64,
  &quot;order_admin_graphql_api_id&quot;: &quot;gid://shopify/Order/64&quot;,
  &quot;summary&quot;: {
    &quot;agreements&quot;: [{
      &quot;id&quot;: &quot;gid://shopify/SalesAgreement/82&quot;,
      &quot;sales&quot;: [{
        &quot;id&quot;: &quot;gid://shopify/Sale/106&quot;,
        &quot;line_item_id&quot;: &quot;gid://shopify/LineItem/76&quot;
      }]
    }]
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 07 Nov 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/tax-webhook-summary-and-calculation-requests-now-use-global-ids</link>
  </item>
  <item>
    <title>Carrier Service API now includes order totals and customer tags</title>
    <description><![CDATA[ <div class=""><p>The Carrier Service API callback payload now includes order totals and customer tags. This enhancement enables more effective shipping rate calculations by taking into account the order value and customer segments.</p>
<p><strong>New Payload Fields:</strong></p>
<ul>
<li><code>order_totals</code><ul>
<li><code>subtotal_price</code>: The total price of all items in the cart before discounts.</li>
<li><code>total_price</code>: The final price after discounts and taxes.</li>
<li><code>discount_amount</code>: The total discounts applied to the order.</li>
</ul>
</li>
<li><code>customer</code><ul>
<li><code>id</code>: The unique identifier for the customer.</li>
<li><code>tags</code>: Labels associated with the customer, useful for segmentation.</li>
</ul>
</li>
</ul>
<p><strong>Important:</strong> The <code>subtotal_price</code> might be higher than the sum of the items in the <code>items</code> array, as this array only includes physical items that require shipping.</p>
<p>These new fields are automatically included in all callback requests, allowing you to customize shipping rates using detailed order and customer information. For implementation details, refer to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/carrierservice" target="_blank" class="body-link">Carrier Service API documentation</a>.</p>
<p>Update your shipping rate calculations to leverage these new fields for a more personalized shipping experience.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Nov 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/carrier-service-api-now-includes-order-totals-and-customer-tags</link>
  </item>
  <item>
    <title>tax_summaries/create webhook and taxSummaryCreate mutation now available</title>
    <description><![CDATA[ <div class=""><p>As of the 2026-01 API version, the <code>tax_summaries/create</code> webhook and <code>taxSummaryCreate</code> mutation are available for Tax Partner Apps.</p>
<h2>What's New</h2>
<p>The <code>taxSummaryCreate</code> mutation enables apps to request the generation of tax summaries for orders. The <code>tax_summaries/create</code> webhook is triggered by events that may affect tax liability, such as fulfillments and refunds.</p>
<h3>Using the Mutation</h3>
<p>The mutation accepts either a specific order ID or a time range for bulk processing:</p>
<pre><code class="language-graphql">mutation {
  taxSummaryCreate(orderId: &quot;gid://shopify/Order/123456789&quot;) {
    enqueuedOrders {
      id
    }
    userErrors {
      field
      message
    }
  }
}
</code></pre>
<h3>Webhook Payload</h3>
<p>The <code>tax_summaries/create</code> webhook provides comprehensive tax data, including:</p>
<ul>
<li>Sales agreements and associated sales details</li>
<li>Delivery groups with fulfillment information</li>
<li>Tax exemption details</li>
<li>Return sales types for refund workflows</li>
<li>Order context and financial status</li>
</ul>
<h3>Requirements</h3>
<ul>
<li><strong>Access Scope:</strong> <code>write_taxes</code></li>
<li><strong>Tax Platform Access:</strong> Tax Platform features</li>
</ul>
<h2>Learn More</h2>
<p>For information about the Tax Platform and partnership opportunities, see <a href="https://shopify.dev/docs/apps/build/tax" target="_blank" class="body-link">Building tax apps</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Nov 2025 08:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/taxsummariescreate-webhook-and-taxsummarycreate-mutation-now-available</link>
  </item>
  <item>
    <title>Order Update Phone Field Public</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2026-01, the <code>phone</code> field is now publicly available in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderUpdate" target="_blank" class="body-link">orderUpdate</a> mutation's <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/OrderInput" target="_blank" class="body-link">OrderInput</a>. This field allows developers to update the customer phone number for an order, overwriting the existing phone number.</p>
<p>This change brings parity with the REST API, which already supports updating the phone field through the <a href="https://shopify.dev/docs/api/admin-rest/latest/resources/order#put-orders-order-id" target="_blank" class="body-link">Order resource</a>. The phone field is particularly useful for maintaining accurate customer contact information, especially for SMS notifications and order-related communications.</p>
<p>For implementation details, refer to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderUpdate" target="_blank" class="body-link">orderUpdate mutation documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Nov 2025 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/order-update-phone-field-public</link>
  </item>
  <item>
    <title>Storefront API now returns errors when adding a gift card to a cart with missing or invalid recipient details</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2026-01</code>, the Storefront API returns a <code>GIFT_CARD_RECIPIENT_INVALID</code> error when adding a gift card to a cart with missing or invalid recipient details, such as in <a href="https://shopify.dev/docs/storefronts/themes/product-merchandising/gift-cards#create-a-form-to-collect-recipient-information" target="_blank" class="body-link">this example</a>.</p>
<p>Previously, when adding a gift card to a cart using either the <code>cartCreate</code> or <code>cartLinesAdd</code> mutations, an empty cart and empty <code>userErrors</code> would be returned if any of the recipient details were invalid, such as a missing email address. With this change a <code>GIFT_CARD_RECIPIENT_INVALID</code> error is returned for both <a href="https://shopify.dev/docs/api/storefront/2026-01/mutations/cartcreate#returns-userErrors.fields.code.GIFT_CARD_RECIPIENT_INVALID" target="_blank" class="body-link"><code>cartCreate</code></a> or <a href="https://shopify.dev/docs/api/storefront/2026-01/mutations/cartlinesadd#returns-userErrors.fields.code.GIFT_CARD_RECIPIENT_INVALID" target="_blank" class="body-link"><code>cartLinesAdd</code></a> mutations, so that you can use the information to surface gift card recipient errors back to the client.</p>
</div> ]]></description>
    <pubDate>Fri, 31 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/storefront-api-now-returns-errors-when-adding-a-gift-card-to-a-cart-with-missing-or-invalid-recipient-details</link>
  </item>
  <item>
    <title>New Queries for Bulk Operations</title>
    <description><![CDATA[ <div class=""><p>We've introduced new GraphQL queries to help you retrieve and manage bulk operations in the Admin API.</p>
<h2>What's Changed</h2>
<p>Here's an overview of the updates:</p>
<h3>New Bulk Operations Retrieval Queries</h3>
<p>We have added two new queries for accessing your bulk operations:</p>
<ul>
<li><code>bulkOperations</code>: A connection-based query that returns a paginated list of all your bulk operations, complete with filtering and sorting options.</li>
<li><code>bulkOperation</code>: A single-object query that retrieves a specific bulk operation by its ID.</li>
</ul>
<h3>Enhanced Filtering and Search Capabilities</h3>
<p>The <code>bulkOperations</code> connection now supports flexible querying with the following features:</p>
<ul>
<li><strong>Status Filtering:</strong> Locate operations by status (e.g., canceled, completed, running).</li>
<li><strong>Type Filtering:</strong> Filter operations by type (query or mutation).</li>
<li><strong>Date Filtering:</strong> Search for operations created before or after a specific date.</li>
<li><strong>Sorting Options:</strong> Sort operations by <code>created_at</code>, <code>completed_at</code>, or <code>status</code> in ascending or descending order.</li>
<li><strong>Search Syntax:</strong> Use <code>field:value</code> patterns for precise filtering.</li>
</ul>
<h2>What You Need to Do</h2>
<p>Depending on your requirements, follow these steps:</p>
<h3>To List and Filter Bulk Operations</h3>
<p>Utilize the <code>bulkOperations</code> connection query with search syntax:</p>
<pre><code class="language-graphql">query {
  bulkOperations(
    first: 10
    query: &quot;status:completed operation_type:query created_at:&gt;2025-10-10&quot;
    sortKey: CREATED_AT
    reverse: true
  ) {
    edges {
      node {
        id
        status
        query
        createdAt
        completedAt
        url
      }
    }
    pageInfo {
      hasNextPage
      hasPreviousPage
    }
  }
}
</code></pre>
<h3>To Retrieve a Specific Bulk Operation</h3>
<p>Use the <code>bulkOperation</code> query:</p>
<pre><code class="language-graphql">query {
  bulkOperation(id: &quot;gid://shopify/BulkOperation/123456789&quot;) {
    id
    status
    query
    createdAt
    completedAt
    url
    errorCode
  }
}
</code></pre>
<h3>If You're Using Existing Bulk Operation Workflows</h3>
<p>No changes are necessary. The <code>currentBulkOperation</code> can still be used but is being deprecated.</p>
<h2>Why We Made This Change</h2>
<p>Previously, you could only access the most recent bulk operation through <code>currentBulkOperation</code>. These new queries offer:</p>
<ul>
<li>Complete visibility into all your bulk operations, not just the current one.</li>
<li>Enhanced debugging capabilities by filtering operations by status or date.</li>
<li>Efficient pagination for managing large numbers of operations.</li>
<li>Simplified monitoring, debugging, and management of bulk operations at scale.</li>
</ul>
<h2>Learn More</h2>
<ul>
<li><a href="https://shopify.dev/api/usage/bulk-operations/queries" target="_blank" class="body-link">Bulk Operations Queries Guide</a></li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 30 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/new-queries-for-bulk-operations</link>
  </item>
  <item>
    <title>Optional location inputs for inventory transfers</title>
    <description><![CDATA[ <div class=""><p>You can now create inventory transfers without specifying an origin or destination location. </p>
<p>Previously, the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/inventorytransfercreateasreadytoship" target="_blank" class="body-link"><code>InventoryTransferCreateAsReadyToShip</code></a> mutation required both origin and destination location IDs. </p>
<p>Now, these inputs are optional. This change supports workflows where the transfer's origin or destination is unknown at creation time.</p>
<blockquote>
<p>Note:
You must provide at least one of origin or location as input to validate the mutation.</p>
</blockquote>
<p>Example:</p>
<pre><code class="language-graphql">mutation OmitOriginExample {
  inventoryTransferCreateAsReadyToShip(
    input: {
      lineItems: [
        { inventoryItemId: &quot;gid://shopify/InventoryItem/...&quot;, quantity: 5 }
      ]
      originLocationId: null,
      destinationLocationId: &quot;gid://shopify/Location/...&quot;,
    }
  ) {
    inventoryTransfer {
      id
      status
      origin { name }
      destination { name }
    }
  }
}
</code></pre>
<h2>What you need to do</h2>
<p>Nothing.</p>
<p>This isn't a breaking change. No action is required. Existing apps that provide IDs for inventory transfer origins or destinations will continue to function correctly. If your app previously required these fields, then you can update your validation logic to treat them as optional.</p>
</div> ]]></description>
    <pubDate>Mon, 27 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/optional-location-inputs-for-inventory-transfers</link>
  </item>
  <item>
    <title>Built for Shopify apps get priority visibility across the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Built for Shopify (BFS) apps are now featured more prominently across key App Store surfaces, helping merchants discover them faster.</p>
<p><strong>What's new:</strong></p>
<ul>
<li><strong>Homepage spotlight:</strong> BFS now appears in the featured header section of the <a href="https://apps.shopify.com" target="_blank" class="body-link">App Store homepage</a>, giving certified apps maximum exposure to browsing merchants.</li>
<li><strong>Priority recommendations:</strong> BFS apps receive preferential positioning on some category pages.</li>
<li><strong>Interactive BFS badge:</strong> All BFS badges across the App Store are now clickable to provide merchant education on BFS standards.</li>
</ul>
<p>These enhancements work alongside existing <a href="https://shopify.dev/docs/apps/launch/built-for-shopify" target="_blank" class="body-link">Built for Shopify benefits</a> including ranking boosts and the BFS search filter, making Built for Shopify the most effective way to maximize your app’s visibility and discovery potential in the App Store. </p>
</div> ]]></description>
    <pubDate>Mon, 27 Oct 2025 15:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/built-for-shopify-apps-get-priority-visibility-across-the-shopify-app-store</link>
  </item>
  <item>
    <title>The `cartDiscountCodeUpdate` mutation now requires the `discountCodes` field</title>
    <description><![CDATA[ <div class=""><p>As part of the <a href="https://shopify.dev/docs/api/storefront/2026-01/mutations/cartdiscountcodesupdate" target="_blank" class="body-link">GraphQL Storefront API 2026-01 release</a>, the <code>cartDiscountCodesUpdate</code> mutation now requires the <code>discountCodes</code> agrument to be included. Previously, the <code>cartDiscountCodesUpdate</code> mutation would accept a mutation with no <code>discountCodes</code> argument, which would not actually modify the cart in any way.</p>
<p>For more information about the <code>Cart</code> object and its related mutations, visit <a href="https://shopify.dev/api/storefront/unstable/objects/Cart" target="_blank" class="body-link">Shopify.dev</a>. </p>
</div> ]]></description>
    <pubDate>Mon, 27 Oct 2025 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/the-cartdiscountcodeupdate-mutation-now-requires-the-discountcodes-field</link>
  </item>
  <item>
    <title>New ACH support for deferred payments</title>
    <description><![CDATA[ <div class=""><p>The 2026-01 Admin GraphQL API introduces support for ACH payment methods, enabling merchants to accept and manage bank account-based payments through Shopify Payments. This means new types of <a href="https://shopify.dev/docs/api/admin-graphql/latest/unions/paymentinstrument" target="_blank" class="body-link">PaymentInstrument</a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/unions/CustomerPaymentInstrument" target="_blank" class="body-link">CustomerPaymentInstrument</a> are now available for B2B company locations, supporting payment terms and draft orders. If your integration manages the payment lifecycle of those ways to sell, consider upgrading. If you are not on the latest version of the API, you will not find these available payment methods.</p>
<p><strong>New Objects:</strong></p>
<ul>
<li><code>BankAccount</code> - Represents a bank account payment instrument</li>
</ul>
<p><strong>Updated Types:</strong></p>
<ul>
<li><code>PaymentInstrument</code> union - Now includes <code>BankAccount</code></li>
<li><code>CustomerPaymentInstrument</code> union - Now includes <code>BankAccount</code></li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 24 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/new-ach-support-for-deferred-payments</link>
  </item>
  <item>
    <title>New `notify` parameter available on the `storeCreditAccountCredit` mutation</title>
    <description><![CDATA[ <div class=""><p>The <code>storeCreditAccountCredit</code> mutation now includes an optional <code>notify</code> parameter.</p>
<ul>
<li><p>When this parameter is set to <code>true</code>, the account owner will receive a &quot;store credit issued&quot; email notification. If the parameter is not provided, no email will be sent. To enable email notifications, you must explicitly set this flag to <code>true</code>.</p>
</li>
<li><p>For store credit accounts owned by a <code>Customer</code>, the email will be sent to the customer's <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/customer#field-Customer.fields.defaultEmailAddress" target="_blank" class="body-link">default email address</a>.</p>
</li>
<li><p>For store credit accounts owned by a <code>CompanyLocation</code>, each customer associated as a <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact" target="_blank" class="body-link">CompanyContact</a> for that company location will receive an email at their respective <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/customer#field-Customer.fields.defaultEmailAddress" target="_blank" class="body-link">default email address</a>.</p>
</li>
</ul>
<p>For more details refer to the <code>storeCreditAccountCredit</code> mutation in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/storecreditaccountcredit" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 23 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/store-credit-notify-flag</link>
  </item>
  <item>
    <title>Updated online store promotion app store requirement</title>
    <description><![CDATA[ <div class=""><p>Effective Wednesday, November 5th, 2025, the following requirement for the online store has been revised:</p>
<ul>
<li><p>Your app must not use theme app extensions or blocks to promote your app, promote related apps, or request reviews.</p>
</li>
<li><p>App Name Branding in theme extensions is now permitted only under specific conditions: when customers directly interact with branded elements as a key aspect of their buying experience, or when removing these elements would cause confusion or harm to customers. In all other cases, the standard attribution pattern must be used.</p>
</li>
<li><p>Your app may use App Name Branding in theme extensions only if one or both of the following criteria are met:</p>
<ul>
<li>Customers directly interact with the custom branding elements as a key aspect of their buying experience, such as part of a payment method or loyalty program.</li>
<li>Removing the custom branding elements would cause confusion or harm to customers.</li>
</ul>
</li>
</ul>
<p>App Name Branding includes:</p>
<ul>
<li>Company or app logos, icons, branded watermarks, visual identifiers, or other branded imagery.</li>
<li>Company or app name displayed as text in any form, including plain text, branded fonts, or stylized lettering.</li>
<li>Custom design elements containing the name or logo of the company or app.</li>
</ul>
<p>Standard app attribution: If your app does not meet the criteria above for App Name Branding, you must use the standard app attribution pattern. This pattern is limited to a 24x24 pixel width and height for any image or text.</p>
<p>Regardless of branding, all apps must not:</p>
<ul>
<li>Request app reviews or ratings</li>
<li>Promote other apps or services</li>
</ul>
<p>You can find this revised requirement in <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#a-online-store" target="_blank" class="body-link">the online store section of the checklist of requirements page</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Oct 2025 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-online-store-promotion-app-store-requirement</link>
  </item>
  <item>
    <title>POS UI extensions: Developer experience Improvements</title>
    <description><![CDATA[ <div class=""><p>We’ve released a major update to POS UI extensions, aimed at reducing friction and speeding up your workflow. </p>
<p>Key improvements include:</p>
<ul>
<li><strong>Hot reloading improvements:</strong> We've made hot reloading faster and smoother. Code changes appear on your POS test device instantly without flickering. This update also supports reloading entire navigation screens, so you no longer need to exit and re-enter a screen to see your changes.  </li>
<li><strong>POS dev console:</strong> When you scan your deeplink, you are immediately directed to the POS dev console where you view your app and extension information. The console offers easy access to targets and configurations, centralizing everything you need to efficiently build your extension.  </li>
<li><strong>Quick target previews:</strong> With the new &quot;Preview&quot; feature in the dev console, you can instantly jump to the correct screen in the POS app where your extension is rendered.  </li>
<li><strong>Build error reporting:</strong> If your extension code triggers an error, you’ll now see an error UI directly on the POS device. Tapping the broken component opens the dev console with information about the extension and the error.  </li>
<li><strong>App persistence:</strong> You can configure your extension to automatically reconnect after a POS restart, removing the need to deep link repeatedly.  </li>
<li><strong>In-app reset:</strong> You can remove your extension without restarting the POS or your dev server, making it easy to test new deep links quickly.</li>
</ul>
<p>Ready to get started? All you need is POS v10.13+ and Shopify CLI v3.85+. Find everything you need in our <a href="https://shopify.dev/docs/api/pos-ui-extensions/latest/getting-started#step-4-leverage-developer-tools-to-troubleshoot-and-refine" target="_blank" class="body-link">documentation</a>.</p>
<p>We're excited to hear how this improves your workflow! Let us know what you think in our <a href="https://community.shopify.dev/tag/pos-extensions" target="_blank" class="body-link">developer community</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-developer-experience-improvements</link>
  </item>
  <item>
    <title>Increased limits in metafield and metaobject definitions</title>
    <description><![CDATA[ <div class=""><p>We've increased the limits for metafield and metaobject definitions, providing you with more flexibility when building custom data structures for your apps and stores.</p>
<ul>
<li><strong>For app developers</strong>: Each app has its own allocation, so apps aren't competing with each other for definition space.</li>
<li><strong>For merchants</strong>: Higher limits support complex workflows across multiple apps and meet custom data needs.</li>
<li><strong>For metaobject entries</strong>: The 1,000,000 entry limit per definition removes previous plan-based restrictions of 64,000 (non-Plus) and 128,000 (Plus).</li>
</ul>
<p>With these new limits, you can:</p>
<ul>
<li>Create more granular data structures in your apps.</li>
<li>Support larger catalogs and content libraries.</li>
<li>Build apps with richer metadata without worrying about hitting limits.</li>
</ul>
<h2>Changes to metaobject definitions</h2>
<p><strong>App definitions</strong></p>
<ul>
<li>Each app installed on a shop can create up to 256 metaobject definitions</li>
</ul>
<p><strong>Merchant definitions</strong></p>
<ul>
<li>128 definitions for Basic, Shopify, and Advanced plans</li>
<li>256 definitions for Plus and Enterprise plans</li>
</ul>
<p><strong>Metaobject entries</strong></p>
<ul>
<li>Up to 1,000,000 entries per definition</li>
</ul>
<h2>Changes to metafield definitions</h2>
<p><strong>App definitions</strong></p>
<ul>
<li>Each app can create up to 256 definitions per resource type</li>
</ul>
<p><strong>Merchant definitions</strong></p>
<ul>
<li>256 definitions per resource type</li>
</ul>
<blockquote>
<p>Note: Standard metaobject and metafield definitions do not count towards these limits.</p>
</blockquote>
<h2>Learn more</h2>
<ul>
<li><a href="https://shopify.dev/docs/apps/build/custom-data/metaobjects/metaobject-limits" target="_blank" class="body-link">Metaobject limits</a></li>
<li><a href="https://shopify.dev/docs/apps/build/custom-data/metafields/metafield-limits" target="_blank" class="body-link">Metafield limits</a></li>
<li><a href="https://shopify.dev/docs/apps/build/custom-data/metaobjects" target="_blank" class="body-link">Metaobjects overview</a></li>
<li><a href="https://shopify.dev/docs/apps/build/custom-data/metafields" target="_blank" class="body-link">Metafields overview</a></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 20 Oct 2025 16:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/increased-limits-for-metafields-and-metaobjects</link>
  </item>
  <item>
    <title>Improved concurrency handling in the Cart AJAX API and Storefront Cart GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of October 10, 2025, the  Cart AJAX API and Storefront Cart GQL API now processes simultaneous requests. For example, when sending two cart <code>add</code> requests at the same time, the Cart AJAX API executes both requests. </p>
<p>Previously, the Cart AJAX and GraphQL APIs were inconsistent in handling concurrent requests. This sometimes resulted in requests being dropped.</p>
<p>This is considered a bug fix for both APIs, but may require updates if the theme or storefront is unintentionally sending duplicate requests.</p>
<p><strong>Note</strong>: If too many simultaneous requests are receieved, the Cart AJAX API will instead return an HTTP 409 response, while the Storefront Cart GraphQL API will return an error with code &quot;CONFLICT&quot; and message &quot;Could not complete cart operation. The cart conflicted with another request&quot;. </p>
</div> ]]></description>
    <pubDate>Sat, 18 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/improved-concurrency-handling-in-the-cart-ajax-api-and-storefront-cart-graphql-api</link>
  </item>
  <item>
    <title>Support metafield and metaobject standards in Declarative Custom Data Definitions </title>
    <description><![CDATA[ <div class=""><p>We now support enabling and referencing standard metafield and metaobject definitions through an app’s TOML file. Key benefits include:</p>
<ul>
<li>Standard metafield and metaobject definitions can be enabled through TOML, and managed through the <a href="https://shopify.dev/docs/apps/build/cli-for-apps/test-apps-locally" target="_blank" class="body-link">app dev</a> or <a href="https://shopify.dev/docs/apps/launch/deployment/deploy-app-versions" target="_blank" class="body-link">app deploy</a> command.</li>
<li>Shopify automatically distributes these definitions to multiple shops simultaneously, significantly speeding up migration processes.</li>
<li>Updates are atomic, ensuring that all stores consistently maintain the same version of your definitions.</li>
</ul>
<p>For more information, see the <a href="https://shopify.dev/docs/apps/build/custom-data" target="_blank" class="body-link">custom data documentation</a> on shopify.dev.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Oct 2025 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/support-metafield-and-metaobject-standards-in-declarative-custom-data-definitions</link>
  </item>
  <item>
    <title>The product variant limit is now 2048 for all merchants</title>
    <description><![CDATA[ <div class=""><p>It is now possible for all Shopify merchants to create products with up to 2,048 variants in Shopify, exceeding our historical variant limit of 100.</p>
<p>Please note that merchants using apps that are not using the in-support GraphQL product APIs may have a downgraded or broken experience when creating or viewing products with more than 100 variants. </p>
<p>Learn more about 2048 variants, including information on migrating from REST product APIs to the in-support GraphQL product APIs, in our <a href="https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model" target="_blank" class="body-link">developer docs</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Oct 2025 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin REST API</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/the-product-variant-limit-is-now-2048-for-all-merchants</link>
  </item>
  <item>
    <title>Introducing the Shop Minis SDK (early access)</title>
    <description><![CDATA[ <div class=""><p>Shop Minis offer immersive, full-screen buyer experiences within the Shop app. These experiences are built using familiar web technologies, leveraging our React SDK to streamline development. The Shop Minis SDK is now available for early access, enabling you to build and launch your Minis quickly and efficiently.</p>
<p>To create a new Mini, run the following command in your terminal. This will set up a new project with the latest version of the Shop Minis SDK:</p>
<p><code>npm init @shopify/shop-mini@latest</code></p>
<p>For more information on the SDK and available development commands, visit our documentation: <a href="https://shopify.dev/docs/api/shop-minis" target="_blank" class="body-link">Shop Minis API Documentation</a></p>
</div> ]]></description>
    <pubDate>Tue, 14 Oct 2025 19:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-shop-minis-sdk-early-access</link>
  </item>
  <item>
    <title>Subscription Selling Plan support with POS UI Extensions</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/docs/api/pos-ui-extensions/2025-10-rc" target="_blank" class="body-link">POS UI Extensions 2025-10</a> introduces API updates for subscription selling plans support within Shopify POS.</p>
<h3>New Cart API Methods</h3>
<h4>Adding Selling Plans</h4>
<p>To add a selling plan to a line item in the cart, use the following method:</p>
<pre><code class="language-ts">shopify.cart.addLineItemSellingPlan({
  lineItemUuid: 'line-item-uuid',
  sellingPlanId: 123456,
  sellingPlanName: 'Monthly Subscription - 10% off'
});
</code></pre>
<h4>Removing Selling Plans</h4>
<p>To remove a selling plan from a line item, use this method:</p>
<pre><code class="language-ts">shopify.cart.removeLineItemSellingPlan('line-item-uuid');
</code></pre>
<h4>API References</h4>
<p>For detailed information on these methods, refer to the following documentation:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/pos-ui-extensions/2025-10-rc/apis/cart-api#cartapi-propertydetail-addlineitemsellingplan" target="_blank" class="body-link">addLineItemSellingPlan</a></li>
<li><a href="https://shopify.dev/docs/api/pos-ui-extensions/2025-10-rc/apis/cart-api#cartapi-propertydetail-removelineitemsellingplan" target="_blank" class="body-link">removeLineItemSellingPlan</a></li>
</ul>
<h3>Enhanced Line Item Interface</h3>
<p>The <code>LineItem</code> interface has been enhanced to support selling plans:</p>
<pre><code class="language-ts">interface LineItem {
  uuid: string;
  productId: number;
  requiresSellingPlan?: boolean;  // Indicates if a product must have a selling plan
  hasSellingPlanGroups?: boolean; // Indicates if a product has available selling plans
  sellingPlan?: SellingPlan;      // The currently applied selling plan
}
</code></pre>
<h3>Version Requirements</h3>
<p><strong>⚠️ Critical Compatibility Note</strong></p>
<p>To utilize these features, ensure you are using:</p>
<ul>
<li><strong>POS UI Extension 2025-10</strong> or later</li>
<li><strong>Shopify POS 10.13+</strong></li>
</ul>
<p>Attempting to use selling plan APIs or fields in older versions will result in blocked checkouts. Ensure your system is updated to avoid disruptions.</p>
</div> ]]></description>
    <pubDate>Tue, 14 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/subscription-selling-plan-support-with-pos-ui-extensions</link>
  </item>
  <item>
    <title>Fulfillment service callback url is now optional</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API version 2026-01, the <code>callbackUrl</code> argument in the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/fulfillmentServiceCreate" target="_blank" class="body-link">fulfillmentServiceCreate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/fulfillmentServiceUpdate" target="_blank" class="body-link">fulfillmentServiceUpdate</a> mutations is now optional.</p>
<p>If your app's fulfillment services do not have a callback URL but have either <code>inventoryManagement</code> or <code>trackingSupport</code> enabled, they will need to submit the information required by these features via the API.</p>
<ul>
<li>For submitting tracking information and handling fulfillment requests, refer to our documentation on <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services" target="_blank" class="body-link">building for Fulfillment Services</a>.</li>
<li>For managing inventory quantities, see our documentation on <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states" target="_blank" class="body-link">managing Inventory Quantities and States</a>.</li>
</ul>
<h3>How will this change affect my app?</h3>
<p>This is a <em>non-breaking</em> change. If your app currently provides a <code>callbackUrl</code>, it will continue to function as before. You now have the option to create or update services without a <code>callbackUrl</code>.</p>
<h3>What do I need to do?</h3>
<p>No action is required for existing apps.</p>
<p>For new apps, you can omit the <code>callbackUrl</code> argument when <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/fulfillmentServiceCreate" target="_blank" class="body-link">creating</a> or <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/fulfillmentServiceUpdate" target="_blank" class="body-link">updating</a> fulfillment services if your operations do not depend on these callbacks.</p>
</div> ]]></description>
    <pubDate>Mon, 13 Oct 2025 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/fulfillment-service-callback-url-is-now-optional</link>
  </item>
  <item>
    <title>Bulk operations group objects default changed to `false`</title>
    <description><![CDATA[ <div class=""><p>We have optimized the output of bulk operations in the GraphQL Admin API to enhance speed and reliability.</p>
<h2>What's Changed</h2>
<h3>Bulk Queries (<code>bulkOperationRunQuery</code>)</h3>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/bulkoperationrunquery#arguments-groupObjects" target="_blank" class="body-link"><code>groupObjects</code></a> argument now defaults to <code>false</code>. Grouping objects can slow down operations and increase failure rates, especially with large datasets.</p>
<h3>Bulk Mutations (<code>bulkOperationRunMutation</code>)</h3>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/mutations/bulkoperationrunmutation#arguments-groupObjects" target="_blank" class="body-link"><code>groupObjects</code></a> argument is now deprecated. It does not affect the order of output files because mutation outputs do not have parent objects.</p>
<h2>What You Need to Do</h2>
<h3>If You're Running Bulk Queries</h3>
<ul>
<li><p><strong>To maintain grouped output</strong>: Set <code>groupObjects: true</code>.</p>
<pre><code class="language-graphql">mutation {
  bulkOperationRunQuery(
    query: &quot;&quot;&quot;
    {
      products {
        edges {
          node {
            id
            title
          }
        }
      }
    }
    &quot;&quot;&quot;
    groupObjects: true  // Add this to maintain grouped output
  ) {
    bulkOperation {
      id
      status
    }
    userErrors {
      field
      message
    }
  }
}
</code></pre>
</li>
</ul>
<h3>If You're Running Bulk Mutations</h3>
<p>Remove the <code>groupObjects</code> argument from your queries. This will not impact the output files.</p>
<h2>Why We Made This Change</h2>
<p>Most applications do not require grouped output and the associated overhead negatively impacts performance. These changes deliver faster, more predictable results that are easier to process at scale. Enable <code>groupObjects</code> only if your application specifically depends on the grouped output format. As this was the default behavior previously, you can verify on any version after <code>2025-07</code> by setting <code>groupObjects</code> to <code>false</code> and testing your application.</p>
<p>For optimal performance, omit <code>groupObjects</code> on or after <code>2026-01</code>, and disable this option if you are on <code>2025-07</code> or <code>2025-10</code>.</p>
<h2>Learn More</h2>
<ul>
<li><a href="https://shopify.dev/api/usage/bulk-operations/queries" target="_blank" class="body-link">Bulk Operations Queries Guide</a></li>
<li><a href="https://shopify.dev/api/usage/bulk-operations/imports" target="_blank" class="body-link">Bulk Operations Imports Guide</a></li>
<li><a href="https://shopify.dev/api/usage/bulk-operations/queries#step-3-retrieve-data" target="_blank" class="body-link">Working with JSONL Output</a></li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 09 Oct 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/bulk-operations-group-objects-default-changed-to-false</link>
  </item>
  <item>
    <title>Integrate accelerated checkout buttons (Shop Pay and Apple Pay) on mobile app storefronts</title>
    <description><![CDATA[ <div class=""><p>Add Shop Pay and Apple Pay checkout buttons to product and cart pages using Checkout Kit for <a href="https://shopify.dev/docs/storefronts/mobile/checkout-kit/accelerated-checkouts" target="_blank" class="body-link">Swift</a> or <a href="https://shopify.dev/docs/storefronts/mobile/checkout-kit/accelerated-checkouts-react-native" target="_blank" class="body-link">React Native</a>. Give customers the quick payment options they expect, with just a few lines of code.</p>
</div> ]]></description>
    <pubDate>Wed, 08 Oct 2025 19:03:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/integrate-accelerated-checkout-buttons-shop-pay-and-apple-pay-on-mobile-app-storefronts</link>
  </item>
  <item>
    <title>Deprecate delivery legacy modes fields</title>
    <description><![CDATA[ <div class=""><p>Support for legacy mode profiles in shipping has been discontinued. This feature has been disabled for a while, and the the GraphQL Admin API is being updated to reflect this.</p>
<p>The following fields are being marked as deprecated:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/deliveryprofile#field-DeliveryProfile.fields.legacyMode" target="_blank" class="body-link"><code>DeliveryProfile.legacyMode</code></a></li>
</ul>
<p>The following fields are effectively deprecated, as they are no longer functional:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/DeliverySetting#field-DeliverySetting.fields.legacyModeBlocked" target="_blank" class="body-link"><code>DeliverySetting.legacyModeBlocked</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-04/objects/DeliverySetting#field-DeliverySetting.fields.legacyModeProfiles" target="_blank" class="body-link"><code>DeliverySetting.legacyModeProfiles</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2026-04/input-objects/deliverysettinginput#fields-legacyModeProfiles" target="_blank" class="body-link"><code>DeliverySettingInput.legacyModeProfiles</code></a></li>
</ul>
<p><strong>Note</strong>: These three fields can't be marked as deprecated because that would leave their objects with zero public fields, which is known to cause problems for schema generation.</p>
<p>The corresponding queries that use these fields now return static data that users should ignore. Any mutations that pass these fields are now be no-ops.</p>
</div> ]]></description>
    <pubDate>Wed, 08 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/deprecate-delivery-legacy-modes-fields</link>
  </item>
  <item>
    <title>Due on Fulfillment payment term available for pre-orders</title>
    <description><![CDATA[ <div class=""><p>In the API <code>2026-01</code> release candidate version, a new value, <code>ON_FULFILLMENT</code>, has been added to the <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/enums/SellingPlanRemainingBalanceChargeTrigger" target="_blank" class="body-link"><code>SellingPlanRemainingBalanceChargeTrigger</code></a> enum. This value allows you to set payments for pre-orders to be processed upon order fulfillment, providing flexibility in managing deferred payments. </p>
<p>For implementation details and further information, see the <a href="https://shopify.dev/docs/apps/build/purchase-options/deferred" target="_blank" class="body-link">pre-orders documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/due-on-fulfillment-payment-term-available-for-pre-orders</link>
  </item>
  <item>
    <title>Themes now use one industry tag for better search results</title>
    <description><![CDATA[ <div class=""><p>The Theme Store has simplified its categorization process by assigning only one industry tag per theme, effective immediately. As a result, all secondary industry tags have been automatically removed.</p>
<p>Your theme's primary industry tag now serves as its sole industry classification. Choose the industry that best matches:</p>
<ul>
<li>The main product types showcased in your demo store</li>
<li>Your intended target merchant audience</li>
</ul>
<p>This will make it easier for merchants to browse and find themes tailored to their specific industry needs. </p>
<p>You can review your current primary industry tag in the Partner Dashboard.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 16:00:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/themes-now-use-one-industry-tag-for-better-search-results</link>
  </item>
  <item>
    <title>Subscription contract shipping requirements now sync with product variants</title>
    <description><![CDATA[ <div class=""><p>We've improved how subscription contracts handle shipping requirements to ensure accurate tax calculations, delivery details, and order totals. These changes apply when using the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionBillingAttemptCreate" target="_blank" class="body-link"><code>subscriptionBillingAttemptCreate</code></a> mutation.</p>
<h3>What's Changed</h3>
<p><strong>Shipping requirements use latest product information</strong><br>Subscription contracts now dynamically retrieve the &quot;requires shipping&quot; value from the product variant for each contract line. Previously, a static value was stored when the subscription line was added to the contract. This update ensures that shipping requirements are always current when you update your product variants. This change also applies to <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionDraft#field-SubscriptionDraft.fields.deliveryOptions" target="_blank" class="body-link"><code>SubscriptionDraft.fields.deliveryOptions</code></a>.</p>
<p><strong>Delivery lines added only when necessary</strong><br>If no lines in a subscription contract require shipping, then we no longer add a delivery line to the order. This prevents unnecessary shipping charges and ensures correct tax calculations.</p>
<h3>Impact</h3>
<p>These changes ensure that:</p>
<ul>
<li>Taxes are calculated correctly based on current shipping requirements.</li>
<li>Order totals reflect accurate delivery costs.</li>
<li>Shipping configuration issues are caught before orders are processed.</li>
<li>Subscription contracts stay in sync with your product catalog changes.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/subscription-contract-shipping-requirements-now-sync-with-product-variants</link>
  </item>
  <item>
    <title>Shopify.dev MCP Now Supports More APIs</title>
    <description><![CDATA[ <div class=""><p>The Shopify.dev MCP server now supports code generation for a range of powerful APIs, enhancing your development experience:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/storefront" target="_blank" class="body-link">Storefront API</a></li>
<li><a href="https://shopify.dev/docs/api/partner" target="_blank" class="body-link">Partner API</a></li>
<li><a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">Customer Account API</a></li>
<li><a href="https://shopify.dev/docs/api/payments-apps" target="_blank" class="body-link">Payment Apps API</a></li>
<li><a href="https://shopify.dev/docs/api/polaris" target="_blank" class="body-link">Polaris Web Components</a></li>
<li><a href="https://shopify.dev/docs/api/liquid" target="_blank" class="body-link">Liquid</a></li>
</ul>
<p>This update allows you to leverage the Shopify.dev MCP as a virtual pair programmer within your preferred IDE. Generate code snippets, explore API capabilities, and accelerate your development process across the Shopify platform.</p>
<p><strong>Get started:</strong><br>To begin, <a href="https://shopify.dev/docs/apps/build/devmcp#set-up-the-server" target="_blank" class="body-link">configure the Shopify.dev MCP server</a> to integrate it with your development environment and unlock these new capabilities.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopifydev-mcp-now-supports-more-apis</link>
  </item>
  <item>
    <title>Rerouting Fulfillment Orders is now possible via API</title>
    <description><![CDATA[ <div class=""><p>We have introduced the <code>fulfillmentOrdersReroute</code> mutation to the Admin GraphQL API. This mutation allows you to move fulfillment orders to the next best location based on the shop’s delivery strategies. This update ensures that both the API and Admin offer the same capabilities, enhancing consistency and flexibility for developers.</p>
<p>With this mutation, you can optionally specify locations to exclude from the reroute. Alternatively, you can define a set of locations to consider for changing the fulfillment orders’ location.</p>
<pre><code class="language-graphql">mutation {
  fulfillmentOrdersReroute(
    fulfillmentOrderIds: [&quot;gid://shopify/FulfillmentOrder/12345678&quot;],
    excludedLocationIds: [&quot;gid://shopify/Location/456789&quot;]
  ) {
    movedFulfillmentOrders {
      # FulfillmentOrder fields
    }
    userErrors {
      field
      message
    }
  }
}
</code></pre>
<p>For further details on working with the new mutation, please refer to our <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentOrdersReroute" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/rerouting-fulfillment-orders-via-api</link>
  </item>
  <item>
    <title>Deprecation of legacy return APIs and improvements to return management</title>
    <description><![CDATA[ <div class=""><p>We're introducing important changes to simplify and enhance return management in the Shopify Admin API.</p>
<h2>What's changing?</h2>
<ul>
<li>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnRefund" target="_blank" class="body-link"><code>returnRefund</code></a> mutation is deprecated and replaced by the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> mutation. The <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> mutation streamlines return lifecycle management by combining disposition decisions and financial processing into a single call.</li>
<li>The field <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/suggestedReturnRefund" target="_blank" class="body-link"><code>Return.suggestedReturnRefund</code></a> is deprecated in favor of the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/SuggestedReturnFinancialOutcome" target="_blank" class="body-link"><code>Return.suggestedFinancialOutcome</code></a> field.</li>
<li>Exchange fulfillment orders are now created only when exchange line items are processed, ensuring accuracy.</li>
<li>Refunds and return processing now offer enhanced precision for managing returned line items.</li>
</ul>
<p><strong>Action required:</strong><br>If your app currently creates returns using <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnCreate" target="_blank" class="body-link"><code>returnCreate</code></a> or approves return requests using <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnApproveRequest" target="_blank" class="body-link"><code>returnApproveRequest</code></a>, migrate to the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> mutation to handle refunds and exchanges. The older mutations (<a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/refundCreate" target="_blank" class="body-link"><code>refundCreate</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnRefund" target="_blank" class="body-link"><code>returnRefund</code></a>) and the query field (<a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/suggestedRefund" target="_blank" class="body-link"><code>Return.suggestedRefund</code></a>) are deprecated. Instead, you should now use <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/SuggestedReturnFinancialOutcome" target="_blank" class="body-link"><code>Return.suggestedFinancialOutcome</code></a>.</p>
<p><strong>Availability:</strong><br>These new APIs are available now in the <code>unstable</code> API version and officially launch in API version <code>2025-07</code>.</p>
<p>For more details, see our updated <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/migrate-to-return-processing" target="_blank" class="body-link">migration guide</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/deprecation-of-legacy-return-apis-and-improvements-to-return-management</link>
  </item>
  <item>
    <title>Polaris unified web components are now stable</title>
    <description><![CDATA[ <div class=""><p>Polaris web components are now generally available for extensions with version <code>2025-10</code>. This unified toolkit now includes support for POS, Admin, Checkout, and Customer Accounts, and is always up-to-date through Shopify's CDN.</p>
<p>Since early access, we've added 14 new components for App Home, including a new modal experience. Additionally, there are 36 new components for Checkout and Customer Accounts, and a new Point of Sale surface with 31 components.</p>
<p>To get started, <a href="https://shopify.dev/docs/api/polaris" target="_blank" class="body-link">check out the developer documentation</a>, or learn more about the library by reading <a href="https://www.shopify.com/partners/blog/polaris-goes-stable-the-future-of-shopify-app-development-is-here" target="_blank" class="body-link">our blog post</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 14:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/polaris-unified-web-components-are-now-stable</link>
  </item>
  <item>
    <title>New `productNetwork` field on the `Order` object</title>
    <description><![CDATA[ <div class=""><p>We're adding a <code>productNetwork</code> <a href="https://shopify.dev/docs/api/admin-graphql/2026-01/queries/order#returns-Order.fields.productNetwork" target="_blank" class="body-link">Boolean field</a> on the GraphQL Admin API's <code>Order</code> object in version <code>2025-10</code>.  This field indicates whether a customer also purchased items from other stores. </p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-productnetwork-field-on-order-object</link>
  </item>
  <item>
    <title>Metafield references added to Customer Account API</title>
    <description><![CDATA[ <div class=""><p>We have added <code>metafield.reference</code> and <code>metafield.references</code> to the Customer Account API. This means that reference <code>Media</code> types, including <a href="https://shopify.dev/docs/api/customer/unstable/objects/MediaImage" target="_blank" class="body-link">MediaImage</a>, <a href="https://shopify.dev/docs/api/customer/unstable/objects/GenericFile" target="_blank" class="body-link">GenericFile</a>, <a href="https://shopify.dev/docs/api/customer/unstable/objects/Model3d" target="_blank" class="body-link">Model3d</a>, and <a href="https://shopify.dev/docs/api/customer/unstable/objects/Video" target="_blank" class="body-link">Video</a>, now exist on the common query objects that currently support metafields on the Customer Account API.</p>
<p>Metaobjects can now also be queried through <code>metafield.reference</code> on the Customer Account API. To enable access to metaobjects, toggle the Customer Account API access toggle when editing a metaobject definition in Admin. After toggling this value on, metaobjects are exposed and accessible to apps with <a href="https://shopify.dev/docs/api/usage/access-scopes#customer-access-scopes" target="_blank" class="body-link">the customer_read_metaobjects scope</a>.</p>
<p>This functionality can also be achieved with new changes to the GraphQL Admin API. We have exposed the ability to create, update, and query <code>CustomerAccess</code>, which can be set to either <code>READ</code> or <code>NONE</code>. You can specify the access on the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/MetaobjectAccess" target="_blank" class="body-link">MetaobjectAccess</a> object when running the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/metaobjectdefinitioncreate" target="_blank" class="body-link">metaobjectDefinitionCreate</a> or <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/metaobjectdefinitionupdate" target="_blank" class="body-link">metaobjectDefinitionUpdate</a> mutation.</p>
<p>Below are some example queries of Media types and metaobjects.</p>
<ol>
<li>Querying a Media object metafield.reference (MediaImage) through customer:</li>
</ol>
<pre><code>	query {
		customer {
			metafield(namespace: &quot;custom&quot;, key: &quot;example&quot;) {
				namespace
				key
				jsonValue
				reference {
					__typename
					... on MediaImage {
						image {
							url
						}
					}
				}
			}
		}
	}
</code></pre>
<ol start="2">
<li>Querying a metaobject metafield.reference through an order (note, the metaobject contains a MediaImage reference):</li>
</ol>
<pre><code>	order(id: &quot;gid://shopify/Order/1&quot;) {
		metafield(namespace: &quot;custom&quot;, key: &quot;example&quot;) {
			__typename
			namespace
			key
			reference {
				__typename
				... on Metaobject {
					id
					fields {
						type
						value
						key
						value
						reference {
							__typename
							... on MediaImage {
								id
								image {
									altText
									url
								}
							}
						}
					}
				}
			}
		}
	}
</code></pre>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/metafield-references-added-to-customer-account-api</link>
  </item>
  <item>
    <title>Dynamic complexity cost for `productSet` mutation</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet" target="_blank" class="body-link"><code>productSet</code> mutation</a> mutation now uses dynamic complexity costing that more accurately reflects the actual computational cost of operations.</p>
<h3>What's changing</h3>
<p>Instead of a fixed cost of 50 points for all <code>productSet</code> operations, the mutation now calculates complexity based on the actual work being performed:</p>
<ul>
<li><strong>Base cost</strong>: 10 points</li>
<li><strong>Per variant</strong>: 0.2 points</li>
<li><strong>Per variant file</strong>: 0.6 points  </li>
<li><strong>Per variant metafield</strong>: 0.4 points</li>
<li><strong>Per product metafield</strong>: 0.4 points</li>
<li><strong>Per product file</strong>: 1.9 points</li>
</ul>
<p>The total complexity is calculated as:</p>
<pre><code>10 +
  (variants × 0.2) +
	(variant_files × 0.6) +
	(variant_metafields × 0.4) 
	(product_metafields × 0.4) 
	(product_files × 1.9)
</code></pre>
<h3>Benefits for your apps</h3>
<p><strong>Lower costs for most operations</strong>: More than 99.5% of existing <code>productSet</code> operations will cost less than the previous fixed cost of 50 points. Simple product updates that previously cost 50 points now cost as little as 10-20 points.</p>
<p><strong>Support for larger products</strong>: The mutation now supports products with up to 2,048 variants for merchants on all plans, a significant increase from the previous limit of 100 variants. This enables apps to manage more complex products and support merchants with diverse business needs.</p>
<h3>Examples</h3>
<p><strong>Simple product update</strong> (1 variant, no files or metafields):</p>
<ul>
<li>Previous cost: 50 points</li>
<li>New cost: 10 points (80% reduction)</li>
</ul>
<p><strong>Medium complexity</strong> (20 variants, 5 product metafields):</p>
<ul>
<li>Previous cost: 50 points  </li>
<li>New cost: 16 points (68% reduction)</li>
</ul>
<p><strong>Complex product</strong> (200 variants, 10 files, 20 metafields):</p>
<ul>
<li>Previous cost: 50 points</li>
<li>New cost: 77 points (reflects actual resource usage)</li>
</ul>
<h3>Migration guidance</h3>
<p>For most apps, no changes are required. Your existing <code>productSet</code> operations will automatically benefit from lower complexity costs.</p>
<p>For apps working with high-complexity products exceeding the 1000-point single query limit:</p>
<ul>
<li>Consider using <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">bulk mutations</a> for very large operations</li>
<li>Split complex operations into separate calls: use <code>productSet</code> for core product data, then use <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/metafieldsSet" target="_blank" class="body-link"><code>metafieldsSet</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate" target="_blank" class="body-link"><code>fileCreate</code></a> for additional data</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/dynamic-complexity-cost-for-productset-mutation</link>
  </item>
  <item>
    <title>ShopifyQL now available as `shopifyqlQuery` within the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>Developers can now leverage ShopifyQL to extract valuable insights from all merchant analytics including sales, customer, and product data via the GraphQL Admin API. This enhancement allows for more sophisticated data analysis and reporting.</p>
<p>For a comprehensive guide on the ShopifyQL language, please visit the <a href="https://help.shopify.com/en/manual/reports-and-analytics/shopify-reports/report-types/shopifyql-editor#shopifyql-syntax" target="_blank" class="body-link">ShopifyQL syntax documentation</a>.</p>
<p>The <code>shopifyqlQuery</code> field is now accessible on the <code>QueryRoot</code> of the GraphQL Admin API. To learn more about using this new query field, refer to our detailed <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/queries/shopifyqlQuery" target="_blank" class="body-link">documentation</a>.</p>
<p>For example, here is a query that demonstrates how to retrieve total sales data, grouped by month, starting from the beginning of the current year: </p>
<pre><code class="language-graphql">{
   shopifyqlQuery(query: &quot;FROM sales SHOW total_sales GROUP BY month SINCE startOfYear(0y) ORDER BY month&quot;) {
    tableData {
      columns {
        name
        dataType
        displayName
      }
      rows
    }
    parseErrors
  }
}
</code></pre>
<p>The response contains table data with column and row values, detailing the total sales per month. </p>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;shopifyqlQuery&quot;: {
      &quot;tableData&quot;: {
        &quot;columns&quot;: [
          {
            &quot;name&quot;: &quot;month&quot;,
            &quot;dataType&quot;: &quot;MONTH_TIMESTAMP&quot;,
            &quot;displayName&quot;: &quot;Month&quot;
          },
          {
            &quot;name&quot;: &quot;total_sales&quot;,
            &quot;dataType&quot;: &quot;MONEY&quot;,
            &quot;displayName&quot;: &quot;Total sales&quot;
          }
        ],
        &quot;rows&quot;: [
          {
            &quot;month&quot;: &quot;2025-01-01&quot;,
            &quot;total_sales&quot;: &quot;5542.954&quot;
          },
          {
            &quot;month&quot;: &quot;2025-02-01&quot;,
            &quot;total_sales&quot;: &quot;1610.094&quot;
          }
        ]
      },
      &quot;parseErrors&quot;: []
    }
  }
}
</code></pre>
<p>Any parsing errors encountered during execution will be listed under <code>parseErrors</code>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/shopifyqlquery-now-available-in-graphql-admin-api</link>
  </item>
  <item>
    <title>Duplicate themes with the Admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>Starting in version 2025-10, the GraphQL Admin API includes a <code>themeDuplicate</code> mutation to duplicate store themes. The mutation accepts a theme ID and an optional <code>name</code> parameter to rename the duplicated theme.</p>
<p>For further details, refer to the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/themeDuplicate" target="_blank" class="body-link"><code>themeDuplicate</code></a> reference documentation.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Oct 2025 03:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/duplicate-themes-with-the-admin-graphql-api</link>
  </item>
  <item>
    <title>Removing `visible_to_storefront_api` field on metaobject field definitions</title>
    <description><![CDATA[ <div class=""><h2>What's changing</h2>
<p>The <code>visibleToStorefrontApi</code> field/input field is deprecated and removed from the <code>unstable</code> version of the GraphQL Admin API for the following types:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/MetaobjectFieldDefinition" target="_blank" class="body-link"><code>MetaobjectFieldDefinition</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/MetaobjectFieldDefinitionCreateInput" target="_blank" class="body-link"><code>MetaobjectFieldDefinitionCreateInput</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/MetaobjectFieldDefinitionUpdateInput" target="_blank" class="body-link"><code>MetaobjectFieldDefinitionUpdateInput</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/StandardMetaobjectDefinitionFieldTemplate" target="_blank" class="body-link"><code>StandardMetaobjectDefinitionFieldTemplate</code></a></li>
</ul>
<h2>Who's affected</h2>
<ul>
<li>Anyone using <code>visibleToStorefrontApi</code> field or input field on a Metaobject field definition</li>
</ul>
<p><strong>NOTE</strong>: With the exception of <code>StandardMetaobjectDefinitionFieldTemplate</code>, this field was only ever exposed in <code>unstable</code>.</p>
<h2>Why we're making this change</h2>
<p>This field implies a system behaviour that doesn't exist. It isn't possible to toggle the storefront visibility of individual fields. The only storefront visibility controls are on the <code>access</code> fields of the metaobject definition itself.</p>
<h2>Action required</h2>
<p>If your app has a query or mutation that's referencing the <code>visibleToStorefrontApi</code> field on a Metaobject field definition, you need to remove that field.</p>
<h2>Key dates</h2>
<p><strong>April 2, 2026</strong>: <code>visibleToStorefrontApi</code> field on metaobject field definitions will be removed from <code>unstable</code> and <code>2026-07</code></p>
</div> ]]></description>
    <pubDate>Tue, 30 Sep 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2026-07</category>
    <link>https://shopify.dev/changelog/removing-storefront-visibility-field-on-metaobject-field-definitions</link>
  </item>
  <item>
    <title>New: Unlisted Product Status</title>
    <description><![CDATA[ <div class=""><p><code>UNLISTED</code> is available as a new product status value in the 2025-10 GraphQL Admin API and REST Admin APIs, as well as in the Webhooks API. </p>
<p>The <code>Unlisted</code> status hides products from store search and recommendations (including collections), all sales channels,  internet searches and <a href="https://help.shopify.com/en/manual/promoting-marketing/seo/shopify-catalog" target="_blank" class="body-link">Shopify Catalog</a>, while still allowing access via a direct URL. It will be returned in Storefront API and Liquid only when referenced individually by handle, id, or metafield reference.</p>
<p><strong>Note</strong>: Previous versions of the Admin APIs will return product status for unlisted products as <code>ACTIVE</code>.</p>
<p>Learn more about this update in our <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/enums/ProductStatus#enums-UNLISTED" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Webhook</category>
    <category>Liquid</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/new-unlisted-product-status</link>
  </item>
  <item>
    <title>Upcoming Markets pricing support for Draft Order checkouts</title>
    <description><![CDATA[ <div class=""><p>Starting from October 31 2025, when a customer updates their shipping address during a Draft Order checkout, product prices may change based on the shop's <a href="https://help.shopify.com/en/manual/markets-new/catalogs" target="_blank" class="body-link">Markets configuration</a>.</p>
<p>To prevent product pricing from changing in Draft Order checkouts, use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/DraftOrderLineItemInput#fields-priceOverride" target="_blank" class="body-link"><code>priceOverride</code></a> or <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/DraftOrderLineItemInput#fields-generatePriceOverride" target="_blank" class="body-link"><code>generatePriceOverride</code></a> input field on the Draft Order line item input when creating or updating a Draft Order.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Sep 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/upcoming-markets-pricing-support-for-draft-order-checkouts</link>
  </item>
  <item>
    <title>Introducing the admin intents API</title>
    <description><![CDATA[ <div class=""><p>We're excited to introduce <a href="https://shopify.dev/docs/apps/build/admin/admin-intents" target="_blank" class="body-link">admin intents</a> — a transformative API that enhances app interactions with Shopify's admin interface.</p>
<h2>What are admin intents?</h2>
<p>Admin intents offer a streamlined API designed to integrate effortlessly with:</p>
<ul>
<li>Embedded apps (App Home)</li>
<li>Admin UI extensions</li>
</ul>
<p>With just one API call, your app can now efficiently create or modify a wide range of Shopify core resources, including:</p>
<ul>
<li>Products</li>
<li>Catalogs</li>
<li>Collections</li>
<li>Customers</li>
<li>Markets</li>
<li>Discounts</li>
<li>And more!</li>
</ul>
<p>Dive into the <a href="https://shopify.dev/docs/api/app-home/apis/intents" target="_blank" class="body-link">comprehensive documentation on admin intents</a> to discover how to seamlessly incorporate this powerful API into your app development process.</p>
</div> ]]></description>
    <pubDate>Mon, 29 Sep 2025 14:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-admin-intents-api</link>
  </item>
  <item>
    <title>New metafield definition types in GraphQL - article_reference / list.article_reference</title>
    <description><![CDATA[ <div class=""><p>As of October 2025, Shopify will introduce two new metafield definition types in the Admin GraphQL API, Storefront API, and Liquid. Metafields allow you to customize and store additional information about your Shopify resources, enhancing the flexibility of your online store.</p>
<p>The new metafield definition types are:</p>
<ul>
<li><code>article_reference</code>: This type allows you to reference a specific article on your online store, making it easier to link content dynamically.</li>
<li><code>list.article_reference</code>: This type enables you to create a list of article references, providing a streamlined way to manage multiple content links.</li>
</ul>
<p>To explore these new reference types further, visit the <a href="https://shopify.dev/api/admin-graphql/2025-10/unions/MetafieldReference" target="_blank" class="body-link">Shopify.dev documentation</a>. For practical implementation, check out the <a href="https://shopify.dev/apps/metafields/types" target="_blank" class="body-link">examples provided</a>.</p>
<p>These updates offer enhanced capabilities for managing content on your Shopify store, allowing for more dynamic and customized user experiences.</p>
</div> ]]></description>
    <pubDate>Fri, 26 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Liquid</category>
    <category>Storefront GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-metafield-definition-types-in-graphql-articlereference-listarticlereference</link>
  </item>
  <item>
    <title>Built for Shopify grace period extended for uninstall and app embed requirements</title>
    <description><![CDATA[ <div class=""><p>We have extended the grace period for Built for Shopify (BFS) apps that no longer meet specific automated criteria <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/regain-lost-status#criteria" target="_blank" class="body-link">from immediate to 60 days</a>. This extension applies to the following criteria:  </p>
<ul>
<li>Uninstall cleanly using theme app extensions.</li>
<li>Are embedded within the Shopify admin.</li>
</ul>
<p>This change provides you with additional time to resolve any issues without immediately losing your BFS badge. During the 60-day grace period, your app will retain its BFS badge and remain visible to merchants. If the issues are not resolved within this timeframe, the BFS badge will be removed until the problems are addressed.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Sep 2025 15:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/built-for-shopify-grace-period-update-for-uninstall-and-app-embed-requirements</link>
  </item>
  <item>
    <title>Improve your theme compatibility with remote products</title>
    <description><![CDATA[ <div class=""><p>Starting October 9, 2025, products displayed on storefronts can originate from a &quot;remote&quot; source, such as another store. This is an opt-in feature available to a select group of eligible US-based merchants.</p>
<ul>
<li>There is no required action from theme developers to support this change, however some app integrations might be affected and therefore we have highlighted some recommendations below.</li>
<li>In collections and search results, remote products will display small badges on their images to indicate their remote origin.</li>
<li>In the cart, remote product titles will include a reference to the seller.</li>
<li>Products with a <a href="https://shopify.dev/docs/api/liquid/objects/remote_details#remote_details-type" target="_blank" class="body-link">remote_details.type</a> of <code>seller</code> will automatically use the <a href="https://shopify.dev/docs/storefronts/themes/architecture/templates/product/seller" target="_blank" class="body-link">Seller product</a> template.</li>
</ul>
<h2>Recommended updates</h2>
<p>The following updates are recommended.</p>
<h3>Seller products</h3>
<p>You can include a Seller product template in your theme using the naming convention <code>product.remote.seller.json</code>. Refer to the <a href="https://shopify.dev/docs/storefronts/themes/architecture/templates/product/seller" target="_blank" class="body-link">related documentation</a> for best practices when designing this template. If a Seller product template is not available, merchants will be prompted to create one; otherwise, the default template will be used as a fallback.</p>
<h3>Cart</h3>
<p>To enhance your theme's compatibility with apps that utilize <a href="https://shopify.dev/docs/api/functions/latest#input" target="_blank" class="body-link">Shopify Function inputs</a> for cart-related functionality, we recommend visually distinguishing remote products from regular products in the cart. Remote products are not included in Shopify Function inputs, and Shopify Function operations cannot target them. Consequently, apps using Shopify Functions for features like cart validation and discounts will not consider remote products in their calculations. This may lead to discrepancies between the cart totals and the calculations returned by these apps.</p>
<p>For example, if an app calculates free shipping for totals above $50, and a customer has $55 worth of merchandise in their cart, with $20 from a remote product, the Functions will only recognize $35 worth of merchandise. As a result, the customer will see that the free shipping threshold has not been met.</p>
<p>To identify and visually group remote products in the cart, use the <a href="https://shopify.dev/docs/api/liquid/objects/remote_details" target="_blank" class="body-link">remote_details</a> on the product:</p>
<pre><code class="language-liquid">&lt;h2&gt;Sold by {{ shop.name }}&lt;/h2&gt;
{% for item in cart.items %}
  {% unless item.product.remote_details %}
    &lt;!-- Items without remote details --&gt;
  {% endunless %}
{% endfor %}

&lt;h2&gt;Sold by other stores&lt;/h2&gt;
{% for item in cart.items %}
  {% if item.product.remote_details %}
    &lt;!-- Items with remote details --&gt;
  {% endif %}
{% endfor %}
</code></pre>
<h2>Related Documentation</h2>
<p>Refer to the following documentation for additional information.</p>
<ul>
<li><a href="https://shopify.dev/docs/api/liquid/objects/remote_product" target="_blank" class="body-link">Liquid <code>remote_product</code> object</a></li>
<li><a href="https://shopify.dev/docs/storefronts/themes/architecture/templates/product/seller" target="_blank" class="body-link">Seller product template</a></li>
<li><a href="https://shopify.dev/docs/storefronts/themes/architecture/templates/cart#remote-products" target="_blank" class="body-link">Remote products in cart</a></li>
<li><a href="https://shopify.dev/docs/storefronts/themes/architecture/templates/collection#remote-products" target="_blank" class="body-link">Remote products in collections</a></li>
<li><a href="https://shopify.dev/docs/storefronts/themes/architecture/templates/search#remote-products" target="_blank" class="body-link">Remote products in search</a></li>
<li><a href="https://shopify.dev/docs/api/ajax/reference/cart#json-of-a-cart-with-remote-products" target="_blank" class="body-link">Cart AJAX API - example of a cart with remote products</a></li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 20 Sep 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/improve-your-theme-compatibility-with-remote-products</link>
  </item>
  <item>
    <title>Your app may be affected by remote products</title>
    <description><![CDATA[ <div class=""><p>Starting October 9, 2025, products displayed on storefronts may originate from a &quot;remote&quot; source, such as another store. This feature is optional and available to a select group of eligible US-based stores.</p>
<h3>Recommended Updates</h3>
<ul>
<li><p>If your app uses the <a href="https://shopify.dev/docs/api/ajax/reference/cart" target="_blank" class="body-link">Cart Ajax API</a> to determine free shipping qualifications or apply cart discounts, ensure that remote products are excluded from these calculations. Remote products have separate shipping arrangements from their origin stores, and discounts should apply only to products owned by the store.</p>
</li>
<li><p>For apps utilizing the <a href="https://shopify.dev/docs/api/ajax/reference/cart" target="_blank" class="body-link">Cart Ajax API</a> for features like abandoned cart recovery, exclude remote products. The URLs for remote products will expire after a certain period, making recovery attempts unreliable.</p>
</li>
<li><p>For other use cases involving the <a href="https://shopify.dev/docs/api/ajax/reference/cart" target="_blank" class="body-link">Cart Ajax API</a>, evaluate whether your logic should exclude remote products.</p>
</li>
<li><p>Note that remote products are not included in <a href="https://shopify.dev/docs/api/functions/latest#input" target="_blank" class="body-link">Shopify Function inputs</a>, and Shopify Function operations cannot target remote products.</p>
</li>
<li><p>For apps that calculate free shipping thresholds or loyalty points, exclude remote products from your calculations. </p>
</li>
<li><p>For apps that display product page widgets like wishlists, coupon prompts, or store points earning, check if a product is remote and hide these UI elements.</p>
</li>
</ul>
<h3>Identifying Remote Products</h3>
<p>In the <a href="https://shopify.dev/docs/api/ajax/reference/cart" target="_blank" class="body-link">Cart Ajax API</a> response, remote products can be identified by the presence of the attribute <a href="https://shopify.dev/docs/api/ajax/reference/cart#json-of-a-cart-with-remote-products" target="_blank" class="body-link"><code>remote: true</code></a> on cart line items.</p>
<p>Remote products can be distinguished from native products in Liquid by checking if <a href="https://shopify.dev/docs/api/liquid/objects/remote_details" target="_blank" class="body-link"><code>product.remote_details</code></a> is present.</p>
<p>Remote products do not yet appear in <a href="https://shopify.dev/docs/api/storefront/latest/queries/cart" target="_blank" class="body-link">Storefront API</a> responses. Support for identifying these products is coming soon.</p>
</div> ]]></description>
    <pubDate>Sat, 20 Sep 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Breaking API Change</category>
    <category>Admin REST API</category>
    <category>Checkout UI</category>
    <category>Functions</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/your-app-may-be-affected-by-remote-products</link>
  </item>
  <item>
    <title>Dynamic complexity for `productVariantsBulkCreate` and `productVariantsBulkUpdate` mutations</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate" target="_blank" class="body-link"><code>productVariantsBulkCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productvariantsbulkupdate" target="_blank" class="body-link"><code>productVariantsBulkUpdate</code></a> mutations now use dynamic complexity costing to more accurately reflect the actual computational cost of operations.</p>
<h3>Support for more complex products</h3>
<p>The mutations now support products with up to 2,048 variants for merchants on all plans, a significant increase from the previous limit of 100 variants. This enables apps to manage more complex products, and support merchants with diverse business needs.</p>
<h3>What's changing</h3>
<p>With the release of Dynamic Complexity, the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate" target="_blank" class="body-link"><code>productVariantsBulkCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productvariantsbulkupdate" target="_blank" class="body-link"><code>productVariantsBulkUpdate</code></a> mutations will now have a base cost of 10-points, and additional points will be calcuated based on the complexity of the input. </p>
<ul>
<li><strong>Base cost</strong>: 10 points</li>
<li><strong>Per variant</strong>: 0.2 points</li>
<li><strong>Per variant media</strong>: 0.6 points  </li>
<li><strong>Per variant metafield</strong>: 0.4 points</li>
<li><strong>Per product media</strong>: 1.9 points</li>
</ul>
<p>The total complexity is calculated as:</p>
<pre><code>10 +
  (variants × 0.2) +
  (variant_media × 0.6) +
  (variant_metafields × 0.4) +
  (product_media × 1.9)
</code></pre>
<h3>Migration guidance</h3>
<p>For most apps, no changes are required.</p>
<p>For apps working with high-complexity products exceeding the 1000-point single query limit:</p>
<ul>
<li>Consider using <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">bulk mutations</a> for very large operations.</li>
<li>Split complex operations into separate calls: use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate" target="_blank" class="body-link"><code>productVariantsBulkCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productvariantsbulkupdate" target="_blank" class="body-link"><code>productVariantsBulkUpdate</code></a> mutations for core variant data, then use <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/metafieldsSet" target="_blank" class="body-link"><code>metafieldsSet</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate" target="_blank" class="body-link"><code>fileCreate</code></a> for additional data.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 18 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/dynamic-complexity-for-productvariantsbulkcreate-and-productvariantsbulkupdate-mutations</link>
  </item>
  <item>
    <title>`productVariantsBulkCreate` and `productVariantsBulkUpdate` mutations now validate `inventoryQuantities` limits</title>
    <description><![CDATA[ <div class=""><h2>What's changing?</h2>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate" target="_blank" class="body-link"><code>productVariantsBulkCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productvariantsbulkupdate" target="_blank" class="body-link"><code>productVariantsBulkUpdate</code></a> mutations now enforce validation limits on inventory quantities as part of supporting the increased variant limit from 100 to 2048 variants per product.</p>
<h3>Input Validation Limits</h3>
<p>With the increase in maximum variants per product from 100 to 2048, the mutation now enforces a maximum limit of <strong>50,000 inventory quantities</strong> across all variants in a single mutation. This ensures reliable performance when managing products with many variants across multiple locations.</p>
<h3>Error response example</h3>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;productVariantsBulkCreate&quot;: {
      &quot;userErrors&quot;: [{
        &quot;code&quot;: &quot;INVENTORY_QUANTITIES_LIMIT_EXCEEDED&quot;,
        &quot;field&quot;: [&quot;variants&quot;],
        &quot;message&quot;: &quot;Input contains 51200 inventory quantities, which exceeds the limit of 50000&quot;
      }],
      &quot;product&quot;: null
    }
  }
}
</code></pre>
<h2>Why are we making this change?</h2>
<h3>Support for 2048 Variants</h3>
<ul>
<li><strong>Increased variant limit</strong>: Products can now have up to 2048 variants (previously 100)</li>
<li><strong>Reliable execution</strong>: Ensures consistent performance when managing complex products</li>
</ul>
<h2>Handling Large Inventory Updates</h2>
<p>If you hit the 50,000 inventory quantity limit, you have several options:</p>
<ol>
<li><strong>Batch your operations</strong>: Split large operations into multiple smaller mutations</li>
<li><strong>Use <code>inventorySetQuantities</code></strong>: For updating inventory across many locations, use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventorySetQuantities" target="_blank" class="body-link"><code>inventorySetQuantities</code></a></li>
<li><strong>Use bulk mutations</strong>: For very large datasets, consider using <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">bulk mutation operations</a></li>
</ol>
<h2>Related Changes</h2>
<ul>
<li><p>These changes are part of supporting the increased limit of 2048 variants per product. This validation complements the <a href="https://shopify.dev/changelog/dynamic-complexity-cost-for-productcreate-and-productupdate-mutations" target="_blank" class="body-link">dynamic complexity calculation</a>, providing both cost optimization and input validation for the <code>productSet</code> mutation to handle complex products efficiently.</p>
</li>
<li><p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet" target="_blank" class="body-link"><code>productSet</code></a> mutation now <a href="https://shopify.dev/changelog/productset-limit-for-inventory-quantities" target="_blank" class="body-link">enforces <code>inventoryQuantities</code> limits</a> as well.</p>
</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 18 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/inventoryquantities-limit-in-mutations</link>
  </item>
  <item>
    <title>Added support for dispute preventions</title>
    <description><![CDATA[ <div class=""><p>We've introduced a new <code>DisputeStatus</code> value, <code>prevented</code>, and updated the descriptions of all dispute statuses for clarity and consistency.</p>
<h2>What Changed</h2>
<p>You can now receive a <code>prevented</code> status on disputes in the Admin API (both GraphQL and REST) and in any webhooks or payloads that include dispute status. We have refreshed the descriptions of all dispute statuses to better reflect real-world outcomes and processor terminology.</p>
<h2>Who This Is For</h2>
<ul>
<li>App developers and partners who read, store, or display dispute statuses.</li>
<li>Payment and operations tools that report on dispute outcomes.</li>
<li>Agencies building custom workflows around dispute lifecycle events.</li>
</ul>
<h2>Why It Matters</h2>
<ul>
<li>Distinguish cases where a chargeback was stopped upstream (e.g., via Visa Rapid Dispute Resolution) from other outcomes.</li>
<li>Update your UI and reporting to reflect that merchants won’t incur a chargeback fee for prevented disputes.</li>
<li>Gain clearer, more actionable status definitions across the dispute lifecycle.</li>
</ul>
<h2>How It Works</h2>
<p>Processors may send a <code>prevented</code> status when a chargeback is stopped before it’s filed. Currently, Stripe may send <code>prevented</code> for Visa transactions covered by RDR when the merchant is enrolled through a third party.</p>
<p>Shopify doesn’t enroll merchants into dispute prevention services. However, if a merchant is enrolled via a third party and the processor sends <code>prevented</code>, you’ll see it in the Shopify admin.</p>
<h2>Availability</h2>
<ul>
<li>Available now in the Admin API (GraphQL and REST) and in payloads that include dispute status.</li>
<li>This is a non-breaking change; no version pinning is required.</li>
</ul>
<h2>What You Should Do</h2>
<ul>
<li>Review any strict enum handling (switches, validations, database constraints) to ensure <code>prevented</code> is accepted.</li>
<li>Update UI copy, translations, and filters to surface <code>prevented</code> distinctly from open, won, or lost states.</li>
<li>Check analytics and reporting pipelines that group outcomes or calculate fees to ensure <code>prevented</code> is categorized correctly.</li>
<li>Verify that any webhook or event processing that reacts to dispute status changes handles <code>prevented</code> gracefully.</li>
</ul>
<h2>Limitations and Notes</h2>
<ul>
<li>You’ll only see <code>prevented</code> when your payment processor supplies it; availability varies by processor and merchant enrollment.</li>
<li><code>Prevented</code> indicates the dispute didn’t proceed to a chargeback, and merchants won’t be charged a chargeback fee.</li>
</ul>
<h2>Documentation</h2>
<p>For more information, please see the following resources:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/DisputeStatus" target="_blank" class="body-link">Admin GraphQL DisputeStatus enum</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/shopifypaymentsdispute" target="_blank" class="body-link">Admin GraphQL Dispute object</a></li>
<li><a href="https://shopify.dev/docs/api/admin-rest/latest/resources/dispute" target="_blank" class="body-link">Admin REST disputes</a></li>
</ul>
<h2>Breaking Changes</h2>
<p>None</p>
</div> ]]></description>
    <pubDate>Thu, 18 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/adds-support-for-dispute-preventions</link>
  </item>
  <item>
    <title>Dynamic complexity cost for `productCreate` and `productUpdate` mutations</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productcreate" target="_blank" class="body-link"><code>productCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate" target="_blank" class="body-link"><code>productUpdate</code></a> mutations now use dynamic complexity costing to more accurately reflect the actual computational cost of operations.</p>
<h3>What's changing</h3>
<p>With the release of Dynamic Complexity, the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productcreate" target="_blank" class="body-link"><code>productCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate" target="_blank" class="body-link"><code>productUpdate</code></a> mutations will now have a base cost of 10-points, and additional points will be calcuated based on the complexity of the input. </p>
<ul>
<li><strong>Base cost</strong>: 10 points</li>
<li><strong>Per product metafield</strong>: 0.4 points</li>
<li><strong>Per product media</strong>: 1.9 points</li>
</ul>
<p>The total complexity is calculated as:</p>
<pre><code>10 +
  (product_metafields × 0.4) +
  (product_media × 1.9)
</code></pre>
<h3>Migration guidance</h3>
<p>For most apps, no changes are required.</p>
<p>For apps working with high-complexity products exceeding the 1000-point single query limit:</p>
<ul>
<li>Consider using <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">bulk mutations</a> for very large operations.</li>
<li>Split complex operations into separate calls: use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productcreate" target="_blank" class="body-link"><code>productCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate" target="_blank" class="body-link"><code>productUpdate</code></a> mutations for core product data, then use <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/metafieldsSet" target="_blank" class="body-link"><code>metafieldsSet</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate" target="_blank" class="body-link"><code>fileCreate</code></a> for additional data.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 17 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/dynamic-complexity-cost-for-productcreate-and-productupdate-mutations</link>
  </item>
  <item>
    <title>New balance and due status fields for PaymentSchedule</title>
    <description><![CDATA[ <div class=""><p>You can now access more detailed balance information and payment status updates for payment schedules using deferred payments.</p>
<p>We've introduced three new fields to the PaymentSchedule object:</p>
<ul>
<li><strong>balanceDue</strong>: The remaining balance that needs to be captured for this payment schedule.</li>
<li><strong>totalBalance</strong>: The total balance that the customer needs to pay or authorize for this payment schedule.</li>
<li><strong>due</strong>: Indicates whether the payment schedule is currently due (boolean).</li>
</ul>
<p>These fields enhance your ability to monitor payment statuses when developing apps for merchants utilizing payment terms and deferred payment options. With these updates, you can easily differentiate between captured and uncaptured balances and quickly identify which payment schedules require immediate action.</p>
<p>Please note that the existing <code>amount</code> field is now deprecated. We recommend using these new fields for more specific information, or you can refer to <code>Order.totalOutstandingSet</code> for order-level balance details.</p>
</div> ]]></description>
    <pubDate>Wed, 17 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-balance-and-due-status-fields-for-paymentschedule</link>
  </item>
  <item>
    <title>App recommendations in Sidekick now available</title>
    <description><![CDATA[ <div class=""><p>App discovery and recommendations are now part of Sidekick, allowing merchants to find, compare, and install apps in chat. Sidekick uses App Store listing content to render standardized app cards, reducing steps to install.</p>
<p>Key features:</p>
<ul>
<li>Up to three relevant app cards for broad queries </li>
<li>A single highlighted app card for <a href="https://shopify.dev/changelog/strongly-matched-apps-will-be-highlighted-in-shopify-app-store-search-results" target="_blank" class="body-link">strongly-matched</a> apps</li>
<li>App‑to‑app comparisons highlight key differences and Built for Shopify status</li>
<li>Install directly from Sidekick</li>
</ul>
<p><a href="https://shopify.dev/changelog/guided-search" target="_blank" class="body-link">Guided search</a> and comparisons in the App Store will soon retire.</p>
<p>To optimize your app's visibility in Sidekick, enable <a href="https://shopify.dev/docs/apps/build/authentication-authorization/app-installation" target="_blank" class="body-link">Shopify-managed installation</a> to streamline your install experience. Also, <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#writing-a-shopify-app-store-listing" target="_blank" class="body-link">check your App Store listing</a> for accuracy, clarity, and structure. Achieving the <a href="https://shopify.dev/docs/apps/launch/built-for-shopify" target="_blank" class="body-link">Built for Shopify</a> badge improves search ranking in both the App Store and Sidekick. </p>
</div> ]]></description>
    <pubDate>Wed, 17 Sep 2025 15:30:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/app-recommendations-in-sidekick-now-available</link>
  </item>
  <item>
    <title>`productSet` mutation now validates `inventoryQuantities` limits</title>
    <description><![CDATA[ <div class=""><h2>What's changing?</h2>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet" target="_blank" class="body-link"><code>productSet</code></a> mutations now enforces validation limits on inventory quantities as part of supporting the increased variant limit from 100 to 2048 variants per product.</p>
<h3>Input Validation Limits</h3>
<p>With the increase in maximum variants per product from 100 to 2048, the mutation now enforces a maximum limit of <strong>50,000 inventory quantities</strong> across all variants in a single mutation. This ensures reliable performance when managing products with many variants across multiple locations.</p>
<h3>Error response example</h3>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;productSet&quot;: {
      &quot;userErrors&quot;: [{
        &quot;code&quot;: &quot;INVENTORY_QUANTITIES_LIMIT_EXCEEDED&quot;,
        &quot;field&quot;: [&quot;input&quot;, &quot;variants&quot;],
        &quot;message&quot;: &quot;Input contains 51200 inventory quantities, which exceeds the limit of 50000&quot;
      }],
      &quot;product&quot;: null
    }
  }
}
</code></pre>
<h2>Why are we making this change?</h2>
<h3>Support for 2048 Variants</h3>
<ul>
<li><strong>Increased variant limit</strong>: Products can now have up to 2048 variants (previously 100)</li>
<li><strong>Reliable execution</strong>: Ensures consistent performance when managing complex products</li>
</ul>
<h2>Handling Large Inventory Updates</h2>
<p>If you hit the 50,000 inventory quantity limit, you have several options:</p>
<ol>
<li><strong>Batch your operations</strong>: Split large operations into multiple smaller mutations</li>
<li><strong>Use <code>inventorySetQuantities</code></strong>: For updating inventory across many locations, use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventorySetQuantities" target="_blank" class="body-link"><code>inventorySetQuantities</code></a></li>
<li><strong>Use bulk mutations</strong>: For very large datasets, consider using <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">bulk mutation operations</a></li>
</ol>
<h2>Related Changes</h2>
<ul>
<li><p>These changes are part of supporting the increased limit of 2048 variants per product. This validation complements the <a href="https://shopify.dev/changelog/dynamic-complexity-cost-for-productset-mutation" target="_blank" class="body-link">dynamic complexity calculation</a>, providing both cost optimization and input validation for the <code>productSet</code> mutation to handle complex products efficiently.</p>
</li>
<li><p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate" target="_blank" class="body-link"><code>productVariantsBulkCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productvariantsbulkupdate" target="_blank" class="body-link"><code>productVariantsBulkUpdate</code></a> mutations now <a href="https://shopify.dev/changelog/inventoryquantities-limit-in-mutations" target="_blank" class="body-link">enforce <code>inventoryQuantities</code> limits</a> as well.</p>
</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 15 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/productset-limit-for-inventory-quantities</link>
  </item>
  <item>
    <title>Enhanced API stability with rate limiting for remote payment method creation</title>
    <description><![CDATA[ <div class=""><p>The <code>customerPaymentMethodRemoteCreate</code> mutation in the Admin API now includes rate limiting to manage excessive API requests and maintain consistent performance for all merchants. This change helps ensure that no single user can overwhelm the system, thereby providing a more reliable experience for everyone.</p>
</div> ]]></description>
    <pubDate>Fri, 12 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/enhanced-api-stability-with-rate-limiting-for-remote-payment-method-creation</link>
  </item>
  <item>
    <title>Facebook (Meta) orders support native exchanges</title>
    <description><![CDATA[ <div class=""><p>For Facebook orders created as of August 26, 2025, you can now add <code>exchangeLineItems</code> as an input in the <code>returnCreate</code> <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate" target="_blank" class="body-link">mutation</a> as you do for other orders, eliminating the need for workarounds when handling exchanges for Facebook orders. </p>
<p>Additionally, Facebook orders also support return fees as of the same date. This change applies to all supported GraphQL API versions. </p>
<p>Exchanges and return fees remain unavailable for Facebook orders placed before this date. </p>
</div> ]]></description>
    <pubDate>Fri, 12 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/facebook-meta-orders-support-native-exchanges</link>
  </item>
  <item>
    <title>Metaobject field definitions offer new capabilities</title>
    <description><![CDATA[ <div class=""><h3>What's new</h3>
<p>As of  <code>2025-10</code>, metaobject fields can now be made searchable and filterable in the Shopify admin through the new <code>admin_filterable</code> capability, bringing metaobject fields in line with the existing capability framework used by metafield definitions and enabling merchants to filter metaobject lists by field values and create saved views based on field criteria.</p>
<h3>Implementation</h3>
<ol>
<li><strong>Creating or updating field definitions</strong>: When <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/metaobjectDefinitionCreate" target="_blank" class="body-link">creating</a> or <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/metaobjectdefinitionupdate" target="_blank" class="body-link">updating</a> metaobject field definitions through the Admin GraphQL API, you can now specify capabilities:</li>
</ol>
<pre><code class="language-graphql">mutation {
  metaobjectDefinitionCreate(definition: {
    name: &quot;Product Metadata&quot;
    type: &quot;product_metadata&quot;
    fieldDefinitions: [
      {
        key: &quot;brand&quot;
        name: &quot;Brand&quot;
        type: &quot;single_line_text_field&quot;
        capabilities: {
          adminFilterable: {
            enabled: true
          }
        }
      }
    ]
  }) {
    metaobjectDefinition {
      id
      fieldDefinitions {
        key
        capabilities {
          adminFilterable {
            enabled
          }
        }
      }
    }
  }
}
</code></pre>
<ol start="2">
<li><strong>Querying capability status</strong>: When <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/metaobjectDefinition" target="_blank" class="body-link">querying metaobject fields</a>, check the status of the <code>admin_filterable</code> capability:</li>
</ol>
<pre><code class="language-graphql">query {
  metaobjectDefinition(id: &quot;gid://shopify/MetaobjectDefinition/123&quot;) {
    fieldDefinitions {
      key
      name
      capabilities {
        adminFilterable {
          enabled
        }
      }
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Wed, 10 Sep 2025 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/metaobject-field-capabilities</link>
  </item>
  <item>
    <title>Removal of deprecated `Shop.draftOrders` connection in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>We are removing the <code>Shop.draftOrders</code> connection, which has already been deprecated for some time. This change is part of our ongoing efforts to streamline and improve the API's efficiency and functionality.</p>
<p><strong>What You Need to Do</strong></p>
<p>To ensure your integrations continue to function smoothly, please update your applications to use the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/QueryRoot#field-QueryRoot.fields.draftOrders" target="_blank" class="body-link"><code>QueryRoot.draftOrders</code></a> object for retrieving multiple draft orders. If you have any questions or need assistance, please refer to our <a href="https://shopify.dev/docs" target="_blank" class="body-link">developer documentation</a> or reach out to our support team.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Sep 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/removal-of-deprecated-shopdraftorders-connection-in-admin-graphql-api</link>
  </item>
  <item>
    <title>Upgrade to the latest version of Checkout Kit to avoid issues with iOS 26</title>
    <description><![CDATA[ <div class=""><p>Checkout Kit’s preloading feature is not compatible with the upcoming release of iOS 26. This incompatibility will prevent buyers from completing their checkout process within the app. If no action is taken, customers using devices with iOS 26 will encounter blank checkout pages and will be unable to finalize their purchases.</p>
<p>To prevent this issue, promptly update your apps to the latest versions of Checkout Kit. Use the following versions: <a href="https://github.com/Shopify/checkout-sheet-kit-swift/releases/tag/3.3.1" target="_blank" class="body-link">Swift 3.3.1</a>, <a href="https://github.com/Shopify/checkout-sheet-kit-android/releases/tag/3.5.1" target="_blank" class="body-link">Kotlin 3.5.1</a>, and <a href="https://github.com/Shopify/checkout-sheet-kit-react-native/releases/tag/3.3.1" target="_blank" class="body-link">React Native 3.3.1</a>.</p>
<p>For more information, <a href="https://shopify.dev/docs/storefronts/mobile/checkout-kit" target="_blank" class="body-link">learn more</a> about Shopify's Checkout Kit.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Sep 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/upgrade-to-the-latest-version-of-checkout-kit-to-avoid-issues-with-ios-26</link>
  </item>
  <item>
    <title>Introducing `functionHandle` for Shopify Functions </title>
    <description><![CDATA[ <div class=""><p>As of the <code>2025-10</code> API version, we’re introducing support for user-defined handles as the identifier for Shopify Functions in GraphQL mutations. Instead of passing a globally unique <code>functionId</code> in mutations that create or manage function owners, you can pass a stable, app-scoped handle that you define in your <code>shopify.extension.toml</code>. All GraphQL mutations that currently accept <code>functionId</code> will accept <code>functionHandle</code>. </p>
<p><strong>Note</strong>: You must provide either 'functionId' or 'functionHandle' for each call, not both. Providing both will result in a user error.</p>
<h3>What this does for you</h3>
<p>Function IDs change with each deployment to a different environment. This forces developers to query for the latest ID before they can create or update a function owner. Handles are stable across environments and scoped to your app, removing the need to query <code>shopifyFunction</code> before creating the function owner.</p>
<h3>No developer action required</h3>
<p>These changes will not break your existing integrations. <code>functionId</code> will continue to work. However, we recommend you update your code to use <code>functionHandle</code> instead:</p>
<ul>
<li>Remove code that queries for <code>functionId</code> at runtime.</li>
<li>Use the <code>functionHandle</code> you define in <code>shopify.extension.toml</code> directly in GraphQL mutations.</li>
</ul>
<p>Formal deprecation and removal timelines for <code>functionId</code> will be announced separately.</p>
<h3>Example Usage</h3>
<ol>
<li><p>Obtain <code>functionHandle</code> from the function's <code>shopify.extension.toml</code>:</p>
<pre><code class="language-toml">[[extensions]]
name = &quot;Payment Customization Function&quot;
handle = &quot;YOUR_FUNCTION_HANDLE&quot; 
  type = &quot;function&quot;
</code></pre>
</li>
<li><p>Create the payment customization using <code>functionHandle</code></p>
<pre><code class="language-graphql">mutation {
  paymentCustomizationCreate(paymentCustomization: {
    title: &quot;Payment Customization Title&quot;,
    enabled: true,
    functionHandle: &quot;YOUR_FUNCTION_HANDLE&quot;,
  }) {
    paymentCustomization {
      id
    }
    userErrors {
      message
    }
  }
}
</code></pre>
</li>
</ol>
</div> ]]></description>
    <pubDate>Mon, 01 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Functions</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/introducing-functionhandle</link>
  </item>
  <item>
    <title>Storefront API Cart now supports adding Gift Cards</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-10, you can use the GraphQL Storefront API to add gift cards to a cart without replacing gift cards that have already been applied.</p>
<p>After a cart has been created, perform the <a href="https://shopify.dev/docs/api/storefront/2025-10/mutations/cartGiftCardCodesAdd" target="_blank" class="body-link">cartGiftCardCodesAdd</a> mutation to add one or more gift cards to the cart.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-now-supports-adding-gift-cards</link>
  </item>
  <item>
    <title>New: Support for USDC Credit field in Shopify Payments Payout GraphQL</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2025-10</strong>, <code>ShopifyPaymentsPayoutSummary</code> now includes a <code>usdcRebateCreditAmount</code> field, which provides a total of all USDC rebate credits issued as part of the payout.</p>
<p>For more information about <code>ShopifyPaymentsPayoutSummary</code>, visit the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/objects/shopifypaymentspayoutsummary" target="_blank" class="body-link">Shopify.dev documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-support-for-usdc-credit-field-in-shopify-payments-payout-graphql</link>
  </item>
  <item>
    <title>Global HS code is now supported  in GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-10</code>, The <code>countryCode</code> field in <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CountryHarmonizedSystemCodeInput" target="_blank" class="body-link"><code>CountryHarmonizedSystemCodeInput</code></a> is now nullable. When set to <code>null</code>, the HS code (harmonized system code) entry represents a global HS code rather than a country-specific one.</p>
<p><strong>Why this matters</strong>
Many merchants work with global HS codes (typically 6-digit codes) that apply universally across countries before being extended with country-specific digits. This enhancement allows you to:</p>
<ul>
<li>Store global HS codes without requiring a specific country context</li>
<li>Reduce redundancy when the same base HS code applies across multiple countries</li>
<li>Better align with international trade practices where global codes serve as the foundation</li>
</ul>
<p><strong>Migration</strong>
No action required. This is a non-breaking change:</p>
<ul>
<li>Existing implementations that provide countryCode will continue to work unchanged</li>
<li>You can now optionally pass null for countryCode to create global HS code entries</li>
</ul>
<p><strong>Related resources</strong></p>
<ul>
<li>[Add HS codes and the country or region of origin to your products]<a href="https://help.shopify.com/en/manual/international/duties-and-import-taxes/charging-duties#add-hs-codes" target="_blank" class="body-link">https://help.shopify.com/en/manual/international/duties-and-import-taxes/charging-duties#add-hs-codes</a>)</li>
<li><a href="https://www.wcoomd.org/en/topics/nomenclature/overview/what-is-the-harmonized-system.aspx" target="_blank" class="body-link">International Trade Documentation</a></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Sep 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/country-hs-codes-global-value</link>
  </item>
  <item>
    <title>New enum values for FulfillmentEventStatus</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-10, we are introducing a new value to the <code>FulfillmentEventStatus</code> enum, to enhance your fulfillment tracking capabilities:</p>
<ul>
<li><strong><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/enums/FulfillmentEventStatus#enums-CARRIER_PICKED_UP" target="_blank" class="body-link">CARRIER_PICKED_UP</a>:</strong> This status indicates that the carrier has successfully collected the fulfillment.</li>
</ul>
<p>With this update, you can now track when a shipment has been picked up by the carrier. For more details, please refer to the updated <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/enums/FulfillmentEventStatus#enums-CARRIER_PICKED_UP" target="_blank" class="body-link">Shopify API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 30 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-carrier-picked-up-fulfillment-status</link>
  </item>
  <item>
    <title>Order metafield definitions and values can now be used as filters in the Shopify Admin UI</title>
    <description><![CDATA[ <div class=""><p>Order metafield definitions and values can now be used as filters in the Shopify Admin UI, enhancing the functionality of the order index. This update enables merchants and developers to efficiently manage and organize orders based on specific metafield criteria, streamlining order processing and improving operational efficiency.</p>
<p>Additionally, you can now query order metafield definitions through the Admin GraphQL API using the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/orders#argument-query-filter-metafields.%7Bnamespace%7D.%7Bkey%7D" target="_blank" class="body-link"><code>metafieldDefinitions</code> query</a>. This feature allows for more precise data retrieval and manipulation, giving developers greater control over order data.</p>
<p>Since orders are already <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/MetafieldOwnerType" target="_blank" class="body-link">a supported metafield owner type</a>, this change empowers apps and merchants to manage order-level metafield definitions more efficiently. By leveraging these enhancements, users can optimize their workflows and improve the overall management of order-related data.</p>
</div> ]]></description>
    <pubDate>Fri, 29 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/order-metafield-definitions-and-values-can-now-be-used-as-filters-in-the-shopify-admin-ui</link>
  </item>
  <item>
    <title>Store credit now supports company locations as account owners in Admin and Customer APIs</title>
    <description><![CDATA[ <div class=""><p>As of 2025-10, <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/storeCreditAccount" target="_blank" class="body-link">StoreCreditAccount</a> also support <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/companylocation" target="_blank" class="body-link">CompanyLocation</a> as owners, enabling location-specific credit management for B2B merchants on the Admin API. </p>
<p>B2B customers <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">authenticated</a> with new customer accounts can view and spend store credit at checkout for company locations they have permission to place orders for. </p>
<p>The Customer Account API now returns the company location's <a href="https://shopify.dev/docs/api/customer/latest/objects/StoreCreditAccount" target="_blank" class="body-link">StoreCreditAccount</a> for authenticated B2B customers.</p>
</div> ]]></description>
    <pubDate>Fri, 29 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/store-credit-now-supports-company-locations-as-account-owners-in-admin-and-customer-apis</link>
  </item>
  <item>
    <title>New components available for Polaris in Admin</title>
    <description><![CDATA[ <div class=""><p>We've updated Polaris with eight new unified components now available for Shopify Admin: </p>
<ul>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/forms/colorfield" target="_blank" class="body-link"><code>ColorField</code></a></li>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/forms/colorpicker" target="_blank" class="body-link"><code>ColorPicker</code></a></li>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/overlays/popover" target="_blank" class="body-link"><code>Popover</code></a></li>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/overlays/tooltip" target="_blank" class="body-link"><code>Tooltip</code></a></li>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/actions/menu" target="_blank" class="body-link"><code>Menu</code></a></li>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/titles-and-text/chip" target="_blank" class="body-link"><code>Chip</code></a></li>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/actions/clickablechip" target="_blank" class="body-link"><code>ClickableChip</code></a></li>
<li><a href="https://shopify.dev/docs/api/app-home/polaris-web-components/forms/dropzone" target="_blank" class="body-link"><code>DropZone</code></a></li>
</ul>
<p>They are already available to you via Shopify's CDN. To get started with these new components, <a href="https://shopify.dev/beta/next-gen-dev-platform/polaris" target="_blank" class="body-link">check out the developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 29 Aug 2025 12:00:00 +0000</pubDate>
    <category>Polaris</category>
    <category>New</category>
    <category>Admin Extensions</category>
    <category>App Bridge</category>
    <link>https://shopify.dev/changelog/new-components-available-for-polaris-in-admin</link>
  </item>
  <item>
    <title>Build an Announcement Bar Extension for the Thank You page or Customer Account Pages</title>
    <description><![CDATA[ <div class=""><p>We are excited to announce the release of support for building announcement bar extensions on the Thank You page and Customer Account pages, including the Order Status page, Order Index page, and Profile page. The announcement bar is a new UI-extension form factor that uses prominent placement, animation, and colors to capture buyers' attention. With this feature, you can create extensions that highlight a merchant's most important tasks on the page, such as surveys, reviews, and upsells.</p>
<p>You can start building an announcement bar extension now using the 2025-07 version of the Checkout and Customer Accounts UI extension APIs.</p>
<p>For more information on building an announcement bar extension, visit the <a href="https://shopify.dev/docs/apps/build/checkout/thank-you-order-status/ux-for-announcement-bar" target="_blank" class="body-link">Shopify developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 28 Aug 2025 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Checkout UI</category>
    <category>Customer Accounts</category>
    <link>https://shopify.dev/changelog/build-an-announcement-bar-extension-for-the-thank-you-page-or-customer-account-pages</link>
  </item>
  <item>
    <title>Next-Gen developer platform now available to all app developers</title>
    <description><![CDATA[ <div class=""><p><strong>What’s new for you:</strong></p>
<ul>
<li><strong>Create developer stores with any plan:</strong> Easily create dev stores on any Shopify plan, including Plus, to align with your target environments.</li>
<li><strong>Build and test without deploying:</strong> Instantly iterate on your app using the new app dev preview. Deploy only when you're ready.</li>
<li><strong>Manage metaobject definitions in code:</strong> Directly define and update your app’s custom data in your TOML files, eliminating the need to manage state via APIs.</li>
<li><strong>Streamline your workflow:</strong> Organize, monitor, and manage your apps in one centralized Dev Dashboard.</li>
</ul>
<p><strong>What’s changing:</strong></p>
<p>We're transitioning all apps and dev stores from the Partner Dashboard to the new Dev Dashboard. Your current installations will continue to function, but management will now occur on the new platform.</p>
<p><strong>Shopify will migrate your partner org's apps over the next week.</strong> If the migrated apps have extensions, you'll need to run <code>shopify app deploy</code> in order for their extensions to be updated.</p>
<p>If you use dashboard-managed extensions, migrate them to the CLI or remove them, as they won't function on the new platform. Post-migration, you can deploy and manage app versions via the CLI or Dev Dashboard.</p>
<p><strong>Why this matters:</strong></p>
<p>This update provides a faster feedback loop, greater control over your data models, and a unified platform for app management. The new platform is designed to support modern app development at scale, allowing you to focus on creating exceptional merchant experiences.</p>
<p><strong>Next steps:</strong></p>
<ul>
<li>Explore the <a href="https://shopify.dev/docs/apps/build/dev-dashboard" target="_blank" class="body-link">documentation</a> for detailed information on the new workflow.</li>
<li>Review and update your extensions as necessary.</li>
<li>Make sure you're on the latest version of Shopify CLI (3.84.1 or newer)</li>
</ul>
<p>If you have questions or need assistance with migration, refer to the documentation or engage with the developer forums.</p>
</div> ]]></description>
    <pubDate>Wed, 27 Aug 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/next-gen-dev-platform-ga</link>
  </item>
  <item>
    <title>`@inContext` directive supports visitor consent for privacy-compliant checkouts</title>
    <description><![CDATA[ <div class=""><p>The <code>@inContext</code> directive now includes a <code>visitorConsent</code> parameter, allowing developers to pass buyer consent preferences—such as analytics, preferences, marketing, and sale of data—to cart operations. This consent information is automatically encoded into the resulting <a href="/docs/api/storefront/latest/objects/Cart#field-Cart.fields.checkoutUrl" target="_blank" class="body-link"><code>checkoutUrl</code></a>, ensuring privacy compliance throughout the checkout process.</p>
<p>This enhancement allows developers using Checkout Kit and other integrations to seamlessly collect and transmit buyer consent, thereby supporting privacy regulations and maintaining a smooth checkout experience.</p>
<p><strong>Key features:</strong></p>
<ul>
<li>Optional consent fields for analytics, preferences, marketing, and sale of data</li>
<li>Automatic encoding of consent into checkout URL via the <code>_cs</code> parameter</li>
<li>Compatibility with existing cart mutations and queries</li>
</ul>
<p><a href="/docs/api/storefront#directives" target="_blank" class="body-link">Learn more about the <code>@inContext</code> directive and visitor consent →</a></p>
</div> ]]></description>
    <pubDate>Tue, 26 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/incontext-directive-supports-visitor-consent-for-privacy-compliant-checkouts</link>
  </item>
  <item>
    <title>New PRESERVE_STANDALONE_VARIANT strategy for the productVariantsBulkCreate mutation</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version <code>2025-10</code>, we have introduced a new value, <code>PRESERVE_STANDALONE_VARIANT</code>, to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/ProductVariantsBulkCreateStrategy" target="_blank" class="body-link"><code>ProductVariantsBulkCreateStrategy</code></a>. This value can be used as an optional argument in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate" target="_blank" class="body-link"><code>productVariantsBulkCreate</code></a> mutation.</p>
<p>The <code>PRESERVE_STANDALONE_VARIANT</code> strategy ensures that any existing standalone variant, whether default or custom, is retained when executing the <code>productVariantsBulkCreate</code> mutation.</p>
<p>For more detailed information and examples, please visit our <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate" target="_blank" class="body-link">productVariantsBulkCreate documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Fri, 22 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-preservestandalonevariant-strategy-for-productvariantsbulkcreate-mutation</link>
  </item>
  <item>
    <title>Shopify Dev MCP now supports Liquid</title>
    <description><![CDATA[ <div class=""><p>The Shopify Dev MCP server can now search for Liquid docs, and validate Liquid to catch common errors before deployment:</p>
<ul>
<li><strong>Liquid Documentation:</strong> Your AI assistant can now search the complete Liquid API reference, which includes all objects, filters, and tags. </li>
<li><strong>Code Validation:</strong> The built-in theme-check integration identifies syntax errors and best practice violations in your generated code, helping you maintain high-quality standards.</li>
</ul>
<p>If you're already using the Shopify Dev MCP server, Liquid support is automatically included in the latest version.</p>
<p>View the <a href="https://shopify.dev/docs/apps/build/devmcp" target="_blank" class="body-link">Shopify Dev MCP server</a> documentation or explore the <a href="https://github.com/Shopify/dev-mcp" target="_blank" class="body-link">source code on GitHub</a> for more details.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Aug 2025 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/dev-mcp-now-supports-liquid</link>
  </item>
  <item>
    <title> Enhanced delivery profile webhooks now include additional payload fields</title>
    <description><![CDATA[ <div class=""><h2>Enhanced Delivery Profile Webhooks Now Include Additional Payload Fields</h2>
<p>We've improved the <code>profiles/update</code> webhook by adding more comprehensive payload information. This enhancement significantly increases webhook reliability and reduces unnecessary debouncing.</p>
<h3>What's New</h3>
<p>Previously, <code>profiles/update</code> webhooks only included the profile ID in their payload. This minimal payload led to an issue where multiple rapid updates to the same delivery profile were debounced by our webhook delivery system, meaning only the first update within a 15-minute window would reach your app.</p>
<p>Now, when you subscribe to <code>profiles/update</code> webhooks, you'll receive these additional fields:</p>
<ul>
<li><code>name</code>: The profile's display name</li>
<li><code>default</code>: Indicates if this is the default delivery profile</li>
<li><code>profile_type</code>: The type of delivery profile</li>
<li><code>version</code>: An integer that gets incrementned whenever the profile or its shipping rates are modified</li>
</ul>
<h3>Why This Matters</h3>
<p>If your app responds to delivery profile changes—such as for shipping rate synchronization, fulfillment optimization, or carrier integrations—you can now reliably receive every update. This is especially useful when merchants make quick successive changes to their shipping configurations, such as:</p>
<ul>
<li>Adjusting weight-based rate conditions</li>
<li>Modifying zone configurations</li>
<li>Updating multiple shipping rates in sequence</li>
</ul>
<p>The new <code>version</code> field acts as a fingerprint of the profile's current state. It increments whenever the profile or its associated shipping rates are modified, ensuring each webhook has a unique payload that won't be debounced.</p>
<h3>Using the Enhanced Payload</h3>
<p>The enhanced payload structure is as follows:</p>
<pre><code class="language-json">{
  &quot;id&quot;: 123456789,
  &quot;name&quot;: &quot;Standard Shipping&quot;,
  &quot;default&quot;: false,
  &quot;profile_type&quot;: &quot;shipping&quot;,
  &quot;version&quot;: &quot;1&quot;
}
</code></pre>
<p>This enhancement is available now in API version <code>unstable</code> and will be included in the next stable API release.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Webhook</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/enhanced-delivery-profile-webhooks-now-include-additional-payload-fields</link>
  </item>
  <item>
    <title>Deprecation of the checkout_and_accounts_configurations/update webhook</title>
    <description><![CDATA[ <div class=""><p>The <code>checkout_and_accounts_configurations/update</code> webhook, originally introduced in API version 2025-04 to help track updates to checkout and accounts configurations, will be removed on January 1, 2026. </p>
<h3>Action required:</h3>
<p>Apps still subscribed to the <code>checkout_and_accounts_configurations/update</code> webhook should unsubscribe before the removal date.</p>
<p>For tracking <strong>Thank You</strong> and <strong>Order status</strong> page upgrades, we recommend using the Admin API <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile#field-CheckoutProfile.fields.typOspPagesActive" target="_blank" class="body-link">checkoutProfiles</a> query, which includes the <code>typOspPagesActive</code> boolean field to access the same information. This change simplifies the developer experience based on community feedback.</p>
<p>Learn more about working with checkout profiles in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile" target="_blank" class="body-link">Shopify developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Aug 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Webhook</category>
    <category>2026-01</category>
    <link>https://shopify.dev/changelog/deprecation-of-checkoutandaccountsconfigurationsupdate-webhook</link>
  </item>
  <item>
    <title>New: Support for nested cart lines</title>
    <description><![CDATA[ <div class=""><p>New fields have been introduced to enable parent-child (nested) relationships between cart lines, supporting use cases such as warranties, engravings, and gift-wrapping.</p>
<ul>
<li><p>Nested cart lines are now supported in the Cart AJAX API, and as of version 2025-10, in Storefront API and Checkout UI Extensions.</p>
</li>
<li><p>Nested (child) lines reference their parent using a dedicated parent field: Use <code>parentId</code> or <code>parent_line_key</code> (Cart AJAX API), <code>parentID</code> (Checkout UI Extensions), <code>parent.lineId</code> or <code>parent.merchandiseId</code> (Storefront API).</p>
</li>
</ul>
<p>To learn more about the impacted APIs and fields, click <a href="https://shopify.dev/docs/apps/build/product-merchandising/nested-cart-lines" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>Checkout UI</category>
    <category>Customer Account API</category>
    <category>Customer Accounts</category>
    <category>Liquid</category>
    <category>Storefront GraphQL API</category>
    <category>Webhook</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-support-for-nested-cart-lines</link>
  </item>
  <item>
    <title>Shopify Payments Payout GraphQL type supports `external_trace_id`</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2025-10</strong>, ShopifyPaymentsPayout now includes <code>externalTraceId</code> field</p>
<p>The <code>externalTraceId</code> field provides a unique reference identifier for tracking payouts across external payment systems and financial institutions. </p>
<p>For more information about <code>ShopifyPaymentsPayout</code>, visit the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/objects/shopifypaymentspayout" target="_blank" class="body-link">Shopify.dev documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/shopify-payments-payout-graphql-type-supports-externaltraceid</link>
  </item>
  <item>
    <title>Font library updates: automatic replacement for deprecated fonts</title>
    <description><![CDATA[ <div class=""><p>As part of our ongoing move towards open source fonts, we're implementing a gradual automatic font replacement. All deprecated fonts used in online store themes, checkout, and the Shopify Forms app will be automatically replaced with fonts of a similar style.</p>
<p>This automatic replacement will happen gradually throughout August 2025. Merchants using deprecated fonts will see their stores updated with replacement fonts that maintain similar visual characteristics to their original selections.</p>
<p>If you're building themes for the Theme Store, you should have already updated your theme presets by the January 3, 2025 deadline. If you haven't yet, review our <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/fonts#deprecated-fonts" target="_blank" class="body-link">deprecated fonts list</a> and update any affected presets with our recommended replacements or any other available font of your choice.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Aug 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/font-library-updates-automatic-replacement-for-deprecated-fonts</link>
  </item>
  <item>
    <title>Support for bulk ad campaign search terms export</title>
    <description><![CDATA[ <div class=""><p>Shopify partners can now export search term performance data with detailed targeting breakdowns for multiple ad campaigns simultaneously. Previously, this granular data was only available for one campaign at a time.</p>
<p>With the new export option, you can view search term performance across multiple ad campaigns, categorized by:</p>
<ul>
<li>Country/region</li>
<li>Device type</li>
<li>Shop plan</li>
</ul>
<p>To use this feature, go to the ad campaigns overview page. Select the ad campaigns you want to analyze, then click <strong>Actions</strong> and choose <strong>Export</strong>. Select the new option labeled &quot;Performance by search terms, categorized by country/region, shop plan, and device type.&quot; This will download comprehensive data for your selected ad campaigns.</p>
<p>For more information, visit the <a href="https://shopify.dev/docs/apps/launch/marketing/advertising/check-ad-performance#report-types" target="_blank" class="body-link">Shopify Developer Documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 02 Aug 2025 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/support-for-bulk-ad-campaign-search-terms-export</link>
  </item>
  <item>
    <title>Orders query now supports `current_total_price` and `total_weight` filters and `CURRENT_TOTAL_PRICE` as a `sortKey`</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/unstable/queries/orders" target="_blank" class="body-link">orders</a> <code>query</code> argument now supports the <code>current_total_price</code> (<a href="https://shopify.dev/docs/api/admin-graphql/unstable/queries/orders#argument-query-filter-current_total_price" target="_blank" class="body-link">documentation</a>) and <code>total_weight</code> (<a href="https://shopify.dev/docs/api/admin-graphql/unstable/queries/orders#argument-query-filter-total_weight" target="_blank" class="body-link">documentation</a>) filters. Additionally, we've introduced the ability to use <code>sortKey</code> with <code>CURRENT_TOTAL_PRICE</code> (<a href="https://shopify.dev/docs/api/admin-graphql/unstable/queries/orders#arguments-sortKey.enums.CURRENT_TOTAL_PRICE" target="_blank" class="body-link">documentation</a>).</p>
</div> ]]></description>
    <pubDate>Fri, 01 Aug 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/orders-query-now-supports-currenttotalprice-and-totalweight-filters-and-currenttotalprice-as-a-sortkey</link>
  </item>
  <item>
    <title>Removal of support for the &quot;Sell from all locations&quot; fulfillable inventory setting</title>
    <description><![CDATA[ <div class=""><p>As of July 28, 2025, &quot;Sell only within configured shipping zones&quot; has been enabled on nearly all shops at checkout. This change ensures that customers can only purchase products that are available at fulfillment locations configured to deliver to their shipping zone. This setting will continue to be removed up until September 30, 2025.</p>
<p>&quot;Sell from all locations to all shipping zones&quot; remains an option to control <em>storefront behaviour</em> for merchants who have not previously enabled the &quot;Sell only within configured shipping zones&quot; option.</p>
<p>This update helps prevent overselling and reduces issues such as canceled orders due to regional stock unavailability or the need for manual order corrections.</p>
<p>Developers should note that apps using Shopify APIs to manage recurring subscription orders might encounter an increase in errors that occur when products are unavailable at fulfillment locations that ship to the customer. Additionally, apps managing shipping settings or inventory should ensure that inventory is in stock at locations with valid delivery methods in order to be available for purchase.</p>
<p>See the <a href="https://help.shopify.com/manual/fulfillment/setup/fulfillable-inventory" target="_blank" class="body-link">help documentation</a> to learn more about fulfillable inventory.</p>
</div> ]]></description>
    <pubDate>Thu, 31 Jul 2025 16:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/removal-of-support-for-sell-from-all-locations-fulfillable-inventory-setting</link>
  </item>
  <item>
    <title>Deprecation of the `ProductVariant.taxCode` field</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version <code>2025-10</code>, we are deprecating the <code>taxCode</code> field from the <code>ProductVariant</code> object. This change is part of the Avalara AvaTax app deprecation and will affect how you handle tax classification for product variants.</p>
<p>The <code>taxCode</code> field on <code>ProductVariant</code> objects will not be available in future API versions. If your app currently relies on this field for tax calculations or reporting, you must update your implementation before the field is fully removed.</p>
<h2>Why We're Making This Change</h2>
<p>We are deprecating the <code>taxCode</code> field because the Avalara AvaTax app, which powered this functionality, is being discontinued. <strong>This field applies only to the stores that have the Avalara AvaTax app installed.</strong></p>
<h2>What You Need to Do</h2>
<p>If your app uses the <code>taxCode</code> field, you should:</p>
<ol>
<li><strong>Audit Your Current Implementation</strong>: Identify where your app reads or writes the <code>taxCode</code> field.</li>
<li><strong>Update Your GraphQL Queries</strong>: Remove references to the <code>taxCode</code> field from your queries and mutations.</li>
<li><strong>Test Thoroughly</strong>: Ensure your app continues to function correctly without the deprecated field.</li>
</ol>
<h2>Timeline</h2>
<p>The <code>taxCode</code> field will continue to return data through API version <code>2025-10</code>. However, you should migrate away from it as soon as possible, as future API versions will not include this field.</p>
<h2>Learn More</h2>
<p>For more information on the deprecation of the Avalara AvaTax app, refer to the documentation on <a href="https://help.shopify.com/en/manual/taxes/tax-services#migrating-from-avatax" target="_blank" class="body-link">migrating from AvaTax</a>.</p>
<p>For guidance on using the new Avalara Tax Compliance app, refer to the documentation on <a href="https://knowledge.avalara.com/bundle/uqa1710993217954_uqa1710993217954/page/dir1743588192947.html" target="_blank" class="body-link">mapping Avalara tax codes in Shopify</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 31 Jul 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/deprecation-of-tax-code-field</link>
  </item>
  <item>
    <title>New guidelines for `referenceDocumentUri` in inventory adjustments</title>
    <description><![CDATA[ <div class=""><p>We've released new guidelines and updated documentation for the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryAdjustQuantities#arguments-input.fields.referenceDocumentUri" target="_blank" class="body-link"><code>referenceDocumentUri</code></a> field in <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryAdjustQuantities" target="_blank" class="body-link">inventory adjustment mutations</a>. By following these guidelines, your apps can maintain inventory traceability, which helps merchants troubleshoot issues and conduct audits more easily. Access the field in admin via the &quot;Inventory adjustment changes&quot; report in Analytics or on the Adjustment History Page. </p>
<p><strong>What’s new:</strong></p>
<ul>
<li>Detailed guidelines for using the <code>referenceDocumentUri</code> field to link each inventory adjustment to its source system and document.</li>
<li>Recommendations for adopting the Global ID (GID) format (<code>gid://namespace/entity/id</code>) to maintain consistency across integrations.</li>
<li>Support for various URI formats, including URLs and custom schemes, ensuring backward compatibility.</li>
<li>Best practices for defining namespaces and entity types.</li>
<li>Code examples for Warehouse Management Systems (WMS), Third-Party Logistics (3PL), Point of Sale (POS), and Enterprise Resource Planning (ERP) integrations.</li>
<li>Migration guides for updating existing implementations.</li>
<li>Validation rules and format specifications.</li>
</ul>
<p><strong>These updates enable you to:</strong></p>
<ul>
<li>Provide merchants with comprehensive audit trails for compliance.</li>
<li>Display your app’s name in Shopify admin inventory history.</li>
<li>Trace inventory changes back to their origin, simplifying troubleshooting.</li>
</ul>
<p>To implement, you'll incorporate the <code>referenceDocumentUri</code> field into the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryAdjustQuantities" target="_blank" class="body-link"><code>inventoryAdjustQuantities</code> mutation</a>.</p>
<p><a href="https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps" target="_blank" class="body-link">Explore the updated guidelines and documentation</a></p>
<p><img src="https://screenshot.click/31-17-gbq55-o3ax8.png" alt=""> </p>
<p><img src="https://screenshot.click/31-18-jrogx-a5slu.png" alt=""></p>
</div> ]]></description>
    <pubDate>Sat, 26 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-guidelines-for-referencedocumenturi-in-inventory-adjustments</link>
  </item>
  <item>
    <title>Storefront API Cart now supports replacing Cart delivery addresses</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-10 of the GraphQL Storefront API, you can replace all delivery addresses that are present on a cart in a single operation.</p>
<p>The new <a href="https://shopify.dev/docs/api/storefront/2025-10/mutations/cartDeliveryAddressesReplace" target="_blank" class="body-link"><code>cartDeliveryAddressesReplace</code> </a> mutation accepts an <code>addresses</code> field for specifying the list of delivery addresses to replace. </p>
</div> ]]></description>
    <pubDate>Sat, 26 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-now-supports-replacing-cart-delivery-addresses</link>
  </item>
  <item>
    <title>Order Editing API supports discounts on fulfilled line items</title>
    <description><![CDATA[ <div class=""><p>You can now apply discounts to line items that have already been fulfilled using the order editing API, resulting in more flexible order adjustments. The <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditAddLineItemDiscount" target="_blank" class="body-link"><code>orderEditAddLineItemDiscount</code></a> mutation now supports discount application to both fulfilled and unfulfilled line items.</p>
<p>What this means for you:</p>
<ul>
<li>Clearer transaction history: Discounts on fulfilled items improve post-purchase financial attribution and reporting.</li>
<li>Simplified order management:Orders automatically unarchive when you begin editing and re-archive after issuing refunds, eliminating the need for manual archive management.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 24 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/order-editing-api-supports-discounts-on-fulfilled-line-items</link>
  </item>
  <item>
    <title>_shopify_y and _shopify_s cookies will no longer be set</title>
    <description><![CDATA[ <div class=""><h3>What's changing?</h3>
<p>Starting on January 1st, 2026 Shopify will no longer set the following cookies on merchant storefronts:</p>
<ul>
<li><code>_shopify_s</code></li>
<li><code>_shopify_y</code></li>
</ul>
<h3>Required updates</h3>
<p>While accessing internal cookie values is never recommended as they frequently change, any code that currently accesses the cookie values will need to be adapted to use documented APIs.</p>
<h4><code>_shopify_y</code></h4>
<p>If you're accessing this value via <code>document.cookie</code> you'll have to use <a href="https://shopify.dev/docs/apps/build/marketing-analytics/pixels" target="_blank" class="body-link">Web Pixels</a> and particularly the <code>clientID</code> property of any Standard or DOM event (See <a href="https://shopify.dev/docs/api/web-pixels-api" target="_blank" class="body-link">API reference</a>).</p>
<p>This example shows a Custom Pixel, but this would work with a Web Pixel App Extension as well.</p>
<ul>
<li>Go to Admin &gt; Settings &gt; Customer Events &gt; Custom Pixels</li>
<li>The following JavaScript within a web pixel would log the ID formerly known as <code>_shopify_y</code> on every page view, assuming proper user consent is given:</li>
</ul>
<pre><code class="language-javascript">analytics.subscribe('page_viewed', (event) =&gt; {
  console.log(&quot;The client's ID is &quot;, event.clientId);
});
</code></pre>
<h4><code>_shopify_s</code></h4>
<p>Shopify will not offer a replacement value. However, as part of the browser APIs (or <a href="https://shopify.dev/docs/api/web-pixels-api/standard-api/browser" target="_blank" class="body-link">Web Pixels API’s <code>browser</code> interface</a>) it is possible to create a session-length cookie, which is equivalent functionality.</p>
</div> ]]></description>
    <pubDate>Tue, 22 Jul 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/shopifyy-and-shopifys-cookies-will-no-longer-be-set</link>
  </item>
  <item>
    <title>Hydrogen deploys automatically add preview URLs to Customer Account API application setup</title>
    <description><![CDATA[ <div class=""><p>When a Hydrogen branch is deployed, its new preview URL is automatically added to the application setup for the Customer Account API. This ensures that OAuth redirects, logouts, and JavaScript-origin checks continue to function seamlessly across deployments without requiring manual updates to settings. While these auto-added URLs are hidden from the settings page, any URIs added directly in the Admin remain visible and editable.</p>
</div> ]]></description>
    <pubDate>Tue, 22 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Customer Account API</category>
    <link>https://shopify.dev/changelog/automatically-add-preview-urls-to-customer-account-api-setup</link>
  </item>
  <item>
    <title>MerchandiseSellingPlanNotApplicableOnCompanyLocation warning code for Storefront API</title>
    <description><![CDATA[ <div class=""><p>Starting with API version 2025-10 of the GraphQL Storefront API, we have introduced the <code>SELLING_PLAN_NOT_APPLICABLE_ON_COMPANY_LOCATION</code> warning code to the  <a href="https://shopify.dev/docs/api/storefront/2025-10/enums/CartWarningCode" target="_blank" class="body-link">CartWarningCode enum</a>. This warning code is triggered when a logged in B2B customer creates a cart with a selling plan or adds a merchandise item with a selling plan to their cart.</p>
</div> ]]></description>
    <pubDate>Mon, 21 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/sellingplannotapplicableoncompanylocation-warning-code-for-storefront-api</link>
  </item>
  <item>
    <title>Meta Pixel Full Funnel Installation Tracking</title>
    <description><![CDATA[ <div class=""><p>We have added support for the <a href="https://developers.facebook.com/docs/marketing-api/conversions-api/" target="_blank" class="body-link">Meta Pixel Conversions API</a>, enabling server-side tracking of app installations. This API allows developers to track <code>Purchase</code> events when merchants install their apps, enhancing attribution accuracy for Facebook advertising campaigns.</p>
<p>To take advantage of this feature, Partners can now <a href="https://shopify.dev/docs/apps/launch/marketing/track-listing-traffic#set-up-facebook-pixel-for-your-app-listing" target="_blank" class="body-link">add their Facebook Pixel tracking ID to their app's <strong>Distribution</strong> settings</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 19 Jul 2025 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/meta-pixel-full-funnel-installation-tracking</link>
  </item>
  <item>
    <title>Analytics API now available for Customer Account UI extensions</title>
    <description><![CDATA[ <div class=""><p>Starting from version <code>2025-07</code>, <a href="https://shopify.dev/docs/api/customer-account-ui-extensions/2025-07" target="_blank" class="body-link">Customer Account UI extensions</a> will have the capability to access the <a href="https://shopify.dev/docs/api/customer-account-ui-extensions/2025-07/apis/analytics" target="_blank" class="body-link">analytics object</a> from the Standard API. This enhancement allows you to publish custom events to <a href="https://shopify.dev/docs/api/web-pixels-api" target="_blank" class="body-link">Shopify Web Pixels</a> directly from your extensions, enabling percise tracking of customer interactions with your extension.</p>
<p>Note: To ensure your extension is up to date, please consider updating <code>@shopify/ui-extensions</code> and <code>@shopify/ui-extensions-react</code> to the most recent stable version, <code>2025.7.1</code> or later</p>
<p><a href="https://shopify.dev/docs/api/customer-account-ui-extensions/2025-07/apis/analytics" target="_blank" class="body-link">Read more</a> about how to implement the analytics API in customer accounts.</p>
</div> ]]></description>
    <pubDate>Fri, 18 Jul 2025 19:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Accounts</category>
    <link>https://shopify.dev/changelog/analytics-api-now-available-for-customer-account-ui-extensions</link>
  </item>
  <item>
    <title>Payments App extensions deployment just got faster</title>
    <description><![CDATA[ <div class=""><p>You can now deploy payments app extensions instantly without waiting for manual review from Shopify. We've replaced our manual configuration review process with automated validation that gives you immediate feedback directly in your CLI.</p>
<p><strong>What this means for you:</strong></p>
<ul>
<li>Deploy immediately: No more waiting for approval—push your payments app extension updates to merchants as soon as they're ready</li>
<li>Catch issues faster: Get instant feedback on configuration problems during submission, so you can fix them before deployment</li>
<li>Stay compliant automatically: We'll validate that your extension supports test mode, uses stable API versions, and includes payments methods that match your extension type</li>
</ul>
<p><strong>How it works:</strong>
  When you submit through Shopify CLI, your TOML configuration is automatically evaluated and you'll get immediate feedback on any issues. The deployment process remains the same—just without the manual review step.</p>
</div> ]]></description>
    <pubDate>Fri, 18 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Payments Apps API</category>
    <link>https://shopify.dev/changelog/payment-app-extensions-deployment-just-got-faster</link>
  </item>
  <item>
    <title>Sunsetting Flex sections developer preview</title>
    <description><![CDATA[ <div class=""><p>We've closed the Flex sections developer preview as of July 14th. This preview included theme blocks and style settings.</p>
<p>Theme blocks are now available to all theme developers. You can start using theme blocks immediately to create reusable modules for structuring content within sections. Learn more about <a href="https://shopify.dev/docs/storefronts/themes/architecture/blocks/theme-blocks" target="_blank" class="body-link">theme blocks</a> in our documentation.</p>
<p>Style settings are no longer supported as we plan to explore different approaches in the future. You can remove any references to style settings from your development stores.</p>
</div> ]]></description>
    <pubDate>Fri, 18 Jul 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/sunsetting-flex-sections-developer-preview</link>
  </item>
  <item>
    <title>Shopify App Store reviews now move between published and archived states based on merchant status</title>
    <description><![CDATA[ <div class=""><p>Our review system continues to evolve to prioritize relevant and trusted reviews. </p>
<ul>
<li>Reviews are archived if they’re left by stores that are on a trial or discounted plan, or that are no longer active. </li>
<li>Archived reviews are automatically re-published once the store has paid for a full priced plan or reactivates.</li>
<li>Developers will receive an email notification for each new review, indicating if it is published or archived.</li>
</ul>
<p>Learn more about archiving and unpublishing criteria in our <a href="https://shopify.dev/docs/apps/launch/marketing/manage-app-reviews#archived-and-unpublished-reviews" target="_blank" class="body-link">help docs</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 17 Jul 2025 16:15:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-app-store-reviews-now-move-between-published-and-archived-states-based-on-merchant-status</link>
  </item>
  <item>
    <title>New `mandate` connection added to `CustomerPaymentMethod` object</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-10, apps with <a href="https://shopify.dev/docs/api/usage/access-scopes#authenticated-access-scopes" target="_blank" class="body-link"><code>read_customer_payment_methods</code></a> scope can query the new <code>mandate</code> connection on the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod" target="_blank" class="body-link"><code>CustomerPaymentMethod</code></a> object. </p>
<p>This connection returns what each payment method is authorized for (orders, subscriptions, checkout, etc.) via the <code>resourceType</code> field and the <code>resourceId</code> when applicable.</p>
</div> ]]></description>
    <pubDate>Thu, 17 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/new-mandate-connection-added-to-customerpaymentmethod-object</link>
  </item>
  <item>
    <title>Updates effective July 16 to our Partner Program Agreement and API License and Terms of Use</title>
    <description><![CDATA[ <div class=""><p>EFFECTIVE Wednesday, July 16, 2025 ACTION REQUIRED</p>
<p>We've made changes to our <a href="https://www.shopify.ca/partners/terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Partner Program Agreement</a> and <a href="https://www.shopify.com/legal/api-terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">API License and Terms of Use</a>. These updates include terms that are intended to support the growth of Shopify Partners and Merchants, while ensuring the continued reliability and performance of our platform and its offerings.</p>
<p>These changes come into effect as of today, July 16 2025. Updates to Revenue Share are effective January 1, 2025.</p>
<p>Continued use of Shopify services on or after Wednesday, July 16, 2025 confirms that you’ve read, understood, and accepted these new terms.</p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 16 Jul 2025 18:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-effective-july-16-to-our-partner-program-agreement-and-api-license-and-terms-of-use</link>
  </item>
  <item>
    <title>Web Pixels now run on Customer Accounts and Order Status Page</title>
    <description><![CDATA[ <div class=""><p>Web pixels now automatically load on Customer Account and Order Status pages, enabling you to track the entire customer journey from discovery to order management.</p>
<ul>
<li>Shops must use a <a href="https://help.shopify.com/en/manual/domains/add-a-domain/connecting-domains/connect-domain-customer-account" target="_blank" class="body-link">custom domain</a> (e.g., <code>accounts.your-store.com</code>) for customer accounts.</li>
<li>The <a href="https://shopify.dev/docs/api/web-pixels-api/standard-events/page_viewed" target="_blank" class="body-link"><code>page_viewed</code></a> events and the <a href="https://shopify.dev/docs/api/web-pixels-api/advanced-dom-events" target="_blank" class="body-link">Advanced DOM API</a> are supported.</li>
<li>You can publish <a href="https://shopify.dev/docs/api/web-pixels-api/emitting-data#publishing-custom-events" target="_blank" class="body-link">custom events</a> through a <a href="https://shopify.dev/docs/api/customer-account-ui-extensions" target="_blank" class="body-link">UI extension</a>.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 15 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/web-pixels-now-run-on-customer-accounts-and-order-status-page</link>
  </item>
  <item>
    <title>New fields for inventory shipment timestamps</title>
    <description><![CDATA[ <div class=""><p>You can now access inventory shipment timestamps through the Admin GraphQL API. You can now use the <code>dateCreated</code>, <code>dateReceived</code>, and <code>dateShipped</code> fields within the <code>InventoryShipment</code> type. Additionally, you can set timestamp values using the following mutations:</p>
<ul>
<li><code>inventoryShipmentCreate</code>: Includes <code>dateCreated</code> in the input to specify the creation date of the shipment.</li>
<li><code>inventoryShipmentMarkInTransit</code>: Accepts <code>dateShipped</code> as an argument to indicate when the shipment was dispatched.</li>
<li><code>inventoryShipmentReceive</code>: Uses <code>dateReceived</code> as an argument to denote when the shipment was initially received.</li>
</ul>
<p>All the above timestamp fields return dates in UTC format. They are currently accessible via the unstable version of the API and will be available in the stable admin GraphQL API version 2025-10.</p>
</div> ]]></description>
    <pubDate>Tue, 15 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/inventory-shipment-timestamp-fields</link>
  </item>
  <item>
    <title>Improved theme discovery and merchandising on the Shopify Theme Store </title>
    <description><![CDATA[ <div class=""><p>We’ve rolled out several updates to the Shopify Theme Store that help merchants find the right theme faster—while giving your themes more visibility:</p>
<p><strong>Dedicated theme cards and listing pages for theme presets</strong> 
Each preset now has its own theme card and listing page, providing greater opportunity to merchandise themes to specific industries and catalog sizes.</p>
<p><strong>Embedded demo store experience on the theme listing page</strong>
The demo store now loads directly on the theme listing page, so merchants can explore without navigating away.</p>
<p><strong>Updated industry and catalog size filters</strong>
Theme Store filters have been updated to make it easier for merchants to get more granular in their search. </p>
<p>These changes aim to improve theme discoverability and help connect merchants with the themes that best fit their needs.</p>
<p>Explore these changes on the <a href="https://themes.shopify.com/themes" target="_blank" class="body-link">Shopify Theme Store</a></p>
</div> ]]></description>
    <pubDate>Mon, 14 Jul 2025 16:00:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/improved-theme-discovery-and-merchandising-on-the-shopify-theme-store</link>
  </item>
  <item>
    <title>The `_ab` cookie will no longer be set</title>
    <description><![CDATA[ <div class=""><h3>What's changing?</h3>
<p>Starting on August 18th, 2025, Shopify will no longer set the <code>_ab</code> cookie on merchant storefronts or checkout. This cookie was used to enable/disable the preview bar.</p>
<p>You can hide the preview bar while previewing a theme by adding the <code>pb=0</code> parameter to the URL.</p>
</div> ]]></description>
    <pubDate>Sat, 12 Jul 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/the-ab-cookie-will-no-longer-be-set</link>
  </item>
  <item>
    <title>Add option to filter by dispute type in OrderListQuery GraphQL query</title>
    <description><![CDATA[ <div class=""><p>A new filter called <code>dispute_type</code> has been added to the available filters in the Order list (GraphQL query <code>OrderListData</code>). It is a multiple choice filter that allows to show only orders that have a <code>chargeback</code> and/or an <code>inquiry</code> associated with it.</p>
</div> ]]></description>
    <pubDate>Sat, 12 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/add-option-to-filter-by-dispute-type-in-order-list</link>
  </item>
  <item>
    <title>Determine extension status with the new `shopify.app.extensions()` method in App Bridge </title>
    <description><![CDATA[ <div class=""><p>You can now use the <code>shopify.app.extensions()</code> method in App Bridge to identify which of your checkout and customer account extensions are active on a merchant’s store. This feature simplifies tracking setup progress and assists in guiding merchants through onboarding.</p>
<p>With the <code>shopify.app.extensions()</code> method, your embedded app can query its checkout and customer account extensions. For each extension, you’ll receive:</p>
<ul>
<li><code>handle</code>: The extension handle from your TOML file  </li>
<li><code>activations</code>: Lists the targets where each extension is live (e.g., <code>purchase.thank-you.block.render</code>)</li>
</ul>
<p>This data helps you show merchants what’s configured and what requires attention, particularly useful when migrating to the <strong>Thank You</strong> and <strong>Order Status</strong> pages.</p>
<p>This initial release supports only checkout and customer account extensions.</p>
<p>For more information, refer to the <a href="https://shopify.dev/docs/api/app-bridge-library/apis/app" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 10 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>App Bridge</category>
    <link>https://shopify.dev/changelog/app-bridge-extension-api</link>
  </item>
  <item>
    <title>Server Pixels: added `subtotal_price` to checkout events</title>
    <description><![CDATA[ <div class=""><p>The <code>subtotal_price</code> field has been added to Server Pixel events to enhance transaction data tracking. This field is now available in the following events:</p>
<ul>
<li><code>checkout_started</code></li>
<li><code>payment_info_submitted</code></li>
<li><code>checkout_completed</code></li>
</ul>
<p>The <code>subtotal_price</code> represents the sum of all line item prices, after applying product and order level discounts.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/server-pixels-added-subtotalprice-to-checkout-events</link>
  </item>
  <item>
    <title>Changes to Cart token format for AJAX and Storefront GraphQL Cart APIs</title>
    <description><![CDATA[ <div class=""><p>Cart tokens will now be returned with a new format for both the AJAX and Storefront GraphQL Cart APIs. API features and functionality remain unchanged. Apps and themes should be designed to handle cart tokens in any format and of any length. Treat the cart token as a random identifier that will change in the future.</p>
<p>Action Required: Ensure that any app and theme code is free from hard-coded assumptions (ex. Using regex to identify a cart token) on the format and structure of the cart token.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Jul 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-cart-token-format-for-ajax-and-storefront-graphql-cart-apis</link>
  </item>
  <item>
    <title>Request app reviews in admin with the new Reviews API </title>
    <description><![CDATA[ <div class=""><p>The new <a href="https://shopify.dev/docs/api/app-bridge-library/apis/reviews" target="_blank" class="body-link">App Bridge Reviews API</a> allows Shopify apps to request reviews directly within the Shopify admin interface.</p>
<ul>
<li><strong>Better merchant experience:</strong> Leave reviews directly in the Shopify admin with in-context prompts vs. multi-step App Store redirects.</li>
<li><strong>No customization required</strong>: The component has already been designed—you control when the review modal is shown to merchants (<a href="https://shopify.dev/docs/api/app-bridge-library/apis/reviews#best-practices" target="_blank" class="body-link">following our guidelines</a>).</li>
<li><strong>Support callouts:</strong> The <a href="https://shopify.dev/docs/apps/launch/distribution/support-your-customers" target="_blank" class="body-link">“Get Support” button</a> will also be surfaced in the review modal, giving merchants with issues a direct path to resolution as an alternative to leaving a review.</li>
</ul>
<p>Use development stores to test the Reviews API, which bypasses the rate limits and restrictions. <a href="https://shopify.dev/docs/api/app-bridge-library/apis/reviews" target="_blank" class="body-link">Read more</a> about testing and implementing the Reviews API.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Jul 2025 15:20:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>App Bridge</category>
    <link>https://shopify.dev/changelog/request-app-reviews-in-admin-with-the-new-reviews-api</link>
  </item>
  <item>
    <title>`multipassIdentifier` field added to GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>We have introduced the <code>multipassIdentifier</code> field to the Admin GraphQL API, achieving feature parity with the REST Admin API. This update ensures that both APIs offer the same capabilities, enhancing consistency and flexibility for developers.</p>
<p>The <code>multipassIdentifier</code> field allows you to assign unique identifiers to customers, facilitating seamless authentication between your external website and Shopify store through the Multipass feature.</p>
<p>You can now utilize this field in both the <code>customerCreate</code> and <code>customerUpdate</code> mutations:</p>
<pre><code class="language-graphql">mutation {
  customerUpdate(input: {
    id: &quot;gid://shopify/Customer/12345678&quot;,
    multipass_identifier: &quot;your-multipass-identifier-value&quot;
  }) {
    customer {
      id
      multipassIdentifier
    }
    userErrors {
      field
      message
    }
  }
}
</code></pre>
<p>For further details on working with customers in the Admin GraphQL API, please refer to our <a href="https://shopify.dev/docs/api/admin-graphql/current/mutations/customerUpdate" target="_blank" class="body-link">Customer documentation</a></p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/multipassidentifier-field-added-to-graphql-admin-api</link>
  </item>
  <item>
    <title>POS UI Extensions 2025-07 update</title>
    <description><![CDATA[ <div class=""><p>As of July 3, 2025, we've made the following updates to POS UI Extensions:</p>
<h3>Breaking Changes</h3>
<p>We've removed the deprecated <a href="https://shopify.dev/docs/api/pos-ui-extensions/components/formattedtextfield" target="_blank" class="body-link"><code>FormattedTextField</code></a> component. Update your code to use <a href="https://shopify.dev/docs/api/pos-ui-extensions/components/textfield" target="_blank" class="body-link"><code>TextField</code></a> instead. </p>
<p><code>FormattedTextField</code> still works in POS 10.6.0, but will no longer function in POS 10.7.0.</p>
<h3>Deprecations</h3>
<p>We've deprecated the following property values on the <a href="https://shopify.dev/docs/api/pos-ui-extensions/components/icon" target="_blank" class="body-link"><code>Icon</code></a> component:</p>
<ul>
<li>For the <a href="https://shopify.dev/docs/api/pos-ui-extensions/latest/components/icon#icon-propertydetail-size" target="_blank" class="body-link"><code>size</code></a> property, we've deprecated: <code>'minor'</code>, <code>'major'</code>, <code>'spot'</code>, <code>'caption'</code>, <code>'badge'</code>. Use <code>'s'</code>, <code>'m'</code>, <code>'l'</code>, <code>'xl'</code> instead.</li>
<li>For the <a href="https://shopify.dev/docs/api/pos-ui-extensions/latest/components/icon#icon-propertydetail-name" target="_blank" class="body-link"><code>name</code></a> property, we've deprecated <code>'arrow'</code>, <code>'available-at-other-locations'</code>, <code>'collections'</code>, <code>'connectivity-warning'</code>, <code>'delivery'</code>, <code>'home'</code>, <code>'image-placeholder'</code>, <code>'internet'</code>, <code>'menu'</code>, <code>'orders'</code>, <code>'products'</code>, <code>'shipment'</code>. See valid values for <a href="https://shopify.dev/docs/api/pos-ui-extensions/latest/components/icon#icon-propertydetail-name" target="_blank" class="body-link"><code>IconName</code></a>.</li>
</ul>
<h3>Important Fixes</h3>
<p>We've updated the <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render" target="_blank" class="body-link"><code>pos.draft-order-details.block.render</code></a> target to allow block components (<a href="https://github.com/Shopify/ui-extensions/blob/8e96f10736bd1c20628f94bfbb7b873d27fd5346/packages/ui-extensions/src/surfaces/point-of-sale/targets.ts#L24" target="_blank" class="body-link"><code>BlockComponents</code></a>). Previously, this target erroneously accepted action components (<a href="https://github.com/Shopify/ui-extensions/blob/8e96f10736bd1c20628f94bfbb7b873d27fd5346/packages/ui-extensions/src/surfaces/point-of-sale/targets.ts#L19" target="_blank" class="body-link"><code>ActionComponents</code></a>), which are intended targets like <code>pos.draft-order-details.action.render</code>.</p>
<h3>Additions</h3>
<p>Along with the above deprecations and fixes, we've added the following:</p>
<ul>
<li>Added a required <code>posVersion</code> property to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/apis/session-api" target="_blank" class="body-link"><code>Session</code></a> interface.</li>
<li>Added an optional <code>currency</code> property to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/apis/cart-line-item-api#cartlineitemapi-propertydetail-cartlineitem" target="_blank" class="body-link"><code>Discount</code></a> interface.</li>
<li>Added an <code>executedAt</code> property to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/receipts/pos-receipt-footer-block-render#transactioncompletewithreprintdata-propertydetail-transaction" target="_blank" class="body-link"><code>BaseTransactionComplete</code></a> interface.</li>
<li>Added optional <code>exchangeId</code> and <code>returnId</code> properties to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/receipts/pos-receipt-footer-block-render#transactioncompletewithreprintdata-propertydetail-transaction" target="_blank" class="body-link"><code>ReturnTransactionData</code></a> interface.</li>
<li>Added a required <code>variantId</code> property to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/apis/product-api#productapi-propertydetail-variantid" target="_blank" class="body-link"><code>ProductApi</code></a> interface.</li>
<li>Added an optional <code>taxLines</code> property to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/post-transaction/pos-transaction-complete-event-observe#transactioncompletedata-propertydetail-transaction" target="_blank" class="body-link"><code>ShippingLine</code></a> interface.</li>
<li>Added an optional <code>onBlur</code> handler to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/components/searchbar" target="_blank" class="body-link"><code>SearchBar</code></a> component.</li>
<li>Added an optional <code>tone</code> property to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/components/icon" target="_blank" class="body-link"><code>Icon</code></a> component, and added new <code>name</code> and <code>size</code> options.</li>
</ul>
<p>Additionally, in developer preview, we've introduced a <a href="https://shopify.dev/docs/api/pos-ui-extensions/apis/storage-api" target="_blank" class="body-link">Storage API</a>. This API gives UI extensions access to store data on the POS device where the extension is running.</p>
<h3>Versions</h3>
<p>All changes are available for POS UI Extensions version 2025-07 and POS app version 10.6.0. For complete version details, refer to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/versions" target="_blank" class="body-link">version log</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-2025-07-update</link>
  </item>
  <item>
    <title>Add created/updated at time based filters for an order's fulfillments</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2025-07</code> you can now narrow the list of fulfillments returned by <a href="https://shopify.dev/docs/api/admin-graphql/unstable/queries/order#returns-Order.fields.fulfillments" target="_blank" class="body-link"><code>Order.fulfillments</code></a> with an optional query argument that targets created_at and/or updated_at fields. The argument uses the same search syntax already familiar from other Admin API endpoints, for example:</p>
<pre><code>fulfillments(query: &quot;created_at:'2025-05-07T08:37:00Z'&quot;)
fulfillments(query: &quot;created_at:&gt;='2025-05-07T00:00:00Z' updated_at:&lt;'2025-05-09T00:00:00Z'&quot;)
</code></pre>
<p>The field still returns a simple array—no pagination cursor needed—and behaves exactly as before if you omit <code>query</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/add-createdupdated-at-time-based-filters-for-an-orders-fulfillments</link>
  </item>
  <item>
    <title>New field for discount classes on `DraftOrderPlatformDiscount`</title>
    <description><![CDATA[ <div class=""><p>The <code>discountClass</code> field in the <code>DraftOrderPlatformDiscount</code> object has been deprecated. Please use the <code>discountClasses</code> field instead, which allows for the representation of multiple discount classes associated with the backing price rule of the <code>DraftOrderPlatformDiscount</code>. </p>
<p>To determine the specific impact of a <code>DraftOrderPlatformDiscount</code> on a draft order, continue using the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/DraftOrderPlatformDiscount#field-presentationlevel" target="_blank" class="body-link"><code>presentationLevel</code></a> field.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-field-for-discount-classes-on-draftorderplatformdiscount</link>
  </item>
  <item>
    <title>Customer Account API now includes subscription discount data</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">Customer Account API</a> now includes a <a href="https://shopify.dev/docs/api/customer/2025-07/connections/SubscriptionDiscountConnection" target="_blank" class="body-link">discounts connection</a> on customer subscription contracts, mirroring functionality that already exists in the Admin API.</p>
<p>What's new:</p>
<ul>
<li>Query subscription discount details directly from the Customer Account API.</li>
<li>Access discount types, values, and line-item allocations through the <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/subscriptioncontract#returns-SubscriptionContract.fields.discounts" target="_blank" class="body-link">discounts</a> field returned by the <code>SubscriptionContract</code> query.</li>
<li>No changes to existing Admin API functionality.</li>
</ul>
<p>How to use it:
You can now examine subscription discounts in customer storefronts using the <code>discounts</code> field on subscription contracts. This returns the same discount information available through the Admin API, including:</p>
<ul>
<li>Discount amounts and percentages</li>
<li>Which subscription lines the discounts apply to</li>
<li>Discount allocation details</li>
</ul>
<p>This enhancement enables the creation of more comprehensive subscription management experiences, allowing customers to see precisely how discounts affect their subscription pricing.</p>
<p>Learn more</p>
<ul>
<li><a href="https://shopify.dev/docs/api/customer/unstable/connections/SubscriptionDiscountConnection" target="_blank" class="body-link"><code>SubscriptionDiscountConnection</code> documentation</a></li>
<li><a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">GraphQL Customer Account API overview</a></li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/subscription-discounts-are-now-available-in-the-customer-api</link>
  </item>
  <item>
    <title>New Built for Shopify requirements for marketing apps – Effective July 1, 2025</title>
    <description><![CDATA[ <div class=""><p>Starting <strong>July 1, 2025,</strong> new <strong>category-specific requirements apply to marketing apps</strong> in the Built for Shopify (BFS) program. These requirements apply to the following categories:</p>
<ul>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#ads-apps" target="_blank" class="body-link">Ads apps</a> – <em>all criteria required</em></li>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#affiliate-program-apps" target="_blank" class="body-link">Affiliate program apps</a> – <em>all criteria required</em></li>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#analytics-apps" target="_blank" class="body-link">Analytics apps</a> – <em>all criteria required</em></li>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#email-marketing-apps" target="_blank" class="body-link">Email marketing apps</a> – <em>select criteria based on your app's functionality</em></li>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#forms-apps" target="_blank" class="body-link">Forms apps</a> – <em>all criteria required</em></li>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#sms-marketing-apps" target="_blank" class="body-link">SMS marketing apps</a> – <em>select criteria based on your app's functionality</em></li>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-customer-account-ui-extensions" target="_blank" class="body-link">Subscription apps</a> - <em>Customer Account UI extensions are now required</em></li>
</ul>
<p>These requirements will be enforced during manual reviews of your app, which occur when you submit your app and at annual review.</p>
<p>For a full breakdown of these requirements, visit our <a href="https://shopify.dev/docs/apps/launch/built-for-shopify" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Built for Shopify</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-built-for-shopify-requirements-for-marketing-apps-effective-july-1-2025</link>
  </item>
  <item>
    <title>New GraphQL fields for return management</title>
    <description><![CDATA[ <div class=""><p>We're introducing new fields to help you better manage and track returns:</p>
<h3>Quantity tracking fields</h3>
<p>The following fields are now available on both <code>ExchangeLineItem</code> and <code>ReturnLineItem</code> objects:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/ExchangeLineItem#field-ExchangeLineItem.fields.processedQuantity" target="_blank" class="body-link"><code>processedQuantity</code></a> - Tracks the quantity of a return that has been processed.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/ExchangeLineItem#field-ExchangeLineItem.fields.processableQuantity" target="_blank" class="body-link"><code>processableQuantity</code></a> - Indicates the quantity ready for processing.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/ExchangeLineItem#field-ExchangeLineItem.fields.unprocessedQuantity" target="_blank" class="body-link"><code>unprocessedQuantity</code></a> - Shows the remaining unprocessed quantity.</li>
</ul>
<h3>Return timestamps</h3>
<p>You can now retrieve important timestamps for returns:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/Return#field-Return.fields.closedAt" target="_blank" class="body-link"><code>Return.closedAt</code></a> - The timestamp when the return was closed.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/Return#field-Return.fields.createdAt" target="_blank" class="body-link"><code>Return.createdAt</code></a> - The timestamp when the return was created.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/Return#field-Return.fields.requestApprovedAt" target="_blank" class="body-link"><code>Return.requestApprovedAt</code></a> - The timestamp when the return request was approved.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/ReverseFulfillmentOrderDisposition#field-ReverseFulfillmentOrderDisposition.fields.createdAt" target="_blank" class="body-link"><code>ReverseFulfillmentOrderDisposition.createdAt</code></a> - The timestamp when the disposition was created.</li>
</ul>
<h3>Breaking change</h3>
<p><strong><code>ExchangeLineItem.lineItem</code> is now deprecated.</strong> Please use <a href="/docs/api/admin-graphql/2025-07/objects/ExchangeLineItem#field-ExchangeLineItem.fields.lineItems" target="_blank" class="body-link"><code>ExchangeLineItem.lineItems</code></a> instead. If an exchange line item has been processed multiple times, it will have multiple associated line items. The <code>lineItem</code> field will only return the first associated line item.</p>
<h3>Availability</h3>
<p>These fields officially launched in API version <code>2025-07</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-graphql-fields-for-return-management</link>
  </item>
  <item>
    <title>Remove unprocessed exchange lines from a return</title>
    <description><![CDATA[ <div class=""><p>We're introducing the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/removeFromReturn" target="_blank" class="body-link"><code>removeFromReturn</code></a> mutation, which allows you to remove unprocessed items from returns efficiently. </p>
<h3>What's new</h3>
<p>This mutation enables the removal of:</p>
<ul>
<li>Return line items</li>
<li>Exchange line items</li>
</ul>
<h3>Replaces previous mutation</h3>
<p>The <code>removeFromReturn</code> mutation supersedes the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnlineitemremovefromreturn" target="_blank" class="body-link"><code>returnLineItemRemoveFromReturn</code></a> mutation, which was limited to removing only return line items.</p>
<h3>Availability</h3>
<p>Currently available in the <code>unstable</code> GraphQL API version, this mutation will be officially released in version <code>2025-07</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/remove-unprocessed-exchange-lines-from-a-return</link>
  </item>
  <item>
    <title>Setting `permitsSkuSharing` argument to `false` when creating a fulfillment service returns an error</title>
    <description><![CDATA[ <div class=""><p>With the 2025-10 API version, the <code>permitsSkuSharing</code> argument has been updated for both the <code>fulfillmentServiceCreate</code> mutation and the <code>FulfillmentService#create</code> REST endpoint to return an error if a <code>false</code> value is passed in. Non-SKU sharing fulfillment services have been deprecated, and this pushes us in the direction of making all Fulfillment Services Sku sharing enabled. </p>
<p>If your app or service is currently passing in a <code>false</code> value, please update it to send in <code>true</code> instead, or omit this parameter entirely. This change means that any new fulfillment services that are created can share SKUs with other locations and ensures future compatibilty with our systems. </p>
<p><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/fulfillmentServiceCreate#argument-permitsSkuSharing" target="_blank" class="body-link">GraphQL mutation documentation</a>
<a href="https://shopify.dev/docs/api/admin-rest/2025-10/resources/fulfillmentservice#post-fulfillment-services" target="_blank" class="body-link">REST endpoint documentation</a></p>
</div> ]]></description>
    <pubDate>Tue, 01 Jul 2025 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/setting-permitsskusharing-argument-to-false-when-creating-a-fulfillment-service-returns-an-error</link>
  </item>
  <item>
    <title>Increase draft order line item limit from `250` to `499`</title>
    <description><![CDATA[ <div class=""><p>In API version <code>2025-07</code>, the maximum number of line items accepted by the draft order <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/draftOrderCreate" target="_blank" class="body-link">create</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/draftOrderUpdate" target="_blank" class="body-link">update</a> mutations have been increased from <code>250</code> to <code>499</code>. This change ensures that the GraphQL API now matches the REST API's limit.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Jun 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/draft-order-line-item-limit</link>
  </item>
  <item>
    <title>New `estimatedShippedAt` argument added to FulfillmentOrderAcceptFulfillmentRequest mutation</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-07, fulfillment service apps can use the new <code>estimatedShippedAt</code> argument to specify when they estimate the fulfillment order to become fulfilled. Shopify Fulfillment Network partners will be expected to provide this value when accepting Fulfillment Requests.</p>
<p><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/fulfillmentorderacceptfulfillmentrequest#arguments-estimatedShippedAt" target="_blank" class="body-link"><code>estimatedShippedAt</code></a></p>
</div> ]]></description>
    <pubDate>Mon, 30 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-estimatedshippedat-argument-added-to-fulfillmentorderacceptfulfillmentrequest-mutation</link>
  </item>
  <item>
    <title>Deprecation of POST requests without a Content-Length or Transfer-Encoding: chunked header</title>
    <description><![CDATA[ <div class=""><p>We're making changes to our HTTP/1.0 and HTTP/1.1 request handling to improve security and compliance with web standards. Starting August 1, 2025, all POST requests to Shopify APIs must include either a Content-Length header or Transfer-Encoding: chunked header, or they'll return an HTTP 411 error.</p>
<p><strong>What you need to do</strong></p>
<p>Update your client libraries and API integrations to ensure all POST requests include one of these headers:</p>
<ul>
<li><code>Content-Length</code>: Specifies the exact size of the request body in bytes</li>
<li><code>Transfer-Encoding: chunked</code>: Indicates the request body is sent in chunks</li>
</ul>
<p>Most modern HTTP client libraries automatically include these headers, but some custom implementations or older libraries might not.</p>
<p><strong>Why we're making this change</strong></p>
<p>This change aligns with HTTP/1.1 standards (RFC 7230) and helps prevent potential security vulnerabilities related to request smuggling attacks. It ensures consistent request handling across our infrastructure.</p>
</div> ]]></description>
    <pubDate>Sat, 28 Jun 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Customer Account API</category>
    <category>Payments Apps API</category>
    <category>Storefront GraphQL API</category>
    <category>Webhook</category>
    <link>https://shopify.dev/changelog/deprecation-of-post-requests-without-a-content-length-or-transfer-encoding-chunked-header</link>
  </item>
  <item>
    <title>Optional `groupObjects` argument in bulk operations mutations that offers faster and more reliable job execution</title>
    <description><![CDATA[ <div class=""><p>We've introduced a new <code>groupObjects</code> argument to <code>bulkOperationRunQuery</code> and <code>bulkOperationRunMutation</code> mutations in the GraphQL Admin API that allow clients optionally to disable grouping and benefit from faster and more reliable bulk operation job runs.</p>
<p>The JSONL output file that GraphQL Admin API bulk operations jobs generate by default places child objects directly below their corresponding parent objects. Ensuring such grouping is costly and results in slower job run and increases chances of job timeout. </p>
<p>If you do not need grouping in the JSONL output, set <code>groupObjects</code> to <code>false</code> to benfit from faster and more reliable bulk operation jobs.</p>
</div> ]]></description>
    <pubDate>Fri, 27 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/optional-groupobjects-argument-in-bulk-operations-mutations-that-offers-faster-and-more-reliable-job-execution</link>
  </item>
  <item>
    <title>Add shop_id to app/scopes_update webhook payload</title>
    <description><![CDATA[ <div class=""><p>When you update your app's scopes, the <a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml&accordionItem=webhooks-app-scopes_update" target="_blank" class="body-link"><code>app/scopes_updates</code> webhook payload</a> now includes the shop ID (<code>shop_id</code>).</p>
</div> ]]></description>
    <pubDate>Fri, 27 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Webhook</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/add-shopid-to-appscopesupdate-webhook-payload</link>
  </item>
  <item>
    <title>New Liquid filter for displaying unit prices</title>
    <description><![CDATA[ <div class=""><p>You can now use the new <a href="https://shopify.dev/docs/api/liquid/filters/unit_price_with_measurement" target="_blank" class="body-link"><code>unit_price_with_measurement</code> filter</a> to display unit prices in the customer's language, enhancing user experience and simplifying theme code. </p>
<p>Note: Unit prices are available only for stores located in the European Union (EU) or Switzerland. To add unit prices to products, you can do so <a href="https://help.shopify.com/en/manual/products/details/product-pricing/unit-pricing" target="_blank" class="body-link">through Shopify admin</a>.</p>
<p>For detailed instructions on how to display unit prices in your theme, please refer to the <a href="https://shopify.dev/docs/storefronts/themes/pricing-payments/unit-pricing" target="_blank" class="body-link">unit pricing documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 25 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/new-liquid-filter-for-displaying-unit-prices</link>
  </item>
  <item>
    <title>Removed tax-related fields from the `ShopFeatures` object</title>
    <description><![CDATA[ <div class=""><p>The <code>EligibleForShopifyTaxReporting</code> and <code>ShopifyTaxReportingLegacyAutoTaxMigrated</code> fields have been removed from the <code>ShopFeatures</code> object as it is no longer utilized in Shopify tax reporting. There are no replacements for these fields for external-facing apps. If you rely on these fields, you should update your integration accordingly.</p>
</div> ]]></description>
    <pubDate>Sat, 21 Jun 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/removed-tax-related-fields-from-the-shopfeatures-object</link>
  </item>
  <item>
    <title>Cart metafields are accessible in Shopify Functions and Checkout UI extensions</title>
    <description><![CDATA[ <div class=""><p>You can now read cart metafields in the <a href="https://shopify.dev/docs/api/functions/2025-07/cart-and-checkout-validation#Input.fields.cart.metafield" target="_blank" class="body-link">GraphQL input query</a> for Shopify Functions. Checkout UI extensions can also read and write cart metafields for abandoned carts, order edits, and draft orders, in addition to previously supported resources. Notably, cart metafields are carried over to abandoned carts for later use.</p>
<p>For security, use a reserved namespace to ensure only your app can access specific cart metafields.</p>
<p><strong>Note</strong>: If you modify cart metafields using the <a href="https://shopify.dev/docs/api/storefront/2025-07/mutations/cartMetafieldsSet" target="_blank" class="body-link"><code>cartMetafieldsSet</code></a> or <a href="https://shopify.dev/docs/api/storefront/2025-07/mutations/cartMetafieldDelete" target="_blank" class="body-link"><code>cartMetafieldDelete</code></a> mutations, then the changes won't be available to Shopify Functions until the buyer goes to checkout or performs another cart action that triggers the function.</p>
<p><strong>Example: Read a cart metafield in a function input query</strong></p>
<pre><code>query RunInput {
  cart {
    myCartMetafield: metafield(namespace: &quot;myNamespace&quot;, key: &quot;myCartMetafield&quot;) {
      value
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 20 Jun 2025 22:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/cart-metafields-are-accessible-in-shopify-functions-and-checkout-ui-extensions</link>
  </item>
  <item>
    <title>Standardized target and operation names across Function APIs </title>
    <description><![CDATA[ <div class=""><p>We’ve standardized target and operation names in the <a href="https://shopify.dev/docs/api/functions/2025-07/cart-transform" target="_blank" class="body-link">Cart Transform</a>, <a href="https://shopify.dev/docs/api/functions/2025-07/delivery-customization" target="_blank" class="body-link">Delivery Customization</a>, <a href="https://shopify.dev/docs/api/functions/2025-07/fulfillment-constraints" target="_blank" class="body-link">Fulfillment Constraints</a>, <a href="https://shopify.dev/docs/api/functions/2025-07/order-routing-location-rule" target="_blank" class="body-link">Order Routing</a>, <a href="https://shopify.dev/docs/api/functions/2025-07/payment-customization" target="_blank" class="body-link">Payment Customization</a>, <a href="https://shopify.dev/docs/api/functions/2025-07/cart-and-checkout-validation" target="_blank" class="body-link">Cart and Checkout Validation</a> APIs for better consistency and extensibility. The Cart and Checkout Validation API now returns operations like other Function APIs. Please note that these changes will only affect functions using version 2025-07 and later. </p>
<p>Unchanged APIs:  </p>
<ul>
<li>Discount, Order Discount, Product Discount, Shipping Discount and Discounts Allocator</li>
<li>Local Pickup and Pickup Point Generator</li>
</ul>
<h2>New target names</h2>
<p>| Function API                            | Previous target name                          | New target name                             |
|</p>
</div> ]]></description>
    <pubDate>Thu, 19 Jun 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Functions</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/standardized-target-and-operation-names-across-function-apis</link>
  </item>
  <item>
    <title>Image alt text can now be translated</title>
    <description><![CDATA[ <div class=""><p>Starting with API version 2025-10, image alt text will be exposed as a <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/enums/TranslatableResourceType" target="_blank" class="body-link"><code>TranslatableResourceType</code></a>. This means that image alt text surfaced to the buyer will be eligible for translation through the <a href="https://help.shopify.com/en/manual/international/localization-and-translation" target="_blank" class="body-link">Translations API</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Liquid</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/mark-image-alt-text-as-translatable</link>
  </item>
  <item>
    <title>Define payment terms conditionally at checkout</title>
    <description><![CDATA[ <div class=""><p>You can now set custom payment terms at checkout using the Payment Customization Function. In addition to renaming, reordering, or hiding payment methods, the new <code>PaymentTermsSetOperation</code> lets you define fixed, net, or event-based payment terms for each order, with optional deposits. Use the Payment Customization Function API to tailor both payment methods and payment terms to fit your business needs.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Jun 2025 21:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/payment-customization-now-supports-customizing-payment-terms</link>
  </item>
  <item>
    <title>Buy Button JS must be upgraded to the latest version</title>
    <description><![CDATA[ <div class=""><p>Last year, we announced the deprecation of the <a href="https://shopify.dev/changelog/deprecation-of-checkout-apis" target="_blank" class="body-link">Checkout APIs</a>, which Buy Button JS is dependent on. As part of this deprecation, checkout functionality will stop working on older versions of Buy Button JS on August 1, 2025 11:00 AM ET. To maintain functionality for customers to complete purchases, ensure that your app or storefront is on the latest major version of <a href="https://shopify.dev/docs/storefronts/headless/additional-sdks/buy-button#using-the-latest-version" target="_blank" class="body-link">Buy Button JS (v3.0)</a>.</p>
<p>For documentation on how to update your Buy Button JS code, refer to the <a href="https://shopify.dev/docs/storefronts/headless/additional-sdks/buy-button#using-the-latest-version" target="_blank" class="body-link">developer docs</a>.</p>
<p>**Critical Deadline: August 1, 2025 11:00 AM ET. **You must update by this date or customers will not be able to complete purchases. </p>
</div> ]]></description>
    <pubDate>Tue, 17 Jun 2025 20:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/buy-button-js-must-be-upgraded-to-the-latest-version</link>
  </item>
  <item>
    <title>Order cancellation now supports refunds to store credit</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2025-07</code>, the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/orderCancel" target="_blank" class="body-link"><code>orderCancel</code> mutation</a> allows you to issue refunds as store credit, in addition to the original payment methods, when orders are cancelled. </p>
<p>This update introduces a new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/orderCancel#arguments-refundMethod" target="_blank" class="body-link"><code>refundMethod</code> input</a>, which offers greater flexibility in handling customer refunds during order cancellations, and deprecates the existing <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/orderCancel#arguments-refund" target="_blank" class="body-link"><code>refund</code> input</a>. </p>
<h4>Action required:</h4>
<p>If you want to continue to issue refunds to the original payments methods on order cancellation, replace your usages of the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/orderCancel#arguments-refund" target="_blank" class="body-link"><code>refund</code> input</a> with the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/orderCancel#arguments-refundMethod.fields.originalPaymentMethodsRefund" target="_blank" class="body-link"><code>refundMethod.originalPaymentMethodsRefund</code> input</a> going forward. </p>
<p>For detailed information and examples on how to implement the new input, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/orderCancel" target="_blank" class="body-link">orderCancel documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/ordercancel-mutation-now-supports-refunds-to-store-credit</link>
  </item>
  <item>
    <title>Order editing workflows now offer direct session access via mutation arguments and return fields</title>
    <description><![CDATA[ <div class=""><p>In API version 2025-10, we've enhanced order editing workflows, making them more flexible and improving traceability features. These updates expand mutation ID compatibility and add session details to return fields, making it easier to track and manage order editing sessions.</p>
<h2>What's New</h2>
<h3>Direct order edit session access</h3>
<p>Now, you can directly access order edit sessions through the <code>id</code> field on the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/objects/OrderEditSession" target="_blank" class="body-link">OrderEditSession</a> object, enhancing the tracking of changes throughout your order editing workflow.</p>
<h3>Enhanced mutation ID flexibility</h3>
<p>Order editing mutations now accept IDs from both <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/objects/CalculatedOrder" target="_blank" class="body-link"><code>CalculatedOrder</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/objects/OrderEditSession" target="_blank" class="body-link"><code>OrderEditSession</code></a> objects. This enhancement provides greater flexibility in your application architecture by supporting different workflows based on session context.</p>
<p><strong>Affected mutations:</strong></p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditUpdateShippingLine" target="_blank" class="body-link"><code>OrderEditAddCustomItem</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditAddLineItemDiscount" target="_blank" class="body-link"><code>OrderEditAddLineItemDiscount</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditAddShippingLine" target="_blank" class="body-link"><code>OrderEditAddShippingLine</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditAddVariant" target="_blank" class="body-link"><code>OrderEditAddVariant</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditCommit" target="_blank" class="body-link"><code>OrderEditCommit</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditRemoveDiscount" target="_blank" class="body-link"><code>OrderEditRemoveDiscount</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditRemoveShippingLine" target="_blank" class="body-link"><code>OrderEditRemoveShippingLine</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditRemoveLineItemDiscount" target="_blank" class="body-link"><code>OrderEditRemoveLineItemDiscount</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditSetQuantity" target="_blank" class="body-link"><code>OrderEditSetQuantity</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditUpdateDiscount" target="_blank" class="body-link"><code>OrderEditUpdateDiscount</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditUpdateShippingLine" target="_blank" class="body-link"><code>OrderEditUpdateShippingLine</code></a></li>
</ul>
<h3>Expanded return fields</h3>
<p>Order editing mutations now return an <code>orderEditSession</code> field, enabling you to use the session <code>id</code> in subsequent mutation calls for improved workflow continuity. This enhancement applies to all mutations listed above, plus:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/orderEditBegin" target="_blank" class="body-link">OrderEditBegin</a></li>
</ul>
<p>These improvements provide a more flexible approach to managing order editing workflows while maintaining full traceability of session changes.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/order-editing-workflows-now-offer-direct-session-access-via-mutation-arguments-and-return-fields</link>
  </item>
  <item>
    <title>New pagination limits for Liquid &amp; Storefront GraphQL API</title>
    <description><![CDATA[ <div class=""><h2>What's changing</h2>
<p>The Liquid and Storefront GraphQL API now limits pagination of arrays of objects to 25,000 items. This affects:</p>
<ul>
<li>For paginated GraphQL queries (using <code>first</code>, <code>last</code>, <code>before</code>, <code>after</code> parameters), queries will now return an error when paginating past the 25,000th item in the array.</li>
<li>For uses of the <code>paginate</code> tag in Liquid, the last allowed page will be returned when paginating past the 25,000th item in the array.</li>
<li>Any query originating from Liquid or GraphQL for a count will now return a maximum of 25,001 (indicating &quot;more than 25,000&quot;) for arrays with more items.</li>
</ul>
<p>In addition to that:</p>
<ul>
<li>The maximum Liquid page size has been increased from 50 to 250 to match the Storefront GraphQL API limit.</li>
</ul>
<p>The documentation for <a href="https://shopify.dev/docs/storefronts/themes/best-practices/performance/platform#pagination-limits" target="_blank" class="body-link">Liquid</a> and <a href="https://shopify.dev/docs/api/usage/limits#pagination-limits" target="_blank" class="body-link">API usage</a> have been updated to reflect these limits.</p>
<p><strong>Important:</strong> This change only affects the Liquid and Storefront GraphQL API. The Admin GraphQL API continues to support higher limits for merchant facing workflows. See recent changelogs to that effect <a href="https://shopify.dev/changelog/enhanced-variant-query-limits-for-single-product-queries" target="_blank" class="body-link">here</a> and <a href="https://shopify.dev/changelog/uncapped-graphql-counts" target="_blank" class="body-link">here</a>.</p>
<h2>What you need to do</h2>
<p>If your application, storefront, or Liquid theme paginates through more than 25,000 items:</p>
<ul>
<li>Add filters to views to help narrow down results before pagination. For example, filter by product type, price range, or availability.</li>
<li>Update count handling to account for the 25,001 maximum return value and replace it with a human readable value like &quot;More than 25,000 products available.&quot;</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 17 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Liquid</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/new-pagination-limits-for-liquid-storefront-graphql-api</link>
  </item>
  <item>
    <title>The `_shopify_country` cookie will no longer be set</title>
    <description><![CDATA[ <div class=""><h3>What's changing?</h3>
<p>Starting on August 15th, 2025, Shopify will no longer set the <code>_shopify_country</code> cookie on merchant storefronts or checkout.</p>
<h3>Required updates</h3>
<p>Developers looking to establish the customer's location can use the <a href="https://shopify.dev/docs/api/customer-privacy#check-customer-location" target="_blank" class="body-link">Customer Privacy API's <code>getRegion</code> method</a>, which will be more reliable than the cookie now being removed. </p>
<p>Example JavaScript code:</p>
<pre><code>window.Shopify.loadFeatures([
  {
    name: 'consent-tracking-api',
    version: '0.1',
  },
], function (error) {
  if (error) {
    throw error;
  }
  
  // &quot;CAON&quot;
  let region = window.Shopify.customerPrivacy.getRegion(); 
  // &quot;CA&quot;
  let country = region.slice(0,2); 
});
</code></pre>
</div> ]]></description>
    <pubDate>Mon, 16 Jun 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Breaking API Change</category>
    <link>https://shopify.dev/changelog/shopifycountry-cookie-no-longer-set</link>
  </item>
  <item>
    <title>`productCreate` surfaces input errors as `userErrors`</title>
    <description><![CDATA[ <div class=""><p>Starting from 2025-07, the following <code>productCreate</code> input issues will be surfaced as <code>userErrors</code>:</p>
<ul>
<li>Linking multiple options to the same metafield</li>
<li>Linking an option to an already-linked metafield</li>
<li>Attempting to specify <code>linkedMetafieldValue</code> for an option that is not linked to a metafield</li>
<li>Specifying both <code>options</code> and <code>optionValues</code></li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 14 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/product-create-serves-input-errors-as-user-errors</link>
  </item>
  <item>
    <title>New fields for OrderTransaction and OrderCreateManualPayment</title>
    <description><![CDATA[ <div class=""><p>We've added three new fields to the <code>OrderTransaction</code> object to give you better insights into order processing: <code>device</code>, <code>location</code>, and <code>currency_exchange_adjustment</code>. These fields offer additional context about the point of sale device used, the physical location of the transaction, and any currency exchange adjustments applied.</p>
<p>Additionally, the <code>processed_at</code> field is now available when using the <code>OrderCreateManualPayment</code> mutation. This allows you to specify the exact date and time a manual payment was processed, which is particularly useful for importing transactions from external platforms or applications.</p>
<p>For further details, see <a href="https://shopify.dev/api/admin-graphql/latest/objects/OrderTransaction" target="_blank" class="body-link">OrderTransaction</a> and  <a href="https://shopify.dev/api/admin-graphql/latest/mutations/ordercreatemanualpayment" target="_blank" class="body-link">OrderCreateManualPayment</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 13 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/added-new-fields-to-transaction-related-objects-and-mutations</link>
  </item>
  <item>
    <title>Generally available: Standard product review syndication program</title>
    <description><![CDATA[ <div class=""><p>The standard product review syndication program is now available to all partners, officially entering general availability. </p>
<p>Any partner can now build a reviews app that syndicates to the standard product review metaobject, as long as their app meets the program requirements. This enables reviews to be displayed in the Shop app and other surfaces across Shopify. </p>
<p>For documentation and implementation guidelines, refer to the <a href="https://shopify.dev/docs/apps/build/custom-data/metaobjects/standard-review-metaobject" target="_blank" class="body-link">developer docs</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 06 Jun 2025 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/generally-available-standard-product-review-syndication-program</link>
  </item>
  <item>
    <title>Use `cart.deliveryGroups.groupType` in Function APIs to determine the type of delivery group</title>
    <description><![CDATA[ <div class=""><p>With the 2025-07 version release of the Function APIs, you can now use the <code>cart.deliveryGroups.groupType</code> to determine the type of delivery group. The <code>groupType</code> field indicates whether the delivery is a one-time purchase (<code>ONE_TIME_PURCHASE</code>) or part of a recurring subscription (<code>SUBSCRIPTION</code>).</p>
<p>Delivery groups streamline fulfillment by organizing items that can be shipped together, based on the customer's shipping address. For example, if a customer orders a t-shirt and a pair of shoes that can be shipped together, then the items are included in the same delivery group.</p>
</div> ]]></description>
    <pubDate>Wed, 04 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/use-cartdeliverygroupsgrouptype-in-function-apis-to-determine-the-type-of-delivery-group</link>
  </item>
  <item>
    <title>Contextual pricing and publishing APIs use backup region fallback</title>
    <description><![CDATA[ <div class=""><p>We're changing the fallback behavior when determining the pricing and publishing that applies to a customer in a specific context. Currently, if a country that doesn't belong to a market is passed as a buyer signal, we use the store defaults. For example, the currency used for pricing will be the store's default currency. With this change, the market for the <code>backupRegion</code> will now be used so currency, catalogs, and other settings from that market will be used when determining pricing and publishing. This fallback matches the behavior on the storefont and allows for consistency in pricing and publishing APIs.  </p>
<p>As of API version 2025-10, the following fields will use<code>backupRegion</code> as a fallback: </p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/Product#field-contextualPricing" target="_blank" class="body-link"><code>Product.contextualPricing</code></a> </li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/productvariant#field-contextualPricing" target="_blank" class="body-link"><code>ProductVariant.contextualPricing</code></a> </li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/product#field-publishedInContext" target="_blank" class="body-link"><code>Product.publishedInContext</code></a></li>
</ul>
<p>Previous versions will continue to fallback to store defaults.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jun 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/contextual-pricing-and-publishing-apis-use-backup-region-fallback</link>
  </item>
  <item>
    <title>Post-purchase extension development without Chrome extension</title>
    <description><![CDATA[ <div class=""><p>The <code>shopify app dev</code> command now supports post-purchase checkout extensions without requiring the deprecated Chrome extension. This enhancement simplifies development, aligning it more closely with other checkout UI extension patterns.</p>
<p>Now, when you run <code>shopify app dev</code> with a post-purchase extension, the CLI will:</p>
<ul>
<li>Automatically configure cart permalinks with the necessary parameters for testing.</li>
<li>Allow direct testing through the checkout flow without a browser extension.</li>
<li>Redirect to the post-purchase page after the &quot;Pay now&quot; button is clicked.</li>
</ul>
<p>For more detailed guidance, refer to the <a href="https://shopify.dev/docs/apps/build/checkout/product-offers/build-a-post-purchase-offer" target="_blank" class="body-link">Build a post-purchase product offer checkout extension</a> documentation.</p>
</div> ]]></description>
    <pubDate>Fri, 30 May 2025 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/post-purchase-extension-development-without-chrome-extension</link>
  </item>
  <item>
    <title>Theme files are now installable at the preset level on the Shopify Theme Store</title>
    <description><![CDATA[ <div class=""><p>Installation of individual presets will now match the expectations set by the demo stores in a theme. Previously, only the first preset was installable.</p>
<p><strong>To enable this:</strong></p>
<ol>
<li><a href="https://shopify.dev/docs/storefronts/themes/store/requirements#adding-presets-to-your-theme-zip-submission" target="_blank" class="body-link">Submit your theme files</a> that include <em>/listings</em> folders for approval by the Theme Review Team</li>
<li>Once approved, you’ll receive an email notifying you</li>
<li>Update your listing page details for each preset</li>
<li>Hit submit</li>
</ol>
<p>Once submitted, preset names and their associated listing files will be published to your <em><strong>existing</strong></em> theme details page, making each preset immediately installable when a merchant hits “Try theme”. </p>
<p><strong>Note</strong>: New listing information specific to presets <em><strong>will not</strong></em> be live until dedicated preset listing pages launch in <strong>July</strong> alongside the Theme Store redesign.</p>
</div> ]]></description>
    <pubDate>Mon, 26 May 2025 15:30:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/theme-files-are-now-installable-at-the-preset-level-on-the-shopify-theme-store</link>
  </item>
  <item>
    <title>Shop metafield definitions are now available in the Shopify Admin and Admin API</title>
    <description><![CDATA[ <div class=""><p>Shop metafield definitions and values are now be exposed in the Shopify Admin UI, making them more accessible and manageable by merchants. </p>
<p>Additionally, it's now possible to query for shop metafield definitions using the <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/metafieldDefinitions" target="_blank" class="body-link"><code>metafieldDefinitions</code> query</a> in the Admin GraphQL API. </p>
<p>Shop is already <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/MetafieldOwnerType" target="_blank" class="body-link">a supported metafield owner type</a>, and this change enables apps and merchants to manage definitions for shop-level metafields.</p>
</div> ]]></description>
    <pubDate>Fri, 23 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/shop-metafield-now-in-admin</link>
  </item>
  <item>
    <title>Filter articles by title</title>
    <description><![CDATA[ <div class=""><p>We've added a <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/articles#argument-query-filter-title" target="_blank" class="body-link"><code>title</code></a> filter to the <code>articles</code> query, allowing you to fetch a list of articles by their <code>title</code>.</p>
<pre><code>{
  articles(query: &quot;title:about us&quot;, first: 10) {
    edges {
      node {
        id
        title
      }
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 23 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/add-support-for-title-filtering-with-articles</link>
  </item>
  <item>
    <title>New warning `DraftOrderMarketRegionCountryCodeNotSupportedWarning` added to `DraftOrder`</title>
    <description><![CDATA[ <div class=""><p>We've added a new new type of warning to the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/DraftOrder" target="_blank" class="body-link"><code>DraftOrder</code> object</a>: <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/draftordermarketregioncountrycodenotsupportedwarning" target="_blank" class="body-link"><code>DraftOrderMarketRegionCountryCodeNotSupportedWarning</code></a>.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/input-objects/DraftOrderInput#fields-marketRegionCountryCode" target="_blank" class="body-link"><code>marketRegionCountryCode</code> field</a> is deprecated and does not affect draft orders on shops that use <a href="https://www.shopify.com/markets" target="_blank" class="body-link">Markets</a>. Because of this, the <code>DraftOrderMarketRegionCountryCodeNotSupportedWarning</code> warning indicates that the <code>marketRegionCountryCode</code> field was set when creating, calculating, or updating a draft order on a shop that uses Markets.</p>
</div> ]]></description>
    <pubDate>Thu, 22 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-warning-draftordermarketregioncountrycodenotsupportedwarning-added-to-draftorder</link>
  </item>
  <item>
    <title>Shipping Rates – Return backup rates for 3xx and 4xx carrier responses</title>
    <description><![CDATA[ <div class=""><p>Carriers occasionally respond with HTTP 3xx redirects or 4xx client errors. Previously, this left merchants without shipping options at checkout. The rate service now extends its existing error-handling path to treat these responses as recoverable failures. This change triggers a fallback to backup rates instead of resulting in a hard failure. As a result, shoppers still see viable shipping methods, safeguarding conversion and improving overall checkout reliability.</p>
</div> ]]></description>
    <pubDate>Thu, 22 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/shipping-rates-return-backup-rates-for-3xx-and-4xx-carrier-responses</link>
  </item>
  <item>
    <title>Recommend theme blocks in the block picker</title>
    <description><![CDATA[ <div class=""><p>You can now recommend specific theme blocks in the block picker, making them easier to find. </p>
<p><img src="https://shopify.dev/assets/themes/theme-editor/recommended-blocks.png" alt="Block preview"></p>
<p>To do this, include the <code>@theme</code> block type along with your recommended blocks in the <code>blocks</code> array of the schema. All other blocks remain accessible by selecting <strong>Show all</strong>. <a href="https://shopify.dev/docs/storefronts/themes/architecture/sections/section-schema#recommended-blocks" target="_blank" class="body-link">Learn more</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 22 May 2025 13:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/recommend-theme-blocks-in-the-block-picker</link>
  </item>
  <item>
    <title>Polaris unified web components are now available (early access)</title>
    <description><![CDATA[ <div class=""><p>We've updated Polaris, making it a unified web component toolkit for all Shopify surfaces: Admin, Checkout, Customer Accounts. Additionally, Polaris is now smaller, faster, framework-agnostic, and always up-to-date via Shopify’s CDN. This update is in early access.</p>
<p>To get started, <a href="https://shopify.dev/beta/next-gen-dev-platform/polaris" target="_blank" class="body-link">check out the developer documentation</a>, or learn more about the library by reading <a href="https://www.shopify.com/partners/blog/polaris-unified-and-for-the-web" target="_blank" class="body-link">our blog post</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/polaris-unified-web-components-are-now-available-early-access</link>
  </item>
  <item>
    <title>The Shopify.dev MCP server now supports Polaris web components</title>
    <description><![CDATA[ <div class=""><p>Polaris web component support is now available in early access on the Shopify Dev MCP server. You'll get up-to-date Polaris API documentation, and integration with LLM-assisted workflows for faster and easier development with the updated components. Get started by setting the <code>POLARIS_UNIFIED = true</code> environment variable, or see <a href="https://shopify.dev/docs/beta/next-gen-dev-platform/polaris/using-mcp" target="_blank" class="body-link">the early access docs for more information</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-shopifydev-mcp-server-now-supports-polaris-web-components</link>
  </item>
  <item>
    <title>Conditional settings in the theme editor</title>
    <description><![CDATA[ <div class=""><p>We have introduced a new <code>visible_if</code> Liquid setting property that allows you to control the visibility of settings in the Theme Editor. This attribute enables you to hide theme settings that are not currently relevant, while still preserving their data. It applies to all basic and sidebar settings, as well as most specialized input settings, enhancing the customization experience.</p>
<p>For more detailed information, please refer to the <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings#conditional-settings" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/conditional-settings-in-the-theme-editor</link>
  </item>
  <item>
    <title>POS-specific Shopify Function logic</title>
    <description><![CDATA[ <div class=""><p>The new <code>retailLocation</code> field in the Function APIs allows you to tailor your logic based on whether a checkout is happening in a retail environment. This allows you to create different behaviors depending on the sales channel or even the specific retail store location. For example, you can implement location-specific discounts only for in-store purchases, creating differentiated experiences between online and retail customers.</p>
<p>The <code>retailLocation</code> field is currently available in the unstable API version, and will be included in the stable 2025-07 API version.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/pos-specific-shopify-function-logic</link>
  </item>
  <item>
    <title> New reference documentation for Shopify Function APIs</title>
    <description><![CDATA[ <div class=""><p>We've completely revamped our highly-visited and least-loved Shopify Function API reference docs. You’ve shared many helpful comments and questions through our <strong>Was this page helpful?</strong> form, and we’ve reviewed and addressed them in this latest revision.</p>
<p>Here’s the lowdown on the latest updates.</p>
<h2>One comprehensive overview</h2>
<p>We’ve added a single, consolidated overview that outlines the foundational information you need before diving into any specific Function API. No more feeling lost right from the start!</p>
<p><img src="https://cdn.shopify.com/s/files/1/0262/2383/7206/files/functions-overview.png?v=1747772969" alt="Overview"></p>
<h2>A dedicated page for each Function API</h2>
<p>Each Function API now has its own dedicated page, meaning you’ll no longer need to jump between various pages to find the information you need. This streamlined approach helps you to understand the API, its targets, data structures, and common use cases.</p>
<p><strong>And what can you expect on each page?</strong></p>
<ul>
<li><strong>End-to-end examples for every Function API</strong>, demonstrating complete implementation patterns tailored to common merchant scenarios.  </li>
<li><strong>Interactive object exploration</strong> to help you dive deep into GraphQL objects—all in one convenient location.   </li>
<li><strong>Visual diagrams</strong> that clearly illustrate how each Function operates within the Shopify ecosystem, making complex concepts easier to grasp.  </li>
<li><strong>Performance metrics</strong> that show execution costs for each Function API, helping you to optimize your integrations efficiently.</li>
</ul>
<p><img src="https://cdn.shopify.com/s/files/1/0262/2383/7206/files/examples_metrics_explorer.png?v=1747772969" alt="E2E Examples, Performance metrics, GQL explorer">
<img src="https://cdn.shopify.com/s/files/1/0262/2383/7206/files/visual-functions.png?v=1747772969" alt="Visual Illustration of Function APIs"></p>
<h2>A version picker for easy navigation</h2>
<p>We’ve introduced a centralized version picker that allows you to toggle between different API versions easily, right from the sidebar.</p>
<p><img src="https://cdn.shopify.com/s/files/1/0262/2383/7206/files/version-picker.png?v=1747772969" alt="Version Picker"></p>
<h2>Give it a try!</h2>
<p>These updates are all about making your life easier. Less time scratching your head or making guesses means more time building amazing things!</p>
<p><a href="https://shopify.dev/docs/api/functions" target="_blank" class="body-link">Explore the revamped docs</a>—we'd love to know what you think. Where have these updates helped, and where else in the Function API docs would you like to see improvements? You can leave comments by clicking the <strong>Was this page helpful?</strong> button.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/new-reference-documentation-for-shopify-function-apis</link>
  </item>
  <item>
    <title>The Summer '25 Edition is here</title>
    <description><![CDATA[ <div class=""><p>New features, good vibes. Announcing 150+ updates to Shopify.</p>
<p><a href="http://shopify.com/editions/summer2025?utm_source=changelog-dev&utm_medium=changelog-dev&utm_campaign=summer25edition&utm_content=dev-en-en" target="_blank" class="body-link">See the updates</a></p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 13:30:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-summer-25-edition-is-here</link>
  </item>
  <item>
    <title>Hydrogen May 2025 Release</title>
    <description><![CDATA[ <div class=""><p>The latest version of Hydrogen, 2025.5.0 is out today. With this release, Hydrogen is upgrading from Remix 2 to React Router 7. Follow the upgrade guide shared in our Hydrogen May 2025 release blog post <a href="https://hydrogen.shopify.dev/update/how-to-adopt-all-future-flags" target="_blank" class="body-link">https://hydrogen.shopify.dev/update/may-2025</a>. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>! </p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:50:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-may-2025-release</link>
  </item>
  <item>
    <title>Shopify Catalog</title>
    <description><![CDATA[ <div class=""><p>Shopify Catalog provides select apps and AI agents with access to Shopify’s global product catalog delivering detailed product information including pricing, options, and availability in real-time. It is available as both an API and an MCP server, giving developers a choice in how they build their app and access product data.  </p>
<p>Select partners will be given access to Shopify Catalog. To be considered, please sign up through the <a href="https://www.shopify.com/editions/summer2025#global-shopify-catalog" target="_blank" class="body-link">Summer ‘25 Shopify Editions site</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:45:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-catalog</link>
  </item>
  <item>
    <title>Improvements to Japanese, Chinese, Korean, and Thai language search on the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>We've optimized Shopify App Store search for Japanese, Chinese, Korean, and Thai, allowing global merchants to discover apps faster and easier. Updates include:</p>
<ul>
<li>Better synonym and character matching in app search results</li>
<li>Improved autocomplete suggestions</li>
<li>Better typing experience with ENTER no longer submits search</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:30:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/improvements-to-search-on-the-shopify-app-store</link>
  </item>
  <item>
    <title>Improved app recommendations and listing highlights for large merchants</title>
    <description><![CDATA[ <div class=""><p>We’ve improved the recommendation algorithm for large merchants to better surface apps installed and liked by similar-sized businesses. </p>
<p>In addition to where personalized results are currently shown, the app listing page will have a new section highlighting key insights for large businesses.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:30:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/personalized-app-recommendations-for-large-merchants</link>
  </item>
  <item>
    <title>Shopify Functions support in Dev Assistant and the shopify.dev MCP server</title>
    <description><![CDATA[ <div class=""><p>We've enhanced the Dev Assistant and the shopify.dev MCP server, adding support for Shopify Functions. Now, AI-powered assistance can help you build and optimize Functions code, streamline your development process, and accelerate your implementation. When you describe your desired outcome to the Dev Assistant, it can do the following things: </p>
<ul>
<li><strong>Suggest a Function API</strong> : Identify the most suitable Function API for your use case.</li>
<li><strong>Generate code</strong>: For example, input queries, Function logic (in Rust), and the expected output.</li>
<li><strong>Convert JavaScript to Rust</strong>: Convert existing JavaScript code to Rust, enhancing performance and lowering execution costs.</li>
</ul>
<p>Together, these features simplify Shopify Functions development, making it more accessible to developers who are new to Rust or unfamiliar with the Function APIs.</p>
<p>To get started, simply describe your Functions-related goals to the Dev Assistant. Then, let it guide you through your implementation with relevant code examples and explanations.</p>
<p>This new functionality is available in the <a href="http://shopify.dev/?assistant=1" target="_blank" class="body-link">Dev Assistant on shopify.dev</a>, or through the <a href="https://github.com/Shopify/dev-mcp?tab=readme-ov-file#development" target="_blank" class="body-link">shopify.dev MCP server</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:20:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/shopify-functions-support-in-dev-assistant-and-shopifydev-mcp-server</link>
  </item>
  <item>
    <title>Block previews are now available in theme editor</title>
    <description><![CDATA[ <div class=""><p>Block presets now have visual previews in the picker, similarly to section previews.</p>
<p><img src="https://shopify.dev/assets/themes/theme-editor/add-block-preview-empty.png" alt="Block preview"></p>
<p>No action is required—previews will work automatically. If you want to further customize how your blocks appear in preview mode, learn more about the optional <code>visual_preview_mode</code> attribute in our <a href="https://shopify.dev/docs/storefronts/themes/best-practices/editor/integrate-sections-and-blocks#detect-the-theme-editor-visual-preview" target="_blank" class="body-link">theme editor documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/block-previews-now-available-in-theme-editor</link>
  </item>
  <item>
    <title>Edit line items with subscriptions and preorders prior to fulfilling an order</title>
    <description><![CDATA[ <div class=""><p>You can now edit line items with selling plans (including subscriptions and pre-orders) before an order ships. This update gives you the flexibility to change quantities, add discounts, and remove line items that contain a selling plan. </p>
<p>This functionality is available through the <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders" target="_blank" class="body-link">Order Edit API</a> and Shopify Admin. </p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/edit-line-items-selling-plans</link>
  </item>
  <item>
    <title>Early access: The re-engineered `shopify app dev`</title>
    <description><![CDATA[ <div class=""><p>The Shopify CLI <code>app dev</code> command enables development, preview, and testing of your app on development stores. This command includes a number of improvements when used with early access to the <a href="https://shopify.dev/beta/next-gen-dev-platform" target="_blank" class="body-link">Next-Gen Dev Platform</a>:</p>
<ul>
<li>All changes are isolated to your chosen development store.</li>
<li>All changes to <a href="/docs/apps/build/cli-for-apps/app-configuration" target="_blank" class="body-link">app configuration</a> can now be previewed, without the need to run <code>app deploy</code>.</li>
<li>Extension additions and deletions are now included, without the need to restart <code>app dev</code>.</li>
<li>Your app is now automatically installed on your chosen development store.</li>
<li>Access scope changes are automatically accepted on your chosen development store when you change them in the <code>shopify.app.toml</code>.</li>
<li>The app preview created during <code>app dev</code> remains on your development store until you run <code>app dev clean</code> or uninstall the app.</li>
<li>The Dev Console in the Shopify Admin will inform you about any active app previews on the store.</li>
</ul>
<p><strong>Note</strong>: For existing apps, the behavior of <code>app dev</code> is currently unchanged.</p>
<p>For more information, see documentation on <a href="https://shopify.dev/beta/next-gen-dev-platform/shopify-app-dev" target="_blank" class="body-link">improvements to the <code>app dev</code> command</a>.</p>
<p>Please report any issues and provide your feedback about these updates <a href="https://community.shopify.dev/new-topic?category=shopify-cli-libraries&tags=new-app-dev-command" target="_blank" class="body-link">on the Shopify Developer Community</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/early-access-the-re-engineered-shopify-app-dev</link>
  </item>
  <item>
    <title>Shopify Functions WebAssembly query API</title>
    <description><![CDATA[ <div class=""><p>Shopify Functions now support a WebAssembly query API, letting you build smaller, faster, and more powerful functions. Deserialize data just-in-time, and only pay for the fields your function actually uses.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/functions/programming-languages/webassembly-for-functions" target="_blank" class="body-link">WebAssembly for Functions</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/functions-webassembly-query-api</link>
  </item>
  <item>
    <title>Skeleton theme is now available</title>
    <description><![CDATA[ <div class=""><p><a href="https://github.com/Shopify/skeleton-theme" target="_blank" class="body-link">Skeleton theme</a> is now available: a minimal, carefully structured Shopify theme designed to help you quickly get started. Built with modularity, maintainability, and Shopify's best practices in mind.</p>
<p>Key features:</p>
<ul>
<li><strong>Minimal and modular:</strong> A clean, flexible starting point.</li>
<li><strong>Best practices built-in:</strong> Performant and easy to maintain.</li>
<li><strong>Developer-focused:</strong> Easy to extend and customize.</li>
</ul>
<p>Get started by visiting the <a href="https://github.com/Shopify/skeleton-theme" target="_blank" class="body-link">Skeleton theme repository</a> or by running <code>shopify theme init</code> from your command line.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/skeleton-theme-is-now-available</link>
  </item>
  <item>
    <title>CustomerPrivacy API &amp; footer extension target now available for Customer Account extensions</title>
    <description><![CDATA[ <div class=""><p>You can now use the CustomerPrivacy API to manage customer privacy on customer account pages, including the <strong>Order status</strong> page. Use the new <a href="https://shopify.dev/docs/api/customer-account-ui-extensions/latest/targets/footer/customer-account-footer-render-after" target="_blank" class="body-link">footer extension target</a> to build cookie banner extensions that display on each customer account page, or use the API directly to ensure your existing extensions respect customer consent preferences. This update is only available for shops using a custom domain for customer accounts. </p>
<p><a href="https://shopify.dev/docs/api/customer-account-ui-extensions/latest/apis/customer-privacy" target="_blank" class="body-link">Learn more in the CustomerPrivacy API reference.</a></p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Customer Accounts</category>
    <link>https://shopify.dev/changelog/customerprivacy-api-now-available-for-customer-account-extensions</link>
  </item>
  <item>
    <title>Localhost-based development for `shopify app dev`</title>
    <description><![CDATA[ <div class=""><p>Now, you can serve your app using <code>localhost</code> (<code>127.0.0.1</code>) with a self-signed HTTPS certificate, which Shopify CLI generates for you. This allows you to develop some Shopify app features without the use of network tunnels.</p>
<p>To serve your app using localhost, run the following command using Shopify CLI 3.80 or higher: <code>shopify app dev --use-localhost</code>.</p>
<p>Newly added since developer preview:</p>
<ul>
<li><code>--use-localhost</code> will now use a static port by default, which you can override with <code>--localhost-port</code>.</li>
<li>Detection of Windows Subsystem for Linux and documentation on additional required steps for its setup.</li>
</ul>
<p><strong>Note</strong>: Localhost-based development isn't compatible with the Shopify features that directly invoke your app, such as Webhooks, App proxy, and Flow actions, and features that require you to test your app from another device, such as POS.</p>
<p>For more information, you can read about <a href="https://shopify.dev/docs/apps/build/cli-for-apps/networking-options" target="_blank" class="body-link">networking options for local development</a>.</p>
<p>Please report any issues and provide your feedback about this feature <a href="https://community.shopify.dev/new-topic?category=shopify-cli-libraries&tags=app-dev-on-localhost" target="_blank" class="body-link">on the Shopify Developer Community</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/localhost-based-development-for-shopify-app-dev</link>
  </item>
  <item>
    <title>Early access: Declarative Custom Data Definitions</title>
    <description><![CDATA[ <div class=""><p>Declarative custom data definitions offer a streamlined approach for managing and maintaining metafields and metaobjects. Key benefits include:</p>
<ul>
<li>Metafield and metaobject definitions are organized in TOML, and managed through the improved <a href="https://shopify.dev/beta/next-gen-dev-platform/shopify-app-dev" target="_blank" class="body-link"><code>app dev</code></a> command.</li>
<li>Shopify automatically distributes these definitions to multiple shops simultaneously, significantly speeding up migration processes.</li>
<li>Updates are atomic, ensuring that all stores consistently maintain the same version of your definitions.</li>
<li>All declarative definitions include app-scoped limits, which prevent resource competition among different apps.</li>
</ul>
<p>For more information, see the <a href="https://shopify.dev/beta/next-gen-dev-platform/declarative-custom-data-definitions" target="_blank" class="body-link">declarative custom data documentation</a> on shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/declarative-custom-data-definitions</link>
  </item>
  <item>
    <title>Early access: Unified Development Stores</title>
    <description><![CDATA[ <div class=""><p>You can now use the new Dev Dashboard to create development stores with any Shopify plan, including Plus. This provides a testing environment that mirrors the features and limitations of specific production plans.</p>
<ul>
<li><strong>Dev stores with any plan:</strong> Create development stores with Basic, Grow, Advanced, or Plus plans.</li>
<li><strong>Streamlined UI</strong>: Access all your stores through a single, streamlined interface in the Dev Dashboard.</li>
<li><strong>No-cost</strong>: Create and manage these stores at no cost.</li>
</ul>
<p>Learn more about how to use <a href="https://shopify.dev/beta/next-gen-dev-platform/development-stores" target="_blank" class="body-link">development stores in the Next-Gen Dev Platform</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/early-access-unified-development-stores</link>
  </item>
  <item>
    <title>Flow: Improved Send HTTP request action enables secure connections and returns data to the workflow</title>
    <description><![CDATA[ <div class=""><p>Shopify Flow has an improved <a href="https://help.shopify.com/en/manual/shopify-flow/reference/actions/send-http-request" target="_blank" class="body-link">Send HTTP request</a> action that supports a broader range of integrations with external services by securely storing secrets and returning data to subsequent workflow steps. The action can be securely configured with secrets, such as access tokens or passwords, that are encrypted and obfuscated in Flow. After sending an HTTP request, the full response is returned to the workflow and can be parsed using a <a href="https://help.shopify.com/en/manual/shopify-flow/reference/actions/run-code" target="_blank" class="body-link">Run code</a> action with a JSON.parse method to define a schema so that returned data can be used as variables in conditions and actions.</p>
<p>Review these new templates to learn more about using this improved action:</p>
<ul>
<li><a href="https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7" target="_blank" class="body-link">Send new orders to Airtable</a></li>
<li><a href="https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82" target="_blank" class="body-link">Send all existing and new products to Airtable</a></li>
<li><a href="https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b" target="_blank" class="body-link">Update products in batches from product data stored in Airtable</a></li>
<li><a href="https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e" target="_blank" class="body-link">Notify customers of expiring gifts cards using SendGrid</a></li>
<li><a href="https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb" target="_blank" class="body-link">Send email using SendGrid when customers places an order for a custom item</a></li>
</ul>
<p>For more information about how it works, visit the <a href="https://help.shopify.com/en/manual/shopify-flow/reference/actions/send-http-request" target="_blank" class="body-link">documentation</a>. For questions and feedback, visit the <a href="https://community.shopify.com/c/shopify-flow-app/bd-p/flow" target="_blank" class="body-link">Shopify community</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/flow-improved-send-http-request-action-enables-secure-connections-and-returns-data-to-the-workflow</link>
  </item>
  <item>
    <title>Early access: Dev Dashboard</title>
    <description><![CDATA[ <div class=""><p>The all new <a href="https://shopify.dev/beta/next-gen-dev-platform/dev-dashboard" target="_blank" class="body-link">Dev Dashboard</a> serves as a comprehensive hub for all your app development activities, whether you're a merchant creating custom apps or a partner developing public apps. Key features include:</p>
<ul>
<li><strong>Unified App Management</strong>: Seamlessly create, configure, and deploy apps from a single, streamlined interface to simplify your workflow.</li>
<li><strong>Enhanced Development Stores</strong>: Easily create and manage development stores with any Shopify plan, including Plus, offering flexibility and scalability for testing and development.</li>
<li><strong>Improved App Versioning</strong>: Confidently create new versions, manage extensions, and release updates to keep your apps current and functional.</li>
<li><strong>Monitoring and Logs</strong>: Access webhook and function metrics and logs to ensure your app operates correctly.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/early-access-dev-dashboard</link>
  </item>
  <item>
    <title>LiquidDoc for snippets and blocks</title>
    <description><![CDATA[ <div class=""><p>LiquidDoc is a new way to add structured documentation directly within your Liquid snippets, and blocks. Define clear input parameters, include helpful descriptions, and provide practical usage examples right alongside your Liquid code.</p>
<p>LiquidDoc integrates seamlessly with theme checks, code completions, and hover information, helping you catch common mistakes - like missing or misspelled parameters - before they become issues. This makes theme development faster, simpler, and more reliable.</p>
<p>Learn more in the <a href="https://shopify.dev/docs/storefronts/themes/tools/liquid-doc" target="_blank" class="body-link">official LiquidDoc documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 12:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/liquiddoc-for-snippets-and-blocks</link>
  </item>
  <item>
    <title>Simplified BFS design requirements</title>
    <description><![CDATA[ <div class=""><p><strong>What is changing?</strong>
Effective June 1st, 2025, all apps undergoing Built for Shopify (BFS) review, will be graded against <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#design" target="_blank" class="body-link">the simplified BFS design requirements</a>.</p>
<p><strong>Why are we making this change?</strong>
This change is in response to feedback from our partner community. The previous 104 BFS design requirements (spread across 13 design sub-categories) were overwhelming, and could be challenging for Partners to interpret correctly.</p>
<p>The goal with this change was to streamline and simplify the BFS design requirements while still ensuring that the BFS program continues to be a high-water mark for overall app quality. There are now only 19 BFS design requirements spread across 3 design sub-categories.</p>
<p><strong>What action is required?</strong>
If you are planning to submit your app for BFS review or your existing BFS app is coming up for renewal, please make sure that your app adheres to <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#design" target="_blank" class="body-link">the simplified BFS design requirements</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 May 2025 04:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/simplified-bfs-design-requirements</link>
  </item>
  <item>
    <title>Apps now permitted to issue refunds to store credit</title>
    <description><![CDATA[ <div class=""><p>As of May 20th, 2025 apps will be permitted to complete refunds to store credit when store credit was not the original payment method. With this update you can issue store credit to customers as a refund and they can later spend that store credit at checkout. A customer's store credit is visible on their customer accounts profile page and it can be queried via the GraphQL Admin API.</p>
<p><a href="http://shopify.dev/docs/api/admin-graphql/unstable/input-objects/ReturnProcessRefundInput#fields-refundMethods.fields.storeCreditRefund" target="_blank" class="body-link">Learn how to issue store credit refunds in the GraphQL Admin API</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 20 May 2025 19:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/apps-now-permitted-to-issue-refunds-to-store-credit</link>
  </item>
  <item>
    <title>Hydrogen April 2025 Release</title>
    <description><![CDATA[ <div class=""><p>The latest version of Hydrogen v2025.4.0 is out. This release contains updates to internationalization, cart functionality, and template improvements, as well as the latest SFAPI version.</p>
<ul>
<li>Update SFAPI to 2025-04 (<a href="https://github.com/Shopify/hydrogen/pull/2886" target="_blank" class="body-link">#2886</a>)</li>
<li>Fixed duplicate content issues with internationalized product handles (<a href="https://github.com/Shopify/hydrogen/pull/2821" target="_blank" class="body-link">#2821</a>).</li>
<li>Fixed cart quantity validation (<a href="https://github.com/Shopify/hydrogen/pull/2855" target="_blank" class="body-link">#2855</a>)</li>
<li>Improved customer account logout handling (<a href="https://github.com/Shopify/hydrogen/pull/2843" target="_blank" class="body-link">#2843</a>)</li>
<li>Deprecated <code>&lt;VariantSelector /&gt;</code> (<a href="https://github.com/Shopify/hydrogen/pull/2837" target="_blank" class="body-link">#2837</a>)</li>
<li>Refactored ProductItem into a separate component (<a href="https://github.com/Shopify/hydrogen/pull/2872" target="_blank" class="body-link">#2872</a>)</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/april-2025" target="_blank" class="body-link">Hydrogen April 2025 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Tue, 20 May 2025 19:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-april-2025-release</link>
  </item>
  <item>
    <title>New GraphQL API for Draft Order Delivery Options for Developers</title>
    <description><![CDATA[ <div class=""><p>This API enables you to efficiently retrieve all available delivery options for draft orders with a single request. It introduces a specialized endpoint that replaces the legacy <code>CalculatedDraftOrder</code> <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/CalculatedDraftOrder#field-availableShippingRates" target="_blank" class="body-link">field</a> for available shipping rates.</p>
<p>The new endpoint allows developers to fetch not only shipping rates but also options for local delivery and pickup, with support for pagination. This feature is now accessible to all apps with the <a href="https://shopify.dev/docs/api/usage/access-scope" target="_blank" class="body-link">read_draft_orders access scope</a>. This enhancement streamlines the process of obtaining comprehensive delivery options, improving the efficiency of order management.</p>
</div> ]]></description>
    <pubDate>Tue, 20 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-graphql-api-for-draft-order-delivery-options-for-developers</link>
  </item>
  <item>
    <title>The Storefront API's Cart object now exposes warnings for non-applicable discount codes</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-07 of the GraphQL Storefront API, the <code>Cart</code> object now provides detailed warnings for non-applicable <a href="https://shopify.dev/docs/api/storefront/latest/objects/CartDiscountCode" target="_blank" class="body-link"><code>CartDiscountCodes</code></a>.</p>
<p>Previously, when a discount code could not be applied, the <code>CartDiscountCode</code> was returned with <code>applicable: false</code>, and no additional details. This lack of information made it difficult for developers to provide helpful feedback to buyers.</p>
<p>With the introduction of the new <a href="https://shopify.dev/docs/api/storefront/2025-07/objects/CartWarning" target="_blank" class="body-link"><code>CartWarning</code></a> types, you can now clearly identify the specific reasons why a discount code isn't applicable.</p>
</div> ]]></description>
    <pubDate>Mon, 19 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/add-warnings-for-discount-codes</link>
  </item>
  <item>
    <title>Shopify Functions can execute up to 25 functions in a single batch</title>
    <description><![CDATA[ <div class=""><p>Shopify Functions now supports up to 25 active functions per Function API, increased from the previous limit of 5. This allows developers to split complex or unrelated logic into smaller, dedicated functions rather than combining everything together.</p>
<p>This change applies to:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/functions/reference/payment-customization" target="_blank" class="body-link">Payment customizations</a></li>
<li><a href="https://shopify.dev/docs/api/functions/reference/delivery-customization" target="_blank" class="body-link">Delivery customizations</a></li>
<li><a href="https://shopify.dev/docs/api/functions/reference/cart-checkout-validation" target="_blank" class="body-link">Cart and checkout validations</a></li>
<li><a href="https://shopify.dev/docs/api/functions/reference/fulfillment-constraints" target="_blank" class="body-link">Fulfillment constraints</a></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 19 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/shopify-functions-25-functions-limit</link>
  </item>
  <item>
    <title>Uncapped counts in GraphQL</title>
    <description><![CDATA[ <div class=""><p>All count APIs in GraphQL now return uncapped results. To retrieve an uncapped count, set the <code>limit</code> argument to <code>null</code>.</p>
<p>As part of this update, we've standardized the implementation across all GraphQL APIs. This change introduces a breaking change: all APIs now include a <code>limit</code> argument, with a default value of <code>10000</code>.</p>
<p>List of APIs impacted</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/abandonedCheckoutsCount" target="_blank" class="body-link">abandonedCheckoutsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/blogsCount" target="_blank" class="body-link">blogsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/catalogsCount" target="_blank" class="body-link">catalogsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/collectionsCount" target="_blank" class="body-link">collectionsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/customersCount" target="_blank" class="body-link">customersCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/discountCodesCount" target="_blank" class="body-link">discountCodesCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/discountNodesCount" target="_blank" class="body-link">discountNodesCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/draftOrdersCount" target="_blank" class="body-link">draftOrdersCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/giftCardsCount" target="_blank" class="body-link">giftCardsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/locationsCount" target="_blank" class="body-link">locationsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/ordersCount" target="_blank" class="body-link">ordersCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/pagesCount" target="_blank" class="body-link">pagesCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/productsCount" target="_blank" class="body-link">productsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/productVariantsCount" target="_blank" class="body-link">productVariantsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/urlRedirectsCount" target="_blank" class="body-link">urlRedirectsCount</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/webhookSubscriptionsCount" target="_blank" class="body-link">webhookSubscriptionsCount</a></li>
</ul>
<p>Note: Due to the large number of events generated, we're continuing to cap <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/eventsCount" target="_blank" class="body-link">eventsCount</a> at 10,000. </p>
</div> ]]></description>
    <pubDate>Fri, 16 May 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/uncapped-graphql-counts</link>
  </item>
  <item>
    <title>Public access for app owned metafields and metaobjects is now disabled</title>
    <description><![CDATA[ <div class=""><p>In line with last year's <a href="https://shopify.dev/changelog/simplifying-how-metafield-and-metaobject-permissions-work" target="_blank" class="body-link">announcement</a> regarding metafields access simplification, we are now implementing the removal of <code>PUBLIC</code> access for app-owned metafields and metaobjects. </p>
<p>The following updates have been applied across all API versions:</p>
<ol>
<li>Metafields and metaobjects previously set to <code>PUBLIC_READ_WRITE</code> are now set to <code>MERCHANT_READ_WRITE</code>.</li>
<li>Metafields and metaobjects previously set to <code>PUBLIC_READ</code> are now set to <code>MERCHANT_READ</code>.</li>
</ol>
<p><strong>Required Action</strong>: If your app needs metafields or metaobjects to be accessible by other apps, you must migrate them to a custom namespace rather than using your app's reserved namespace. A custom namespace allows for broader access options, while a reserved namespace is specific to your app.</p>
</div> ]]></description>
    <pubDate>Fri, 16 May 2025 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/public-access-for-app-owned-metafields-and-metaobjects-is-now-disabled</link>
  </item>
  <item>
    <title>Categories for Section and Block Presets</title>
    <description><![CDATA[ <div class=""><p>We've added a new optional <code>category</code> property for section and block presets that helps you organize your presets into logical groups. Now your merchants can find the right design elements faster and more intuitively in the Online Store Editor.</p>
<p>You can learn more by visiting <a href="http://shopify.dev/docs/storefronts/themes/architecture/blocks/theme-blocks/schema#presets" target="_blank" class="body-link">block preset</a> and <a href="http://shopify.dev/docs/storefronts/themes/architecture/sections/section-schema#presets" target="_blank" class="body-link">section preset</a> docs.</p>
</div> ]]></description>
    <pubDate>Thu, 15 May 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/categories-for-section-and-block-presets</link>
  </item>
  <item>
    <title>Updated Shopify Theme Store Requirements and Submission Process – Effective May 15, 2025</title>
    <description><![CDATA[ <div class=""><p>Starting May 15, 2025, all Shopify themes must meet the updated <a href="https://shopify.dev/docs/storefronts/themes/store/requirements" target="_blank" class="body-link">Theme Store requirements</a> for new submissions and updates.</p>
<p><strong>Key changes include:</strong></p>
<ul>
<li><strong>Theme Zip File Structure:</strong> New <a href="https://shopify.dev/docs/storefronts/themes/store/success/updates#adding-theme-presets" target="_blank" class="body-link">/listings folder</a> is now required in theme zip files.</li>
<li><strong>Preset Naming Requirements:</strong> Theme <a href="https://shopify.dev/docs/storefronts/themes/store/requirements#18-naming-themes-and-theme-presets" target="_blank" class="body-link">name requirements</a> now apply to each preset.</li>
<li><strong>Industry Categories + Tagging:</strong>  Each theme preset can be tagged with a maximum of two <a href="https://shopify.dev/docs/storefronts/themes/store/review-process/listings#industry" target="_blank" class="body-link">industries</a>. There are now 20 industry categories to choose from.</li>
<li><strong>Catalog Size Categories + Tagging:</strong> Each theme preset must be tagged with one <a href="https://shopify.dev/docs/storefronts/themes/store/review-process/listings#catalog-size" target="_blank" class="body-link">catalog size</a>. Four catalog size categories are now available.</li>
<li><strong>Demo Store Requirements:</strong></li>
<li>Each <a href="https://shopify.dev/docs/storefronts/themes/store/requirements#20-demo-stores" target="_blank" class="body-link">demo store</a> must match the primary industry and catalog size the preset is tagged with. </li>
<li>The install store must match the expectations set by the demo store.</li>
<li><strong>Listing Page Structure:</strong> The <a href="https://shopify.dev/docs/storefronts/themes/store/review-process/listings" target="_blank" class="body-link">submission form</a> is updated to support individual listing pages for every preset.</li>
<li><strong>Simplified UX &amp; Design Requirements:</strong> Simpler, more explicit, and <a href="https://shopify.dev/docs/storefronts/themes/store/requirements#3-theme-design-and-ux" target="_blank" class="body-link">easier for you to follow</a>.</li>
</ul>
<p>These updates are part of a broader redesign of the Shopify Theme Store, set to launch in July 2025. This redesign aims to enhance theme discovery for merchants and streamline their setup process, while providing developers with better marketing opportunities.</p>
<p><strong>IMPORTANT – Next Steps for Developers:</strong>
To keep your themes listed after the redesign launches in July, please <strong><a href="https://shopify.dev/docs/storefronts/themes/store/success/updates" target="_blank" class="body-link">update and resubmit your theme files</a> by June 22.</strong> Updated themes and listing pages will not be published until the new Theme Store goes live in July.</p>
<p><em><strong>Note:</strong></em> Expect potential delays for new theme submissions and updates during the migration period from May 15 to July 1, 2025.</p>
</div> ]]></description>
    <pubDate>Thu, 15 May 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-shopify-theme-store-requirements-and-submission-process-effective-may-15-2025</link>
  </item>
  <item>
    <title>Archiving outdated, unhelpful, and untrusted reviews on the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>To increase the trustworthiness of the Shopify App Store, we’re archiving a significant number of outdated, unhelpful, and untrusted reviews.</p>
<p>Archived reviews are not factored into app ratings or total review counts. Some will remain visible at the end of the reviews section on app listings. </p>
<p>While many reviews are being archived, the vast majority of apps will not see changes to their app rating or ranking. </p>
<p>In the coming months, we’re adding more quality signals to help businesses find apps that are truly right for them. Together, these updates combat manipulative practices like review farming, fake reviews, and other bad faith reviews so you can focus on what matters most—building exceptional apps that help businesses grow.</p>
<p>To streamline feedback, developers now receive instant email notifications when merchants submit new reviews. Later this year, we’ll also introduce tools to help app developers collect merchant feedback directly within the Shopify admin. </p>
<p>Archived review decisions cannot be appealed. For more details, explore our updated <a href="https://shopify.dev/docs/apps/launch/marketing/manage-app-reviews" target="_blank" class="body-link">docs</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 15 May 2025 15:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/archiving-outdated-unhelpful-and-untrusted-reviews-on-the-shopify-app-store</link>
  </item>
  <item>
    <title>[Cart AJAX API] Discounts support on `/cart/update.js`</title>
    <description><![CDATA[ <div class=""><p>We have added support for discounts in the Cart AJAX API's <code>/cart/update.js</code> endpoint. You can now <a href="https://shopify.dev/docs/api/ajax/reference/cart#update-discounts-in-the-cart" target="_blank" class="body-link">add or remove discounts from your cart</a> using the <code>discount</code> parameter.</p>
<p>Learn more about cart discount support on <a href="https://shopify.dev/docs/api/ajax/reference/cart#update-the-cart-discounts" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 15 May 2025 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/cart-ajax-api-discounts-support-on-cartupdatejs</link>
  </item>
  <item>
    <title>New `FREE_GIFT_CARD_NOT_ALLOWED` error code for subscription billing attempts</title>
    <description><![CDATA[ <div class=""><p>We’ve added a new error code, <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/SubscriptionBillingAttemptErrorCode#enums-FREE_GIFT_CARD_NOT_ALLOWED" target="_blank" class="body-link"><code>FREE_GIFT_CARD_NOT_ALLOWED</code></a>, to the <code>SubscriptionBillingAttemptErrorCode</code> enum. This error occurs when a subscription contract includes a gift card product with a purchase price of $0, which is not permitted under Shopify’s business rules. </p>
<p>While the situation is rare, this error can occur due to edge cases in dynamic pricing scenarios (for example, bundles or cart transformations could inadvertently set a gift card’s price to zero when part of a subscription contract). Previously, this resulted in a generic error message, making the cause difficult to troubleshoot.</p>
<p><strong>Note</strong>: This error concerns the purchase price of the gift card as a product, not the monetary value loaded onto the card for the gift recipient.</p>
<p>Adding this specific error code improves clarity for Partners and developers, making it easier to diagnose and resolve issues related to subscriptions containing zero-priced gift cards. </p>
<p>This error code has been added to API versions 2025-01 and later. </p>
</div> ]]></description>
    <pubDate>Tue, 13 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-freegiftcardnotallowed-error-code-for-subscription-billing-attempts</link>
  </item>
  <item>
    <title>New Storefront API CartErrorCode: BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION</title>
    <description><![CDATA[ <div class=""><p>We've introduced a <code>BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION</code> <a href="https://shopify.dev/docs/api/storefront/2025-07/enums/CartErrorCode" target="_blank" class="body-link"><code>CartErrorCode</code></a>, which indicates a buyer has lost permission to purchase for their selected company location.</p>
</div> ]]></description>
    <pubDate>Sat, 10 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-storefront-api-carterrorcode-buyercannotpurchaseforcompanylocation</link>
  </item>
  <item>
    <title>Deprecating `gates` types and fields across the GraphQL Admin, Storefront, and Functions APIs</title>
    <description><![CDATA[ <div class=""><p>Shopify is retiring gates types and fields due to limited usage and our commitment to enhancing developer tools with more robust APIs. To ensure your applications continue to function optimally, we recommend transitioning your implementations to metafields and metaobjects. These solutions offer powerful capabilities for managing structured custom data, seamlessly integrated across Shopify's Admin API, Storefront API, and Functions.</p>
<p>Metafields and metaobjects provide a flexible and efficient way to store and retrieve custom data, enhancing your ability to tailor Shopify experiences to your specific needs. For detailed guidance on migrating your implementations, please refer to our <a href="https://shopify.dev/docs/apps/build/custom-data" target="_blank" class="body-link">custom data documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 06 May 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Functions</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/gates-api-sunset</link>
  </item>
  <item>
    <title>Deprecating `gates` types and fields across the GraphQL Admin, Storefront, and Functions APIs</title>
    <description><![CDATA[ <div class=""><p>Shopify is retiring gates types and fields due to limited usage and our commitment to enhancing developer tools with more robust APIs. To ensure your applications continue to function optimally, we recommend transitioning your implementations to metafields and metaobjects. These solutions offer powerful capabilities for managing structured custom data, seamlessly integrated across Shopify's Admin API, Storefront API, and Functions.</p>
<p>Metafields and metaobjects provide a flexible and efficient way to store and retrieve custom data, enhancing your ability to tailor Shopify experiences to your specific needs. For detailed guidance on migrating your implementations, please refer to our <a href="https://shopify.dev/docs/apps/build/custom-data" target="_blank" class="body-link">custom data documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 06 May 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Functions</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/gates-api-sunset</link>
  </item>
  <item>
    <title>Store credit account balance now available in Liquid</title>
    <description><![CDATA[ <div class=""><p>You can now remind customers of their store credit balance by displaying it on the storefront using the new <a href="https://shopify.dev/docs/api/liquid/objects/store_credit_account" target="_blank" class="body-link"><code>store credit account object</code></a>. This object can be accessed through the <code>store_credit_account</code> property of the <a href="https://shopify.dev/docs/api/liquid/objects/customer" target="_blank" class="body-link">customer</a> object.</p>
<p>To display the customer's store credit balance in the current context, use the following Liquid expression: <code>{{customer.store_credit_account.balance | money_with_currency}}</code>.</p>
<p><a href="https://shopify.dev/docs/api/liquid/objects/store_credit_account" target="_blank" class="body-link">Learn more</a> about using store credit in Liquid.</p>
</div> ]]></description>
    <pubDate>Sat, 03 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/store-credit-account-balance-available-in-liquid</link>
  </item>
  <item>
    <title>Shop Component: Shop Pay Payment Request Receipt queries  </title>
    <description><![CDATA[ <div class=""><p>Shopify now enables developers to retrieve Shop Pay payment request details and statuses directly through GraphQL queries. This feature allows easy access to payment information by specifying a custom <code>source_identifier</code> or using the Shop Pay payment request receipt token. By using these identifiers, developers can streamline payment processing workflows and improve the accuracy of data retrieval.</p>
<p>Please note that this feature is available exclusively to merchants using Shop Compoent.</p>
</div> ]]></description>
    <pubDate>Sat, 03 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/shop-component-shop-pay-payment-request-receipt-queries</link>
  </item>
  <item>
    <title>New filter options added to `orders` connection in Customer Account API</title>
    <description><![CDATA[ <div class=""><p>We have added new query parameters to the <code>orders</code> connection (<a href="https://shopify.dev/docs/api/customer/latest/connections/OrderConnection" target="_blank" class="body-link"><code>OrderConnection</code></a>) within the <a href="https://shopify.dev/docs/api/customer/latest/queries/customer" target="_blank" class="body-link"><code>customer</code></a> <a href="https://shopify.dev/docs/api/customer/latest/queries/customer#returns-Customer.fields.orders.arguments.query" target="_blank" class="body-link"><code>query</code></a> of the GraphQL Customer Account API. </p>
<p>Developers can now filter orders using the <a href="https://shopify.dev/docs/api/customer/latest/queries/customer#argument-query-filter-name" target="_blank" class="body-link"><code>name</code></a> and <a href="https://shopify.dev/docs/api/customer/latest/queries/customer#argument-query-filter-confirmation_number" target="_blank" class="body-link"><code>confirmation_number</code></a> parameters, which enables more precise order filtering.</p>
</div> ]]></description>
    <pubDate>Thu, 01 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Customer Account API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-filter-options-added-to-orders-connection-in-customer-account-api</link>
  </item>
  <item>
    <title>Deprecation of `draftOrderCreateMerchantCheckout` mutation</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-07, the <code>draftOrderCreateMerchantCheckout</code> mutation has been deprecated. Please use the <code>draftOrderComplete</code> mutation instead.</p>
<p>For more information, please visit our <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/draftOrderComplete" target="_blank" class="body-link">help docs</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 May 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/deprecation-of-draftordercreatemerchantcheckout-mutation</link>
  </item>
  <item>
    <title>More automated checks for app review pre-submission page</title>
    <description><![CDATA[ <div class=""><p>We’ve added new automated checks to the Shopify App Store review process to help you prepare your app for submission, provide faster feedback, and prevent common errors. New auto-checks include:</p>
<ul>
<li>App immediately authenticates after install</li>
<li>Redirects to app UI directly after install</li>
<li>Uninstalls and re-installs correctly</li>
<li>Using the latest version of App Bridge</li>
<li>Additional checks for app listing compliance (with guidance for app name, description)
<img src="https://screenshot.click/pre-submission_image.png" alt=""></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 30 Apr 2025 19:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/more-automated-checks-for-app-review-pre-submission-page</link>
  </item>
  <item>
    <title>Payment apps can no longer be embedded in the Shopify admin</title>
    <description><![CDATA[ <div class=""><p>As of April 30, 2025, payment apps are no longer eligible to be embedded apps within the Shopify admin. The <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#16-payments-apps" target="_blank" class="body-link">Payment Apps requirements</a> have been updated to reflect this change.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Apr 2025 07:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/payment-apps-can-no-longer-be-embedded-in-the-shopify-admin</link>
  </item>
  <item>
    <title>Display modals after purchase</title>
    <description><![CDATA[ <div class=""><p>The new <a href="https://shopify.dev/docs/api/payments-apps/unstable/mutations/paymentSessionModal" target="_blank" class="body-link"><code>paymentSessionModal</code></a> mutation raises a modal that will be displayed to the buyer after purchase. This modal uses provided data to display additional info to buyers. For example, you could show a QR Code that a buyer can scan, or render message telling buyers to complete an action on an external device.</p>
</div> ]]></description>
    <pubDate>Sat, 26 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-mutation-to-add-post-pay-actions-onsite</link>
  </item>
  <item>
    <title>Update to Shopify’s app developer revenue share</title>
    <description><![CDATA[ <div class=""><p>During the pandemic, we lowered our revshare to help small developers and introduced an exemption on the first $1M earned each year. Our ecosystem is stronger than ever—merchants have more than 16,000 apps to choose from, and we paid out more than $1B to developers last year. </p>
<p>The time has now come to sunset the annual exemption reset. <strong>Developers will continue to enjoy a revshare exemption on the first $1 million USD of <em>lifetime</em> revenue, and a 15% share on amounts above that.</strong></p>
<p>Key details:</p>
<ul>
<li>Earnings before January 1, 2025 do not count toward the $1 million threshold.</li>
<li>Earnings are aggregated at the partner level, including apps developed under associated developer accounts.</li>
<li>Updates to Shopify’s <a href="https://www.shopify.com/ca/partners/terms" target="_blank" class="body-link">Partner Program Agreement</a> will go into effect June 16, 2025. Continued use of Shopify services on or after June 16, 2025 confirms that you’ve read, understood, and accepted these new terms.</li>
</ul>
<p>The additional revenue collected will fund tools, infrastructure, and innovation that benefit developers at every stage. Over the past two years alone, we’ve:</p>
<ul>
<li>Introduced platform-managed features, including Shopify-managed installation, webhooks, and pricing—all of which reduce complexity for app developers. </li>
<li>Added admin extensions, Checkout UI extensions, and Shopify Functions, helping developers integrate into admin and offload logic and UI rendering to Shopify. </li>
<li>Offered app metafields and metaobjects with Direct API access, enabling developers to use Shopify for app storage. </li>
<li>Made it easier to grow your app business with a streamlined app review process, a full-funnel ads product, and much more surface area for discovery on the redesigned Shopify App Store.</li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 26 Apr 2025 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/update-to-shopifys-app-developer-revenue-share</link>
  </item>
  <item>
    <title>Passing parameters to static blocks</title>
    <description><![CDATA[ <div class=""><p>You can now pass arbitraty parameters to static blocks, making it possible simplify the theme code by building more composable components. </p>
<p>As an example, you can pass color from your section to your static block:</p>
<pre><code>{% content_for &quot;block&quot;, id:&quot;slide-1&quot;, type:&quot;slideshow&quot;, color: &quot;#F00&quot; %}
</code></pre>
<p>From the block that data can be easily accessed:</p>
<pre><code>{{ color }}
</code></pre>
<p>You can learn more about this feature in our <a href="https://shopify.dev/docs/storefronts/themes/architecture/blocks/theme-blocks/static-blocks#passing-data-to-static-blocks" target="_blank" class="body-link">developer docs</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 24 Apr 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/passing-parameters-to-static-blocks</link>
  </item>
  <item>
    <title>Refund to Store Credit</title>
    <description><![CDATA[ <div class=""><p>You can now issue a specified amount as new store credit when processing refunds. This can be done in addition to refunding amounts to the original payment methods. If a customer requests a refund to their original payment method after already receiving a refund to new store credit, you can accomplish this by specifying a parameter that allows over-refunding. Note that this parameter is disabled by default.</p>
<p>To use this feature, ensure the following prerequisites are met:</p>
<ul>
<li><a href="https://help.shopify.com/en/manual/customers/customer-accounts/new-customer-accounts" target="_blank" class="body-link">New customer accounts</a> must be enabled in the store.</li>
<li>The order must be associated with a customer.</li>
</ul>
<p>This feature integrates with the standard refund API process as follows:</p>
<ul>
<li>Use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Order#field-suggestedRefund" target="_blank" class="body-link"><code>Order.suggestedRefund</code> field</a> to create a suggested set of transactions and refund methods. You can now use the <code>refundMethodAllocation</code> parameter to define this set.</li>
<li>Pass the transactions and other refund components (e.g. <code>refundLineItems</code>), as before, to the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/refundCreate" target="_blank" class="body-link"><code>refundCreate</code> mutation</a>. Additionally, you can now use the <code>refundMethods</code> parameter to pass in any refunds to new store credit.</li>
</ul>
<p>You can also refund to store credit using new return processing APIs:</p>
<ul>
<li>Use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Return#field-Return.fields.suggestedFinancialOutcome" target="_blank" class="body-link"><code>Return.suggestedFinancialOutcome</code> field</a> to query for suggested refund amounts. Specify <code>STORE_CREDIT</code> as the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Return#field-Return.fields.suggestedFinancialOutcome.arguments.refundMethodAllocation" target="_blank" class="body-link"><code>refundMethodAllocation</code> parameter</a> to retrieve a suggested store credit refund amount.</li>
<li>Use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/ReturnProcessInput#fields-financialTransfer.fields.issueRefund.refundMethods" target="_blank" class="body-link"><code>financialTransfer.issueRefund.refundMethods</code> parameter</a> of the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code> mutation</a> to specify the <code>storeCreditRefund</code> amount and complete the refund.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 24 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/refund-to-store-credit</link>
  </item>
  <item>
    <title>Web Pixels API: `event.data.checkout.subtotalPrice.amount` value change on the new `/thank-you` page and checkout events</title>
    <description><![CDATA[ <div class=""><p>The <code>event.data.checkout.subtotalPrice.amount</code> value in the <a href="https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed#properties-propertydetail-data" target="_blank" class="body-link">Web Pixels API</a> has been updated. </p>
<p>Previously, this value included the sum of all line item prices and product-level discounts, but not order-level discounts. Now, <code>event.data.checkout.subtotalPrice.amount</code> reflects the sum of all line item prices after applying both product and order-level discounts. This update aligns the definition with the <code>event.data.checkout.subtotalPrice.amount</code> field on the old <code>/thank_you</code> page. </p>
<p>The <code>event.data.checkout.subtotalPrice.amount</code> changes will affect the following events:</p>
<ul>
<li><code>checkout_completed</code> (on the new <code>/thank-you</code> page only)</li>
<li><code>checkout_started</code></li>
<li><code>checkout_address_info_submitted</code></li>
<li><code>checkout_shipping_info_submitted</code></li>
<li><code>checkout_contact_info_submitted</code></li>
<li><code>payment_info_submitted</code></li>
</ul>
<p>If you use any of the above events, you should ensure that your pixel expects both product and order-level discounts to be included in this field.</p>
</div> ]]></description>
    <pubDate>Thu, 24 Apr 2025 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/web-pixels-api-eventdatacheckoutsubtotalpriceamount-value-change-on-the-new-thank-you-page-and-checkout-events</link>
  </item>
  <item>
    <title>The `UnitPriceMeasurementMeasuredUnit` enum now includes imperial units and counts</title>
    <description><![CDATA[ <div class=""><p>In the release candidate for version 2025-07 of the <a href="https://shopify.dev/docs/api/storefront/2025-07/enums/UnitPriceMeasurementMeasuredUnit" target="_blank" class="body-link">Storefront</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/enums/UnitPriceMeasurementMeasuredUnit" target="_blank" class="body-link">GraphQL Admin</a>, and <a href="https://shopify.dev/docs/api/customer/2025-07/enums/UnitPriceMeasurementUnit" target="_blank" class="body-link">Customer Account API</a>, the  <code>UnitPriceMeasurementMeasuredUnit</code> enum now supports values for imperial units and counts.</p>
<p>For example: </p>
<ul>
<li>$10/oz or $5/ft</li>
<li>$2/item</li>
</ul>
<p>This update enables merchants to display more relevant and transparent pricing.</p>
<p>When 2025-07 is in the latest stable version, you can do the following to ensure that your app is compatible with the new measurement units:</p>
<ul>
<li>Update your app to API version 2025-07.</li>
<li>Make relevant <a href="https://shopify.dev/docs/api/usage/versioning#making-requests-to-an-api-version" target="_blank" class="body-link">requests to API version 2025-07</a> for unit pricing.</li>
</ul>
<p>Otherwise, the API will return the price value but return <code>null</code> imperial units and counts.</p>
</div> ]]></description>
    <pubDate>Mon, 21 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>Storefront GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/unit-pricing-api-update</link>
  </item>
  <item>
    <title>POS UI Extensions - Cart API: Customer fields removed from `subscribable` hook</title>
    <description><![CDATA[ <div class=""><p>The POS UI Extensions Cart API has been updated, removing the <code>email</code>, <code>firstName</code>, <code>lastName</code>, and <code>note</code> Customer fields from the <a href="https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/cart-api#cartapi-propertydetail-subscribable" target="_blank" class="body-link"><code>subscribable hook</code></a>. Any extension used in POS version 10.0.0 or higher, and any extension targeting API version 2025-01 or higher, won't have access to these fields.</p>
<p>To get this data, update your code to use the <code>customerId</code> to retrieve the customer record from the GraphQL Admin API. To do this, your extension must have the <code>read_customers permission</code> access scope.</p>
<p>To learn more, read the <a href="https://shopify.dev/docs/api/pos-ui-extensions" target="_blank" class="body-link">POS UI Extensions</a> documentation.</p>
</div> ]]></description>
    <pubDate>Mon, 21 Apr 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-cart-api-customer-fields-removed-from-subscribable-hook</link>
  </item>
  <item>
    <title>Adding `publicDisplayName` field on `ShopPlan`</title>
    <description><![CDATA[ <div class=""><p>The <code>publicDisplayName</code> field is being added to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/shopplan" target="_blank" class="body-link"><code>ShopPlan</code></a> object. This field provides the publicly displayable name of the shop's current plan when requesting <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/shop" target="_blank" class="body-link">shop properties</a>.</p>
<p>The <code>publicDisplayName</code> field returns a standardized set of plan names, similar to those currently provided by the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/shopplan#field-displayName" target="_blank" class="body-link"><code>displayName</code></a> field. This standardization aims to simplify and unify the plan names that are publicly exposed.</p>
<p>Additionally, the plan previously known as <code>Shopify</code> has been renamed to <code>Grow</code>, and this change is reflected in the <code>publicDisplayName</code> field.</p>
<p>Please note that the <code>displayName</code> field will be deprecated in the future. We recommend updating your applications to use the <code>publicDisplayName</code> field to ensure compatibility with future updates.</p>
</div> ]]></description>
    <pubDate>Mon, 21 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/adding-publicdisplayname-field-on-shopplan</link>
  </item>
  <item>
    <title>The `cartDeliveryAddressesUpdate` mutation now supports removing all addresses from a cart</title>
    <description><![CDATA[ <div class=""><p>To clear all delivery addresses associated with a cart, you can now call the <a href="https://shopify.dev/docs/api/storefront/latest/mutations/cartDeliveryAddressesUpdate" target="_blank" class="body-link"><code>cartDeliveryAddressesUpdate</code> mutation</a> and set <code>addresses</code> to an empty array(<code>[]</code>). </p>
<p>Previously, to clear a cart’s addresses, you could call the <a href="https://shopify.dev/docs/api/storefront/2025-04/mutations/cartBuyerIdentityUpdate" target="_blank" class="body-link"><code>cartBuyerIdentityUpdate</code> mutation</a> and set <code>buyerIdentity.deliveryAddressPreferences</code> to an empty array. However, <code>deliveryAddressPreferences</code> is deprecated.</p>
<p><strong>Action required before API version 2025-10</strong></p>
<p>Review your existing code. Starting with API version 2025-10, setting the <code>addresses</code> field of the <code>cartDeliveryAddressesUpdate</code> mutation to an empty array (<code>[]</code>) clears cart addresses. If you do not want this behavior, update your code.</p>
</div> ]]></description>
    <pubDate>Thu, 17 Apr 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Storefront GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/the-cartdeliveryaddressesupdate-mutation-now-supports-removing-all-addresses-from-a-cart</link>
  </item>
  <item>
    <title>Create smart collections automatically with PRODUCT_CATEGORY_ID_WITH_DESCENDANTS</title>
    <description><![CDATA[ <div class=""><p>We've introduced a new <code>PRODUCT_CATEGORY_ID_WITH_DESCENDANTS</code> column to the <code>CollectionRuleColumn</code>. This field is <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/CollectionRuleColumn" target="_blank" class="body-link">used for automated collections</a> and allows you to create smart collections based on a new category tree.</p>
<p>This rule type dynamically includes products in a smart collection based on their product category, as defined in the <a href="https://github.com/Shopify/product-taxonomy/tree/main" target="_blank" class="body-link">updated standard product taxonomy</a>. When a specific product category is set as a condition, this rule will match products directly assigned to the specified category and include any products categorized under its descendants.</p>
<p>To create a smart collection using the new <code>PRODUCT_CATEGORY_ID_WITH_DESCENDANTS</code>, follow this process:</p>
<pre><code>mutation CollectionCreate($input: CollectionInput!) {
  collectionCreate(input: $input) {
    userErrors {
      field
      message
    }
    collection {
      id
      title
      descriptionHtml
      handle
      sortOrder
      ruleSet {
        appliedDisjunctively
        rules {
          column
          relation
          condition
        }
      }
    }
  }
}
{
  &quot;input&quot;: {
    &quot;title&quot;: &quot;Our entire shoe collection&quot;,
    &quot;descriptionHtml&quot;: &quot;View &lt;b&gt;every&lt;/b&gt; shoe available in our store.&quot;,
    &quot;ruleSet&quot;: {
      &quot;appliedDisjunctively&quot;: false,
      &quot;rules&quot;: {
        &quot;column&quot;: &quot;PRODUCT_CATEGORY_ID_WITH_DESCENDANTS&quot;,
        &quot;relation&quot;: &quot;EQUALS&quot;,
        &quot;condition&quot;: &quot;gid://shopify/TaxonomyCategory/aa-5&quot; 
      }
    }
  }
}
</code></pre>
<p>Learn more about collection creation in <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionCreate" target="_blank" class="body-link">collectionCreate</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 14 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/introducing-productcategoryidwithdescendants-in-collectionrulecolumn-for-smart-collections</link>
  </item>
  <item>
    <title>Change in `productSet` mutation error code for suspended product</title>
    <description><![CDATA[ <div class=""><p>As of the <code>2025-07</code> version of the GraphQL Admin API, an attempt to update a suspended product using <code>productSet</code> mutation will now return <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/enums/ProductSetUserErrorCode#enum-PRODUCT_SUSPENDED" target="_blank" class="body-link"><code>PRODUCT_SUSPENDED</code></a> error code instead of <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/enums/ProductSetUserErrorCode#enum-INVALID_PRODUCT" target="_blank" class="body-link"><code>INVALID_PRODUCT</code></a>.</p>
<p>For more detailed information and examples, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/productSet" target="_blank" class="body-link"><code>productSet</code> documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Sat, 12 Apr 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/change-in-productset-mutation-error-code-for-suspended-product</link>
  </item>
  <item>
    <title>CollectionReorderProducts operation userErrors now includes code field</title>
    <description><![CDATA[ <div class=""><p>Starting with version 2025-10, the <code>userErrors</code> GraphQL type in the GraphQL Admin API's <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionReorderProducts" target="_blank" class="body-link"><code>collectionReorderProducts</code></a> mutation will be updated to <code>CollectionReorderProductsUserError</code>.</p>
<p>This new type retains all the fields of the previous type and introduces an additional <code>code</code> field.</p>
</div> ]]></description>
    <pubDate>Fri, 11 Apr 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/collectionreorderproducts-operation-usererrors-now-includes-code-field</link>
  </item>
  <item>
    <title>New Inventory Transfers experience available for testing in Dev Preview</title>
    <description><![CDATA[ <div class=""><p>The Inventory Transfers developer preview increases flexibility for apps that manage multi-location inventory transfers. You can build and test integrations that support common inventory movements, such as transfers with multiple shipments, and connect with external systems before these features are available to all merchants.</p>
<p>This developer preview includes both API capabilities and changes to the Shopify admin UI, helping you understand how merchants will interact with these features.</p>
<p>To test these features, enable the <strong>Inventory Transfers</strong> developer preview on your development store. Once your development store is set up and the developer preview is enabled, access the enhanced inventory transfer features by navigating to <strong>Inventory &gt; Transfer.</strong></p>
<p>The developer preview provides access to the following features:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/inventorytransfercreate" target="_blank" class="body-link">Transfers API</a>: Create and manage inventory transfers between locations, supporting multiple shipments.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/inventorytransferadddraftshipment" target="_blank" class="body-link">Shipment Management &amp; API</a>: Add and track multiple shipments per transfer with detailed tracking information.</li>
<li><a href="https://shopify.dev/docs/api/webhooks/unstable?reference=graphql#list-of-topics-inventory_transfers/ready_to_ship" target="_blank" class="body-link">Webhooks</a>: Stay synchronized with inventory transfer and shipment changes through dedicated webhook topics.</li>
<li>Receiving workflow: Process received goods for each shipment with acceptance and rejection capabilities.</li>
<li>Extensibility options: Use metafields in the APIs for custom transfer data.</li>
<li>Third-party integration: Enable bi-directional syncing with external platforms.</li>
</ul>
<p>This developer preview is valuable for:</p>
<ul>
<li>Partners building solutions for enterprise merchants</li>
<li>Developers integrating with external inventory management systems</li>
<li>POS solution providers requiring advanced inventory capabilities</li>
</ul>
<p><a href="https://shopify.dev/docs/api/development-stores" target="_blank" class="body-link">Learn how to create a development store.</a></p>
</div> ]]></description>
    <pubDate>Tue, 08 Apr 2025 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-inventory-transfers-experience-available-for-testing-in-dev-preview</link>
  </item>
  <item>
    <title>App ratings now factor in trust signals, with reviews from lower-trust shops carrying less weight.</title>
    <description><![CDATA[ <div class=""><p>App star ratings now factor in trust signals alongside recency to provide timely, fair assessments. Reviews from lower-trust shops will carry less weight, and may be unpublished. </p>
<p>Partners may see their app’s star rating adjusted—increasing or decreasing—to better reflect reviews from trusted shops.</p>
<p>We’re creating a fairer, more reliable ecosystem for developers and merchants alike. If you have questions, visit our <a href="https://shopify.dev/docs/apps/launch/marketing/manage-app-reviews" target="_blank" class="body-link">docs</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Apr 2025 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-ratings-now-factor-in-trust-signals</link>
  </item>
  <item>
    <title>Storefront API now supports cart attributes with blank keys or values</title>
    <description><![CDATA[ <div class=""><p>The GraphQL Storefront API now supports setting <a href="https://shopify.dev/docs/api/storefront/latest/objects/Cart#field-attributes" target="_blank" class="body-link">cart attributes</a> with either blank keys or values. This change applies to all API versions. This matches the behavior of the <a href="https://shopify.dev/docs/api/ajax/reference/cart#update-cart-attributes" target="_blank" class="body-link">AJAX API</a>, which allows for setting blank keys and attributes.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/storefront-api-now-supports-cart-attributes-with-blank-keys-or-values</link>
  </item>
  <item>
    <title>Add and remove customers from an order with GraphQL</title>
    <description><![CDATA[ <div class=""><p>The Admin GraphQL API now includes <code>orderCustomerRemove</code> (to <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/ordercustomerremove" target="_blank" class="body-link">remove a customer from an order</a>) and <code>orderCustomerSet</code> (to <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/orderCustomerSet" target="_blank" class="body-link">add a customer to an order</a>) mutations, making it easier to manage orders and customers. The <code>orderCustomerRemove</code> mutation covers the same use case as setting <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/order#put-orders-order-id" target="_blank" class="body-link"><code>order.customer: null</code> in the REST API</a>, while <code>orderCustomerSet</code> is all-new functionality not previously possible in GraphQL or REST.</p>
<p>We've also added an <code>Order.number</code> <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/order" target="_blank" class="body-link">field</a>, equivalent to the <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/order#post-orders" target="_blank" class="body-link"><code>order_number</code> REST field</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 02 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/orders-number-and-customer-graphql-update</link>
  </item>
  <item>
    <title>Stable GraphQL API versions to backfill enum values</title>
    <description><![CDATA[ <div class=""><p>Our stable API versions will retroactively add values into GraphQL Enum types, making them non-exhaustive going forward. This assures that new application data values can be represented in older API versions, which provides better stability.</p>
<p>While this is a non-breaking change, it can cause disruptions to development toolchains. We recommend that you periodically refresh introspection caches, and integrate enums into your application logic with a catch-all that anticipates unknown cases.</p>
<p>For more information, see <a href="https://shopify.dev/docs/api/usage/versioning#stable-api-versions" target="_blank" class="body-link">https://shopify.dev/docs/api/usage/versioning#stable-api-versions</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 02 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Payments Apps API</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/stable-graphql-api-versions-to-backfill-enum-values</link>
  </item>
  <item>
    <title>Improved user errors on the `fulfillmentOrderCancel` mutation</title>
    <description><![CDATA[ <div class=""><p>The <code>fulfillmentOrderCancel</code> mutation now returns a specific <code>fulfillmentOrderCancelError</code> type instead of the generic <code>userError</code> type.</p>
<h2>What's changing:</h2>
<p>The error response now includes a code field for easier programmatic error handling and identification.</p>
<h2>Why we made this change:</h2>
<p>This enhancement supports the new feature for manually marking fulfillment orders as in-progress, which allows merchants to self-report progress on their fulfillment orders. As part of this feature, cancelling fulfillment orders with reported progress is now restricted, and the enhanced error responses help developers handle these restrictions more effectively.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2026-04</category>
    <link>https://shopify.dev/changelog/fulfillment-order-cancel-error-codes</link>
  </item>
  <item>
    <title>New range fields available for segment filters in GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>You can now access minimum and maximum range values for segment filters through the GraphQL Admin API. The new <code>minRange</code> and <code>maxRange</code> fields are available on integer and float segment filters, and event segment filter parameters.</p>
<p>These new fields help you understand the valid range of values that can be used for customer segmentation. The fields are available on the following filter types:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/segmentintegerfilter" target="_blank" class="body-link">SegmentIntegerFilter</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/segmentfloatfilter" target="_blank" class="body-link">SegmentFloatFilter</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/segmenteventfilterparameter" target="_blank" class="body-link">SegmentEventFilterParameter</a></li>
</ul>
<p>Example query:</p>
<pre><code class="language-graphql">query {
  segmentFilters(first: 50) {
    edges {
      node {
        ... on SegmentIntegerFilter {
          minRange
          maxRange
        }
        ... on SegmentFloatFilter {
          minRange
          maxRange
        }
        ... on SegmentEventFilter {
          parameters {
            minRange
            maxRange
          }
        }
      }
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-range-fields-available-for-segment-filters-in-graphql-admin-api</link>
  </item>
  <item>
    <title>New AppUninstall mutation to allow apps to uninstall themselves.</title>
    <description><![CDATA[ <div class=""><p>Third-party apps can now uninstall themselves from merchant stores using a new public AppUninstall GraphQL mutation.</p>
<p>The mutation serves as a GraphQL equivalent to the existing <a href="https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/uninstall-app-api-request#examples" target="_blank" class="body-link">REST endpoint for app uninstallation</a>.</p>
<p>For implementation details and examples, please refer to our <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/appuninstall" target="_blank" class="body-link">API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-appuninstall-mutation-to-allow-apps-to-uninstall-themselves</link>
  </item>
  <item>
    <title>Returns Processing APIs replaces Return Refund APIs</title>
    <description><![CDATA[ <div class=""><p>As <a href="https://shopify.dev/changelog/deprecation-of-legacy-return-apis-and-improvements-to-return-management" target="_blank" class="body-link">announced previously</a>, we're introducing important changes to simplify and enhance return management in the Shopify Admin API.</p>
<h2>What's changing?</h2>
<ul>
<li>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnRefund" target="_blank" class="body-link"><code>returnRefund</code></a> mutation is deprecated and replaced by the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> mutation. The <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> mutation streamlines return lifecycle management by combining disposition decisions and financial processing into a single call.</li>
<li>The field <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/suggestedReturnRefund" target="_blank" class="body-link"><code>Return.suggestedReturnRefund</code></a> is deprecated in favor of the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/SuggestedReturnFinancialOutcome" target="_blank" class="body-link"><code>Return.suggestedFinancialOutcome</code></a> field.</li>
<li>Exchange fulfillment orders are now created only when exchange line items are processed, ensuring accuracy.</li>
<li>Refunds and return processing now offer enhanced precision for managing returned line items.</li>
<li>Only exchanges with a net payable balance due by the buyer are placed on hold with <code>AWAITING_PAYMENT</code> hold reason.</li>
</ul>
<p><strong>Action required:</strong><br>If your app currently creates returns using <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnCreate" target="_blank" class="body-link"><code>returnCreate</code></a> or approves return requests using <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnApproveRequest" target="_blank" class="body-link"><code>returnApproveRequest</code></a>, migrate to the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> mutation to handle refunds and exchanges. The older mutations (<a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/refundCreate" target="_blank" class="body-link"><code>refundCreate</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnRefund" target="_blank" class="body-link"><code>returnRefund</code></a>) and the query field (<a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/suggestedRefund" target="_blank" class="body-link"><code>Return.suggestedRefund</code></a>) are deprecated. Instead, you should now use <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/returnProcess" target="_blank" class="body-link"><code>returnProcess</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/SuggestedReturnFinancialOutcome" target="_blank" class="body-link"><code>Return.suggestedFinancialOutcome</code></a>.</p>
<p><strong>Availability:</strong><br>These new APIs officially launched in API version <code>2025-07</code>.</p>
<p>For more details, see our updated <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/migrate-to-return-processing" target="_blank" class="body-link">migration guide</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/returns-processing-api</link>
  </item>
  <item>
    <title>Deprecation of Product, Order, and Shipping Discount Function APIs</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-04, the following Function APIs are deprecated:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/functions/latest/product-discount" target="_blank" class="body-link">Product Discount Function API</a></li>
<li><a href="https://shopify.dev/docs/api/functions/latest/order-discount" target="_blank" class="body-link">Order Discount Function API</a></li>
<li><a href="https://shopify.dev/docs/api/functions/latest/shipping-discount" target="_blank" class="body-link">Shipping Discount Function API</a></li>
</ul>
<p><strong>These APIs will be removed from all future stable and unstable API versions.</strong> </p>
<p>To replace these APIs, we've created the new <a href="https://shopify.dev/docs/api/functions/latest/discount" target="_blank" class="body-link">Discount Function API</a>, unifying the functionality of the previous APIs into a single extension. </p>
<p>If you use the existing APIs, before API version 2026-04 you'll need to update to the new Discount Function API. To learn how to do this, read the <a href="https://shopify.dev/docs/api/functions/latest/discount#migrate-from-deprecated-discount-function-apis" target="_blank" class="body-link">migration guide</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/deprecation-product-order-shipping-discount-function-apis</link>
  </item>
  <item>
    <title>Introducing the new Discount Function API</title>
    <description><![CDATA[ <div class=""><p>In API version 2025-04, we introduced a new <a href="https://shopify.dev/docs/api/functions/reference/discount" target="_blank" class="body-link">Discount Function API</a>, combining the functionality of the Product, Order, and Shipping Discount Function APIs. </p>
<p>This API allows you to create discounts that apply simultaneous savings to products, order totals, and/or shipping costs—a use case historically supported by Shopify Scripts.</p>
<p>To learn more about the new Discount Function API, read our <a href="https://shopify.dev/docs/api/functions/reference/discount" target="_blank" class="body-link">developer documentation</a> and try the <a href="https://shopify.dev/docs/apps/build/discounts/build-discount-function?extension=rust" target="_blank" class="body-link">hands-on tutorial</a>. </p>
<p>If you're using existing discount APIs, the <a href="https://shopify.dev//docs/apps/build/discounts/migrate-discount-api" target="_blank" class="body-link">migration guide</a> describes how to transition to the new Discount Function API.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/new-discount-function-api</link>
  </item>
  <item>
    <title>Network access support for Discount Functions</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/functions/reference/discount" target="_blank" class="body-link"><code>Discount Function API</code></a> now supports network access for Enterprise merchants, giving them the ability to integrate with external premium discount, loyalty, and promotion systems. </p>
<p>Network access for the Discount Function API enables these external systems to do the following things:</p>
<ul>
<li>Automatically apply discounts based on customer identity and products in the cart.</li>
<li>Accept externally defined discount codes.</li>
</ul>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/functions/input-output/network-access" target="_blank" class="body-link">network access</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/network-access-for-discount-function</link>
  </item>
  <item>
    <title>New arguments added to `statusPageUrl` field on the `Order` object</title>
    <description><![CDATA[ <div class=""><p>We're enhancing the security of order status URLs by replacing static keys with purpose-specific capability tokens. This change helps protect customer data while giving you more control over URL access patterns.</p>
<h3>What's changing</h3>
<p>Order status URLs now use dynamically generated capability tokens instead of static key parameters. These tokens provide better security through limited use counts and automatic expiration. Unlike the previous approach, where tokens have been stored in a database, these tokens are generated on demand when creating order status URLs. This eliminates the need for token storage and management, providing more security.</p>
<h3>How to use the new tokens</h3>
<p>When generating order status URLs, you can now specify two optional arguments:</p>
<ul>
<li><code>notification_usage</code>: The delivery channel.<ul>
<li><code>WEB</code> (default): For most use cases, including email.</li>
<li><code>SMS</code></li>
</ul>
</li>
<li><code>audience</code>: The intended recipient.<ul>
<li><code>CUSTOMERVIEW</code> (default): Intended for a customer. To be sent through a notification and opened at a later time.</li>
<li><code>MERCHANTVIEW</code>: Intended for a merchant. To be used immediately to preview the order status page.</li>
</ul>
</li>
</ul>
<p>Both of these arguments determine the token's configuration, including expiration. Make sure to choose the right combination to ensure you obtain a token that matches the security profile of your intended use case.</p>
<p>The configuration overview is as follows:</p>
<p>| Usage | Audience | Configuration |
|</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-arguments-added-to-statuspageurl-field-on-order-object</link>
  </item>
  <item>
    <title>Session creation payloads now include ISO 3166-2 province codes </title>
    <description><![CDATA[ <div class=""><p>As of the <a href="https://shopify.dev/docs/api/payments-apps" target="_blank" class="body-link">Payments Apps API</a> version 2025-07, session creation payloads now include a new field for  standardized province codes. For example, <code>ON</code> represents Ontario, and <code>QC</code> represents Québec. The <code>province</code> field, which contains the name of the province as a string, remains in the payload. This addition ensures more reliable handling of provinces by eliminating translation inconsistencies and guaranteeing accurate regional identification.</p>
<p>The updated payload structure is as follows:</p>
<pre><code class="language-diff">{
  &quot;province&quot;: &quot;Québec&quot;,
+ &quot;province_code&quot;: &quot;QC&quot;,
  &quot;country_code&quot;: &quot;CA&quot;
}
</code></pre>
<p>The province code adheres to the ISO 3166-2 standard and is available in API version 2025-07 and later. Existing payment apps that rely solely on province names will continue to function without any changes. For detailed implementation guidance, please refer to our <a href="https://shopify.dev/docs/apps/build/payments/request-reference" target="_blank" class="body-link">payment processing documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/payment-session-payloads-now-include-iso-3166-2-province-codes</link>
  </item>
  <item>
    <title>Checkout UI extensions: Attributes API now supports removing cart and checkout attributes</title>
    <description><![CDATA[ <div class=""><p>You can now use checkout UI extensions to remove cart and checkout attributes using the <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/attributes#useApplyAttributeChange" target="_blank" class="body-link"><strong>AttributeRemoveChange</strong></a> property. To remove an attribute during checkout, simply pass the attribute key you wish to remove through this new property.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/checkout-ui-extensions-attributes-api-now-supports-removing-cart-and-checkout-attributes</link>
  </item>
  <item>
    <title>Support for card not present transaction details in PaymentsApps API</title>
    <description><![CDATA[ <div class=""><p>You can now enhance the security of &quot;card not present&quot; transactions by providing additional verification details through the Payments Apps API. This update allows you to include Address Verification System (AVS) and Card Verification Value (CVV) results when resolving payment sessions.</p>
<p>To implement these new fields, incorporate them into your <code>paymentSessionResolve</code> mutation:</p>
<pre><code class="language-graphql">mutation PaymentSessionResolve($id: ID\!, $paymentDetails: PaymentSessionDetailsInput) {
  paymentsAppPaymentSessionResolve(id: $id, paymentDetails: $paymentDetails) {
    paymentSession {
      id
    }
  }
}
</code></pre>
<p>The new <code>CardNotPresentInput</code> type includes the following fields:</p>
<ul>
<li><code>cvvResultCode</code>: The response code from CVV verification.</li>
<li><code>avsResultCode</code>: The response code from address verification.</li>
</ul>
<p>By utilizing these fields, you can provide more granular level of fraud analysis data for transactions where the card is not physically present, helping merchants make the right decisions.</p>
<p>For more detailed information, please refer to the <a href="https://shopify.dev/api/payments-apps" target="_blank" class="body-link">Payments Apps API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/support-for-card-not-present-transaction-details-in-paymentsapps-api</link>
  </item>
  <item>
    <title>New enum values for `CustomerPaymentMethodRevocationReason`</title>
    <description><![CDATA[ <div class=""><p>We've added the following new values to the <code>CustomerPaymentMethodRevocationReason</code> enum:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/customerpaymentmethodrevocationreason#value-customerredacted" target="_blank" class="body-link"><code>CUSTOMER_REDACTED</code></a>: A payment method is redacted for reasons such as GDPR compliance.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/customerpaymentmethodrevocationreason#value-toomanyconsecutivefailures" target="_blank" class="body-link"><code>TOO_MANY_CONSECUTIVE_FAILURES</code></a>: A payment method has 30 consecutive failures within 35 days.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/customerpaymentmethodrevocationreason#value-cvvattemptslimitexceeded" target="_blank" class="body-link"><code>CVV_ATTEMPTS_LIMIT_EXCEEDED</code></a>: A buyer repeatedly fails to provide the CVV for card-on-file checkouts.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/add-new-customerpaymentmethodrevocationreasons</link>
  </item>
  <item>
    <title>New theme file metadata fields added to `OnlineStoreThemeFileOperationResult ` object</title>
    <description><![CDATA[ <div class=""><p>Developers can now retrieve theme file metadata directly in the response body of a successful <code>themeFilesUpsert</code> mutation using the Admin GraphQL API. This eliminates the need for additional fetch requests to verify changes to files after updates. For detailed information, please refer to the latest documentation on <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreThemeFileOperationResult" target="_blank" class="body-link"><code>OnlineStoreThemeFileOperationResult</code></a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-theme-file-metadata-fields-added-to-onlinestorethemefileoperationresult-object</link>
  </item>
  <item>
    <title>New enum values for `FulfillmentOrderRejectionReason`</title>
    <description><![CDATA[ <div class=""><p>We've added the following new values to the <code>FulfillmentOrderRejectionReason</code> enum:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-internationalshippingunavailable" target="_blank" class="body-link"><code>INTERNATIONAL_SHIPPING_UNAVAILABLE</code></a>: The fulfillment order was rejected because international address shipping hasn't been enabled.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-incorrectproductinfo" target="_blank" class="body-link"><code>INCORRECT_PRODUCT_INFO</code></a>: The fulfillment order was rejected because product information is incorrect to be able to ship.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-invalidcontactinformation" target="_blank" class="body-link"><code>INVALID_CONTACT_INFORMATION</code></a>: The fulfillment order was rejected because of invalid customer contact information.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-invalidsku" target="_blank" class="body-link"><code>INVALID_SKU</code></a>: The fulfillment order was rejected because of an invalid SKU.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-merchantblockedorsuspended" target="_blank" class="body-link"><code>MERCHANT_BLOCKED_OR_SUSPENDED</code></a>: The fulfillment order was rejected because the merchant is blocked or suspended.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-missingcustomsinfo" target="_blank" class="body-link"><code>MISSING_CUSTOMS_INFO</code></a>: The fulfillment order was rejected because customs information was missing for international shipping.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-ordertoolarge" target="_blank" class="body-link"><code>ORDER_TOO_LARGE</code></a>: The fulfillment order was rejected because the order is too large.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-packagepreferencenotset" target="_blank" class="body-link"><code>PACKAGE_PREFERENCE_NOT_SET</code></a>: The fulfillment order was rejected because the package preference was not set.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/enums/FulfillmentOrderRejectionReason#value-paymentdeclined" target="_blank" class="body-link"><code>PAYMENT_DECLINED</code></a>: The fulfillment order was rejected because the payment method was declined.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-enum-values-for-fulfillmentorderrejectionreason</link>
  </item>
  <item>
    <title>`productSet` and `customerSet` mutations now support upserts and custom IDs</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-04, the <a href="/docs/api/admin-graphql/2025-04/mutations/productSet" target="_blank" class="body-link"><code>productSet</code></a> and <a href="/docs/api/admin-graphql/2025-04/mutations/customerSet" target="_blank" class="body-link"><code>customerSet</code></a> mutations of the GraphQL Admin API support upserting (creating or updating) records by <code>identifier</code>. </p>
<p>When <code>identifier</code> is provided, these mutations use it to check for an existing record. If an existing record is found, then the mutation updates it with the data provided in <code>input</code>. Otherwise, the mutation creates a new record.</p>
<p>The <code>identifier</code> gives developers a straightforward, idempotent mechanism to create and subsequently update records with the same shape of inputs, without the need for extra queries to check if records exist. For identifiers, <code>productSet</code> allows <code>handle</code>, <code>id</code>, and <code>customId</code>. <code>customerSet</code> allows <code>phone</code>, <code>email</code>, and <code>customId</code>.</p>
<p>This extends previously existing behaviour on <code>productSet</code>, which updates a record if <code>id</code> is provided in the <code>input</code> and otherwise creates a new record. The <code>customerSet</code> mutation was previously released only to the <code>unstable</code> version of the API.</p>
<p>Read more about <a href="/docs/apps/build/custom-data/metafields/working-with-custom-ids" target="_blank" class="body-link">using Custom IDs</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/productset-and-customerset-mutations-now-support-upserts</link>
  </item>
  <item>
    <title>New finance KYC information field available for Shopify-approved finance apps</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-04, <a href="https://shopify.dev/docs/api/usage/access-scopes#authenticated-access-scopes" target="_blank" class="body-link">Shopify-approved finance apps</a> can retrieve the following information using the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/FinanceKycInformation" target="_blank" class="body-link"><code>FinanceKycInformation</code></a> object, on behalf of an approved shop <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/StaffMember" target="_blank" class="body-link">staff member</a>:</p>
<ul>
<li>Business address</li>
<li>Business type</li>
<li>Industry</li>
<li>Business legal name</li>
<li>Shop owner information</li>
<li>Tax identification information</li>
<li>Finances access policies</li>
</ul>
<p>The following webhooks related to updating staff with access to the app will also be available:</p>
<ul>
<li><code>FINANCE_APP_STAFF_MEMBER_DELETE</code> - Triggers when a staff with access to all or some finance app has been removed</li>
<li><code>FINANCE_APP_STAFF_MEMBER_GRANT</code> - Triggers when a staff is granted access to all or some finance app</li>
<li><code>FINANCE_APP_STAFF_MEMBER_REVOKE</code> - Triggers when a staff's access to all or some finance app has been revoked</li>
<li><code>FINANCE_APP_STAFF_MEMBER_UPDATE</code> - Triggers when a staff's information has been updated</li>
<li><code>FINANCE_KYC_INFORMATION_UPDATE</code> -   Triggers whenever shop's finance KYC information was updated</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-finance-kyc-information-field-available-for-shopify-approved-finance-apps</link>
  </item>
  <item>
    <title>Customer RFM group now available in GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>You can now access a customer's RFM (Recency, Frequency, Monetary) group through the GraphQL Admin API. This new <code>rfmGroup</code> field in customer statistics helps you understand customer engagement and purchasing patterns.</p>
<p>The <code>rfmGroup</code> field is available through the <code>statistics</code> field on the <code>Customer</code> object. You can use this information to segment customers based on their purchasing behavior and create targeted marketing campaigns.</p>
<p>For more detailed information, please refer to the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/CustomerStatistics" target="_blank" class="body-link">official documentation</a>.</p>
<p>Example query:</p>
<pre><code class="language-graphql">query {
  customer(id: &quot;gid://shopify/Customer/1&quot;) {
    statistics {
      rfmGroup
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/customer-rfm-group-now-available-in-graphql-admin-api</link>
  </item>
  <item>
    <title>`draftOrderCount` available in 2025-07</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/queries/draftOrderCount" target="_blank" class="body-link"><code>draftOrderCount</code></a> query is now available in the 2025-07 stable version of the GraphQL Admin API. Previously, it was only available in the <code>unstable</code> version.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/draftordercount-available-in-2025-07</link>
  </item>
  <item>
    <title>`@inContext` directive added to the Customer Account API</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-04, we've added the <code>@inContext</code> directive in the <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">Customer Account API</a>. The <code>@inContext</code> directive accepts an argument: <code>language</code>.</p>
<ul>
<li>If the requested language is active for the given country, as configured within the shop's <a href="https://help.shopify.com/en/manual/international/languages/manage-languages" target="_blank" class="body-link">Language settings</a>, then the query will return translated values.</li>
<li>If an unsupported language or country is requested using <code>@inContext</code>, then the response will fall back to the default language.</li>
</ul>
<p>The following operation shows an example usage of this directive:</p>
<pre><code>			mutation customerAddressUpdate @inContext(language: FR){
				customerAddressUpdate(address: {phoneNumber: &quot;invalid123&quot;}, addressId: &quot;gid://shopify/CustomerAddress/123456&quot; ) {
					userErrors {
						code
						field
						message
					}
				}
			}
</code></pre>
<p>Response:</p>
<pre><code>		{
				&quot;data&quot;: {
					&quot;customerAddressUpdate&quot;: {
						&quot;userErrors&quot;: [
							{
								&quot;code&quot;: &quot;PHONE_NUMBER_NOT_VALID&quot;,
								&quot;field&quot;: null,
								&quot;message&quot;: &quot;Le numéro de téléphone n'est pas valide.&quot;
							}
						]
					}
				},
				&quot;extensions&quot;: {
					&quot;context&quot;: {
						&quot;country&quot;: &quot;CA&quot;,
						&quot;language&quot;: &quot;FR&quot;
					},
					&quot;cost&quot;: {
						&quot;requestedQueryCost&quot;: 10,
						&quot;actualQueryCost&quot;: 10
					}
				}
			}
</code></pre>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/exposed-incontext-directive-with-the-customer-account-api</link>
  </item>
  <item>
    <title>Location ID Queryable with Inventory Scopes</title>
    <description><![CDATA[ <div class=""><p>The access scopes for the <code>id</code> field in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/location" target="_blank" class="body-link">Location</a> object have been updated. You can now query this field using either the <code>read_inventory</code> or <code>read_locations</code> scopes.</p>
<p>Key changes include:</p>
<ul>
<li>The <code>location.id</code> field in GraphQL can now be queried with just the <code>read_inventory</code> or <code>read_locations</code> scope.</li>
</ul>
<p>Please note the following restriction:</p>
<ul>
<li>All other fields of the <code>Location</code> object, such as <code>name</code> and <code>address</code>, still require the <code>read_locations</code> scope for querying.</li>
</ul>
<p>These updates apply to all API versions.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/location-id-queryable-with-inventory-scopes</link>
  </item>
  <item>
    <title>POS UI Extensions 2025-04 Update</title>
    <description><![CDATA[ <div class=""><p>As of April 1, 2025, we made the following updates to POS UI Extensions:</p>
<h3>Features</h3>
<p><strong>Developer Preview</strong></p>
<ul>
<li>Added support for the <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/post-purchase/pos-transaction-complete-event-observe" target="_blank" class="body-link"><code>pos.transaction-complete.event.observe</code></a> target.</li>
<li>Added support for the <a href="https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/cart-details/pos-cart-update-event-observe" target="_blank" class="body-link"><code>pos.cart-update.event.observe</code></a> target.</li>
<li>Added support for <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/cash-tracking/pos-cash-tracking-session-start-event-observe" target="_blank" class="body-link"><code>pos.cash-tracking-session-start.event.observe</code></a> and <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/cash-tracking/pos-cash-tracking-session-complete-event-observe" target="_blank" class="body-link"><code>pos.cash-tracking-session-complete.event.observe</code></a> targets.</li>
<li>Added support for the <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/receipts/pos-receipt-footer-block-render" target="_blank" class="body-link"><code>pos.receipt-footer.block.render</code></a> target.</li>
<li>Introduced a <a href="https://shopify.dev/docs/api/pos-ui-extensions/components/posreceiptblock" target="_blank" class="body-link"><code>POSReceiptBlock</code></a> component, which is the required parent component for <a href="https://shopify.dev/docs/api/pos-ui-extensions/targets/receipts/pos-receipt-footer-block-render" target="_blank" class="body-link">pos.receipt-footer.block.render</a> targets.</li>
<li>Introduced a <a href="https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/qrcode" target="_blank" class="body-link"><code>QRCode</code></a> component.</li>
</ul>
<p>All of the changes are available for POS UI extensions version 2025-04 and POS app version 9.31.0. For all version details, refer to the <a href="https://shopify.dev/docs/api/pos-ui-extensions/unstable/versions" target="_blank" class="body-link">version log</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>POS Extensions</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-2025-04-update</link>
  </item>
  <item>
    <title>New webhook to track updates to checkout and accounts configuration </title>
    <description><![CDATA[ <div class=""><p>API version 2025-04 introduces the <code>checkout_and_accounts_configurations/update</code> webhook, which fires when merchants update their checkout and accounts configuration (draft and published). </p>
<p>To learn whether or not your users have upgraded their Thank you and Order status pages, monitor the <code>typ_osp_pages_enabled</code> field in this webhook's payload. No need to check manually by making API calls!</p>
<p>With this knowledge, you can send timely communication to merchants regarding onboarding and configuration steps for your app.</p>
<p>Make sure to subscribe to this <a href="https://shopify.dev/docs/api/webhooks/2025-04?reference=tool#list-of-topics-checkout_and_accounts_configurations/update" target="_blank" class="body-link">webhook</a> as soon as possible, in advance of the upcoming deadlines for merchants to upgrade their Thank you and Order status pages:</p>
<ul>
<li><strong>Plus merchants</strong>: <a href="https://help.shopify.com/manual/checkout-settings/customize-checkout-configurations/plus-upgrade-guide" target="_blank" class="body-link">August 28, 2025</a></li>
<li><strong>Non-Plus merchants</strong>: <a href="https://help.shopify.com/manual/checkout-settings/customize-checkout-configurations/checkout-upgrade-guide" target="_blank" class="body-link">August 26, 2026</a></li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Webhook</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-webhook-to-track-updates-to-checkout-and-accounts-configuration</link>
  </item>
  <item>
    <title>View gift card maximum values</title>
    <description><![CDATA[ <div class=""><p>You can now retrieve the maximum values for gift cards using the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/giftCardConfiguration" target="_blank" class="body-link"><code>giftCardConfiguration</code></a> query. There are separate maximum values for purchased and issued gift cards.</p>
<p>Learn more about <a href="https://help.shopify.com/en/manual/products/gift-card-products" target="_blank" class="body-link">creating and selling gift cards</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/view-gift-card-maximum-values</link>
  </item>
  <item>
    <title>New field `fulfillmentStatus` added to the `Order` type of the Customer Account API</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-04, we've introduced the field <a href="https://shopify.dev/docs/api/customer/2025-04/objects/Order#field-fulfillmentstatus" target="_blank" class="body-link"><code>fulfillmentStatus</code></a> to the <code>Order</code>object. This field represents the order's aggregated fulfillment status for display purposes.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-field-fulfillmentstatus-added-to-the-order-type-of-the-customer-account-api</link>
  </item>
  <item>
    <title>New `articleAuthors` query in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>We've added an <code>articleAuthors</code> query to the GraphQL Admin API. You can use this query to fetch a list of article authors for a store.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-articleauthors-query-in-the-graphql-admin-api</link>
  </item>
  <item>
    <title>New filter options added to `pages`, `articles`, and `comments` queries</title>
    <description><![CDATA[ <div class=""><p>We've introduced the following new query parameters to the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/articles" target="_blank" class="body-link"><code>articles</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/pages" target="_blank" class="body-link"><code>pages</code> </a> , and <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/comments" target="_blank" class="body-link"><code>comments</code></a> queries in the GraphQL Admin API:</p>
<ul>
<li>You can now filter articles by <code>blog_id</code>, <code>handle</code>, and <code>published_at</code> values</li>
<li>You can now filter pages by <code>published_status</code>, <code>published_at</code>, and <code>id</code> values</li>
<li>You can now filter comments by <code>created_at</code>, <code>updated_at</code>, and <code>published_at</code> values</li>
</ul>
<p>With these changes, <code>articles</code>, <code>pages</code>, and <code>comments</code> queries have fill filter parity with the REST Admin API.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-filter-options-added-to-pages-articles-and-comments</link>
  </item>
  <item>
    <title>Developer Preview: Localhost-based development for `shopify app dev`</title>
    <description><![CDATA[ <div class=""><p>Now in developer preview, you can serve your app using <code>localhost</code> (<code>127.0.0.1</code>) with a self-signed HTTPS certificate, which Shopify CLI generates for you. This allows you to develop some Shopify app features without the use of network tunnels.</p>
<p>To serve your app using localhost, run the following command using Shopify CLI 3.77 or higher:</p>
<pre><code>shopify app dev --use-localhost
</code></pre>
<p><strong>Note:</strong> Localhost-based development isn't compatible with the Shopify features that directly invoke your app, such as Webhooks, App proxy, and Flow actions, and features that require you to test your app from another device, such as POS.</p>
<p>For more information, you can read about <a href="https://shopify.dev/docs/apps/build/cli-for-apps/networking-options" target="_blank" class="body-link">networking options for local development</a>.</p>
<p>Please report any issues and provide your feedback about this feature <a href="https://community.shopify.dev/new-topic?category=shopify-cli-libraries&tags=app-dev-on-localhost" target="_blank" class="body-link">on the Shopify Developer Community</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Apr 2025 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developer-preview-localhost-based-development-for-shopify-app-dev</link>
  </item>
  <item>
    <title>InventoryItem Webhooks Accessible with Product Scopes</title>
    <description><![CDATA[ <div class=""><p>The scopes for receiving webhooks for the InventoryItem object have been relaxed. <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/WebhookSubscriptionTopic" target="_blank" class="body-link">Webhook topics</a> for this object can now be configured with either the <code>read_inventory</code> or <code>read_products</code> scope.</p>
<p>Specifically, the following topics can now be configured with either scope:</p>
<ul>
<li><code>INVENTORY_ITEMS_CREATE</code></li>
<li><code>INVENTORY_ITEMS_DELETE</code></li>
<li><code>INVENTORY_ITEMS_UPDATE</code></li>
</ul>
<p>These changes apply to all API versions.</p>
</div> ]]></description>
    <pubDate>Mon, 31 Mar 2025 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/inventoryitem-webhooks-accessible-with-product-scopes</link>
  </item>
  <item>
    <title>Cart quantity limits are now determined by market region</title>
    <description><![CDATA[ <div class=""><p>Cart quantity limits now depend on inventory available in the buyer's market region, not total stock. Previously, customers could add up to the total product inventory from all locations to their cart. Now, if a customer attempts to add more items than are available for fulfillment in their market, the quantity will automatically be reduced to the available amount and the API will return a message to explain the adjustment.</p>
<p>This change applies to shops with <a href="https://help.shopify.com/en/manual/fulfillment/setup/fulfillable-inventory" target="_blank" class="body-link">fulfillable inventory</a> set to <strong>sell only within configured shipping zones</strong> and impacts cart operations in the <a href="https://shopify.dev/docs/api/storefront" target="_blank" class="body-link">GraphQL Storefront API</a>. </p>
</div> ]]></description>
    <pubDate>Mon, 31 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/contextualized-inventory-availability-in-cart-updates</link>
  </item>
  <item>
    <title>Expose payment detail fields for Payments Apps API</title>
    <description><![CDATA[ <div class=""><p>We have introduced new input fields to enhance the capture of payment processing details from providers. These fields are designed to improve transaction accuracy and security:</p>
<ul>
<li><p><strong><a href="https://shopify.dev/docs/api/payments-apps/latest/input-objects/PaymentSessionPaymentDetails#fields-cardNotPresent" target="_blank" class="body-link"><code>cardNotPresent</code></a></strong>: <a href="https://shopify.dev/docs/api/payments-apps/latest/input-objects/PaymentSessionCardNotPresentInput" target="_blank" class="body-link"><code>PaymentSessionCardNotPresentInput</code></a>
This field captures details from transactions where the card is not physically present, ensuring accurate processing.</p>
</li>
<li><p><strong><a href="https://shopify.dev/docs/api/payments-apps/latest/input-objects/PaymentSessionPaymentDetails#fields-cardNotPresent.fields.avsResultCode" target="_blank" class="body-link"><code>avsResultCode</code></a></strong>: <a href="https://shopify.dev/docs/api/payments-apps/latest/enums/PaymentSessionCardNotPresentAvsResultCode" target="_blank" class="body-link"><code>PaymentSessionCardNotPresentAvsResultCode</code></a>
It records the response code from the Address Verification System (AVS), enhancing security by verifying address details.</p>
</li>
<li><p><strong><a href="https://shopify.dev/docs/api/payments-apps/latest/input-objects/PaymentSessionPaymentDetails#fields-cardNotPresent.fields.cvvResultCode" target="_blank" class="body-link"><code>cvvResultCode</code></a></strong>: <a href="https://shopify.dev/docs/api/payments-apps/latest/enums/PaymentSessionCardNotPresentCvvResultCode" target="_blank" class="body-link"><code>PaymentSessionCardNotPresentCvvResultCode</code></a>
This field indicates whether the Card Verification Value (CVV) was entered correctly, according to the credit card company's response, thus improving fraud prevention.</p>
</li>
</ul>
<p>For more detailed information, please refer to the Payments Apps API specification for <a href="https://shopify.dev/docs/api/payments-apps/latest/input-objects/PaymentSessionPaymentDetails" target="_blank" class="body-link"><code>PaymentSessionPaymentDetails</code></a>.</p>
</div> ]]></description>
    <pubDate>Mon, 31 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/expose-payment-detail-fields-for-payments-apps</link>
  </item>
  <item>
    <title>New additions to delivery promise participants APIs</title>
    <description><![CDATA[ <div class=""><p>The ability to use locations as delivery promise participants is currently available in the <code>unstable</code> version and is planned for release in the <code>2025-07</code> version of the GraphQL Admin API.</p>
<p>The <code>deliveryPromiseParticipants</code> query and the <code>deliveryPromiseParticipantsUpdate</code> mutation have been enhanced. They now allow you to specify locations that should be excluded from the Shop Promise program. </p>
<p>Additionally, you can use the <code>delivery_promise_participants_handle</code> in the products query. This enables you to filter products with variants that are delivery promise participants and retrieve the list of corresponding delivery promise participants for a specific product variant.</p>
</div> ]]></description>
    <pubDate>Mon, 31 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/new-additions-to-delivery-promise-participants-apis</link>
  </item>
  <item>
    <title>Ship and carry out in a single order on POS is now available for Retail Pro Merchants using eligible tax software</title>
    <description><![CDATA[ <div class=""><p>Shopify's Point of Sale (POS) now supports combining ship and carry out items in a single order for Retail Pro Merchants. </p>
<p>If you're a Retail Pro Merchant, you can now include carry out items and items that will ship at a later date in one transaction. Learn more about <a href="https://changelog.shopify.com/posts/ship-and-carryout-in-a-single-order-on-pos" target="_blank" class="body-link">eligibility details</a>.</p>
<h3>Email templates changes</h3>
<p>We've updated the default email templates in the <a href="https://admin.shopify.com/" target="_blank" class="body-link">Shopify admin</a> under <strong>Settings</strong> &gt; <strong>Notification</strong>  for <code>POS and mobile receipt</code>, <code>Order confirmation</code>, <code>Order invoice</code>, and <code>Order edited</code> . </p>
<p>If you use the default template, no action is required. However, if you've customized your template, then we recommend reverting to the default template and reapplying your changes. If you choose not to revert, please review the <a href="https://help.shopify.com/en/manual/fulfillment/setup/notifications/email-variables#delivery-properties" target="_blank" class="body-link"><code>delivery_agreements</code></a> object.</p>
<p>There will be two <a href="https://help.shopify.com/en/manual/fulfillment/setup/notifications/email-variables#delivery-properties" target="_blank" class="body-link"><code>delivery_agreements</code></a> properties for Ship and carry out orders: one for In store and one for Shipping. Loop through the <a href="https://help.shopify.com/en/manual/fulfillment/setup/notifications/email-variables#delivery-properties" target="_blank" class="body-link"><code>delivery_agreements</code></a> to find the line items for each agreement. Key fields include:</p>
<ul>
<li><code>delivery_agreement.delivery_method_name</code>: Indicates if the method is <code>In store</code> or <code>Shipping</code>. This field is translated to the buyer's checkout language.</li>
<li><code>delivery_agreement.line_items</code>: Provides access to the line items specific to the <code>delivery_agreement</code>.</li>
</ul>
<h3>POS receipts template changes</h3>
<p>We've updated the default POS receipt <a href="https://admin.shopify.com/" target="_blank" class="body-link">Shopify admin</a> under <strong>Sales channels</strong> &gt; <strong>Point of Sale</strong>  &gt; <strong>Customize</strong> &gt; <strong>Receipts</strong> for <code>footer.liquid</code> template. It now lists which items are shipped. </p>
<p>If you use the default footer template, no action is required. However, if you've customized your template, then we recommend reverting to the default footer template and reapplying your changes. If you choose not to revert, please review the <a href="https://help.shopify.com/en/manual/sell-in-person/shopify-pos/receipt-management/receipt-editor#edit-your-receipt-templates" target="_blank" class="body-link"><code>shipping_groups</code></a> object inside the <a href="https://help.shopify.com/en/manual/sell-in-person/shopify-pos/receipt-management/receipt-editor#edit-your-receipt-templates" target="_blank" class="body-link"><code>order</code></a> object to find all the items that are being shipped.</p>
<h3>Behavior changes to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order" target="_blank" class="body-link">Order</a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link">FulfillmentOrder</a> objects for Ship and carry out orders</h3>
<p>The following is the high level impact to <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order" target="_blank" class="body-link"><code>Order</code></a>  and <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link"><code>FulfillmentOrder</code></a> objects for Ship and carry out orders:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-taxlines" target="_blank" class="body-link"><code>Order.taxLines</code></a> contains the tax lines for both the carry out and ship portions of the order. To determine which taxes are applied, refer to <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#connection-lineitems" target="_blank" class="body-link"><code>Order.lineitems</code></a>.<a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem#field-taxlines" target="_blank" class="body-link"><code>taxLines</code></a>.</li>
<li>Multiple fulfillment orders are  generated for a POS order that contains both Ship and carry out items. The <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryMethod#field-methodtype" target="_blank" class="body-link"><code>deliveryMethod.methodType</code></a> will either be <code>RETAIL</code> or <code>SHIPPING</code>.</li>
</ul>
<p>Check out some GraphQL examples for the <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/order?example=Retrieves+tax+related+information+for+a+given+order" target="_blank" class="body-link"><code>order</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/order?example=Retrieves+a+list+of+fulfillment+orders+for+a+specific+order" target="_blank" class="body-link"><code>fulfillmentOrder</code></a> queries.</p>
<p>The following are relevant fields of the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order" target="_blank" class="body-link"><code>Order</code></a> object and the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link"><code>FulfillmentOrder</code></a> object for a Ship and carry out order.</p>
<h4><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order" target="_blank" class="body-link">Order</a> object</h4>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-taxlines" target="_blank" class="body-link"><code>Order.taxLines</code></a>: Stores the tax lines for the entire order, as generated by the configured tax software during checkout. For taxes charged on each <code>LineItem</code>, refer to <code>Order.lineitems[x].taxLines</code>, where <code>x</code> denotes the array index.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-fulfillments" target="_blank" class="body-link"><code>Order.fulfillments</code></a>: Contains only the fulfilled parts of the order. Initially, it only displays the carry out portion. After the ship portion of the order is fulfilled, it will be listed here as well.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-shippingaddress" target="_blank" class="body-link"><code>Order.shippingAddress</code></a>: Contains the shipping address of the ship portion of the order.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#connection-shippinglines" target="_blank" class="body-link"><code>Order.shippingLines</code></a>: Contains the shipping lines that are relevant to the ship portion of the order.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#connection-lineitems" target="_blank" class="body-link"><code>Order.lineitems</code></a>.<a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem#field-taxlines" target="_blank" class="body-link">taxLines</a>: The tax lines for this specific line item.</li>
</ul>
<h4><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link">FulfillmentOrder</a> object</h4>
<p>For a given Ship and carry out order, there will be at least two <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link"><code>FulfillmentOrder</code></a> objects. One <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link"><code>FulfillmentOrder</code></a> for the carry out and separate objects for ship portions.</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder#field-deliverymethod" target="_blank" class="body-link"><code>FulfillmentOrder.deliveryMethod</code></a>: Describes the delivery method for the fulfillment order. The <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryMethod#field-methodtype" target="_blank" class="body-link"><code>deliveryMethod.methodType</code></a> will either be <code>RETAIL</code> or <code>SHIPPING</code>.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder#connection-lineitems" target="_blank" class="body-link"><code>FulfillmentOrder.lineItems</code></a>: Contains the lines items for the specific fulfillment order. The fulfillment order with <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryMethod#field-methodtype" target="_blank" class="body-link"><code>deliveryMethod.methodType</code></a> set to <code>RETAIL</code> will only have the carry out line items. The fulfillment order with <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryMethod#field-methodtype" target="_blank" class="body-link"><code>deliveryMethod.methodType</code></a> set to <code>SHIPPING</code> will only have the ship line items.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 31 Mar 2025 16:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/ship-carry-out-in-a-single-order-on-pos-is-now-available-for-retail-pro-merchants-using-eligible-tax-software</link>
  </item>
  <item>
    <title>Hydrogen March 2025 Release</title>
    <description><![CDATA[ <div class=""><p>The latest version of Hydrogen v2025.1.3 is out today. The release contains updates to support Vite 6 and <code>v3_route_config</code>:</p>
<ul>
<li>Turn on Remix future flag  <a href="https://remix.run/docs/en/main/start/future-flags#v3_routeconfig" target="_blank" class="body-link"><code>v3_routeConfig</code></a> (<a href="https://github.com/Shopify/hydrogen/pull/2722" target="_blank" class="body-link">#2722</a>)</li>
<li>Bump Remix package dependency to 2.16.2 and support Vite 6 (<a href="https://github.com/Shopify/hydrogen/pull/2784" target="_blank" class="body-link">#2784</a>)</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/march-2025" target="_blank" class="body-link">Hydrogen March 2025 release blog post</a>for more details. And please drop your comments, feedback, and suggestions over in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Mon, 31 Mar 2025 15:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-march-2025-release</link>
  </item>
  <item>
    <title>App Bridge Title Bar visual update</title>
    <description><![CDATA[ <div class=""><p>Apps will see an improved visual appearance of the <a href="https://shopify.dev/docs/api/app-bridge-library/web-components/ui-title-bar" target="_blank" class="body-link">App Bridge Title Bar API</a> starting to rollout, to match the new experience in the Shopify admin. </p>
<p>No developer action is required. The new experience will work with the existing API.  </p>
</div> ]]></description>
    <pubDate>Mon, 31 Mar 2025 11:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-bridge-title-bar-visual-update</link>
  </item>
  <item>
    <title>Cart mutations now return error for invalid merchandise configuration</title>
    <description><![CDATA[ <div class=""><p>We have enhanced error handling for cart mutations to provide clearer feedback when merchandise cannot be added to or maintained in a cart. The cart API now returns a <code>MERCHANDISE_NOT_APPLICABLE</code> error code for specific merchandise-related issues.</p>
<h3>When This Error Occurs</h3>
<p>The <code>MERCHANDISE_NOT_APPLICABLE</code> error is triggered in the following scenarios:</p>
<p><strong>Inventory &amp; Availability Issues:</strong></p>
<ul>
<li>The item is out of stock or insufficient stock is available for the requested quantity.</li>
<li>The product is not published or is unavailable in the buyer's location.</li>
<li>The inventory record is missing.</li>
<li>The product variant does not exist.</li>
</ul>
<p><strong>Pricing &amp; Configuration Issues:</strong></p>
<ul>
<li>There is a discrepancy between expected and actual prices.</li>
<li>Gift cards have zero or invalid amounts.</li>
<li>Bundle products lack required components.</li>
<li>The cart line item limit is exceeded.</li>
</ul>
<h3>What This Means for Your Integration</h3>
<p>If you receive a <code>MERCHANDISE_NOT_APPLICABLE</code> error:</p>
<ul>
<li>The specified merchandise cannot be added to the cart in its current configuration.</li>
<li>Notify customers about the availability issue.</li>
<li>Refresh product data or adjust quantities as needed.</li>
<li>For bundles, ensure all required components are present.</li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 29 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-now-exposes-invalid-merchandise-configuration-error</link>
  </item>
  <item>
    <title>New `planHandle` field for managed pricing app subscription plans</title>
    <description><![CDATA[ <div class=""><p>App subscription plans created with <a href="https://shopify.dev/docs/apps/launch/billing/managed-pricing" target="_blank" class="body-link">managed pricing</a> now include plan handle data. This makes it easier and more consistent to query for app subscription plans, because these human-readable handles persist even if the plan ID changes due to updates or edits.</p>
<p><code>planHandle</code> is available on the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/AppRecurringPricing#field-planhandle" target="_blank" class="body-link"><code>AppRecurringPricing</code></a> object, while <code>plan_handle</code> is included in the <a href="https://shopify.dev/docs/api/webhooks/latest?reference=toml#list-of-topics-app_subscriptions/update" target="_blank" class="body-link"><code>app_subscriptions/update</code></a> webhook topic.</p>
<p>With this update, you'll now be asked to define your own plan handle when creating new app subscription plans through your Partner Dashboard. All existing plans have been updated with a <code>planHandle</code> value based on their plan name.</p>
</div> ]]></description>
    <pubDate>Sat, 29 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-planhandle-field-managed-pricing</link>
  </item>
  <item>
    <title>Storefront API Cart now exposes selling plan errors</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-07 of the GraphQL Storefront API, enhanced error handling for selling plans is introduced. The Cart mutations now expose specific user errors for scenarios involving selling plans:</p>
<ul>
<li><code>VARIANT_REQUIRES_SELLING_PLAN</code>: The error is returned when a merchandise added to the cart requires a selling plan, but none is provided.</li>
<li><code>SELLING_PLAN_NOT_APPLICABLE</code>: The error is returned when a selling plan is added to a merchandise in the cart but is not applicable.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 27 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-exposes-selling-plan-errors</link>
  </item>
  <item>
    <title>Liquid support for OKLCH colors</title>
    <description><![CDATA[ <div class=""><p>We've introduced support for OKLCH colors in Liquid, enabling more natural color transitions and access to a broader range of colors than sRGB.</p>
<p>New features include:</p>
<ul>
<li>The <a href="/docs/api/liquid/filters/color_to_oklch" target="_blank" class="body-link"><code>color_to_oklch</code></a> filter, which takes a <code>color</code> object or string and returns an OKLCH color string.</li>
<li>Enhanced <a href="/docs/api/liquid/objects/color" target="_blank" class="body-link"><code>color</code></a> objects with new properties: <a href="/docs/api/liquid/filters/color_to_oklch" target="_blank" class="body-link"><code>color_space</code></a>, <a href="/docs/api/liquid/objects/color#color-chroma" target="_blank" class="body-link"><code>chroma</code></a>, <a href="/docs/api/liquid/objects/color#color-oklch" target="_blank" class="body-link"><code>oklch</code></a>, and <a href="/docs/api/liquid/objects/color#color-oklcha" target="_blank" class="body-link"><code>oklcha</code></a>. These allow you to access OKLCH channels and convert color objects into the OKLCH color space.</li>
<li>Color filters like <a href="/docs/api/liquid/filters#color_saturate" target="_blank" class="body-link"><code>color_saturate</code></a> now operate within the OKLCH color space.</li>
</ul>
<p>Explore the <a href="/docs/api/liquid" target="_blank" class="body-link">Liquid docs</a> to learn more about OKLCH and start integrating these vibrant colors into your projects today.</p>
</div> ]]></description>
    <pubDate>Thu, 27 Mar 2025 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/liquid-support-for-oklch-colors</link>
  </item>
  <item>
    <title>Re-enabled customer search terms in the GraphQL and REST Admin APIs</title>
    <description><![CDATA[ <div class=""><p>We've re-enabled several customer-related <code>query</code> terms in all versions of the <a href="/docs/api/admin-graphql/2024-07/queries/customers#argument-query" target="_blank" class="body-link">GraphQL Admin API</a> and <a href="/docs/api/admin-rest/2024-07/resources/customer#get-customers-search?query=email:bob.norman@mail.example.com" target="_blank" class="body-link">REST Admin API</a>.</p>
<p>Version 2024-07 of these APIs disabled the following <code>query</code> terms for searching customers:</p>
<ul>
<li><code>accepts_marketing</code></li>
<li><code>city</code></li>
<li><code>company</code></li>
<li><code>country</code></li>
<li><code>customer_date</code></li>
<li><code>email_marketing_state</code></li>
<li><code>last_abandoned_order_date</code></li>
<li><code>order_date</code></li>
<li><code>orders_count</code></li>
<li><code>province</code></li>
<li><code>sms_marketing_state</code></li>
<li><code>state</code></li>
<li><code>tag</code></li>
<li><code>tag_not</code></li>
<li><code>territory_code</code></li>
<li><code>total_spent</code></li>
</ul>
<p>These options have been re-enabled across all API versions, allowing for more specific customer searches. For more details, refer to the <a href="/docs/api/admin-graphql/2024-07/queries/customers#argument-query" target="_blank" class="body-link">GraphQL Admin API documentation</a> and the <a href="/docs/api/admin-rest/2024-07/resources/customer#get-customers-search?query=email:bob.norman@mail.example.com" target="_blank" class="body-link">REST Admin API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/re-enabled-customer-search-terms</link>
  </item>
  <item>
    <title>Draft Orders automatically purged after 1 year of inactivity</title>
    <description><![CDATA[ <div class=""><p>Draft orders created on or after April 1, 2025 will be automatically purged after one year of inactivity, simplifying data management and improving performance for apps interacting with draft orders. Automatic removal of inactive draft orders will begin on April 1, 2026.</p>
<p>Learn more about <a href="https://help.shopify.com/en/manual/fulfillment/managing-orders/create-orders/create-draft#delete-draft-order" target="_blank" class="body-link">draft order deletion</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 25 Mar 2025 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/draft-orders-automatically-purged-after-1-year-of-inactivity</link>
  </item>
  <item>
    <title>Using custom ids to look up collections, locations, orders, and product variants</title>
    <description><![CDATA[ <div class=""><p>As of 2025-04 Admin API, you can use your own identifiers to lookup more resource types with the following APIs:</p>
<ul>
<li><code>collectionByIdentifier</code></li>
<li><code>locationByIdentifier</code></li>
<li><code>orderByIdentifier</code></li>
<li><code>productVariantByIdentifier</code></li>
</ul>
<p>Custom ids are defined by a new metafield type: id. The unique values capability is required and enabled by default for the id type. The id type unlocks custom ids for Shopify, enabling merchants and partners to specify their own identifiers for objects with metafields.</p>
<p>Support for product and customer lookup by custom id was <a href="https://shopify.dev/changelog/using-custom-ids-and-handles-in-product-and-customer-lookups" target="_blank" class="body-link">announced as part of the 2025-01 API release</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 22 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/custom-ids-more-lookups</link>
  </item>
  <item>
    <title>Shopify.dev MCP Server</title>
    <description><![CDATA[ <div class=""><p>We're excited to announce the release of the new Shopify.dev MCP Server! The MCP server gives your AI assistant access to Shopify's development resources, enabling it to search our docs, introspect API schemas, and get up-to-date answers about Shopify APIs. Now you can harness the full potential of the dev assistant directly within Cursor or Claude desktop.</p>
<p>Configure your <a href="https://shopify.dev/docs/apps/build/devmcp" target="_blank" class="body-link">Shopify dev MCP</a> server and take it for a spin!</p>
</div> ]]></description>
    <pubDate>Fri, 21 Mar 2025 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/mcp-server-for-the-shopify-dev-assistant</link>
  </item>
  <item>
    <title>Retail Exchanges now use the Shopify Exchanges implementation</title>
    <description><![CDATA[ <div class=""><p>Retail Exchanges are now supported by the Shopify Exchange Platform. Previously, Retail Exchanges used a separate system called ExchangesV2, which handled exchanges as a combination of a Return and an Order Edit, along with any necessary refunds.</p>
<p>If your shop has opted out of Shopify Exchanges, we will continue to process exchanges using the old system.</p>
<p>Now, Retail Exchanges will create a Return with exchange line items, consolidating several operations into one:</p>
<ul>
<li>Separate sales agreements for the Return and the Order Edit are no longer created. The Return agreement now includes all the sales created from an exchange.  </li>
<li>The same validations and constraints that apply to exchanges on the Return platform also apply to exchanges conducted through Shopify POS.</li>
</ul>
<p>If your integrations or ERP interfaces previously depended on having distinct sales agreements for the Return and the Order Edit, please note that these are now consolidated. The Return agreement now encompasses both operations, so you may need to update your integration to utilize a single sales agreement.</p>
<p>Furthermore, exchanges created in Admin, or via the <code>returnCreate()</code> APIs will now be visible on the <code>Order.exchangeV2s()</code> API. If you are using that API and would like to exclude those “mirrored” exchanges from the API, you can use a <a href="https://shopify.dev/changelog/new-includemirroredexchanges-query-filter-parameter" target="_blank" class="body-link">new <code>include_mirrored_exchanges</code> query filter</a> parameter.</p>
<p>We are <a href="https://shopify.dev/docs/apps/build/pos/exchangesv2deprecation" target="_blank" class="body-link">deprecating</a> the ExchangeV2 APIs and plan to remove them after a 1-year deprecation period. During this time, even though exchanges are created through the Shopify Exchange Platform, they will still be accessible via the <code>Order.exchangeV2s()</code> API.  </p>
</div> ]]></description>
    <pubDate>Fri, 21 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/retail-exchanges-now-use-the-shopify-exchanges-implementation</link>
  </item>
  <item>
    <title>Ads are now available on mobile, plus more surfaces to target merchants</title>
    <description><![CDATA[ <div class=""><p>Shopify has introduced new advertising options in the App Store, enabling developers to run ads on mobile devices and target merchants based on location or plan type on the homepage and category pages.</p>
<p>Here are the latest updates to enhance your ad management and execution:</p>
<ul>
<li><strong>Mobile ads</strong>: You can now run mobile ads on the Shopify App Store</li>
<li><strong>Ad Auction Types</strong>: You can now set different bid prices for mobile and desktop ads, with options for geotargeting and merchant plan-based targeting.</li>
<li><strong>Ad Reports</strong>: These now include mobile-specific metrics and insights, offering a comprehensive view of your app's performance across various device channels.</li>
<li><strong>Geotargeting and Merchant Plan-Based Targeting</strong>: These features are now extended beyond search results and are available on homepage and category page ads. Note that merchant plan-based targeting is exclusive to apps with <a href="https://shopify.dev/docs/apps/launch/built-for-shopify" target="_blank" class="body-link">Built for Shopify</a> status.</li>
</ul>
<p>You can access these ad features through the Ads Manager in your Partner Dashboard.</p>
<p>For more information, <a href="https://shopify.dev/docs/apps/launch/marketing/advertising/create-ads" target="_blank" class="body-link">learn more here</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Mar 2025 14:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/ads-are-now-available-on-mobile-plus-more-surfaces-to-target-merchants</link>
  </item>
  <item>
    <title>Deprecating PriceListUserErrorCode values</title>
    <description><![CDATA[ <div class=""><p>Starting in API version 2025-04, <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/PriceListUserErrorCode" target="_blank" class="body-link">PriceListErrorCode</a> values that are currently not returned by the API will be hidden. These error codes include:</p>
<ul>
<li><code>CATALOG_ASSIGNMENT_NOT_ALLOWED</code></li>
<li><code>CATALOG_CANNOT_CHANGE_CONTEXT_TYPE</code></li>
<li><code>APP_CATALOG_PRICE_LIST_ASSIGNMENT</code></li>
<li><code>CONTEXT_RULE_MARKET_LOCKED</code></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 17 Mar 2025 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/deprecating-pricelistusererrorcode-values</link>
  </item>
  <item>
    <title>Now available: JS Buy SDK v3.0 </title>
    <description><![CDATA[ <div class=""><p>We released the last and final version of JavaScript Buy SDK v3.0 to extend its useful life following the <a href="https://shopify.dev/changelog/deprecation-of-checkout-apis" target="_blank" class="body-link">Checkout API deprecation</a>. Upgrading to v3.0 will extend the grace period of SDK's <code>.checkout</code> interface by replacing it with an equivalent interface based on the <a href="https://shopify.dev/docs/api/storefront/2025-01/objects/Cart" target="_blank" class="body-link">Cart API</a> with some limitations inherent to the different scope of both APIs. See this <a href="https://github.com/Shopify/js-buy-sdk/blob/main/README.md#how-to-upgrade-to-v30" target="_blank" class="body-link">upgrade guide</a> with supported use cases to help the transition. </p>
<p>The other option to remain operational is to switch to the <a href="https://github.com/Shopify/shopify-app-js/tree/main/packages/api-clients/storefront-api-client#readme" target="_blank" class="body-link">Storefront API Client</a>, which manages the API’s authentication information and provides various methods that enable devs to interact with the API. See this <a href="https://github.com/Shopify/js-buy-sdk/tree/main/migration-guide" target="_blank" class="body-link">migration guide</a> for more details.   </p>
<p><strong>Critical Deadline: July 1, 2025 11:00 AM ET</strong>. You must implement one of these changes by this date, or customers will not be able to complete purchases. Please choose the option that best suits your needs and timelines.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Mar 2025 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <link>https://shopify.dev/changelog/now-available-js-buy-sdk-v30</link>
  </item>
  <item>
    <title>Adding defaultPhoneNumber field to Customer</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2025-04</strong>, the <code>defaultPhoneNumber</code> field is introduced on the <code>Customer</code> object to support querying a customer's phone number and marketing state.</p>
<p>Learn more about the <code>Customer</code> fields on <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/Customer" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 11 Mar 2025 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/adding-defaultphonenumber-field-to-customer</link>
  </item>
  <item>
    <title>Adding defaultEmailAddress field to Customer</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2025-04</strong>, the <code>defaultEmailAddress</code> field is introduced on the <code>Customer</code> object to support querying a customer's email address and marketing state.</p>
<p>Learn more about the <code>Customer</code> fields on <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/Customer" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 08 Mar 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/adding-defaultemailaddress-field-to-customer</link>
  </item>
  <item>
    <title>End of Compatibility for Old POS UI Extensions Versions</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/docs/api/usage/versioning" target="_blank" class="body-link">Shopify's API version policy</a> supports stable versions for 12 months. With the release of Shopify API 2025.04, we will discontinue support for the following POS UI Extension versions:</p>
<ul>
<li>1.0.0</li>
<li>1.0.1</li>
<li>1.1.2</li>
<li>1.2.0</li>
<li>1.3.0</li>
<li>1.4.0</li>
<li>1.5.1</li>
<li>1.6.0</li>
<li>1.7.0</li>
<li>2024-04</li>
</ul>
<p>Starting with POS version 9.31, POS UI extensions built on these unsupported versions will no longer function. If your application uses any of these versions, please update to the latest POS UI Extension version to ensure continued functionality and support.</p>
</div> ]]></description>
    <pubDate>Fri, 07 Mar 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>POS Extensions</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/end-of-compatibility-for-old-pos-ui-extensions-versions</link>
  </item>
  <item>
    <title>New developer documentation now available for Shopify Collective</title>
    <description><![CDATA[ <div class=""><p>As of March 6, 2025, you can access the new <a href="https://shopify.dev/docs/apps/build/collective" target="_blank" class="body-link">developer documentation</a> for Shopify Collective. This resource is designed to help developers integrate seamlessly with Shopify Collective, especially when working with external dependencies like third-party ERP and PIM solutions. The documentation provides clear guidance on using Shopify's API and webhooks to integrate your existing workflows into the Collective ecosystem.</p>
</div> ]]></description>
    <pubDate>Fri, 07 Mar 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-collective-developer-documentation</link>
  </item>
  <item>
    <title>POS UI Extensions: Modal update</title>
    <description><![CDATA[ <div class=""><p>In POS version 9.30, the POS UI Extensions modal will be enhanced to prevent accidental dismissals. You won't be able to dismiss the modal by swiping down or tapping outside of it. This update is designed to improve user experience and ensure that important information remains accessible. <a href="https://shopify.dev/docs/api/pos-ui-extensions/2025-01/versions" target="_blank" class="body-link">Learn more about POS UI Extensions here</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 06 Mar 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-modal-update</link>
  </item>
  <item>
    <title>[Cart AJAX API] Inventory error message updates</title>
    <description><![CDATA[ <div class=""><p>We are updating the error messages in the AJAX API for cases where a client requests more inventory than is available.</p>
<ul>
<li>If no inventory of a variant is in the cart and the client requests more than is available, the error message will be: &quot;Only <em>available quantity</em> items were added to your cart.&quot;</li>
<li>If all available inventory of a variant is already in the cart and the client requests more, the error message will be: &quot;The maximum quantity of this item is already in your cart.&quot;</li>
</ul>
<p>These changes will affect the <code>add.js</code>, <code>change.js</code>, and <code>update.js</code> endpoints.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Mar 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/cart-ajax-api-inventory-error-message-updates</link>
  </item>
  <item>
    <title>Introducing the .dev Assistant VSCode Extension</title>
    <description><![CDATA[ <div class=""><p>The .dev Assistant extension for VSCode is now deprecated. The extension was a tool to integrate the .dev assistant into your IDE, but our new MCP server solves all the use cases for the extension and more. </p>
<p>For the latest features and access to Shopify’s development resources, use the <a href="https://shopify.dev/docs/apps/build/devmcp" target="_blank" class="body-link">Shopify.dev MCP</a> server with your preferred AI development tool, such as Cursor or Claude Desktop. The MCP server lets your assistant search documentation, introspect API schemas, and get up-to-date answers about Shopify APIs.</p>
</div> ]]></description>
    <pubDate>Mon, 03 Mar 2025 14:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-dev-assistant-vscode-extension</link>
  </item>
  <item>
    <title>New GraphQL APIs for Inventory Transfers Management</title>
    <description><![CDATA[ <div class=""><p>With the introduction of the new Transfers APIs and webhooks, merchants and developers can now seamlessly integrate inventory transfer data between Shopify and external systems such as Inventory Management Systems (IMS) or Enterprise Resource Planning (ERP) systems. This integration enables users to view, create, edit, delete, duplicate, and mark transfers as ready to ship. Additionally, we are launching new Shipment APIs that allow for the creation and management of multiple shipments associated with these transfers.</p>
<p>These APIs are currently available in the <code>unstable</code> API version, which is a preliminary phase for testing and feedback. They're intended to be added to the release candidate by July 2025. For more details, please refer to the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/inventoryTransferCreate" target="_blank" class="body-link">Shopify API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 03 Mar 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-graphql-apis-for-inventory-transfers-management</link>
  </item>
  <item>
    <title>Checkout APIs will be shut down April 1, 2025</title>
    <description><![CDATA[ <div class=""><p>Reminder: The Checkout APIs (Storefront Checkout Mutations and REST Checkout Endpoints) are deprecated and <a href="https://shopify.dev/changelog/deprecation-of-checkout-apis?utm_source=mozart&utm_medium=email&utm_campaign=checkoutapideprecation&utm_content=30daynotice" target="_blank" class="body-link">will be shut off</a> on April 1, 2025. Customers will not be able to create or complete checkouts using the deprecated Checkout APIs after the deadline. </p>
<p>To prevent disruptions, all impacted apps, including mobile apps, need to <a href="https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/migrate-to-cart-api" target="_blank" class="body-link">update to the Storefront Cart API</a> before April 1, 2025. In addition to the Storefront Cart API, mobile apps can also adopt <a href="https://shopify.dev/docs/storefronts/headless/mobile-apps/checkout-sheet-kit" target="_blank" class="body-link">Checkout Sheet Kit</a>.</p>
<p><em>Note: This change is unrelated to the prior move from checkout.liquid to Checkout Extensibility.</em></p>
</div> ]]></description>
    <pubDate>Sun, 02 Mar 2025 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin REST API</category>
    <category>Storefront GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/checkout-apis-will-be-shut-down-april-1-2025</link>
  </item>
  <item>
    <title>Introducing the new `context` field to specify discount eligibility</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-10, you can use <code>context</code> to specify whether <a href="https://help.shopify.com/en/manual/discounts/discount-methods/discount-codes" target="_blank" class="body-link">code</a> or <a href="https://help.shopify.com/en/manual/discounts/discount-methods/automatic-discounts" target="_blank" class="body-link">automatic</a> discounts are eligible for all customers, specific customers, or customer segments. </p>
<p>Specifying customer eligibility is a new feature for automatic discounts. For code discounts, <code>context</code> replaces <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/DiscountCustomerSelectionInput" target="_blank" class="body-link"><code>customerSelection</code></a>, which is now marked as deprecated and will be removed in a future version. </p>
<p>API versions older than 2025-10 do not support customer eligibility for automatic discounts. Automatic discounts with customer or customer segment eligibility applied will be filtered out from queries prior to 2025-10.</p>
<p>Learn more about objects used in <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/unions/DiscountContext" target="_blank" class="body-link">queries</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/input-objects/DiscountContextInput" target="_blank" class="body-link">mutations</a> for discount <code>context</code>.</p>
</div> ]]></description>
    <pubDate>Fri, 28 Feb 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/discount-eligibility-management</link>
  </item>
  <item>
    <title>`AMAZON_PAY` and `FACEBOOK_PAY` values enumerated in digital wallets</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/storefront/2025-07/enums/DigitalWallet" target="_blank" class="body-link"><code>DigitalWallet</code></a> enum type now includes <code>AMAZON_PAY</code> and <code>FACEBOOK_PAY</code>. For the Storefront and GraphQL Admin QPIs, this update adds Amazon Pay and Facebook Pay (Meta Pay) as enumerated wallets. This change applies to all API versions.</p>
<p>If a query to <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/PaymentSettings#field-supporteddigitalwallets" target="_blank" class="body-link"><code>shop.paymentDetails.supportedDigitalWallets</code></a> returns these values, it means that Meta Pay and/or Amazon Pay wallets are active on the merchant storefront.</p>
<p>This also enables visibility of <code>AMAZON_PAY</code> and <code>FACEBOOK_PAY</code> as values on the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/CardPaymentDetails#field-wallet" target="_blank" class="body-link"><code>wallet</code></a> field of the <a href="https://shopify.dev/docs/api/admin-graphql/2025-07/objects/CardPaymentDetails" target="_blank" class="body-link"><code>CardPaymentDetails</code></a> object. Previously, transactions using these wallet types would have a null <code>wallet</code> value.</p>
</div> ]]></description>
    <pubDate>Fri, 28 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/amazonpay-and-facebookpay-enumerated-in-digitalwallets</link>
  </item>
  <item>
    <title>FeeSale fee field is nullable as of 2025-07</title>
    <description><![CDATA[ <div class=""><p>As of 2025-07, the <code>FeeSale.fee</code> field is now nullable, meaning a <code>Fee</code> can be null if it has been deleted. In versions prior to 2025-07, the <code>fee</code> field will still return the deleted fee. </p>
<p>For more information, visit the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/FeeSale" target="_blank" class="body-link">Shopify.dev</a> documentation on <code>FeeSale</code>.</p>
</div> ]]></description>
    <pubDate>Fri, 28 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/feesale-fee-field-is-nullable-as-of-2025-07</link>
  </item>
  <item>
    <title>The `X-Shopify-API-Deprecated-Reason` HTTP header will return actual GraphQL deprecations if any</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-04</code>, the <code>X-Shopify-API-Deprecated-Reason</code> HTTP header will return the list of detected deprecations instead of a generic URL.</p>
<p><strong>Example</strong></p>
<p>As of <code>2025-04</code>:    <code>X-Shopify-API-Deprecated-Reason: Shop.products, Shop.productVariants</code>
Before <code>2025-04</code>: <code>X-Shopify-API-Deprecated-Reason: https://shopify.dev/api/usage/versioning#deprecation-practices</code></p>
</div> ]]></description>
    <pubDate>Mon, 24 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/graphql-return-actual-deprecation-reasons</link>
  </item>
  <item>
    <title>Metafield description input field removal</title>
    <description><![CDATA[ <div class=""><p>The <code>description</code> field on metafield is being removed from the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/MetafieldInput" target="_blank" class="body-link"><code>MetafieldInput</code></a> GraphQL input object. The change will appear in <code>unstable</code> and will be included in the <code>2025-07</code> API version.</p>
<p>The <code>description</code> field is optional and isn't exposed to merchants. You can safely stop including the field in queries and mutations.</p>
<p>If you want to set or get the description of a metafield, use the <code>description</code> field on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/MetafieldDefinition" target="_blank" class="body-link"><code>MetafieldDefinition</code></a>.</p>
</div> ]]></description>
    <pubDate>Thu, 20 Feb 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/metafield-description-field-removal</link>
  </item>
  <item>
    <title>New customer address capabilities in the Admin API</title>
    <description><![CDATA[ <div class=""><p>Starting with API version 2025-04, we've enhanced the Admin API with new capabilities for managing customer addresses. You can now efficiently create, update, and delete customer addresses using the following mutations: <code>customerAddressCreate</code>, <code>customerAddressUpdate</code>, and <code>customerAddressDelete</code>. Both create and update mutations allow the address to be the default address for the customer with the <code>setAsDefault</code> argument set to true. See more in the docs:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/customerAddressCreate" target="_blank" class="body-link">customerAddressCreate</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/customerAddressUpdate" target="_blank" class="body-link">customerAddressUpdate</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/customerAddressDelete" target="_blank" class="body-link">customerAddressDelete</a></li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 20 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-customer-address-capabilities-in-the-admin-api</link>
  </item>
  <item>
    <title>Reserved prefix protection for metafields and metaobjects</title>
    <description><![CDATA[ <div class=""><p>Starting today, <a href="https://shopify.dev/docs/apps/build/custom-data/ownership#reserved-prefixes" target="_blank" class="body-link">reserved prefixes</a> have been widened to include any phrase. You can no longer make any metafield namespace or metaobject type that includes <code>--</code> (e.g., <code>foo--</code> , <code>foo--bar</code> ). This only affects new metafield and metaobject definitions; existing definitions will continue to work as before. This change is intended to reserve the <code>--</code> format for platform defined features such as <code>shopify--{standard}</code> and <code>app--{your-app-id}</code>.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Customer Account API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/reserved-prefix-protection-for-metafields-and-metaobjects</link>
  </item>
  <item>
    <title>No-op for unchanged metafields and metaobjects</title>
    <description><![CDATA[ <div class=""><p>Starting today, when updating metafields and metaobjects, we'll skip triggering webhooks and related actions if the new value matches the existing one. This optimization eliminates unnecessary processing and improves system performance. The change is rolling out iteratively across metafield and metaobject operations.</p>
</div> ]]></description>
    <pubDate>Tue, 18 Feb 2025 23:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Webhook</category>
    <link>https://shopify.dev/changelog/no-op-for-unchanged-metafields-and-metaobjects</link>
  </item>
  <item>
    <title>Expanded control of privacy settings using the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>With API version 2025-04, you can manage privacy settings, including status and geotargeting, for first-party features: </p>
<ul>
<li><strong>Privacy settings status</strong>: View the status of first-party privacy settings, such as the cookie banner, data sale opt-out page, and privacy policy.</li>
<li><strong>Enable/disable settings</strong>: Modify first-party privacy settings, including the cookie banner, data sale opt-out page, and automation for the privacy policy.</li>
<li><strong>Regional control for cookie consent</strong>: View or modify which regions and countries require opt-in consent via the cookie banner.</li>
<li><strong>Data sale opt-out management</strong>: View or modify the regions and countries where opting out of data sale is allowed.</li>
</ul>
<p>These enhancements can help you create a smoother onboarding process for new merchants by allowing your privacy-related partner app to customize a merchant’s settings.</p>
<p>For more information on using these new privacy settings features through the GraphQL Admin API, refer to the <a href="/docs/api/admin-graphql/2025-04/objects/PrivacySettings" target="_blank" class="body-link">API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 18 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/expanded-control-of-privacy-settings-using-the-graphql-admin-api</link>
  </item>
  <item>
    <title>New `include_mirrored_exchanges` query filter parameter</title>
    <description><![CDATA[ <div class=""><p>We've added a new <code>include_mirrored_exchanges</code> <a href="https://shopify.dev/docs/apps/build/pos/exchangesv2#what-data-is-available-in-the-exchangev2s-field" target="_blank" class="body-link">query filter parameter</a> to provide greater flexibility in managing and viewing exchange data using the Retail ExchangeV2 GraphQL Admin API.</p>
<p>The <code>include_mirrored_exchanges</code> query filter parameter controls whether exchanges that are mirrored from the Shopify admin are queryable through the GraphQL Admin API. Only exchanges that are created in the Shopify admin after API version 2025-04 will be queryable with the GraphQL Admin API. Historical exchanges won't be queryable using the API.</p>
<p>To include mirrored exchanges in your API query results, set the parameter to true: <code>query:&quot;include_mirrored_exchanges:true&quot;</code>. This ensures that all exchanges, including those mirrored from the Shopify admin, are visible in the API response. This is the default, so if no query parameter is included, then API query results will include mirrored Shopify admin exchanges.</p>
<p>Conversely, if you want to exclude mirrored exchanges from the results, then set the parameter to false: <code>query:&quot;include_mirrored_exchanges:false&quot;</code>. This filters out any exchanges that are mirrored from the Shopify admin, providing a cleaner dataset.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-includemirroredexchanges-query-filter-parameter</link>
  </item>
  <item>
    <title>Explicit access grants for metafields removed</title>
    <description><![CDATA[ <div class=""><p>Completing the transition that began with the <a href="https://shopify.dev/changelog/deprecating-explicit-access-grants-for-app-owned-metafields" target="_blank" class="body-link">deprecation of explicit grants</a>, existing explicit grants in the system will stop working on February 24, 2025. </p>
</div> ]]></description>
    <pubDate>Mon, 17 Feb 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <link>https://shopify.dev/changelog/explicit-access-grants-for-metafields-full-deprecation</link>
  </item>
  <item>
    <title>New ends_at, created_at, and updated_at query filter parameters for searching discounts</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-04, we've added new <code>ends_at</code>, <code>created_at</code>, and <code>updated_at</code> filters to the <code>discountNodes</code> query, in order to provide greater flexibility in managing and viewing discounts using the GraphQL Admin API.</p>
<p>The  <code>ends_at</code>, <code>created_at</code>, and <code>updated_at</code> query filter parameters allow you to find discounts that will end at, were created at, or were last updated at a given time range.</p>
<p>For more information about the discountNodes query, please refer to our <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/discountNodes" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-endsat-createdat-and-updatedat-query-filter-parameters-for-searching-discounts</link>
  </item>
  <item>
    <title>Hydrogen February 2025 release</title>
    <description><![CDATA[ <div class=""><p>The February 2025 Hydrogen release contains several upgrades:</p>
<ul>
<li>Turn on Remix future flag <code>v3_singleFetch</code> (<a href="https://github.com/Shopify/hydrogen/pull/2708" target="_blank" class="body-link">#2708</a>)</li>
<li>Bump Remix package dependency to 2.15.3 (<a href="https://github.com/Shopify/hydrogen/pull/2740" target="_blank" class="body-link">#2740</a>)</li>
<li>Decoupled dependency on eslint (<a href="https://github.com/Shopify/hydrogen/pull/2716" target="_blank" class="body-link">#2716</a>)</li>
<li>B2B methods and props are now stable  (<a href="https://github.com/Shopify/hydrogen/pull/2736" target="_blank" class="body-link">#2736</a>)</li>
<li>Pass i18n context automatically to customer account login (<a href="https://github.com/Shopify/hydrogen/pull/2746" target="_blank" class="body-link">#2746</a>)</li>
<li>Update getProductOptions to handle combined listing products with divergent options (<a href="https://github.com/Shopify/hydrogen/pull/2747" target="_blank" class="body-link">#2747</a>)</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/january-2025" target="_blank" class="body-link">Hydrogen February 2025 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Sat, 15 Feb 2025 17:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-february-2025-release</link>
  </item>
  <item>
    <title>`NON_TEST_ORDER_LIMIT_REACHED` error code for subscriptions billing attempts</title>
    <description><![CDATA[ <div class=""><p>We added a <code>NON_TEST_ORDER_LIMIT_REACHED</code> field to the <code>SubscriptionBillingAttemptErrorCode</code> enum. This indicates that you've reached the order limit with this payment processor, and you'll need to <a href="https://help.shopify.com/en/partners/dashboard/managing-stores/test-orders-in-dev-stores" target="_blank" class="body-link">use a test payment gateway to place another order</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 15 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/nontestorderlimitreached-error-for-subscriptions-billing-attempts</link>
  </item>
  <item>
    <title>Liquid arrays now support the `find`, `find_index`, `has`, and `reject` filters</title>
    <description><![CDATA[ <div class=""><p>We’ve introduced the following new filters to improve how you handle arrays in your Liquid templates. Now, you can quickly retrieve or check for items in an array without writing verbose loops or complex conditional logic.</p>
<ul>
<li><strong><code>find</code></strong>: Returns the first item that matches your condition</li>
<li><strong><code>find_index</code></strong>: Returns the index of the item that matches your condition</li>
<li><strong><code>has</code></strong>: Returns <code>true</code> when the array includes an item that matches your condition</li>
<li><strong><code>reject</code></strong>: Returns an array without items matching your condition</li>
</ul>
<p>These filters make your Liquid code more concise and declarative.</p>
<p>To learn more, check out the <a href="https://shopify.dev/docs/api/liquid/filters/array-filters" target="_blank" class="body-link">Liquid arrays API docs</a>. Happy coding!</p>
</div> ]]></description>
    <pubDate>Wed, 12 Feb 2025 21:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/liquid-arrays-now-support-the-find-findindex-has-and-reject-filters</link>
  </item>
  <item>
    <title>Updated Country Harmonized System Code validations on Product Variant mutations</title>
    <description><![CDATA[ <div class=""><p>Starting with the Admin GraphQL API version 2025-04, all Product Variant mutations will include validations to ensure that any country-specific harmonized system codes provided in the input are compatible with the existing codes on the Inventory Item. These country-specific codes must be prefixed with the item's global harmonized system code and must be at least six characters long. If the input country HS codes do not meet these criteria, a user error will be returned, specifying the invalid input index and providing an error message.</p>
<p>The following Admin GraphQL API Product Variant mutations will incorporate these validations starting from API version 2025-04:</p>
<ul>
<li>ProductVariantsBulkCreate</li>
<li>ProductVariantsBulkUpdate</li>
<li>ProductVariantCreate</li>
<li>ProductVariantUpdate</li>
<li>ProductSet</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 07 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/updated-country-harmonized-system-code-validations-on-product-variant-mutations</link>
  </item>
  <item>
    <title>Discounts reference docs improvements</title>
    <description><![CDATA[ <div class=""><p>We’ve rewritten our most-visited and least-loved docs in the <strong>Discounts and marketing</strong> section of the <a href="https://shopify.dev/docs/api/admin-graphql" target="_blank" class="body-link">GraphQL Admin API reference</a>. You've shared many helpful comments and questions through our <strong>Was this page helpful?</strong> form, and we’ve reviewed and addressed 100% of them.</p>
<p>Here’s the lowdown on the latest updates.</p>
<h2>Better descriptions</h2>
<p>Many of our descriptions were too brief, circular (restated the method name), expected too much Shopify knowledge, or didn’t link to other relevant docs. </p>
<p>We’ve thoroughly revamped descriptions for Discounts objects, queries (including query filters), mutations, and input objects to include all the details you need without any guesswork. We also added more links to relevant tutorials to make it easier to find your way around and speed up your coding process.</p>
<p><img src="https://cdn.shopify.com/s/files/1/0262/2383/7206/files/discountCodeApp-descs.png?v=1738628466" alt="Improved descriptions for discountCodeApp object"></p>
<h2>Better examples</h2>
<p>We know how helpful it is to see code in action! That’s why we’ve added more real-world examples for common use cases. We added examples across top Discounts pages, especially for pages with 0 examples going in.</p>
<p><img src="https://cdn.shopify.com/s/files/1/0262/2383/7206/files/automaticDiscountNode-examples.png?v=1738628608" alt="Improved examples for automaticDiscountNode query"></p>
<h2>Thanks for your feedback!</h2>
<p>These updates are all about making your life easier. Less time scratching your head or making guesses means more time building amazing things!</p>
<p>We'd love to know what you think—where have these updates helped, and where else in the Admin API docs would you like to see improvements? You can leave comments by clicking the <strong>Was this page helpful?</strong> button on Shopify.dev. </p>
</div> ]]></description>
    <pubDate>Fri, 07 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/discounts-reference-docs-improvements</link>
  </item>
  <item>
    <title>Flow: Template extensions no longer block deploys</title>
    <description><![CDATA[ <div class=""><p>Going forward, when you use <code>app deploy</code> to push updated or new Flow template extensions, your app will be deployed immediately. After deployment, Flow will review the template extension. If it is approved, the template will appear in Flow's template library. If it is not approved, you will receive an email detailing the necessary changes. Once you have made these changes, you can redeploy your app.</p>
</div> ]]></description>
    <pubDate>Fri, 07 Feb 2025 17:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/flow-template-extensions-no-longer-block-deploys</link>
  </item>
  <item>
    <title>Attribute Marketing Consent to Retail Locations</title>
    <description><![CDATA[ <div class=""><p>You can now attribute customer marketing consent to a specific source location. This enhancement allows you to track marketing opt-in rates by retail location and provides better visibility into how customer marketing opt-ins are captured. The <code>CustomerEmailMarketingConsentState</code> and <code>CustomerSmsMarketingConsentState</code> GraphQL APIs can now return the retail location where the marketing consent state was last updated, when applicable.</p>
<p>New fields:</p>
<ul>
<li><code>CustomerEmailMarketingConsentState.sourceLocation</code></li>
<li><code>CustomerSmsMarketingConsentState.sourceLocation</code></li>
</ul>
<p>For more information on using the GraphQL Admin API to query customer data, please refer to the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/Customer" target="_blank" class="body-link">API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 07 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/track-the-retail-locations-where-your-customers-update-their-marketing-consent</link>
  </item>
  <item>
    <title>Support added for app-owned metafields</title>
    <description><![CDATA[ <div class=""><p>In the <code>2025-04</code> API versions of Checkout and Customer Account UI extension APIs, we've enhanced the <code>appMetafield</code> API to support reading app owned metafields. These metafields give you greater control over your application's data, as your app manages both the data and its visibility.</p>
<p>To read app-owned metafields, you must request them in your extension configuration <code>toml</code> file using the <code>$app</code> format in the namespace. This configuration makes app-owned metafields accessible through the <code>appMetafield</code> API in your UI extension code. Note that while you can read these metafields, writing to them is not permitted.</p>
<p>Currently, app-owned metafields are available in the <code>unstable</code> version and will be included in stable versions starting from <code>2025-04</code>.</p>
<p>For more details, please refer to the metafield configuration guide for the <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/metafields" target="_blank" class="body-link">Checkout UI extensions API</a> or the <a href="https://shopify.dev/docs/api/customer-account-ui-extensions/unstable/configuration#metafields" target="_blank" class="body-link">Customer Account UI extensions API</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 07 Feb 2025 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Accounts</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/support-added-for-app-owned-metafields-in-checkout-ui-extension-api</link>
  </item>
  <item>
    <title>New fees and net fields for balance transactions</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-04, you can view the fees and net amount in adjustment orders for balance transactions using the GraphQL Admin API and REST Admin API. These fields are helpful in financial reconciliation, where balance adjustments are used for multiple order transactions. </p>
<ul>
<li>In the GraphQL Admin API, the <code>fees</code> and <code>net</code> fields are available under the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/ShopifyPaymentsBalanceTransaction#field-adjustmentsorders" target="_blank" class="body-link"><code>adjustmentsOrders</code></a> field on the <code>ShopifyPaymentsBalanceTransaction</code> object. </li>
<li>In the REST Admin API, the <code>fee</code> and <code>net</code> properties are available under the <code>adjustment_order_transactions</code> property on the <a href="https://shopify.dev/docs/api/admin-rest/2025-04/resources/transactions" target="_blank" class="body-link"><code>Transactions</code></a> resource.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 06 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-fees-and-net-fields-for-balance-transactions</link>
  </item>
  <item>
    <title>Allocate a single line item's quantity across multiple fulfillment locations</title>
    <description><![CDATA[ <div class=""><p>Previously, a line item could only be allocated to a single fulfillment location selected by order routing. If the location didn't have sufficient inventory to fulfill all quantities of the line item, then overselling would occur.</p>
<p>Now, a line item can be allocated to multiple fulfillment locations. Quantities are distributed across fulfillment locations within the same location group, which prevents overselling and enables more accurate inventory management.</p>
<p>This change might affect API integrations that read <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link">fulfillment orders</a> If the app assumes that an <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link">order</a> can only contain a single fulfillment order for each inventory item, then it might may not account for the full quantity that's required for fulfillment.</p>
<p>This isn't a breaking API change. There was never any guarantees that an order allocates each inventory item to single location. However, because previously this was a relatively rare occurance but will be more frequent moving forward due to automatic splitting, it's possible that some integrations might need to be updated.</p>
<p>Learn more about how API integrations may be impacted by <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/split-fulfillment-orders" target="_blank" class="body-link">line items split across fulfillment orders</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 05 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/a-single-line-items-quantity-can-now-be-allocated-across-multiple-fulfillment-locations</link>
  </item>
  <item>
    <title>Events and Origins in Store Credit Account Transactions</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version 2025-01, we've enhanced the store credit transaction object with two new features to provide more detailed insights into store credit transactions.</p>
<p><strong>New Types Introduced:</strong>  </p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction#field-origin" target="_blank" class="body-link"><code>StoreCreditAccountTransactionOrigin</code></a>: This type identifies the origin of a store credit transaction, offering additional context and traceability.  </li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction#field-event" target="_blank" class="body-link"><code>StoreCreditSystemEvent</code></a>: This type details system events related to store credit transactions, facilitating improved tracking and auditing.</li>
</ul>
<p><strong>New Fields Added to Transaction Objects:</strong></p>
<ul>
<li>The <code>event</code> and <code>origin</code> fields are now part of the following transaction object types:  <ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction" target="_blank" class="body-link"><code>StoreCreditAccountCreditTransaction</code></a>  </li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountDebitRevertTransaction" target="_blank" class="body-link"><code>StoreCreditAccountDebitRevertTransaction</code></a>  </li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountDebitTransaction" target="_blank" class="body-link"><code>StoreCreditAccountDebitTransaction</code></a>  </li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountExpirationTransaction" target="_blank" class="body-link"><code>StoreCreditAccountExpirationTransaction</code></a>  </li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction" target="_blank" class="body-link"><code>StoreCreditAccountTransaction</code></a></li>
</ul>
</li>
</ul>
<p>These enhancements allow you to access event and origin data for each transaction, enriching the store credit transaction data. By utilizing these new fields, you can gain deeper insights into transaction histories, enhancing financial reporting and customer service.</p>
<p>For detailed implementation instructions, please refer to our <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Feb 2025 20:15:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/events-and-origins-in-store-credit-account-transactions</link>
  </item>
  <item>
    <title>Removing unnecessary `RELEVANCE` sort options</title>
    <description><![CDATA[ <div class=""><p><code>RELEVANCE</code> will no longer be included in connection sort options by default as of <code>2025-04</code> API versions. This will eliminate cases where the option offered no unique behavior, and acted as a basic <code>ID</code> sort. Legitimate cases where this option provides unique capabilities and services regular traffic will not change.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Feb 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/removing-unnecessary-relevance-sort-options</link>
  </item>
  <item>
    <title>Hydrogen January 2025 release</title>
    <description><![CDATA[ <div class=""><p>The January 2025 Hydrogen release contains several upgrades:</p>
<ul>
<li>Turn on Remix future flag <code>v3_lazyRouteDiscovery</code> (<a href="https://github.com/Shopify/hydrogen/pull/2702" target="_blank" class="body-link">#2702</a>)</li>
<li>Update SFAPI to 2025-01 (<a href="https://github.com/Shopify/hydrogen/pull/2715" target="_blank" class="body-link">#2715</a>)</li>
<li>Workaround for “Error: failed to execute ‘insertBefore’ on ‘Node’” that sometimes happen during development (<a href="https://github.com/Shopify/hydrogen/pull/2701" target="_blank" class="body-link">#2701</a>)</li>
<li>Bump vite, Remix package versions and bump tailwind v4 alpha to beta (<a href="https://github.com/Shopify/hydrogen/pull/2696" target="_blank" class="body-link">#2696</a>)</li>
<li>Fix <code>getProductOptions</code> crashing when one of the variant returns a null <code>firstSelectableVariant</code> (<a href="https://github.com/Shopify/hydrogen/pull/2704" target="_blank" class="body-link">#2704</a>)</li>
<li>Fix <code>decodeEncodedVariant</code> when option value encoding does not end with a control character (<a href="https://github.com/Shopify/hydrogen/pull/2721" target="_blank" class="body-link">#2721</a>)</li>
<li>Remove deprecated prop <code>customerAccountUrl</code> from <code>createCustomerAccountClient</code> (<a href="https://github.com/Shopify/hydrogen/pull/2730" target="_blank" class="body-link">#2730</a>)</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/january-2025" target="_blank" class="body-link">Hydrogen January 2025 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Fri, 31 Jan 2025 17:15:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-january-2025-release</link>
  </item>
  <item>
    <title>`webhookSubscriptionCreate` and `webhookSubscriptionUpdate` support all URI types</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/webhookSubscriptionCreate" target="_blank" class="body-link"><code>webhookSubscriptionCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/webhooksubscriptionupdate" target="_blank" class="body-link"><code>webhookSubscriptionUpdate</code></a> GraphQL mutations now support a unified <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/input-objects/WebhookSubscriptionInput#fields-uri" target="_blank" class="body-link"><code>uri</code></a> field in the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/input-objects/WebhookSubscriptionInput" target="_blank" class="body-link"><code>webhookSubscription</code> (<code>WebhookSubscriptionInput</code>)</a> argument, which accepts:</p>
<ul>
<li>HTTPS URLs</li>
<li>Google Pub/Sub URIs (<code>pubsub://{project-id}:{topic-id}</code>)</li>
<li>Amazon EventBridge event source ARNs</li>
</ul>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/objects/WebhookSubscription" target="_blank" class="body-link"><code>WebhookSubscription</code></a> object has been updated to include this new <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/objects/WebhookSubscription#field-WebhookSubscription.fields.uri" target="_blank" class="body-link"><code>uri</code></a> field, and the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/queries/webhooksubscriptions" target="_blank" class="body-link"><code>webhookSubscriptions</code></a> query now supports filtering by <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/queries/webhooksubscriptions#arguments-uri" target="_blank" class="body-link"><code>uri</code></a> to accommodate all endpoint types.</p>
<h3>Deprecations</h3>
<p>The following endpoint-specific mutations are now deprecated in favor of the unified approach:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/eventbridgewebhooksubscriptioncreate" target="_blank" class="body-link"><code>eventBridgeWebhookSubscriptionCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/eventbridgewebhooksubscriptionupdate" target="_blank" class="body-link"><code>eventBridgeWebhookSubscriptionUpdate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/pubsubwebhooksubscriptioncreate" target="_blank" class="body-link"><code>pubSubWebhookSubscriptionCreate</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/pubsubwebhooksubscriptionupdate" target="_blank" class="body-link"><code>pubSubWebhookSubscriptionUpdate</code></a></li>
</ul>
<p>Additionally, the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/queries/webhooksubscriptions#arguments-callbackUrl" target="_blank" class="body-link"><code>callbackUrl</code></a> field in the <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/queries/webhooksubscriptions" target="_blank" class="body-link"><code>webhookSubscriptions</code></a> query is deprecated (previously supported HTTPS URLs only).</p>
<h3>Migration Notes</h3>
<p>Use the new <code>uri</code> field in <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/webhookSubscriptionCreate" target="_blank" class="body-link"><code>webhookSubscriptionCreate</code></a>/<a href="https://shopify.dev/docs/api/admin-graphql/2025-10/mutations/webhooksubscriptionupdate" target="_blank" class="body-link"><code>webhookSubscriptionUpdate</code></a> mutations and <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/queries/webhooksubscriptions" target="_blank" class="body-link"><code>webhookSubscriptions</code></a> query instead of the deprecated endpoint-specific mutations and <a href="https://shopify.dev/docs/api/admin-graphql/2025-10/queries/webhooksubscriptions#arguments-callbackUrl" target="_blank" class="body-link"><code>callbackUrl</code></a> field.</p>
</div> ]]></description>
    <pubDate>Fri, 31 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-10</category>
    <link>https://shopify.dev/changelog/consolidate-webhook-graphql-surfaces</link>
  </item>
  <item>
    <title>New `event` and `origin` fields for store credit transactions</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-04</code>, the <code>event</code> and <code>origin</code> fields have been added to store credit transactions for the Customer Account GraphQL API.</p>
<p><code>event</code>: Track what triggered a store credit transaction through the <code>StoreCreditSystemEvent</code> enum, which includes:</p>
<ul>
<li>Order payments and refunds</li>
<li>Order cancellations</li>
<li>Payment failures and returns</li>
<li>Tax finalization adjustments</li>
<li>Manual adjustments</li>
</ul>
<p><code>origin</code>: Identify the source of the transaction, with the ability to reference back to the originating <code>OrderTransaction</code> when applicable.</p>
<p>Additionally, we've made the <code>order</code> field accessible on <code>OrderTransaction</code> objects, allowing you to easily navigate from a transaction to its associated order.</p>
<p>For detailed documentation on using these new fields, visit <a href="https://shopify.dev/docs/api/customer/2025-01/interfaces/StoreCreditAccountTransaction" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 30 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-event-and-origin-fields-for-store-credit-transactions</link>
  </item>
  <item>
    <title>Payout statuses In Transit and Scheduled have been merged</title>
    <description><![CDATA[ <div class=""><h1>Deprecation Announcement: Payout Status Changes</h1>
<p>We’ve made a significant update to the payout statuses in our system. As part of our ongoing efforts to streamline and enhance your experience, we have merged the payout statuses &quot;In Transit&quot; and &quot;Scheduled&quot; into a single status: <strong>Scheduled</strong>.</p>
<h2>Key Changes</h2>
<ul>
<li><strong>Merged Payout Statuses:</strong> The previous statuses of &quot;In Transit&quot; and &quot;Scheduled&quot; will now be represented simply as <strong>Scheduled</strong>.</li>
</ul>
<h2>What You Need to Do</h2>
<ul>
<li>If you have been utilizing the &quot;In Transit&quot; status in your workflows or integrations, please update your systems to just recognize the <strong>Scheduled</strong> status moving forward. This change will ensure that you continue to receive accurate information regarding your payouts.</li>
</ul>
<h2>Why This Change?</h2>
<p>We made this decision to simplify the payout tracking process, improve clarity, and enhance your overall experience with our services.</p>
<h2>Deprecation Date</h2>
<p>This change is effective immediately, and the statuses will be adjusted in your dashboards and API responses.</p>
<p>For more detailed information on this change, please refer to our <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/ShopifyPaymentsPayoutStatus" target="_blank" class="body-link">documentation</a>.</p>
<p>We appreciate your understanding and support as we continually work to improve our services for you.</p>
</div> ]]></description>
    <pubDate>Wed, 29 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/payout-statuses-in-transit-and-scheduled-have-been-merged</link>
  </item>
  <item>
    <title>New Catalog APIs</title>
    <description><![CDATA[ <div class=""><p>As of April 2025, the Catalog APIs have been updated to support changes in how markets are managed. For more details, see the <a href="https://shopify.dev/changelog/new-markets-apis" target="_blank" class="body-link">New Markets APIs</a>.</p>
<!-- This document will evolve as we add non-breaking changes to the target release candidate version -->

<p>With these updates, multiple markets can now be assigned to a single catalog. Consequently, the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/MarketCatalog#connection-markets" target="_blank" class="body-link"><code>MarketCatalog.markets</code></a> connection will no longer guarantee the return of a single entry.</p>
<p>Additionally, the <code>Market</code> object now supports new conditions. Previously, only <code>RegionConditions</code> were available for a market; now, <code>CompanyLocationConditions</code> are also supported. To maintain the existing behavior and access only <code>Regions</code>, you must update the <code>markets</code> connection by using the <code>type: REGION</code> argument.</p>
<p>Example: </p>
<pre><code class="language-graphql">markets(first: 10, type: REGION) {
    nodes {
      id
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Wed, 29 Jan 2025 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-catalog-apis</link>
  </item>
  <item>
    <title>shop.metaobjects is now just metaobjects in liquid</title>
    <description><![CDATA[ <div class=""><p>We've simplified access to metaobjects in Liquid. You can now access metaobjects using the streamlined syntax <code>metaobjects.type.handle</code>, aligning with conventions used for other resource types. This new approach is more standardized and is now the preferred method. The previous access syntax, <code>shop.metaobjects.type.handle</code>, remains functional and backward compatible but is officially deprecated.</p>
<p><a href="https://shopify.dev/docs/api/liquid/objects/metaobject" target="_blank" class="body-link">Learn more</a> about metaobjects in liquid</p>
</div> ]]></description>
    <pubDate>Tue, 28 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/shopmetaobjects-is-now-just-metaobjects-in-liquid</link>
  </item>
  <item>
    <title>New creation, update, and status filters for subscriptionContracts</title>
    <description><![CDATA[ <div class=""><p>As of API version 2025-04, you can now sort the subscriptionContracts query results by <code>created_at</code>, <code>updated_at</code>, and <code>status</code> filters in both the admin and customer account APIs. The ability to sort subscription contracts simplifies tracking and prioritizing by allowing you to quickly organize and view information based on when they were created, updated, or their current status.</p>
<p>For more information, please refer to our documentation: </p>
<ul>
<li>Learn how to <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/subscriptionContracts#argument-query" target="_blank" class="body-link">implement sorting</a> in the admin API.</li>
<li>Explore <a href="https://shopify.dev/docs/api/customer/2025-04/objects/Customer#connection-subscriptioncontracts" target="_blank" class="body-link">sorting filters</a> in the customer account API.</li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 25 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/subscription-contracts-filters</link>
  </item>
  <item>
    <title>Apps will be reviewed for necessary scopes</title>
    <description><![CDATA[ <div class=""><p>Starting February 1, 2025, all apps submitted to the Shopify App Store will be checked for scopes that require Shopify permission for approved use cases. </p>
<p>Apps that have unnecessary scopes, or are using scopes for non-approved use cases will have these scopes removed. </p>
<p>To learn more about these scopes, please visit the <code>API access</code> page in your Partner Dashboard.</p>
</div> ]]></description>
    <pubDate>Fri, 24 Jan 2025 21:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/apps-will-be-reviewed-for-necessary-scopes</link>
  </item>
  <item>
    <title>Record partial payments on Orders</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-04</code> partial payments can be recorded on orders using the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/orderCreateManualPayment" target="_blank" class="body-link">orderCreateManualPayment</a> mutation. This allows the recording of multiple separate payments, up to the total amount owing on the order.</p>
</div> ]]></description>
    <pubDate>Fri, 24 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/record-partial-payments-on-orders</link>
  </item>
  <item>
    <title>Optional `role` argument for `themeCreate` mutation</title>
    <description><![CDATA[ <div class=""><p>We've added an optional <a href="/docs/api/admin-graphql/2025-04/mutations/themeCreate#argument-role" target="_blank" class="body-link"><code>role</code> argument</a> on the <code>themeCreate</code> mutation, which allows clients to specify a role for the newly created theme. Only <code>UNPUBLISHED</code> and <code>DEVELOPMENT</code> roles are permitted for newly created themes.</p>
</div> ]]></description>
    <pubDate>Thu, 23 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/optional-role-argument-for-theme-create-mutation</link>
  </item>
  <item>
    <title>InventoryItem Queryable and Updatable with Products Scopes</title>
    <description><![CDATA[ <div class=""><p>The scopes for the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/input-objects/InventoryItemInput" target="_blank" class="body-link">InventoryItemInput</a> input object and the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/InventoryItem" target="_blank" class="body-link">InventoryItem</a> object have been relaxed. These objects can now be updated and queried using the <code>write_products</code> and <code>read_products</code> scopes, respectively.</p>
<p>Specifically, the following changes have been made:</p>
<ul>
<li>The <code>InventoryItemInput</code> can now be set within <code>product*</code> mutations using only the <code>write_products</code> scope.</li>
<li>The <code>InventoryItem</code> can be queried with either the <code>read_products</code> or <code>read_inventory</code> scope.</li>
</ul>
<p>However, the following restrictions still apply:</p>
<ul>
<li>The <code>inventoryLevel</code> cannot be queried from the <code>InventoryItem</code> object without the <code>read_inventory</code> scope.</li>
<li>The <code>location</code> cannot be queried without the <code>read_locations</code> scope.</li>
</ul>
<p>These changes are applicable across all API versions.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/inventoryitem-queryable-and-updatable-with-products-scopes</link>
  </item>
  <item>
    <title>Support added for $app in product queries by metafield</title>
    <description><![CDATA[ <div class=""><p>We now support querying products by app-owned metafields with a saved namespace using the <code>$app</code> syntax. To include an app-owned metafield in your query, you can use the syntax <code>metafields.$app.key:\&quot;value\&quot;</code> or <code>metafields.$app\\:optional-additional-text.key:\&quot;value\&quot;</code>.</p>
<p><a href="https://shopify.dev/docs/api/usage/search-syntax#special-characters" target="_blank" class="body-link">As documented</a>, special characters need to be escaped from queries. For this reason, you need a <code>\\</code> when specifying <code>:</code>. For example, suppose you have an app-owned metafield with the optional-additional-text <code>swatch-app</code> and key <code>color</code> with a value of <code>green</code>. To query for products with this metafield, you would use the following search syntax:
<code>&quot;metafields.$app\\:swatch-app.color:\&quot;green\&quot;&quot;</code></p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/custom-data/metafields/query-by-metafield-value" target="_blank" class="body-link">querying products by metafield value</a> and <a href="https://shopify.dev/docs/apps/build/custom-data/ownership#create-metafield-definitions-with-reserved-namespaces" target="_blank" class="body-link">creating metafields with reserved namespaces</a>. </p>
</div> ]]></description>
    <pubDate>Mon, 20 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/support-added-for-app-namespaces-in-product-queries-by-metafield</link>
  </item>
  <item>
    <title>Combined Listings Update Mutation Enhancements</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2025-05, we have introduced new error codes that will be returned from the <code>combinedListingUpdate</code> mutation. These new errors are to provide more clarity when the mutation is called with incorrect data. </p>
<ul>
<li><code>option_name_contains_invalid_characters</code> will be returned when there are invalid sequences of characters in an Option Name. For example, <code>/</code> is an invalid sequence (space + / + space)</li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 18 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/combined-listings-update-mutation-enhancements</link>
  </item>
  <item>
    <title>Continuous cart authentication</title>
    <description><![CDATA[ <div class=""><p>We’ve recently rolled out a change that enables continuous authentication when a customerAccessToken is appended to the cart in the buyerIdentity object. The obtained checkoutUrl allows authenticated customers to navigate to a logged-in checkout experience. Note that for security reasons, the checkoutUrl should be requested when the customer is ready to navigate to checkout, which can be re-requested if needed.</p>
<p>To log in customers automatically at checkout, please <a href="https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage#step-6-authenticate-customer-for-logged-in-checkouts" target="_blank" class="body-link">append the customerAccessToken</a> into the Buyer Identity object of the Storefront API Cart and <a href="https://shopify.dev/docs/api/usage/authentication#making-server-side-requests" target="_blank" class="body-link">include the buyer IP address</a> when making server side requests.</p>
<p>For developers building mobile apps with the Checkout Sheet Kit, see this <a href="https://shopify.dev/docs/storefronts/headless/mobile-apps/checkout-sheet-kit/authenticate-checkouts" target="_blank" class="body-link">detailed guide</a> to create authenticated checkout experiences for buyers within mobile apps. Previously, opening an authenticated checkout was only possible using multipass limited to Shopify Plus plans and legacy customer accounts. Now, authenticated checkouts are possible for merchants on all plans and customer account versions.</p>
</div> ]]></description>
    <pubDate>Thu, 16 Jan 2025 23:15:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/continuous-cart-authentication</link>
  </item>
  <item>
    <title>New Buyer Consent Requirement</title>
    <description><![CDATA[ <div class=""><p>As of Tuesday, February 18, 2025, all published apps must display costs and obtain explicit buyer consent before adding any optional paid items to Storefront, Cart, or Checkout. </p>
<p>These requirements are already being enforced on unpublished apps. We've updated our <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist?utm_source=mozart&utm_medium=email&utm_campaign=app_requirement&utm_content=optional_paid_items#18-checkout-ui-extension-apps" target="_blank" class="body-link">Checkout UI extension app requirements</a> and <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist?utm_source=mozart&utm_medium=email&utm_campaign=app_requirement&utm_content=optional_paid_items#1-prohibited-and-restricted-app-configurations" target="_blank" class="body-link">prohibited app types</a> to make buying experiences more trustworthy. </p>
<p>These requirements apply to both packaged Checkout UI extensions and any downloadable code provided by the app or app partner across Storefront, Cart, and Checkout.</p>
</div> ]]></description>
    <pubDate>Thu, 16 Jan 2025 08:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-buyer-consent-requirement</link>
  </item>
  <item>
    <title>New `inventoryItem` field on ProductSetVariantInput</title>
    <description><![CDATA[ <div class=""><p>We are expanding capabilities of the GraphQL Admin API <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet" target="_blank" class="body-link"><strong>productSet</strong></a> mutation by adding  <code>inventoryItem</code> field to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductVariantSetInput" target="_blank" class="body-link"><strong>ProductVariantSetInput</strong></a> type.</p>
<p>This enables <code>productSet</code> to modify <code>ProductVariant</code> fields related to its <code>inventoryItem</code>, such as unit cost and tracked status .</p>
<p>This change is applied to all API versions, starting with <code>2024-10</code>.</p>
<p>For more detailed information and examples, visit our <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet" target="_blank" class="body-link">productSet documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin Extensions</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-inventoryitem-field-on-productsetvariantinput</link>
  </item>
  <item>
    <title>Line item weight input for `orderCreate` mutation</title>
    <description><![CDATA[ <div class=""><p>We have enhanced the <code>orderCreate</code> mutation by adding an optional field, <code>OrderCreateLineItemInput.weight</code>, which allows you to specify the weight of each line item using the <code>WeightInput</code> object.</p>
<p>For line items linked to a product variant:</p>
<ul>
<li>Specifying a weight will override the variant's default weight.</li>
<li>If no weight is specified, the variant's weight will be used by default.</li>
</ul>
<p>For line items not linked to a product variant, such as custom items:</p>
<ul>
<li>Specifying a weight will apply that weight to the line item.</li>
<li>If no weight is specified, the line item's weight will default to 0.</li>
</ul>
<p>This is an improved version of the <code>line_items.grams</code> field that exists in the <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/order#post-orders" target="_blank" class="body-link">REST API</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/line-item-weight-input-for-ordercreate-mutation</link>
  </item>
  <item>
    <title>Expose the id field in ProductFullSyncPayload object</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-04, the return field id in product full sync payload in Admin API will be available. </p>
</div> ]]></description>
    <pubDate>Wed, 15 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/expose-the-id-field-in-productfullsyncpayload-object</link>
  </item>
  <item>
    <title>Performance, integration and category-specific requirements come into practice</title>
    <description><![CDATA[ <div class=""><p>To ensure that the Built for Shopify status represents the highest quality of app apps will need to meet the following performance, integration and category-specific requirements. These requirements are designed to ensure that each app that earns the Built for Shopify status excels in meeting the unique needs of the merchants it serves.</p>
<p>Built for Shopify annual review will be on January 2, 2025.</p>
<h3><strong>Performance requirements</strong></h3>
<p>Date enforced: January 2, 2025</p>
<ul>
<li><p><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#make-the-admin-performance-meet-the-th-percentile-web-vitals-target" target="_blank" class="body-link">Make the admin performance meet 75th percentile Web Vitals targets</a></p>
<ul>
<li><a href="/docs/apps/build/performance/admin-installation-oauth#cumulative-layout-shift" target="_blank" class="body-link">Cumulative Layout Shift (CLS)</a>: will be re-introduced and needs to be 0.1 or less.</li>
<li><a href="/docs/apps/build/performance/admin-installation-oauth#largest-contentful-paint" target="_blank" class="body-link">Interaction to Next Paint (INP)</a>: 200 milliseconds or less.</li>
</ul>
<p>  <em>This requirement replaces the previous <a href="/docs/apps/build/performance/admin-installation-oauth#first-input-delay" target="_blank" class="body-link">First Input Delay (FID)</a> requirement.</em></p>
</li>
<li><p><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#minimize-the-impact-on-checkout-speed" target="_blank" class="body-link">Minimize the impact on checkout speed</a></p>
<ul>
<li>Your app must make a minimum of 1,000 requests over the last 28 days. </li>
<li>Your requests must have a p95 value of 500ms or less, with a 0.1% failure rate.</li>
</ul>
<p>  <em>These requirements will replace the following ones:
  Your app must make a minimum of 1,000 requests over three weeks.
  Your app must have a p99 value of 1000ms or less, with 0% failure rate.</em></p>
</li>
</ul>
<h3><strong>Integration requirements</strong></h3>
<p>Date enforced: January 2, 2025</p>
<ul>
<li><p><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#enable-seamless-sign-up-based-on-shopify-credentials" target="_blank" class="body-link">Enable seamless sign up based on Shopify credentials</a>
Apps should make sign up seamless for merchants, without requiring an additional login or sign-up prompt. Users should be able to begin using the app immediately after installing it without having to complete another sign up. <a href="/docs/apps/build/integrating-with-shopify#exceptions" target="_blank" class="body-link">Exceptions</a> apply on apps that can’t be easily accessed by merchants in a self-service manner and require a more complex sign-up, often involving a business-to-business contract. In these cases, the first step to the in-admin onboarding of these apps must always be a workflow that enables a merchant to link the current store with their existing credentials.  If your app offers both self-service and business-to-business sign up, then the app's onboarding must include an option to sign up for the service using the merchant's existing Shopify credentials.</p>
</li>
<li><p><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#include-simplified-monitoring-or-reporting" target="_blank" class="body-link">Include simplified monitoring or reporting</a>
Expose key metrics that are helpful for merchants on the app’s home page. If your app includes monitoring or complex reports that can only exist on an external website or app surface, then you must include a simplified version of the monitoring or reporting in the Shopify admin.</p>
</li>
<li><p><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#keep-third-party-connection-settings-within-shopify" target="_blank" class="body-link">Keep third-party connection settings within Shopify</a>
Any settings or configurations that control the connection between Shopify and a third-party system must be available inside the Shopify embedded app interface.</p>
</li>
</ul>
<h3><strong>Category specific requirements</strong></h3>
<p>We understand not all apps are the same. Apps are built to address a wide variety of merchant workflows and serve many diverse functions. Moving forward some categories of apps must adhere to additional requirements. These requirements specify specific APIs, integrations, and design guidelines that reflect what a great app in these categories looks like.</p>
<p><strong>Product bundles apps</strong>
Date enforced: January 2, 2025</p>
<ul>
<li><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-bundles-primitives" target="_blank" class="body-link">Use bundles primitives</a>
Your app must either use the GraphQL Admin API to create <a href="https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-fixed-bundle" target="_blank" class="body-link">static bundles</a> or use a cartTransform function to create <a href="https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-customized-bundle" target="_blank" class="body-link">customized bundles</a>.
However, if your app supports a bundles use case that is not yet supported through these APIs</li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 11 Jan 2025 17:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/performance-integration-and-category-specific-requirements-come-into-practice</link>
  </item>
  <item>
    <title>New card brands for OrderTransactions.paymentMethods</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/PaymentMethods" target="_blank" class="body-link"><code>OrderTransactions.paymentMethods</code></a> enumerated type now includes two new values: <code>CARTES_BANCAIRES</code> and <code>BANCONTACT</code>. Starting with API version <code>2025-04</code>, order transactions paid using these methods will reflect the new values in GraphQL API responses.</p>
</div> ]]></description>
    <pubDate>Fri, 10 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-card-brands-for-ordertransactionspaymentmethods</link>
  </item>
  <item>
    <title>Shopify Functions template and Shopify CLI changes to support Rust 1.84</title>
    <description><![CDATA[ <div class=""><p>In anticipation of the <a href="https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html" target="_blank" class="body-link">removal of the wasm32-wasi build target in Rust 1.84</a>, Shopify has updated its Shopify Functions templates for Rust. The <code>cargo-wasi</code> utility has been removed because it is incompatible with Rust 1.84 and later versions. </p>
<p>Additionally, starting with Shopify CLI 3.73, all function builds now include an optimization pass by default. Previously, this optimization was handled by <code>cargo-wasi</code>.</p>
<p>Before you update to Rust 1.84, we recommend reviewing and following the <a href="https://shopify.dev/docs/apps/build/functions/programming-languages/rust-for-functions#updating-to-rust-1-84-and-higher" target="_blank" class="body-link">steps outlined here</a>. These changes are compatible with Rust 1.78 and above.</p>
</div> ]]></description>
    <pubDate>Wed, 08 Jan 2025 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-template-and-shopify-cli-changes-to-support-rust-184</link>
  </item>
  <item>
    <title>New validations on function input query variables metafields</title>
    <description><![CDATA[ <div class=""><p>As of 2025-01, input query variables metafields will now be subject to additional validation across all Function APIs.</p>
<p>Previously, if these metafields didn't contain properly formatted data, we treated them as empty. This could lead to situations where it was difficult to determine why a function wasn't receiving the expected input data.</p>
<p>Now, an invalid metafield will result in an <code>InvalidVariableValueError</code> when attempting to run the function.</p>
<p>For more information, refer to the <a href="https://shopify.dev/docs/apps/build/functions/monitoring-and-errors#list-of-errors" target="_blank" class="body-link">list of errors</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 06 Jan 2025 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/new-validations-on-function-input-query-variables-metafields</link>
  </item>
  <item>
    <title>Add tax validation with localizedFields in Checkout UI Extensions &amp; Functions</title>
    <description><![CDATA[ <div class=""><p><strong>As of Jan 6, 2025</strong>, you can use the new localizedFields in the Checkout UI Extension API and Function API to implement custom validation for tax fields in checkout. The localizationExtensions field in the Admin GraphQL API has now been renamed to localizedFields too. Additionally, you can now target tax fields in checkout for error messages.</p>
<p>Available currently in the unstable API version and will be released to the stable 2025-01 API version. Learn more on how to implement <a href="https://shopify.dev/docs/apps/build/markets/add-locally-required-order-data#validate-a-country-field" target="_blank" class="body-link">localizedFields</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 06 Jan 2025 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Functions</category>
    <link>https://shopify.dev/changelog/add-tax-validation-with-localizedfields-in-checkout-ui-extensions-functions</link>
  </item>
  <item>
    <title>POS UI Extensions 2025-01 Update</title>
    <description><![CDATA[ <div class=""><p>As of January 20, we added the following updates to POS UI Extensions: </p>
<h3>Breaking Changes</h3>
<ul>
<li>Removed the deprecated ActionItem component. Use a <a href="/docs/api/pos-ui-extensions/components/button" target="_blank" class="body-link">Button</a> instead.</li>
<li>Removed the deprecated SmartGridApi. Use the <a href="/docs/api/pos-ui-extensions/apis/action-api" target="_blank" class="body-link">ActionApi</a> instead.</li>
<li>Removed the deprecated DiscountType. Use <a href="/docs/api/pos-ui-extensions/apis/cart-api#cartapi-propertydetail-applycartdiscount" target="_blank" class="body-link">CartDiscountType</a> and <a href="/docs/api/pos-ui-extensions/apis/cart-api#cartapi-propertydetail-setlineitemdiscount" target="_blank" class="body-link">LineItemDiscountType</a> instead.</li>
<li>Removed the deprecated <code>badge</code> prop from the <a href="/docs/api/pos-ui-extensions/components/list" target="_blank" class="body-link">List</a> component. Use <code>badges</code> instead.</li>
<li>Removed the deprecated <code>TextFieldProps</code> type from the <a href="/docs/api/pos-ui-extensions/components/textfield" target="_blank" class="body-link">TextField</a> component.</li>
<li>Deprecated <code>'vertical'</code> and <code>'horizontal'</code> as values for the <code>direction</code> field in the <a href="/docs/api/pos-ui-extensions/components/Stack" target="_blank" class="body-link">Stack</a> component.</li>
<li>Deprecated the <code>flexChildren'</code> field in the <a href="/docs/api/pos-ui-extensions/components/Stack" target="_blank" class="body-link">Stack</a> component.</li>
<li>Deprecated the <code>flex'</code> field in the <a href="/docs/api/pos-ui-extensions/components/Stack" target="_blank" class="body-link">Stack</a> component.</li>
<li>Deprecated the <code>flexWrap'</code> field in the <a href="/docs/api/pos-ui-extensions/components/Stack" target="_blank" class="body-link">Stack</a> component.</li>
<li>Deprecated the <code>paddingHorizontal'</code> and <code>paddingVertical</code> fields in the <a href="/docs/api/pos-ui-extensions/components/Stack" target="_blank" class="body-link">Stack</a> component.</li>
<li>Removed <code>customValidator</code> prop from the <a href="/docs/api/pos-ui-extensions/components/formattedtextfield" target="_blank" class="body-link">FormattedTextField</a> component.</li>
<li>Removed <code>email</code>, <code>firstName</code>, <code>lastName</code>, and <code>note</code> from the <a href="/docs/api/pos-ui-extensions/apis/cart-api#customer" target="_blank" class="body-link">Customer</a> object.</li>
</ul>
<h3>Features</h3>
<ul>
<li>Added <a href="/docs/api/pos-ui-extensions/apis/print-api" target="_blank" class="body-link">PrintApi</a> and a <a href="/docs/api/pos-ui-extensions/components/printpreview" target="_blank" class="body-link">PrintPreview</a> component.</li>
<li>Added <code>currency</code> prop to the <a href="/docs/api/pos-ui-extensions/apis/session-api" target="_blank" class="body-link">SessionApi</a>.</li>
<li><a href="/docs/api/pos-ui-extensions/apis/cart-api" target="_blank" class="body-link">Cart API</a> updates:<ul>
<li>Added <code>bulkUpdateCart</code> function for single-operation cart updates.</li>
<li>The <code>addLineItem</code> and <code>addCustomSale</code> functions now return a UUID for the added line item.</li>
</ul>
</li>
<li>Added <a href="/docs/api/pos-ui-extensions/components/box" target="_blank" class="body-link">Box</a> component.</li>
<li>Enhanced the <a href="/docs/api/pos-ui-extensions/components/box" target="_blank" class="body-link">Stack</a> component. New fields include <code>justifyContent</code>, <code>alignItems</code>, and <code>alignContent</code>, as well as numerous new sizing and spacing options.</li>
<li>Added Sizing and fill options to the<a href="/docs/api/pos-ui-extensions/components/image" target="_blank" class="body-link">Image</a> component.</li>
</ul>
<p>All of the changes are available for POS UI extensions version 2025-01 and POS app version 9.26.0. See the <a href="https://shopify.dev/docs/api/pos-ui-extensions/unstable/versions" target="_blank" class="body-link">version log</a> for all version details.</p>
</div> ]]></description>
    <pubDate>Mon, 06 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-2025-01-update</link>
  </item>
  <item>
    <title>Cash transaction rounding for Point of Sale purchases in selected countries</title>
    <description><![CDATA[ <div class=""><p>For specific currencies, cash transactions on Point of Sale now automatically round to the nearest denomination. This applies to cash payments and refunds using the following currencies and regions: CAD (Canada), AUD (Australia), NZD (New Zealand), EUR (Switzerland, Belgium, Finland), DKK (Denmark), SEK (Sweden), NOK (Norway). Additional currencies may be supported in the future.</p>
<p>Additionally, in GraphQL Admin API versions 2024-10 and later, we’ve introduced new fields to simplify queries of cash rounding adjustments for both orders and transactions.</p>
<h3>Order-level cash rounding adjustments</h3>
<p>On the <code>Order</code> object, we've introduced the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-totalCashRoundingAdjustment" target="_blank" class="body-link"><code>totalCashRoundingAdjustment</code></a> field, which indicates the total cash rounding adjustments applied to all payment and refund transactions within a Point of Sale order.</p>
<ul>
<li><strong>Payments</strong>: Use <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/CashRoundingAdjustment#field-paymentset" target="_blank" class="body-link"><code>totalCashRoundingAdjustment.paymentSet</code></a>.  </li>
<li><strong>Refunds</strong>: Use <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/CashRoundingAdjustment#field-refundset" target="_blank" class="body-link"><code>totalCashRoundingAdjustment.refundSet</code></a>.</li>
</ul>
<p>To calculate rounded totals:</p>
<ul>
<li><strong>Rounded total payment</strong>: <code>totalReceivedSet.presentmentMoney</code> + <code>totalCashRoundingAdjustment.paymentSet.presentmentMoney</code>  </li>
<li><strong>Rounded total refund</strong>: <code>totalRefundedSet.presentmentMoney</code> + <code>totalCashRoundingAdjustment.refundSet.presentmentMoney</code></li>
</ul>
<h3>Transaction-level cash rounding adjustments</h3>
<p>On the <code>OrderTransaction</code> object, we've introduced the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction#field-amountRoundingSet" target="_blank" class="body-link"><code>amountRoundingSet</code></a> field, which indicates the cash rounding adjustment applied to an individual cash payment or refund transaction on Point of Sale.</p>
<p>To identify a cash transaction, check that the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction#field-gateway" target="_blank" class="body-link"><code>gateway</code></a> field equals <code>cash</code>. </p>
<p>To calculate the rounded transaction amount:  </p>
<p><strong>Rounded transaction amount</strong> = <code>amountSet.presentmentMoney</code> + <code>amountRoundingSet.presentmentMoney</code></p>
<h3>Example</h3>
<p>Consider an example Point of Sale order:</p>
<ul>
<li>Cash payment: <code>9.99</code>, rounded up by <code>+0.01</code> to <code>10.00</code></li>
<li>Partial cash refund: <code>5.02</code>, rounded down by <code>-0.02</code> to <code>5.00</code></li>
</ul>
<h4>Order example</h4>
<p>| Field | Value |
| :</p>
</div> ]]></description>
    <pubDate>Mon, 06 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/new-cash-rounding-on-order-and-order-transaction</link>
  </item>
  <item>
    <title>New Markets APIs</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-04</code>, the Markets APIs have been updated to support additional customizations and conditions for each market, enabling merchants to tailor their shops' buyer experiences.</p>
<!-- This document will evolve as we add non-breaking changes to the target release candidate version  -->
<h3>Primary Market</h3>
<p>To transition away from the &quot;primary market&quot; concept, a new mutation, <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/backupRegionUpdate" target="_blank" class="body-link"><code>backupRegionUpdate</code></a> allows you to set a shop-wide region to use when no better option can be determined from buyer signals. Instead of <code>MarketRegionCreateInput</code>, you must use <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/input-objects/BackupRegionUpdateInput" target="_blank" class="body-link"><code>BackupRegionUpdateInput</code></a>.</p>
<ul>
<li>To query the shop's backup region, use <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/backupRegion" target="_blank" class="body-link"><code>backupRegion</code></a>.</li>
<li>To obtain a list of available regions that can be set as a backup, use the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/queries/availableBackupRegions" target="_blank" class="body-link"><code>availableBackupRegions</code></a> query.</li>
</ul>
<h3>Currency Settings</h3>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/Market#field-currencysettings" target="_blank" class="body-link"><code>Market.currencySettings</code></a> field is now nullable. A null value indicates that the currency settings are inherited from the parent market.</p>
<h3>Web Presence</h3>
<p>A web presence can now exist without a market and can also be assigned to multiple markets. The field <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/MarketWebPresence#field-market" target="_blank" class="body-link"><code>MarketWebPresence.market</code></a> is deprecated in favour of <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/objects/MarketWebPresence#connection-markets" target="_blank" class="body-link"><code>MarketWebPresence.markets</code></a>, which allows for this expanded functionality.</p>
<h3>Catalogs</h3>
<p>As of <code>2025-04</code>, the Product's <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/Product#field-contextualpricing" target="_blank" class="body-link">contextualPricing</a> field and Product Variant's <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/ProductVariant#field-contextualpricing" target="_blank" class="body-link">contextualPricing</a> field will resolve prices only considering active markets. Previous versions will continue to consider draft markets in the calculation of these fields.</p>
</div> ]]></description>
    <pubDate>Fri, 03 Jan 2025 23:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/new-markets-apis</link>
  </item>
  <item>
    <title>New `collection_id` filter added to `products` query filters</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-10</strong> version of the GraphQL Admin API, a new filter, <code>collection_id</code>, has been added to the <code>products</code> query. This filter allows you to retrieve products that belong to a specific collection. </p>
<p>When using the <code>collection_id</code> filter, it can be combined with the following filters:</p>
<ul>
<li><code>created_at</code></li>
<li><code>updated_at</code></li>
<li><code>published_at</code></li>
<li><code>gift_card</code></li>
<li><code>handle</code></li>
<li><code>combined_listing_role</code></li>
<li><code>product_type</code></li>
<li><code>status</code></li>
<li><code>title</code></li>
<li><code>vendor</code></li>
</ul>
<p>For more details on all available attributes for the <code>products</code> query, visit the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/products#argument-query" target="_blank" class="body-link">Shopify developer documentation</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">shopify.dev</a>.</p>
<p>Example usage of the <code>collection_id</code> filter in a query:</p>
<pre><code class="language-graphql">{
  products(query: &quot;collection_id:1234567890&quot;) {
    edges {
      node {
        id
        title
      }
    }
  }
}
</code></pre>
<p>This query retrieves products from the collection with the ID <code>1234567890</code>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 21:37:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-collection_id-filter-added-to-products-query-filters</link>
  </item>
  <item>
    <title>New fields to represent product bundles in a grouped view</title>
    <description><![CDATA[ <div class=""><p>As of API <code>2025-01</code> version, we have introduced two new fields that allow you to accurately nest component products under the parent product in a grouped view. </p>
<ul>
<li><p>The new <code>components</code> field has been added to the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/AbandonedCheckoutLineItem" target="_blank" class="body-link">AbandonedCheckoutLineItem</a> object in the Admin GraphQL API. Use this field to define the component products within a product bundle, ensuring a grouped view in Abandoned Checkout Emails. </p>
</li>
<li><p>The new <code>group</code> field has been added to the <a href="https://shopify.dev/docs/api/customer/2025-01/objects/LineItem" target="_blank" class="body-link">LineItem</a> object in the Customer Account API. Use this field to indicate that line item products are a part of a product bundle, ensuring a grouped view in Orders Detail Pages.</p>
</li>
</ul>
<p>In addition, these fields can help you display product bundles in a grouped view in transactional emails, such as order confirmations and shipping updates. Learn how you can implement a grouped view by following <a href="https://shopify.dev/docs/storefronts/themes/product-merchandising/bundles-emails" target="_blank" class="body-link">this tutorial</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 21:01:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/support-bundles-grouped-view-fields-in-graphql-api</link>
  </item>
  <item>
    <title>Filter products by category or taxonomy metafield</title>
    <description><![CDATA[ <div class=""><p>Starting with Storefront API version 2025-01, you can now filter products within collections and search results using <code>CategoryFilter</code> and <code>TaxonomyMetafieldFilter</code>.</p>
<ul>
<li><strong><code>CategoryFilter</code></strong>: Filter products by a category ID.</li>
<li><strong><code>TaxonomyMetafieldFilter</code></strong>: Filter products based on a taxonomy metafield namespace, key, and value.</li>
</ul>
<p>Learn more about <a href="https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products" target="_blank" class="body-link">filtering products in collections</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 20:57:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/filter-products-by-category-or-taxonomy-metafield</link>
  </item>
  <item>
    <title>Minimum requirement is now optional on automatic discounts</title>
    <description><![CDATA[ <div class=""><p>Previously merchants were required to specify minimum purchase conditions on product, order, and free shipping automatic discounts. We're now making these conditions optional, so the  <code>minimumRequirement</code> field in our APIs is now able to return a <code>null</code> value.</p>
<p>As of version 2025-01, the <code>minimumRequirement</code> field for both <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/DiscountAutomaticBasic#field-minimumrequirement" target="_blank" class="body-link">DiscountAutomaticBasic</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/DiscountAutomaticFreeShipping#field-minimumrequirement" target="_blank" class="body-link">DiscountAutomaticFreeShipping</a> will become nullable.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/minimum-requirement-is-now-optional-on-automatic-discounts</link>
  </item>
  <item>
    <title>New customer input field for the OrderCreate mutation</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API 2025-01 version, we're deprecating the <code>customer_id</code> field in favor of the new <code>customer</code> field which you can use to either associate an existing customer or upsert a customer record.</p>
<p>This provides some added flexibility when creating an order by saving the caller an extra step in fetching the customer ID before initiating the order creation.</p>
<p>Learn more about <code>orderCreate</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/orderCreate" target="_blank" class="body-link">Shopify.dev</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/new-customer-input-field-for-the-ordercreate-mutation</link>
  </item>
  <item>
    <title>Introduce concatenatedOriginContract to subscriptionLine</title>
    <description><![CDATA[ <div class=""><p>As of 2025-01, we've introduced <code>concatenatedOriginContract</code> to <code>subscriptionLine</code> .</p>
<p>You can now query the origin contract of the lines if you have used the Subscription Billing Cycle APIs to combine multiple contracts. This can be accessed through <code>subscriptionBillingCycle.editedContract.lines.concatenatedOriginContract</code>.</p>
<p>Learn more about combining contract on <a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/combine-subscription-contracts" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 16:53:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/introduce-concatenatedorigincontract-to-subscriptionline</link>
  </item>
  <item>
    <title>Update to `percentage_adjustment` field on `SellingPlanPercentagePriceAdjustment`</title>
    <description><![CDATA[ <div class=""><p>In the Storefront API version 2025-01, there is an update to the <a href="https://shopify.dev/docs/api/storefront/2025-01/objects/SellingPlanPercentagePriceAdjustment#field-adjustmentpercentage" target="_blank" class="body-link">adjustmentPercentage</a> field on the <a href="https://shopify.dev/docs/api/storefront/2025-01/objects/SellingPlanPercentagePriceAdjustment" target="_blank" class="body-link"><code>SellingPlanPercentagePriceAdjustment</code></a> object. This field, which facilitates the percentage price adjustment for a selling plan's pricing policy, will transition from an <a href="https://shopify.dev/docs/api/storefront/2025-01/scalars/Int" target="_blank" class="body-link"><code>Int</code></a> data type to a <a href="https://shopify.dev/docs/api/storefront/2025-01/scalars/Float" target="_blank" class="body-link"><code>Float</code></a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/update-to-percentage_adjustment-field-on-sellingplanpercentagepriceadjustment</link>
  </item>
  <item>
    <title>Unused PriceListUserErrorCode values removed</title>
    <description><![CDATA[ <div class=""><p>Starting in API version 2025-01, <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/PriceListUserErrorCode" target="_blank" class="body-link">PriceListErrorCode</a> values that are currently not returned by the API will be hidden. These error codes include:</p>
<ul>
<li><code>CONTEXT_RULE_COUNTRIES_LIMIT</code></li>
<li><code>CONTEXT_RULE_COUNTRY_TAKEN</code></li>
<li><code>CONTEXT_RULE_LIMIT_REACHED</code></li>
<li><code>CURRENCY_COUNTRY_MISMATCH</code></li>
<li><code>COUNTRY_CURRENCY_MISMATCH</code></li>
<li><code>MARKET_CURRENCY_MISMATCH</code></li>
<li><code>CONTEXT_RULE_MARKET_NOT_FOUND</code></li>
<li><code>CONTEXT_RULE_MARKET_TAKEN</code></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/unused-pricelistusererrorcode-values-removed</link>
  </item>
  <item>
    <title>Deprecation of `storefrontCustomerAccessTokenCreate` Mutation</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2025-01</code>, the <code>storefrontCustomerAccessTokenCreate</code> mutation is deprecated. This mutation, which was used to exchange the Customer Access Token in the <code>Authorization</code> header for a Storefront Customer Access Token, is no longer necessary. The Storefront API now directly supports Access Tokens from the Customer Accounts API via the <code>@inContext</code> <a href="https://shopify.dev/docs/api/storefront/2025-01/input-objects/BuyerInput#field-customeraccesstoken" target="_blank" class="body-link">BuyerInput#customerAccessToken</a>, and can be used for cart creation and buyer updates.</p>
<p><strong>Migration Path:</strong></p>
<ol>
<li>Obtain an access token using the OAuth2 specification. Detailed steps are available <a href="https://shopify.dev/docs/api/customer#step-obtain-access-token" target="_blank" class="body-link">here</a>. These steps are identical to those for obtaining an access token for the Customer Accounts API.</li>
<li>Use this access token directly with the Storefront API, replacing the deprecated <code>storefrontCustomerAccessTokenCreate</code> mutation.</li>
</ol>
<p>This access token identifies your customer, enabling personalized features within the Storefront API.</p>
<p>For more information on the Customer Accounts API, visit <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Customer Account API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/deprecation-of-storefrontcustomeraccesstokencreate-mutation</link>
  </item>
  <item>
    <title>New delivery promise participants API</title>
    <description><![CDATA[ <div class=""><p>As of the 2025-01 Admin GraphQL API, you can now query for delivery promise participants, using <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/deliveryPromiseParticipants" target="_blank" class="body-link"><code>deliveryPromiseParticipants</code></a>.</p>
<p>You can make updates using the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/deliveryPromiseParticipantsUpdate" target="_blank" class="body-link"><code>deliveryPromiseParticipantsUpdate</code></a> mutation.</p>
<p>These APIs control the usage of delivery promises on the platform.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/new-delivery-promise-participants-api</link>
  </item>
  <item>
    <title>Combined Listings update mutation error improvements</title>
    <description><![CDATA[ <div class=""><p>Starting with the Admin API version 2025-01, we've introduced new error codes for the <code>combinedListingUpdate</code> mutation. These enhancements aim to provide clearer feedback when incorrect data is submitted.</p>
<ul>
<li>The <code>missing_option_values</code> error occurs when the <code>optionsAndValues</code> field is required but not provided in the request.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/combined-listings-update-mutation-error-improvements</link>
  </item>
  <item>
    <title>Update in orders webhook to view bundles and their components</title>
    <description><![CDATA[ <div class=""><p>Starting with the Admin API version 2025-01, we have added the <code>sales_line_item_group_id</code> field to the orders webhook. This field allows you to determine if a specific <code>line_item</code> is part of a bundle. When a <code>line_item</code> belongs to a bundle, it will have an associated <code>sales_line_item_group_id</code>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/update-in-orders-webhook-to-view-bundles-and-their-components</link>
  </item>
  <item>
    <title>Public apps must use new GraphQL Product APIs to be accepted in the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Starting January 6, 2025, all new apps submitted to the Shopify App Store must use the <a href="https://shopify.dev/changelog/new-graphql-product-apis-that-support-up-to-2000-variants-now-available-in-2024-04" target="_blank" class="body-link">new GraphQL Product APIs</a>. After this date, apps that query <a href="https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/api-updates#deprecated-rest-endpoints" target="_blank" class="body-link">deprecated REST API product resources</a> won’t be approved.</p>
<p>As of February 1, 2025, all public apps must migrate to the <a href="https://shopify.dev/changelog/new-graphql-product-apis-that-support-up-to-2000-variants-now-available-in-2024-04" target="_blank" class="body-link">new GraphQL Product APIs</a>. This includes apps already listed in the Shopify App Store. </p>
<p>Public apps are always required to use currently supported APIs. To learn more about the specific changes to Shopify’s product APIs, and how to update your app, check out our <a href="https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model" target="_blank" class="body-link">migration guide</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:01:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/public-apps-must-use-new-graphql-product-apis-to-be-accepted-in-the-shopify-app-store</link>
  </item>
  <item>
    <title>Apply multiple holds to a single fulfillment order</title>
    <description><![CDATA[ <div class=""><p>With the introduction of support for placing more than one hold per fulfillment order, you can quickly and easily add another hold each time an issue arises. With all of the reasons captured separately, you can release individual holds confidently, safe in the knowledge that all other reasons are captured in their own holds.</p>
<h2>Migrating to the <code>2025-01</code> GraphQL API version</h2>
<h3>Fetch all holds for a fulfillment order</h3>
<p>As of the <code>2025-01</code> API version, the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/FulfillmentOrder#field-fulfillmentholds" target="_blank" class="body-link">fulfillmentOrder.fulfillmentHolds field</a> now returns all active holds applied to a fulfillment order.</p>
<h3>Place multiple holds per fulfillment order</h3>
<p>As of the <code>2025-01</code> API version, the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/fulfillmentOrderHold" target="_blank" class="body-link">fulfillmentOrderHold mutation</a> can now be successfully executed on fulfillment orders that are already on hold.</p>
<p>To place multiple holds on a fulfillment order, apps need to supply the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/FulfillmentHold#field-handle" target="_blank" class="body-link">handle field</a>. This field is a unique identifier for the holds placed by an app and prevents apps from inadvertently creating duplicate holds. The handle must be unique among the holds that the app has placed on a single fulfillment order. If an app attempts to place two holds with the same handle, the second hold will be rejected with <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/FulfillmentOrderHoldUserErrorCode#value-duplicatefulfillmentholdhandle" target="_blank" class="body-link">a duplicate hold user error</a>. For backward compatibility, the handle field is optional and will default to an empty string. However, a single app will not be able to place multiple holds on a fulfillment order without supplying a unique handle for each, as, by default, each hold will get the same default handle.</p>
<p>Each app can place up to 10 active holds per fulfillment order. After this, the mutation will return <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/FulfillmentOrderHoldUserErrorCode#value-fulfillmentorderholdlimitreached" target="_blank" class="body-link">a user error indicating that the limit has been reached</a>. The app would need to release one of its existing holds before being able to apply a new one.</p>
<p>When placing a hold on a fulfillment order that is already held, the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/input-objects/FulfillmentOrderHoldInput#field-fulfillmentorderlineitems" target="_blank" class="body-link">fulfillmentHold.fulfillmentOrderLineItems input field</a> should not be supplied. If this field is supplied, <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/FulfillmentOrderHoldUserErrorCode#value-fulfillmentordernotsplittable" target="_blank" class="body-link">a user error will be returned indicating that the fulfillment order is not able to be split</a>.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/fulfillmentorder#field-supportedactions" target="_blank" class="body-link">fulfillmentOrder.supportedActions</a> field will now return the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/FulfillmentOrderAction#value-hold" target="_blank" class="body-link">HOLD</a> action when a fulfillment order is on hold and an additional hold can be added.</p>
<h3>Supply hold id's when releasing holds <em>(highly recommended)</em></h3>
<p>It is highly recommended that all apps that release holds specify the hold IDs when releasing. <a href="https://shopify.dev/changelog/fulfillment-holds-now-able-to-be-released-by-id" target="_blank" class="body-link">Support for releasing holds by id was introduced in the 2024-10 API version</a>. Releasing all holds on a fulfillment order without supplying the hold IDs will result in the fulfillment order being released prematurely and items being incorrectly fulfilled.</p>
<h3>Listen for individual holds being placed and released webhooks</h3>
<p>As of the <code>2025-01</code> API version, two new webhook topics are available for the fulfillment hold resource: <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_holds/added" target="_blank" class="body-link">fulfillment_holds/added</a> and <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_holds/released" target="_blank" class="body-link">fulfillment_holds/released</a>.</p>
<p>The new webhooks will be emitted each time a hold is placed and released.</p>
<h3>Continue to listen for fulfillment orders being held and released using existing webhooks</h3>
<p>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">fulfillment_orders/placed_on_hold</a> and <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/hold_released" target="_blank" class="body-link">fulfillment_orders/hold_released</a> topics will continue to be emitted in the same way as before.</p>
<ul>
<li>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">fulfillment_orders/placed_on_hold</a> webhook is emitted when a fulfillment order transitions to the <code>ON_HOLD</code> status.</li>
<li>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/hold_released" target="_blank" class="body-link">fulfillment_orders/hold_released</a> webhook is emitted when a fulfillment order is released from all holds and is no longer on hold.</li>
</ul>
<p>As of the <code>2025-01</code> API version, now that a fulfillment order can have multiple holds, the <code>fulfillment_order.fulfillment_holds</code> field in the <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">fulfillment_orders/placed_on_hold</a> webhook payload can now return multiple holds.</p>
<h2>Using GraphQL API versions prior to 2025-01</h2>
<h3>Continue to get the first hold placed on a fulfillment order</h3>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder#field-fulfillmentholds" target="_blank" class="body-link">fulfillment holds field on a fulfillment order</a> will continue to return an array of a single hold. If multiple holds exist on the fulfillment order, the oldest active hold will be returned. Once this hold is released, the next earliest will be returned until no holds remain.</p>
<h3>Continue to place a single hold per fulfillment order</h3>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderHold" target="_blank" class="body-link">fulfillmentOrderHold mutation</a> will continue to only support placing a single hold per fulfillment order.</p>
<p>If an app attempts to place a hold on a fulfillment order that is already being held, the same error will be returned as was previously returned. It will be a user error with a message saying &quot;<code>Cannot apply a fulfillment hold on a fulfillment order in an uninterruptible state.</code>&quot;.</p>
<h3>Continue to release all holds from a fulfillment order <em>(discouraged)</em></h3>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/FulfillmentOrderReleaseHold" target="_blank" class="body-link">fulfillmentOrderReleaseHold mutation</a> will continue to release the fulfillment order from being held by releasing it from all holds at once if no hold IDs are supplied.</p>
<p>It is <ins>highly recommended</ins> that all apps which release holds migrate to using the <code>2024-10</code> API version or newer, so that they can selectively release holds by ID by specifying the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/FulfillmentOrderReleaseHold#argument-holdids" target="_blank" class="body-link">holdIds</a> mutation argument. Releasing all holds on a fulfillment order without supplying the hold IDs will result in the fulfillment order being released prematurely and items being incorrectly fulfilled.</p>
<h3>Continue to listen for fulfillment orders being held and released using existing webhooks</h3>
<p>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">fulfillment_orders/placed_on_hold</a> and <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/hold_released" target="_blank" class="body-link">fulfillment_orders/hold_released</a> topics will continue to be emitted in the same way as before.</p>
<ul>
<li>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">fulfillment_orders/placed_on_hold</a> webhook is emitted when a fulfillment order transitions to the <code>ON_HOLD</code> status.</li>
<li>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/hold_released" target="_blank" class="body-link">fulfillment_orders/hold_released</a> webhook is emitted when a fulfillment order is released from all holds and is no longer on hold.</li>
</ul>
<p>The <code>fulfillment_order[&quot;fulfillment_holds&quot;]</code> field in the webhooks payload will continue to return an array of a single hold.
If multiple holds exist on the fulfillment order, the oldest active hold will be returned.</p>
<h2>Using the REST API to interact with holds <em>(discouraged)</em></h2>
<p>The <ins>REST API will not support multiple holds per fulfillment order</ins>. Apps should migrate to using the GraphQL API if they wish to use this feature.</p>
<h3>Continue to get the first hold placed on a fulfillment order</h3>
<p>The <a href="https://shopify.dev/docs/api/admin-rest/2025-01/resources/fulfillmentorder" target="_blank" class="body-link">fulfillment holds attribute on the fulfilment order resource</a> will continue showing only the one oldest active hold under scenarios of multiple holds. Once this hold is released, the next earliest will be returned until no holds remain.</p>
<h3>Continue to place a single hold per fulfillment order</h3>
<p>The <a href="https://shopify.dev/docs/api/admin-rest/2025-01/resources/fulfillmentorder#post-fulfillment-orders-fulfillment-order-id-hold" target="_blank" class="body-link">hold endpoint</a> will continue to only support placing a single hold per fulfillment order.</p>
<p>If an app attempts to place a hold on a fulfillment order that is already being held, the same error will be returned as was previously returned.</p>
<h3>Continue to release all holds from a fulfillment order <em>(discouraged)</em></h3>
<p>The <a href="https://shopify.dev/docs/api/admin-rest/2025-01/resources/fulfillmentorder#post-fulfillment-orders-fulfillment-order-id-release-hold" target="_blank" class="body-link">release hold endpoint</a> will continue to release the fulfillment order from being held by releasing it from all holds at once.</p>
<p>It is <ins>highly recommended</ins> that all apps which release holds migrate to using the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/FulfillmentOrderReleaseHold" target="_blank" class="body-link">fulfillmentOrderReleaseHold mutation</a>, so that they can selectively release holds by ID. Releasing all holds on a fulfillment order without supplying the hold IDs will result in the fulfillment order being released prematurely and items being incorrectly fulfilled.</p>
<h3>Continue to listen for fulfillment orders being held and released using existing webhooks</h3>
<p>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">fulfillment_orders/placed_on_hold</a> and <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/hold_released" target="_blank" class="body-link">fulfillment_orders/hold_released</a> topics will continue to be emitted in the same way as before.</p>
<ul>
<li>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">fulfillment_orders/placed_on_hold</a> webhook is emitted when a fulfillment order transitions to the <code>ON_HOLD</code> status.</li>
<li>The <a href="https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics-fulfillment_orders/hold_released" target="_blank" class="body-link">fulfillment_orders/hold_released</a> webhook is emitted when a fulfillment order is released from all holds and is no longer on hold.</li>
</ul>
<p>The <code>fulfillment_order[&quot;fulfillment_holds&quot;]</code> field in the webhooks payload will continue to return an array of a single hold.
If multiple holds exist on the fulfillment order, the oldest active hold will be returned.</p>
<h2>Learn more</h2>
<p>Learn more about <a href="https://help.shopify.com/en/manual/fulfillment/fulfilling-orders/holding-fulfillments" target="_blank" class="body-link">putting an order's fulfillment on hold</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Webhook</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/apply-multiple-holds-to-a-single-fulfillment-order</link>
  </item>
  <item>
    <title>New customer's webhook and changes to existing customer's webhooks payload</title>
    <description><![CDATA[ <div class=""><p>As of 2025-01, we're changing how a customer is represented in webhooks:</p>
<ul>
<li>We added the <code>customers/purchasing_summary</code> webhook.</li>
<li>We made some changes affecting webhooks containing a customer payload:<ul>
<li>We removed <code>tags</code> in favour of the <code>customer.tags_added</code> and <code>customer.tags_removed</code> webhooks.</li>
<li>We removed <code>email_marketing_consent</code> in favour of the <code>customers/email_marketing_consent_update</code>.</li>
<li>We removed <code>sms_marketing_consent</code> in favour of the <code>customers/marketing_consent_update</code>.</li>
<li>We removed the following fields: <code>last_order_id</code>, <code>last_order_name</code>, <code>total_spent</code>, and <code>orders_count</code>. They are now available in the new <code>customers/purchasing_summary</code> webhook except for <code>last_order_name</code> being deprecated.</li>
</ul>
</li>
</ul>
<p>The webhooks containing a customer payload are the following:</p>
<ul>
<li><code>checkouts/create</code></li>
<li><code>checkouts/update</code></li>
<li><code>customers/create</code></li>
<li><code>customers/delete</code></li>
<li><code>customers/disable</code></li>
<li><code>customers/enable</code></li>
<li><code>customers/update</code></li>
<li><code>draft_orders/create</code></li>
<li><code>draft_orders/update</code></li>
<li><code>orders/cancelled</code></li>
<li><code>orders/create</code></li>
<li><code>orders/fulfilled</code></li>
<li><code>orders/paid</code></li>
<li><code>orders/partially_fulfilled</code></li>
<li><code>orders/updated</code></li>
</ul>
<p>Learn more about webhook topics on <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/enums/WebhookSubscriptionTopic" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Webhook</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/new-customer-s-webhook-and-changes-to-existing-customer-s-webhooks-payload</link>
  </item>
  <item>
    <title>Admin access input is now optional when setting metafield definition access</title>
    <description><![CDATA[ <div class=""><p>When creating or updating a metafield definition's <code>access</code> the <code>admin</code> field is now optional. When <code>admin</code> is not explicitly set, it will default the same way it is when the entire <code>access</code> field is omitted.</p>
<p>Learn more about metafield access controls on <a href="https://shopify.dev/docs/apps/build/custom-data/metafields/definitions/use-access-controls-metafields" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/admin-access-input-is-now-optional-when-setting-metafield-definition-access</link>
  </item>
  <item>
    <title>Introduce a `tax_exempt` field associated to a `CompanyLocation` </title>
    <description><![CDATA[ <div class=""><p>The <code>CompanyLocationTaxSettings</code> now also contains the <code>tax_exemptions</code> and <code>tax_registration_id</code>. As a result, we have deprecated these fields from the root of <code>CompanyLocation.</code></p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/introduce-a-tax_exempt-field-associated-to-a-companylocation</link>
  </item>
  <item>
    <title>New validation against duplicate handles in productCreate, productUpdate, and productSet mutation inputs</title>
    <description><![CDATA[ <div class=""><p>As of the <code>2025-01</code> version of the Admin GraphQL API, the <code>handle</code> field in <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductInput" target="_blank" class="body-link">productInput</a> for <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate" target="_blank" class="body-link">productCreate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate" target="_blank" class="body-link">productUpdate</a>, as well as in <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductSetInput" target="_blank" class="body-link">productSetInput</a> for <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet" target="_blank" class="body-link">productSet</a> will be validated for uniqueness. This means that you will no longer be able to input a duplicate handle. This change does not affect existing behaviour when <code>handle</code> is not provided as input.</p>
<p>This enhancement ensures that there are no collisions when creating or updating product handles.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/new-validation-against-duplicate-handles-in-productcreate-productupdate-and-productset-mutation-inputs</link>
  </item>
  <item>
    <title>Add new requiresShippingMethod field to fulfillmentServiceCreate and fulfillmentServiceUpdate mutations</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2025-04, we have introduced a new field <code>requiresShippingMethod</code> on the <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/fulfillmentServiceCreate" target="_blank" class="body-link">fulfillmentServiceCreate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/fulfillmentServiceUpdate" target="_blank" class="body-link">fulfillmentServiceUpdate</a> mutations to bring these mutations in line with their REST API equivalents. </p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/add-new-requiresshippingmethod-field-to-fulfillmentservicecreate-and-fulfillmentserviceupdate-mutations</link>
  </item>
  <item>
    <title>Enhanced variant query limits for single product queries</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2025-01</strong> version of the GraphQL Admin API, you can now use a limit of up to 2000 variants when running a query on a single product, such as <code>product</code> or <code>productByHandle</code>. This enhanced limit does not apply if you make multiple queries in one request, or are accessing the variants any other way except through the <code>variants</code> connection.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Product" target="_blank" class="body-link">product</a> object on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/enhanced-variant-query-limits-for-single-product-queries</link>
  </item>
  <item>
    <title>Change to FulfillmentOrderSortKeys</title>
    <description><![CDATA[ <div class=""><p>Starting in API version <strong>2025-01</strong>, RELEVANCE will be removed as a valid value from <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderSortKeys" target="_blank" class="body-link">FulfillmentOrderSortKeys</a> in the GraphQL Admin API. </p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/change-to-fulfillmentordersortkeys</link>
  </item>
  <item>
    <title>Link any product metafields of type list.metaobject to product options</title>
    <description><![CDATA[ <div class=""><p>Up until now, merchants had the ability to link their options to category metafields, allowing them to use these option values across similar products. This release expands that functionality to include any metaobject reference list. </p>
<p>More details about this update can be found at <a href="https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/metafield-linked" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/link-any-product-metafields-of-type-list-metaobject-to-product-options</link>
  </item>
  <item>
    <title>Support `Delayed` Fulfillment Status in GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2025-01, we have officially introduced a new <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/enums/FulfillmentEventStatus" target="_blank" class="body-link">fulfillment event status</a> called <code>delayed</code>. </p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/support-delayed-fulfillment-status-in-graphql-api</link>
  </item>
  <item>
    <title>ReverseFulfillmentOrder.order field is nullable as of 2025-01</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->



<p>As of <strong>2025-01</strong>,  <code>ReverseFulfillmentOrder.order</code> field is nullable.  An <code>Order</code> can be nullable if the client does not have access to the <a href="https://shopify.dev/docs/api/usage/access-scopes#orders-permissions" target="_blank" class="body-link"><code>read_all_orders</code></a> scope and the order is older than 60 days or no longer exists. For versions that predate <strong>2025-01</strong>, the order field will return a graphql error when the order is not available.</p>
<p>Learn more about <code>ReverseFulfillmentOrder</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/ReverseFulfillmentOrder" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/reversefulfillmentorder-order-field-is-nullable-as-of-2025-01</link>
  </item>
  <item>
    <title>Addition of 'paymentDetails' field in `verificationSessionResolve` mutation.</title>
    <description><![CDATA[ <div class=""><p>As of Payments Apps API version <strong>2025-01</strong> release, the <code>paymentDetails</code> field 
will be addded to <code>verificationSessionResolve</code> mutation. Payment providers can now send payment details like Card Information etc. as an argument.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Payments Apps API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/addition-of-paymentdetails-field-in-verificationsessionresolve-mutation</link>
  </item>
  <item>
    <title>BXGY discount support for subscriptions</title>
    <description><![CDATA[ <div class=""><p>As of 2025-01, Buy X Get Y (BXGY) discounts support subscriptions, only in cases where X is a subscription and Y is a one-time purchase item at a discounted price or a free item.</p>
<p>You can use the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/discountAutomaticBxgyCreate" target="_blank" class="body-link">discountAutomaticBxgyCreate</a> or <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/discountCodeBxgyCreate" target="_blank" class="body-link">discountCodeBxgyCreate</a> mutations to create a new BXGY discount, or the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/discountAutomaticBxgyUpdate" target="_blank" class="body-link">discountAutomaticBxgyUpdate</a> or <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/discountCodeBxgyUpdate" target="_blank" class="body-link">discountCodeBxgyUpdate</a> mutations to update an existing BXGY discount. Use the isOneTimePurchase and isSubscription fields on <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/input-objects/DiscountCustomerBuysInput" target="_blank" class="body-link">DiscountCustomerBuysInput</a> to specify which items can be discounted.</p>
<p>Learn more <a href="https://shopify.dev/docs/apps/build/discounts#build-with-the-graphql-admin-api" target="_blank" class="body-link">building discounts with GraphQL Admin API</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/bxgy-discount-support-for-subscriptions</link>
  </item>
  <item>
    <title>Introduce 3DS support for verifications</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2025-01</code>, payments extensions that support vaulting will now be able to process 3DS challenges for verifications. That is possible through : </p>
<ul>
<li>A new mutation, <code>VerificationSessionRedirect</code>  </li>
<li>New arguments to the existing <code>VerificationSessionResolve</code> and <code>VerificationSessionReject</code> mutations.</li>
</ul>
<p>If 3DS is required for a verification, you must use the <code>VerificationSessionRedirect</code> mutation. When resolving or rejecting a verification that required 3DS, pass the authentication argument to either the <code>VerificationSessionResolve</code> or <code>VerificationSessionReject</code> mutation.</p>
<p>We're also deprecating the following <code>VerificationSessionStateReason</code>:
<code>REQUIRED_3DS_CHALLENGE</code> . Use the new <code>VerificationSessionRedirect</code> mutation instead.</p>
<p>For payments extensions that support vaulting, we strongly recommend you to update it to the <code>2025-01</code> version as soon as possible.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Payments Apps API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/introduce-3ds-support-for-verifications</link>
  </item>
  <item>
    <title>Fulfillment Hold Access Update For Node Queries</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API version 2025-01, apps using the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/FulfillmentHold#interface-node" target="_blank" class="body-link">node or nodes GraphQL queries</a> to fetch fulfillment holds will only be able to fetch those that belong to a fulfillment order that they have access to.</p>
<p>If your app has the <code>read_merchant_managed_fulfillment_orders</code> scope, you will be able to access holds on fulfillment orders assigned to a merchant managed location.</p>
<p>If your app has the <code>read_assigned_fulfillment_orders</code> scope, you will be able to access holds on fulfillment orders assigned to locations belonging to your app.</p>
<p>If your app has the <code>read_third_party_fulfillment_orders</code> scope, you will be able to access holds on fulfillment orders assigned to a third party location.</p>
<p>If your app has the <code>read_marketplace_fulfillment_orders</code> scope, you will be able to access holds on fulfillment orders which belong to one of your marketplace's orders.</p>
<h3>How will this change effect my app?</h3>
<p>This change will only effect apps which fetch fulfillment holds using a <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/FulfillmentHold#interface-node" target="_blank" class="body-link">node or nodes GraphQL query</a> using the Admin API.</p>
<p>If your app does not currently have sufficient access scopes as defined above then you will need to request the correct access scopes before migrating to the 2025-01 API version.</p>
<p>When using a <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/FulfillmentHold#interface-node" target="_blank" class="body-link">node or nodes query</a> to fetch a holds, if your app does not have sufficient access to access the hold then <code>null</code> will be returned for any holds that you do not have access to.</p>
<p>See the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/FulfillmentHold" target="_blank" class="body-link">fulfillment hold resource</a> for more information on what scopes are required.</p>
<p>See the API access scopes section of <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder" target="_blank" class="body-link">the FulfillmentOrder resource</a> for more information about these scopes.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/fulfillment-hold-access-update-for-node-queries</link>
  </item>
  <item>
    <title>Cart Delivery Address Management</title>
    <description><![CDATA[ <div class=""><p>We've refined and improved how delivery addresses are handled by making <code>deliveryAddresses</code> a required input field within a new delivery object. </p>
<p>As of API version 2025-01, the <a href="https://shopify.dev/docs/api/storefront/2025-01/objects/CartBuyerIdentity#field-deliveryaddresspreferences" target="_blank" class="body-link"><code>deliveryAddressPreferences</code></a> field on the <code>CartBuyerIdentity</code> object is deprecated. Use the new <a href="https://shopify.dev/docs/api/storefront/2025-01/objects/CartDelivery#field-addresses" target="_blank" class="body-link"><code>addresses</code></a> field on the <code>CartDelivery</code> object instead.</p>
<p>We've added the following new mutations for managing delivery addresses on carts:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/storefront/2025-01/mutations/cartDeliveryAddressesAdd" target="_blank" class="body-link"><code>cartDeliveryAddressesAdd</code></a></li>
<li><a href="https://shopify.dev/docs/api/storefront/2025-01/mutations/cartDeliveryAddressesUpdate" target="_blank" class="body-link"><code>cartDeliveryAddressesUpdate</code></a></li>
<li><a href="https://shopify.dev/docs/api/storefront/2025-01/mutations/cartDeliveryAddressesRemove" target="_blank" class="body-link"><code>cartDeliveryAddressesRemove</code></a></li>
</ul>
<p>For cart delivery addresses, you can set an address as <code>selected</code> to indicate that delivery rates should be calculated. This improves performance by avoiding unnecessary rate generation. It also ensures that addresses are synchronized between Checkout and Cart, maintaining a single source of truth for any updates or changes.</p>
<p>We recommend reviewing your current integration and preparing to adopt the new field and mutations.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Storefront GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/cart-delivery-address-management</link>
  </item>
  <item>
    <title>Tax and Duties are deprecated in Storefront Cart API</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2025-01</code>, we're deprecating the <a href="https://shopify.dev/docs/api/storefront/2024-01/objects/Cart#field-cost" target="_blank" class="body-link">tax and duty</a> fields in Storefront API Cart. Tax and Duties are calculated at Checkout where they can be finalized with the complete context of the buyer's information, ensuring greater accuracy. </p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2025 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Storefront GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api</link>
  </item>
  <item>
    <title>Adding new revocation reasons for payment methods</title>
    <description><![CDATA[ <div class=""><p>We've added the <code>PAYMENTMETHODVERIFICATION_FAILED</code> value to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/CustomerPaymentMethodRevocationReason#value-paymentmethodverificationfailed" target="_blank" class="body-link"><code>CustomerPaymentMethodRevocationReason</code></a> enum.</p>
<p><code>CustomerPaymentMethodRevocationReason</code> specifies the reasons for revoking customer payment methods. The new value allows you to clearly indicate when a payment method is revoked due to verification failure, enhancing your ability to manage and track payment methods effectively.</p>
<p>Existing Partner integrations aren't affected.</p>
</div> ]]></description>
    <pubDate>Tue, 31 Dec 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/adding-new-revocation-reasons-for-payment-methods</link>
  </item>
  <item>
    <title>Deprecate customer_payment_method_remote_credit_card_create</title>
    <description><![CDATA[ <div class=""><p>The mutation for <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/customerPaymentMethodRemoteCreditCardCreate" target="_blank" class="body-link">CustomerPaymentMethodRemoteCreditCardCreate</a> has been deprecated and is now hidden. This mutation, which was used to create remote credit card payment methods for customers, is no longer supported as of API version 2025-01. Developers should update their integrations to use alternative methods for handling customer payment methods.</p>
</div> ]]></description>
    <pubDate>Tue, 31 Dec 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Payments Apps API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/deprecate-customerpaymentmethodremotecreditcardcreate</link>
  </item>
  <item>
    <title>Updates effective December 30 to our Partner Program Agreement and API License and Terms of Use</title>
    <description><![CDATA[ <div class=""><p>EFFECTIVE DECEMBER 30, 2024 <strong>ACTION REQUIRED</strong></p>
<p>We've made changes to our <a href="https://www.shopify.ca/partners/terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Partner Program Agreement</a> and <a href="https://www.shopify.com/legal/api-terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">API License and Terms of Use</a>. These updates include terms that are intended to support the growth of Shopify Partners and Merchants, while maintaining the security and integrity of products and services offered on our platform. </p>
<p>These changes come into effect as of today, December 30, 2024. Updates to Theme Revenue Share are effective January 1, 2025.</p>
<p>Continued use of Shopify services on or after Monday, December 30, 2024 confirms that you’ve read, understood, and accepted these new terms. For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Dec 2024 20:30:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-effective-december-30-to-our-partner-program-agreement-and-api-license-and-terms-of-use</link>
  </item>
  <item>
    <title>Updated requirement: Draft apps must not make calls to APIs that will be deprecated in 90 days or less</title>
    <description><![CDATA[ <div class=""><p>Starting January 6, 2025, draft apps that make calls to APIs that will be deprecated in 90 days or less will not be able to submit their apps for review. This is an updated requirement. Be sure to check your API Health report in your Partner Dashboard to ensure your app is querying supported APIs.</p>
<p>Public apps are always required to use currently supported APIs. To learn more about the specific changes to Shopify’s product APIs, and how to update your app, check out our <a href="https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model" target="_blank" class="body-link">migration guide</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Dec 2024 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-requirement-draft-apps-must-not-make-calls-to-apis-that-will-be-deprecated-in-90-days-or-less</link>
  </item>
  <item>
    <title>Deprecated `SubscriptionMailingAddress` in favor of `MailingAddress`</title>
    <description><![CDATA[ <div class=""><p>As of the 2025-07 version of the GraphQL Admin API, we've deprecated the <a href="/docs/api/admin-graphql/2025-01/objects/SubscriptionMailingAddress" target="_blank" class="body-link"><code>SubscriptionMailingAddress</code></a> object. Use the <a href="/docs/api/admin-graphql/2025-01/objects/MailingAddress" target="_blank" class="body-link"><code>MailingAddress</code></a> object instead.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Dec 2024 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-07</category>
    <link>https://shopify.dev/changelog/deprecate-subscriptionmailingaddress-in-favour-of-mailingaddress</link>
  </item>
  <item>
    <title>Meta Pixel events for Theme Listing Page</title>
    <description><![CDATA[ <div class=""><p>Theme listing pages now support <a href="https://developers.facebook.com/docs/meta-pixel/reference/" target="_blank" class="body-link">Meta Pixel events</a>, which are tracking actions like <code>AddToCart</code> and <code>ViewContent</code>. These events help in monitoring user interactions on your site.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Dec 2024 17:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/meta-pixel-events-for-theme-listing-page</link>
  </item>
  <item>
    <title>Meta Pixel events for App Listing Page</title>
    <description><![CDATA[ <div class=""><p>App listing pages now support <a href="https://developers.facebook.com/docs/meta-pixel/reference/" target="_blank" class="body-link">Meta Pixel events</a>, which are tracking actions like <code>AddToCart</code> and <code>ViewContent</code>. These events help in monitoring user interactions on your site.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Dec 2024 17:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/meta-pixel-events-for-app-listing-page</link>
  </item>
  <item>
    <title>Removal of deprecated shop fields</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API <code>2025-01</code>, some previously deprecated fields have been removed which have replacements:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#field-collectionbyhandle" target="_blank" class="body-link"><code>Shop.collectionByHandle</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/collectionByHandle" target="_blank" class="body-link"><code>QueryRoot.collectionByHandle</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#connection-collectionsavedsearches" target="_blank" class="body-link"><code>Shop.collectionSavedSearches</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/collectionSavedSearches" target="_blank" class="body-link"><code>QueryRoot.collectionSavedSearches</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#connection-customersavedsearches" target="_blank" class="body-link"><code>Shop.customerSavedSearches</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/customerSavedSearches" target="_blank" class="body-link"><code>QueryRoot.customerSavedSearches</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#connection-draftordersavedsearches" target="_blank" class="body-link"><code>Shop.draftOrderSavedSearches</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/draftOrderSavedSearches" target="_blank" class="body-link"><code>QueryRoot.draftOrderSavedSearches</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#connection-marketingevents" target="_blank" class="body-link"><code>Shop.marketingEvents</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/marketingEvents" target="_blank" class="body-link"><code>QueryRoot.marketingEvents</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#connection-ordersavedsearches" target="_blank" class="body-link"><code>Shop.orderSavedSearches</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/orderSavedSearches" target="_blank" class="body-link"><code>QueryRoot.orderSavedSearches</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#field-productbyhandle" target="_blank" class="body-link"><code>Shop.productByHandle</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/productByHandle" target="_blank" class="body-link"><code>QueryRoot.productByHandle</code></a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop#connection-productsavedsearches" target="_blank" class="body-link"><code>Shop.productSavedSearches</code></a> → <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/productSavedSearches" target="_blank" class="body-link"><code>QueryRoot.productSavedSearches</code></a></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 18 Dec 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>Breaking API Change</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/removal-of-unused-deprecated-fields</link>
  </item>
  <item>
    <title>Improved `productTags`, `productVendors`, `productTypes`</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API <code>2025-01</code>, <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/productTags" target="_blank" class="body-link"><code>productTags</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/productTypes" target="_blank" class="body-link"><code>productTypes</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/queries/productVendors" target="_blank" class="body-link"><code>productVendors</code></a> are available on <code>QueryRoot</code>. These are paginated lists of tags/types/vendors that have been added to products. Additionally, these can return more than <code>250</code> results at once.</p>
<p>These fields were previously on the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Shop" target="_blank" class="body-link"><code>Shop</code></a> type, but did not support pagination and were capped at <code>250</code> results.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Dec 2024 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/improved-producttags-productvendors-producttypes</link>
  </item>
  <item>
    <title>Print API will be available for POS Extensions</title>
    <description><![CDATA[ <div class=""><p>As of January 20, 2025, we will release the <a href="https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/print-api" target="_blank" class="body-link">Print API</a> for Point of Sale UI Extensions. </p>
<p>The Print API enables document printing functionality in your Point of Sale (POS) extension. Use this API to trigger the native print dialog so that retail merchants can generate and preview documents before printing.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Dec 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>POS Extensions</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/print-api-will-be-available-for-pos-extensions</link>
  </item>
  <item>
    <title>Session tokens and app listings automatically checked before submitting for app review</title>
    <description><![CDATA[ <div class=""><p>Starting January 6, 2025, we are introducing additional preliminary steps in the app review process. These steps will provide immediate compliance feedback on draft apps before they are submitted for review:</p>
<p><strong>Session tokens for embedded apps:</strong> To be eligible for submission, embedded apps must use session tokens for user authentication. <a href="https://shopify.dev/docs/apps/build/authentication-authorization/session-tokens/set-up-session-tokens" target="_blank" class="body-link">Learn how to set up session tokens</a>.</p>
<p><strong>App listing reviews:</strong> We are implementing AI-enabled reviews for certain requirements in English app listings and screenshots. The AI will assess the following guidelines, while all other <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#a-general-screenshot-guidelines" target="_blank" class="body-link">requirements</a> will be manually reviewed:</p>
<ul>
<li>Do not misuse the App card subtitle.</li>
<li>Do not include reviews or testimonials.</li>
<li>Do not use pricing information outside designated areas.</li>
<li>Do not display statistics or data.</li>
<li>Do not include links or URLs.</li>
<li>Avoid using a generic app name.</li>
<li>Some screenshot requirements: remove reviews and testimonials, remove statistics and data.</li>
</ul>
<p>While flagged issues with app listing requirements will not block submission, addressing them can help prevent delays.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Dec 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/session-tokens-and-app-listings-automatically-checked-before-submitting-for-app-review</link>
  </item>
  <item>
    <title>Merchants on paid trial plans no longer able to leave reviews on Shopify's App Store</title>
    <description><![CDATA[ <div class=""><p>As of December 11, 2024, merchants on any type of trial plan (including paid trials) will not be eligible to leave a review on Shopify's App Store.</p>
<p>Learn more about <a href="https://help.shopify.com/en/partners/faq/reviews" target="_blank" class="body-link">Shopify's policy on reviews</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Dec 2024 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/merchant-eligibility-to-leave-reviews-on-shopifys-app-store</link>
  </item>
  <item>
    <title>New `LocalizationExtensionKeys` value for Mexico</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2025-01</code> of the Admin GraphQL API, we're adding a new LocalizationExtensionsKey value to support the collection shipping credentials for cross-border shipments into Mexico: <code>SHIPPING_CREDENTIAL_MX</code>.</p>
<p>Learn more about <code>LocalizationExtensionKeys</code> on <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/LocalizationExtensionKey" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Dec 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/new-localizationextensionkeys-value-for-mexico</link>
  </item>
  <item>
    <title>New inventoryPolicy argument for billing mutations </title>
    <description><![CDATA[ <div class=""><p>As of 2025-01, we’ve introduced an optional ‘inventoryPolicy’ argument for mutations that create billing attempts. This feature allows developers to override a merchant's inventory settings during the billing process. Regardless of whether a merchant's settings permit or restrict overselling, you can now specify your preferred inventory policy when initiating billing attempts. This flexibility ensures that your billing processes align with your specific inventory management needs.</p>
<p>The ‘inventoryPolicy’ argument can be used with the following billing attempt mutations:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/subscriptionBillingAttemptCreate" target="_blank" class="body-link">subscriptionBillingAttemptCreate</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/subscriptionBillingCycleCharge" target="_blank" class="body-link">subscriptionBillingCycleCharge</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/subscriptionBillingCycleBulkCharge" target="_blank" class="body-link">subscriptionBillingCycleBulkCharge</a>.</li>
</ul>
<p>For more detailed information on how to implement the inventoryPolicy argument, visit the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/SubscriptionBillingAttemptInventoryPolicy" target="_blank" class="body-link">Shopify.dev documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Dec 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/inventorypolicy-argument-now-available-on-billing-attempts</link>
  </item>
  <item>
    <title>New revocation reasons for payment methods for 2025-01</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2025-01, we've added new values to the <code>CustomerPaymentMethodRevocationReason</code> enum to provide more granular information about payment method revocations. This enhancement helps apps better understand and handle scenarios where a customer's payment method needs to be revoked.</p>
<p>No action is required for existing implementations, as this is a non-breaking change that adds new enum values.</p>
<p>Learn more about payment method revocation on <a href="https://shopify.dev/api/admin-graphql/current/enums/CustomerPaymentMethodRevocationReason" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Dec 2024 14:36:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/new-revocation-reasons-for-payment-methods-for-2025-01</link>
  </item>
  <item>
    <title>Search discountNodes by exact discount code in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of API <code>2025-01</code>, you can use discountsNodes() to search for exact discount codes with the <code>code</code> prefix in the query argument. </p>
<p>This update allows developers to search for exact first-party and third-party discount codes through the GraphQL Admin API, offering more flexibility and precision in finding the right discounts for merchants. </p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/discountNodes" target="_blank" class="body-link">discountNodes here</a>. </p>
</div> ]]></description>
    <pubDate>Mon, 16 Dec 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/search-discountnodes-by-exact-discount-code-in-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Changes to ScriptTag displayScope field on Admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version 2025-01, the only valid value for the <code>displayScope</code> field on the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/ScriptTagInput" target="_blank" class="body-link"><code>ScriptTagInput</code> object</a> is <code>ONLINE_STORE</code>.</p>
<p>The <code>displayScope</code> field remains optional when creating and updating Script tags. When it is omitted from the <code>scriptTagCreate</code> mutation, it will default to <code>ONLINE_STORE</code> from version 2025-01.</p>
<p>This change is related to Script tags being turned off for the Order status page on August 28, 2025, following the launch of <a href="https://shopify.dev/changelog/ui-extensions-on-the-thank-you-and-order-status-pages-have-launched" target="_blank" class="body-link">UI Extensions on the Thank You and Order status pages</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 13 Dec 2024 18:30:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/changes-to-scripttag-displayscope-field-on-admin-graphql-api</link>
  </item>
  <item>
    <title>Hydrogen December 2024 release</title>
    <description><![CDATA[ <div class=""><p><a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402024.10.1" target="_blank" class="body-link">Hydrogen v2024.10.1</a> is out today. The December 2024 Hydrogen release contains several quality-of-life improvements, optimizations and bug fixes:</p>
<ul>
<li>Support for 2,000 Variants and Combined Listings (<a href="https://github.com/Shopify/hydrogen/pull/2659" target="_blank" class="body-link">#2659</a>)</li>
<li>Optimized Product Page Performance in Skeleton Template (<a href="https://github.com/Shopify/hydrogen/pull/2643" target="_blank" class="body-link">#2643</a>)</li>
<li>Multiple <code>&lt;Pagination /&gt;</code> Components Support (<a href="https://github.com/Shopify/hydrogen/pull/2649" target="_blank" class="body-link">#2649</a>)</li>
<li>Accessibility improvements and DX polish in the Skeleton template.</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/december-2024" target="_blank" class="body-link">Hydrogen December 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-december-2024-release</link>
  </item>
  <item>
    <title>Product image resource in REST now returns a media image GID to streamline migration to GraphQL </title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-01</code>, the admin REST API for the <a href="https://shopify.dev/docs/api/admin-rest/2024-10/resources/product-image" target="_blank" class="body-link">product image resource</a> will return a media image GID instead of a product image GID. This is designed to help make it easier to migrate to GraphQL from REST when interfacing with product images that were created before the introduction of a unified media id. </p>
<p>Previously, the <code>admin_graphql_api_id</code> returned a product image ID: 
<code>&quot;gid://shopify/ProductImage/43701248884792&quot;</code></p>
<p>Now, the <code>admin_graphql_api_id</code> will return a media image ID: 
<code>&quot;gid://shopify/MediaImage/12379812379123&quot;</code></p>
<p>This change will only affect clients using the latest 2025-01 API version. Older versions will continue to return the ProductImage GID, ensuring backward compatibility. It's strongly recommended to upgrade to using GraphQL as REST is nearing deprecation. </p>
</div> ]]></description>
    <pubDate>Thu, 12 Dec 2024 21:55:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/product-image-resource-in-rest-now-returns-a-media-image-gid-to-streamline-migration-to-graphql</link>
  </item>
  <item>
    <title>Admin action extensions now have access to picking APIs</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/docs/apps/build/admin/actions-blocks#admin-actions" target="_blank" class="body-link">Admin action extensions</a> and <a href="https://shopify.dev/docs/apps/build/admin/actions-blocks#admin-print-actions" target="_blank" class="body-link">admin print action extensions</a> now have access to the <a href="https://shopify.dev/docs/api/admin-extensions/unstable/api/resource-picker" target="_blank" class="body-link">resource picker API</a>, allowing merchants select one or more products, collections, or product variants. Additionally they can access the <a href="https://shopify.dev/docs/api/admin-extensions/unstable/api/picker" target="_blank" class="body-link">picker API</a>, enabling selection of resources that your app defines. </p>
<p>Get started today by <a href="https://shopify.dev/docs/apps/build/admin/actions-blocks/build-admin-action?extension=react" target="_blank" class="body-link">building an admin action extension</a>!</p>
</div> ]]></description>
    <pubDate>Thu, 12 Dec 2024 19:47:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/admin-action-extensions-now-have-access-to-picking-apis</link>
  </item>
  <item>
    <title>Deprecation Notice: CalculatedOrder for committed order edits</title>
    <description><![CDATA[ <div class=""><p>We are deprecating the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/CalculatedOrder" target="_blank" class="body-link"><code>CalculatedOrder</code></a> object for committed order edits. There are no changes to <code>CalculatedOrder</code> for uncommitted order edits. <code>CalculatedOrders</code> are temporary objects that represent an order's state with unsaved edits. Use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Order" target="_blank" class="body-link"><code>Order</code></a> object to access the current state of an order after edits are committed. To query past changes made to an order, use <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Order#connection-agreements" target="_blank" class="body-link"><code>Order.agreements</code></a>.</p>
<p>As part of this change, we are also deprecating the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/CalculatedOrder#field-committed" target="_blank" class="body-link"><code>CalculateOrder.committed</code></a> field.</p>
<p><strong>Deprecation Schedule:</strong></p>
<ul>
<li><strong>Today:</strong> <code>CalculatedOrders</code> for committed order edits are marked as deprecated. They will no longer be returned for committed order edits in the <code>unstable</code> version and the <code>2025-04</code> release candidate.</li>
<li><strong>January 1, 2026 (version <code>2026-01</code>):</strong> <code>CalculatedOrders</code> for committed order edits will no longer be returned. Note: If usage drops to zero before <code>2026-01</code>, we may stop returning <code>CalculatedOrders</code> in an earlier version.</li>
</ul>
<p>Learn more about editing orders on <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 12 Dec 2024 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-04</category>
    <link>https://shopify.dev/changelog/deprecation-notice-calculatedorder-for-committed-order-edits</link>
  </item>
  <item>
    <title>&quot;Get Support&quot; buttons can now link to custom support channels</title>
    <description><![CDATA[ <div class=""><p>App developers can now configure the &quot;Get Support&quot; button to redirect merchants to your preferred support channel, such as a help desk, ticketing system, forum, or live chat.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/launch/distribution/support-your-customers" target="_blank" class="body-link">customizing your preferred app support channel</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 20:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/get-support-buttons-can-now-link-to-custom-support-channels</link>
  </item>
  <item>
    <title>Shopify App Store Ads now offer bid suggestions for all ad types</title>
    <description><![CDATA[ <div class=""><p>All ad types on the Shopify App Store now offer bid suggestions. In addition to search ads, you’ll now see bid suggestions when creating Homepage and Category ads. Bidding within the suggested range can increase the likelihood of your ads being displayed.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/launch/marketing/advertising/create-ads#bidding" target="_blank" class="body-link">creating ads in the Shopify App Store</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 18:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-app-store-ads-now-offer-bid-suggestions-for-all-ad-types</link>
  </item>
  <item>
    <title>The Winter '25 Edition is live</title>
    <description><![CDATA[ <div class=""><p>Announcing 150+ updates to Shopify.</p>
<p><a href="https://www.shopify.com/editions/winter2025?utm_source=devchangelog&utm_medium=devchangelog&utm_campaign=winter25edition" target="_blank" class="body-link">See the updates</a></p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 14:30:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-winter-25-edition-is-live</link>
  </item>
  <item>
    <title>New customer accounts name change</title>
    <description><![CDATA[ <div class=""><p>Changes are coming to how we refer to customer accounts when extensions launch on Dec 11:</p>
<p><strong>New customer accounts</strong> will become <strong>customer accounts</strong></p>
<p><strong>Classic customer accounts</strong> will become <strong>legacy customer accounts</strong></p>
<p>This change will take place across all Shopify-owned surfaces, including the Shopify admin, help docs, and dev docs.</p>
<p><strong>Recommended action</strong></p>
<p>As part of this change, we recommend that you make the relevant updates to any references to new and classic customer accounts in your product and documentation. </p>
<p><strong>There will be no breaking changes to APIs or your products as part of this update.</strong></p>
<p>This change reflects the fact that new customer accounts are the future and although we have not yet announced a timeline, classic customer accounts will eventually be retired.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 14:30:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-customer-accounts-name-change</link>
  </item>
  <item>
    <title>Updated Built for Shopify requirement for fulfillment services callback response rate</title>
    <description><![CDATA[ <div class=""><p>Built for Shopify requirements about <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#respond-to-callback-requests" target="_blank" class="body-link">responding to callback requests</a> for fulfillment services apps are changing. The threshold for responding to Shopify <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService" target="_blank" class="body-link">callback requests</a> in the previous 28-day window is changing from 99% to 100%. The updated requirement comes into effect in July 2025.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 14:11:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/requirement-update-fulfillment-services-respond-to-callback-requests</link>
  </item>
  <item>
    <title>Introducing the Shopify Subscriptions Reference app </title>
    <description><![CDATA[ <div class=""><p>We just launched the<a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/subscriptions-app" target="_blank" class="body-link"> Shopify Subscriptions Reference app</a>, the source code from the Shopify Subscriptions app, which serves as a starting point or example app for merchants and partners looking to build subscription applications. </p>
<p>The reference app can help accelerate app development, provides insight into the Selling Plan APIs and highlights Shopify’s best practices in app development. </p>
<p>Learn more about the Shopify Subscriptions Reference app <a href="https://github.com/Shopify/subscriptions-reference-app" target="_blank" class="body-link">here</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:35:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-shopify-subscriptions-reference-app</link>
  </item>
  <item>
    <title>New: Purchase Options UI extensions for subscriptions, pre-orders, and try-before-you-buy apps </title>
    <description><![CDATA[ <div class=""><p>Developers can now build a single extension using the <a href="https://shopify.dev/docs/apps/build/purchase-options/purchase-options-extensions" target="_blank" class="body-link">Purchase Options UI extensions</a> so merchants can more easily create and manage subscriptions, pre-orders, and try-before-you-buy. </p>
<p>To learn more, please visit the developer documentation <a href="https://shopify.dev/docs/apps/build/purchase-options/purchase-options-extensions/start-building" target="_blank" class="body-link">here</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:20:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-purchase-options-ui-extensions-for-subscriptions-pre-orders-and-try-before-you-buy-apps</link>
  </item>
  <item>
    <title>Support for additional Shopify Functions APIs in draft orders</title>
    <description><![CDATA[ <div class=""><p>Draft orders previously supported most Shopify Functions, but now offer full support of the remaining APIs:</p>
<p><strong>Delivery Customization API:</strong> Runs in draft orders checkout.</p>
<p><strong>Payment Customization API:</strong> Runs in draft orders checkout.</p>
<p><strong>Cart and Checkout Validation API:</strong> Runs in draft orders admin and checkout. Additionally, we have added a new argument named <strong>bypassCartValidations</strong> that you can pass in the <strong><a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/draftOrderComplete#argument-bypasscartvalidations" target="_blank" class="body-link">draftOrderComplete</a></strong> and <strong><a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/prepareForBuyerCheckout#argument-bypasscartvalidations" target="_blank" class="body-link">prepareForBuyerCheckout</a></strong> mutations in order to bypass checkout rules when completing or sharing a draft order.</p>
<p>This feature is enabled on all development stores and production stores. These enhancements streamline the draft order process, reducing errors and improving the overall experience for both merchants and their customers. Whether creating a draft order in the admin or sending an invoice for customer completion, merchants can rely on the same robust Shopify Function support available in standard checkouts.</p>
<p>Learn more about Shopify Functions in our <a href="https://shopify.dev/docs/apps/build/functions" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/support-for-additional-shopify-functions-apis-in-draft-orders</link>
  </item>
  <item>
    <title>Returns now supported in Customer Accounts API</title>
    <description><![CDATA[ <div class=""><p>Returns are now supported directly through the <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">Customer Accounts API</a>. This includes new fields and a mutation that allow for querying return-related information and self-serve return requests. </p>
<p>This update allows partners to seamlessly build return apps on new customer accounts without needing extra app authorizations. Partners can query returns, create new return requests, and customize the return experience for customers. Additionally, these APIs provide partners with visibility into an order line item's return eligibility, which incorporates Shopify's <a href="https://help.shopify.com/en/manual/fulfillment/managing-orders/returns/return-rules" target="_blank" class="body-link">return rules</a> for merchants with this feature enabled. Partners can determine which items can be returned and the expected refund amount, as well as why items are not returnable. </p>
<h4>New APIs:</h4>
<p><strong><a href="https://shopify.dev/docs/api/customer/unstable/mutations/orderRequestReturn" target="_blank" class="body-link">orderRequestReturn</a>:</strong> Mutation that enables the initiation of a return request directly via API. This mutation supports creating a return request on behalf of a customer, allowing the merchant to use the existing return flows within the Admin.</p>
<p><strong><a href="https://shopify.dev/docs/api/customer/unstable/queries/returnCalculate" target="_blank" class="body-link">returnCalculate</a>:</strong> Query that calculates the potential refund amount based on customer inputs if a return request is approved.</p>
<p><strong><a href="https://shopify.dev/docs/api/customer/unstable/objects/OrderReturnInformation" target="_blank" class="body-link">ReturnInformation</a>:</strong> Object that provides details about which items in an order are eligible or ineligible for a return.</p>
<p><strong><a href="https://shopify.dev/docs/api/customer/unstable/connections/ReturnConnection" target="_blank" class="body-link">ReturnConnection</a>:</strong> Connection on Order that lists returns associated with an order which includes information such as the return's status or associated reverse deliveries.</p>
<p>For the full set of APIs shipped, please refer to the documentation on <a href="https://shopify.dev/docs/api/customer/unstable/objects/Order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/returns-now-supported-in-customer-accounts-api</link>
  </item>
  <item>
    <title>Returns apps can now integrate with Shopify Collective</title>
    <description><![CDATA[ <div class=""><p>As of Dec 10, Shopify Collective introduces automated returns between retailers and suppliers, enhancing return management for businesses at scale. You can now make your returns app compatible with this new automation flow. By using the <code>returns/close</code> webhook as a trigger to indicate that a return has been inspected, you can seamlessly process refunds and reduce the manual effort required for merchants utilizing Shopify Collective.</p>
<p>For detailed guidance on how to implement this feature, please refer to our <a href="https://shopify.dev/docs/apps/build/collective/returns" target="_blank" class="body-link">developer documentation</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/returns-apps-can-now-integrate-with-shopify-collective</link>
  </item>
  <item>
    <title>Apps can now manage access settings for merchant metafield definitions</title>
    <description><![CDATA[ <div class=""><p>Effective immediately, apps can manage the <code>storefront</code> and <code>customerAccount</code> access settings for metafield definitions in the merchant namespace. The only acceptable value for <code>admin</code> access remains <code>PUBLIC_READ_WRITE</code> for non app-reserved definitions. </p>
<p>Learn more about access controls for metafields on <a href="https://shopify.dev/docs/apps/custom-data/metafields/definitions/access-controls" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/apps-can-now-manage-access-settings-for-merchant-metafield-definitions</link>
  </item>
  <item>
    <title>Adding unique values to metafields</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-01</code> Admin API, you can now make metafield definitions that enforce uniqueness.</p>
<p>The new <code>uniqueValues</code> capability ensures that each metafield has a unique value across all resources. This is available for <code>single_line_text_field</code>, <code>number_integer</code>, <code>url</code>, and <a href="https://shopify.dev/changelog/using-custom-ids-and-handles-in-product-and-customer-lookups" target="_blank" class="body-link"><code>id</code></a>. For now, this capability can only be set on metafield definitions that don’t yet have associated metafields.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/adding-unique-values-to-metafields</link>
  </item>
  <item>
    <title>Using custom ids and handles in product and customer lookups</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-01</code> Admin API, you can use your own identifiers to lookup Products and Customers with the following APIs:</p>
<ul>
<li><code>customerByIdentifier</code></li>
<li><code>productByIdentifier</code></li>
</ul>
<p>Custom ids are defined by a new metafield type: <code>id</code>. The <a href="https://shopify.dev/changelog/adding-unique-values-to-metafields" target="_blank" class="body-link">unique values capability</a> is required and enabled by default for the id type. The id type unlocks custom ids for Shopify, enabling merchants and partners to specify their own identifiers for objects with metafields.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/using-custom-ids-and-handles-in-product-and-customer-lookups</link>
  </item>
  <item>
    <title>Improved billing attempt error handling for subscriptions in Selling Plan API</title>
    <description><![CDATA[ <div class=""><p>Following the <a href="https://shopify.dev/changelog/subscription-billing-attempt-now-respects-inventory-policy-to-not-allow-overselling" target="_blank" class="body-link">release</a> of subscription billing attempt respecting merchant’s inventory policy to prevent overselling, we added new features to assist developers in managing billing errors. </p>
<p>As of 2025-01, when accessing billing error details during billing attempts, you can now leverage <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/SubscriptionBillingAttempt#field-processingerror" target="_blank" class="body-link">processingError</a> to identify specific product variants responsible for inventory errors. This update provides better insight into failed billing attempts related to inventory issues by integrating location-specific inventory data directly within the error diagnostics. </p>
<p>Learn more about the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/subscriptionBillingAttemptCreate#top" target="_blank" class="body-link">Selling Plan API inventory policy</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/improved-billing-attempt-error-handling-for-subscriptions-in-selling-plan-api</link>
  </item>
  <item>
    <title>Shopify Functions input size limit increased to 128kB</title>
    <description><![CDATA[ <div class=""><p>Shopify Functions input size limit has been increased from 64kB to 128kB. This will enable developers to support a larger number of cart lines.</p>
<p>Learn more about resource limits and how they're calculated for Shopify Functions on <a href="https://shopify.dev/docs/api/functions#resource-limits" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 13:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-input-size-limit-increased-to-128kb</link>
  </item>
  <item>
    <title>Set custom prices in draft orders</title>
    <description><![CDATA[ <div class=""><p>As of 2025-01, item prices on a draft order will automatically reflect the most current product price at checkout. Additionally, you can now set custom prices on draft order line items. When set, the prices will be locked and used as the basis for all further calculations, including taxes, discounts, order totals, etc.</p>
<p>You can set the custom price on a line item using <strong>draftOrderCreate</strong>, <strong>draftOrderUpdate</strong>, and <strong>draftOrderCalculate</strong> by specifying <strong><a href="https://shopify.dev/docs/api/admin-graphql/2025-01/input-objects/DraftOrderLineItemInput#field-priceoverride" target="_blank" class="body-link">lineItem.priceOverride</a></strong> in the GraphQL Admin API.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:30:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/set-custom-prices-in-draft-orders</link>
  </item>
  <item>
    <title>Latest version of App Bridge required for Built for Shopify</title>
    <description><![CDATA[ <div class=""><p>All Built for Shopify apps must use the latest version of App Bridge. <a href="https://shopify.dev/docs/api/app-bridge-library#getting-started" target="_blank" class="body-link"> Update to the latest App Bridge</a> by adding the <code>app-bridge.js</code> script tag to the <code>&lt;head&gt;</code> of every document of your app to meet this requirement. </p>
<p>Starting in July 2025, apps will need to meet this requirement to be eligible for Built for Shopify status.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:30:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/latest-version-of-app-bridge-required-for-built-for-shopify</link>
  </item>
  <item>
    <title>Updated category specific requirements for Built for Shopify </title>
    <description><![CDATA[ <div class=""><p>Built for Shopify now includes new <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#category-specific" target="_blank" class="body-link">category-specific requirements</a> for Email marketing apps, SMS marketing apps, Ads apps, Analytics apps, Affiliate program apps, and Forms apps. Additionally, the requirements for Subscriptions apps have been updated to require the use of customer account extensions. </p>
<p>Starting in July 2025, apps will need to meet these requirements to be eligible for Built for Shopify status.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:30:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updated-category-specific-requirements-for-built-for-shopify</link>
  </item>
  <item>
    <title>Picker API added to the latest version of App Bridge and Admin UI extensions</title>
    <description><![CDATA[ <div class=""><p>With the latest version of App Bridge and Admin UI extensions, you can use the <code>picker</code> API to open a search-based interface to help users find and select one or more resources that you provide, such as product reviews, email templates, or subscription options. Learn more about it in the <a href="https://shopify.dev/docs/api/app-bridge-library/apis/picker" target="_blank" class="body-link">App Bridge documentation</a> and <a href="https://shopify.dev/docs/api/admin-extensions/unstable/api/picker" target="_blank" class="body-link">UI Extensions documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:30:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/picker-api-added-to-the-latest-version-of-app-bridge-and-admin-ui-extensions</link>
  </item>
  <item>
    <title>Built for Shopify Requirements for embedded apps and apps in marketing categories</title>
    <description><![CDATA[ <div class=""><p>Apps must meet the following criteria to achieve or maintain Built for Shopify status by the specified effective dates:</p>
<p><strong>New design requirements – Effective January 1, 2025</strong>
We’re introducing new <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#design" target="_blank" class="body-link">design requirements</a> including:</p>
<ul>
<li>Using tabs for secondary navigation</li>
<li>Following UX best practices</li>
</ul>
<p><strong>New category-specific requirements – Effective July 1, 2025</strong>
We’re expanding requirements across <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/category-achievement-criteria" target="_blank" class="body-link">more categories</a> and updating criteria for Subscription apps:</p>
<ul>
<li>Ads</li>
<li>Affiliate programs</li>
<li>Analytics</li>
<li>Email marketing</li>
<li>Forms</li>
<li>SMS marketing</li>
<li>Subscriptions (updated criteria)</li>
</ul>
<p><strong>Use the latest version of Shopify App Bridge – Effective July 1, 2025</strong>
Apps must be embedded in the Shopify admin using the <a href="https://shopify.dev/docs/api/app-bridge-library#getting-started" target="_blank" class="body-link">latest version of Shopify App Bridge</a>.</p>
<p>Apps that fail to meet these requirements by their deadlines will be at risk of <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/regain-lost-status" target="_blank" class="body-link">losing status</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:13:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/built-for-shopify-requirements-for-embedded-apps-and-apps-in-marketing-categories-effective-july-2025</link>
  </item>
  <item>
    <title>New Built for Shopify requirements page</title>
    <description><![CDATA[ <div class=""><p>All requirements for achieving Built for Shopify status are now consolidated in one place. The new <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements" target="_blank" class="body-link">Built for Shopify requirements page</a> offers a searchable format where you can easily reference all the technical, design, and category-specific requirements.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-built-for-shopify-requirements-page</link>
  </item>
  <item>
    <title>New Built for Shopify design requirements</title>
    <description><![CDATA[ <div class=""><p>We have introduced new design requirements to our <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements" target="_blank" class="body-link">Built for Shopify requirements page</a>. These updates enhance the clarity of our existing design guidelines, making it easier to understand what’s needed to meet the standards for Built for Shopify status.</p>
<ul>
<li><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#follow-ux-best-practices" target="_blank" class="body-link">Follow UX best practices</a></strong>
 Your app's UI should demonstrate a good faith effort to leverage common UX best practices and meet a high bar for design quality.</li>
</ul>
<p> Starting in January 2025, apps will need to meet this requirement to be eligible for Built for Shopify status.</p>
<ul>
<li><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-tabs-for-secondary-navigation/" target="_blank" class="body-link">Use tabs for secondary navigation</a></strong>
 Use tabs sparingly for secondary navigation purposes when the <a href="https://shopify.dev/docs/api/app-bridge-library/web-components/ui-nav-menu" target="_blank" class="body-link">nav menu</a> isn’t sufficient. Clicking a tab should only change the content below it, not above. Tabs should never wrap onto multiple lines. Navigating between tabs should not cause the tabs to change position or move.</li>
</ul>
<p> Starting in January 2025, apps will need to meet this requirement to be eligible for Built for Shopify status.</p>
<p> This requirement will <strong>replace</strong> the following <a href="https://shopify.dev/docs/apps/design/navigation#app-nav" target="_blank" class="body-link">navigation</a> requirement:</p>
<p> <em>Don’t use tabs as primary navigation for your app, since Tabs are used in the Shopify admin as filters on index tables. Use the App Bridge ui-nav-menu web component or NavMenu React component instead.</em></p>
<ul>
<li><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#for-index-pages-use-full-width-layouts" target="_blank" class="body-link">For index pages, use full-width layouts</a></strong>
For <a href="https://polaris.shopify.com/patterns/resource-index-layout" target="_blank" class="body-link">resource index pages</a>, use a full-width page. This is helpful when merchants are dealing with lists of data that have many columns.</li>
</ul>
<p> This requirement will <strong>replace</strong> the following <a href="https://shopify.dev/docs/apps/design/layout#layout-options" target="_blank" class="body-link">layout options</a> requirements:</p>
<p> <em>Use a full-width page when merchants are dealing with lists of data that have many columns.</em></p>
<p> <em>Don’t use a single-column layout with a full-width page when you’re not dealing with lists of data. This makes the app feel out of place on larger displays. Apps should feel integrated with the Shopify admin.</em></p>
<p> <em>Keep your app aligned with the Shopify admin by using the <a href="https://polaris.shopify.com/patterns" target="_blank" class="body-link">Polaris Patterns</a> for common layouts such as index pages and resource detail pages.</em></p>
<ul>
<li><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#for-visual-editors-use-two-column-layouts" target="_blank" class="body-link">For visual editors, use two-column layouts</a></strong>
For visual editors, use a two-column layout. This allows merchants to preview the outcome of their edits in real-time.</li>
</ul>
<p> This requirement will <strong>replace</strong> the following <a href="https://shopify.dev/docs/apps/design/layout#layout-options" target="_blank" class="body-link">layout options</a> requirements:</p>
<p> <em>Complex editors should use the two-column primary/secondary layout in a default-width page. This offers merchants a streamlined editing experience.</em></p>
<p> <em>Don’t use a two-column primary/secondary layout for your app home page and other pages that don’t require a parent/child relationship between different parts of the interface.</em></p>
<p> <em>If your app’s page behaves as a dashboard, then use a two-column equal width layout. Use a three-column layout for higher content density.</em></p>
<p> <em>Don’t use two-column layouts in full-width pages, because it makes your app’s content harder to parse on larger displays.</em></p>
<ul>
<li><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#for-settings-pages-use-the-app-settings-layouts" target="_blank" class="body-link">For settings pages, use the app settings layouts </a></strong>
For settings pages, use the <a href="https://polaris.shopify.com/patterns/app-settings-layout" target="_blank" class="body-link">app settings layout</a> to provide merchants with clear context about your app's configuration options.</li>
</ul>
<p> This requirement will <strong>replace</strong> the following <a href="https://shopify.dev/docs/apps/design/layout#layout-options" target="_blank" class="body-link">layout options</a> requirements:</p>
<p> <em>Don’t use annotated layouts for content that isn’t editable. Use a single-column layout instead.</em></p>
<ul>
<li><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#place-your-content-in-card-like-containers" target="_blank" class="body-link">Place your content in card-like containers </a></strong>
Make the majority of your app’s content live in a container, such as a card. This creates visual structure and rhythm that helps merchants find information quickly. Complex components, headings, or images aren’t necessarily required to be in a container.</li>
</ul>
<p> This requirement will <strong>replace</strong> the following <a href="https://shopify.dev/docs/apps/design/layout#containers" target="_blank" class="body-link">layout containers</a> requirements:</p>
<p> <em>Make the majority of your app’s content live in a container, such as a card. This creates visual structure and rhythm that helps merchants find information quickly.</em></p>
<p> <em>Place your app’s content in a card-like container a majority of the time. Complex components or images aren’t necessarily required to be in a container.</em></p>
<ul>
<li><p><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-black-or-gray-for-the-majority-of-text" target="_blank" class="body-link">Use black or gray for the majority of text</a></strong>
Present the majority of app text in a legible and neutral color, such as black or dark gray.</p>
</li>
<li><p>**<a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-green-to-indicate-a-successful-outcome-or-status" target="_blank" class="body-link">Use green to indicate a successful outcome or status</a> **
Green (<code>--p-color-text-success</code> or <code>rgba(1, 75, 64, 1)</code>) should be used to indicate that a status is positive or that an action has been completed successfully. Don't use green to entice merchants or draw unnecessary attention.</p>
</li>
<li><p><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-yellow-to-indicate-a-pending-or-paused-status" target="_blank" class="body-link">Use yellow to indicate a pending or paused status </a></strong>
Yellow (<code>--p-color-bg-fill-caution</code> or <code>rgba(255, 230, 0, 1)</code>) should be used to indicate that a status is on pause or incomplete, or to highlight information that requires merchant attention but isn't urgent. Don’t use yellow for announcements.</p>
</li>
<li><p><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-orange-to-indicate-an-action-or-item-that-requires-the-merchants-attention" target="_blank" class="body-link">Use orange to indicate an action or item that requires the merchant's attention</a></strong>
Orange (<code>--p-color-bg-fill-warning</code> or <code>rgba(255, 184, 0, 1)</code>) should be used to indicate that a status is in-progress, pending, or to tell merchants that something needs their attention. Orange is the strongest, non-blocking color role in the Shopify admin. Don’t use orange for “under construction” or “coming soon” messaging.</p>
</li>
<li><p><strong><a href="https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-red-to-indicate-an-unsuccessful-outcome-or-status" target="_blank" class="body-link">Use red to indicate an unsuccessful outcome or status</a></strong> 
Red (<code>--p-color-text-critical</code> or <code>rgba(142, 11, 33, 1)</code>) should only be used to convey messaging that implies an action is impossible, blocked, or has resulted in an error. Don't use red to entice merchants or draw unnecessary attention.</p>
</li>
</ul>
<p>The following requirements will be <strong>removed</strong>:</p>
<ul>
<li><p><strong><a href="https://shopify.dev/docs/apps/design/visual-design#color" target="_blank" class="body-link">Color roles</a></strong>
Don't contradict the Color Roles defined by the Polaris design system. In the example above, the dark pink affirming action could be misunderstood as red, which is used in the Shopify admin for destructive actions and critical errors.</p>
</li>
<li><p><strong><a href="https://shopify.dev/docs/apps/design/layout#layout-options" target="_blank" class="body-link">Three-column layouts</a></strong>
Set three-column layouts in a full-width page when you’re using them for interfaces like dashboards and analytics.
Don’t use three-column layouts to display unrelated content side by side, as it can confuse merchants. Use a single-column layout instead.</p>
</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-built-for-shopify-design-requirements</link>
  </item>
  <item>
    <title>Admin link extensions have been migrated to the Shopify CLI</title>
    <description><![CDATA[ <div class=""><p>Apps can now create and migrate to admin link extensions, which replace both admin links and bulk action links, which were previously created from the Extensions section of your app's Partners Dashboard. </p>
<p>Admin link extensions let you access the same functionality as admin links and bulk action links, but also let you localize links for users, manage links in your app's source control system, and manage their deployment with the Shopify CLI. To upgrade to admin link extensions, <a href="https://shopify.dev/docs/apps/build/admin/admin-links/migrate-admin-links" target="_blank" class="body-link">follow the tutorial</a> on shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/admin-link-extensions-have-been-migrated-to-the-shopify-cli</link>
  </item>
  <item>
    <title>Simplifying how metafield and metaobject permissions work</title>
    <description><![CDATA[ <div class=""><p>In the new year we’re simplifying how metafield and metaobject permissions work. This makes the system easier to work with and will further improve API response times.</p>
<p>In summary:</p>
<ul>
<li>On <strong>Jan 1, 2025</strong>, the <code>2025-01</code> admin API will remove both private and public permissions for <a href="https://shopify.dev/docs/apps/build/custom-data/reserved-prefixes" target="_blank" class="body-link">app-reserved metafields and metaobjects</a> from all <strong>mutations</strong>. </li>
<li>On <strong>Feb 1, 2025</strong>, <strong>across all API versions</strong>, we will fully remove <strong>private</strong> permissions for <a href="https://shopify.dev/docs/apps/build/custom-data/reserved-prefixes" target="_blank" class="body-link">app-reserved metafields and metaobjects</a>. <strong>We will migrate all existing metafields and metaobjects</strong> to be merchant readable automatically. All metafields and metaobjects will also become accessible in liquid.  </li>
<li>On <strong>Apr 1, 2025</strong>, <strong>across all API versions</strong>, we will fully remove <strong>public</strong> permissions for <a href="https://shopify.dev/docs/apps/build/custom-data/reserved-prefixes" target="_blank" class="body-link">app-reserved metafields and metaobjects</a>.<strong>We will migrate all existing metafields and metaobjects</strong> to be only accessible by your app and the merchant automatically.</li>
</ul>
<p>Details below: </p>
<p>On <strong>Jan 1, 2025</strong>:</p>
<ul>
<li>The following <strong>inputs</strong> to app-reserved <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetafieldAdminAccessInput" target="_blank" class="body-link">metafield</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetaobjectAdminAccessInput" target="_blank" class="body-link">metaobject</a> API <strong>mutations</strong> will be removed in 2025-01: <code>PRIVATE</code>, <code>PUBLIC_READ</code>, <code>PUBLIC_READ_WRITE</code></li>
<li>The following <strong>outputs</strong> from app-reserved <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetafieldAdminAccess" target="_blank" class="body-link">metafield</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetaobjectAdminAccess" target="_blank" class="body-link">metaobject</a> API <strong>queries</strong> will be removed in <code>2025-01</code>: <code>LEGACY_LIQUID_ONLY</code></li>
<li>Otherwise, existing <strong>queries</strong> and data will continue to support these removed input types</li>
</ul>
<p>On <strong>Feb 1, 2025</strong>:</p>
<ul>
<li>The following <strong>outputs</strong> from app-reserved <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetafieldAdminAccess" target="_blank" class="body-link">metafield</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetaobjectAdminAccess" target="_blank" class="body-link">metaobject</a> API <strong>queries</strong> will be removed <strong>across all versions</strong>:<code>PRIVATE</code></li>
<li><strong>Existing</strong> app-reserved metafields and metaobjects permissions <strong>will be migrated</strong>: <code>PRIVATE</code> → <code>MERCHANT_READ</code></li>
<li>All metafields and metaobjects will become accessible in liquid</li>
</ul>
<p>On <strong>Apr 1, 2025</strong>:</p>
<ul>
<li>The following outputs from app-reserved <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetafieldAdminAccess" target="_blank" class="body-link">metafield</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/MetaobjectAdminAccess" target="_blank" class="body-link">metaobject</a> API <strong>queries</strong> will be removed <strong>across all versions</strong>:<code>PUBLIC_READ</code> and <code>PUBLIC_READ_WRITE</code> </li>
<li><strong>Existing</strong> app-reserved metafields and metaobjects permissions <strong>will be migrated</strong>:<code>PUBLIC_READ</code> → <code>MERCHANT_READ</code> and <code>PUBLIC_READ_WRITE</code> → <code>MERCHANT_READ_WRITE</code></li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 10 Dec 2024 22:01:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Liquid</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/simplifying-how-metafield-and-metaobject-permissions-work</link>
  </item>
  <item>
    <title>Admin REST API product image is now deprecated</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-01</code>, the admin REST API for the <a href="https://shopify.dev/docs/api/admin-rest/2024-10/resources/product-image" target="_blank" class="body-link">product image resource</a> is now deprecated. It is recommended to migrate to GraphQL and use media IDs going forward. The <code>admin_graphql_api_id</code> will <a href="https://shopify.dev/changelog/product-image-resource-in-rest-now-returns-a-media-image-gid-to-streamline-migration-to-graphql" target="_blank" class="body-link">return a media image ID</a> to streamline the migration process. More information and a migration guide can be found in the <a href="https://shopify.dev/docs/apps/build/graphql/migrate/new-files-model" target="_blank" class="body-link">dev docs</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Dec 2024 20:03:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin REST API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/admin-rest-api-product-image-is-now-deprecated</link>
  </item>
  <item>
    <title>.dev Assistant now supports threaded chats and GraphQL migration support</title>
    <description><![CDATA[ <div class=""><p>The .dev Assistant now converts REST requests to GraphQL operations. Just copy and paste your REST request, and receive the equivalent GraphQL Admin API query or mutation.</p>
<p>Plus, your conversations with the .dev Assistant just got smarter! You can now ask follow-up questions while maintaining context from your original prompt - no need to start over.</p>
<p>Ready to try it? Head to <a href="http://shopify.dev/?assistant=1" target="_blank" class="body-link">Shopify.dev</a> and give it a spin.  </p>
</div> ]]></description>
    <pubDate>Mon, 09 Dec 2024 20:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/dev-assistant-now-supports-threaded-chats-and-graphql-migration-support</link>
  </item>
  <item>
    <title>Carrier services and Fulfillment services performance dashboards are now available in the partner dashboard</title>
    <description><![CDATA[ <div class=""><p>Carrier services and Fulfillment services performance dashboards are now available, and can be found on the Insights page in the apps section of the Partner Dashboard. </p>
<p>Partners can now track their apps' performance against our 2025 Carrier services and Fulfillment services standards.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Dec 2024 15:41:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/carrier-services-and-fulfillment-services-performance-dashboards-are-now-available-in-the-partner-dashboard</link>
  </item>
  <item>
    <title>Customize line items in Checkout and Customer Accounts order summary using new Checkout Branding API settings </title>
    <description><![CDATA[ <div class=""><p><strong>As of Dec 4th, 2024</strong>, you can use the settings under checkoutBrandingInput (see: merchandiseThumbnail) in the Checkout Branding API to modify the appearance of line items in Checkout and Customer Accounts order summary for Shopify Plus merchants. </p>
<p>These line-item customizations include the ability to configure custom aspect ratios for product thumbnails, adjust image fit, and modify the background color of quantity badges. </p>
<p>Note: The aspect ratio setting is only available on the current unstable release. </p>
<p>Learn more under <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/checkoutBrandingUpsert#argument-checkoutbrandinginput" target="_blank" class="body-link">checkoutBrandingInput</a> in the Checkout Branding API documentation. </p>
</div> ]]></description>
    <pubDate>Fri, 06 Dec 2024 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/customize-line-items-in-checkout-and-customer-accounts-order-summary-using-new-checkout-branding-api-settings</link>
  </item>
  <item>
    <title>App extensions can’t be used for self-promotion or related activities</title>
    <description><![CDATA[ <div class=""><p>Starting December 5, 2024, app extensions, including admin links, checkout extensibility, and theme app extensions can’t be used to advertise your app, promote related apps, or request reviews.</p>
</div> ]]></description>
    <pubDate>Thu, 05 Dec 2024 16:29:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-extensions-can-t-be-used-for-self-promotion-or-related-activities</link>
  </item>
  <item>
    <title>New Chat API for building chat apps in Shopify Checkout </title>
    <description><![CDATA[ <div class=""><p>As of <strong>December 4th, 2024</strong>, you can now request access to the <a href="https://shopify.dev/docs/apps/build/checkout/chat" target="_blank" class="body-link">Chat API</a> to offer real-time customer support on the Checkout and Thank you pages. You will get a new chat component to embed your chat app into Checkout and have complete control over the styling of your interface. </p>
<p>The Chat API allows your chat widget to communicate with your app to query information about the Checkout and Store, like cart details, buyer information, store settings, etc.</p>
<p><strong>Request access to the Chat API through your partner dashboard</strong>. </p>
</div> ]]></description>
    <pubDate>Thu, 05 Dec 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-chat-api-for-building-chat-apps-in-shopify-checkout</link>
  </item>
  <item>
    <title>PrivateMetafield is now deprecated</title>
    <description><![CDATA[ <div class=""><p>Starting in API version <strong>2025-01</strong>, PrivateMetafield will be removed from the GraphQL Admin API. Use <a href='https://shopify.dev/docs/apps/build/custom-data/metafields/use-app-data-metafields'>app-data metafields</a> instead. If the metafield is needed per resource, consider the <a href='https://shopify.dev/docs/apps/build/custom-data/metafields/migrate-private-metafields'>migration guide</a> for using app-reserved namespaces.</p>
</div> ]]></description>
    <pubDate>Thu, 05 Dec 2024 14:15:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/privatemetafield-is-now-deprecated</link>
  </item>
  <item>
    <title>Configure optional scopes for Shopify apps</title>
    <description><![CDATA[ <div class=""><p>Apps on Admin API version <code>2024-10</code> can use the new <code>optional_scopes</code> app configuration to:</p>
<ul>
<li>Separate required scopes from optional</li>
<li>Request unique sets of access scopes on a store-by-store basis</li>
<li>Revoke optional scopes granted to the app from a store</li>
<li>Request and revoke scopes in-context, at app runtime</li>
</ul>
<p>All while taking advantage of <a href="https://shopify.dev/docs/apps/build/authentication-authorization/app-installation" target="_blank" class="body-link">Shopify managed install</a>.</p>
<h3>Declaring optional scopes</h3>
<p>In your <a href="https://shopify.dev/docs/apps/build/cli-for-apps/app-configuration" target="_blank" class="body-link">app configuration</a>, specify optional scopes that your app may request, in addition to your app’s required <code>scopes</code>:</p>
<pre><code class="language-toml">[access_scopes]
scopes = &quot;read_products&quot;
optional_scopes = [ &quot;write_products&quot;, &quot;read_discounts&quot;, &quot;read_themes&quot; ]
</code></pre>
<h3>Requesting, revoking, and querying optional scopes at runtime</h3>
<p>With optional scopes, apps can prompt merchants to grant their app access either from a server-side API, or from a client-side App Bridge API for a more integrated experience. See our documentation on <a href="https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes#request-new-access-scopes-dynamically" target="_blank" class="body-link">how to request access scopes dynamically</a> for details.</p>
<p>Granted optional scopes can be dynamically revoked from stores by apps. Our APIs supply a <code>revoke</code> method for this, and we also provide a GraphQL <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/appRevokeAccessScopes" target="_blank" class="body-link"><code>appRevokeAccessScopes</code> mutation</a>.</p>
<p>With optional scopes, apps may need to know which scopes are granted on the current store. We supply a <code>query</code> method that lists the granted scopes on the store. Apps can also manually query the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/AppInstallation#field-accessscopes" target="_blank" class="body-link"><code>accessScopes</code> field on the <code>AppInstallation</code> object</a>.</p>
<h3>Learn more</h3>
<p>To learn more about optional scopes, see our documentation on <a href="https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes" target="_blank" class="body-link">how to manage access scopes</a>. See also our client-side <a href="https://shopify.dev/docs/api/app-bridge-library/apis/scopes" target="_blank" class="body-link">App Bridge Scopes API</a>, and our server-side <a href="https://shopify.dev/docs/api/shopify-app-remix/v3/apis/scopes" target="_blank" class="body-link">Remix Scopes API</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 04 Dec 2024 19:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/configure-optional-scopes-for-shopify-apps</link>
  </item>
  <item>
    <title>JS Buy SDK Deprecation Notice</title>
    <description><![CDATA[ <div class=""><p><strong>The JS Buy SDK is deprecated as of January, 2025.</strong> It will no longer be updated or maintained by Shopify past that point. A final major version will be released in early 2025 to remove the SDK's dependency on the <a href="https://shopify.dev/changelog/deprecation-of-checkout-apis" target="_blank" class="body-link">deprecated Checkout APIs</a>, replacing them with <a href="https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart" target="_blank" class="body-link">Cart APIs</a>. Updating to this new version will allow the SDK to continue to function for most use cases.</p>
<p>If you are using the JS Buy SDK, you have two options:</p>
<ol>
<li><p>Recommended Option: switch to the <a href="https://github.com/Shopify/shopify-app-js/tree/main/packages/api-clients/storefront-api-client#readme" target="_blank" class="body-link">Storefront API Client</a>
  a. The Storefront API Client manages the API's authentication information and provides various methods that enable devs to interact with the API. This is the preferred and more future-proof solution. See this <a href="https://github.com/Shopify/js-buy-sdk/tree/main/migration-guide/README.md" target="_blank" class="body-link">migration guide</a> to help you transition.</p>
</li>
<li><p>Stopgap Option: Upgrade to JS Buy SDK v3.0 (coming soon)
 a. This allows you to maintain your current setup with minimal changes for use cases that are supported by the Cart API. A migration guide with details on supported use cases will be available soon. If you choose this option, we still recommend that you switch to the Storefront API Client in the future.</p>
</li>
</ol>
<p><strong>Critical Deadline: July 1st, 2025.</strong> You must implement one of these changes by this date, or customers will not be able to complete purchases. Please choose the option that best suits your needs and timelines.</p>
</div> ]]></description>
    <pubDate>Tue, 03 Dec 2024 20:31:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/js-buy-sdk-deprecation-notice</link>
  </item>
  <item>
    <title>Add PickupAddress for subscription contracts in customer API</title>
    <description><![CDATA[ <div class=""><p>As of 2025-01, you can use the <code>PickupAddress</code> field in both <code>SubscriptionDeliveryMethodPickupOption</code> and <code>SubscriptionPickupOption</code> to query for a customer pickup address.</p>
<p>Learn more about this field at <a href="https://shopify.dev/docs/api/customer/2025-01/objects/PickupAddress" target="_blank" class="body-link">PickupAddress</a></p>
</div> ]]></description>
    <pubDate>Mon, 25 Nov 2024 14:51:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Customer Account API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/add-pickupaddress-for-subscription-contracts-in-customer-api</link>
  </item>
  <item>
    <title>Increased limits for automatic function-based discounts</title>
    <description><![CDATA[ <div class=""><p>We've expanded the capability of our discount management system by increasing the limit for automatic app-based discounts from 5 to 25. </p>
<p>This update allows developers to create and manage a larger number of concurrent discount campaigns, offering more flexibility and targeted promotional strategies for merchants. The limit increase enables developers who are currently managing multiple promotions using Shopify Scripts to migrate to Shopify Functions. With the limit increase on Shopify Functions, each discount can be configured with its own start and end dates, giving merchants better precision in promotional timing and controls to govern which discounts can coexist on a cart. </p>
<p>Learn more about discount combinations &amp; limits in the <a href="https://shopify.dev/docs/apps/build/discounts/" target="_blank" class="body-link">Shopify Dev Docs</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 21 Nov 2024 19:01:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <link>https://shopify.dev/changelog/increased-limits-for-automatic-function-based-discounts</link>
  </item>
  <item>
    <title>Search and browse apps using structured category details in the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Merchants can now search and browse apps based on a specific category feature in the Shopify App Store. Keep your apps updated with the most relevant category features and follow our <a href="https://shopify.dev/docs/apps/launch/app-store-review/app-listing-categories#app-category-details" target="_blank" class="body-link">best practices</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 21 Nov 2024 15:20:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/search-and-browse-apps-using-structured-category-details-in-the-shopify-app-store</link>
  </item>
  <item>
    <title>New dynamic source attributes available in the online store editor</title>
    <description><![CDATA[ <div class=""><p>You can now use more dynamic source attributes in the online store editor. The following new attributes have been added: </p>
<ul>
<li><strong>Product</strong>: <code>url</code>, <code>featured_image</code>, <code>description</code></li>
<li><strong>Collection</strong>: <code>url</code>, <code>description</code></li>
<li><strong>Article</strong>: <code>author</code>, <code>comments_count</code>, <code>content</code>, <code>excerpt</code> </li>
<li><strong>Blog</strong>: <code>content</code></li>
</ul>
<p>Learn more about dynamic sources on <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/dynamic-sources" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 18 Nov 2024 21:47:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-dynamic-source-attributes-available-in-the-online-store-editor</link>
  </item>
  <item>
    <title>Strongly-matched apps will be highlighted in Shopify app store search results</title>
    <description><![CDATA[ <div class=""><p>Apps that are <strong>strongly-matched to brand term searches</strong> will now be highlighted in search results.</p>
<ul>
<li>When a merchant searches for a specific app (e.g. Shopify Inbox), we use organic search results and behavioral data to find the matching app. The high-match app is now prominently featured at the top of search results, above ads. </li>
<li>This treatment is automatically applied when your app listing is optimized and shows strong branded search match.</li>
<li>Make sure your app has a specific brand name and follow our <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#5-app-listing" target="_blank" class="body-link">best practices</a> around improving organic search.</li>
</ul>
<p>In addition, we’ve <strong>removed the list of restricted keywords</strong> previously implemented for search ads. </p>
<ul>
<li>More keywords are now available for bidding, including previously restricted brand terms. </li>
<li>We are ensuring a more equitable advertising environment and to align Shopify's ad products with industry standards and the familiar patterns of other search ad platforms.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 18 Nov 2024 14:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/strongly-matched-apps-will-be-highlighted-in-shopify-app-store-search-results</link>
  </item>
  <item>
    <title>Edit customer account menu including adding full-page extensions </title>
    <description><![CDATA[ <div class=""><p>As a part of the <a href="https://shopify.dev/docs/apps/build/customer-accounts" target="_blank" class="body-link">Customer Account Extensibility Developer Preview</a>,  you can now add, remove, or edit menu items in your customer account header menu. This update helps you better understand how merchants will be able to add any type of link to their customer accounts main menu.</p>
<p>Included in this update:</p>
<p><strong>All full-page extensions are now linkable</strong> -  Before this update, full-page extensions had to be explicitly declared as linkable. Now, all full-page extensions will be linkable by default and merchants will be prompted in the checkout &amp; accounts editor to add a link to your full-page extension in the header menu. To take advantage of this change, deploy a new version of your extension. </p>
<p><a href="https://shopify.dev/docs/apps/build/customer-accounts/full-page-extensions#prevent-direct-linking" target="_blank" class="body-link">To prevent merchants from linking to your page, declare your extension as not linkable</a>.</p>
<p><strong>Add any type of link</strong>  - Including links to default online store pages (products, collections, pages), customer account pages (order, profile and settings), customer account apps (full-page extensions), as well as any URL. By default, the menu will link to online store (Home), and Orders.</p>
<p><strong>Use the same menu across online store &amp; customer accounts</strong> -  Merchants will be able to use the same menu in their online store and customer accounts.</p>
<p><strong>Navigation has moved</strong> -  You can now find the navigation tool in Admin &gt; Content &gt; Menus. It has been moved from its original location of Online Store &gt; Navigation. </p>
<p>You can learn more about full-page extensions <a href="https://shopify.dev/docs/apps/build/customer-accounts/full-page-extensions" target="_blank" class="body-link">here</a>. </p>
</div> ]]></description>
    <pubDate>Fri, 15 Nov 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/edit-customer-account-menu-including-adding-full-page-extensions</link>
  </item>
  <item>
    <title>`manualPaymentGateway` field added to `orderTransaction` object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2025-01, the <code>manualPaymentGateway</code> field will be added to <code>orderTransaction</code> object. This field indicates if the transaction is processed by a manual payment gateway.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Nov 2024 12:56:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/manualpaymentgateway-field-added-to-ordertransaction-object</link>
  </item>
  <item>
    <title>Built for Shopify category-specific criteria are now available</title>
    <description><![CDATA[ <div class=""><p>Category-specific criteria are now available. This feature gives developers more clarity on the <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/category-achievement-criteria" target="_blank" class="body-link">category-specific criteria</a> that apply to certain Built for Shopify apps. To view or update your app's category, check its distribution page in your Partner Dashboard.</p>
<p>Your app's pre-selected category is based on its categorization in the Shopify App Store. You can update your category based on your app's functionality. Built for Shopify reviewers have final approval on all categorizations.</p>
<p>Starting in January 2025, all Built for Shopify reviews will require accurate categorization. This applies to existing Built for Shopify apps, as well as new applications.</p>
</div> ]]></description>
    <pubDate>Thu, 14 Nov 2024 17:30:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/built-for-shopify-category-specific-criteria-are-now-available</link>
  </item>
  <item>
    <title>Conditionally disable gift cards in checkout using custom logic with the Payment Customization API </title>
    <description><![CDATA[ <div class=""><p>As of Nov 12, 2024, you can use the HideOperation in the Payment Customization Function API to disable native gift card functionality and Shopify-integrated third-party gift card systems. Disabling gift cards hides the gift card field, removes any applied gift cards, and prevents any gift cards from being applied by UI extensions.</p>
<p>The ability to disable the gift card field is available in the unstable API version and will be released to the stable 2025-01 API version.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/checkout/payments" target="_blank" class="body-link">payment customizations</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 12 Nov 2024 21:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/conditionally-disable-gift-cards-in-checkout-using-custom-logic-with-the-payment-customization-api</link>
  </item>
  <item>
    <title>Marketing Activity Extensions can be migrated to CLI</title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI 3.70, existing Marketing Activity Extensions can be migrated from the Partner Dashboard to CLI. Learn more about how to import and migrate your Marketing Activity Extensions to CLI <a href="https://shopify.dev/docs/apps/build/marketing-analytics/marketing-activities" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Tue, 12 Nov 2024 21:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/marketing-activity-extensions-can-be-migrated-to-cli</link>
  </item>
  <item>
    <title>Changes to our Font Library</title>
    <description><![CDATA[ <div class=""><p>As part of a move towards open-source fonts, and in an effort to refine our font offerings, we have deprecated some fonts in our library. We’re also expanding the library of open-source fonts, with <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/fonts#available-fonts" target="_blank" class="body-link">32 new high quality typefaces</a> available today.</p>
<p>Action Required: For theme developers with published themes in the Shopify theme store using any of the <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/fonts#deprecated-fonts" target="_blank" class="body-link">deprecated fonts</a>, <strong>please replace your default font for each preset by January 3, 2025.</strong> We have provided recommended replacements in the developer documentation that maintain a similar style to the deprecated font, or you can choose any other available font from our library.</p>
<p>Merchants who are currently using deprecated fonts will be prompted to make updates at a later date.</p>
<p>Update August 2025: Most merchants' fonts will be automatically updated to a recommended font of a similar style. See <a href="https://shopify.dev/changelog/font-library-updates-automatic-replacement-for-deprecated-fonts" target="_blank" class="body-link">this post</a> for further details.</p>
</div> ]]></description>
    <pubDate>Tue, 12 Nov 2024 18:01:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/changes-to-our-font-library</link>
  </item>
  <item>
    <title>Built for Shopify Fulfillment services assessments category specific criteria</title>
    <description><![CDATA[ <div class=""><p>The Built for Shopify <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/category-achievement-criteria#fulfillment-services-apps" target="_blank" class="body-link">category-specific criteria assessments</a> are now available for Fulfillment service apps. You can review whether these requirements apply to your Built for Shopify app by checking its distribution page through your Partner Dashboard.</p>
<p>These assessments apply to existing Built for Shopify apps, as well as new applications.</p>
</div> ]]></description>
    <pubDate>Thu, 07 Nov 2024 20:29:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/built-for-shopify-fulfillment-services-assessments-category-specific-criteria</link>
  </item>
  <item>
    <title>POS Legacy Extensions Will Be Deprecated in February 2025</title>
    <description><![CDATA[ <div class=""><p>On February 28, 2025, POS Links, POS cart app extensions, and POS product recommendations will be deprecated. Developers and merchants will no longer be able to view or access these extensions in Shopify POS. </p>
<p>We recommend you rebuild legacy extensions with <a href="https://shopify.dev/docs/api/pos-ui-extensions" target="_blank" class="body-link">POS UI Extensions</a>. Not only do POS UI Extensions have extensive capabilities today, but we’ll continue to grow these capabilities into the future. </p>
<p><strong>POS Links:</strong></p>
<ul>
<li>Recommendation: Rebuild using <a href="https://shopify.dev/docs/api/pos-ui-extensions" target="_blank" class="body-link">POS UI Extensions</a></li>
<li>Alternative: Embed your app within Shopify POS using the Partner Dashboard. Note that merchants can manually add and access these from the smart grid.</li>
</ul>
<p><strong>Cart App Extensions and Product Recommendation Extensions:</strong></p>
<ul>
<li>Recommendation: Rebuild using <a href="https://shopify.dev/docs/api/pos-ui-extensions" target="_blank" class="body-link">POS UI Extensions</a>. POS UI extensions provide necessary components and APIs to develop extensions that run natively on Shopify POS.</li>
</ul>
<p>If you have any questions, please contact <a href="https://help.shopify.com/en/support/partners/org-select" target="_blank" class="body-link">partner support</a> for assistance. </p>
</div> ]]></description>
    <pubDate>Wed, 06 Nov 2024 13:55:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>POS Extensions</category>
    <link>https://shopify.dev/changelog/pos-legacy-extensions-will-be-deprecated-in-february-2025</link>
  </item>
  <item>
    <title>Remove `metafieldDelete` in favor of `metafieldsDelete`</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-01</code> the <code>metafieldDelete</code> Admin API method is being removed. The <code>metafieldsDelete</code> method should be used instead. The former relies on the Metafield GID, while the latter takes an array of Metafield Identifiers composed of <code>ownerId</code>, <code>namespace</code>, and <code>key</code>. Note that the Metafield GID is not an option in <code>metafieldsDelete</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Nov 2024 16:46:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/remove-metafielddelete-in-favor-of-metafieldsdelete</link>
  </item>
  <item>
    <title>Updates to Shopify’s Standard Product Taxonomy - October 2024</title>
    <description><![CDATA[ <div class=""><p>As of the latest Shopify’s Standard Product Taxonomy version <code>2024-10</code>, you can now find additional categories, attributes and values across product areas such as Apparel &amp; Accessories, Home &amp; Garden, Sporting Goods, and more. The taxonomy is an evolving library that’s informed by user feedback and market insights, with each release aiming to help you more accurately classify your products.</p>
<p>More details about this update can be found in the <a href="https://github.com/Shopify/product-taxonomy/releases/tag/v2024-10" target="_blank" class="body-link">release notes</a>. </p>
</div> ]]></description>
    <pubDate>Mon, 04 Nov 2024 23:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/updates-to-shopify-s-standard-product-taxonomy-october-2024</link>
  </item>
  <item>
    <title>GraphQL Over HTTP</title>
    <description><![CDATA[ <div class=""><p>The handling of GraphQL requests via HTTP will evolve slightly as of <code>2025-01</code> API versions in accordance with the <a href="https://graphql.github.io/graphql-over-http" target="_blank" class="body-link">GraphQL over HTTP spec</a>. These changes refine how a request's <code>Content-Type</code> and <code>Accept</code> headers work, and offer additional granularity in response status codes.</p>
<h2>New response format</h2>
<p>A new <code>application/graphql-response+json</code> response format is available. Requests may select this format using the <code>Accept</code> header, for example:</p>
<p><code>Accept: application/graphql-response+json, application/json</code></p>
<p>The above favors receiving a <code>application/graphql-response+json</code> response by listing it first. This new format is the same as JSON aside from its status codes:</p>
<h3><code>200 OK</code></h3>
<ul>
<li>For <code>application/graphql-response+json</code>, this status indicates that the JSON payload was valid and that the submitted GraphQL document <em>attempted</em> execution on the server. Note that the response payload may still contain errors encountered during execution along with partial data.</li>
<li>For <code>application/json</code>, this status only indicates that the JSON payload was valid.</li>
</ul>
<h3><code>400 Bad Request</code></h3>
<ul>
<li>For <code>application/graphql-response+json</code>, this status indicates that the JSON payload was invalid, or that the submitted GraphQL parameters failed static validation and were not executed.</li>
<li>For <code>application/json</code>, this status only indicates that the JSON payload was invalid.</li>
</ul>
<h2>Usage summary</h2>
<p>For requests to <code>2025-01</code> versions and after:</p>
<ul>
<li>Use the <code>/graphql</code> endpoint. Using <code>/graphql.json</code> will automatically respond with <code>application/json</code> as it does now.</li>
<li>The request body must contain a <a href="https://graphql.github.io/graphql-over-http/draft/#sec-JSON-Encoding" target="_blank" class="body-link">spec JSON encoding</a>.</li>
<li>The <code>Content-Type</code> header <em>must</em> specify <code>application/json</code>. The legacy <code>application/graphql</code> request format is no longer supported. Requests with no supported content type will receive a <code>415 Unsupported Media Type</code> response.</li>
<li>The <code>Accept</code> header now supports <code>application/graphql-response+json</code> and/or <code>application/json</code> response formats. Requests with no supported accept types will receive a <code>406 Not Acceptable</code> response.</li>
<li>Accepting <code>*/*</code> will default to a <code>application/graphql-response+json</code> response.</li>
</ul>
<p>These changes do NOT affect <code>unstable</code> versions at this time, or Storefront API. A breaking change announcement with migration timeline will be announced prior to any unstable transition.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Nov 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>Payments Apps API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/graphql-over-http</link>
  </item>
  <item>
    <title>Content type `application/graphql` is deprecated</title>
    <description><![CDATA[ <div class=""><p>The <code>Content-Type: application/graphql</code> request format is deprecated and will no longer be accepted as of 2025-01 schema versions. As of <code>2025-01</code> schemas, all requests must specify <code>Content-Type: application/json</code> and post a <a href="https://graphql.github.io/graphql-over-http/draft/#sec-JSON-Encoding" target="_blank" class="body-link">spec encoded body</a>. See <a href="https://shopify.dev/changelog/graphql-over-http" target="_blank" class="body-link">GraphQL Over HTTP</a> update for more details.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Nov 2024 15:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>Payments Apps API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/content-type-application-graphql-is-deprecated</link>
  </item>
  <item>
    <title>Removing `multiLocation` field from `ShopFeatures`</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2025-01</strong> release of the Admin GraphQL API, the deprecated <code>multiLocation</code> field on <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopFeatures" target="_blank" class="body-link">ShopFeatures</a> will be removed.</p>
<p>Use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/locationsCount" target="_blank" class="body-link">locationsCount</a> query to determine how many locations a shop has.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Nov 2024 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/removing-multilocation-field-from-shopfeatures</link>
  </item>
  <item>
    <title>Merchants can now view your app extension collections </title>
    <description><![CDATA[ <div class=""><p>As of Oct 31, 2024, merchants can now manage their apps using the new Apps tab, which includes app extension collections.</p>
<p>Note: If your app contains customer account UI extensions, these extensions won't be shown to merchants until customer account UI extensions is released in December. </p>
<p>Learn more about the Apps tab in the <a href="https://help.shopify.com/en/manual/checkout-settings/customize-checkout-configurations/checkout-apps#apps-editor" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 31 Oct 2024 14:15:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/merchants-can-now-view-your-app-extension-collections</link>
  </item>
  <item>
    <title>Metaobject and metaobject_list theme settings now available</title>
    <description><![CDATA[ <div class=""><p>We've added two new theme setting types: <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/input-settings#metaobject" target="_blank" class="body-link"><code>metaobject</code></a> and <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/input-settings#metaobject_list" target="_blank" class="body-link"><code>metaobject_list</code></a> so theme and app developers can write sections and blocks that consume <a href="https://shopify.dev/docs/apps/build/custom-data#about-metaobjects" target="_blank" class="body-link">metaobjects</a> of a specified type.</p>
<p>For theme store themes, developers must only use <a href="https://shopify.dev/docs/apps/build/custom-data/metaobjects/list-of-standard-definitions" target="_blank" class="body-link">standard metaobject definitions</a> since custom metaobject definitions are unique to a store. </p>
<p>Learn more about the new <code>metaobject</code> and <code>metaobject_list</code> theme settings on <a href="https://shopify.dev/docs/storefronts/themes/architecture/settings/input-settings#metaobject" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 30 Oct 2024 16:01:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/metaobject-and-metaobject_list-theme-settings-now-available</link>
  </item>
  <item>
    <title>Hydrogen October 2024 release</title>
    <description><![CDATA[ <div class=""><p>Hydrogen v2024.10.0 is out today. The October 2024 Hydrogen release supports the 2024-10 Storefront API and contains several optimizations and bug fixes, including:</p>
<ul>
<li>Cart <code>warnings</code> support (<a href="https://github.com/Shopify/hydrogen/pull/2572" target="_blank" class="body-link">#2572</a>)</li>
<li>Product option updates (<a href="https://github.com/Shopify/hydrogen/pull/2585" target="_blank" class="body-link">#2538</a>)</li>
<li>Hydrogen supports worker compatibility date (<a href="https://github.com/Shopify/hydrogen/pull/2380" target="_blank" class="body-link">#2380</a>)</li>
<li>Shopify cookie banner no longer is the default set up in skeleton (<a href="https://github.com/Shopify/hydrogen/pull/2588" target="_blank" class="body-link">#2588</a>)</li>
<li>Update <code>createWithCache</code> (<a href="https://github.com/Shopify/hydrogen/pull/2546" target="_blank" class="body-link">#2546</a>)</li>
<li>Release stable sitemaps utility functions (<a href="https://github.com/Shopify/hydrogen/pull/2589" target="_blank" class="body-link">#2589</a>)</li>
<li>Decode product variant encoding functions (<a href="https://github.com/Shopify/hydrogen/pull/2425" target="_blank" class="body-link">#2425</a>)</li>
<li>Route warnings (<a href="https://github.com/Shopify/hydrogen/pull/2613" target="_blank" class="body-link">#2613</a>)</li>
<li>Analytics fixes (<a href="https://github.com/Shopify/hydrogen/pull/2538" target="_blank" class="body-link">#2538</a>)</li>
<li>Optimistic cart banner (<a href="https://github.com/Shopify/hydrogen/pull/2502" target="_blank" class="body-link">#2502</a>)</li>
<li>Aside improvements (<a href="https://github.com/Shopify/hydrogen/pull/2503" target="_blank" class="body-link">#2503</a>)</li>
<li>Use datalist for query suggestions (<a href="https://github.com/Shopify/hydrogen/pull/2506" target="_blank" class="body-link">#2506</a>)</li>
<li>Remove unstable re-exports from remix-oxygen package (<a href="https://github.com/Shopify/hydrogen/pull/2551" target="_blank" class="body-link">#2551</a>)</li>
<li>Update MiniOxygen to latest workerd version (<a href="https://github.com/Shopify/hydrogen/pull/2567" target="_blank" class="body-link">#2567</a>)</li>
<li><code>&lt;Image/&gt;</code> local asset fix (<a href="https://github.com/Shopify/hydrogen/pull/2573" target="_blank" class="body-link">#2573</a>)</li>
<li>Update <code>&lt;ProductPrice&gt;</code> to remove deprecated code usage for <code>priceV2</code> and <code>compareAtPriceV2</code>. Remove export for <code>getCustomerprivacy</code> (<a href="https://github.com/Shopify/hydrogen/pull/2601" target="_blank" class="body-link">#2601</a>)</li>
<li>Remove deprecated <code>--worker</code> Shopify CLI flag (<a href="https://github.com/Shopify/hydrogen/pull/2603" target="_blank" class="body-link">#2603</a>)</li>
<li>Allow generated codegen files to be placed anywhere in the directory (<a href="https://github.com/Shopify/hydrogen/pull/2600" target="_blank" class="body-link">#2600</a>)</li>
<li>Add optional headers param for customer logout redirect (<a href="https://github.com/Shopify/hydrogen/pull/2602" target="_blank" class="body-link">#2602</a>)</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/october-2024-release-storefront-api-2024-10" target="_blank" class="body-link">Hydrogen October 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Wed, 30 Oct 2024 04:45:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/hydrogen-october-2024-release</link>
  </item>
  <item>
    <title>Change to metafield type handling in liquid</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>Effectively immediately, metafields without a <code>type</code> value will return &quot;string&quot; instead of <code>blank</code>. For example, this check will no longer be true</p>
<pre><code class="language-liquid">{% if metafield.type == blank %}
  This will no longer render.
{% endif %}
</code></pre>
<p>Instead, a value of <code>string</code> will be returned:</p>
<pre><code class="language-liquid">{% if metafield.type == 'string' %}
  This metafield is of type `string`.
{% endif %}
</code></pre>
</div> ]]></description>
    <pubDate>Mon, 28 Oct 2024 19:47:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/change-to-metafield-type-handling-in-liquid</link>
  </item>
  <item>
    <title>Updates to Theme Information Access in Shopify</title>
    <description><![CDATA[ <div class=""><p><strong>Action Required:</strong>
Developers currently using the BOOMR variables for theme identification and customization should begin transitioning to <code>window.Shopify.theme</code> properties. The BOOMR variables will be removed on 31/01/2025, after which <code>window.Shopify.theme.schema_name</code> and <code>window.Shopify.theme.schema_version</code> should be used exclusively.</p>
<p><strong>Deprecation of BOOMR Script:</strong>
The BOOMR (Boomerang) JavaScript library was used for collecting Web Performance data on storefronts and it’s now been replaced with a leaner and more conformant library.
Some theme and app developers had been relying on a few variables set by BOOMR. These variables include:</p>
<ul>
<li><code>BOOMR.themeName</code></li>
<li><code>BOOMR.themeVersion</code></li>
</ul>
<p>These variables will continue to be available until 31st Janurary 2025, allowing developers to transition to the new method of accessing theme information.</p>
<p><strong>Introduction of Enhanced Theme Information on window.Shopify.theme:</strong>
In response to developer feedback, we are enhancing the <code>window.Shopify.theme</code> object. Starting today, it will include two new properties:</p>
<ul>
<li><code>schema_name</code>: Reflects the <code>name</code> attribute from the theme's <code>settings_schema.json</code>.</li>
<li><code>schema_version</code>: Reflects the <code>version</code> attribute from the theme's <code>settings_schema.json</code>.</li>
</ul>
<p>These additions aim to provide a standardized and reliable method for accessing theme information directly from the Shopify global object.</p>
</div> ]]></description>
    <pubDate>Mon, 28 Oct 2024 16:47:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/updates-to-theme-information-access-in-shopify</link>
  </item>
  <item>
    <title>Web pixels now support checkout error events</title>
    <description><![CDATA[ <div class=""><p>We’re rolling out new standard events to web pixels that enable you to better understand the issues that buyers encounter in checkout. Merchants can now capture specific alerts seen by buyers, such as inline field validations and page-level alerts, and errors from Checkout UI Extensions. Any pixels subscribing to all standard events will automatically receive these new types.</p>
<p>Learn more about the new events <a href="https://shopify.dev/docs/api/web-pixels-api/standard-events" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 28 Oct 2024 13:50:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/web-pixels-now-support-checkout-error-events</link>
  </item>
  <item>
    <title>Breaking Changes to CAPTCHA protection on Storefront forms</title>
    <description><![CDATA[ <div class=""><p>From the week commencing 28th October 2024, the following changes to CAPTCHA protection will occur:</p>
<p><strong>Legacy Customer Accounts: Removal of the <code>/challenge</code> page for Login, Create Account and Reset Password flows</strong> </p>
<p>If hCaptcha is enabled in Admin for these forms, they will now require a valid hCaptcha token as part of the form submission, otherwise a 400 error response will be returned.</p>
<p>Form submissions that fail the hCaptcha assessment will also return a 400 error response.</p>
<p>The vast majority of form submissions already comply with this requirement, due to hCaptcha being automatically wired up to forms with the correct markup. More information is available in the <a href="https://shopify.dev/docs/storefronts/themes/trust-security/captcha#how-captcha-is-included-in-themes" target="_blank" class="body-link">dev docs</a></p>
<p><strong>Full deprecation of reCAPTCHA on Storefront forms</strong> </p>
<p>The recent migration to hCaptcha on all Storefront forms is now complete. Applications or themes that have bespoke code that submits a reCAPTCHA v3 token (site key <code>6LeHG2ApAAAAAO4rPaDW-qVpPKPOBfjbCpzJB9ey</code>) will need to update to use hCaptcha. All form submissions containing a <code>recaptcha-v3-token</code> field will result in a 400 error response.</p>
<p>Again, the vast majority of form submissions already comply with this requirement. If you application or theme invokes the reCAPTCHA api directly, ie via methods on <code>window.grecaptcha</code> then you will need to make changes. More information on wiring forms with hCaptcha using methods supported by Shopify is available in the <a href="https://shopify.dev/docs/storefronts/themes/trust-security/captcha#how-captcha-is-included-in-themes" target="_blank" class="body-link">dev docs</a></p>
</div> ]]></description>
    <pubDate>Mon, 28 Oct 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-captcha-protection-on-storefront-forms</link>
  </item>
  <item>
    <title>Update to `fulfillmentHold.heldByApp` field from `fulfillmentHold.heldBy` field</title>
    <description><![CDATA[ <div class=""><p>As of the <code>2025-01</code> API version, the <code>heldBy</code> string field on the <code>fulfillmentHold</code> GraphQL object will be replaced by the newly introduced <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/fulfillmentHold#field-heldbyapp" target="_blank" class="body-link"><code>heldByApp</code></a> object field. </p>
<p>This new field provides access to all attributes of the <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/objects/app" target="_blank" class="body-link">App object</a>, unlike the deprecated <code>heldBy</code> field, which only indicated the app's title.</p>
<p>If you currently query <code>fulfillmentHold.heldBy</code>, you should transition to querying <code>fulfillmentHold.heldByApp.title</code>.</p>
</div> ]]></description>
    <pubDate>Thu, 24 Oct 2024 11:23:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/update-to-fulfillmenthold-heldbyapp-field-from-fulfillmenthold-heldby-field</link>
  </item>
  <item>
    <title>Limit for full-page extensions in customer accounts</title>
    <description><![CDATA[ <div class=""><p>A full-page extension target (<code>customer-account.page.render</code> or <code>customer-account.order.page.render</code>) can no longer coexist with any other targets in the same extension. This change improves performance and provides a better merchant experience in the checkout and accounts editor. If your full-page extension is best used with other extensions in your app, create an <a href="https://shopify.dev/docs/apps/build/customer-accounts/editor-extension-collections" target="_blank" class="body-link">editor extension collection</a> to encourage merchants to add all the extensions in the collection.</p>
<p>This change will only impact the deployment of new extensions or new versions of existing extensions. Existing extensions will not be affected until a new version is deployed.</p>
</div> ]]></description>
    <pubDate>Mon, 21 Oct 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/limit-for-full-page-extensions-in-customer-accounts</link>
  </item>
  <item>
    <title>Built for Shopify update to grace period for programmatically assessed criteria</title>
    <description><![CDATA[ <div class=""><p>The grace period for the following criteria have been <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/regain-lost-status#criteria" target="_blank" class="body-link">extended to 60 days from the current 30</a>:</p>
<ul>
<li>Minimizes impact on store speed	</li>
<li>Minimizes impact on checkout speed	</li>
<li>Admin performance: meets 75th percentile Web Vitals targets	</li>
<li>Minimum number of installs	</li>
<li>Minimum number of reviews	</li>
<li>Minimum app rating</li>
</ul>
<p>The grace period for <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/category-achievement-criteria#fulfillment-services-apps" target="_blank" class="body-link">Fulfillment services</a> and <a href="https://shopify.dev/docs/apps/launch/built-for-shopify/category-achievement-criteria#carrier-services-apps" target="_blank" class="body-link">Carrier services</a> criteria will also be set to 60 days when enforcement begins.</p>
</div> ]]></description>
    <pubDate>Thu, 17 Oct 2024 19:16:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/built-for-shopify-update-to-grace-period-for-programmatically-assessed-criteria</link>
  </item>
  <item>
    <title>Storefront API Cart now supports removing Gift Cards</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-01 of the GraphQL Storefront API, Cart now supports removing Gift Cards by Id.</p>
<p>After a cart has been created and a Gift Card applied - perform the <a href="https://shopify.dev/docs/api/storefront/2025-01/mutations/cartGiftCardCodesRemove" target="_blank" class="body-link"><code>cartGiftCardCodesRemove</code></a> mutation to remove one or more gift cards.</p>
</div> ]]></description>
    <pubDate>Wed, 16 Oct 2024 10:37:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-now-supports-removing-gift-cards</link>
  </item>
  <item>
    <title>Shopify App Store apps require the latest App Bridge</title>
    <description><![CDATA[ <div class=""><p>Starting October 15th, 2025, all Shopify App Store apps that appear in the Shopify admin must use the <a href="https://shopify.dev/docs/api/app-bridge-library#getting-started" target="_blank" class="body-link">latest Shopify App Bridge</a> by adding the <code>app-bridge.js</code> script tag to the <code>&lt;head&gt;</code> of each document of your app.</p>
</div> ]]></description>
    <pubDate>Tue, 15 Oct 2024 17:31:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-app-store-apps-require-the-latest-app-bridge</link>
  </item>
  <item>
    <title>API `StringConnection` includes `nodes` field</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2025-01</code>, you can access <code>StringConnection.nodes</code> field shorthand to retrieve an array of strings directly instead of via <code>edges</code>. This connection type is now consistent with other connection types in the schema.</p>
<p>Learn more about <code>StringConnection</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2025-01/connections/StringConnection" target="_blank" class="body-link">GraphQL Admin API</a> and <a href="https://shopify.dev/docs/api/storefront/2025-01/connections/StringConnection" target="_blank" class="body-link">Storefront API</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 14 Oct 2024 21:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Storefront GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/api-stringconnection-includes-nodes-field</link>
  </item>
  <item>
    <title>Deep link to editor extension collections</title>
    <description><![CDATA[ <div class=""><p>You can now deep link to editor extension collections in the checkout and accounts editor. This is only available on development stores.</p>
<p>When editor extension collections are released to merchants, you can start deep linking to editor extension collections from your app onboarding to streamline the merchant experience.</p>
<p>Learn more on <a href="https://shopify.dev/docs/apps/build/customer-accounts/editor-extension-collections/editor-extension-collections-ux-guidelines#deep-linking-to-a-collection" target="_blank" class="body-link">Shopify.dev</a> </p>
</div> ]]></description>
    <pubDate>Fri, 11 Oct 2024 18:35:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/deep-link-to-editor-extension-collections</link>
  </item>
  <item>
    <title>Checkout UI extensions - Extensions in the reductions render before/after targets will now render in the header order summary on 1 page mobile checkouts</title>
    <description><![CDATA[ <div class=""><p>As of October 11, 2024, checkout UI extensions targeting the <code>purchase.checkout.reductions.render-before</code> and <code>purchase.checkout.reductions.render-after</code> extension targets will now render in the order summary at the top of the page for one page mobile checkouts. Previously, extensions in these targets would only appear in the order summary at the bottom of the page. This will apply to checkout UI extensions on all API versions.</p>
<p>For more details, please follow up in the <a href="https://github.com/Shopify/ui-extensions/issues/2218" target="_blank" class="body-link">github issue in our public repo</a></p>
</div> ]]></description>
    <pubDate>Fri, 11 Oct 2024 17:13:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkout-ui-extensions-extensions-in-the-reductions-render-before-after-targets-will-now-render-in-the-header-order-summary-on-1-page-mobile-checkouts</link>
  </item>
  <item>
    <title>Shopify Payments Payout Summary GraphQL surfaces advance fees and advance gross fields</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](https://shopify.dev/docs/api/admin-graphql/2024-10/enums/ShopifyPaymentsTransactionType).
-->

<p>As of GraphQL Admin API version <strong>2024-10</strong>, ShopifyPaymentsPayoutSummary now surfaces <code>ADVANCE_FEES</code> and <code>ADVANCE_GROSS</code> fields. </p>
<p>Learn more about <code>ShopifyPaymentsPayoutSummary</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/ShopifyPaymentsPayoutSummary" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 10 Oct 2024 22:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/shopify-payments-payout-summary-graphql-surfaces-advance-fees-and-advance-gross-fields</link>
  </item>
  <item>
    <title>Shopify Function resource limits now scale with cart size</title>
    <description><![CDATA[ <div class=""><p>Certain Shopify Function resource limits now scale proportionally to the number of line items in the cart. Starting at 200 line items, your Shopify Function runs will be able to use more resources than before. </p>
<p>This change applies to all Shopify Function runs that include cart lines in their input query.</p>
<p>Learn more about dynamic resource limits and how they're calculated for Shopify Functions on <a href="https://shopify.dev/docs/api/functions#resource-limits" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 10 Oct 2024 18:54:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-function-resource-limits-now-scale-with-cart-size</link>
  </item>
  <item>
    <title>Install Attributions in Partners Merchant Export</title>
    <description><![CDATA[ <div class=""><p>The merchant export in Partners now provides an &quot;Attribution&quot; column that specifies installs that are attributable to Shopify App Store ad clicks. For more information on the Partners merchant export, <a href="https://shopify.dev/docs/apps/launch/distribution/track-app-usage#view-active-merchant-installs" target="_blank" class="body-link">see here</a></p>
</div> ]]></description>
    <pubDate>Wed, 09 Oct 2024 22:09:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/install-attributions-in-partners-merchant-export</link>
  </item>
  <item>
    <title>`lineItem` connection is no longer deprecated on `FulfillmentOrderLineItem` resource</title>
    <description><![CDATA[ <div class=""><p>As of today, you can use the <code>lineItem</code> on <code>FulfillmentOrderLineItem</code> without planning for deprecation. This applies to all API versions.</p>
<p>Learn more about <code>FulfillmentOrderLineItem.lineItem</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/FulfillmentOrderLineItem#field-lineitem" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 07 Oct 2024 13:56:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/lineitem-connection-is-no-longer-deprecated-on-fulfillmentorderlineitem-resource</link>
  </item>
  <item>
    <title>Updated CalculateExchangeLineItemInput and CalculatedExchangeLineItem Variant nullability </title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API <code>2025-01</code> version, <code>CalculateExchangeLineItemInput.variantId</code> and <code>CalculatedExchangeLineItem.variant</code> fields are nullable at schema level.</p>
<p>This is in preparation of future feature changes. In the current state <code>CalculateExchangeLineItemInput.variantId</code> will still be validated via a returned error if not present.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/CalculateExchangeLineItemInput" target="_blank" class="body-link">CalculateExchangeLineItemInput</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/CalculatedExchangeLineItem" target="_blank" class="body-link">CalculatedExchangeLineItem</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 07 Oct 2024 09:52:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/updated-calculateexchangelineiteminput-and-calculatedexchangelineitem-variant-nullability</link>
  </item>
  <item>
    <title>Add `accountOpenerName` to `shopifyPaymentsAccount`</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2025-01, the <code>accountOpenerName</code> field will be added to <code>shopifyPaymentsAccount</code></p>
</div> ]]></description>
    <pubDate>Fri, 04 Oct 2024 17:26:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/add-accountopenername-to-shopifypaymentsaccount</link>
  </item>
  <item>
    <title>Bulk query operation userErrors now includes code field</title>
    <description><![CDATA[ <div class=""><p>As of version 2025-01, the <code>userErrors</code> field that is returned by the GraphQL Admin API <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunMutation" target="_blank" class="body-link"><code>bulkOperationRunMutation</code></a> includes an optional <code>code</code> field. </p>
<p>The GraphQL type for the <code>userErrors</code> field changes from a <code>UserErrors</code> type to a <code>BulkOperationUserError</code> type. However, the <code>userErrors</code> field name remains unchanged.</p>
<pre><code class="language-graphql">mutation bulkOperationRunMutation($clientIdentifier: String, $mutation: String!, $stagedUploadPath: String!) {
  bulkOperationRunMutation(clientIdentifier: $clientIdentifier, mutation: $mutation, stagedUploadPath: $stagedUploadPath) {
    bulkOperation {
      # BulkOperation fields
    }
    userErrors { # Type is now BulkOperationUserError instead of UserErrors
      field
      message
      code # New field added in 2025-01
    }
  }
}
</code></pre>
<p>This shows the changes to the GraphQL <code>type</code> that is used for the <code>userErrors</code> field above:</p>
<pre><code># Before (pre-2025-01)
type UserErrors {
  field: String
  message: String
}

# After (2025-01+)
type BulkOperationUserError {
  field: String
  message: String
  code: String  # New optional field
}
</code></pre>
<p>The query syntax remains unchanged despite the type change.</p>
</div> ]]></description>
    <pubDate>Wed, 02 Oct 2024 13:02:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/bulk-query-operation-usererrors-now-includes-code-field</link>
  </item>
  <item>
    <title>Shopify Payments Balance Transaction GraphQL type supports advance and advance funding type</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](https://shopify.dev/docs/api/admin-graphql/2024-10/enums/ShopifyPaymentsTransactionType).
-->

<p>As of GraphQL Admin API version <strong>2024-10</strong>, ShopifyPaymentsTransactionType now includes <code>ADVANCE</code> and <code>ADVANCE_FUNDING</code> type. </p>
<p>Learn more about <code>ShopifyPaymentsTransactionType</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/enums/ShopifyPaymentsTransactionType" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 22:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/shopify-payments-balance-transaction-graphql-type-supports-advance-and-advance-funding-type</link>
  </item>
  <item>
    <title>Exposing Business Entity fields on Admin API</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of GraphQL Admin API version <strong>2024-10</strong>, Business Entity attributes will be available for use as a GraphQL object and across relevant types.</p>
<p>You will now be able to query for properties related to the Business Entities that are enabled on your shop and request for these fields on objects that can be associated to a Business Entity.</p>
<p>Business Entity identifiers will also be available on the Order REST Admin API version <strong>2024-10</strong> as well as on webhook payloads.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 21:57:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Storefront GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/exposing-business-entity-fields-on-admin-api</link>
  </item>
  <item>
    <title>Shopify Payments GraphQL Admin API supports querying a list of disputes</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of GraphQL Admin API version <strong>2024-10</strong>, querying for all disputes for a given shop will be available for use as a GraphQL connection. </p>
<p>Learn more about <code>ShopifyPaymentsDispute</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/ShopifyPaymentsDispute" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 21:57:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/shopify-payments-graphql-admin-api-supports-querying-a-list-of-disputes</link>
  </item>
  <item>
    <title>Added `variant_strategy` for `productOptionsCreate`</title>
    <description><![CDATA[ <div class=""><p>In the version 2024-10 release of the Admin GraphQL API, the <code>productOptionsCreate</code> mutation will include a <code>variantStrategy</code> parameter, enhancing control over variant management when adding new product options. This new parameter allows for two strategies:</p>
<ul>
<li><code>LEAVE_AS_IS</code>: Maintains existing variants, updating them to include new option values without creating new variants as necessary.</li>
<li><code>CREATE</code>: Generates new variants for all possible combinations of option values.
This enhancement allows for more precise control over product variant configuration and inventory management.</li>
</ul>
<p>For more detailed information and examples, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productOptionsCreate" target="_blank" class="body-link">productOptionsCreate documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 21:13:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/added-variant_strategy-for-productoptionscreate</link>
  </item>
  <item>
    <title>Adding `requiresComponents` field to `ProductVariantsBulkInput`</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-10 version of the GraphQL Admin API, the <code>requiresComponents</code> field available in <code>ProductVariantInput</code> has been added to <code>ProductVariantsBulkInput</code>.</p>
<p>This field allows variants to be marked as bundles that require components in order to be sold.</p>
<p>Learn more about <code>requiresComponents</code> and <code>ProductVariantsBulkInput</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/ProductVariantsBulkInput" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 20:18:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/adding-requirescomponents-field-to-productvariantsbulkinput</link>
  </item>
  <item>
    <title>New `CollectionsCount` query in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code> version, we are adding <code>CollectionsCount</code> query to the Admin GraphQL API. </p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/CollectionsCount" target="_blank" class="body-link">CollectionsCount</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 18:55:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-collectionscount-query-in-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Metafield Definition Webhooks</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API Version 2024-10, you can subscribe to MetafieldDefinition changes under the webhook topics <code>metafield_definitions/create</code>, <code>metafield_definitions/update</code>, and <code>metafield_definitions/delete</code></p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 18:47:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Webhook</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/metafield-definition-webhooks</link>
  </item>
  <item>
    <title>Starting April 2025, new public apps submitted to Shopify app store must use GraphQL</title>
    <description><![CDATA[ <div class=""><p>GraphQL is now the primary API to interact with the Shopify admin. REST Admin API will be marked as legacy, and new feature development and improvements will be focused on GraphQL.</p>
<p><strong>Starting April 1 2025, all new public apps submitted to the App Store after this date must only use GraphQL.</strong></p>
<p>Migration timelines for existing apps (outside of <a href="https://shopify.dev/changelog/deprecation-timelines-related-to-new-graphql-product-apis" target="_blank" class="body-link">the required migration to the new GraphQL product APIs that have already been announced</a>), will be announced in 2025.  We will make sure ample time is provided for a smooth transition.</p>
<p><a href="https://www.shopify.com/ca/partners/blog/all-in-on-graphql" target="_blank" class="body-link">Learn more</a> about Shopify’s API strategy and direction into GraphQL. </p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 18:45:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/starting-april-2025-new-public-apps-submitted-to-shopify-app-store-must-use-graphql</link>
  </item>
  <item>
    <title>Theme Store ranking update</title>
    <description><![CDATA[ <div class=""><p>As of October 1st, 2024 we have update the Theme Store algorithm. This new ranking system will refine how themes are discovered, prioritizing factors like recency, quality, and trust signals to help merchants find themes more effectively. </p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 18:36:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/theme-store-ranking-update</link>
  </item>
  <item>
    <title>ShopifyPaymentsBankAccount GraphQL Admin API unused fields removed</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2025-01, we're cleaning up the <code>shopifyPaymentsBankAccount</code> endpoint and removing several unused fields.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 18:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/shopifypaymentsbankaccount-graphql-admin-api-unused-fields-removed</link>
  </item>
  <item>
    <title>Storefront API support for Combined Listings</title>
    <description><![CDATA[ <div class=""><p>Merchants using the Storefront API can now offer Combined Listings with Shopify. The <a href="https://apps.shopify.com/combined-listings" target="_blank" class="body-link">Shopify Combined Listings app</a> is available to merchants on Plus plans, helping merchants better merchandise products that come in multiple variations such as colors, materials or lengths, all from the same product listing. </p>
<p>Learn more about the Shopify Combined Listings app in the <a href="https://help.shopify.com/manual/products/combined-listings" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/storefront-api-support-for-combined-listings</link>
  </item>
  <item>
    <title>Added new field `recurring_cycle_limit` and `applies_on_subscription` to DiscountAutomaticApp and DiscountAutomaticAppInput</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code>, you can use the <code>recurring_cycle_limit</code> and <code>applies_on_subscription</code> field on the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/DiscountAutomaticApp" target="_blank" class="body-link">DiscountAutomaticApp</a> object type so that subscriptions can use function based discounts for a specified number of occurrences</p>
<p>Learn more about <code>DiscountAutomaticApp</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/DiscountAutomaticAppt" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 15:58:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/added-new-field-recurring_cycle_limit-and-applies_on_subscription-to-discountautomaticapp-and-discountautomaticappinput</link>
  </item>
  <item>
    <title>New `has_variants_that_requires_components` field on Product Webhooks</title>
    <description><![CDATA[ <div class=""><p>As of 2024-10, the product create and update webhook payloads contain information indicating if the product has a variant that is a product bundle.</p>
<p>The new boolean field, <code>has_variants_that_requires_components</code>, mirrors what is already available on the Product GraphQL <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/Product#field-product-hasvariantsthatrequirescomponents" target="_blank" class="body-link">response</a>.</p>
<p>To receive <code>has_variants_that_requires_components</code> in the webhook payload, specify 2024-10 or greater as the webhook API version in your <a href="https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version#step-3-select-the-newer-api-version" target="_blank" class="body-link">App Partner Dashboard</a>.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/product-merchandising/bundles" target="_blank" class="body-link">Product Bundles</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 15:38:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-has_variants_that_requires_components-field-on-product-webhooks</link>
  </item>
  <item>
    <title>New field and queries for the `StaffMember` object in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>The <code>2024-10</code> version of the GraphQL  Admin API brings improvements to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember" target="_blank" class="body-link"><code>StaffMember</code></a> object:</p>
<ul>
<li>New <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/StaffMember#field-accounttype" target="_blank" class="body-link"><code>accountType</code> field</a>.</li>
<li>You can retrieve the staff member making the API request with the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/currentStaffMember" target="_blank" class="body-link"><code>currentStaffMember</code> query</a>.</li>
<li>You can list all staff members with the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/staffMembers" target="_blank" class="body-link"><code>staffMembers</code> connection query</a>.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Shop#connection-staffmembers" target="_blank" class="body-link"><code>Shop.staffMembers</code></a> was deprecated in favor of the <code>staffMembers</code> query.</li>
</ul>
<p>This allows apps using the <a href="https://shopify.dev/docs/api/admin-rest/latest/resources/user" target="_blank" class="body-link"><code>User</code></a> REST Admin API resource to migrate to GraphQL's <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember" target="_blank" class="body-link"><code>StaffMember</code></a> object. </p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-field-and-queries-for-the-staffmember-object-in-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Removal fulfillment service shipping method</title>
    <description><![CDATA[ <div class=""><p>As of 2024-10, you can no longer use the deprecated <code>shippingMethods</code> field on the <code>fulfillmentService</code> query or include it as an argument in the <code>fulfillmentOrderSubmitFulfillmentRequest mutation</code>.</p>
<p>The shipping method associated with the fulfillment service provider applied only to Fulfill By Amazon fulfillment service. The Fulfillment by Amazon feature is not supported as of March 30, 2023. To continue using Amazon fulfillment, merchants need to set up a Multi-Channel Fulfillment solution recommended by Amazon. </p>
<p>To learn more see <a href="https://help.shopify.com/manual/shipping/fulfillment-services/amazon#activate-fulfillment-by-amazon" target="_blank" class="body-link">https://help.shopify.com/manual/shipping/fulfillment-services/amazon#activate-fulfillment-by-amazon</a></p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 14:26:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/removal-fulfillment-service-shipping-method</link>
  </item>
  <item>
    <title>New mutation to create an order</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API 2024-10 version, you can make use of a new mutation to create an order.</p>
<p>Learn more about <code>orderCreate</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/orderCreate" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-mutation-to-create-an-order</link>
  </item>
  <item>
    <title>POS UI Extensions 2024-10 Update</title>
    <description><![CDATA[ <div class=""><p>As of October 1, we added the following updates to POS UI Extensions: </p>
<ul>
<li>Added support for iOS debugging with the Safari dev tools.</li>
<li>Added support for the <code>pos.product-details.block.render</code> target.</li>
<li>Added support for the <code>pos.purchase.post.block.render</code> target.</li>
<li>Added support for the <code>pos.order-details.block.render</code> target.</li>
<li>Added support for the <code>pos.customer-details.block.render</code> target.</li>
<li>Introduced a <code>POSBlock</code> component. It's the required parent component for block extension targets.</li>
<li>Introduced a <code>POSBlockRow</code> component. It's the required child component for <code>POSBlock</code>, and can be used to wrap other components.</li>
<li>Deprecated the <code>ActionItem</code> component. Please use the <code>Button</code> component instead.</li>
<li>Added support for windowed modals.</li>
</ul>
<p>All of the changes are available for POS UI extensions version 2024-10 and POS app version 9.19.0. See the <a href="https://shopify.dev/docs/api/pos-ui-extensions/unstable/versions" target="_blank" class="body-link">version log</a> for all version details.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-2024-10-update</link>
  </item>
  <item>
    <title>Fulfillment Constraints can now be associated with one or multiple delivery methods</title>
    <description><![CDATA[ <div class=""><p>You can now associate a <a href="https://shopify.dev/docs/api/functions/reference/fulfillment-constraints" target="_blank" class="body-link">Fulfillment Constraint</a> function with one or multiple <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/DeliveryMethodType" target="_blank" class="body-link">delivery method types</a>. The function will only run within the context of those specific delivery methods.</p>
<p>As of Admin GraphQL API version <code>2024-10</code> and <code>unstable</code>, you can</p>
<ul>
<li>Use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentConstraintRuleCreate" target="_blank" class="body-link">FulfillmentConstraintRuleCreate</a> mutation to register your new Fulfillment Constraint function and associate it with one or multiple delivery methods. A new required input field <code>delivery_method_types</code> will be added.</li>
<li>Use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentConstraintRuleUpdate" target="_blank" class="body-link">FulfillmentConstraintRuleUpdate</a> mutation to update delivery method(s) for an existing registered function.</li>
</ul>
<p>Existing fulfillment constraint functions will continue to run for <code>SHIPPING</code>, <code>LOCAL</code> and <code>PICKUP_POINT</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:30:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/fulfillment-constraints-can-now-be-associated-with-one-or-multiple-delivery-methods</link>
  </item>
  <item>
    <title>Fulfillment Constraints now support Local Pickup</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version <code>2024-10</code> and <code>unstable</code>, you can setup your <a href="https://shopify.dev/docs/api/functions/reference/fulfillment-constraints" target="_blank" class="body-link">Fulfillment Constraint</a> function to run for Local Pickup delivery method.</p>
<p>Use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentConstraintRuleCreate" target="_blank" class="body-link">FulfillmentConstraintRuleCreate</a> mutation to register your new Fulfillment Constraint function with the <code>PICK_UP</code> delivery method.</p>
<p>Or, use the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentConstraintRuleUpdate" target="_blank" class="body-link">FulfillmentConstraintRuleUpdate</a> mutation to update your existing registered function to include <code>PICK_UP</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:30:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/fulfillment-constraints-now-support-local-pickup</link>
  </item>
  <item>
    <title>Admin API update on `fulfillmentOrder.destination` and `FulfillmentOrderDestination` object</title>
    <description><![CDATA[ <div class=""><h3>Breaking Changes</h3>
<p>As of the Admin API version <strong>2024-10</strong> and <strong>unstable</strong> release, <code>fulfillmentOrder.destination</code> will return a <code>FulfillmentOrderDestination</code> object instead of <code>null</code> for fulfillment orders lacking an associated shipping address. In such cases, the address related fields within the <code>FulfillmentOrderDestination</code> object will be set to null.</p>
<h3>Non Breaking Changes</h3>
<p>As of GQL Admin API version <strong>2024-10</strong> and <strong>unstable</strong> release, you can use new field <code>fulfillmentOrder.destination.location</code> to retrieve the pickup location for the fulfillment order.</p>
<p>You can learn more about <code>fulfillmentOrder.destination</code> <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder#field-destination" target="_blank" class="body-link">here</a> and <code>fulfillmentOrderDestination</code> <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/FulfillmentOrderDestination" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/admin-api-update-on-fulfillmentorder-destination-and-fulfillmentorderdestination-object</link>
  </item>
  <item>
    <title>New CompanyLocationStaffMemberAssignments API endpoints for managing staff member assignments on a Company Location</title>
    <description><![CDATA[ <div class=""><p>As of 2024-10, we've added a <code>CompanyLocationStaffMemberAssignment</code> to the <code>CompanyLocation</code> object for viewing the staff members assigned to the company location. </p>
<p>You can assign and remove staff members for a company location using the <code>CompanyLocationAssignStaffMembers</code> and <code>CompanyLocationRemoveStaffMembers</code> mutations.  </p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-companylocationstaffmemberassignments-api-endpoints-for-managing-staff-member-assignments-on-a-company-location</link>
  </item>
  <item>
    <title>Removal of the `priceRule` resource from GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code>, the <code>priceRule</code> resource is being removed. The queries and mutations have been deprecated since <code>2023-03</code>.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/discountNode" target="_blank" class="body-link">discount</a> resource can be used to achieve the same operations.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/removal-of-the-pricerule-resource-from-graphql-admin-api</link>
  </item>
  <item>
    <title>Breaking changes to returns API: Deprecate `reverseDeliveryDispose` mutation</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-10</strong>, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/reverseDeliveryDispose" target="_blank" class="body-link"><code>reverseDeliveryDispose</code></a> mutation will be deprecated. Use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/reverseFulfillmentOrderDispose" target="_blank" class="body-link"><code>reverseFulfillmentOrderDispose</code></a> mutation instead.</p>
<p>Learn more about managing reverse fulfillment orders on <a href="https://shopify.dev/docs/apps/fulfillment/returns-apps/reverse-fulfillment-orders" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-returns-api-deprecate-reversedeliverydispose-mutation-1</link>
  </item>
  <item>
    <title>Notify customers when their return requests are approved or declined</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-10 API version, you can notify customers that their return request was approved or declined. </p>
<p>You can submit a <code>notifyCustomer</code> argument when approving a return request using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/returnApproveRequest" target="_blank" class="body-link">the <code>returnApproveRequest</code> mutation</a>.</p>
<p>You can also submit a <code>notifyCustomer</code> argument when declining a return request using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/returnDeclineRequest" target="_blank" class="body-link">the <code>returnDeclineRequest</code> mutation</a>. To include a custom message to the buyer in the email notification, use the <code>declineNote</code> argument.</p>
<p>When <code>notifyCustomer</code> is <code>true</code>, an email notification is sent to the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Order#field-email" target="_blank" class="body-link"><code>Order.email</code></a>. If this field is null, the notification is not sent.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/notify-customers-when-their-return-requests-are-approved-or-declined</link>
  </item>
  <item>
    <title>Exposing the order adjustments connection on a Refund</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-10 Admin GraphQL API, you can use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Refund#connection-orderadjustments" target="_blank" class="body-link"><code>Refund.orderAdjustments</code> connection</a> to query for the difference between calculated and actual refund amounts. The <a href="https://shopify.dev/docs/api/webhooks/2024-10?reference=graphql#list-of-topics-refunds_create" target="_blank" class="body-link"><code>REFUNDS_CREATE</code> webhook topic</a> will include order adjustments too. As of 2024-10, the webhook payload for <code>REFUNDS_CREATE</code> will <strong>not include</strong> the <code>kind</code> field. </p>
<p>Please note that the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/OrderAdjustment#field-kind" target="_blank" class="body-link"><code>OrderAdjustment.kind</code></a> field is now <strong>deprecated</strong> in the Admin GraphQL API. It is also deprecated in the legacy <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/refund#resource-object" target="_blank" class="body-link"><code>refund.order_adjustments</code></a> resource in the Admin REST API.</p>
<p>For this reason, refunded shipping costs will <strong>not</strong> be included in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Refund#connection-orderadjustments" target="_blank" class="body-link"><code>Refund.orderAdjustments</code> connection</a>. To query for refunded shipping costs, use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Refund#connection-refundshippinglines" target="_blank" class="body-link"><code>Refund.refundShippingLines</code> connection</a> instead. This connection has been updated as of <strong>July 18, 2024</strong> to include refunded shipping costs; <a href="https://shopify.dev/changelog/refunding-orders-with-multiple-shipping-lines-returns-accurate-data" target="_blank" class="body-link">more info here</a>. Refunded shipping costs will not be present in the webhook payload for <code>REFUNDS_CREATE</code> as of 2024-10 for the same reason.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/OrderAdjustment#field-kind" target="_blank" class="body-link"><code>OrderAdjustment.kind</code></a> field will be present on the <code>unstable</code> API version for 6 months to allow apps to migrate to the 2024-10 API version.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/exposing-the-order-adjustments-connection-on-a-refund</link>
  </item>
  <item>
    <title>Introducing Payment Groups and Sessions to SubscriptionBillingAttempts</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-10, the SubscriptionBillingAttempt object will have two new fields: <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/SubscriptionBillingAttempt#field-paymentgroupid" target="_blank" class="body-link">payment_group_id</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/SubscriptionBillingAttempt#field-paymentsessionid" target="_blank" class="body-link">payment_session_id</a>.</p>
<p>This will allow your subscription apps to have better insights into how billing attempts correlate for merchant-facing statistics. </p>
<p>The payment group is defined as:</p>
<ul>
<li>Attempts belonged to the same subscription contract identity.</li>
<li>The attempts were all failures, or ended in a success. If two sequential successes occur with all the same attributes, then they're treated as separate groups.
It can be used for correlated retried billing attempts together.</li>
</ul>
<p>The payment session for subscriptions is defined as:</p>
<ul>
<li>Attempts used the same payment group</li>
<li>Attempts used the same payment method</li>
<li>Attempts used the same currency</li>
<li>Attempts were for the same amount
We expect any merchant facing statistics regarding payment success rates to only show a single success or failure per payment_session_id.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/introducing-payment-groups-and-sessions-to-subscriptionbillingattempts</link>
  </item>
  <item>
    <title>Introducing Session ID to StartPaymentSession</title>
    <description><![CDATA[ <div class=""><p>As of Payments Apps API version 2024-10, the StartPaymentSession payload for all payment extension types will have one new field: <a href="https://shopify.dev/docs/apps/build/payments/request-reference#request-body" target="_blank" class="body-link">session_id</a>.</p>
<p>This identifier is shared across payment sessions that belong to the same payment group, buyer session, and share payment details. It can be used to power auth rate calculations.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/introducing-session-id-to-startpaymentsession</link>
  </item>
  <item>
    <title>Admin API includes `discountNodesCount`</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of Admin GraphQL API version <code>2024-10</code>, you can access the <code>QueryRoot.discountNodesCount</code> field to retrieve the total count of discounts in the shop.</p>
<p>Learn more about <code>discountNodesCount</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/discountNodesCount" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/admin-api-includes-discountnodescount</link>
  </item>
  <item>
    <title>Localized fulfillment hold reason on `FulfillmentHold`</title>
    <description><![CDATA[ <div class=""><p>We've added a new localized string field <code>displayReason</code> to <code>FulfillmentHold</code> so that you can query for a human-readable reason when a fulfillment is on hold.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/localized-fulfillment-hold-reason-on-fulfillmenthold</link>
  </item>
  <item>
    <title>Add new theme-related fields to `TranslatableResourceType` enum</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2024-10</code>, you can use these new fields to <code>TranslatableResourceType</code> that are related to the online store theme: <code>ONLINE_STORE_THEME_JSON_TEMPLATE</code>, <code>ONLINE_STORE_THEME_SECTION_GROUP</code>, <code>ONLINE_STORE_THEME_APP_EMBED</code>, <code>ONLINE_STORE_THEME_LOCALE_CONTENT</code>, <code>ONLINE_STORE_THEME_SETTINGS_CATEGORY</code> and <code>ONLINE_STORE_THEME_SETTINGS_DATA_SECTIONS</code></p>
<p>Together, these new types will cover the translatable content and translations within the existing ONLINE_STORE_THEME <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/enums/TranslatableResourceType#value-onlinestoretheme" target="_blank" class="body-link">enum type</a> and offer more granularity with respect to the returned data. They are introduced with the intent of reducing the use of <code>ONLINE_STORE_THEME</code> type in the future, so that we do not return the entirety of a theme's content when it is not needed.</p>
<p>We are also introducing a <code>nestedTranslatableResources</code> connection under <code>TranslatableResource</code> object. When used with a <code>ONLINE_STORE_THEME</code> type <code>TranslatableResource</code>, the theme resources that belong to this particular theme are exposed.
--&gt;</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/add-new-theme-related-fields-to-translatableresourcetype-enum</link>
  </item>
  <item>
    <title>Translatable content that is specific to a market context is now exposed</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2024-10</code>, you can use the <code>marketId</code> argument to retrieve translatable content that is specific to a market. Concretely, combined with <code>ONLINE_STORE_THEME_JSON_TEMPLATE</code> and <code>ONLINE_STORE_THEME_SECTION_GROUP</code> translatable resource types, you can retrieve translatable content within the added sections and blocks in a contextualized theme template or theme section group for a specfic market. More details can be found <a href="https://help.shopify.com/en/manual/online-store/themes/customizing-themes/store-contextualization" target="_blank" class="body-link">here</a> about customizing a theme for specific markets.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/translatable-content-that-is-specific-to-a-market-context-is-now-exposed</link>
  </item>
  <item>
    <title>GraphQL support to send customer account invite</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-10</strong>, you can use the <code>customerSendAccountInviteEmail</code> mutation to send an email invite to create a classic customer account.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 11:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/graphql-support-to-send-customer-account-invite</link>
  </item>
  <item>
    <title>Adding pagination arguments to Customer addresses</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-10</strong>, the <code>addressesV2</code> field is introduced on the <code>Customer</code> object to support paginating through a customer's addresses.</p>
<p>Learn more about the <code>Customer</code> fields on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Customer" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 11:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/adding-pagination-arguments-to-customer-addresses</link>
  </item>
  <item>
    <title>New abandoned checkouts listing endpoint on the admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of 2024-10, you can use the <code>abandonedCheckouts</code> endpoint to get the list of abandoned checkouts of a shop. This will replace the current <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/abandoned-checkouts" target="_blank" class="body-link">REST</a> endpoint.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-abandoned-checkouts-listing-endpoint-on-the-admin-graphql-api</link>
  </item>
  <item>
    <title>New customer account pages now available in menus via Admin API</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-10, you can add links to the Orders, Profile, and Settings pages to navigation menus.</p>
<p>To learn more, refer to <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/menuCreate" target="_blank" class="body-link">menuCreate</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/menuUpdate" target="_blank" class="body-link">menuUpdate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/menus" target="_blank" class="body-link">menu</a></p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Storefront GraphQL API</category>
    <category>Liquid</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-customer-account-pages-now-available-in-menus-via-admin-api</link>
  </item>
  <item>
    <title>Subscription Contract fields now fully available on the Customer API </title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-10</strong> release of the GraphQL Customer API, you can now query the following fields for a <a href="https://shopify.dev/docs/api/customer/2024-10/objects/Customer" target="_blank" class="body-link">customer's</a> subscription contracts using the <code>subscriptionContracts</code> or <code>subscriptionContract</code> fields:</p>
<ul>
<li>linesCount</li>
<li>billingPolicy</li>
<li>deliveryPolicy</li>
<li>deliveryMethod</li>
<li>deliveryPrice</li>
<li>updatedAt</li>
<li>currencyCode</li>
</ul>
<p>We’ve also added support for the following connections:</p>
<ul>
<li>lines </li>
<li>orders</li>
</ul>
<p>The <code>customer_read_own_subscription_contracts</code> permission is now required to query subscription contracts and the <code>customer_write_own_subscription_contracts</code> permission is now required for subscription contract mutations.</p>
<p>Learn more about subscription contracts on the Customer API at  <a href="https://shopify.dev/docs/api/customer/2024-10/objects/SubscriptionContract" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:01:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Customer Account API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/subscription-contract-fields-now-fully-available-on-the-customer-api</link>
  </item>
  <item>
    <title>New field and permission update to fulfillment hold resource</title>
    <description><![CDATA[ <div class=""><p>As of the GraphQL Admin API version 2024-10, a <code>heldByRequestingApp</code>  field is being added to  the <code>FulfillmentHold</code>  GraphQL resource.</p>
<p>As of the GraphQL Admin API version 2024-10, you will only be able to read the <code>heldBy</code> field on the <code>FulfillmentHold</code>  GraphQL resource if you have <code>read_apps</code> scope enabled on your application. Use the <code>heldByRequestingApp</code> boolean field instead if you need to see if your application created the fulfillment hold.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentHold" target="_blank" class="body-link">FulfillmentHolds</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-field-and-permission-update-to-fulfillment-hold-resource</link>
  </item>
  <item>
    <title>`fulfillmentOrderHold` mutation updated to return a fulfillment hold resource</title>
    <description><![CDATA[ <div class=""><p>As of the GraphQL Admin API version 2024-10, the <code>fulfillmentOrderHold</code> mutation will return the fulfillment hold that was created in a new <code>fulfillmentHold</code> return field.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderHold" target="_blank" class="body-link">fulfillmentOrderHold mutation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/fulfillmentorderhold-mutation-updated-to-return-a-fulfillment-hold-resource</link>
  </item>
  <item>
    <title>New parameter on `fulfillmentServiceDelete` to control inventory behaviour on location removal</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version <code>2024-10</code> we will introduce a new enum field for the <code>fulfillmentServiceDelete</code> mutation. The <code>inventoryAction</code> field will allow partners to specifiy the behaviour regarding the inventory when deleting a fulfillment service. The options are:</p>
<ol>
<li><code>KEEP</code> - this option will convert a Fulfillment Service's locations to be owned by the merchant and therefore the inventory at those locations becomes the responsiblity of the merchant.</li>
<li><code>DELETE</code> - this option, when there are no outstanding fulfillments, will delete the inventory at the location and then the location itself. </li>
<li><code>TRANSFER</code> - this is the existing behaviour, where a <code>destinationLocationId</code> is provided as the destination to relocate the inventory to, before the location is deleted.</li>
</ol>
<p>If either <code>KEEP</code> or <code>DELETE</code> are provided, it is not possible to also specify a <code>destinationLocationId</code>. </p>
<p>If <code>KEEP</code> is provided, then the merchant must have a sufficient remaining quota of locations on their plan for this operation to succeed, an error will be returned if they do not.  </p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-parameter-on-fulfillmentservicedelete-to-control-inventory-behaviour-on-location-removal</link>
  </item>
  <item>
    <title>Order Management apps can no longer fulfill orders that are assigned to a different fulfillment service</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code>, the <code>write_third_party_fulfillment_orders</code> access scope permission will change for fulfillment creation. This access scope will no longer allow <a href="https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps" target="_blank" class="body-link">order management apps</a> to fulfill fulfillment orders assigned to locations owned by other fulfillment service apps. Order management apps will still be able to access and manage these orders, only fulfillment creation will be prohibited. </p>
<p>The <code>write_assigned_fulfillment_orders</code> and <code>write_merchant_managed_fulfillment_orders</code> access scopes will remain unchanged. Fulfillment service apps will continue to be able to fulfill orders assigned to them as long as they have the <code>write_assigned_fulfillment_orders</code> access scope. Fulfillment orders assigned to merchant managed locations will continue to be fulfillable by order management apps as long as they have the <code>write_merchant_managed_fulfillment_orders</code> access scope. </p>
<p>Apps can confirm whether or not fulfillment creation is possible by querying the available <code>supportedActions</code> through either the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder#field-supportedactions" target="_blank" class="body-link">GraphQL</a> or <a href="https://shopify.dev/docs/api/admin-rest/2024-10/resources/fulfillmentorder#get-fulfillment-orders-fulfillment-order-id" target="_blank" class="body-link">REST</a> APIs. If the fulfillment order is assigned to a merchant managed location or to the fulfillment service performing the query and it is in a fulfillable state, <code>CREATE_FULFILLMENT</code> will be returned as a possible option.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/order-management-apps-can-no-longer-fulfill-orders-that-are-assigned-to-a-different-fulfillment-service</link>
  </item>
  <item>
    <title>Added FAILED_TO_RETRIEVE_BILLING_ADDRESS to CustomerPaymentMethodRevocationReason Enum</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-10, the CustomerPaymentMethodRevocationReason object has a new enum value: <code>FAILED_TO_RETRIEVE_BILLING_ADDRESS</code>. This value is assigned when a customer payment method is missing the billing address field.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/added-failed_to_retrieve_billing_address-to-customerpaymentmethodrevocationreason-enum</link>
  </item>
  <item>
    <title>Removal of deprecated product image mutations from the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2024-10</strong>, we're removing the deprecated <code>productAppendImages</code>, <code>productDeleteImages</code>, <code>productImageUpdate</code> and <code>productReorderImages</code> mutations from public GraphQL API.</p>
<p>Use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productCreateMedia" target="_blank" class="body-link">productCreateMedia</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productDeleteMedia" target="_blank" class="body-link">productDeleteMedia</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productUpdateMedia" target="_blank" class="body-link">productUpdateMedia</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productReorderMedia" target="_blank" class="body-link">productReorderMedia</a>  mutation instead.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/removal-of-deprecated-product-image-mutations-from-the-graphql-admin-api</link>
  </item>
  <item>
    <title>New `created_fulfillment_hold` field on `fulfillment_orders/placed_on_hold` webhook</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version 2024-10, you can use the <code>created_fulfillment_hold</code> field on <code>fulfillment_orders/placed_on_hold</code> webhook  to see the fulfillment hold that was created.</p>
<p><strong>Why was this field added</strong>
A fulfillment hold gets deleted when a hold is released. It is possible that the <code>FulfillmentOrder.FulfillmentHolds</code> field will be empty by the time the subscriber receives the webhook. The new field <code>created_fulfillment_hold</code> will always show hold that was created regardless of whether it has already been released/deleted. </p>
<p>Learn more about <code>fulfillment_orders/placed_on_hold</code> webhook on <a href="https://shopify.dev/docs/api/webhooks/2024-10?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Webhook</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-created_fulfillment_hold-field-on-fulfillment_orders-placed_on_hold-webhook</link>
  </item>
  <item>
    <title>New webhook topic `app/scopes_update`</title>
    <description><![CDATA[ <div class=""><p>As of Webhook API version <code>2024-10</code> and <code>unstable</code>, apps can subscribe to the <code>app/scopes_update</code> webhook topic.</p>
<p>This webhook is triggered when the granted access scopes for the installed app on a shop have been modified. It allows apps to keep track of the granted access scopes of their installations.</p>
<p>For example, an app that has enabled <a href="https://shopify.dev/docs/apps/build/authentication-authorization/app-installation" target="_blank" class="body-link">Shopify managed install</a> is released with a new configuration that increased the requested scopes from <code>&quot;read_customers&quot;</code> to <code>&quot;read_customers,read_discounts&quot;</code>. Once a merchant opens the app and approves the <code>read_discounts</code> access scope this webhook will be emitted with payload:</p>
<pre><code class="language-json">{
  &quot;id&quot;: 1234,
  &quot;previous&quot;: [
    &quot;read_customers&quot;
  ],
  &quot;current&quot;: [
    &quot;read_customers&quot;,
    &quot;read_discounts&quot;
  ],
  &quot;updated_at&quot;: &quot;2024-10-01T00:00:00.000Z&quot;
}
</code></pre>
<p>Learn more about this webhook on <a href="https://shopify.dev/docs/api/webhooks/unstable?reference=toml#list-of-topics-app/scopes_update" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Webhook</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-webhook-topic-app-scopes_update</link>
  </item>
  <item>
    <title>Cart Warnings in Storefront API Cart</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-10, inventory errors about stock levels will no longer be included in the <code>userErrors</code> of cart mutations. Inventory errors will now be available in a new return field, <code>warnings</code> and will contain explicit <code>code</code> values of <code>MERCHANDISE_NOT_ENOUGH_STOCK</code> or <code>MERCHANDISE_OUT_OF_STOCK</code>.</p>
<p>Warnings will be available on all cart mutations to show automatic changes that occurred during the mutation.  You can use warnings to manage items in your cart or display information to a buyer.  For example, out of stock lines can be easily removed from a cart by using the <code>target</code> field included in the warning as the input to a call to <code>CartLineRemove</code>. </p>
<p>Learn more about cart warnings on <a href="https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/cart-warnings" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/cart-warnings-in-storefront-api-cart</link>
  </item>
  <item>
    <title>Add subscription status updates to bulkOperationRunMutation</title>
    <description><![CDATA[ <div class=""><p>Subscription Status updates can now be run with the bulkOperationRunMutation.</p>
<p>The following mutations have been added:</p>
<ul>
<li><code>subscriptionContractActivate</code></li>
<li><code>subscriptionContractCancel</code></li>
<li><code>subscriptionContractExpire</code></li>
<li><code>subscriptionContractFail</code></li>
<li><code>subscriptionContractPause</code></li>
</ul>
<p>See <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">https://shopify.dev/docs/api/usage/bulk-operations/imports</a> for more information.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/add-subscription-status-updates-to-bulkoperationrunmutation</link>
  </item>
  <item>
    <title>Querying events through the `events` connection and `CommentEvent.subject` becomes nullable</title>
    <description><![CDATA[ <div class=""><p>As of  2024-10, you can query <a href="https://shopify.dev/docs/api/admin-graphql/unstable/interfaces/Event" target="_blank" class="body-link">events</a> by means of <code>eventsCount</code>, <code>event</code> and <code>events</code>.</p>
<p>There has been the addition of an <code>events</code> connection on several types as well, allowing you to query the related events:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Article" target="_blank" class="body-link">Article</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Blog" target="_blank" class="body-link">Blog</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Collection" target="_blank" class="body-link">Collection</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Comment" target="_blank" class="body-link">Comments</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Page" target="_blank" class="body-link">Pages</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/ProductVariant" target="_blank" class="body-link">ProductVariants</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Product" target="_blank" class="body-link">Products</a></li>
</ul>
<p>There has been one breaking change on the <code>CommentEvent.subject</code> field where we transitioned it to be nullable, null will be returned when the <code>subject</code>'s underlying data has been deleted, in the process we also deprected <code>deletionEvents</code> as these are now returned as an <code>Event</code>. When the <code>subject</code> is deleted, the REST API, will also return <code>null</code> for the <code>subject</code> property.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/querying-events-through-the-events-connection-and-commentevent-subject-becomes-nullable</link>
  </item>
  <item>
    <title>`ProductInput` split into `ProductCreateInput` and `ProductUpdateInput` in `2024-10`</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code> version of the Admin GraphQL API, the <code>ProductInput</code> object has been split into <code>ProductCreateInput</code> and <code>ProductUpdateInput</code>. The <code>productCreate</code> and <code>productUpdate</code> mutations now accept a new <code>product</code> argument using these types. </p>
<p>The existing <code>input</code> field has been marked deprecated.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/input-objects/ProductCreateInput" target="_blank" class="body-link">ProductCreateInput</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/input-objects/ProductUpdateInput" target="_blank" class="body-link">ProductUpdateInput</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 03:08:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/productinput-split-into-productcreateinput-and-productupdateinput-in-2024-10</link>
  </item>
  <item>
    <title>Admin GraphQL API: new APIs for Pages, Articles, Blogs, and Comments now available in 2024-10</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-10 of the Admin GraphQL API, you can now read and modify Pages, Articles, Blogs, Comments. <code>Page</code>, <code>Article</code>, and <code>Blog</code> types have replaced the <code>OnlineStorePage</code>, <code>OnlineStoreArticle</code>, and <code>OnlineStoreBlog</code> types in the API.</p>
<p>Pages:</p>
<ul>
<li>You can now create new pages using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/pageCreate" target="_blank" class="body-link"><code>pageCreate</code></a>, modify existing pages using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/pageUpdate" target="_blank" class="body-link"><code>pageUpdate</code></a>, and delete pages using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/pageDelete" target="_blank" class="body-link"><code>pageDelete</code></a>.</li>
<li>Pages can be queried using the new <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/page" target="_blank" class="body-link"><code>page</code></a> or <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/pages" target="_blank" class="body-link"><code>pages</code></a> queries.</li>
</ul>
<p>Articles:</p>
<ul>
<li>You can now create new articles using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/articleCreate" target="_blank" class="body-link"><code>articleCreate</code></a>, modify existing articles using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/articleUpdate" target="_blank" class="body-link"><code>articleUpdate</code></a>, and delete articles using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/articleDelete" target="_blank" class="body-link"><code>articleDelete</code></a>.</li>
<li>Articles can be queried using the new <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/article" target="_blank" class="body-link"><code>article</code></a> or <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/articles" target="_blank" class="body-link"><code>articles</code></a> queries.</li>
</ul>
<p>Blogs:</p>
<ul>
<li>You can now create new blogs using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/blogCreate" target="_blank" class="body-link"><code>blogCreate</code></a>, modify existing blogs using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/blogUpdate" target="_blank" class="body-link"><code>blogUpdate</code></a>, and delete blogs using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/blogDelete" target="_blank" class="body-link"><code>blogDelete</code></a>.</li>
<li>Blogs can be queried using the new <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/blog" target="_blank" class="body-link"><code>blog</code></a> or <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/blogs" target="_blank" class="body-link"><code>blogs</code></a> queries.</li>
</ul>
<p>Comments:</p>
<ul>
<li>You can now modify existing comments using <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/commentApprove" target="_blank" class="body-link"><code>commentApprove</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/commentSpam" target="_blank" class="body-link"><code>commentSpam</code></a>, or <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/commentNotSpam" target="_blank" class="body-link"><code>commentNotSpam</code></a>. Comments can be deleted with <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/commentDelete" target="_blank" class="body-link"><code>commentDelete</code></a>.</li>
<li>Comments can be queried using the new <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/comment" target="_blank" class="body-link"><code>comment</code></a> or <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/comments" target="_blank" class="body-link"><code>comments</code></a> queries</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/admin-graphql-api-new-apis-for-pages-articles-blogs-and-comments-now-available-in-2024-10</link>
  </item>
  <item>
    <title>Create App Store Ads on Tag-Level Category Pages</title>
    <description><![CDATA[ <div class=""><p>App Store ads on the Shopify App Store now support targeting tag-level category pages, in addition to main and sub-category pages. For more information on App Store category page types, <a href="https://shopify.dev/docs/apps/launch/app-store-review/app-listing-categories#list-of-app-categories-subcategories-and-tags" target="_blank" class="body-link">see here</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Sep 2024 21:21:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/create-app-store-ads-on-tag-level-category-pages</link>
  </item>
  <item>
    <title>Deprecating explicit access grants for app-owned metafields</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/MetafieldAccess#field-grants" target="_blank" class="body-link">Specifying grants for specific apps</a> on app-owned metafields is now deprecated. New apps will not be able to use this feature effective immediately. Existing apps will continue to have access.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Sep 2024 19:30:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/deprecating-explicit-access-grants-for-app-owned-metafields</link>
  </item>
  <item>
    <title>Add LocalPaymentMethodDetails</title>
    <description><![CDATA[ <div class=""><p>We've introduced the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/LocalPaymentMethodsPaymentDetails" target="_blank" class="body-link"><code>LocalPaymentMethodsPaymentDetails</code></a> object to handle transaction details for local payment methods. This object enhances transaction processing capabilities by enabling devs to access and manipulate payment details that are specific to local payment methods.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Sep 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/add-localpaymentmethoddetails</link>
  </item>
  <item>
    <title>Surface payment group id and payment session id on subscription billing attempts</title>
    <description><![CDATA[ <div class=""><p>We've introduced the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/SubscriptionBillingAttempt" target="_blank" class="body-link"><code>SubscriptionBillingAttempt</code></a> object to track subscription billing executions. This new functionality provides the following features:</p>
<ul>
<li>Records each subscription billing process execution</li>
<li>Uses idempotency keys to prevent duplicate orders</li>
<li>Creates orders upon successful billing attempts</li>
</ul>
<p>Existing Partner integrations aren't affected.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Sep 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/surface-payment-group-id-and-payment-session-id-on-subscription-billing-attempts</link>
  </item>
  <item>
    <title>Added connection to order transaction from subscription billing attempts</title>
    <description><![CDATA[ <div class=""><p>We've introduced the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/SubscriptionBillingAttempt" target="_blank" class="body-link"><code>SubscriptionBillingAttempt</code></a> object to track subscription billing executions. This new functionality provides the following features:</p>
<ul>
<li>Records each subscription billing process execution</li>
<li>Uses idempotency keys to prevent duplicate orders</li>
<li>Creates orders upon successful billing attempts</li>
</ul>
<p>Existing Partner integrations aren't affected.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Sep 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Payments Apps API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/added-connection-to-order-transaction-from-subscription-billing-attempts</link>
  </item>
  <item>
    <title>Introducing theme and theme file management in the Admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-10, you can use the admin API to manage Online Store Themes. This feature provides parity with our REST API for managing themes and theme files.</p>
<h1>What's New</h1>
<h2>New queries:</h2>
<ul>
<li><code>theme</code> to query an individual theme by ID</li>
<li><code>themes</code> to query many themes by role or name</li>
</ul>
<p><code>OnlineStoreTheme</code> objects expose a <code>files</code> query which can be used to fetch the metadata and content of files in a theme. Multiple files can be requested at once, speeding up operations that need to fetch many files.</p>
<h2>New mutations for themes:</h2>
<ul>
<li><code>themeCreate</code> - upload a new theme</li>
<li><code>themeDelete</code> - delete an unpublished theme</li>
<li><code>themePublish</code> - publish a theme</li>
<li><code>themeUpdate</code> - update the name of a theme</li>
</ul>
<h2>New mutations for theme files:</h2>
<ul>
<li><code>themeFilesCopy</code>  - copy files from one location to another</li>
<li><code>themeFilesDelete</code> - delete files in a theme</li>
<li><code>themeFilesUpsert</code> - write data to files in a theme</li>
</ul>
<p>Learn more about these changes on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/OnlineStoreTheme" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 30 Sep 2024 14:08:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/introducing-theme-and-theme-file-management-in-the-admin-graphql-api</link>
  </item>
  <item>
    <title>Changing the default value of permitsSkuSharing argument in fulfillmentServiceCreate</title>
    <description><![CDATA[ <div class=""><p>As of <code>2025-01</code>, the default value for the <code>permitsSkuSharing</code> argument in the <code>fulfillmentServiceCreate</code> mutation has been updated to true. </p>
<p>Please be aware that this argument is deprecated and will be removed in the version <code>2025-04</code>. Consequently, all fulfillment services will be required to permit SKU sharing by default.</p>
</div> ]]></description>
    <pubDate>Wed, 25 Sep 2024 13:19:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2025-01</category>
    <link>https://shopify.dev/changelog/changing-the-default-value-of-permitsskusharing-argument-in-fulfillmentservicecreate</link>
  </item>
  <item>
    <title>Introducing metafield definition capabilities in the admin API</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-10, we're launching an API to manage metafield definition capabilities. This new feature provides a flexible and extensible way to define and manage behaviors for metafield definitions across various Shopify features.</p>
<h2>What's new?</h2>
<p>Metafield definition capabilities can be easily enabled, disabled, and queried through the Admin API</p>
<h2>What's next?</h2>
<p>In future API versions, we'll be introducing new capabilities to enhance metafield functionality across various Shopify features. Stay tuned for announcements about specific capabilities and how they can benefit your app or integration.</p>
<p>Learn more about metafield capabilities at <a href="https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Fri, 20 Sep 2024 19:58:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/introducing-metafield-definition-capabilities-in-the-admin-api</link>
  </item>
  <item>
    <title>Metafield Definition Capability Framework and Deprecation of `use_as_collection_condition`</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-10, we're introducing the Metafield Definition Capability Framework and deprecating the <code>use_as_collection_condition</code> field on the Metafield Definition object. The new <code>smart_collection_condition</code> capability will replace the deprecated field, providing a more flexible and extensible way to manage metafield behaviors in smart collections.</p>
<h2>What's changing?</h2>
<ul>
<li>The <code>use_as_collection_condition</code> field on Metafield Definitions is being deprecated.</li>
<li>A new <code>smart_collection_condition</code> capability is being introduced as part of the Metafield Definition Capability Framework.</li>
</ul>
<h2>Why it matters</h2>
<p>The new Capability Framework offers several benefits:</p>
<ol>
<li><strong>Improved flexibility</strong>: Capabilities can be easily added, removed, or modified without changing the core Metafield Definition structure.</li>
<li><strong>Better extensibility</strong>: New capabilities can be introduced in the future without affecting existing implementations.</li>
<li><strong>Clearer semantics</strong>: Capabilities provide a more explicit way to define metafield behaviors.</li>
</ol>
<h2>How to update</h2>
<p>To prepare for this change, update your API calls and app logic as follows:</p>
<ol>
<li><p>Instead of setting <code>use_as_collection_condition: true</code>, use:</p>
<pre><code class="language-graphql">capabilities: {
  smartCollectionCondition: {
    enabled: true
  }
}
</code></pre>
</li>
<li><p>When querying metafield definitions, check the <code>smart_collection_condition</code> capability instead of the <code>use_as_collection_condition</code> field:</p>
<pre><code class="language-graphql">query {
  metafieldDefinition(id: &quot;gid://shopify/MetafieldDefinition/1234&quot;) {
    capabilities {
      smartCollectionCondition {
        enabled
      }
    }
  }
}
</code></pre>
</li>
</ol>
<h2>Timeline</h2>
<ul>
<li><strong>API version 2024-10</strong>: The new capability is available, and <code>use_as_collection_condition</code> is deprecated but still functional.</li>
<li><strong>Future version</strong>: The <code>use_as_collection_condition</code> field will be removed entirely.</li>
</ul>
<p>We recommend updating your integrations to use the new capability as soon as possible to ensure a smooth transition.</p>
<p>Learn more about metafield capabilities at <a href="https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities" target="_blank" class="body-link">Shopify.dev</a>
Learn more about the Metafield Definition Capability Framework at <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 20 Sep 2024 19:35:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/metafield-definition-capability-framework-and-deprecation-of-use_as_collection_condition</link>
  </item>
  <item>
    <title>New inventory input fields in productSet mutation in version 2024-10</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version <code>2024-10</code>, we are adding new inventory capabilities in the productSet mutation, in the form of a new field type <strong><code>ProductSetInventoryInput</code></strong>, which allows setting <code>available</code> or <code>on_hand</code> quantities for new and existing product variants on locations  specified.</p>
<p>This type can be used in the following contexts:</p>
<ul>
<li><p><code>ProductSetInput.inventoryQuantities</code> field to specify inventory quantities for products with no custom variants.</p>
</li>
<li><p><code>ProductSetVariantInput.inventoryQuantities</code> field to specify inventory quantities for individual custom variants.</p>
</li>
</ul>
<p>For more detailed information and examples, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productSet" target="_blank" class="body-link">productSet documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Sep 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-inventory-input-fields-in-productset-mutation-in-version-2024-10</link>
  </item>
  <item>
    <title>Shopify CLI is now easier to install and faster for Liquid theme development</title>
    <description><![CDATA[ <div class=""><p>Today, a new version of Shopify CLI is available, bringing with it a better development experience that streamlines your setup for building Shopify themes.</p>
<p>The update includes the following improvements:</p>
<ul>
<li>Instant development server startup, so there's no need to wait for synchronization before opening a browser.</li>
<li>No dependency on Ruby and unified commands implementation on TypeScript, which streamlines your development cycle with easier install &amp; setup.</li>
<li>A headless Liquid console, so you can run <code>shopify theme console</code> without opening a browser for authentication.</li>
</ul>
<p>Learn more about <a href="https://shopify.dev/docs/storefronts/themes/tools/cli" target="_blank" class="body-link">Shopify CLI for themes</a>. Happy coding!</p>
</div> ]]></description>
    <pubDate>Wed, 18 Sep 2024 19:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-cli-is-now-easier-to-install-and-faster-for-liquid-theme-development</link>
  </item>
  <item>
    <title>New Full-Funnel Theme Install Parameters and Now Firing E-Commerce Events on the Theme Listing Page</title>
    <description><![CDATA[ <div class=""><p>Two new paremeters have been added  to the full-funnel theme install event for the Shopify Theme Store - <code>shop_name</code> and <code>shop_url</code>. These enhancements provide more insights on which merchant is installing a theme.</p>
<p>Learn more about the new parameters and full-funnel attribution in the <a href="https://shopify.dev/docs/storefronts/themes/store/review-process/listings#full-funnel-theme-install-attributions" target="_blank" class="body-link">Shopify Theme Store docs</a>.</p>
<p>On the theme listing pages, Google e-commerce events have also been implemented to enhance tracking capabilities. The events <a href="https://developers.google.com/analytics/devguides/collection/ga4/reference/events?sjid=2649380085872637034-NC&client_type=gtag#view_item" target="_blank" class="body-link">view_item</a> and <a href="https://developers.google.com/analytics/devguides/collection/ga4/reference/events?sjid=2649380085872637034-NC&client_type=gtag#add_to_cart" target="_blank" class="body-link">add_to_cart</a> will now be sent to Google Analytics, allowing for more precise data analysis.</p>
<p>For further details, check out the section on Google e-commerce events in the <a href="https://shopify.dev/docs/storefronts/themes/store/review-process/listings#google-e-commerce-events" target="_blank" class="body-link">Shopify Theme Store docs</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Sep 2024 14:22:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-full-funnel-theme-install-parameters-and-now-firing-e-commerce-events-on-the-theme-listing-page</link>
  </item>
  <item>
    <title>JavaScript Shopify Functions are now ~40% faster </title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI 3.67 and Javy 3.1, Shopify Functions built in JavaScript can see improved performance by as much as 40% when combined with <a href="https://github.com/Shopify/shopify-function-javascript/releases/tag/v1.0.0" target="_blank" class="body-link">@shopify/shopify_function 1.0</a></p>
<p>Learn more about JavaScript for Shopify Functions on <a href="https://shopify.dev/docs/apps/build/functions/programming-languages/javascript-for-functions" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Sep 2024 14:19:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/javascript-shopify-functions-are-now-40-faster</link>
  </item>
  <item>
    <title>New Full-Funnel App Install Parameters and Now Firing E-Commerce Events on the App Listing Page</title>
    <description><![CDATA[ <div class=""><p>Two new paremeters have been added  to the full-funnel app install event for the Shopify App Store - <code>shop_name</code> and <code>shop_url</code>. These enhancements provide more insights on which merchant is installing an app.</p>
<p>Learn more about the new parameters and full-funnel attribution in the <a href="https://shopify.dev/docs/apps/launch/marketing/track-listing-traffic#full-funnel-app-install-attributions" target="_blank" class="body-link">Shopify App Store docs</a>.</p>
<p>On the app listing pages, Google e-commerce events have also been implemented to enhance tracking capabilities. The events <a href="https://developers.google.com/analytics/devguides/collection/ga4/reference/events?sjid=2649380085872637034-NC&client_type=gtag#view_item" target="_blank" class="body-link">view_item</a> and <a href="https://developers.google.com/analytics/devguides/collection/ga4/reference/events?sjid=2649380085872637034-NC&client_type=gtag#add_to_cart" target="_blank" class="body-link">add_to_cart</a> will now be sent to Google Analytics, allowing for more precise data analysis.</p>
<p>For further details, check out the section on Google e-commerce events in the <a href="https://shopify.dev/docs/apps/launch/marketing/track-listing-traffic#google-e-commerce-events" target="_blank" class="body-link">Shopify App Store docs</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Sep 2024 13:42:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-full-funnel-app-install-parameters-and-now-firing-e-commerce-events-on-the-app-listing-page</link>
  </item>
  <item>
    <title>Product Feed webhooks now support per-market inventory</title>
    <description><![CDATA[ <div class=""><p>The <code>quantityAvailable</code> and <code>availableForSale</code> fields will now reflect country-specific inventory availability, scoped to the specified market country of the Product Feed. The Fulfillable Inventory feature must be enabled on the shop.</p>
<p>Learn more about Fulfillable Inventory on the <a href="https://help.shopify.com/en/manual/shipping/setting-up-and-managing-your-shipping/fulfillable-inventory?shpxid=9f72f39f-880B-480B-6688-54167E11AB9A" target="_blank" class="body-link">Shopify help docs</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Sep 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Webhook</category>
    <link>https://shopify.dev/changelog/product-feed-webhooks-now-support-per-market-inventory</link>
  </item>
  <item>
    <title> Post-purchase offers limit is increased</title>
    <description><![CDATA[ <div class=""><p>The number of post-purchase upsell offers that customers can accept has been increased from two to three. With this change, merchants can increase their order value even more through post-purchase upsell offers.</p>
<p>We highly recommend that you review any custom code that pertains to post-purchase offers to ensure an optimal buyer experience.</p>
<p>Learn more about post purchase offers on <a href="https://shopify.dev/docs/apps/build/checkout/product-offers/build-a-post-purchase-offer" target="_blank" class="body-link">shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 17 Sep 2024 17:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/post-purchase-offers-limit-is-increased</link>
  </item>
  <item>
    <title>Improvements in the GiftCard GraphQL endpoints and introducing GiftCardTransaction types</title>
    <description><![CDATA[ <div class=""><p>As of the GraphQL Admin API version 2024-10, we're improving the <code>GiftCard</code> endpoints and introducing <code>GiftCardTransaction</code> types. The gift card endpoints are now open to all apps and shops, with no additional approval scopes or flags required. </p>
<p>We have added the following mutations:</p>
<ul>
<li><code>giftCardDeactivate</code> renamed from <code>giftCardDisable</code> (deprecated).</li>
<li><code>giftCardCredit</code> to apply credit to a gift card returning a <code>GiftCardCreditTransaction</code>.</li>
<li><code>giftCardDebit</code> to apply debit to a gift card returning a <code>GiftCardDebitTransaction</code>.</li>
<li><code>giftCardSendNotificationToCustomer</code> to send the notification to the customer.</li>
<li><code>giftCardSendNotificationToRecipient</code> to send the notification to the recipient.</li>
</ul>
<p>We have updated the following mutations:</p>
<ul>
<li><code>giftCardCreate</code> to add <code>recipientAttributes</code>.</li>
<li><code>giftCardUpdate</code> to add <code>recipientAttributes</code>.</li>
</ul>
<p>We have added and modified fields in the <code>GiftCard</code> object:</p>
<ul>
<li>Added <code>updatedAt</code>.</li>
<li>Added <code>recipientAttributes</code>.</li>
<li>Added <code>transactions</code> returning all transactions created by credits and debits.</li>
<li>Renamed <code>disabledAt</code> to <code>deactivatedAt</code> (deprecated).</li>
</ul>
<h3>Developer action required</h3>
<p>Developers using the existing <code>giftCardDisable</code> mutation will need to replace it with <code>giftCardDeactivate</code></p>
<p>Developers using the <code>disableAt</code> property on the <code>GiftCard</code> object will need to replace it with <code>deactivatedAt</code></p>
<p>To learn more about gift cards, refer to the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/GiftCard" target="_blank" class="body-link">gift cards</a> documentation. To learn more about gift card recipient functionality, refer to the help center documentation for <a href="https://help.shopify.com/en/manual/online-store/themes/customizing-themes/add-gift-card-recipient-fields" target="_blank" class="body-link">recipient fields</a></p>
</div> ]]></description>
    <pubDate>Tue, 17 Sep 2024 12:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/improvements-in-the-giftcard-graphql-endpoints-and-introducing-giftcardtransaction-types</link>
  </item>
  <item>
    <title>The fulfillmentOrdersReleaseHolds Mutation Is Deprecated</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API version 2024-10, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/fulfillmentOrdersReleaseHolds" target="_blank" class="body-link">fulfillmentOrdersReleaseHolds</a> mutation has been deprecated.</p>
<p>Apps using this mutation should migrate to using the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderReleaseHold" target="_blank" class="body-link">fulfillmentOrderReleaseHold</a> mutation instead.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Sep 2024 14:53:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/the-fulfillmentordersreleaseholds-mutation-is-deprecated</link>
  </item>
  <item>
    <title>Admin API includes `urlRedirectsCount`</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version <code>2024-10</code>, you can access <code>QueryRoot.urlRedirectsCount</code> field to retrieve the count of redirects.</p>
<p>Learn more about <code>urlRedirectsCount</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/urlRedirectsCount" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Sep 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/admin-api-includes-urlredirectscount</link>
  </item>
  <item>
    <title>New query attributes on products query</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-10</strong> version of the GraphQL Admin API, the <code>products</code> query filter has been expanded to allow filtering on additional attributes: <code>publication_ids</code>, <code>variant_id</code> and <code>variant_title</code>.</p>
<p>Check out all <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/products#argument-query" target="_blank" class="body-link">products query attributes</a> at <a href="https://shopify.dev/" target="_blank" class="body-link">shopify.dev</a> for more details.</p>
</div> ]]></description>
    <pubDate>Mon, 16 Sep 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/new-query-attributes-on-products-query</link>
  </item>
  <item>
    <title>Field deprecations on the abandoned checkout REST API</title>
    <description><![CDATA[ <div class=""><p>The following fields have been deprecated  from the <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/abandoned-checkouts" target="_blank" class="body-link">Abandoned Checkout REST API</a>: <code>cart_token</code>, <code>closed_at</code>, <code>currency</code>, <code>gateway</code>, <code>landing_site</code>, <code>fulfillment_service</code>, <code>grams</code>, <code>presentment_currency</code>, <code>referring_site</code>, <code>shipping_lines</code>, <code>token</code> and <code>total_weight</code> fields</p>
<p>As of 2024-10, the endpoint is available via the <a href="https://shopify.dev/changelog/new-abandoned-checkouts-listing-endpoint-on-the-admin-graphql-api" target="_blank" class="body-link">newly published GraphQL abandoned checkout API</a>. </p>
</div> ]]></description>
    <pubDate>Fri, 13 Sep 2024 17:12:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/field-deprecations-on-the-abandoned-checkout-rest-api</link>
  </item>
  <item>
    <title>Fulfillment Holds Now Able To Be Released by ID</title>
    <description><![CDATA[ <div class=""><p>As of the GraphQL Admin API version 2024-10, a <code>id</code>  field is being added to the <code>FulfillmentHold</code> GraphQL object.</p>
<p>As of the GraphQL Admin API version 2024-10, an optional <code>holdIds</code>  argument is being added to  the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderReleaseHold" target="_blank" class="body-link">fulfillmentOrderReleaseHold</a>  mutation. This will give apps the ability to release a hold by ID, ensuring that only the intended hold is released. <strong>It is highly recommended that apps supply the ids of any holds when releasing them</strong>. Releasing all holds on a fulfillment order will result in the fulfillment order being released prematurely and items being incorrectly fulfilled.</p>
</div> ]]></description>
    <pubDate>Fri, 13 Sep 2024 15:16:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/fulfillment-holds-now-able-to-be-released-by-id</link>
  </item>
  <item>
    <title>Admin API includes `statusPageUrl` field on `Order`</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version <code>2024-10</code>, you can access <code>Order.statusPageUrl</code> field to retrieve the URL where the customer can check the order's current status.</p>
<p>Learn more about <code>Order</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Order#field-statuspageurl" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 13 Sep 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/admin-api-includes-statuspageurl-field-on-order</link>
  </item>
  <item>
    <title>Customer SMS Consent Collected From now returns Shopify when the buyer consents to SMS marketing in Shopify Checkout</title>
    <description><![CDATA[ <div class=""><p>As of September 12, 2024, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/enums/CustomerConsentCollectedFrom" target="_blank" class="body-link"><code>CustomerConsentCollectedFrom</code> field</a> will return <code>SHOPIFY</code> whenever SMS consent is captured in Shopify Checkout. Previously, it would return <code>OTHER</code> if the buyer consented to SMS marketing in checkout, but the sales channel of the checkout was not one owned by Shopify (Example, online store checkouts would return <code>SHOPIFY</code> while custom storefronts would return <code>OTHER</code>).</p>
<p>This applies to both the 1st party SMS consent UI, as well as any checkout UI extensions using the <a href="https://shopify.dev/docs/api/checkout-ui-extensions/2024-07/components/forms/consentcheckbox" target="_blank" class="body-link"><code>ConsentCheckbox</code></a> or <a href="https://shopify.dev/docs/api/checkout-ui-extensions/2024-07/components/forms/consentphonefield" target="_blank" class="body-link"><code>ConsentPhoneField</code></a> UI components.</p>
<p>Other SMS consent capture flows are unaffected.</p>
</div> ]]></description>
    <pubDate>Thu, 12 Sep 2024 17:25:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Webhook</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/customer-sms-consent-collected-from-now-returns-shopify-when-the-buyer-consents-to-sms-marketing-in-shopify-checkout</link>
  </item>
  <item>
    <title>Hydrogen September 2024 release</title>
    <description><![CDATA[ <div class=""><p>Hydrogen v2024.7.5 is out today. The September 2024 Hydrogen release contains several optimizations and bug fixes, including:</p>
<ul>
<li>Improved sitemaps (unstable) (<a href="https://github.com/Shopify/hydrogen/pull/2478" target="_blank" class="body-link">#2478</a>)</li>
<li>Skeleton template search enhancements (<a href="https://github.com/Shopify/hydrogen/pull/2363" target="_blank" class="body-link">#2363</a>)</li>
<li>Cart gift card support (<a href="https://github.com/Shopify/hydrogen/pull/2298" target="_blank" class="body-link">#2298</a>)</li>
<li>Consent localization (<a href="https://github.com/Shopify/hydrogen/pull/2457" target="_blank" class="body-link">#2457</a>)</li>
<li>Improved content security policy implementation (<a href="https://github.com/Shopify/hydrogen/pull/2500" target="_blank" class="body-link">#2500</a>)</li>
<li>Infinite redirect fix for with URLs with <code>//</code> (<a href="https://github.com/Shopify/hydrogen/pull/2449" target="_blank" class="body-link">#2449</a>)</li>
<li>Improved <code>useOptimisticCart</code> to optimistically calculate totals (<a href="https://github.com/Shopify/hydrogen/pull/2459" target="_blank" class="body-link">#2459</a>)</li>
<li>Skeleton template mobile device link fix (<a href="https://github.com/Shopify/hydrogen/pull/2450" target="_blank" class="body-link">#2450</a>)</li>
<li>Utilities <code>privacyBanner</code> and <code>customerPrivacy</code> have been added to <code>useAnalytics</code> and <code>useCustomerPrivacy</code> (<a href="https://github.com/Shopify/hydrogen/pull/2457" target="_blank" class="body-link">#2457</a>)</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/september-2024" target="_blank" class="body-link">Hydrogen September 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Thu, 12 Sep 2024 01:45:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-september-2024-release</link>
  </item>
  <item>
    <title>Introducing PRODUCT_CATEGORY_ID in CollectionRuleColumn and Deprecating PRODUCT_TAXONOMY_NODE_ID for automated collection creation</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-10, we're adding the new <strong>PRODUCT_CATEGORY_ID</strong> as a column for the <code>CollectionRuleColumn</code> which is <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/CollectionRuleColumn" target="_blank" class="body-link">used to create automated collections</a>. This field maps directly to the newly added Product Category as defined in the <a href="https://github.com/Shopify/product-taxonomy/tree/main" target="_blank" class="body-link">updated standard product taxonomy</a> and will allow for the creation of smart collections based on this new category tree.</p>
<h3>What's new?</h3>
<ul>
<li><strong>Introduction of <code>PRODUCT_CATEGORY_ID</code> Column</strong>: We are introducing a new column, <code>PRODUCT_CATEGORY_ID</code>, in the <code>CollectionRuleColumn</code>. This column will directly map to the category ID of a product, allowing for more precise and efficient collection rule creation based on product categories as defined in the <a href="https://github.com/Shopify/product-taxonomy/tree/main" target="_blank" class="body-link">updated standard product taxonomy</a>.</li>
</ul>
<h3>What's deprecated?</h3>
<ul>
<li><strong>Deprecation of <code>PRODUCT_TAXONOMY_NODE_ID</code> Column</strong>: The <code>PRODUCT_TAXONOMY_NODE_ID</code> column is being deprecated. This column previously used the now-deprecated <code>productCategory</code> field on products, the previous method for categorising products before the <a href="https://github.com/Shopify/product-taxonomy/tree/main" target="_blank" class="body-link">updated standard product taxonomy</a> was introduced this year. Developers should transition to using the new <code>PRODUCT_CATEGORY_ID</code> column to ensure newly created products that necessarily use the updated product taxonomy are included in automated collections as expected.</li>
</ul>
<h3>Developer action required</h3>
<p>Developers are encouraged to update their implementations to use the new <code>PRODUCT_CATEGORY_ID</code> column when specifying product attributes for populating smart collections. The deprecated <code>PRODUCT_TAXONOMY_NODE_ID</code> will remain functional but is scheduled for removal in a future API version. Transitioning early will ensure smoother operations and access to the enhanced functionality provided by the new schema.</p>
<h3>Example of updated usage</h3>
<p>To create a smart collection using the new <code>PRODUCT_CATEGORY_ID</code>, modify the collection creation mutation as follows:</p>
<pre><code class="language-graphql">mutation CollectionCreate($input: CollectionInput!) {
  collectionCreate(input: $input) {
    userErrors {
      field
      message
    }
    collection {
      id
      title
      descriptionHtml
      handle
      sortOrder
      ruleSet {
        appliedDisjunctively
        rules {
          column
          relation
          condition
        }
      }
    }
  }
}
{
  &quot;input&quot;: {
    &quot;title&quot;: &quot;Our entire shoe collection&quot;,
    &quot;descriptionHtml&quot;: &quot;View &lt;b&gt;every&lt;/b&gt; shoe available in our store.&quot;,
    &quot;ruleSet&quot;: {
      &quot;appliedDisjunctively&quot;: false,
      &quot;rules&quot;: {
        &quot;column&quot;: &quot;PRODUCT_CATEGORY_ID&quot;,
        &quot;relation&quot;: &quot;EQUALS&quot;,
        &quot;condition&quot;: &quot;gid://shopify/TaxonomyCategory/aa-5&quot; 
      }
    }
  }
}

Learn more about collection creation at [Shopify.dev](https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionCreate)






</code></pre>
</div> ]]></description>
    <pubDate>Wed, 11 Sep 2024 22:10:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/introducing-product_category_id-in-collectionrulecolumn-and-deprecating-product_taxonomy_node_id-for-automated-collection-creation</link>
  </item>
  <item>
    <title>Updates to webhook retry mechanism</title>
    <description><![CDATA[ <div class=""><p>Webhooks will now be retried a total of 8 times over 4 hours using an exponential backoff schedule.  This should allow sufficient time for transient errors to be resolved.</p>
<p>When webhooks are retried, they will be delivered with the original payload from the time they were triggered.  Partners should utilize the <code>X-Shopify-Triggered-At</code> timestamp in the header, or a timestamp from the payload to determine if the payload is stale.</p>
<p>Retried webhooks will be delivered to the subscription's address that was configured when the webhook was triggered.  Updating the subscription's address during a retry cycle will not result in the webhook being delivered to the new address.  When migrating webhooks to a new endpoint, it is recommended to keep both endpoints active for a short period of time to ensure a smooth transition.</p>
<p>These changes aim to improve the consistency, efficiency and reliability of webhook delivery while minimizing the impact on partners.</p>
</div> ]]></description>
    <pubDate>Tue, 10 Sep 2024 15:14:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Webhook</category>
    <link>https://shopify.dev/changelog/updates-to-webhook-retry-mechanism</link>
  </item>
  <item>
    <title>Static app navigation for admin apps is no longer supported</title>
    <description><![CDATA[ <div class=""><p>Static app navigation for admin apps is no longer supported. Creation and editing of static navigation are no longer available on the the Partners dashboard. You can delete existing menus using the Partners dashboard until December 2024. After December 2026, static navigation items will be automatically removed from apps.</p>
<p>To configure app navigation,  use the App Bridge navigation menu <a href="https://shopify.dev/docs/api/app-bridge-library/web-components/ui-nav-menu" target="_blank" class="body-link">web component</a> or <a href="https://shopify.dev/docs/api/app-bridge-library/react-components/navmenu-component" target="_blank" class="body-link">React component</a> to add navigation to your app and delete the existing navigation items from the Partners dashboard.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Sep 2024 16:31:00 +0000</pubDate>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/static-app-navigation-for-admin-apps-is-no-longer-supported</link>
  </item>
  <item>
    <title>Removing V2 suffix from fulfillmentCreateV2 and fulfillmentTrackingInfoUpdateV2</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code>, we're deprecating <code>fulfillmentCreateV2</code> and <code>fulfillmentTrackingInfoUpdateV2</code>. Instead, please use <code>fulfillmentCreate</code> and <code>fulfillmentTrackingInfoUpdate</code>.</p>
<p>Note that the behavior of the new mutations remains the same as the previous ones; the only change is the removal of V2 to ensure consistent naming across all mutations.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Sep 2024 15:32:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/removing-v2-suffix-from-fulfillmentcreatev2-and-fulfillmenttrackinginfoupdatev2</link>
  </item>
  <item>
    <title>The REST location resource requires `locations` scope</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-10</strong> release of the Admin REST API, the location resource will be gated by the <code>locations</code> scope.</p>
<p>Attempting to access the <a href="https://shopify.dev/docs/api/admin-rest/2024-10/resources/location#resource-object" target="_blank" class="body-link">location resource</a> without the <code>read_locations</code> scope will return a <code>403 Forbidden</code> <a href="https://shopify.dev/docs/api/admin-rest#status_and_error_codes" target="_blank" class="body-link">error</a>.
If your app gets the location resource, then you will need to request the correct <code>read_locations</code> scope before migrating to the 2024-10 API version.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Sep 2024 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/the-rest-location-resource-requires-locations-scope</link>
  </item>
  <item>
    <title>Fresh theme rows for Theme Store homepage</title>
    <description><![CDATA[ <div class=""><p>To help merchants discover the freshest and most well-integrated themes for their store, we've shipped an update to the Theme Store homepage to highlight Top and New themes (published in the last 60 days).</p>
</div> ]]></description>
    <pubDate>Fri, 06 Sep 2024 19:16:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/fresh-theme-rows-for-theme-store-homepage</link>
  </item>
  <item>
    <title>Storefront Product Taxonomy Category API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API <strong>2024-10</strong>, you can now retrieve product taxonomy categories in storefronts. This information is also available through the Liquid API.</p>
<p>This will allow you to customize the buyer experience in storefronts based on product taxonomy. Learn more about product taxonomy in <a href="https://help.shopify.com/en/manual/products/details/product-category" target="_blank" class="body-link">our help docs</a>.</p>
<p>See Shopify.dev for documentation on the <a href="https://shopify.dev/docs/api/liquid/objects#taxonomy_category" target="_blank" class="body-link">new Liquid object</a> and the <a href="https://shopify.dev/docs/api/storefront/unstable/objects/TaxonomyCategory" target="_blank" class="body-link">upcoming GraphQL type</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 05 Sep 2024 21:48:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Liquid</category>
    <category>Storefront GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/storefront-product-taxonomy-category-api</link>
  </item>
  <item>
    <title>Allow item activation at legacy location</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->
<p>As of Graphql Admin Api version <strong>2024-10</strong>, calls to mutation <code>inventoryActivate</code> can use an optional parameter <code>stockAtLegacyLocation</code>. Setting this parameter to <code>true</code> will allow inventory to be activated if the <code>locationId</code> provided is associated with a fulfillment service that does not permit sku sharing.</p>
<p>If an item is activated at a location that does not permit sku sharing then the item will be deactivated at all other locations.</p>
<p>If an item is currently active at a location that does not permit sku sharing and you want to activate that item at another location the <code>stockAtLegacyLocation</code> parameter also needs to be set to true.</p>
<p>Learn more about <code>inventoryActivate</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/inventoryActivate" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Wed, 04 Sep 2024 17:21:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/allow-item-activation-at-legacy-location</link>
  </item>
  <item>
    <title>ReverseFulfillmentOrderLineItem.fulfillmentLineItem field is nullable as of 2024-10</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2024-10</strong>,  <code>ReverseFulfillmentOrderLineItem.fulfillmentLineItem</code> field is nullable.  A <code>ReverseFulfillmentOrderLineItem</code> will not always be associated with a <code>FulfillmentLineItem</code> anymore. The non-null <code>fulfillmentLineItem</code> field on the older API versions will return a graphql error when the fulfillment line item does not exisit.</p>
<p>Learn more about <code>ReverseFulfillmentOrderLineItem</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/ReverseFulfillmentOrderLineItem" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 30 Aug 2024 17:55:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/reversefulfillmentorderlineitem-fulfillmentlineitem-field-is-nullable-as-of-2024-10</link>
  </item>
  <item>
    <title>Admin API removes `lineItemsMutable` field on `Order`</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version <code>2024-10</code>, use <code>Order.lineItems</code> instead of <code>lineItemsMutable</code> field to get a list of the order's line items.</p>
<p>Learn more about <code>Order</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Order#connection-lineitems" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 27 Aug 2024 19:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/admin-api-removes-lineitemsmutable-field-on-order</link>
  </item>
  <item>
    <title>Customer, Order, Company, and Model3d GraphQL types available in MetafieldReference union for 2024-01 and onward</title>
    <description><![CDATA[ <div class=""><p>We are retroactively adding Customer, Order, Company, and Model3d graphql types to the <a href="https://shopify.dev/docs/api/admin-graphql/latest/unions/MetafieldReference" target="_blank" class="body-link">MetafieldReference union</a> for Admin API from 2024-01 and onward.</p>
<p>Additionally, TaxonomyValue will be added in 2024-04 to align with the version the type was introduced.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Aug 2024 21:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/customer-order-company-and-model3d-graphql-types-available-in-metafieldreference-union-for-2024-01-and-onward</link>
  </item>
  <item>
    <title>Protected customer data access required to use the Customer Account API</title>
    <description><![CDATA[ <div class=""><p>We are requiring apps to meet at least Level 1 Protected Customer Data Requirements in order to access the Customer Account GraphQL API. This change is applicable to all API versions. We recognize that this may be a breaking change for public apps that use the Customer Account API and is necessary to ensure the protection of customer data.</p>
<p>This change will not impact Hydrogen and Headless storefronts or Custom Apps since they already have access to Level 1 and Level 2 Protected Customer data.</p>
<p>Partners that are part of the Customer Account UI Extensibility developer preview and are calling the Customer Account API from their extensions will need to <a href="https://shopify.dev/docs/apps/launch/protected-customer-data#request-access-to-protected-customer-data" target="_blank" class="body-link">request access</a> to continue to access the API.</p>
<p>Learn more about Protected Customer Data on <a href="https://shopify.dev/docs/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Aug 2024 21:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Customer Account API</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/protected-customer-data-access-required-to-use-the-customer-account-api</link>
  </item>
  <item>
    <title>Adding `productVariantsCount` GraphQL field.</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code> version, we are adding <code>productVariantsCount</code> field to the Admin GraphQL API. </p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/productVariantsCount" target="_blank" class="body-link">productVariantsCount</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Aug 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/adding-productvariantscount-graphql-field</link>
  </item>
  <item>
    <title>Built for Shopify Technical criteria checklist has been updated</title>
    <description><![CDATA[ <div class=""><p>The following changes have been made:</p>
<ul>
<li>Technical criteria checklist has been renamed to <code>Technical criteria</code></li>
<li>App distribution page layout has been updated, and the content for some standards have been re-worded for clarity.<ul>
<li>Added: A new section <code>Category-specific criteria</code> to outline criteria for specific app features. </li>
<li>Renamed: <code>Build for performance</code> is now <code>Performance</code>. </li>
<li>Renamed: <code>Usefulness criteria</code> is now <code>Merchant utility</code></li>
<li>Combined: <code>Protect app safety, security, and reliability</code> and <code>Design for ease of use</code> are now <code>Design and functionality</code></li>
<li>Removed:  <code>Share app info and benefits</code> along with the standard <code>Make sure your app listing content is up-to-date</code>. This standard was intended to encourage completion of new app listing form fields introduced in the past, which all partners now have completed.</li>
</ul>
</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 23 Aug 2024 16:29:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/built-for-shopify-technical-criteria-checklist-has-been-updated</link>
  </item>
  <item>
    <title>Updates to Feature Filters, Theme Listing &amp; Partner Pages</title>
    <description><![CDATA[ <div class=""><ul>
<li>Merchants can now filter themes by 3 new features: &quot;Quick Order List&quot;, &quot;Sign in with Shop&quot; &amp; &quot;Swatch Filters&quot;. And we have removed 3 feature filters: &quot;Product reviews&quot;, &quot;Event Calendar&quot; &amp; &quot;Store Locator&quot;.</li>
<li>Each Theme's listing page has been updated to include quality signals and new styling.</li>
<li>The order of Theme cards on your Partner-specific &quot;All Theme Page&quot; has changed to be &quot;Newest to Oldest&quot;.</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 23 Aug 2024 15:49:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-feature-filters-theme-listing-partner-pages</link>
  </item>
  <item>
    <title>Remove unused error codes from LocationDeactivateUserErrorCode</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-10</strong> release of the GraphQL Admin API, we're removing the error codes: <code>HAS_OPEN_TRANSFERS_ERROR</code> and <code>FAILED_TO_RELOCATE_OPEN_TRANSFERS</code> from <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/LocationDeactivateUserErrorCode" target="_blank" class="body-link">LocationDeactivateUserErrorCode</a>.</p>
<p>The error codes were not being returned from the <code>LocationDeactivate</code> mutation, as such, they will no longer be listed as possible error codes.</p>
<p>If you are explicitly checking either of these error codes, you should remove references to them. </p>
</div> ]]></description>
    <pubDate>Fri, 23 Aug 2024 13:01:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/remove-unused-error-codes-from-locationdeactivateusererrorcode</link>
  </item>
  <item>
    <title>ShopifyPaymentsAccount GraphQL Admin API unused fields removed</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-10, we're cleaning up the <code>shopifyPaymentsAccount</code> endpoint and removing several unused fields.</p>
</div> ]]></description>
    <pubDate>Wed, 21 Aug 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/shopifypaymentsaccount-graphql-admin-api-unused-fields-removed</link>
  </item>
  <item>
    <title>Shopify Functions log streaming and replay is now generally available</title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI 3.66, log streaming and replay for Shopify Functions is generally available.</p>
<p>Log streaming for Shopify Functions enables faster development, testing, and debugging of functions by bringing function execution logs to Shopify CLI. You can also replay function executions locally using input from these logs.</p>
<p>Learn more about Shopify Functions log streaming on <a href="https://shopify.dev/docs/apps/build/functions/test-debug-functions" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 Aug 2024 14:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-log-streaming-and-replay-is-now-generally-available</link>
  </item>
  <item>
    <title>Breaking changes to media in GraphQL API's ProductSet mutation in version 2024-10</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version <code>2024-10</code>, we are expanding media capabilities in the productSet mutation:</p>
<ul>
<li><p>We are adding a new field type <strong><code>FileSetInput</code></strong>, which is a derivative of the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/input-objects/FileCreateInput" target="_blank" class="body-link">FileCreateInput</a>, with an added <code>id</code> field, which results in being able to both work with already existing media and create new files while using the same type.</p>
</li>
<li><p><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/ProductSetInput#field-mediaids" target="_blank" class="body-link"><code>ProductSet.mediaIds</code></a> field is being removed and replaced with the new <code>**files**</code> field, which expands the former's functionality by allowing you to also create new files to be associated with the product specified. This field utilizes the new <code>FileSetInput</code> type.</p>
</li>
<li><p><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/ProductVariantSetInput#field-mediaid" target="_blank" class="body-link"><code>ProductSetVariantInput.mediaId</code></a> is being removed and replaced with <code>**file**</code> field, which will associate the file with the variant. This field utilizes the new <code>FileSetInput</code> type.</p>
</li>
</ul>
<p>For more detailed information and examples, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productSet" target="_blank" class="body-link">productSet documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Tue, 20 Aug 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-media-in-graphql-api-s-productset-mutation-in-version-2024-10</link>
  </item>
  <item>
    <title>Metafields and metaobjects reserved prefixes now supported in theme app extensions</title>
    <description><![CDATA[ <div class=""><p>When accessing metafield namespaces or metaobject types, you no longer need to hard code <code>app--{app_id}</code>. The <code>$app</code> reserved prefix is now available to use in your Liquid files.</p>
<p>Learn more about using reserved prefixes in theme app extensions on <a href="https://shopify.dev/docs/apps/build/online-store/theme-app-extensions/configuration#reserved-prefixes-for-metafields-and-metaobjects" target="_blank" class="body-link">Shopify.dev developer docs</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 19 Aug 2024 16:41:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/metafields-and-metaobjects-reserved-prefixes-now-supported-in-theme-app-extensions</link>
  </item>
  <item>
    <title>Developer Preview: Accelerated Checkout Buttons on storefront now support Shopify Functions, Bundles, and have improved performance</title>
    <description><![CDATA[ <div class=""><p>We have improved the design and function of Dynamic Checkout and Accelerated Checkout buttons on storefront pages. These updates ensure that the buttons now support features like Shopify Functions and Product Bundles, providing better performance and a smoother user experience. These changes are now live on development stores and will begin rolling out to all merchants <strong>September 15</strong>.</p>
<p>Please note that the Accelerated Checkout buttons now hide their HTML in a custom element with a closed <a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM" target="_blank" class="body-link">shadow DOM</a>. This means that any styling or event tracking that targets the existing HTML structure of these buttons will break.</p>
<p>Please review <a href="https://shopify.dev/docs/storefronts/themes/pricing-payments/accelerated-checkout/upgrade-accelerated-checkout" target="_blank" class="body-link">this guide</a>  and the <a href="https://shopify.dev/docs/storefronts/themes/pricing-payments/accelerated-checkout" target="_blank" class="body-link">Accelerated checkout button reference</a> to ensure your customizations remain compatible with the latest updates.</p>
</div> ]]></description>
    <pubDate>Fri, 16 Aug 2024 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/developer-preview-accelerated-checkout-buttons-on-storefront-now-support-shopify-functions-bundles-and-have-improved-performance</link>
  </item>
  <item>
    <title>Storefront API changes when Cart ID is missing the key param</title>
    <description><![CDATA[ <div class=""><p>We are modifying how cart queries and mutations behave when the <a href="https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage#cart-id" target="_blank" class="body-link">Storefront API Cart ID</a> is missing the key param. This behavior is applied retroactively to all versions of the Storefront API. </p>
<p>An example cart ID: gid://shopify/Cart/c1-7a2abe82733a34e84aa472d57fb5c3c1?<strong>key=824bdj25mhg1242bdb385</strong></p>
<ul>
<li><p><strong>Queries:</strong> Querying a cart without including the key param will result in a cart with the buyer's private details removed.</p>
</li>
<li><p><strong>Mutations</strong> Updating a cart without including the key param will result in an error : <code>The specified cart does not exist</code>.</p>
</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 15 Aug 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/storefront-api-changes-when-cart-id-is-missing-the-key-param</link>
  </item>
  <item>
    <title>Deprecation Notice: `ProductChangeStatus` in Admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>We are deprecating <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productChangeStatus" target="_blank" class="body-link">productChangeStatus</a> mutation. Use <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productUpdate" target="_blank" class="body-link">productUpdate</a> mutation instead.</p>
<p>You will need to migrate to the new endpoint by January 2025 when we will remove access to the <code>productChangeStatus</code> mutation.</p>
<p>Learn more about product mutations at <a href="https://shopify.dev/" target="_blank" class="body-link">shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Thu, 15 Aug 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/deprecation-notice-productchangestatus-in-admin-graphql-api</link>
  </item>
  <item>
    <title>Theme cards being updated</title>
    <description><![CDATA[ <div class=""><p>Theme cards on the Theme Store have been updated. Theme cards are now:</p>
<ol>
<li>Visually simpler (feature tags have been removed)</li>
<li>Have a link to the listing for the Theme title </li>
<li>Have a badge to identify Themes that are new to the Theme Store</li>
<li>Show a Themes percentage positive reviews, and the number of reviews it's received</li>
</ol>
<p>No action is needed from Theme developers.</p>
</div> ]]></description>
    <pubDate>Wed, 14 Aug 2024 20:54:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/theme-cards-being-updated</link>
  </item>
  <item>
    <title>Updating *new* Theme promotion period</title>
    <description><![CDATA[ <div class=""><p>We are extending the promotion period for new Themes. Now, new Themes will be highlighted for a longer period than before. </p>
</div> ]]></description>
    <pubDate>Wed, 14 Aug 2024 17:45:00 +0000</pubDate>
    <category>Shopify Theme Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updating-new-theme-promotion-period</link>
  </item>
  <item>
    <title>Link metafield type now supported in metafield Liquid filters</title>
    <description><![CDATA[ <div class=""><p>We've added support for the <code>Link</code> metafield type to the <code>metafield_tag</code> filter in Liquid.</p>
<p>Furthermore, you can now consume <code>Link</code> metafields using dynamic sources in <code>inline_richtext</code> and <code>richtext</code> theme settings. <code>Link</code> metafields will be inserted with the <code>metafield_tag</code> filter by default for these setting types.</p>
<p>Learn more about metafield filters in <a href="https://shopify.dev/docs/api/liquid/filters/metafield-filters" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 13 Aug 2024 17:12:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/link-metafield-type-now-supported-in-metafield-liquid-filters</link>
  </item>
  <item>
    <title>Error messages available in the Shopify Pixel Helper</title>
    <description><![CDATA[ <div class=""><p>We've added error messages to the Shopify Pixel Helper so that you can more easily debug your custom pixels. The Pixel Helper will display uncaught errors that occur at the top level or in the callback function. Top level errors will be viewable when the Pixel Helper loads. Callback error messages will be viewable when an event with a red dot is expanded.</p>
</div> ]]></description>
    <pubDate>Tue, 13 Aug 2024 16:14:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/error-messages-available-in-the-shopify-pixel-helper</link>
  </item>
  <item>
    <title>Removing MetafieldStorefrontVisibility-related fields and mutations from Admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of the GraphQL Admin API version 2024-10, we're removing a number of <code>MetafieldStorefrontVisibility</code>-related fields, queries, and mutations.</p>
<p>Use the more flexible <code>MetafieldDefinition.access</code> field instead.</p>
<ul>
<li>We're removing <code>MetafieldDefinition.visibleToStorefrontApi</code>.<ul>
<li>Use <code>MetafieldDefinition.access</code> instead.</li>
</ul>
</li>
<li>We're removing <code>MetafieldDefinitionInput.visibleToStorefrontApi</code>.<ul>
<li>Use <code>MetafieldDefinitionInput.access</code> instead.</li>
</ul>
</li>
<li>We're removing <code>MetafieldDefinitionUpdateInput.visibleToStorefrontApi</code>.<ul>
<li>Use <code>MetafieldDefinitionUpdateInput.access</code> instead.</li>
</ul>
</li>
<li>We're removing <code>metafieldStorefrontVisibilityCreate</code><ul>
<li>Use <code>MetafieldDefinitionUpdate</code> instead.</li>
</ul>
</li>
<li>We're removing <code>metafieldStorefrontVisibilityDelete</code><ul>
<li>Use <code>MetafieldDefinitionUpdate</code> instead.</li>
</ul>
</li>
<li>We're removing <code>metafieldStorefrontVisibilities</code><ul>
<li>Use <code>MetafieldDefinition.access</code> instead.</li>
</ul>
</li>
<li>We're removing <code>metafieldStorefrontVisibility</code><ul>
<li>Use <code>MetafieldDefinition.access</code> instead.</li>
</ul>
</li>
</ul>
<p>Learn more about <code>MetafieldDefinition.access</code> at <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/MetafieldAccess" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/2024-07/objects/MetafieldAccess</a></p>
</div> ]]></description>
    <pubDate>Mon, 12 Aug 2024 22:58:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/removing-metafieldstorefrontvisibility-related-fields-and-mutations-from-admin-graphql-api</link>
  </item>
  <item>
    <title>Hydrogen August 2024 release</title>
    <description><![CDATA[ <div class=""><p><a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402024.7.3" target="_blank" class="body-link">Hydrogen v2024.7.3</a> is out today. The August 2024 Hydrogen release contains several quality-of-life improvements, optimizations and bug fixes:</p>
<ul>
<li>Custom <code>.env</code> file support (<a href="https://github.com/Shopify/hydrogen/pull/2392" target="_blank" class="body-link">#2392</a>)</li>
<li>Improved performance of currency formatting (<a href="https://github.com/Shopify/hydrogen/pull/2372" target="_blank" class="body-link">#2372</a>)</li>
<li>Improved handling of <code>remix.config.js</code> / <code>vite.config.js</code> files (<a href="https://github.com/Shopify/hydrogen/pull/2379" target="_blank" class="body-link">#2379</a>)</li>
<li>Simplified context creation with a new <code>createHydrogenContext</code> function (<a href="https://github.com/Shopify/hydrogen/pull/2333" target="_blank" class="body-link">#2333</a>)</li>
<li>Script component now takes a <code>waitForHydration</code> prop (<a href="https://github.com/Shopify/hydrogen/pull/2389" target="_blank" class="body-link">#2389</a>)</li>
<li>Google web cache fix (<a href="https://github.com/Shopify/hydrogen/pull/2334" target="_blank" class="body-link">#2334</a>)</li>
<li>Custom logger support for <code>vite.config.js</code>. (<a href="https://github.com/Shopify/hydrogen/pull/2341" target="_blank" class="body-link">#2341</a>)</li>
<li>Subrequest profiler virtual root fix (<a href="https://github.com/Shopify/hydrogen/pull/2344" target="_blank" class="body-link">#2344</a>)</li>
<li>CLI: Auth flow fix. (<a href="https://github.com/Shopify/hydrogen/pull/2331" target="_blank" class="body-link">#2331</a>) \</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/august-2024" target="_blank" class="body-link">Hydrogen August 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Fri, 09 Aug 2024 21:44:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-august-2024-release</link>
  </item>
  <item>
    <title>Added new `access` argument to `standardMetafieldDefinitionEnable` and `standardMetafieldDefinitionsEnable` GraphQL mutations</title>
    <description><![CDATA[ <div class=""><p>As of the GraphQL Admin API version 2024-10, an <code>access</code>  argument is being added to the <code>standardMetafieldDefinitionEnable</code> and <code>standardMetafieldDefinitionsEnable</code> GraphQL mutations.</p>
<p>As of the GraphQL Admin API version 2024-10, we're deprecating the <code>visibleToStorefrontApi</code> argument on the <code>standardMetafieldDefinitionEnable</code> and <code>standardMetafieldDefinitionsEnable</code> GraphQL mutations. Use the new  <code>access</code>  argument instead.</p>
<p>The new <code>access</code> argument allows developers to specify more granular access controls when enabling a standard metafield definition template.</p>
<p>Learn more about <code>standardMetafieldDefinitionEnable</code> and <code>standardMetafieldDefinitionsEnable</code> at <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/standardMetafieldDefinitionEnable" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/standardMetafieldDefinitionEnable</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/standardMetafieldDefinitionsEnable" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/unstable/mutations/standardMetafieldDefinitionsEnable</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 09 Aug 2024 16:53:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/added-new-access-argument-to-standardmetafielddefinitionenable-and-standardmetafielddefinitionsenable-graphql-mutations</link>
  </item>
  <item>
    <title>Notice of important updates to our Partner Program Agreement &amp; API License and Terms of Use </title>
    <description><![CDATA[ <div class=""><p>**Updates to our Partner Program Agreement and API License and Terms of Use
**</p>
<p>EFFECTIVE AUGUST 9, 2024 <strong>ACTION REQUIRED</strong></p>
<p>We've made changes to our Partner Program Agreement and API License and Terms of Use. These updates include terms that are intended to support the growth of Shopify Partners and Merchants, while maintaining the security and integrity of products and services offered on our platform. </p>
<p>These changes come into effect as of today, August 9, 2024.</p>
<p>We encourage all developers on our platform to review and be familiar with the <a href="https://www.shopify.com/legal/api-terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">API License and Terms</a> and the <a href="https://www.shopify.ca/partners/terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Partner Program Agreement</a>, so that you understand how to build, run, and grow your app and development business on our platform.</p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 09 Aug 2024 16:03:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/notice-of-important-updates-to-our-partner-program-agreement-api-license-and-terms-of-use</link>
  </item>
  <item>
    <title>Fulfillment Hold Release Access Update</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API version 2024-10, apps will not be able to release fulfillment holds unless they have write access to it.</p>
<p>If your app has the <code>write_merchant_managed_fulfillment_orders</code> scope, you will be able to release holds on fulfillment orders assigned to a merchant managed location.</p>
<p>If your app has the <code>write_third_party_fulfillment_orders</code> scope, you will be able to release holds on fulfillment orders assigned to a third party location.</p>
<p>If your app has the <code>write_marketplace_fulfillment_orders</code> scope, you will be able to release holds on fulfillment orders which belong to one of your marketplace's orders.</p>
<h3>How will this change effect my app?</h3>
<p>This change will only effect apps which release fulfillment holds using the Admin API.</p>
<p>If your app does not currently have sufficient access scopes as defined above then you will need to request the correct access scopes before migrating to the 2024-10 API version.</p>
<p>When using the GraphQL API, if your app does not have sufficient access to release a hold, a user error with the code <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderReleaseHoldUserErrorCode#value-fulfillmentordernotfound" target="_blank" class="body-link">INVALID_ACCESS</a> will be returned and the hold will not be released.</p>
<p>When using the REST API, if your app does not have sufficient access to release a hold, a <code>422</code> error code  will be returned and the hold will not be released.</p>
<p>See the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderReleaseHold" target="_blank" class="body-link">fulfillmentOrderReleaseHold mutation</a> for more information on what scopes are required.</p>
<p>See the API access scopes section of <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder" target="_blank" class="body-link">the FulfillmentOrder resource</a> for more information about these scopes.</p>
</div> ]]></description>
    <pubDate>Fri, 09 Aug 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/fulfillment-hold-release-access-update</link>
  </item>
  <item>
    <title>All categories now support structured app category details</title>
    <description><![CDATA[ <div class=""><p>You can now specify the category-related features your app offers. These structured app category details will appear on your App Store listing page and in the app comparison feature.</p>
<p>Fill out the app category details fields on your app listing pages so that merchants can more easily find and assess whether your app meets their needs. </p>
<p>For more information, please refer to our <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#4-app-category-details" target="_blank" class="body-link">dev documentation</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 07 Aug 2024 17:25:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/all-categories-now-support-structured-app-category-details</link>
  </item>
  <item>
    <title>Product category included in product webhooks</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code> version, the product create and update webhook payload contains information about the product category on a product.</p>
<p>The <code>category</code> field exposes a trimmed version of fields that are available on the Product GraphQL <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/Product#field-category" target="_blank" class="body-link">response</a>.</p>
<p>To receive <code>category</code> in the webhook payload, specify version <code>2024-10</code> or newer as the webhook API version in your <a href="https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version#step-3-select-the-newer-api-version" target="_blank" class="body-link">App Partner Dashboard</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Aug 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/product-category-included-in-product-webhooks</link>
  </item>
  <item>
    <title>Partner payout schedule update</title>
    <description><![CDATA[ <div class=""><p>Effective from July 29, 2024, a 30-day hold will be applied to your first payout. This change will only impact new partners who have not yet received their first payout. Learn more about <a href="https://help.shopify.com/en/partners/getting-started/getting-paid#payout-threshold-and-schedule" target="_blank" class="body-link">payout schedules</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 29 Jul 2024 19:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/partner-payout-schedule-update</link>
  </item>
  <item>
    <title>30 more categories now support structured app category details</title>
    <description><![CDATA[ <div class=""><p>You can now specify the category-related features your app offers for 30 additional categories. Fill out the fields on your app listing pages so that merchants can more easily find and assess whether your app meets their needs. These structured app category details will appear on your App Store listing page and in the app comparison feature.</p>
<ul>
<li>Countdown timer</li>
<li>Metafields</li>
<li>Forms</li>
<li>Navigation and menus</li>
<li>Wishlists</li>
<li>ERP</li>
<li>Accounting</li>
<li>Taxes</li>
<li>Legal</li>
<li>Wholesale</li>
<li>Returns and exchanges</li>
<li>Geolocation</li>
<li>Stock alerts</li>
<li>Pre-orders</li>
<li>Web push</li>
<li>Gift cards</li>
<li>Donations</li>
<li>Gift wrap and messages</li>
<li>Giveaways and contests</li>
<li>Surveys</li>
<li>Image gallery</li>
<li>Third-party logistics (3PL)</li>
<li>Fraud</li>
<li>Helpdesk</li>
<li>FAQ</li>
<li>Delivery and pickup</li>
<li>Video and livestream</li>
<li>Event booking</li>
<li>Accounts and login</li>
<li>Cash on delivery (COD)</li>
</ul>
<p>For the other categories that already supports app feature details, see <a href="https://shopify.dev/changelog/structured-app-category-details-now-available-for-30-more-categories" target="_blank" class="body-link">here</a> and <a href="https://shopify.dev/changelog/new-structured-app-category-details" target="_blank" class="body-link">here</a>. We plan to support all categories by August 2024. </p>
<p>For more information, please refer to our <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#4-app-category-details" target="_blank" class="body-link">dev documentation</a>. </p>
</div> ]]></description>
    <pubDate>Fri, 26 Jul 2024 14:30:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/30-more-categories-now-support-structured-app-category-details</link>
  </item>
  <item>
    <title>Additional address fields in checkout</title>
    <description><![CDATA[ <div class=""><p>The shipping and billing address forms in checkout can now have street name, street number, and neighborhood fields, allowing merchants to collect address data in regionally-accepted formats. The fields that are available depend on the country selected at checkout and if a merchant has additional address fields enabled. You can review the supported countries in the <a href="https://help.shopify.com/en/manual/international/shipping/international-considerations#additional-address" target="_blank" class="body-link">help documentation</a>. </p>
<p>The fields are now available for developers to test with as part of the Checkout Extensibility developer preview. The change will be rolling out to merchants in the coming weeks.</p>
<p>Learn how to make use of this data on <a href="https://shopify.dev/docs/apps/build/checkout/delivery-shipping/additional-address-fields" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Jul 2024 18:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/additional-address-fields-in-checkout</link>
  </item>
  <item>
    <title>[Cart Ajax API] Removing &quot;All _count_ _name_ are in your cart.&quot; inventory error response</title>
    <description><![CDATA[ <div class=""><p>We are removing the &quot;All <em>count</em> <em>name</em> are in your cart.&quot; error response in favour of the exisiting &quot;You can't add more <em>name</em> to the cart.&quot; error response in the Cart Ajax API.</p>
<p>Old behaviour: </p>
<ul>
<li>When all inventory of a variant are already in the cart and the client requests to add more of that variant to the cart, the error response description is &quot;All <em>count</em> <em>name</em> are in your cart.&quot;, and the message is &quot;Cart Error&quot;.</li>
<li>When some of the inventory of a variant is in the cart and the client requests to add more of that variant to the cart, so that the total amount in the cart is more than the available inventory, the error response description and message is  &quot;You can't add more <em>name</em> to the cart.&quot;</li>
</ul>
<p>New behaviour:</p>
<ul>
<li>When the client requests to add more than available inventory of a variant already in the cart the error response description and message is &quot;You can't add more <em>name</em> to the cart.&quot;</li>
</ul>
<p>This will affect the <code>update.js</code>, <code>change.js</code>, and <code>add.js</code> endpoints.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Jul 2024 10:19:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/cart-ajax-api-removing-all-_count_-_name_-are-in-your-cart-inventory-error-response</link>
  </item>
  <item>
    <title>Changes to CAPTCHA implementation on Storefronts</title>
    <description><![CDATA[ <div class=""><p>We are rolling out changes to CAPTCHA on the following forms on Storefronts:</p>
<ul>
<li>Customer Login</li>
<li>Customer Account Creation</li>
<li>Reset Password</li>
<li>Contact Form</li>
<li>Newsletter Signup</li>
<li>Blog Comments</li>
</ul>
<p>The changes include:</p>
<p><strong>1. Migration from Google reCAPTCHA to hCaptcha</strong></p>
<p>We are migrating our CAPTCHA solution to hCaptcha as part of an ongoing effort to reduce form spam. This is an ongoing, phased, rollout, and does not affect our <a href="https://shopify.dev/docs/storefronts/themes/trust-security/captcha" target="_blank" class="body-link">published methods</a> for you to work with CAPTCHA.</p>
<p><strong>2. Alternative methods to bind CAPTCHA to forms</strong></p>
<p>You can now force CAPTCHA wireup to Storefront forms using either declarative markup or JavaScript. This is primarily intended for App/Theme developers who wish to take control of Form submission, for example by constructing hidden forms that POST to Shopify. See the <a href="https://shopify.dev/docs/storefronts/themes/trust-security/captcha#advanced-forcing-captcha-wire-up-to-a-form" target="_blank" class="body-link">documentation</a>  for further information and examples.</p>
<p><strong>3. Strict CAPTCHA validation on form submissions</strong></p>
<p>Previously, forms submitted from Storefronts that contained an invalid or missing CAPTCHA token would redirect to <code>/challenge</code> for the user to solve an interactive CAPTCHA. Such form submissions will now cause a 400 error. Theme and App authors who submit forms to Shopify are strongly encouraged to ensure that their forms work with CAPTCHA enabled, by submitting a valid CAPTCHA without relying on the redirect to <code>/challenge</code></p>
</div> ]]></description>
    <pubDate>Wed, 24 Jul 2024 16:03:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-captcha-implementation-on-storefronts</link>
  </item>
  <item>
    <title>Refunding orders with multiple shipping lines returns accurate data</title>
    <description><![CDATA[ <div class=""><p>Orders with multiple <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Order#connection-shippinglines" target="_blank" class="body-link">shipping lines</a> may be refunded. You can refund shipping amounts using the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/RefundInput#field-refundinput-shipping" target="_blank" class="body-link"><code>refundCreate</code></a> GraphQL mutation, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/ReturnRefundInput#field-returnrefundinput-refundshipping" target="_blank" class="body-link"><code>returnRefund</code></a> GraphQL mutation, or the <a href="https://shopify.dev/docs/api/admin-rest/2024-07/resources/refund" target="_blank" class="body-link">Refunds</a> REST API.</p>
<p>As of <strong>July 18, 2024</strong>, all Admin GraphQL API versions return accurate refunds data for orders with multiple shipping lines.</p>
<ol>
<li>Shipping refunds will be included in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Refund#connection-refundshippinglines" target="_blank" class="body-link"><code>refundShippingLines</code></a> connection, in addition to shipping lines removed via an order edit.</li>
<li>For each refunded shipping line, there will be an <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Refund#connection-orderadjustments" target="_blank" class="body-link"><code>OrderAdjustment</code></a> with kind <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/OrderAdjustmentKind#value-shippingrefund" target="_blank" class="body-link"><code>SHIPPING_REFUND</code></a>. Previously, there would be a single <code>OrderAdjustment</code> with kind <code>SHIPPING_REFUND</code> regardless of how many shipping lines were present on the order.</li>
<li>The <code>RefundAgreement</code> has multiple shipping line <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/RefundAgreement#connection-sales" target="_blank" class="body-link">sales</a>. Each <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/ShippingLineSale" target="_blank" class="body-link"><code>ShippingLineSale</code></a> corresponds to exactly one shipping line that was refunded. The <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/ShippingLineSale#field-shippinglinesale-shippingline" target="_blank" class="body-link"><code>ShippingLineSale.shippingLine</code></a> is now populated for all API versions for the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/enums/SaleActionType#value-return" target="_blank" class="body-link"><code>RETURN</code></a> action type.</li>
</ol>
<p>As of <strong>July 18, 2024</strong>, all REST API versions return accurate refunds data for orders with multiple shipping lines.</p>
<ol>
<li>For each refunded shipping line, there will be an order adjustment with kind = <code>shipping_refund</code> in the <a href="https://shopify.dev/docs/api/admin-rest/2024-07/resources/refund#resource-object" target="_blank" class="body-link"><code>order_adjustments</code></a> property. Previously, there would be a single order adjustment with kind = <code>shipping_refund</code>, regardless of how many shipping lines were present on the order.</li>
</ol>
<p>Please note that <code>Refund.refundShippingLines</code> and <code>RefundAgreement.sales</code> are only available in the Admin GraphQL API. They are not present in the Admin REST API.</p>
</div> ]]></description>
    <pubDate>Thu, 18 Jul 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/refunding-orders-with-multiple-shipping-lines-returns-accurate-data</link>
  </item>
  <item>
    <title>Added `synchronous` Parameter to `productDelete` Mutation and Introduced `ProductDeleteOperation` Object for Asynchronous Deletion Tracking</title>
    <description><![CDATA[ <div class=""><p>In the version <strong>2024-10</strong> release of the Admin GraphQL API, we are making the following changes in the product delete APIs</p>
<ul>
<li>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productDeleteAsync" target="_blank" class="body-link">productDeleteAsync</a> mutation will be removed.</li>
<li>A new <code>synchronous</code> boolean parameter will be added to the <code>productDelete</code> mutation, allowing you to choose whether the product deletion should be processed synchronously or asynchronously.</li>
</ul>
<p><strong>Key Updates:</strong></p>
<ul>
<li><strong>Asynchronous Deletion:</strong> By setting the <code>synchronous</code> parameter to <code>false</code> in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productDelete" target="_blank" class="body-link">productDelete</a> mutation, the operation will proceed asynchronously, returning a <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/ProductDeleteOperation" target="_blank" class="body-link">ProductDeleteOperation</a> object.</li>
<li><strong>Operation Tracking:</strong> You can track the status of the asynchronous deletion by querying the operation ID through the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/productOperation" target="_blank" class="body-link">ProductOperation</a> query.</li>
</ul>
<p>For more detailed information and examples, visit our <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDelete" target="_blank" class="body-link">ProductDelete documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Thu, 18 Jul 2024 12:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/added-synchronous-parameter-to-productdelete-mutation-and-introduced-productdeleteoperation-object-for-asynchronous-deletion-tracking</link>
  </item>
  <item>
    <title>Breaking changes to GraphQL product duplicate APIs in version 2024-10</title>
    <description><![CDATA[ <div class=""><p>In the version <strong>2024-10</strong> release of the Admin GraphQL API, we are making the following changes in the product duplicate APIs:</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productDuplicateAsyncV2" target="_blank" class="body-link">productDuplicateAsyncV2</a> mutation will be removed.</p>
<p>A new <code>synchronous</code> boolean parameter will be added to the <code>productDuplicate</code> mutation, allowing you to choose whether the product duplication should be processed synchronously or asynchronously.</p>
<p><strong>Key Updates:</strong></p>
<p><strong>Asynchronous Duplication:</strong> By setting the <code>synchronous</code> parameter to <code>false</code> in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productDuplicate" target="_blank" class="body-link">productDuplicate</a> mutation, the operation will be performed asynchronously, returning a <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/objects/ProductDuplicateOperation" target="_blank" class="body-link">ProductDuplicateOperation</a> object.</p>
<p><strong>Operation Tracking:</strong> You can track the status of the asynchronous duplication by querying the operation ID through the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/queries/productOperation" target="_blank" class="body-link">ProductOperation</a> query.</p>
<p>For more detailed information and examples, visit our <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDuplicate" target="_blank" class="body-link">productDuplicate documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Thu, 18 Jul 2024 12:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-graphql-product-duplicate-apis-in-version-2024-10</link>
  </item>
  <item>
    <title>Breaking changes in several ProductVariant related mutations in version 2024-10</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-10</strong> we're deprecating several singular variant mutations in favor of their bulk version, namely:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productvariantcreate" target="_blank" class="body-link">productVariantCreate</a>. Use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkcreate" target="_blank" class="body-link">productVariantsBulkCreate</a>  instead.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productvariantupdate" target="_blank" class="body-link">productVariantUpdate</a>. Use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkupdate" target="_blank" class="body-link">productVariantsBulkUpdate</a>  instead.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productvariantdelete" target="_blank" class="body-link">productVariantDelete</a>. Use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkdelete" target="_blank" class="body-link">productVariantsBulkDelete</a>  instead.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 18 Jul 2024 12:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/breaking-changes-in-several-productvariant-related-mutations-in-version-2024-10</link>
  </item>
  <item>
    <title>Liquid structured_data filter supports ProductGroup</title>
    <description><![CDATA[ <div class=""><p>As of Juy 16th, the <a href="https://shopify.dev/docs/api/liquid/filters/structured_data" target="_blank" class="body-link"><code>structured_data</code> filter</a> outputs product information using the <a href="https://schema.org/ProductGroup" target="_blank" class="body-link">ProductGroup schema.org type</a>, according to the latest recommendations from Google.</p>
</div> ]]></description>
    <pubDate>Tue, 16 Jul 2024 18:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/liquid-structured_data-filter-supports-productgroup</link>
  </item>
  <item>
    <title>Fulfillment Order Release Hold mutation error codes deprecated</title>
    <description><![CDATA[ <div class=""><p>As of the GraphQL Admin API version 2024-10, we're deprecating the <code>GREATER_THAN_ZERO</code> and <code>INVALID_LINE_ITEM_QUANTITY</code> error codes on the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/fulfillmentOrderReleaseHold" target="_blank" class="body-link">fulfillmentOrderReleaseHold mutation</a>. These error codes are no longer returned by the mutation.</p>
</div> ]]></description>
    <pubDate>Fri, 12 Jul 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/fulfillment-order-release-hold-mutation-error-codes-deprecated</link>
  </item>
  <item>
    <title>Hydrogen July 2024 release</title>
    <description><![CDATA[ <div class=""><p><a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402024.7.1" target="_blank" class="body-link">Hydrogen v2024.7.1</a>  is out today. The July 2024 Hydrogen release contains several new features and bug fixes, including:</p>
<ul>
<li>A new <code>useOptimisticVariant</code> hook</li>
<li><code>sellingPlanId</code> support for <code>&lt;BuyNowButton /&gt;</code></li>
<li>New customer account session commit pattern (breaking)</li>
<li><code>&lt;VariantSelector /&gt;</code> improved handling of options (breaking)</li>
<li>Update Remix to 2.10.0 which included fixes to infinite loading error</li>
<li>Type fixes for optimistic cart</li>
<li>CLI: Vite bundle analyzer</li>
<li>CLI: Support CSS options in Vite projects</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/july-2024" target="_blank" class="body-link">Hydrogen July 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Thu, 11 Jul 2024 19:43:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-july-2024-release</link>
  </item>
  <item>
    <title>GraphQL Admin API: new field `Product.restrictedForResource` added</title>
    <description><![CDATA[ <div class=""><p>We have introduced a new field, <code>Product.restrictedForResource</code>, which allows you to query product restrictions for a given <code>CalculatedOrder</code> resource. This field returns both the restricted status and the reason for the restriction.</p>
<p>Currently, this feature supports checking for Managed Markets <a href="https://help.shopify.com/en/manual/international/managed-markets/prohibited-items" target="_blank" class="body-link">product restriction</a>. You can use this field to determine if a product can be added to a <code>CalculatedOrder</code> during the order edit mutation process.</p>
</div> ]]></description>
    <pubDate>Thu, 11 Jul 2024 00:59:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-new-field-product-restrictedforresource-added</link>
  </item>
  <item>
    <title>Metafield support for the `cartTransformCreate` mutation</title>
    <description><![CDATA[ <div class=""><p>As of 2024-10, the CartTransform create mutation will support metafields as an argument.</p>
<p>The new <code>metafields</code> argument for <a href="https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/cartTransformCreate" target="_blank" class="body-link"><code>cartTransformCreate</code></a> allows for metafields to be set for the CartTransform at creation without the need to call <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/metafieldsSet" target="_blank" class="body-link"><code>metafieldsSet</code></a> in a subsequent call.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/api/functions/reference/cart-transform" target="_blank" class="body-link">CartTransform API</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 08 Jul 2024 16:47:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/metafield-support-for-the-carttransformcreate-mutation</link>
  </item>
  <item>
    <title>Checkout UI extensions: New Required Cart Instructions API when updating to 2024-07 API Version</title>
    <description><![CDATA[ <div class=""><p>In the 2024-07 API version of checkout UI extensions, we have introduced a new <code>instructions</code> API. This API will inform checkout UI extensions when a particular extension API is/is not available for the current checkout. For example, if you intend to add a discount code via the <code>applyDiscountCodeChange</code> method, check <code>discounts.canUpdateDiscountCodes</code> to ensure it's supported in this checkout.</p>
<p>All checkout UI extensions updating to <code>2024-07</code> will be expected to review the list of APIs that may be restricted, and incorperate fail-safes if a particular API is not available in the current checkout. This will be required for checkout UI extensions to start rendering in draft order invoice checkouts.</p>
<p>For more details, please refer to our <a href="https://shopify.dev/docs/api/checkout-ui-extensions/2024-07/instructions-update" target="_blank" class="body-link"><code>2024-07</code> update guide</a> for more details and instructions on how to safely update to <code>2024-07</code>.</p>
</div> ]]></description>
    <pubDate>Wed, 03 Jul 2024 14:44:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/checkout-ui-extensions-new-required-cart-instructions-api-when-updating-to-2024-07-api-version</link>
  </item>
  <item>
    <title>Introducing the new Data Sale Opt Out API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-07, you can now set and query a customer's data sale / sharing opt out status. This allows customers to be opted out of data sale / sharing in  support of compliance with US state laws like CCPA/CPRA. The Admin API now includes the following updates:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/dataSaleOptOut" target="_blank" class="body-link">Set dataSaleOptOut</a>: Set the data sale / sharing opt out status of a customer</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Customer#field-customer-datasaleoptout" target="_blank" class="body-link">Query dataSaleOptOut</a>: Query the data sale / sharing opt out status of a customer</li>
</ul>
<p>To learn more about data sale / sharing opt-outs, refer to the <a href="https://help.shopify.com/en/manual/privacy-and-security/privacy/customer-privacy-settings/privacy-settings" target="_blank" class="body-link">Shopify Help Center</a> and the <a href="https://shopify.dev/docs/api/customer-privacy" target="_blank" class="body-link">Customer Privacy API</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 20:21:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/introducing-the-new-data-sale-opt-out-api</link>
  </item>
  <item>
    <title>A new error code added to InventorySetScheduledChanges mutation</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-07</strong> release of the GraphQL Admin API, a new error code <code>LEDGER_DOCUMENT_INVALID</code> will be added to the potential errors for the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventorySetScheduledChanges" target="_blank" class="body-link">InventorySetScheduledChanges</a> mutation.
This error code will be returned when the ledgerDocumentUri provided is not a valid URI.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 19:59:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/a-new-error-code-added-to-inventorysetscheduledchanges-mutation</link>
  </item>
  <item>
    <title>GraphQL Admin API: `Order.transactionsCount` field added</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, you can use the <code>Order.transactionsCount</code> to return the number of transactions associated with a given order.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 19:50:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-order-transactionscount-field-added</link>
  </item>
  <item>
    <title>fileUpdate supports connecting files to products </title>
    <description><![CDATA[ <div class=""><p>As of 2024-07, you can use the fileUpdate mutation to connect files to products.</p>
<p>Learn more about working with files on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/fileUpdate" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 19:28:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/fileupdate-supports-connecting-files-to-products</link>
  </item>
  <item>
    <title>Product Variant Connection Added to Fulfillment Order Line Items</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07, a <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/ProductVariant" target="_blank" class="body-link">ProductVariant</a> connection will be added to the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/FulfillmentOrderLineItem" target="_blank" class="body-link">FulfillmentOrderLineItem</a> object in GraphQL.</p>
<p>This will allow order management apps to easily reference the specific product details that are related to each fulfillment order line item without needing to directly compare SKUs in the order line items.</p>
<p>Learn more about order management apps <a href="https://shopify.dev/docs/apps/build/orders-fulfillment#order-management-apps" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 18:46:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/product-variant-connection-added-to-fulfillment-order-line-items</link>
  </item>
  <item>
    <title>New Set Quantities Graphql Endpoint for Setting Available and On Hand Inventory Quantites</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-07, you can now set available and on hand quantities for inventory via the new <code>inventorySetQuantities</code> graphql mutation. At the same time, the <code>inventorySetOnHandQuantities</code> mutation will be deprecated.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 17:51:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-set-quantities-graphql-endpoint-for-setting-available-and-on-hand-inventory-quantites</link>
  </item>
  <item>
    <title>SellingPlan metafields are now available in the Admin and Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07 version, <a href="http://https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/SellingPlanInput#field-sellingplaninput-metafields" target="_blank" class="body-link">SellingPlan</a> resources support metafields. Use metafields APIs to store additional information in metafield values.</p>
<p>You can use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/sellingPlanGroupCreate" target="_blank" class="body-link">sellingPlanGroupCreate</a> mutation and <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/sellingPlanGroupUpdate" target="_blank" class="body-link">sellingPlanGroupUpdate</a> mutation to update and create metafields on the selling plan objects by specifiying the metafields field of <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/SellingPlanInput" target="_blank" class="body-link">sellingPlanInput</a>.</p>
<p>To learn more about metafields, refer to the <a href="https://help.shopify.com/en/manual/custom-data/metafields" target="_blank" class="body-link">metafields</a> documentation.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 17:18:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/sellingplan-metafields-are-now-available-in-the-admin-and-storefront-api</link>
  </item>
  <item>
    <title>Product Set mutation synchronous input improvements</title>
    <description><![CDATA[ <div class=""><ul>
<li>As of GraphQL Admin API version 2024-07, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productSet" target="_blank" class="body-link">Product Set mutation</a> will default to running synchronously unless the input parameter <code>synchronous</code> is set to <code>false</code>.</li>
<li>As of GraphQL Admin API version 2024-07, the input limit on variants has been increased to the existing asynchronous limit. Versions prior to 2024-07 had a limit of 100 variants. Setting <code>synchronous: false</code> may be desirable depending on the input complexity/size, and should be used if you are experiencing timeouts.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/product-set-mutation-synchronous-input-improvements</link>
  </item>
  <item>
    <title>Media included in product webhooks</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07, the product create and update webhook payload contains information about the media on a product.</p>
<p>Using media GIDs allows compatibility with GraphQL Admin API mutations such as <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/fileupdate" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/fileupdate</a> and  <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productupdatemedia" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productupdatemedia</a></p>
<p>To receive media in the webhook payload, specify 2024-07 or greater as the webhook API version.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 14:40:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/media-included-in-product-webhooks</link>
  </item>
  <item>
    <title>New `committed_at` timestamp added to `orders/edited` webhook payload</title>
    <description><![CDATA[ <div class=""><p>Stay informed with the latest enhancement to our <code>orders/edited</code> webhook payload! As of 2024-07, the webhook payload exposes the timestamp an order edit was committed at.</p>
<p>With this new attribute, you can precisely identify when an edit to an order is finalized, adding a new layer of clarity that was previously missing: <code>created_at</code> represents when the order edit was created, but not when it was persisted to the order.</p>
<p>We understand that navigating through multiple order changes can be daunting and are confident that the inclusion of <code>committed_at</code> will make a significant difference.</p>
<p>To receive this new attribute in the webhook payload, specify 2024-07 or greater as the webhook API version. You can find more details about the webhook here: <a href="https://shopify.dev/docs/api/admin-rest/2024-07/resources/webhook#event-topics-orders-edited" target="_blank" class="body-link">Orders Edited Webhook Documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 14:40:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin REST API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-committed_at-timestamp-added-to-orders-edited-webhook-payload</link>
  </item>
  <item>
    <title>Conditional metafields APIs</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, we've added APIs for viewing and filtering conditional metafield definitions such as product attributes:</p>
<ul>
<li>Use the <code>constraints</code> field on <code>MetafieldDefinition</code> to view the metafield definition's constraints.</li>
<li>Use the <code>constraintSubtype</code> argument on the <code>metafieldDefinitions</code> and <code>standardMetafieldDefinitionTemplates</code> queries to retrieve only metafield definitions that apply to the passed constraint subtype.</li>
<li>Use the <code>constraintStatus</code> argument on the <code>metafieldDefinitions</code> and <code>standardMetafieldDefinitionTemplates</code> queries to filter based on whether the metafield definitions are constrained.</li>
</ul>
<p><a href="https://shopify.dev/docs/apps/build/custom-data/metafields/definitions/conditional-metafield-definitions" target="_blank" class="body-link">Learn more about conditional metafields</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 14:14:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/conditional-metafields-apis</link>
  </item>
  <item>
    <title>New return APIs to create exchanges, add fees, remove return lines and calculate returns</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07 in the GraphQL Admin API, you can use new return APIs to interact with exchange primitives.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/returnCreate" target="_blank" class="body-link"><code>returnCreate</code></a> mutation can now take exchange line items with optional discounts, return shipping fees and restocking fees to be applied to return lines. A return with exchange line items will also create a new FulfillmentOrder for the new items to be sent to the customer. Note that canceling a return does affect the fulfillment of exchange items. Read more on how exchanges are processed <a href="https://help.shopify.com/en/manual/orders/refunds-returns/creating-returns#restock-and-fulfill" target="_blank" class="body-link">here</a>.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/returnLineItemRemoveFromReturn" target="_blank" class="body-link"><code>returnLineItemRemoveFromReturn</code></a> mutation is now available to remove return lines from a return. With <a href="https://shopify.dev/changelog/return-mutation-will-update-sales-previously-unchanged-until-time-of-refund" target="_blank" class="body-link">returns creating sales</a>, removing a return line from a return will also reversely impact return sales.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/queries/returnCalculate" target="_blank" class="body-link"><code>returnCalculate</code></a> query is now available to calculate financials before return creation, including inputs for return lines, exchange lines, fees and discounts. Learn more about how to use this query in our <a href="https://shopify.dev/docs/apps/fulfillment/returns-apps/returns#step-2-optional-calculate-return-financials" target="_blank" class="body-link">dev docs</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:49:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-return-apis-to-create-exchanges-add-fees-remove-return-lines-and-calculate-returns</link>
  </item>
  <item>
    <title>Return.suggestedRefund and ReturnRefund consider exchanges and fees</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07 in the GraphQL Admin API, Shopify’s suggestion for refund is inclusive of payable charges, such as exchange items and fees, alongside returns.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Return#field-return-suggestedrefund" target="_blank" class="body-link"><code>Return.suggestedRefund</code></a> query and <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/returnRefund" target="_blank" class="body-link"><code>ReturnRefund</code></a> mutation APIs will now have a different expectation on the refund amount. The refund amount considers exchange line items and fees on the return, as well as any outstanding amount owed by the buyer on an order.</p>
<p>This affects the logic for 2024-07 versions and onwards, the logic for previous API versions will continue to only account for return line items.</p>
<p>Here is an example for an order with a return for an item worth $50.99 CAD and a return fee of $5 CAD, given this suggested return refund query:</p>
<pre><code class="language-graphql">query {
  return(id: &quot;exampleReturn/1&quot;) {
    suggestedRefund(
      returnRefundLineItem: [
        {
          returnLineItemId: &quot;exampleReturnLineItem/1&quot;
          quantity: 1
        }
      ]
    ) {
      amount {
        shopMoney {
          amount
          currencyCode
        }
      }
    }
  }
}
</code></pre>
<p>Result with previous behavior</p>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;return&quot;: {
      &quot;suggestedRefund&quot;: {
        &quot;amount&quot;: {
          &quot;shopMoney&quot;: {
            &quot;amount&quot;: &quot;50.99&quot;,
            &quot;currencyCode&quot;: &quot;CAD&quot;
          }
        }
      }  
    }
  }
}
</code></pre>
<p>Result with new behavior:</p>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;return&quot;: {
      &quot;suggestedRefund&quot;: {
        &quot;amount&quot;: {
          &quot;shopMoney&quot;: {
            &quot;amount&quot;: &quot;45.99&quot;,
            &quot;currencyCode&quot;: &quot;CAD&quot;
          }
        }
      }  
    }
  }
}
</code></pre>
<p>Note that if the return fee was greater than $50.99 CAD, the suggested amount cannot be lower than $0 CAD.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:49:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/return-suggestedrefund-and-returnrefund-consider-exchanges-and-fees</link>
  </item>
  <item>
    <title>The location object requires `read_locations` scope</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-07</strong> release of the GraphQL Admin API, the location object will be gated by the <code>read_locations</code> scope.
Attempting to <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Location" target="_blank" class="body-link">read the location object</a> without the <code>read_locations</code> access scope will return an access denied error.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:30:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/the-location-object-requires-read_locations-scope</link>
  </item>
  <item>
    <title>New APIs to manage combined listings</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-07, you can manage combined listing using our new   [CombinedListings API] (<a href="https://shopify.dev/docs/apps/build/product-merchandizing/combined-listings/build-for-combined-listings" target="_blank" class="body-link">https://shopify.dev/docs/apps/build/product-merchandizing/combined-listings/build-for-combined-listings</a>).</p>
<p>Learn more about combined listings on <a href="https://shopify.dev/docs/apps/build/product-merchandizing/combined-listings" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:20:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-apis-to-manage-combined-listings</link>
  </item>
  <item>
    <title>The Product Discount Function API now supports cart line targeting</title>
    <description><![CDATA[ <div class=""><p>As of API Version <code>2024-07</code>, the Product Discount Function API now supports a new target type: <code>CartLineTarget</code>, allowing for the application of discounts on specific cart lines, a use case that has historically only been possible with Shopify Scripts. This update can be used to link discounts to attributed cart lines such as upsell products, free gifts with purchase, or buyer customized products.
You can learn more about the <a href="https://shopify.dev/docs/api/functions/reference/product-discounts/" target="_blank" class="body-link">Product Discount Function API here</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/the-product-discount-function-api-now-supports-cart-line-targeting</link>
  </item>
  <item>
    <title>GraphQL Admin API: Update to `returnLineItems` connection</title>
    <description><![CDATA[ <div class=""><p>Starting in version <code>2024-07</code>, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/Return#connection-returnlineitems" target="_blank" class="body-link"> <code>Return.returnLineItems</code> connection</a> becomes an interface type. This change is designed to accommodate more diverse return item types in the future, which will increase your flexibility in handling returns.</p>
<p>To maintain compatibility with existing implementations, adjust their queries to use an inline fragment, as shown in the example below. This adjustment ensures that queries will continue to function correctly with the new interface type.</p>
<pre><code class="language-graphql">returnLineItems(first: 30) {
  edges {
    cursor
    node {
      ... on ReturnLineItem {
        id
        ...ReturnLineItemAttributes
      }
    }
  }
}
</code></pre>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-update-to-returnlineitems-connection</link>
  </item>
  <item>
    <title>Query bundle components on SFAPI</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2024-07, you can query bundles components and bundle parents on <a href="https://shopify.dev/docs/api/storefront/unstable/objects/ProductVariant" target="_blank" class="body-link">ProductVariant</a> object.</p>
<p>This API change introduce three new fields on the ProductVariant object:</p>
<ol>
<li><code>requiresComponents</code> - A boolean field which is set to true when the variant can only be purchased as a parent bundle with components.</li>
<li><code>components</code> - List of bundles components included in the variant considering only fixed bundles.</li>
<li><code>groupedBy</code> - List of bundles that include this variant considering only fixed bundles.</li>
</ol>
<p>Learn more about Bundles on <a href="https://shopify.dev/docs/apps/build/product-merchandizing/bundles" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/query-bundle-components-on-sfapi</link>
  </item>
  <item>
    <title>Product-level configuration for Bundles in Admin</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-07, you can create fixed bundles using our new <a href="https://shopify.dev/docs/apps/build/product-merchandizing/bundles/add-coarse-grained-fixed-bundle" target="_blank" class="body-link">coarse-grained API</a>.</p>
<p>This API change introduces the following new mutations:</p>
<ol>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productBundleCreate" target="_blank" class="body-link"><code>productBundleCreate</code></a> mutation</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productBundleUpdate" target="_blank" class="body-link"><code>productBundleUpdate</code></a> mutation</li>
</ol>
<p>Learn more about Bundles on <a href="https://shopify.dev/docs/apps/build/product-merchandizing/bundles" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/product-level-configuration-for-bundles-in-admin</link>
  </item>
  <item>
    <title>Fetching carrier-calculated rates through `@defer` directive in Storefront GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, <code>Cart#deliveryGroups</code> supports a new <code>withCarrierRates</code> argument, used to indicate intent to fetch carrier-calculated rates. This capability requires mandatory use of <code>@defer</code> directive, which ensures that the cart response is not blocked on calculating rates.</p>
<p>Test out the carrier-calculated rates on the cart today by <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-storefront-api/defer#fetching-carrier-calculated-rates-for-the-cart-using-defer" target="_blank" class="body-link">following our tutorial</a>. We value your input, please share your <a href="https://github.com/Shopify/storefront-api-feedback/discussions/234" target="_blank" class="body-link">feedback on Github.</a>
 </p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/fetching-carrier-calculated-rates-through-defer-directive-in-storefront-graphql-api</link>
  </item>
  <item>
    <title>New `LocalizationExtensionKeys` values</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2024-07</code> of the Admin GraphQL API, we're adding 14 new LocalizationExtensionsKey values to support the collection of tax / shipping credentials in several new countries.</p>
<p>Learn more about <code>LocalizationExtensionKeys</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/enums/LocalizationExtensionKey" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-localizationextensionkeys-values</link>
  </item>
  <item>
    <title>Deprecation Notice: Country and Province Endpoints in Admin REST API</title>
    <description><![CDATA[ <div class=""><h1>Changelog: Deprecation Notice for Country and Province Endpoints</h1>
<p><strong>Version:</strong> 2024-07</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin REST API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/deprecation-notice-country-and-province-endpoints-in-admin-rest-api</link>
  </item>
  <item>
    <title>Subscription Billing Attempt now Respects Inventory Policy to not Allow Overselling</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-07</strong> release of the GraphQL Admin API, the availability of inventory is now checked during the billing attempt process.</p>
<p>Where product variants are configured to <a href="https://help.shopify.com/manual/products/inventory/getting-started-with-inventory/selling-when-out-of-stock" target="_blank" class="body-link">prevent overselling</a> and one or more items in the contract are out of stock, then the billing attempt will fail with the new <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/enums/SubscriptionBillingAttemptErrorCode#value-insufficientinventory" target="_blank" class="body-link"><code>INSUFFICIENT_INVENTORY</code></a> error code.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract#step-4-create-a-billing-attempt" target="_blank" class="body-link">subscription contracts and billing attempts on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 12:41:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/subscription-billing-attempt-now-respects-inventory-policy-to-not-allow-overselling</link>
  </item>
  <item>
    <title>Additions to the GraphQL API for Shopify Payments payouts and balance transactions</title>
    <description><![CDATA[ <div class=""><p>We are introducing updates to our API that will enhance your experience and provide you with more flexibility:</p>
<ol>
<li><p><strong>Support for Query Arguments on Payouts GraphQL Field</strong>:</p>
<ul>
<li>You can now utilize <a href="https://shopify.dev/docs/api/usage/search-syntax" target="_blank" class="body-link">Shopify's API search syntax</a> to filter and sort payouts using the <code>sortKey</code> and <code>savedSearchId</code> parameters. This functionality allows you to efficiently search and organize payouts based on specific criteria such as <code>ledger_type</code>, <code>status</code>, <code>amount</code>, <code>currency</code>, and <code>issued_at</code>.</li>
</ul>
</li>
<li><p><strong>Addition of Missing Attributes to ShopifyPaymentsBalanceTransaction GraphQL Object</strong>:</p>
<ul>
<li>We have enriched the <code>ShopifyPaymentsBalanceTransaction</code> GraphQL object by introducing the following attributes:<ul>
<li><code>source_id</code>: Represents the ID of the resource that led to the transaction.</li>
<li><code>source_order_transaction_id</code>: Indicates the ID of the Order Transaction that triggered the balance transaction. If the <code>source_type</code> is an adjustment, this value will be null.</li>
<li><code>adjustment_order_transactions</code>: An array of associated order transactions that resulted in the balance transaction. If the <code>source_type</code> is not an adjustment, this array will be null. Each object in the array includes:<ul>
<li><code>adjustment_reason</code>: Specifies the reason for the adjustment associated with the transaction. If the <code>source_type</code> is not an adjustment, this value will be null.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ol>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 08:37:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/additions-to-the-graphql-api-for-shopify-payments-payouts-and-balance-transactions</link>
  </item>
  <item>
    <title>Additional fields of `ShopifyPaymentsBalanceTransaction` object available</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-07 you can query the following fields on the <code>ShopifyPaymentsBalanceTransaction</code> object:</p>
<ul>
<li><code>description</code></li>
<li><code>amount</code></li>
<li><code>fee</code></li>
<li><code>source_type</code></li>
<li><code>type</code></li>
<li><code>associated_order</code></li>
<li><code>associated_payout</code></li>
<li><code>test</code></li>
</ul>
<p>Learn more about <code>ShopifyPaymentsBalanceTransaction</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/ShopifyPaymentsBalanceTransaction" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 08:19:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/additional-fields-of-shopifypaymentsbalancetransaction-object-available</link>
  </item>
  <item>
    <title>GraphQL Admin API: `webhookSubscriptionsCount` field added</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2024-07</code>, you can use the <code>webhookSubscriptionsCount</code> field to return a count of webhook subscriptions. This field returns a <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Count" target="_blank" class="body-link">Count object type</a> with precision and count fields.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 07:50:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-webhooksubscriptionscount-field-added</link>
  </item>
  <item>
    <title>Introducing a webhook topic for customer account settings</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-07 of the GraphQL Admin API, your app can subscribe to the <code>customer_account_settings/update</code> webhook topic.</p>
<p>This webhook is triggered when a merchant changes customer account settings. </p>
<p>For example, if a merchant chooses new customer account, requires login on checkout and shows login link on online store, the payload in the webhook will look like:</p>
<pre><code>{
 url: 'https://shopify.com/1234567890/account',
 customer_accounts_version: 'new_customer_accounts',
 login_required_at_checkout: true,
 login_links_visible_on_storefront_and_checkout: true
}
</code></pre>
<p>If a merchant chooses classic customer account, does not require login on checkout and does not show login link on online store, the payload in the webhook will look like:</p>
<pre><code>{
 url: null,
 customer_accounts_version: 'classic',
 login_required_at_checkout: false,
 login_links_visible_on_storefront_and_checkout: false
}
</code></pre>
<p>Learn more about these webhooks on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/WebhookSubscriptionTopic#value-customeraccountsettingsupdate" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/introducing-a-webhook-topic-for-customer-account-settings</link>
  </item>
  <item>
    <title>Payment session creation request now includes a flag for Mail Order/Telephone Order payments</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of version 2024-07, the HTTP Post request sent from Shopify to initiate a payment session on a Credit Card Payments App Extension contains a new Boolean <code>moto</code> field in the <code>payment_method.data</code> hash, to flag if the credit card information for a payment was entered by a merchant. Learn more about payment session creation on <a href="https://shopify.dev/docs/apps/build/payments/request-reference#credit-card-payment" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:01:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Payments Apps API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/payment-session-creation-request-now-includes-a-flag-for-mail-order-telephone-order-payments</link>
  </item>
  <item>
    <title>New Field: Order Shipping Address Validation Result</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, you can use the <code>validationResultSummary</code> field on the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/MailingAddresss" target="_blank" class="body-link">mailingAddress</a> type to query the validation status of an <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Order#field-order-shippingaddress" target="_blank" class="body-link">order's shipping address</a>. </p>
<p>Possible values defined in <code>MailingAddressValidationResult</code> enumerated type with possible values of <code>ERROR</code>, <code>WARNING</code>, <code>NO_ISSUES</code> and <code>null</code>. A <code>null</code> value indicates that the address has not undergone validation.</p>
<p>Learn more about how Shopify validates customer addresses at <a href="https://help.shopify.com/manual/orders/manage-orders/shipping-address-validation" target="_blank" class="body-link">help.shopify.com</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:01:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-field-order-shipping-address-validation-result</link>
  </item>
  <item>
    <title>Changes to `variants` and `productOptions` fields in `ProductSetInput`.</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-07 version of the Admin GraphQL API, the <code>variants</code> and <code>productOptions</code> fields in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/ProductSetInput" target="_blank" class="body-link">ProductSetInput</a> will become optional. The fields are codependent, meaning they must either both be present or both be absent.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productSet" target="_blank" class="body-link">productSet</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/changes-to-variants-and-productoptions-fields-in-productsetinput</link>
  </item>
  <item>
    <title>shippingLine.discountedPriceSet now includes cart level discounts</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 in the GraphQL Admin API, the <code>discountedPriceSet</code> and <code>discountedPrice</code> fields of the object <code>ShippingLine</code> will include cart level discounts applied to an order, including the free shipping discount, when calculating the discounted price. 
Previously, you would have had to subtract the <code>discountAllocations</code> from <code>discountedPriceSet</code> or <code>discountedPrice</code> to get an accurate value, but doing so now will subtract the same discount twice. </p>
<p>Learn more about Shipping Lines on <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/objects/ShippingLine" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/shippingline-discountedpriceset-now-includes-cart-level-discounts</link>
  </item>
  <item>
    <title>[Checkout Branding API] Divider style and visibility customizations</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the Admin API, you can use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/checkoutBrandingUpsert" target="_blank" class="body-link"><code>checkoutBrandingUpsert</code></a> mutation to configure styling and visibility of dividers.</p>
<p>With this change, the dividers below the header, above the footer, between the main and order summary columns, and between sections in the main column can now be customized with visibility, style and width controls.</p>
<p>You can learn more about these customizable dividers in the GraphQL Admin API docs: <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/CheckoutBrandingCustomizations#field-checkoutbrandingcustomizations-divider" target="_blank" class="body-link">Global divider style</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/CheckoutBrandingFooter#field-checkoutbrandingfooter-divided" target="_blank" class="body-link">Footer <code>divided</code> property</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/CheckoutBrandingHeader#field-checkoutbrandingheader-divided" target="_blank" class="body-link">Header <code>divided</code> property</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/CheckoutBrandingOrderSummary#field-checkoutbrandingordersummary-divider" target="_blank" class="body-link">Order Summary <code>divider</code> property</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/CheckoutBrandingMain#field-checkoutbrandingmain-divider" target="_blank" class="body-link">Main <code>divider</code> property</a>, and <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/CheckoutBrandingContent#field-checkoutbrandingcontent-divider" target="_blank" class="body-link">Content <code>divider</code> property</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/checkout-branding-api-divider-style-and-visibility-customizations</link>
  </item>
  <item>
    <title>Moving the Shop.assignedFulfillmentOrders connection to QueryRoot</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-07</strong> release of the admin GraphQL, you can access assigned fulfillment orders from <code>QueryRoot.assignedFulfillmentOrders</code> instead of the pre-existing <code>Shop.assignedFulfillmentOrders</code> connection.</p>
<p>This change will include the deprecation of the <code>Shop.assignedFulfillmentOrders</code> query in favour of the newly added <code>QueryRoot.assignedFulfillmentOrders</code></p>
<p>This change aligns with direction of the admin API moving forward ensuring that domain primitives are available on <code>QueryRoot</code> and the <code>Shop</code> field is reserved for key information related to the shop in the scope of the request.</p>
<p>You can learn more about assigned fulfillment orders <a href="https://shopify.dev/api/admin-graphql/2024-07/objects/queryroot#connection-assignedfulfillmentorders" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/moving-the-shop-assignedfulfillmentorders-connection-to-queryroot</link>
  </item>
  <item>
    <title>Introduction of new Carrier Service APIs</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2024-07</code> of the Admin GraphQL API we are introducing the following changes:</p>
<ul>
<li>We’ve added <code>active</code>, <code>supportsServiceDiscovery</code>, and <code>callbackUrl</code> fields to the <code>DeliveryCarrierService</code> object.</li>
<li>We’ve added <code>carrierServices</code> to the query root to list and filter the carriers services of the shop.</li>
<li>We’ve added <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/carrierServiceCreate" target="_blank" class="body-link">carrierServiceCreate</a> to create a new <code>DeliveryCarrierService</code>.</li>
<li>We’ve added <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/carrierServiceUpdate" target="_blank" class="body-link">carrierServiceUpdate</a> to update the properties of a <code>DeliveryCarrierService</code>.</li>
<li>We’ve added <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/carrierServiceDelete" target="_blank" class="body-link">carrierServiceDelete</a> to delete a <code>DeliveryCarrierService</code>.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/introduction-of-new-carrier-service-apis</link>
  </item>
  <item>
    <title>Added new field `trackingSupport` to `FulfillmentService`</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2024-07</code> of the Admin GraphQL API, you can use the new <code>trackingSupport</code> field in <code>FulfillmentService</code> to check whether the fulfillment service implements the <code>/fetch_tracking_numbers</code> endpoint.</p>
<p>Learn more about <code>FulfillmentService</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/FulfillmentService" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/added-new-field-trackingsupport-to-fulfillmentservice</link>
  </item>
  <item>
    <title>Added new field `createdAt` to `FulfillmentEvent`</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2024-07</code> of the Admin GraphQL API, you can use the new <code>createdAt</code> field in <code>FulfillmentEvent</code> to check the date and time when the fulfillment event was created.</p>
<p>Learn more about <code>FulfillmentEvent</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/FulfillmentEvent" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/added-new-field-createdat-to-fulfillmentevent</link>
  </item>
  <item>
    <title>Added new field `fulfillmentsCount` to `Order`</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2024-07</code> of the Admin GraphQL API, you can use the new <code>fulfillmentsCount</code> field in <code>Order</code> to count the number of fulfillments including the cancelled fulfillments that belong to an order.</p>
<p>Learn more about <code>Fulfillment</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Fulfillment" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/added-new-field-fulfillmentscount-to-order</link>
  </item>
  <item>
    <title>New optional argument to include translations when duplicating product asynchronously</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code> version in the admin GraphQL API, you can specify whether to include translations when calling the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productDuplicateAsyncV2" target="_blank" class="body-link">productDuplicateAsyncV2</a> mutation. When this optional argument is passed in as <code>true</code>, all translations that are saved on the product, its variants, and its metafields are copied over to the new product.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-optional-argument-to-include-translations-when-duplicating-product-asynchronously</link>
  </item>
  <item>
    <title>[Checkout Branding API] Deprecation of transparent background</title>
    <description><![CDATA[ <div class=""><p>We're deprecating the <code>TRANSPARENT</code> value on the <code>CheckoutBrandingBackground</code> enum of the Admin GraphQL API <code>checkoutBranding</code> query and <code>checkoutBrandingUpsert</code> mutation. Use <code>BASE</code> or <code>SUBDUED</code> instead.</p>
<p>We will remove this value from the mutation input and the GraphQL API in the subsequent API version (<code>2024-07</code>). To prepare for the <code>2024-07</code> API version release, stop using the <code>TRANSPARENT</code> value.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/checkout-branding-api-deprecation-of-transparent-background</link>
  </item>
  <item>
    <title>Writing Metafield values available on the Customer Account API</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-07 version of the Customer Account API, you will be able to use the <a href="https://shopify.dev/docs/api/customer/unstable/mutations/metafieldsSet" target="_blank" class="body-link">metafieldsSet mutation</a> to assign metafield values on Customer, Order, Company, and CompanyLocation resources. </p>
<p>As part of this change, the Customer Account API will need to be granted explicit read or read/write access to metafield definitions in order to have access. This represents a breaking change because as of this version, metafield definitions without access permissions will not be available to the Customer Account API.</p>
<p>The 2024-07 version of the Admin API will allow you to set access controls as part of the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/metafieldDefinitionCreate" target="_blank" class="body-link">metafieldDefinitionCreate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/metafieldDefinitionUpdate" target="_blank" class="body-link">metafieldDefinitionUpdate</a> mutations.</p>
<p>These changes can be tested today on the unstable versions of the Customer Account and Admin APIs.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/writing-metafield-values-available-on-the-customer-account-api</link>
  </item>
  <item>
    <title>New delivery promise provider API object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2024-07</code>, we're adding the <code>DeliveryPromiseProvider</code> object, which represents an entity (such as a third-party service) that can provide delivery estimates on behalf of a shop.  Currently, this is available only to select approved delivery promise partners.</p>
<p>Each <code>DeliveryPromiseProvider</code> object is associated with a shop <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Location" target="_blank" class="body-link"><code>Location</code></a>.</p>
<p>A <code>DeliveryPromiseProvider</code> object can be created or updated using the <code>deliveryPromiseProviderUpsert</code> mutation, and retrieved using the <code>deliveryPromiseProvider</code> query.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/DeliveryPromiseProvider" target="_blank" class="body-link"><code>DeliveryPromiseProvider</code></a> object, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/deliveryPromiseProviderUpsert" target="_blank" class="body-link"><code>deliveryPromiseProviderUpsert</code></a> mutation, and the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/queries/deliveryPromiseProvider" target="_blank" class="body-link"><code>deliveryPromiseProvider</code></a> query.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-delivery-promise-provider-api-object</link>
  </item>
  <item>
    <title>New metafield definition types: `link` and `list.link`</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07, you can use the following metafields to save link related content:</p>
<ul>
<li><code>link</code>: A link consisting of an anchor text and URL.</li>
<li><code>list.link</code>: A list of link metafields.</li>
</ul>
<p>Learn more about metafields on <a href="https://shopify.dev/docs/apps/custom-data/metafields" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-metafield-definition-types-link-and-list-link</link>
  </item>
  <item>
    <title>New validation against duplicate variant IDs in productSet mutation input</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-07</strong> version of the Admin GraphQL API, the <code>id</code> field in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductVariantSetInput" target="_blank" class="body-link">ProductVariantSetInput</a> will have validation to prevent duplicate values.</p>
<p>This enhancement ensures that there are no collisions when updating variants.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/mutations/productSet" target="_blank" class="body-link">productSet</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-validation-against-duplicate-variant-ids-in-productset-mutation-input</link>
  </item>
  <item>
    <title>Store Credit functionality available on the Admin and Customer API</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07 <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/storeCreditAccount" target="_blank" class="body-link">StoreCreditAccount</a> queries and mutations are available to merchants globally in the GraphQL Admin API. A new <code>transactions</code> connection has been added to the StoreCreditAccount, displaying the full transaction history of the account.</p>
<p>A customer who is <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">authenticated</a> with new customer accounts will be able to see and spend their store credit at checkout. </p>
<p>It's now possible to view the logged in customers <a href="https://shopify.dev/docs/api/customer/2024-07/objects/Customer#connection-storecreditaccounts" target="_blank" class="body-link">StoreCreditAccount</a> when using the GraphQL Customer Account API.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/store-credit-functionality-available-on-the-admin-and-customer-api</link>
  </item>
  <item>
    <title>Product Variant Field Cleanup</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-07, various fields on Product Variants that are duplicates of the linked Inventory Item will be removed from the Product Variant model, input types, and webhooks, as well as restrictions to </p>
<h3>GraphQL Fields</h3>
<p>In general the fields removed (and their replacement) are:</p>
<ul>
<li><code>fulfillmentService</code>: The fulfillment service is now defined by where the item is stocked, and the fulfillment services that own those locations.</li>
<li><code>harmonizedSystemCode</code>: This is replaced by the <code>harmonizedSystemCode</code> field of the inventory item.</li>
<li><code>inventoryManagement</code>: This is replaced by the <code>tracked</code> field from the inventory item. Inventory management information is more clearly defined with both the <code>tracked</code> and <code>fulfillmentService</code> fields on the inventory item.</li>
<li><code>requiresShipping</code>: This is replaced by the <code>requiresShipping</code> field of the inventory item.</li>
<li><code>sku</code>: This field will continue to be returned on the Product Variant model, but is not directly editable. Rather the field will just proxy the <code>sku</code> field from the inventory item.</li>
<li><code>weight</code> and <code>weightUnit</code>: These fields are replaced by the weight type in <code>InventoryItem.measurement.weight</code>.</li>
</ul>
<p>More specifically, these fields are kept or removed:</p>
<ul>
<li>From <code>ProductVariantInput</code>: <code>fulfillmentServiceId</code>, <code>harmonizedSystemCode</code>, <code>inventoryManagement</code>, <code>requiresShipping</code>, <code>sku</code>, <code>weight</code>, and <code>weightUnit</code> are all removed.</li>
<li>From <code>ProductVariantsBulkInput</code>: <code>fulfillmentServiceId</code>, <code>harmonizedSystemCode</code>, <code>requiresShipping</code>, <code>sku</code>, <code>weight</code>, and <code>weightUnit</code> are all removed.</li>
<li>From <code>ProductVariantSetInput</code>: <code>harmonizedSystemCode</code>, <code>requiresShipping</code>, <code>weight</code>, and <code>weightUnit</code> are all removed. <code>sku</code> is kept.</li>
<li>From <code>ProductVariant</code> return type: <code>fulfillmentService</code>, <code>harmonizedSystemCode</code>, <code>inventoryManagement</code>, <code>requiresShipping</code>, <code>weight</code>, and <code>weightUnit</code> are all removed. <code>sku</code> is kept.</li>
</ul>
<h3>Metafields</h3>
<p>As part of this work, you'll no longer be able to set the <code>harmonized_system_code</code> metafield under the <code>global</code> namespace for Product Variants. This was an alternative way of updating the <code>harmonized_system_code</code> of a variant, but since variants are no longer going to have the <code>harmonized_system_code</code> field, the metafield is being removed.</p>
<h3>Webhooks</h3>
<p>The Product Variant webhooks are also seeing some fields removed, namely:</p>
<ul>
<li><code>fulfillment_service</code></li>
<li><code>inventory_management</code></li>
<li><code>grams</code></li>
<li><code>weight</code></li>
<li><code>weight_unit</code></li>
<li><code>requires_shipping</code></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/product-variant-field-cleanup</link>
  </item>
  <item>
    <title>New Subscription BillingCycles mutations</title>
    <description><![CDATA[ <div class=""><p>As of admin API 2024-07, we will have new mutations and queries:</p>
<ul>
<li>mutation subscriptionBillingCycleBulkCharge</li>
<li>mutation subscriptionBillingCycleBulkSearch</li>
<li>query subscriptionBillingCycleBulkResults</li>
<li>mutation subscriptionBillingCycleCharge</li>
</ul>
<p>Learn more about those on </p>
<ul>
<li><a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/billing-cycles/manage-billing-cycle-contracts#step-5-create-an-order" target="_blank" class="body-link">Shopify.dev - Manage billing cycle contract - Create an order</a>.</li>
<li><a href="https://shopify.dev/docs/apps/build/purchase-options/subscriptions/billing-cycles/bulk-billing-cycles" target="_blank" class="body-link">Shopify.dev - Manage billing cycles in bulk</a></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-subscription-billingcycles-mutations</link>
  </item>
  <item>
    <title>New metafield `jsonValue` field</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2024-07</code>, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Metafield" target="_blank" class="body-link"><code>Metafield</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/MetaobjectField" target="_blank" class="body-link"><code>MetaobjectField</code></a> objects now have a <code>jsonValue</code> field returning the stored value as a <code>JSON</code> scalar. This is particularly helpful for metafield values that are stored as <code>JSON</code> strings to avoid having to parse client-side. This field is set for all metafield types and is also available in all Function APIs. It can be used in Function input queries to improve function performance and reduce the instructions needed to parse JSON metafield values, which are commonly used for function configuration.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-metafield-jsonvalue-field</link>
  </item>
  <item>
    <title>New field on CheckoutProfile: typOspPagesActive</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-07, you can query the field <strong>typOspPagesActive</strong>. This field returns the status of the Thank You Page (TYP) and Order Status Page (OSP) on a CheckoutProfile, providing insight as to whether or not these pages have adopted extensibility or not. </p>
<p>When <strong>true</strong>, both Thank You Page and Order Status Page are using extensibility, and will render the appropriate UI extensions, while also making use of pixels, and functions. When <strong>false</strong>, the pages still use <em>additional scripts</em> and other deprecated features. </p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/CheckoutProfile" target="_blank" class="body-link">CheckoutProfiles</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-field-on-checkoutprofile-typosppagesactive</link>
  </item>
  <item>
    <title>Removal of Customer search filters on Admin API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-07</strong>, the following Customer filters in the search syntax have been deprecated: <code>total_spent</code>, <code>orders_count</code>, <code>accepts_marketing</code>, <code>customer_date</code>, <code>last_abandoned_order_date</code>, <code>order_date</code>, <code>tag</code>, <code>tag_not</code>, <code>city</code>, <code>province</code>, <code>state</code>, <code>territory_code</code>, <code>country</code>, <code>company</code>, <code>email_marketing_state</code>, <code>sms_marketing_state</code>. Filtering customers by these attributes is available when querying customers using segments.</p>
<p>Learn more about customer segmentation on <a href="https://shopify.dev/docs/apps/marketing/customer-segments" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/removal-of-customer-search-filters-on-admin-api</link>
  </item>
  <item>
    <title>Storefront API Cart `discountAllocations` field now includes delivery discounts</title>
    <description><![CDATA[ <div class=""><p>As part of the 2024-07 release, delivery-related discounts into the Storefront API's Cart <code>discountAllocations</code> field and a new <code>targetType</code> field have been added to differentiate the type of discount. The merchandise and delivery discounts are reflected in the <code>totalAmount</code> of the Cart.</p>
<p>Learn more about the <code>Cart</code> object on <a href="https://shopify.dev/api/storefront/unstable/objects/Cart#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 30 Jun 2024 17:37:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-discountallocations-field-now-includes-delivery-discounts</link>
  </item>
  <item>
    <title>Compare-and-swap (CAS) for the Metafields API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin and Customer Account APIs version <code>2024-07</code>, you can now set metafields using compare-and-swap (CAS) through the new <code>compareDigest</code> field for the <code>metafieldsSet</code> mutation.</p>
<p>Using CAS will add support to properly handle concurrency requests.</p>
</div> ]]></description>
    <pubDate>Fri, 28 Jun 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Customer Account API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/compare-and-swap-cas-for-the-metafields-api</link>
  </item>
  <item>
    <title>Storefront API Cart now supports one-time use delivery addresses</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the GraphQL Storefront API, Cart supports one-time use delivery addresses with the new oneTimeUse property of the <a href="https://shopify.dev/docs/api/storefront/2024-04/input-objects/DeliveryAddressInput" target="_blank" class="body-link">DeliveryAddressInput</a>. Use this new property to pass an address that should not be saved to the account of the customer after checkout. A typical use case is when a store specializes in gifting scenarios.</p>
<p>API Reference</p>
<ul>
<li><a href="https://shopify.dev/docs/api/storefront/2024-04/input-objects/DeliveryAddressInput" target="_blank" class="body-link">DeliveryAddressInput</a></li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 25 Jun 2024 02:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-now-supports-one-time-use-delivery-addresses</link>
  </item>
  <item>
    <title>Webhook subscriptions now support filters</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07, when creating, updating or querying a webhook subscription you can now include a filter parameter.  This parameter, which is specified using <a href="https://shopify.dev/docs/api/usage/search-syntax" target="_blank" class="body-link">Shopify Search Syntax</a>, allows you to specify conditions as to when webhooks should be emitted for a subscription. </p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/webhooks/customize/filters" target="_blank" class="body-link">webhook filters on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 24 Jun 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/webhook-subscriptions-now-support-filters</link>
  </item>
  <item>
    <title>Webhook subscriptions subTopic has been removed</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07, the subTopic argument has been removed for creating webhook subscriptions.  For creating subscriptions that previously required a subTopic the filter argument should be used instead. </p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/build/webhooks/customize/filters" target="_blank" class="body-link">webhook filters on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 24 Jun 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/webhook-subscriptions-subtopic-has-been-removed</link>
  </item>
  <item>
    <title>More data in web pixels</title>
    <description><![CDATA[ <div class=""><p>We've added more data fields to Web pixels so that you can capture richer data and improve the performance of your integrations.</p>
<p><a href="https://shopify.dev/docs/api/web-pixels-api/standard-api/init#properties-propertydetail-data" target="_blank" class="body-link">Standard API -&gt; init -&gt; shop object</a> including:</p>
<ul>
<li>Country code</li>
<li>myShopify url</li>
<li>Payment settings</li>
</ul>
<p><a href="https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed#properties-propertydetail-data" target="_blank" class="body-link">Standard Events -&gt; checkout object</a> including:</p>
<ul>
<li>Discount amounts</li>
<li>Email marketing consent</li>
<li>Final line item price</li>
<li>Line item properties</li>
<li>Line item selling plan</li>
<li>Localization</li>
<li>Payment method </li>
<li>Selected delivery options</li>
<li>SMS marketing consent</li>
</ul>
</div> ]]></description>
    <pubDate>Sun, 23 Jun 2024 17:12:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/more-data-in-web-pixels</link>
  </item>
  <item>
    <title>Easily find all of Shopify's webhook topics, and their sample payloads, in new Webhooks reference docs</title>
    <description><![CDATA[ <div class=""><p>Shopify webhoks are first-class citizens with our APIs, and we now finally have a <a href="https://shopify.dev/docs/api/webhooks" target="_blank" class="body-link">reference experience</a> too! Now, all of Shopify's webhook topics are discoverable in a single-source-of-truth place. The reference docs include sample payloads, which topics are available for subscription based on the method you use, and key information like required access or approval scopes.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 21:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/easily-find-all-of-shopify-s-webhook-topics-and-their-sample-payloads-in-new-webhooks-reference-docs</link>
  </item>
  <item>
    <title>Subscribe to webhook topics using the app configuration file</title>
    <description><![CDATA[ <div class=""><p>Webhooks are now managed by Shopify! Configure app-specific subscriptions as opposed to per shop. Using Shopify CLI v3.63.0 or later, add, modify and deploy app-specific subscriptions in your app configuration file (<code>shopify.app.toml</code>), then view the latest version in your Partners dashboard. </p>
<p>To get started, use the <a href="https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started" target="_blank" class="body-link">new tutorial for Shopify webhook subscriptions</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 19:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/subscribe-to-webhook-topics-using-the-app-configuration-file</link>
  </item>
  <item>
    <title>Cart token in Ajax API response now includes key param</title>
    <description><![CDATA[ <div class=""><p>The <code>token</code> value in the JSON of the cart response now includes a key param as of 2024-06-21. This response is returned when the cart is manipulated or queried using Shopify's Ajax API for Cart.</p>
<p>**Example Format: **</p>
<ul>
<li>Before: token:c1-7a2abe82733a34e84aa472d57fb5c3c1</li>
<li>After: token:c1-7a2abe82733a34e84aa472d57fb5c3c1**?key=824bdj25mhg1242bdb385**</li>
</ul>
<p>**Action Required: **
Ensure that your code is free from hard-coded assumptions (e.g. Using regex to identify a cart token) about the format and structure of the cart JSON response. If this value is stored as a key in an external database, ensure this change does not break the existing functionality. If storage of the cart token is required, we recommend using the complete value including the key param. </p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 18:54:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/cart-token-in-ajax-api-response-now-includes-key-param</link>
  </item>
  <item>
    <title>Create extensions for the pre-authenticated Order Status Page</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/docs/apps/build/customer-accounts/order-status-page#authentication-states" target="_blank" class="body-link">Build extensions on the pre-authenticated Order Status Page</a> as a part of the <a href="https://shopify.dev/docs/apps/customer-accounts" target="_blank" class="body-link">Customer Account Extensibility Developer Preview</a> to create a consistent experience for customers, regardless of their login or authentication state. </p>
<p><a href="https://shopify.dev/docs/apps/customer-accounts" target="_blank" class="body-link">Customer account extensibility</a>, currently available in developer preview, enables partners to add unique and powerful customizations by building extensions directly into new customer accounts. </p>
<p>Learn more about the pre-authenticated Order Status Page in our <a href="https://shopify.dev/docs/apps/build/customer-accounts/order-status-page#authentication-states" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 18:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/create-extensions-for-the-pre-authenticated-order-status-page</link>
  </item>
  <item>
    <title>Preview and configure customer account UI extensions in the Checkout and Accounts Editor </title>
    <description><![CDATA[ <div class=""><p>As a part of the <a href="https://shopify.dev/docs/apps/customer-accounts" target="_blank" class="body-link">Customer Account Extensibility Developer Preview</a>, you can now add, remove, preview, and reposition customer account UI extensions in new customer account pages, to better understand how merchants configure apps in the checkout and accounts editor.</p>
<p>Included in this update, you can also: </p>
<ul>
<li><a href="https://shopify.dev/docs/apps/build/customer-accounts/editor-extension-collections" target="_blank" class="body-link">Group extensions into collections</a>: Extension collections guide merchants on which extensions work well together by creating collections that help merchants confidently enable your recommended customer experience.</li>
<li><a href="https://shopify.dev/docs/apps/structure/app-extensions/configuration" target="_blank" class="body-link">Set default placements</a>: Default placements automatically add an extension to a specified UI block.</li>
</ul>
<p><a href="https://shopify.dev/docs/apps/customer-accounts" target="_blank" class="body-link">Customer account extensibility</a>, currently available in developer preview, enables partners to add unique and powerful customizations by building extensions directly into new customer accounts. </p>
<p>Get started by reading our <a href="https://shopify.dev/docs/apps/customer-accounts/extension-collections" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 18:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/preview-and-configure-customer-account-ui-extensions-in-the-checkout-and-accounts-editor</link>
  </item>
  <item>
    <title>Write data to metafields with the Customer Account API</title>
    <description><![CDATA[ <div class=""><p>Store and access customer information by writing data to metafields with the Customer Account API, and build experiences for merchants that enable logged-in customers to update information about themselves.</p>
<p>Custom customer data previously stored exclusively outside of Shopify can now be accessed and added directly to the customer record via using the Customer Account API. With the 2024-07 release of the Customer Account API, use the <a href="https://shopify.dev/docs/api/customer/unstable/mutations/metafieldsSet" target="_blank" class="body-link">metafieldsSet mutation</a> to assign metafield values on Customer, Order, Company, and CompanyLocation resources.</p>
<p>Learn more about writing data to metafields with the Customer Account API by reading our developer documentation.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/write-data-to-metafields-with-the-customer-account-api</link>
  </item>
  <item>
    <title>Shopify Functions log streaming and replay is available in beta</title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI 3.63, log streaming and replay for Shopify Functions is available in beta.</p>
<p>Log streaming for Shopify Functions enables faster development, testing, and debugging of functions by bringing function execution logs to Shopify CLI. You can also replay function executions locally using input from these logs.</p>
<p>Learn more about enabling and using log streaming on <a href="https://shopify.dev/docs/apps/build/functions/log-streaming-and-replay" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-log-streaming-and-replay-is-available-in-beta</link>
  </item>
  <item>
    <title>Integrate with Shopify Flow by creating a workflow template app extension</title>
    <description><![CDATA[ <div class=""><p>You can now contribute your own templates to Flow’s template library using the Shopify CLI. Templates show merchants how to automate something in their store and typically accelerate adoption of new tasks. </p>
<p>Once you have a workflow to share as a template, you can use the Shopify CLI to generate a new template app extension, configure all of its metadata including localizations, preview the extension, and deploy it. Once approved by the Flow team, it will appear in Flow’s template library.</p>
<p>View the <a href="https://shopify.dev/docs/apps/flow/templates/create-a-template" target="_blank" class="body-link">Create a workflow template documentation</a> to learn more about the process of creating and deploying template app extensions.</p>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 13:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/integrate-with-shopify-flow-by-creating-a-workflow-template-app-extension</link>
  </item>
  <item>
    <title>Revised the App Design Guidelines (Summer 2024)</title>
    <description><![CDATA[ <div class=""><p>We've introduced the following changes to improve and update the <a href="https://shopify.dev/docs/apps/design" target="_blank" class="body-link">App Design Guidelines</a>:</p>
<ul>
<li><a href="https://shopify.dev/docs/apps/design/app-structure#adg_no_fullscreen_bar" target="_blank" class="body-link">FullscreenBar usage</a> within a max modal is now a &quot;Do Not&quot;. The FullscreenBar section of the App Design Guidelines has been removed as it is no longer supported.</li>
<li><a href="https://shopify.dev/docs/apps/design/content#adg_proper_grammar" target="_blank" class="body-link">Proper grammar</a> is now included as a &quot;Must Do&quot;.</li>
<li>Using the App Bridge <a href="https://shopify.dev/docs/apps/design/user-experience/forms#adg_contextual_save_bar" target="_blank" class="body-link">Contextual Save Bar API</a> (where applicable) is now a &quot;Must Do&quot;.</li>
<li>Added a new section to the App Design Guidelines that includes specific <a href="https://shopify.dev/docs/apps/design/user-experience/subscription-apps" target="_blank" class="body-link">requirements for subscription apps</a>.</li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 21 Jun 2024 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/revised-the-app-design-guidelines-summer-2024</link>
  </item>
  <item>
    <title>Introducing easier app billing with managed pricing</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/docs/apps/launch/billing/managed-pricing" target="_blank" class="body-link">Managed pricing</a> makes it easier to set up app pricing plans through your Partner Dashboard. Define recurring monthly/annual and free plans in your app listing page, then embed the URL in your app. Shopify handles creating and hosting your plan selection page, and automates most common billing tasks, such as recurring charges, free trials, proration, test charges, and price updates.</p>
<p>Managed pricing also allows you to easily issue app discounts and trial extensions through the Partner Dashboard. Merchants get an automated confirmation email when discounts and trial extensions are applied to their accounts.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/launch/billing/managed-pricing" target="_blank" class="body-link">getting started with managed pricing</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 20 Jun 2024 23:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-easier-app-billing-with-managed-pricing</link>
  </item>
  <item>
    <title>Add seamless printing to your app with admin print action extensions </title>
    <description><![CDATA[ <div class=""><p>Developers can now add <a href="https://shopify.dev/docs/apps/build/admin/actions-blocks#admin-print-actions" target="_blank" class="body-link">admin print actions</a> to their apps. These extensions let your apps create seamless workflows for printing documents - such as packing slips, invoices, and product information - direcly from the Order and Product pages in the Shopify admin.</p>
<p>Get started today by <a href="https://shopify.dev/docs/apps/build/admin/actions-blocks/build-admin-print-action" target="_blank" class="body-link">learning how to develop and deploy a print extension</a>!</p>
</div> ]]></description>
    <pubDate>Thu, 20 Jun 2024 17:43:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/add-seamless-printing-to-your-app-with-admin-print-action-extensions</link>
  </item>
  <item>
    <title>Real-time Metrics for Shopify App Store Ads</title>
    <description><![CDATA[ <div class=""><p>Shopify App Store Ads’ metrics now update in real-time. Partners will get immediate feedback when they refresh their ad report on their ads’ performance as auctions, impressions, clicks, and installs are happening live. To learn more about these metrics visit <a href="/docs/apps/launch/marketing/advertising/check-ad-performance#report-metrics" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 20 Jun 2024 13:15:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/real-time-metrics-for-shopify-app-store-ads</link>
  </item>
  <item>
    <title>GraphQL Admin API: new APIs for Menus are now available in 2024-07</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the GraphQL Admin API, you can now read and modify Menus.</p>
</div> ]]></description>
    <pubDate>Tue, 18 Jun 2024 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-new-apis-for-menus-are-now-available-in-2024-07</link>
  </item>
  <item>
    <title>Structured app category details now available for 30 more categories</title>
    <description><![CDATA[ <div class=""><p>Structured app category details are now available for 30 more categories. You can fill out the fields from your app listing pages. This new information will help us match your apps to the right merchants more accurately, optimize ads bidding, and improve the overall discovery. </p>
<p>The 30 categories that now supports structured app category details are:</p>
<ul>
<li>Abandoned cart</li>
<li>Ads</li>
<li>Affiliate programs</li>
<li>Analytics</li>
<li>Badges and icons</li>
<li>Banners</li>
<li>Bulk editor</li>
<li>Cart customization</li>
<li>Chat</li>
<li>Cookie consent</li>
<li>Currency and translation</li>
<li>Digital products</li>
<li>Image editor</li>
<li>Invoices and receipts</li>
<li>Inventory sync</li>
<li>Marketplaces</li>
<li>Order tracking</li>
<li>Payments</li>
<li>Print on demand (POD)</li>
<li>Product feeds</li>
<li>Product variants</li>
<li>Retail</li>
<li>Search and filters</li>
<li>Shipping</li>
<li>Shipping rates</li>
<li>SMS marketing</li>
<li>Social proof</li>
<li>Store data importer</li>
<li>Upsell and cross-sell</li>
<li>Workflow automation</li>
</ul>
<p>For more information, please refer to our <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#4-app-category-details" target="_blank" class="body-link">dev documentation</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 18 Jun 2024 19:02:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/structured-app-category-details-now-available-for-30-more-categories</link>
  </item>
  <item>
    <title>JSON is better on Liquid themes now</title>
    <description><![CDATA[ <div class=""><p>Writing JSON for Liquid themes is already easy with intelligent code completion and inline documentation, but now it's also easier to refactor as we move objects in your schema tags and your <code>settings_schema.json</code> files with support for trailing commas and comments.</p>
<p><strong>Note</strong>: Apps that parse JSON definitions from themes can still use pure JSON, but they should introduce support for reading (parsing) comments and trailing commas to handle eventual changes made directly on theme files.</p>
<p>Learn more about the JSON editing experience and JSON with comments at <a href="https://shopify.dev/docs/storefronts/themes/tools/shopify-liquid-vscode" target="_blank" class="body-link">Shopify.dev - VS Code extension</a> and <a href="https://shopify.dev/docs/storefronts/themes/architecture#json-with-comments" target="_blank" class="body-link">Shopify.dev - Theme architecture</a>. Happy coding!</p>
</div> ]]></description>
    <pubDate>Tue, 18 Jun 2024 14:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/json-is-better-on-liquid-themes-now</link>
  </item>
  <item>
    <title>OptionValue in Storefront API</title>
    <description><![CDATA[ <div class=""><p>A new type called <a href="https://shopify.dev/docs/api/storefront/unstable/objects/ProductOptionValue" target="_blank" class="body-link"><code>ProductOptionValue</code></a> has been added to the new storefront API and is nested as a new field <a href="https://shopify.dev/docs/api/storefront/unstable/objects/ProductOption#field-productoption-optionvalues" target="_blank" class="body-link"><code>optionValues</code></a> on the <a href="https://shopify.dev/docs/api/storefront/2024-07/objects/ProductOption" target="_blank" class="body-link"><code>ProductOption</code></a> type.</p>
<p>As of 2024-07, you can use the <code>optionValues</code> field to fetch the option values associated with an option. This field deprecates the existing [<code>values</code>] (<a href="https://shopify.dev/docs/api/storefront/2024-04/objects/ProductOptionValue" target="_blank" class="body-link">https://shopify.dev/docs/api/storefront/2024-04/objects/ProductOptionValue</a>) and provides richer option value information including swatches.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Jun 2024 13:11:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/optionvalue-in-storefront-api</link>
  </item>
  <item>
    <title>`OrderDisplayFulfillmentStatus` now returns `REQUEST_DECLINED` when appropriate</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-10</code>, <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/enums/OrderDisplayFulfillmentStatus" target="_blank" class="body-link">OrderDisplayFulfillmentStatus</a> will now return <code>REQUEST_DECLINED</code> for an order that has had its fulfillment request rejected by a third-party Fulfillment Service. Previously, orders in this state would return an <code>UNFULFILLED</code> status.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Jun 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/orderdisplayfulfillmentstatus-now-returns-request_declined-when-appropriate</link>
  </item>
  <item>
    <title>Add a new error code for handling missing payment method for subscription draft commits</title>
    <description><![CDATA[ <div class=""><p>As of 2024-07, you will receive a detailed error message when missing payment information for <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/subscriptionDraftCommit" target="_blank" class="body-link">subscriptionDraftCommit mutation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 15 Jun 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/add-a-new-error-code-for-handling-missing-payment-method-for-subscription-draft-commits</link>
  </item>
  <item>
    <title>draftOrderLineItemInput now accepts bundleComponents and the CartTransform function runs on all draft orders</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the GraphQL Admin API, draftOrderLineItemInput now accepts bundleComponents. Apps can view a bundle item's components on a draft using the bundleComponents field and can add a bundle item to a draft order by including this field in the draftOrderLineItemInput.</p>
<p>Additionally, the <a href="https://shopify.dev/docs/api/functions/reference/cart-transform" target="_blank" class="body-link">CartTransform function</a> will automatically run on all draft orders.</p>
<p>Learn more about bundleComponents on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/DraftOrderInput#field-draftorderinput-bundlecomponents" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Jun 2024 13:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/draftorderlineiteminput-now-accepts-bundlecomponents-and-the-carttransform-function-runs-on-all-draft-orders</link>
  </item>
  <item>
    <title>Category on ProductInput</title>
    <description><![CDATA[ <div class=""><p>In 2024-04 we released a new Taxonomy API for products. This included introducing a new <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/TaxonomyCategory" target="_blank" class="body-link">TaxonomyCategory</a> type and updating the product type to return a new category field. </p>
<p>As of 2024-07 the ProductInput type will also accept a <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/ProductInput#field-productinput-category" target="_blank" class="body-link">category field</a> that accepts the GID of a category. </p>
<p>We've also deprecated <code>shop.allProductCategories</code> in favor of <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Shop#field-shop-allproductcategorieslist" target="_blank" class="body-link"><code>shop.allProductCategoriesList</code></a></p>
</div> ]]></description>
    <pubDate>Fri, 14 Jun 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/category-on-productinput</link>
  </item>
  <item>
    <title>UI Extensions - Support for split shipping in Shipping method option list and item targets </title>
    <description><![CDATA[ <div class=""><p><em>Breaking change:</em> UI Extensions on version <code>2024-07</code> can use new API capabilities to integrate with split shipping capabilities. </p>
<p>Split shipping in checkout allows buyers to select different shipping options for items arriving in multiple shipments. In split shipping scenarios, Checkout will include UI changes to offer more transparency and options for buyers in the shipping section, while making the selection process easy with split shipping options (“Lowest price”, “Fastest” or “Custom”).</p>
<h2>API updates</h2>
<p>As of <code>2024-07</code>, <code>purchase.checkout.shipping-option-list.render-before</code> and <code>purchase.checkout.shipping-option-list.render-after</code> will receive a new <code>DeliveryGroupList</code> target representing the list of delivery groups for One Time Purchase or Subscription delivery groups. These targets <a href="https://shopify.dev/changelog/ui-extensions-shipping-method-option-list-targets-will-be-duplicated-for-possible-types-of-delivery-groups-one-time-purchases-and-subscription" target="_blank" class="body-link">continue to be duplicated</a> for the possible types of delivery groups. We’re also introducing <code>deliverySelectionGroups</code> which represents the list of predefined choices for the “Lowest price”, “Fastest” or “Custom” shipping options that are presented to the buyer. You can view these changes on the <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/targets/shipping/purchase-checkout-shipping-option-list-render-before#shippingoptionlistapi" target="_blank" class="body-link">ShippingOptionListApi</a>.</p>
<p>Note that <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/delivery#useDeliveryGroupTarget" target="_blank" class="body-link">useDeliveryGroupTarget()</a> is deprecated in favor of <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/delivery#useDeliveryGroupListTarget" target="_blank" class="body-link">useDeliveryGroupListTarget()</a>. Extensions on <code>2024-01</code> and <code>2024-04</code> are compatible with split shipping but will only receive the first delivery group of each type (One Time Purchase or Subscription).</p>
<h2>UI extension target updates</h2>
<p><code>purchase.checkout.shipping-option-item.render-after</code> and <code>purchase.checkout.shipping-option-item.details.render</code> targets can now be rendered in different contexts: inline as part of the split shipping options, or in an overlay for the “More shipping options” modal. </p>
<p>As a result:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/targets/shipping/purchase-checkout-shipping-option-item-details-render#shippingoptionitemapi" target="_blank" class="body-link">ShippingOptionItemApi</a> has been updated to include a <code>renderMode</code> indicating in which context the target is rendered. </li>
<li>Only <code>purchase.checkout.shipping-option-item.render-after</code> can be rendered in both contexts.</li>
<li><code>purchase.checkout.shipping-option-item.details.render</code> will also be duplicated for the selected shipping option of each delivery group.</li>
</ul>
<p>If your extension is capturing buyer inputs at Checkout (for example using an app metafield), you will need to update your logic to account that this information should be scoped to a specific delivery group, instead of the entire order.</p>
<p>You can learn more about the <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/extension-targets-overview#checkout-locations-split-shipping" target="_blank" class="body-link">new placement of targets</a> and see examples.</p>
<p>These changes can be previewed today on the <code>unstable</code> api version and will be available on the stable branch with version <code>2024-07</code>.</p>
<p>Learn more about these api changes on <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/targets/shipping/purchase-checkout-shipping-option-list-render-before#shippingoptionlistapi" target="_blank" class="body-link">shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Thu, 13 Jun 2024 21:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/ui-extensions-support-for-split-shipping-in-shipping-method-option-list-and-item-targets</link>
  </item>
  <item>
    <title>We have refreshed app taxonomy for better discoverability</title>
    <description><![CDATA[ <div class=""><p>We have refreshed our app taxonomy for better app discoverability. Designed to streamline categories and reduce complexity, this update will help merchants more easily find the best apps for their needs.</p>
<p>We encourage you to:</p>
<ul>
<li><strong>Review the new taxonomy</strong>: See <a href="https://shopify.dev/docs/apps/launch/app-store-review/app-listing-categories" target="_blank" class="body-link">new categories</a> and how it affects your app’s placement. All apps will continue to be discoverable and we’ll do our best to choose a suitable alternative for those impacted.</li>
<li><strong>Update your app’s category</strong>: Select the most suitable category for your app from your partner dashboard. All apps can make a one-time category change. Any subsequent changes will require an appeal.</li>
<li><strong>Impact on ads:</strong> Your category ads campaigns may be impacted if they are in <a href="https://cdn.shopify.com/static/Influenced%20categories%20ads%20.pdf" target="_blank" class="body-link">these categories</a>. You may need to relaunch your campaign.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 13 Jun 2024 19:16:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/we-have-refreshed-app-taxonomy-for-better-discoverability</link>
  </item>
  <item>
    <title>GraphQL Admin API: `RefundLineItem.id` field added</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, you can use the <code>RefundLineItem.id</code> to return the id of specified <code>RefundLineItem</code> object.</p>
<p>Learn more about working with <code>RefundLineItem</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/RefundLineItem" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 13 Jun 2024 17:38:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-refundlineitem-id-field-added</link>
  </item>
  <item>
    <title>Preserve line properties in CartLinesUpdate mutation</title>
    <description><![CDATA[ <div class=""><p>The  <a href="https://shopify.dev/docs/api/storefront/2024-04/input-objects/CartLineUpdateInput#field-cartlineupdateinput-attributes" target="_blank" class="body-link">CartLinesUpdate</a> mutation behavior has been updated to preserve existing line properties when the attributes parameter is either omitted or explicitly set to null. 
Previously, omitting the attributes parameter would reset the line properties. Passing an empty hash <code>{ }</code> to reset line properties is an existing capability and remains unchanged.</p>
</div> ]]></description>
    <pubDate>Thu, 13 Jun 2024 15:29:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/preserve-line-properties-in-cartlinesupdate-mutation</link>
  </item>
  <item>
    <title>Updated default sort order for discount queries</title>
    <description><![CDATA[ <div class=""><p>As of 2023-04, the default sort key for <code>discountNodes</code>, <code>codeDiscountNodes</code>, and <code>automaticDiscountNodes</code> queries has changed to <code>ID</code>. Previously the default sort key was <code>CREATED_AT</code>. This change improves performance.</p>
</div> ]]></description>
    <pubDate>Thu, 13 Jun 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/updated-default-sort-order-for-discount-queries</link>
  </item>
  <item>
    <title>Deprecation of `buyerIdentityInput.walletPreferences` in favour of `buyerIdentityInput.preferences.wallet`</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, we're deprecating <code>buyerIdentityInput.walletPreferences</code>. Use <code>buyerIdentityInput.preferences.wallet</code> instead.</p>
<p>Learn more about these changes on <a href="https://shopify.dev/docs/api/storefront/2024-04/input-objects/CartPreferencesInput" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 11 Jun 2024 20:40:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/deprecation-of-buyeridentityinput-walletpreferences-in-favour-of-buyeridentityinput-preferences-wallet</link>
  </item>
  <item>
    <title>Automatic Discount Functions now apply to B2B checkouts for review</title>
    <description><![CDATA[ <div class=""><p>Discount Functions are now compatible with B2B companies that are required to <a href="https://help.shopify.com/en/manual/b2b/draft-orders?shpxid=f4021b8e-2A31-4F67-B74E-2A61956F11CC" target="_blank" class="body-link">submit orders as drafts for review</a>.</p>
<p><a href="https://shopify.dev/changelog/automatic-discount-functions-now-apply-to-b2b-sessions" target="_blank" class="body-link">Previously</a>, Discount Functions weren’t applicable when B2B buyers submitted orders as drafts for review. This restriction has now been lifted, and buyers will have discounts applied at checkout.</p>
</div> ]]></description>
    <pubDate>Mon, 10 Jun 2024 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/automatic-discount-functions-now-apply-to-b2b-checkouts-for-review</link>
  </item>
  <item>
    <title>Merchants can now share all function run details for an app within the last 24 hours</title>
    <description><![CDATA[ <div class=""><p>It is now possible for merchants to share all function run details for an app within the last 24 hours with the app developer. This will share function run details for every function on the app, including both success and failure runs.</p>
<p>To learn how merchants can perform this action, see the relevant <a href="https://shopify.dev/docs/apps/build/functions/monitoring-and-errors#share-app-function-logs" target="_blank" class="body-link">dev docs</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 07 Jun 2024 20:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/merchants-can-now-share-all-function-run-details-for-an-app-within-the-last-24-hours</link>
  </item>
  <item>
    <title> Added Maximum Limit to number of fulfillment constraint rules for a shop</title>
    <description><![CDATA[ <div class=""><p>We are adding a limit to the number of fulfillment constraint rules that can be applied to a shop - currently, this limit is 10. As a result, we are also adding a new error code to the API. </p>
<p>As of API version <code>2023-07</code>, the error code <code>maximum_fulfillment_constraint_rules_reached</code> will be added to the <code>FulfillmentConstraintRuleCreate</code> mutation. This error code is returned when you add more than the maximum number of rules to a shop.</p>
</div> ]]></description>
    <pubDate>Thu, 06 Jun 2024 14:50:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/added-maximum-limit-to-number-of-fulfillment-constraint-rules-for-a-shop</link>
  </item>
  <item>
    <title>Hydrogen June 2024 release</title>
    <description><![CDATA[ <div class=""><p><a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402024.4.3" target="_blank" class="body-link">Hydrogen v2024.4.3</a>  is out today. The June 2024 Hydrogen release contains several new features and bug fixes, including:</p>
<ul>
<li>A new <code>useOptimisticCart</code> hook</li>
<li>A new <code>&lt;RichText /&gt;</code> component to render <code>rich_text_field</code> metafields</li>
<li>Stable analytics</li>
<li>An upgrade to Remix 2.9.2</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/june-2024" target="_blank" class="body-link">Hydrogen June 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Wed, 05 Jun 2024 22:34:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-june-2024-release</link>
  </item>
  <item>
    <title>Discount Functions support on Shopify Point of Sale</title>
    <description><![CDATA[ <div class=""><p>With POS app version 9.10 we now officially support discounts created by Discount Functions.</p>
<p>Here are some of the things to be aware of with regards to this announcement:</p>
<h3>What are Shopify Functions?</h3>
<p><a href="https://shopify.dev/docs/apps/functions" target="_blank" class="body-link">Shopify Functions</a> give you the flexibility to extend or replace native Shopify server-side business logic, to meet your unique business needs. 
For Discount Functions, that means being able to create discounts that cover more advanced use cases than what’s offered natively in the Shopify Admin discounting functionality.</p>
<p>Some use cases:</p>
<ul>
<li>Trigger discounts based on <a href="https://shopify.dev/docs/api/functions/reference/order-discounts/graphql/input" target="_blank" class="body-link">attributes</a> not available to be used natively, such as custom metafields or the customer’s lifetime value</li>
<li>Create more advanced criteria for discounts to be eligible, such as “Buy A, B and (C or D), get E for free”</li>
<li>Link discounts to other functionalities (loyalty, gift registry, membership)</li>
</ul>
<h3>What’s the lifecycle of a Shopify Function?</h3>
<ul>
<li><strong>App developers</strong> create and deploy apps that contain functions</li>
<li><strong>Merchants</strong> install the app on their Shopify store and configure the function. An API call is made with the function configuration</li>
<li><strong>Customers</strong> interact with a Shopify store, for example by visiting a retail location and buying a number of products, Shopify executes the function as the cart is updated and the merchants’ staff checks out the customer</li>
</ul>
<p><img src="https://shopify.dev/assets/api/functions/create-test-deploy-1b6f90ae15af37fbfb79547f77b8f1bf8cadc4b5f529fd16e1eaded22cd495ee.png" alt=""></p>
<h2>Important information:</h2>
<h3>What exactly is changing now?</h3>
<p>Over the last couple of months we launched new features on Shopify POS such as the ability to combine discounts as well as the support for BXGY discount codes. With these releases, we increased the support for more advanced Discount Function scenarios. </p>
<p>With v9.10 we are releasing some improvements that further bring the use of Discount Functions into the POS ecosystem, including automatic discounts, the ability to create <strong>smart grid tiles</strong> for discount codes that trigger a Discount Function, as well as improved error handling for discount codes.</p>
<h3>Limitations:</h3>
<p>There are currently a few limitations that are important to be aware of:</p>
<ul>
<li>Discount Functions are automatically available to any sales channel, meaning that if a Discount Function was set up to automatically apply based on a certain input, it would be applied to orders that qualify in both Online Store as well as POS. The same counts for Discount Functions that are applied through discount code</li>
<li>Stores on any plan can use public apps that are distributed through the Shopify App Store and contain functions. Only stores on a <a href="https://help.shopify.com/manual/intro-to-shopify/pricing-plans/plans-features/shopify-plus-plan?shpxid=a4930bb5-4508-4C15-DD13-B6BDC4FA209E" target="_blank" class="body-link">Shopify Plus</a> plan can use <a href="https://help.shopify.com/manual/apps/app-types/custom-apps?shpxid=a4930bb5-4508-4C15-DD13-B6BDC4FA209E" target="_blank" class="body-link">custom apps</a> that contain <a href="https://shopify.dev/docs/api/functions" target="_blank" class="body-link">Shopify Function APIs</a></li>
</ul>
<h3>For app developers:</h3>
<ul>
<li>We have extensive pre-existing docs on Shopify Functions  - <a href="https://shopify.dev/docs/apps/functions" target="_blank" class="body-link">General</a> and <a href="https://shopify.dev/docs/api/functions" target="_blank" class="body-link">API</a> - available on our .dev docs website. A tutorial can be found <a href="https://shopify.dev/docs/apps/selling-strategies/discounts/experience/getting-started" target="_blank" class="body-link">here</a></li>
</ul>
<h3>In Shopify admin:</h3>
<ul>
<li>Any previously created Discount Functions are automatically available to be leveraged on POS</li>
<li>For staff members to be able to leverage a Discount Function, a discount will have to be created with an app that deploys that function</li>
<li>To make a discount created by Discount Functions available for smart grid tile linking, it has to be “published” to the POS, which can be done via bulk editor in the Admin &gt; Discounts list overview</li>
</ul>
<h3>In store flows:</h3>
<ul>
<li>For the staff in store, nothing will change. Discounts created through native functionality or discount functions will behave the same on POS</li>
<li>Discount Functions can be configured to apply automatically, or can be triggered by entering a discount code</li>
</ul>
<h3>Technical:</h3>
<ul>
<li>The following API’s are relevant to this functionality:<ul>
<li><a href="https://shopify.dev/docs/api/functions" target="_blank" class="body-link">Shopify Functions</a></li>
<li><a href="https://shopify.dev/docs/api/functions/reference/order-discounts" target="_blank" class="body-link">Order Discount Function API</a></li>
<li><a href="https://shopify.dev/docs/api/functions/reference/product-discounts" target="_blank" class="body-link">Product Discount Function API</a></li>
<li><a href="https://shopify.dev/docs/api/functions/reference/shipping-discounts" target="_blank" class="body-link">Shipping Discount Function API</a></li>
</ul>
</li>
<li>There are no functional changes to APIs</li>
</ul>
<p>Reporting:</p>
<ul>
<li>Discounts created through Discount Functions are of the same type as native discount (automatic / code, product/order/shipping). These discounts are reported on regardless of whether they were created natively or through discount functions</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 05 Jun 2024 14:30:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/discount-functions-support-on-shopify-point-of-sale</link>
  </item>
  <item>
    <title>Introducing the URLParameterValue field on all marketing activities and aligned types on userErrors in the Marketing Activity API</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2024-07</code>, you can use the <code>url_parameter_value</code> as a tracking parameter in the <code>MarketingActivityCreate</code> and <code>MarketingActivityUpdate</code> mutations. This feature is currently available on a limited basis to some partners only. UTMs should continue to be used for most partners' tracking parameters. </p>
<p>Additionally, <code>MarketingActivityUserError</code> will be the required type on the <code>user_errors</code> field for the <code>MarketingEngagementCreate</code> mutation. This will match the <code>user_error</code> types of the other mutations that belong to the Marketing Activity and Engagements API.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Jun 2024 20:40:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/introducing-the-urlparametervalue-field-on-all-marketing-activities-and-aligned-types-on-usererrors-in-the-marketing-activity-api</link>
  </item>
  <item>
    <title>A little spring cleaning for your App Store listing</title>
    <description><![CDATA[ <div class=""><p>We've given listing pages a refreshing uplift to improve overall density and readability. </p>
<p>A sticky sidebar keeps important highlights and the Install app CTA always in merchants' view. We continue to roll out more support for <a href="https://shopify.dev/docs/apps/launch/app-requirements-checklist#4-app-category-details" target="_blank" class="body-link">structured features</a> for more app categories, so we've adjusted this section to accommodate growth.</p>
<p>This listing update is entirely a front-end refresh to keep the browsing experience high-quality for our merchants. <strong>No listing functionality will be impacted</strong>.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Jun 2024 12:47:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/a-little-spring-cleaning-for-your-app-store-listing</link>
  </item>
  <item>
    <title>Added new field `ordersCount` to the query root</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2024-07</code> of the Admin GraphQL API, you can use the new <code>ordersCount</code> field to count the orders for a given shop.</p>
<p>Learn more about <code>ordersCount</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/queries/ordersCount" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jun 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/added-new-field-orderscount-to-the-query-root</link>
  </item>
  <item>
    <title>New fields on Order GraphQL Object</title>
    <description><![CDATA[ <div class=""><p>As of Admin API <code>2024-07</code>, Order object will expose the following new fields:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Order#field-order-staffmember" target="_blank" class="body-link">staffMember</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Order#field-order-sourcename" target="_blank" class="body-link">sourceName</a></li>
</ul>
<p>Learn more about Order GraphQL object on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/Order" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jun 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-fields-on-order-graphql-object</link>
  </item>
  <item>
    <title>New mutation to delete an order</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API 2024-07 version, you can make use of a new mutation to delete an order.</p>
<p>Learn more about <code>orderDelete</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/orderDelete" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jun 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-mutation-to-delete-an-order</link>
  </item>
  <item>
    <title>Deprecating the Ability to Set Available Quantities on Already Active States on the `InventoryActivate` GraphQL Mutation</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version <code>2024-10</code>, we're deprecating the ability to set the available quantity on the <code>InventoryActivate</code> GraphQL mutation for already active states. Moving forward, use the <code>InventorySetQuantities</code> GraphQL mutation instead. This change will take into full effect starting on the <code>2024-10</code> version of the Admin GraphQL API.</p>
</div> ]]></description>
    <pubDate>Wed, 29 May 2024 16:14:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-10</category>
    <link>https://shopify.dev/changelog/deprecating-the-ability-to-set-available-quantities-on-already-active-states-on-the-inventoryactivate-graphql-mutation</link>
  </item>
  <item>
    <title>Note length is now validated (&lt;5000 char)</title>
    <description><![CDATA[ <div class=""><p>As of Storefront API version 2024-07, you will get a <code>NOTE_TOO_LONG</code> user error in cart mutations in case the note exceeds the maximum number of 5000 characters.</p>
</div> ]]></description>
    <pubDate>Tue, 28 May 2024 16:18:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/note-length-is-now-validated-5000-char</link>
  </item>
  <item>
    <title>Updates to MetafieldAccessInput and MetafieldAccessUpdateInput enum values</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, the <code>admin</code> and <code>storefront</code> fields of <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/MetafieldAccessInput" target="_blank" class="body-link"><code>MetafieldAccessInput</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/MetafieldAccessUpdateInput" target="_blank" class="body-link"><code>MetafieldAccessUpdateInput</code></a> will begin using dedicated input enum types - <code>MetafieldAdminAccessInput</code> and <code>MetafieldStorefrontAccessInput</code>. </p>
<p>Learn more about access controls for metafields on <a href="https://shopify.dev/docs/apps/custom-data/metafields/definitions/access-controls" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 24 May 2024 16:29:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/updates-to-metafieldaccessinput-and-metafieldaccessupdateinput-enum-values</link>
  </item>
  <item>
    <title>More personalized guidance during app submission</title>
    <description><![CDATA[ <div class=""><p>You can now pre-select your app’s capabilties early in the submission process to get a simpler, personalized list of requirements. If your app review gets paused due to a blocking error, then a clear summary of issues and a straightforward resubmission process can help you (and your app review) quickly get back on track.</p>
<p>We'll initially roll out changes to English-language users, with additional languages to follow soon. <a href="https://shopify.dev/docs/apps/store/review" target="_blank" class="body-link">Learn more about the app review process</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 24 May 2024 15:03:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/more-personalized-guidance-during-app-submission</link>
  </item>
  <item>
    <title>Customize the address autocomplete provider in Checkout with the Address Autocomplete API</title>
    <description><![CDATA[ <div class=""><p>Customize the address autocomplete provider in Shopify Checkout with the Address Autocomplete API. The Address Autocomplete API unlocks the ability for developers to replace the default provider of address suggestions in Shopify Checkout. This allows merchants who have upgraded to Checkout Extensibility to leverage a growing ecosystem of third-party apps that augment the address autocomplete experience.</p>
<p><strong>API Reference</strong></p>
<ul>
<li><a href="https://shopify.dev/docs/api/checkout-ui-extensions/2024-04/targets/address/purchase-address-autocomplete-format-suggestion" target="_blank" class="body-link">purchase-address-autocomplete-suggest</a></li>
<li><a href="https://shopify.dev/docs/api/checkout-ui-extensions/2024-04/targets/address/purchase-address-autocomplete-format-suggestion" target="_blank" class="body-link">purchase-address-autocomplete-format-suggestion</a></li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 24 May 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/customize-the-address-autocomplete-provider-in-checkout-with-the-address-autocomplete-api</link>
  </item>
  <item>
    <title>Even more personalized guidance during app submission</title>
    <description><![CDATA[ <div class=""><p>Pre-select your app’s capabilities early in the submission process to get a simpler, personalized list of requirements. If your app review gets paused due to a blocking error, a clear summary of issues and a straightforward resubmission process will help you (and your app review) quickly get back on track.</p>
<p>We are rolling this out to English speaking partners first this week. For more information on app review, see our <a href="https://shopify.dev/docs/apps/store/review" target="_blank" class="body-link">dev docs</a>. </p>
</div> ]]></description>
    <pubDate>Thu, 23 May 2024 16:09:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/even-more-personalized-guidance-during-app-submission</link>
  </item>
  <item>
    <title>Apps can now trigger marketing automations that use the Customer subscribed to email marketing trigger</title>
    <description><![CDATA[ <div class=""><p>Apps can now trigger Shopify's marketing automations that use the <strong>Customer subscribed to email marketing</strong> trigger (welcome new subscriber, and welcome series) by integrating with the Customers API.</p>
<p>When developers provide <code>consentUpdatedAt</code> upon <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/input-objects/CustomerEmailMarketingConsentInput#field-customeremailmar%5B%E2%80%A6%5Dtinput-consentupdatedat" target="_blank" class="body-link">updating the email marketing consent for a customer</a>, the trigger and associated marketing workflow will fire as long as <code>consentUpdatedAt</code> is within the last 24 hours.</p>
<p>This change allows standalone lead capture apps to connect seamlessly with the rest of Shopify’s marketing automation tools. Apps that also offer automations should make sure merchants are aware they should choose to automate welcome emails in one place, not both, to avoid duplicate messages.</p>
</div> ]]></description>
    <pubDate>Thu, 23 May 2024 14:07:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/apps-can-now-trigger-marketing-automations-that-use-the-customer-subscribed-to-email-marketing-trigger</link>
  </item>
  <item>
    <title>Zero-value tax lines are now returned for tax exempt orders</title>
    <description><![CDATA[ <div class=""><!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. 

Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>Tax lines created as a result of tax exemptions on orders (typically have <code>price=0</code>) will now be returned in API responses. This includes cases when the order, customer or product variant have been marked to not collect taxes (i.e. when the &quot;Charge taxes&quot; or &quot;Collect Tax&quot; checkbox is set to false).</p>
<p>This change is being released to stores progressively, with a plan to fully release it by May 23, 2024. The change will affect orders on stores that have the feature and have the appropriate tax registrations set up for collecting taxes on those orders</p>
</div> ]]></description>
    <pubDate>Thu, 23 May 2024 13:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Customer Account API</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/zero-value-tax-lines-are-now-returned-for-tax-exempt-orders</link>
  </item>
  <item>
    <title>New preferences fields for prefilling checkout in the Storefront (cart) API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-04</code>, you can use the <code>preferences</code> object in the Cart API to prefill a checkout session. </p>
<p>These changes help merchants streamline their checkout process for their customers by prefilling information such as the preferred delivery method and pickup location. This change is additive to the <code>2024-04</code> version.</p>
<p>Learn more about these new fields in the <code>cartCreate</code> <a href="https://shopify.dev/docs/api/storefront/2024-04/mutations/cartCreate" target="_blank" class="body-link">reference page</a> and the <code>CartBuyerIdentity</code> <a href="https://shopify.dev/docs/api/storefront/2024-04/objects/CartBuyerIdentity" target="_blank" class="body-link">reference page</a></p>
<p>For more information, an <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-storefront-api/cart/manage" target="_blank" class="body-link">updated tutorial</a> is also available. </p>
</div> ]]></description>
    <pubDate>Wed, 22 May 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-preferences-fields-for-prefilling-checkout-in-the-storefront-cart-api</link>
  </item>
  <item>
    <title>Better support for accelerated checkout methods in payment customization functions</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-07</code>, the Payment Customization API has two new features that give you better control over accelerated checkout methods:</p>
<ol>
<li><strong>Improved naming</strong>: the function input graph now has more descriptive and specific names for accelerated checkout methods.</li>
<li><strong>Placement control</strong>: Shopify Plus merchants will also be able to pass an optional <code>placements</code> argument in the <code>hide</code> operation, allowing them to explicitly hide accelerated checkout methods from the first or last step of checkout independently.</li>
</ol>
<p>To learn more about payment customization functions, please refer to the <a href="https://shopify.dev/docs/apps/checkout/payments" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 22 May 2024 12:57:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/better-support-for-accelerated-checkout-methods-in-payment-customization-functions</link>
  </item>
  <item>
    <title>New checkout functionality for merchants on Basic, Shopify, and Advanced plans</title>
    <description><![CDATA[ <div class=""><p>UI extensions and web pixels for public or custom apps on the Thank you and Order status pages are now available to merchants on Basic, Shopify and Advanced plans. In tandem, merchants will also have access to the new checkout and accounts editor, an all-in-one place for making customizations. </p>
<p>Additional scripts and apps with script tags on the Thank you and Order status pages will be turned off with one year notice. These must be replaced with a compatible app from the Shopify App Store or rebuilt with UI extensions and web pixels. </p>
<p>As previously stated, customizations for the Thank you and Order status pages achieved using checkout.liquid, script tags, and additional scripts will be turned off for Plus merchants on August 28, 2025.</p>
<p>More information can be found in our <a href="https://shopify.dev/docs/apps/checkout/thank-you-order-status" target="_blank" class="body-link">developer documentation</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 21 May 2024 13:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-checkout-functionality-for-merchants-on-basic-shopify-and-advanced-plans</link>
  </item>
  <item>
    <title>The orderCapture API now supports finalCapture</title>
    <description><![CDATA[ <div class=""><p>Shopify Plus merchants using Shopify Payments are able to partially capture authorizations more than once. However, sometimes you know that the capture you're about to perform will be the last one. To reflect this, the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/orderCapture" target="_blank" class="body-link">orderCapture mutation</a> has been updated in the 2024-07 version to support a new <code>finalCapture</code> parameter.</p>
<p>When you know you're capturing an authorization for the last time, setting the <code>finalCapture</code> parameter to true will release any uncaptured funds back to your customer. Doing so is likely to increase customer satisfaction and decrease the risk of chargebacks.</p>
<p>See also:</p>
<ul>
<li><a href="https://changelog.shopify.com/posts/shopify-payments-now-supports-multiple-payment-captures-for-the-same-order" target="_blank" class="body-link">Shopify Payments now supports multiple payment captures for the same order</a></li>
<li><a href="https://changelog.shopify.com/posts/shopify-payments-now-supports-multiple-payment-captures-for-the-same-order-in-australia-and-romania" target="_blank" class="body-link">Shopify Payments now supports multiple payment captures for the same order in Australia and Romania</a></li>
</ul>
<p>For merchants not on the Shopify Plus plan, the <code>finalCapture</code> parameter will have no effect: these authorizations can only be captured once, and uncaptured funds are always returned immediately to the customer.</p>
<p>At the time of writing, the finalCapture parameter only applies to transactions made through Shopify Payments. When capturing authorizations processed through other gateways, finalCapture must either be omitted, or set to <code>null</code>.</p>
</div> ]]></description>
    <pubDate>Fri, 10 May 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/the-ordercapture-api-now-supports-finalcapture</link>
  </item>
  <item>
    <title>Enhanced handling of large quantities in the Carts API update endpoint</title>
    <description><![CDATA[ <div class=""><p>When handling requests with exceptionally large quantities (exceeding 1,000,000), the <code>update</code> endpoint of the Carts API previously capped the value to 1,000,000 and returned a <code>200/OK</code> status without notifying the user.</p>
<p>We have now modified this behavior. While the <code>update</code> endpoint will continue to limit the quantity to 1,000,000, it will also issue a <code>422/Unprocessable Entity</code> status alerting the API users to the adjustment.</p>
<p>The endpoint will not perform any additional quantity checks against inventory levels; this aspect remains consistent with previous functionality.</p>
</div> ]]></description>
    <pubDate>Thu, 09 May 2024 18:53:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/enhanced-handling-of-large-quantities-in-the-carts-api-update-endpoint</link>
  </item>
  <item>
    <title>Updates to metafield access controls</title>
    <description><![CDATA[ <div class=""><p>It is now possible for apps to view the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/MetafieldDefinition#field-metafielddefinition-access" target="_blank" class="body-link"><code>access</code></a> field of metafield definitions they have access to but do not own. An <code>AuthorizationError</code> error was previously returned when accessing the field for definitions the app didn't have permissions to manage. Note that accessing the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/MetafieldAccess#field-metafieldaccess-grants" target="_blank" class="body-link"><code>access.grants</code></a> field still requires permissions to manage the definition and an error will be returned if accessing the field with insufficient permissions.</p>
<p>As of <code>2024-07</code>, the <code>admin</code> and <code>storefront</code> fields of <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/MetafieldAccess#field-metafieldaccess-grants" target="_blank" class="body-link"><code>MetafieldAccess</code></a> will also start returning values in more cases instead of <code>null</code>. Metafields that do not have associated access grants will return <code>PUBLIC_READ_WRITE</code> for <code>admin</code> access and <code>LEGACY_LIQUID_ONLY</code> for <code>storefront</code>. In addition, definitions that were created with a storefront access of <code>NONE</code> will start returning <code>NONE</code> instead of <code>null</code>. Finally, it will also now be possible to set <code>PUBLIC_READ_WRITE</code> as the <code>admin</code> access control.</p>
<p>Learn more about access controls for metafields on <a href="https://shopify.dev/docs/apps/custom-data/metafields/definitions/access-controls" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 09 May 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/updates-to-metafield-access-controls</link>
  </item>
  <item>
    <title>Hydrogen May 2024 release</title>
    <description><![CDATA[ <div class=""><p><a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402024.4.2" target="_blank" class="body-link">Hydrogen v2024.4.2</a> is out today. The May 2024 Hydrogen release contains several new features and bug fixes including:</p>
<ul>
<li>Redeploys on Oxygen</li>
<li>B2B Support</li>
<li>Improved support for third party requests in the request profiler</li>
<li>Improved HMR stability</li>
<li>Node 21 compatibility</li>
<li>Content security policy improvements</li>
<li>Analytics improvements</li>
<li><code>h2 upgrade</code> command detects outdated devDependencies</li>
<li>Codegen schema resolution fix</li>
<li>cli-kit improvements</li>
</ul>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/may-2024" target="_blank" class="body-link">Hydrogen May 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Wed, 08 May 2024 23:31:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-may-2024-release</link>
  </item>
  <item>
    <title>New error code added for the MetafieldDefinitionDelete mutation</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-07, we've added the <code>RESERVED_NAMESPACE_ORPHANED_METAFIELDS</code> error code to the <code>metafieldDefinitionDelete</code> mutation. This error code is returned if you attempt to delete a definition in a reserved namespace without setting <code>deleteAllAssociatedMetafields</code> to true.</p>
</div> ]]></description>
    <pubDate>Wed, 08 May 2024 18:39:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/new-error-code-added-for-the-metafielddefinitiondelete-mutation</link>
  </item>
  <item>
    <title>Cart cookie value now includes key param</title>
    <description><![CDATA[ <div class=""><p>The cart cookie value for the Online Store now includes a key param. Not including the key param will result in the removal of buyer details and your updates will be applied to a newly generated cart. This behavior is applied retroactively to all themes. </p>
<p>This change is rolling out now, and enforcement will go into effect after a grace period of 1 week. </p>
<p><strong>Example Format</strong></p>
<ul>
<li>Before: value=c1-7a2abe82733a34e84aa472d57fb5c3c1</li>
<li>After: value=c1-7a2abe82733a34e84aa472d57fb5c3c1**?key=824bdj25mhg1242bdb385**</li>
</ul>
<p><strong>Action Required</strong></p>
<p>Provide the complete cart cookie value which includes the key param as well as the cart token. </p>
<p>Ensure that theme code is free from hard-coded assumptions (ex. Using regex to identify a cart token) on the format and structure of the cart cookie. This is especially critical if the cart cookie is manually constructed. <strong>If your theme utilizes the value set by default without modification, no action is needed.</strong></p>
</div> ]]></description>
    <pubDate>Mon, 06 May 2024 15:41:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>New</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/cart-cookie-value-now-includes-key-param</link>
  </item>
  <item>
    <title>Pixels now support more customer privacy setting configuration</title>
    <description><![CDATA[ <div class=""><p>You can now configure the customer privacy permissions and data sale settings for app pixels using the Web Pixel API. This will provide more insights by collecting events whenever the proper permissions are given by customers. </p>
<p>Learn more about Web Pixels on <a href="https://shopify.dev/apps/pixels" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 02 May 2024 00:45:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pixels-now-support-more-customer-privacy-setting-configuration</link>
  </item>
  <item>
    <title>Image and swatch presentations for product filters</title>
    <description><![CDATA[ <div class=""><p>You can now create <a href="https://help.shopify.com/en/manual/online-store/search-and-discovery/filters#visual-filters" target="_blank" class="body-link">visual filters</a> with an <a href="https://shopify.dev/docs/api/liquid/objects#filter-presentation" target="_blank" class="body-link">image presentation</a>. This allows developers and merchants to specify when filters are best displayed as detailed images instead of color and pattern swatches.</p>
<p>In the Liqudi API, we've added <a href="https://shopify.dev/docs/api/liquid/objects/filter_value#filter_value-image" target="_blank" class="body-link"><code>filter_value.image</code></a> intended for better display support for icons, logos, and other detailed imagery.  The <a href="https://shopify.dev/docs/api/liquid/objects/filter_value#filter_value-swatch" target="_blank" class="body-link"><code>filter_value.swatch</code></a> is intended for color and pattern swatches.</p>
<p>Merchants must use Shopify's <a href="https://apps.shopify.com/search-and-discovery" target="_blank" class="body-link">Search &amp; Discovery app</a> to set visual filters for their store.</p>
</div> ]]></description>
    <pubDate>Wed, 01 May 2024 14:45:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/image-and-swatch-presentations-for-product-filters</link>
  </item>
  <item>
    <title>ShopifyQL Admin GraphQL API sunset</title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of Admin API and 2024-07 version, we're sunsetting <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/queries/shopifyqlQuery" target="_blank" class="body-link">ShopifyQL API</a>. Use the Admin <a href="https://shopify.dev/docs/api/admin-graphql" target="_blank" class="body-link">GraphQL APIs </a> instead for extracting data for your use-cases.</p>
<p>For example, the <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/orders" target="_blank" class="body-link">Orders API</a>, and the <a href="https://shopify.dev/docs/api/web-pixels-api" target="_blank" class="body-link">Web Pixels API</a> should be useful starting points.</p>
</div> ]]></description>
    <pubDate>Wed, 01 May 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/shopifyql-admin-graphql-api-sunset</link>
  </item>
  <item>
    <title>Translatable Default Values in Theme Settings Schema</title>
    <description><![CDATA[ <div class=""><p>Now, theme developers can utilize schema translation files to make default values in theme sections translatable. This ensures that themes are equipped to support multiple languages right from the onboarding state and when integrating new sections. For detailed guidance on how to reference schema translations, please refer to the <a href="https://shopify.dev/docs/themes/architecture/locales/schema-locale-files#reference-schema-translations" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Apr 2024 19:22:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/translatable-default-values-in-theme-settings-schema</link>
  </item>
  <item>
    <title>GraphQL Admin Files Query includes 3D Models and External Videos</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07, 3D Models and External Videos will be included in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/queries/files" target="_blank" class="body-link">GraphQL Admin Files Query</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Apr 2024 18:06:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-files-query-includes-3d-models-and-external-videos</link>
  </item>
  <item>
    <title>Mobile Platform Application release</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the GraphQL Admin API, we are introducing the <code>MobilePlatformApplication</code> resource. This new resource facilitates the development and operational integration of shared web credentials and app link systems for Shopify mobile applications on both iOS and Android platforms.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Apr 2024 13:01:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/mobile-platform-application-release</link>
  </item>
  <item>
    <title>Webhook `includeFields` now apply to all topics</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the webhooks API, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/WebhookSubscription#field-webhooksubscription-includefields" target="_blank" class="body-link">includeFields</a> that are specified on a webhook subscription will be available for all webhook topics.</p>
</div> ]]></description>
    <pubDate>Mon, 29 Apr 2024 14:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/webhook-includefields-now-apply-to-all-topics</link>
  </item>
  <item>
    <title>GraphQL Admin API: Support for metafield connections in online store objects</title>
    <description><![CDATA[ <div class=""><p>As of version <strong>2024-07</strong> of the GraphQL Admin API, you can use the <code>Metafield</code> and <code>MetafieldDefinition</code> connections in the <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/OnlineStoreArticle" target="_blank" class="body-link"><code>OnlineStoreArticle</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/OnlineStoreblog" target="_blank" class="body-link"><code>OnlineStoreBlog</code></a>, and <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/OnlineStorePage/" target="_blank" class="body-link"><code>OnlineStorePage</code> </a> objects. </p>
<p>Previously, you could only do this using the REST API.</p>
</div> ]]></description>
    <pubDate>Mon, 29 Apr 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-support-for-metafield-connections-in-online-store-objects</link>
  </item>
  <item>
    <title>GraphQL Admin API: `location` field removed from the `Order` object.</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-07</strong> the <code>location</code> field on the <code>Order</code> object has been removed. Use the <code>retailLocation</code> field instead.</p>
<p>Learn more about the Order object on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/Order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 26 Apr 2024 15:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-location-field-removed-from-the-order-object</link>
  </item>
  <item>
    <title>The `DiscountEffectInput` input object now accepts `amount` </title>
    <description><![CDATA[ <div class=""><p>The GraphQL Admin API's <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/input-objects/DiscountEffectInput" target="_blank" class="body-link"><code>DiscountEffectInput</code></a> input object now includes an <code>amount</code> field. This change is backported to version 2024-01.</p>
</div> ]]></description>
    <pubDate>Wed, 24 Apr 2024 17:57:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/the-discounteffectinput-input-object-now-accepts-amount</link>
  </item>
  <item>
    <title>GraphQL Admin API: `retailLocation` field added to `Order` object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-07</strong>, you can use the new <code>retailLocation</code> field on the <code>Order</code> object to query the physical location where a retail order is created or completed.</p>
<p>Learn more about the Order object on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/Order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 22 Apr 2024 09:10:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-retaillocation-field-added-to-order-object</link>
  </item>
  <item>
    <title>Update: New maximum value for gift cards</title>
    <description><![CDATA[ <div class=""><p>Effective May 15, 2024, a maximum value of $2,000USD (or equivalent in global currencies) has been added to gift card issuance. All versions of the Gift Card API will respond with an error for issued gift cards that exceed $2,000USD (or equivalent in global currencies) after this date. The purchase limit for gift card products will be $10,000USD (or equivalent in global currency).</p>
<p>To help you and Shopify merchants stay within this limit, we’ve introduced a <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/GiftCardConfiguration#field-giftcardconfiguration-issuelimit" target="_blank" class="body-link">new Gift Card Limits query</a> that returns the maximum value in any given currency.</p>
<p>This change will help keep Shopify merchants compliant with laws that apply to gift cards and help ensure they do not inadvertently violate them. The new maximum value will not affect gift cards issued before May 15, 2024.</p>
<p>Visit our <a href="https://help.shopify.com/en/manual/products/gift-card-products/faq#general-questions" target="_blank" class="body-link">Help Center</a> for more information.</p>
</div> ]]></description>
    <pubDate>Thu, 18 Apr 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/update-new-maximum-value-for-gift-cards</link>
  </item>
  <item>
    <title>App Bridge Performance Enhancements &amp; Potentially Breaking Changes</title>
    <description><![CDATA[ <div class=""><p>We are currently testing a feature that can halve load times for embedded Shopify apps using <a href="https://shopify.dev/docs/api/app-bridge-library#getting-started" target="_blank" class="body-link">App Bridge via script tag</a> and have found cases where apps break when they rely on an undocumented <code>name=&quot;app-iframe&quot;</code> property to access their iframe</p>
<p>If your app uses the <code>name=&quot;app-iframe&quot;</code> property to find its embedded app iframe, please either <a href="https://shopify.dev/docs/api/app-bridge/migration-guide" target="_blank" class="body-link">upgrade to App Bridge React v4</a> or reference the snippet below (<a href="https://gist.github.com/iwoodruff/7744574bd96a26526bfb30327d3934ad" target="_blank" class="body-link">gist here</a> for reference) to avoid your app breaking in mid May when we begin rolling out these performance enhancements</p>
<p>The performance enhancement works by keeping multiple app iframes in the DOM at any given time. The <code>name=”app-iframe”</code> prop will no longer be unique</p>
<pre><code class="language-typescript">const APP_ID = ''; // accessible via window.shopify.config.apiKey


interface FrameList extends Window {
   [index: number]: Window;
}


function findAppFrameSafely(frameName: string) {
   if (window.parent) {
       const frames = window.parent.frames as FrameList;
       for (let i = 0; i &lt; frames.length; i++) {
           const frame = frames[i];
           try {
               // referencing the name prop of a cross-origin frame will throw when there are multiple frames with the same name
               if (frame.name === frameName) {
                   return frame;
               }
           } catch (_) {
               // noOp
           }
       }
   }
}


const legacyFrameName_doNotUse = 'app-iframe';
const futureProofFrameName = `frame:${APP_ID}/main`;


const appFrame = findAppFrameSafely(legacyFrameName_doNotUse) || findAppFrameSafely(futureProofFrameName);


// continue doing whatever you were doing with the app's main frame
appFrame?.postMessage({}, window.location.origin);
</code></pre>
<ul>
<li>Where <code>APP_ID</code> is your app’s apiKey, either provided during config or accessible on <code>window.shopify.config.apiKey</code></li>
<li>Your app’s iframes are same-origin while other apps’ iframes will be cross origin. The <code>try / catch</code> finds only same-origin frames, in this case, your app’s iframe</li>
<li>To be future proof, also use the unique <code>name=”frame:${APP_ID}/main”</code>. At the close of this project, app iframe names will be changed from the static <code>name=”app-iframe”</code> to a unique identifier pivoting on <code>APP_ID</code>. Please accommodate this new pattern now so your app doesn’t break when we update names!</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 17 Apr 2024 13:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-bridge-performance-enhancements-potentially-breaking-changes</link>
  </item>
  <item>
    <title>Shopify CLI is now unified for app, theme, and Hydrogen development</title>
    <description><![CDATA[ <div class=""><p>As of <a href="https://github.com/Shopify/cli/releases/tag/3.59.0" target="_blank" class="body-link">Shopify CLI 3.59</a>, commands have been unified under a single npm package and our recommended installation method is as a global npm package. This provides developers with a single installation and upgrade point for all development with Shopify CLI.</p>
<p>Dependencies for Shopify CLI are now bundled into the package as well, reducing installation time and potential conflicts with developer dependencies.</p>
<p>Existing use of Shopify CLI as a local dependency in app and Hydrogen projects is still supported.</p>
<p>Learn more about installation in the new <a href="https://shopify.dev/docs/api/shopify-cli" target="_blank" class="body-link">centralized Shopify CLI documentation</a> and learn about <a href="https://shopify.dev/docs/apps/tools/cli/global-and-local-installation" target="_blank" class="body-link">migrating your app to use a global installation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 16 Apr 2024 13:35:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-cli-is-now-unified-for-app-theme-and-hydrogen-development</link>
  </item>
  <item>
    <title>InventoryItem Input Unification</title>
    <description><![CDATA[ <div class=""><p>Up to this point, you can send Inventory Item data in two places: through Product Variant mutations or on the InventoryItemUpdate mutation. Each of these places has a different input object type with very similar fields, with some keys showing up in one instead of the other.</p>
<p>As of Admin GraphQL API version 2024-07, these two input types are being unified. <code>InventoryItemInput</code> will now be the input object type on <code>inventoryItemUpdate</code> instead of <code>InventoryItemUpdateInput</code>.</p>
<p>At the same time the following fields were added on <code>InventoryItemInput</code>:</p>
<ul>
<li><code>sku</code></li>
<li><code>countryHarmonizedSystemCodes</code></li>
<li><code>countryCodeOfOrigin</code></li>
<li><code>provinceCodeOfOrigin</code></li>
</ul>
<!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->







</div> ]]></description>
    <pubDate>Mon, 15 Apr 2024 18:14:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/inventoryitem-input-unification</link>
  </item>
  <item>
    <title>Hydrogen April 2024 release</title>
    <description><![CDATA[ <div class=""><p>Hydrogen <a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402024.4.0" target="_blank" class="body-link">v2024.4.0</a> is out today. The April 2024 Hydrogen release contains several new features:</p>
<ul>
<li>Built-in Shopify analytics with an improved developer experience and support for third-party services</li>
<li>Vite support is now stable, providing hot-module reloading that’s up to 10 times faster</li>
<li>Improved tooling for SEO</li>
<li><code>env push</code> command to bulk upload environment variables is now stable</li>
<li>Customer Account API client to simplify authentication.</li>
<li>SSL tunneling functionality in the CLI.</li>
</ul>
<p>In addition to these new features, Hydrogen 2024.4.0 includes a range of updates, performance upgrades, and bug fixes.</p>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/april-2024" target="_blank" class="body-link">Hydrogen April 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Thu, 11 Apr 2024 20:41:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-april-2024-release</link>
  </item>
  <item>
    <title>Storefront API Cart now supports applying Gift Cards</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the GraphQL Storefront API, Cart supports adding and querying for Gift Cards.</p>
<p>Updating Gift Cards can be achieved in two ways:</p>
<ul>
<li>When creating a cart - adding the <a href="https://shopify.dev/docs/api/storefront/2024-07/input-objects/cartinput" target="_blank" class="body-link"><code>CartInput</code></a> <code>giftCardCodes</code> property.</li>
<li>After a cart is created - performing the <a href="https://shopify.dev/docs/api/storefront/2024-07/mutations/cartGiftCardCodesUpdate" target="_blank" class="body-link"><code>cartUpdateGiftCardCodes</code></a> mutation.</li>
</ul>
<p>You can also query the cart for applied Gift Cards using the <a href="https://shopify.dev/docs/api/storefront/2024-07/objects/Cart#field-cart-appliedgiftcards" target="_blank" class="body-link"><code>appliedGiftCards</code></a> property.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Apr 2024 13:01:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-now-supports-applying-gift-cards</link>
  </item>
  <item>
    <title>DraftOrderInput now accepts discountCodes and acceptAutomaticDiscounts.</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-07 of the GraphQL Admin API, DraftOrderInput now accepts discountCodes and acceptAutomaticDiscounts. These optional input fields will allow you to apply discount codes to a draft order and decide whether or not to accept automatic discounts during calculation.</p>
<p>Additionally, a new type field named DraftOrderPlatformDiscount has been added that describes details about how the platfom discount has been allocated across the draft order line items, the discount type, its name, and more.  </p>
<p>Learn more about DraftOrderPlatformDiscount on <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/input-objects/DraftOrderInput" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 08 Apr 2024 16:09:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/draftorderinput-now-accepts-discountcodes-and-acceptautomaticdiscounts</link>
  </item>
  <item>
    <title>Support for Plus merchants currently using products to represent additional fees or charges in checkout</title>
    <description><![CDATA[ <div class=""><p>We have released a feature for Plus merchants who</p>
<ul>
<li>Use products to represent additional fees or charges in checkout</li>
<li>Are currently using checkout.liquid to customize the order summary</li>
<li>Need a solution to continue doing so with checkout extensibility</li>
</ul>
<p><a href="https://help.shopify.com/en" target="_blank" class="body-link">Log into the Help Centre to connect with Plus Support</a> who can assist with requesting access for eligible Plus Merchants</p>
</div> ]]></description>
    <pubDate>Mon, 08 Apr 2024 13:20:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/support-for-plus-merchants-currently-using-products-to-represent-additional-fees-or-charges-in-checkout</link>
  </item>
  <item>
    <title>Query cash transactions for a Shopify POS cash tracking session</title>
    <description><![CDATA[ <div class=""><p>In version 2024-04 of the GraphQL Admin API, we <a href="https://shopify.dev/changelog/query-retail-cash-tracking-sessions-with-the-graphql-admin-api" target="_blank" class="body-link">exposed the cash tracking sessions</a> that are created by Shopify POS. As of version 2024-07, you can use the API to query the cash transactions that are associated with each cash tracking session. The new <code>cashTransactions</code> connection returns all of the cash order transactions that affected the amount in the cash drawer during a cash tracking session.</p>
<p>To learn more, see <a href="https://shopify.dev/docs/api/admin-graphql/2024-07/objects/CashTrackingSession#connection-ordertransactions" target="_blank" class="body-link"><em>CashTrackingSession</em> (<code>cashTransactions</code>)</a> in the GraphQL Admin API reference.</p>
</div> ]]></description>
    <pubDate>Fri, 05 Apr 2024 13:45:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/query-cash-transactions-for-a-shopify-pos-cash-tracking-session</link>
  </item>
  <item>
    <title>CartDiscountCode#code has been fixed to be case insensitive.</title>
    <description><![CDATA[ <div class=""><p><code>CartDiscountCode#code</code> has been corrected to be case insensitive. For example, providing the input <code>[&quot;DISCOUNT&quot;, &quot;dIsCoUnT&quot;, &quot;discount&quot;]</code> on <code>cartCreate</code> or <code>cartDiscountCodeUpdate</code> will return a cart payload with one <code>CartDiscountCode</code> with the <code>code</code> value set to <code>DISCOUNT</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 02 Apr 2024 18:01:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/cartdiscountcode-code-has-been-fixed-to-be-case-insensitive</link>
  </item>
  <item>
    <title>Expanded targets for Admin Action Extensions</title>
    <description><![CDATA[ <div class=""><p>You can now seamlessly integrate your app using <a href="https://shopify.dev/docs/apps/admin/admin-actions-and-blocks#admin-actions" target="_blank" class="body-link">admin action extensions</a> at many more locations in the Shopify admin. These include draft orders pages, abandoned checkouts pages, and variant pages. You can find the full list of targets in the <a href="https://shopify.dev/docs/api/admin-extensions/unstable/api/extension-targets" target="_blank" class="body-link">admin extension targets API reference</a>. </p>
<p>Learn how to create your first <a href="https://shopify.dev/docs/apps/admin/admin-actions-and-blocks/build-an-admin-action" target="_blank" class="body-link">admin action extension</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 21:37:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/expanded-targets-for-admin-action-extensions</link>
  </item>
  <item>
    <title>Cart checkoutChargeAmount returns amount before the discounts</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 the Storefront API field <code>Cart.cartCost.checkoutChargeAmount</code> will now return an estimated amount before taxes and discounts. In previous versions <code>Cart.cartCost.checkoutChargeAmount</code> was incorrectly returning the discounted cost.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 19:55:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/cart-checkoutchargeamount-returns-amount-before-the-discounts</link>
  </item>
  <item>
    <title>Preloaded Cart and Checkout Validation configuration in Admin UI extensions</title>
    <description><![CDATA[ <div class=""><p>We've added preloading of the Validation record and its metafields so that you can access them without the need of a <code>fetch</code> call. The Validation API will be gated by a new <code>read_validations</code> access scope in the near future, so you need to migrate to this new format for your extension to continue to work or the <code>fetch</code> call will start failing.</p>
<p>Learn more about Cart and Checkout Validation configuration on <a href="https://shopify.dev/docs/apps/checkout/validation/create-complex-validation-rules/build-ui" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 19:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/preloaded-cart-and-checkout-validation-configuration-in-admin-ui-extensions</link>
  </item>
  <item>
    <title>New sort options for fulfillment orders</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-04, you can use the new <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/enums/FulfillmentOrderSortKeys" target="_blank" class="body-link">sort options</a> in <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/queries/fulfillmentOrders" target="_blank" class="body-link">fulfillmentOrders</a> query.</p>
<ul>
<li><code>createdAt</code>: The date that the fulfillment order was created.</li>
<li><code>fulfillBy</code>: The date by which the fulfillment order should be fulfilled by the merchant.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 17:44:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-sort-options-for-fulfillment-orders</link>
  </item>
  <item>
    <title>New access scopes added to the Validation GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of today, the <code>read_validations</code> access scope will be required for the <code>validation</code> and <code>validations</code> queries. The <code>write_validations</code> access scope is required if you're using the <code>validationCreate</code>, <code>validationUpdate</code> or <code>validationDelete</code> mutations.</p>
<p>If you're building an extension for Cart and Checkout Validation configuration check our updated tutorial on <a href="https://shopify.dev/docs/apps/checkout/validation/create-complex-validation-rules/build-ui" target="_blank" class="body-link">Shopify.dev</a> to see how to update it so that you don't need the new access scope.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 17:31:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/new-access-scopes-added-to-the-validation-graphql-admin-api</link>
  </item>
  <item>
    <title>Unification of count fields</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-04</code>, fields that returned a count of resources will be removed and replaced with new count fields that have consistent API design and improved features.</p>
<h3>API design and naming</h3>
<p>Count fields are now standalone fields with a common naming pattern and their own arguments instead of being a field under a connection type.</p>
<p>Before:</p>
<pre><code class="language-graphql">query {
  products(first: 0) {
    totalCount
  }
}
</code></pre>
<p>After:</p>
<pre><code class="language-graphql">query {
  productsCount {
    count
  }
}
</code></pre>
<p>In the before example, the <code>products</code> connection field was overloaded with multiple behaviors (count and pagination) which caused confusion as to how, and if, arguments affected the resulting count.</p>
<p>With the new count fields, there's one clear behavior and it simplifies how field arguments affect the count.</p>
<h3>Return type</h3>
<p>Instead of varying <code>Int</code> or <code>UnsignedInt64</code> return type, all count fields now return a <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Count" target="_blank" class="body-link"><code>Count</code> object type</a> with <code>precision</code> and <code>count</code> fields.</p>
<h3>Precision</h3>
<p>The new <code>precision</code> field indicates if a server limit was reached such that we returned early, reporting that there were &quot;at least&quot; n records.</p>
<p>For example, counting the number of products has a server limit of <code>10,000</code>. If there were <code>42</code> products, the count object would look like <code>{ count: 42, precision: &quot;EXACT&quot; }</code>. If there were <code>10,042</code> products, the count object would look like <code>{ count: 10000, precision: &quot;AT_LEAST&quot; }</code></p>
<h3>Filtering</h3>
<p>Some count fields will now accept filter arguments matching that of a neighboring connection, such as <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/products" target="_blank" class="body-link"><code>products</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/productsCount" target="_blank" class="body-link"><code>productsCount</code></a>. </p>
<h3>Migration</h3>
<ul>
<li><code>CatalogConnection.totalCount</code> --&gt; <code>CompanyLocation.catalogsCount</code>, <code>Market.catalogsCount</code>, <code>QueryRoot.catalogsCount</code></li>
<li><code>Collection.availablePublicationCount</code> --&gt; <code>Collection.availablePublicationsCount</code></li>
<li><code>Collection.productsCount</code> --&gt; <code>Collection.productsCount</code></li>
<li><code>Collection.publicationCount</code> --&gt; <code>Collection.resourcePublicationsCount</code></li>
<li><code>Company.contactCount</code> --&gt; <code>Company.contactsCount</code></li>
<li><code>Company.locationCount</code> --&gt; <code>Company.locationsCount</code></li>
<li><code>Company.orderCount</code> --&gt; <code>Company.ordersCount</code></li>
<li><code>CompanyLocation.orderCount</code> --&gt; <code>CompanyLocation.ordersCount</code></li>
<li><code>CompanyLocationCatalog.companyLocationsCount</code> --&gt; <code>CompanyLocationCatalog.companyLocationsCount</code></li>
<li><code>CustomerJourneySummary.momentsCount</code> --&gt; <code>CustomerJourneySummary.momentsCount</code></li>
<li><code>DeliveryLocationGroup.locationsCount</code> --&gt; <code>DeliveryLocationGroup.locationsCount</code></li>
<li><code>DeliveryProfile.productVariantsCount</code> --&gt; <code>DeliveryProfile.productVariantsCount</code></li>
<li><code>DeliveryProfile.productVariantsCountV2</code> --&gt; <code>DeliveryProfile.productVariantsCount</code></li>
<li><code>DiscountCodeApp.codeCount</code> --&gt; <code>DiscountCodeApp.codesCount</code></li>
<li><code>DiscountCodeBasic.codeCount</code> --&gt; <code>DiscountCodeBasic.codesCount</code></li>
<li><code>DiscountCodeBxgy.codeCount</code> --&gt; <code>DiscountCodeBxgy.codesCount</code></li>
<li><code>DiscountCodeFreeShipping.codeCount</code> --&gt; <code>DiscountCodeFreeShipping.codesCount</code></li>
<li><code>FulfillmentOrderLocationForMove.availableLineItemsCount</code> --&gt; <code>FulfillmentOrderLocationForMove.availableLineItemsCount</code></li>
<li><code>FulfillmentOrderLocationForMove.unavailableLineItemsCount</code> --&gt; <code>FulfillmentOrderLocationForMove.unavailableLineItemsCount</code></li>
<li><code>InventoryItem.locationsCount</code> --&gt; <code>InventoryItem.locationsCount</code></li>
<li><code>PriceRule.discountCodesCount</code> --&gt; <code>PriceRule.discountCodesCount</code></li>
<li><code>Product.availablePublicationCount</code> --&gt; <code>Product.availablePublicationsCount</code></li>
<li><code>Product.mediaCount</code> --&gt; <code>Product.mediaCount</code></li>
<li><code>Product.publicationCount</code> --&gt; <code>Product.resourcePublicationsCount</code></li>
<li><code>Product.sellingPlanGroupCount</code> --&gt; <code>Product.sellingPlanGroupsCount</code></li>
<li><code>Product.totalVariants</code> --&gt; <code>Product.variantsCount</code></li>
<li><code>ProductBundleComponent.componentVariantsCount</code> --&gt; <code>ProductBundleComponent.componentVariantsCount</code></li>
<li><code>ProductBundleComponent.nonComponentVariantsCount</code> --&gt; <code>ProductBundleComponent.nonComponentVariantsCount</code></li>
<li><code>ProductComponentType.componentVariantsCount</code> --&gt; <code>ProductComponentType.componentVariantsCount</code></li>
<li><code>ProductComponentType.nonComponentVariantsCount</code> --&gt; <code>ProductComponentType.nonComponentVariantsCount</code></li>
<li><code>ProductConnection.totalCount</code> --&gt; <code>Channel.productsCount</code>, <code>Collection.productsCount</code>, <code>QueryRoot.productsCount</code></li>
<li><code>ProductVariant.sellingPlanGroupCount</code> --&gt; <code>ProductVariant.sellingPlanGroupsCount</code></li>
<li><code>Publishable.availablePublicationCount</code> --&gt; <code>Publishable.availablePublicationsCount</code></li>
<li><code>Publishable.publicationCount</code> --&gt; <code>Publishable.resourcePublicationsCount</code></li>
<li><code>QueryRoot.channelCount</code> --&gt; <code>QueryRoot.publicationsCount</code></li>
<li><code>QueryRoot.companyCount</code> --&gt; <code>QueryRoot.companiesCount</code></li>
<li><code>QueryRoot.discountCodeCount</code> --&gt; <code>QueryRoot.discountCodesCount</code></li>
<li><code>QueryRoot.giftCardsCount</code> --&gt; <code>QueryRoot.giftCardsCount</code></li>
<li><code>QueryRoot.publicationCount</code> --&gt; <code>QueryRoot.publicationsCount</code></li>
<li><code>QueryRoot.segmentCount</code> --&gt; <code>QueryRoot.segmentsCount</code></li>
<li><code>SellingPlanGroup.productCount</code> --&gt; <code>SellingPlanGroup.productsCount</code></li>
<li><code>SellingPlanGroup.productVariantCount</code> --&gt; <code>SellingPlanGroup.productVariantsCount</code></li>
<li><code>Shop.limitedPendingOrderCount</code> --&gt; <code>QueryRoot.pendingOrdersCount</code></li>
<li><code>Shop.pendingOrdersCount</code> --&gt; <code>QueryRoot.pendingOrdersCount</code></li>
<li><code>SubscriptionBillingCycleEditedContract.lineCount</code> --&gt; <code>SubscriptionBillingCycleEditedContract.linesCount</code></li>
<li><code>SubscriptionContract.lineCount</code> --&gt; <code>SubscriptionContract.linesCount</code></li>
<li><code>SubscriptionContractBase.lineCount</code> --&gt; <code>SubscriptionContractBase.linesCount</code></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/unification-of-count-fields</link>
  </item>
  <item>
    <title>Company and CompanyLocation metafields are now available in the Customer Account API</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, you now have read access to metafields on Company and CompanyLocation resources via the Customer Account API.</p>
<p>Learn more about the <code>Metafield</code> object on the GraphQL Customer Account API at <a href="https://shopify.dev/docs/api/customer/2024-04/objects/Metafield" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/company-and-companylocation-metafields-are-now-available-in-the-customer-account-api</link>
  </item>
  <item>
    <title>Metafield-linked product options</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 of the Admin GraphQL API, you can use the <code>productOptionsCreate</code>, <code>productCreate</code>, and <code>productOptionUpdate</code> mutations to create metafield-linked product options.</p>
<p>Metafield-linked product options are only available in Shopify taxonomy early access.</p>
<p><a href="https://shopify.dev/docs/api/admin/migrate/new-product-model/metafield-linked" target="_blank" class="body-link">Learn more about metafield-linked product options</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/metafield-linked-product-options</link>
  </item>
  <item>
    <title>New GraphQL product APIs that support up to 2048 variants now available in 2024-04</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, new GraphQL product APIs are now available in stable release.</p>
<p>These new APIs increase per-product variant support from our historical max of 100 to a new limit of 2048.</p>
<p>In addition to higher variant support, you can use the product option mutations to manage options and option values on your products. You can also query for your product's <code>productOptions</code> and your product variants' <code>optionValues</code>.</p>
<p>Learn more about the new product and option value GraphQL APIs on <a href="https://shopify.dev/docs/api/admin/migrate/new-product-model" target="_blank" class="body-link">Shopify.dev</a>. </p>
<p>Also included in this stable release, you can use the <code>productSet</code> mutation to set the entire state of a product from an external data source into Shopify, in addition to the existing mutations for adding/deleting/updating individual variants.</p>
<p>Learn more about the new <code>productSet</code> GraphQL API on <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/productSet" target="_blank" class="body-link">Shopify.dev</a>.</p>
<p>See our guide to <a href="https://shopify.dev/api/admin/migrate/new-product-model/sync-data" target="_blank" class="body-link">sync product data from an external source</a> for more information.</p>
<p><strong>With the 2024-04 API release, we will also be deprecating management of both  <code>variants</code> and <code>options</code> via the GraphQL <code>ProductInput</code> object and the <code>/products</code> and <code>/variants</code> REST API endpoints.</strong> <a href="https://shopify.dev/changelog/deprecation-timelines-related-to-new-graphql-product-apis" target="_blank" class="body-link">Learn more here</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-graphql-product-apis-that-support-up-to-2000-variants-now-available-in-2024-04</link>
  </item>
  <item>
    <title>Deprecation timelines related to new GraphQL product APIs</title>
    <description><![CDATA[ <div class=""><p>With the 2024-04 API release, along with the <a href="https://shopify.dev/changelog/new-graphql-product-apis-that-support-up-to-2000-variants-now-available-in-2024-04" target="_blank" class="body-link">introduction of the new GraphQL product APIs</a>, <strong>we are deprecating management of both the <code>variants</code> and <code>options</code> via the GraphQL <code>ProductInput</code> object  and have marked as deprecated the <code>/products</code> and <code>/variants</code> REST API endpoints.</strong></p>
<p>Below you can find migration information for public and custom apps built on existing GraphQL and REST product APIs.</p>
<p><strong>Public Apps</strong></p>
<p>All public apps built on existing GraphQL product APIs or REST product APIs must migrate to the <a href="https://shopify.dev/docs/api/admin/migrate/new-product-model" target="_blank" class="body-link">new GraphQL product APIs</a> by Feb 1st, 2025.</p>
<p><strong>Custom Apps</strong></p>
<p><strong>Custom apps built using the existing GraphQL product APIs</strong> must migrate to the <a href="https://shopify.dev/docs/api/admin/migrate/new-product-model" target="_blank" class="body-link">new GraphQL product APIs</a> by April 1st, 2025.</p>
<p><strong>Custom apps built on REST</strong> will also need to migrate if they end up needing to support more than 100 variants. </p>
<p><strong>Custom apps built on REST</strong> that do not need to support more than 100 variants can continue to use the deprecated REST product APIs, however it is important to note:</p>
<p>-Developers should expect that the GraphQL API will be the only supported API over the long term and will be made aware of these timelines as they become available.</p>
<p>-The deprecated REST product APIs are in maintenance mode; all new features and support will be built only for the new GraphQL product APIs.</p>
<p>-Any merchant using custom apps built with these deprecated APIs will not be able to increase their variant limit past 100. </p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 15:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/deprecation-timelines-related-to-new-graphql-product-apis</link>
  </item>
  <item>
    <title>ShippingLineInput now accepts priceWithCurrency</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2024-04</strong>, you can use <code>priceWithCurrency</code> to provide the price of the shipping rate along with the currency, whereas <code>price</code> uses the shop currency. If <code>priceWithCurrency</code> is provided, <code>price</code> will be ignored.</p>
<p>Learn more about <code>priceWithCurrency</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/input-objects/ShippingLineInput" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 14:10:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/shippinglineinput-now-accepts-pricewithcurrency</link>
  </item>
  <item>
    <title>Set LineItem attributes using CartTransform </title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, you can set LineItem attributes on Bundle items using <code>CartTransform</code> <a href="https://shopify.dev/docs/api/functions/reference/cart-transform#example-merge-operation" target="_blank" class="body-link"><code>Merge</code></a> and <a href="https://shopify.dev/docs/api/functions/reference/cart-transform#example-expand-operation" target="_blank" class="body-link"><code>Expand</code></a> operations.</p>
<p>You can set custom attributes to either the Bundle item or its components using the new field.</p>
<p>Learn more about Bundles on <a href="https://shopify.dev/docs/api/functions/reference/cart-transform" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 14:09:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/set-lineitem-attributes-using-carttransform</link>
  </item>
  <item>
    <title>Storefront API now supports per-market Fulfillable Inventory</title>
    <description><![CDATA[ <div class=""><p>As of  Storefront API version 2024-04, you can use the <code>@inContext</code> directive to query <code>product</code> and <code>productVariant</code> fulfillable inventory for specified market country. The <a href="https://help.shopify.com/en/manual/shipping/setting-up-and-managing-your-shipping/fulfillable-inventory" target="_blank" class="body-link">Fulfillable Inventory</a> feature must be enabled.</p>
<pre><code>query Contextualized @inContext(country:CA){
  product(id:&quot;gid://shopify/Product/1&quot; )
  {
        availableForSale
    	totalInventory
        variants(first:1)
        {
          edges
          {
            node
            {
              id
              availableForSale
              quantityAvailable
              currentlyNotInStock
  
            }
          }
        }
      }
}
</code></pre>
<p>Learn more about Fulfillable Inventory on <a href="https://help.shopify.com/en/manual/shipping/setting-up-and-managing-your-shipping/fulfillable-inventory" target="_blank" class="body-link">Shopify help docs</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/storefront-api-now-supports-per-market-fulfillable-inventory</link>
  </item>
  <item>
    <title>Fulfillment Orders Searching and Sorting by `updated_at` field</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04 developers can now sort and search Fulfillment Orders in GraphQL queries by the <code>UPDATED_AT</code> field.</p>
<p>This will help app developers and fulfillment services to prioritize their work on fulfillment orders and reduce the query cost when sorting and searching through other filters.</p>
<p>Learn more about sort and search parameters for fulfillment orders on <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/queries/fulfillmentOrders" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 13:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/fulfillment-orders-searching-and-sorting-by-updated_at-field</link>
  </item>
  <item>
    <title>Deprecation of Checkout APIs</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-04 the Checkout API’s will be marked as deprecated. This deprecation will impact both the <a href="https://shopify.dev/docs/api/admin-rest/2023-10/resources/checkout" target="_blank" class="body-link">Admin REST API</a> (excluding <a href="https://shopify.dev/docs/api/admin-rest/2023-10/resources/abandoned-checkouts" target="_blank" class="body-link">Abandoned Checkout</a>) and <a href="https://shopify.dev/docs/api/release-notes/2024-04" target="_blank" class="body-link">Storefront GraphQL API endpoints</a>. To maintain continuity and unlock new capabilities, apps will need to migrate to either the <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-storefront-api/cart" target="_blank" class="body-link">Storefront Cart API</a>, and or <a href="https://shopify.dev/docs/custom-storefronts/mobile-apps" target="_blank" class="body-link">Checkout Sheet Kit</a> for mobile apps.</p>
<h3>Deprecation Schedule:</h3>
<p><strong>April 1, 2024 (Version: <code>2024-04</code>)</strong>
All <a href="https://shopify.dev/docs/api/release-notes/2024-04#storefront-api-changes" target="_blank" class="body-link">affected fields</a> within the Checkout APIs will be marked as deprecated. This is the final stable version where the Checkout APIs will remain available. The fields will also be removed from <code>unstable</code> and the <code>2024-07</code> Release Candidate versions onwards. We strongly recommend you to start migrating to the new API when possible to avoid any disruptions.</p>
<p><strong>April 1, 2025 (Version: <code>2025-04</code>)</strong>
The <code>2024-04</code> API version will reach its end of life. As a result, Checkout mutations will no longer be available on any version.</p>
<p>Recognizing the need for a high throughput cart, Shopify introduced the Storefront Cart API in 2021 as the successor to the Checkout API, and we have been continually enriching it with new features. The Cart API offers improved performance, scalability, and a richer feature set including subscriptions, product bundles, and contextual pricing. Additionally, it integrates with Shopify's web checkout for further customization using Shopify Functions and UI extensions.</p>
<p>The Checkout Sheet Kit, compatible with Android, Swift, and React Native, streamlines mobile app development by integrating a fully-featured web checkout. This eliminates the need for a separate checkout build, reducing maintenance while preserving all customizations and business logic.</p>
<h3>Action Required:</h3>
<p>Follow the <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-storefront-api/cart/migrate-to-cart-api" target="_blank" class="body-link">Cart API Migration Guide</a> to update any application calling <a href="https://shopify.dev/docs/api/admin-rest/2023-10/resources/checkout" target="_blank" class="body-link">Admin REST API</a> or <a href="https://shopify.dev/docs/api/release-notes/2024-04" target="_blank" class="body-link">Storefront GraphQL API</a> checkout endpoints prior to <code>2025-04</code> to utilize the Cart API or Checkout Sheet Kit to avoid disruption. </p>
<p>If you have questions, please utilize the <a href="https://github.com/Shopify/storefront-api-feedback/discussions/225" target="_blank" class="body-link">feedback repository</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/deprecation-of-checkout-apis</link>
  </item>
  <item>
    <title>`receipt` removed from OrderTransaction GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2024-04</strong>, <code>OrderTransaction.receipt</code> will be removed from the Admin GraphQL API. The field has been deprecated since 2019-04 and is replaced by <code>OrderTransaction.receiptJson</code></p>
<p>Both fields contains the same data but in different formats. <code>receipt</code> was returning a Ruby hash formatted as a string, while <code>receiptJson</code> is returning JSON.  </p>
<p>Standardizing around JSON-formatted receipts will make it easier for developer to build consistent integrations and removing duplicate fields will simplify our API.</p>
<p>Learn more about the change in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/OrderTransaction" target="_blank" class="body-link">OrderTransaction GraphQL API documentation</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/receipt-removed-from-ordertransaction-graphql-admin-api</link>
  </item>
  <item>
    <title>Update note to be required in cartNoteUpdate</title>
    <description><![CDATA[ <div class=""><p>As part of the GraphQL Storefront API <strong>2024-04</strong> API release, we've updated the <code>cartNoteUpdate</code> API to make the <code>note</code> argument required.</p>
<p>Learn more about the <code>Cart</code> object on <a href="https://shopify.dev/api/storefront/unstable/objects/Cart#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/update-note-to-be-required-in-cartnoteupdate</link>
  </item>
  <item>
    <title>Removal of Customer order-related sort keys on Admin API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-04</strong>, the following Customer sort keys have been deprecated: <code>LAST_ORDER_DATE</code>, <code>ORDERS_COUNT</code>, <code>TOTAL_SPENT</code>. Ordering customers by these attributes is available when filtering customers using segments.</p>
<p>Learn more about customer segmentation on <a href="https://shopify.dev/docs/apps/marketing/customer-segments" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 12:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/removal-of-customer-order-related-sort-keys-on-admin-api</link>
  </item>
  <item>
    <title>Introducing metafieldsDelete</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, you can use the <code>metafieldsDelete</code> mutation to delete up to 25 metafields
at once. </p>
<p>Learn more about metafields on <a href="https://shopify.dev/docs/apps/custom-data/metafields" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:01:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/introducing-metafieldsdelete</link>
  </item>
  <item>
    <title>Inventory Mutations and Fields Removal</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2024-04, we are removing the following fields and mutations:
<br></p>
<ul>
<li><code>InventoryLevel.available</code></li>
</ul>
<br>
- `InventoryLevel.incoming`
<br>
- `InventoryLevel.deactivationAlertHtml`
<br>
- `Mutation.InventoryAdjustQuantity`
<br>
- `Mutation.InventoryBulkAdjustQuantityAtLocation`

<p>After building new fields to handle inventory quantities other than available, new fields and mutations that can handle all quantities were needed and released in 2023-01.</p>
<p><code>InventoryLevel.available</code> and <code>InventoryLevel.incoming</code> should be replaced with <code>InventoryLevel.quantities</code>.</p>
<p><code>InventoryLevel.deactivationAlertHtml</code> should be replaced with <code>InventoryLevel.deactivationAlert</code>.</p>
<p><code>Mutation.InventoryAdjustQuantity</code> and <code>Mutation.InventoryBulkAdjustQuantityAtLocation</code> should be replaced with <code>Mutation.InventoryAdjustQuantities</code> or <code>Mutation.InventoryMoveQuantities</code>.</p>
<p>For those still using these fields on <code>unstable</code>, they will continue to work until 2024-04 is no longer supported.</p>
<p>More information on how to use these new fields can be found <a href="https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/inventory-mutations-and-fields-removal</link>
  </item>
  <item>
    <title>New `inventory_management` boolean argument on `fulfillmentServiceUpdate`mutation</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04 version Admin GraphQL API, you can update <code>inventory_management</code> boolean value on the FulfillmentService object using the <a href="(https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/fulfillmentServiceUpdate" target="_blank" class="body-link">fulfillmentServiceUpdate mutation</a> .</p>
<p>Learn more about <code>inventory_management</code> argument  on <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/fulfillmentServiceUpdate" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-inventory_management-boolean-argument-on-fulfillmentserviceupdate-mutation</link>
  </item>
  <item>
    <title>New Create Fulfillment Request Validation</title>
    <description><![CDATA[ <div class=""><p>As of Admin version 2024-04  , there cannot be multiple of the same <code>fulfillment_order_id</code> within the <code>line_items_by_fulfillment_order</code> param for the REST  &quot;Creates a fulfillment for one or many fulfillment orders&quot; <a href="https://shopify.dev/docs/api/admin-rest/2024-01/resources/fulfillment#post-fulfillments" target="_blank" class="body-link">API</a> and GraphQL <code>fulfillmentCreateV2</code> <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/fulfillmentCreateV2" target="_blank" class="body-link">mutation</a>.</p>
<p>Please combine any payload with the same <code>fulfillment_order_id</code> into one group.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-create-fulfillment-request-validation</link>
  </item>
  <item>
    <title>Deprecation of the `fulfillmentService.fulfillmentOrdersOptIn` field</title>
    <description><![CDATA[ <div class=""><p>The <code>fulfillmentOrdersOptIn</code> field on the <code>FulfillmentService</code> GraphQL and REST API objects, along with the related mutations and endpoints, is being deprecated as the <a href="https://shopify.dev/changelog/serving-errors-on-a-fulfillment-orders-opt-out-fulfillment-service-creation-and-modification" target="_blank" class="body-link">migration to the Fulfillment Orders API</a> has been completed. All properly functioning fulfillment services now have the <code>fulfillmentOrdersOptIn</code> field set to <code>true</code>.</p>
<p>In the <code>2024-04</code> API version, the <code>fulfillmentOrdersOptIn</code> field becomes nullable and defaults to <code>true</code> in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/fulfillmentServiceCreate" target="_blank" class="body-link">fulfillmentServiceCreate</a> mutation and the <a href="https://shopify.dev/docs/api/admin-rest/2024-04/resources/fulfillmentservice#post-fulfillment-services" target="_blank" class="body-link">Create Fulfillment Service</a> REST endpoint. This field will be removed from the mutation input and the REST endpoint parameters in the subsequent API version (<code>2024-07</code>). To prepare for the <code>2024-07</code> API version release, stop supplying the <code>fulfillmentOrdersOptIn</code> parameter when creating a new fulfillment service.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/deprecation-of-the-fulfillmentservice-fulfillmentordersoptin-field</link>
  </item>
  <item>
    <title>Removal of `productDuplicateAsync` mutation from the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2024-04</strong>, we're removing the deprecated <code>productDuplicateAsync</code> mutation. The mutation was deprecated since <code>2023-07</code> version.</p>
<p>Use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/productDuplicateAsyncV2" target="_blank" class="body-link">productDuplicateAsyncV2</a> mutation instead.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/removal-of-productduplicateasync-mutation-from-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Adding additional value to FulfillmentOrderAssignmentStatus</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2024-04</code>, you can retrieve a subset of fulfillment orders which are assigned to locations owned by the app performing the request but have not been requested for fulfillment so far.</p>
<p>The <code>assignment_status</code> parameter in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/Shop#connection-shop-assignedfulfillmentorders" target="_blank" class="body-link">assignedFulfillmentOrders</a> query can now accept a value of <code>FULFILLMENT_UNSUBMITTED</code> for filtering in addition to the existing <code>FULFILLMENT_REQUESTED</code>, <code>FULFILLMENT_ACCEPTED</code>, and <code>CANCELLATION_REQUESTED</code> filter values.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/adding-additional-value-to-fulfillmentorderassignmentstatus</link>
  </item>
  <item>
    <title>New Storefront GraphQL APIs for B2B are available in 2024-04</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version <code>2024-04</code>, we are adding support for query contextualization for B2B buyers via the <code>@inContext</code> directive. This allows developers to query the products and prices a B2B buyer may have for a particular company location.</p>
<p>Developers will also be able to query associated volume pricing and quantity rules, and work with a Cart that is aware of B2B specific rules and pricing.</p>
<p>Developers will also be able to query a purchasing company associated with a cart.</p>
<p>Learn more about B2B on <a href="https://shopify.dev/docs/custom-storefronts/headless/b2b" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-storefront-graphql-apis-for-b2b-are-available-in-2024-04</link>
  </item>
  <item>
    <title>Customer APIs: Allow querying of customer subscription contracts</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-04</strong> release of the GraphQL Customer API, you can now query for a <a href="https://shopify.dev/docs/api/customer/2024-04/objects/Customer" target="_blank" class="body-link">customer's</a> subscription contracts using the <code>subscriptionContracts</code> or <code>subscriptionContract</code> fields.</p>
<p>This allows developers to query for all subscription contracts belonging to a customer, or to query for a specific subscription contract.</p>
<p>Learn more about querying for a customer's subscription contracts on <a href="https://shopify.dev/docs/api/customer/2024-04/objects/Customer" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/customer-apis-allow-querying-of-customer-subscription-contracts</link>
  </item>
  <item>
    <title>New Error codes and updated error code mapping for payment and billing</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, Added the following fields to the <code>SubscriptionBillingAttemptErrorCode</code> enum</p>
<ul>
<li><code>InsufficientFunds</code></li>
<li><code>PurchaseTypeNotSupported</code></li>
<li><code>Paypal Error</code></li>
<li><code>CardNumberIncorrect</code></li>
<li><code>FraudSuspected</code></li>
</ul>
<p>Additionally, the following payment error code mappings have changed:</p>
<ul>
<li>“Insufficient Funds” has been removed from “Invalid Payment Method” and now receives its own billing attempt error</li>
<li>“Pick up card” has been removed from “Payment Method Declined” and is now classified as “Fraud Suspected”</li>
<li>“Invalid Item Total” has been added to “Payment Method Declined”</li>
</ul>
<p>And the following codes from payment processors have changed:</p>
<ul>
<li><p><a href="https://developer.paypal.com/braintree/articles/control-panel/transactions/declines" target="_blank" class="body-link">Braintree</a></p>
<ul>
<li>2007 now maps to “Card Number Incorrect”</li>
<li>2014 now maps to “Fraud Suspected”</li>
<li>2105 now maps to “Transient Error”</li>
<li>2106 now maps to “Transient Error”</li>
<li>2107 now maps to “Invalid Payment Method”</li>
<li>2108 now maps to “Invalid Payment Method”</li>
</ul>
</li>
<li><p><a href="https://developer.paypal.com/api/nvp-soap/errors/" target="_blank" class="body-link">Paypal</a></p>
<ul>
<li>10417 now maps to “Paypal Error General”</li>
</ul>
</li>
<li><p><a href="https://docs.stripe.com/declines/codes" target="_blank" class="body-link">Stripe</a></p>
<ul>
<li>card_not_supported now maps to “Invalid Purchase Type”</li>
<li>invalid_account now maps to “Card Number Incorrect”</li>
<li>invalid_amount now maps to “Payment Method Declined”</li>
</ul>
</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-error-codes-and-updated-error-code-mapping-for-payment-and-billing</link>
  </item>
  <item>
    <title>[Checkout Branding API] New color schemes</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 of the Admin API, you can use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/checkoutBrandingUpsert" target="_blank" class="body-link"><code>checkoutBrandingUpsert</code></a> mutation to configure two new color schemes: <code>scheme3</code> and <code>scheme4</code>.</p>
<p>With this change, up to four color schemes can be configured and used in different sections.</p>
<p>Learn more about these new color chemes <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/input-objects/CheckoutBrandingColorSchemesInput" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/checkout-branding-api-new-color-schemes</link>
  </item>
  <item>
    <title>[Checkout Branding API] Initial release of header and footer style customizations</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 of the Admin API, you can use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/checkoutBrandingUpsert" target="_blank" class="body-link"><code>checkoutBrandingUpsert</code></a> mutation to configure styling for the header and footer of your checkout.</p>
<p>With this change, header and footer sections can now be customized with color and spacing controls.</p>
<p>You can learn more about customizable <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/input-objects/CheckoutBrandingHeaderInput" target="_blank" class="body-link">header</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/input-objects/CheckoutBrandingFooterInput" target="_blank" class="body-link">footer</a> in the GraphQL Admin API docs.</p>
<p>The new customizable fields are <code>colorScheme</code> and <code>padding</code>. </p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/checkout-branding-api-initial-release-of-header-and-footer-style-customizations</link>
  </item>
  <item>
    <title>Taxonomy API</title>
    <description><![CDATA[ <div class=""><p>Shopify has introduced a public product taxonomy, serving as an open-source, standardized, and global classification of products sold on Shopify. This taxonomy, composed of product categories, attributes, and attribute values, is utilized across Shopify and integrated with numerous marketplaces. You can view the latest product taxonomy on our <a href="https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=gid%3A%2F%2Fshopify%2FTaxonomy%2FCategory%2Fsg-4-17-2-17" target="_blank" class="body-link">taxonomy explorer</a>.</p>
<p>The new product taxonomy is now available in our public API with the 2024-04 release. This feature allows developers to navigate the taxonomy tree for categories, attributes, and values.</p>
<p>In order to support this change a number two existing APIs have been deprecated and replaced in favor of <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/Taxonomy#connection-categories" target="_blank" class="body-link"><code>queryRoot.taxonomy.categories</code></a></p>
<ul>
<li><code>queryRoot.productTaxonomy</code></li>
<li><code>queryRoot.productTaxonomyNodes</code></li>
</ul>
<p>Additionally the following changes have been made:</p>
<ul>
<li>The <code>ProductTaxonomyNode</code> type has been replaced with a <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/TaxonomyCategory" target="_blank" class="body-link"><code>TaxonomyCategory</code></a> type.</li>
<li>The <code>productCategory</code> field on <code>Product</code> has been deprecated and replaced by <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/Product#field-product-category" target="_blank" class="body-link"><code>category</code></a>. This field directly references the new <code>TaxonomyCategory</code> type.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2024 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/taxonomy-api</link>
  </item>
  <item>
    <title>Orders with payment terms no longer always include an `OrderTransaction` when created from a Draft Order</title>
    <description><![CDATA[ <div class=""><p>Orders with payment terms no longer always include an <code>OrderTransaction</code> when created from a Draft Order. Going forward, the <code>transactions</code> field on these Orders will be treated as an output that provides specific information about payments and other financial events related to the order, rather than as an implicit signal or side effect of creating an order from a draft. </p>
<p>If your app depends on implicit <code>OrderTransactions</code> that are added by creating an order from a draft, then you will need to switch to alternative options, for example recording payments or payment methods on an order to create an <code>OrderTransaction</code>.</p>
</div> ]]></description>
    <pubDate>Thu, 28 Mar 2024 16:04:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/orders-with-payment-terms-no-longer-always-include-an-ordertransaction-when-created-from-a-draft-order</link>
  </item>
  <item>
    <title>Introducing the new Pickup Points in early access - we want your feedback!</title>
    <description><![CDATA[ <div class=""><p>Introducing Pickup Points, a new Shopify Function that enables developers to build custom apps for Plus shops that offer pickup points in checkout to locations like post-offices and parcel lockers.</p>
<p>Developers can integrate third-party pickup locations from any network of their choice, customize delivery information based on business logic, and define location-based pricing.</p>
<p>Pickup Points is only available for Shopify Plus merchants.</p>
<p><strong>We want your feedback!</strong> Try Pickup Points early and share feedback that will directly guide development. To request access, contact us at <a href="mailto:pickup-point-generator-early-access@shopify.com" target="_blank" class="body-link">pickup-point-generator-early-access@shopify.com</a>.</p>
<p>Visit the <a href="https://shopify.dev/docs/api/functions/reference/pickup-point-delivery-option-generator" target="_blank" class="body-link">developer documentation</a> for more information.</p>
</div> ]]></description>
    <pubDate>Thu, 28 Mar 2024 13:30:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-new-pickup-points-in-early-access-we-want-your-feedback</link>
  </item>
  <item>
    <title>Plan-level trial configuration in the App Store app listing submission page</title>
    <description><![CDATA[ <div class=""><p>We are changing how trials can be configured on your app listing:</p>
<ul>
<li>Trials will now be plan-level rather than app-level</li>
<li>Free plans can no longer have a trial associated with them as they should not be time bound</li>
<li>The change applies to apps with recurring monthly/annual subscription plans</li>
<li>The change does not impact apps that are listed as completely free, or free to install</li>
</ul>
<p>This update gives you more control on how you market trials on the App Store.</p>
<p>Shopify has auto-filled the app-level trial data to each plan card based on the last app listing submission form configuration. Please update these default values in the app listing submission form if you have plans with different trial lengths. </p>
<p>There is a grace period before plan-level trial changes appear on Shopify App Store app listing pages, which will happen on April 29th. This grace period does not apply to other fields in your app listing submission form, which you can still edit and update in real-time. </p>
<p>To modify trial durations, manage your app’s listing in the Partners Dashboard under the Distribution tab. Learn more about configuring your app listing on <a href="https://shopify.dev/docs/apps/store/requirements#set-up-an-app-subscription-plan-with-recurring-charges" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 27 Mar 2024 19:28:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/plan-level-trial-configuration-in-the-app-store-app-listing-submission-page</link>
  </item>
  <item>
    <title>Introducing a new, guided app submission process</title>
    <description><![CDATA[ <div class=""><p>Get your apps published faster with our streamlined app review experience. It provides a clear, guided process that ensures you’ve checked off some key requirements before submitting and contextual guidance that reduces rework. You'll know exactly where you are in the process at a glance with actionable statuses that let you know what to expect next.</p>
<p>Learn more about the app submission process on <a href="https://shopify.dev/docs/apps/store/review/app-submission" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 27 Mar 2024 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/introducing-a-new-guided-app-submission-process</link>
  </item>
  <item>
    <title>Removal of deprecated tactics and add ability to query is_external</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, we are making it easier to use our External Marketing API by removing old deprecated values and exposing <code>is_external</code> as a value.</p>
<p><strong>Breaking Changes</strong></p>
<ul>
<li>The deprecated <code>follow_up</code>, <code>receipt</code>, <code>display</code>, <code>search</code>, <code>seo</code> and <code>direct</code> marketing tactics are being removed from the <code>2024-04</code> API version. See the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/enums/MarketingTactic" target="_blank" class="body-link">MarketingTactic documentation</a> for which tactics should be used instead.</li>
</ul>
<p><strong>Non-breaking Changes</strong></p>
<ul>
<li>The <code>is_external</code> attribute can be fetched in the <code>MarketingActivities </code>query to know if an activity was created and is managed by an external platform.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 26 Mar 2024 16:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/removal-of-deprecated-tactics-and-add-ability-to-query-is_external</link>
  </item>
  <item>
    <title>Network access for Shopify Functions is now available in early access</title>
    <description><![CDATA[ <div class=""><p>Network access for Shopify Functions is now available in early access. Primarily for merchants on Shopify for enterprise, this powerful new capability allows merchants to integrate Shopify with their own commerce ecosystem and fetch information from external services. </p>
<p>Network access is currently supported in early access on the following Shopify Functions:</p>
<ul>
<li>Cart and Checkout Validation</li>
<li>Local Pickup Delivery Option Generator</li>
<li>Pickup Point Delivery Option Generator</li>
</ul>
<p>To learn more about Network access for Shopify Functions, please refer to the <a href="https://shopify.dev/docs/apps/functions/input-output/network-access" target="_blank" class="body-link">documentation</a>. </p>
</div> ]]></description>
    <pubDate>Mon, 25 Mar 2024 18:30:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/network-access-for-shopify-functions-is-now-available-in-early-access</link>
  </item>
  <item>
    <title>REST API 2024-04 reports resource deprecation</title>
    <description><![CDATA[ <div class=""><p>As of REST API 2024-04, we’re deprecating the <a href="https://shopify.dev/docs/api/admin-rest/2024-01/resources/report" target="_blank" class="body-link">Reports resource</a>.</p>
<p>The REST API Reports resource used to create custom reports in analytics has been deprecated. You can still use previous, stable versions of the REST API to continue creating custom reports in admin for the time being.</p>
</div> ]]></description>
    <pubDate>Thu, 21 Mar 2024 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin REST API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/rest-api-2024-04-reports-resource-deprecation</link>
  </item>
  <item>
    <title>Product Feed variant images no longer fall back to product image</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-07, the variant image field in the <code>product_feed/incremental_sync</code> and <code>product_feed/full_sync</code> webhooks will no longer fall back to the product's first image when an image has not been explicitly set for the variant. Instead, no image will be returned.</p>
<p>If this change is undesirable for your use case, you can replicate the old behavior by assigning the first product image to the variant when it is null after receiving the webhook.</p>
</div> ]]></description>
    <pubDate>Thu, 21 Mar 2024 15:59:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-07</category>
    <link>https://shopify.dev/changelog/product-feed-variant-images-no-longer-fall-back-to-product-image</link>
  </item>
  <item>
    <title>Update on deprecation of unpublished apps</title>
    <description><![CDATA[ <div class=""><p>In May 2022, Shopify announced that <a href="https://shopify.dev/docs/apps/distribution?shpxid=3bc7a5f7-81A5-4A45-3DD0-A5930A85D9E9#deprecated-app-types" target="_blank" class="body-link">unpublished apps</a> would no longer be supported. To ensure merchant trust and security, all apps must now pass Shopify App Store review to guarantee the best app experience including branding, installation, onboarding, functionality, and quality. Developers with unpublished apps are required to take action by either converting them to public apps by meeting <a href="https://shopify.dev/docs/apps/store/requirements" target="_blank" class="body-link">Shopify App Store requirements</a> and submitting them to Shopify for review, or <a href="https://shopify.dev/docs/apps/store/success/support/sunsetting" target="_blank" class="body-link">sunsetting</a> their unpublished apps. </p>
<p>Impacted developers will receive an email outlining next steps, including the deadline to submit your apps for review. <a href="https://shopify.dev/docs/api/usage/versioning/updates#update-your-developer-contact-details" target="_blank" class="body-link">Please ensure your contact information is up to date</a>.</p>
<p>If your unpublished apps have not been submitted for review or sunset by the deadline, these apps will have their API access revoked and will be uninstalled from all merchant stores. Developers will be notified at least 60 days prior to any changes being made.</p>
<p>For more information, <a href="https://help.shopify.com/en/partners/faq/unpublished-app-deprecation" target="_blank" class="body-link">please visit our documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 21 Mar 2024 15:30:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/update-on-deprecation-of-unpublished-apps</link>
  </item>
  <item>
    <title>New timeout parameters for the Order Status Page</title>
    <description><![CDATA[ <div class=""><p>To enhance the security of merchant and customer information and provide additional protection for customer data, we’ve implemented <a href="https://shopify.dev/docs/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">level 2 protected customer data requirements</a> for partners and developers, alongside new timeout parameters and login requirements to the Order Status Page.</p>
<p>After an order is created, customers can access the Order Status Page without logging in for a limited timeframe and/or number of browser visits. After these timeout parameters have been reached, customers must provide credentials to access the Order Status Page, such as phone number, email address, order number, or by using passwordless login.</p>
<p>We recommend that partners and developers who send transactional SMS on behalf of merchants include the customer’s order number alongside any links to the Order Status Page.</p>
<p>Learn more about changes to the Order Status Page in our <a href="https://shopify.dev/docs/apps/customer-accounts/order-status-page" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 21 Mar 2024 15:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-timeout-parameters-for-the-order-status-page</link>
  </item>
  <item>
    <title>Validation mutation endpoints now include optional title attribute</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 of the GraphQL Admin API, a new optional field <code>title</code> has been added to <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/validationCreate" target="_blank" class="body-link"><code>validationCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/validationUpdate" target="_blank" class="body-link"><code>validationUpdate</code></a>. This will allow you to create multiple instances of the same Validation function where the unique <code>title</code> will help merchants easily differentiate between them.</p>
</div> ]]></description>
    <pubDate>Mon, 18 Mar 2024 21:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/validation-mutation-endpoints-now-include-optional-title-attribute</link>
  </item>
  <item>
    <title>New Location fields on GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 in the GraphQL Admin API, new fields <code>createdAt</code>, <code>updatedAt</code>, and <code>isFulfillmentService</code> have been added to the <code>Location</code> object.</p>
<p>Learn more about <code>Location</code> fields on the GraphQL Admin API at <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#fields" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 18 Mar 2024 13:38:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-location-fields-on-graphql-admin-api</link>
  </item>
  <item>
    <title>Level 2 protected customer data requirements are now needed to access the `order.statusPageUrl` field</title>
    <description><![CDATA[ <div class=""><p>We are requiring apps to meet Level 2 Protected Customer Data Requirements in order to acess the field <code>order.statusPageUrl</code> on the Admin GraphQL API and on the Admin REST API. 
This change is applicable to all API versions. We recognize that this may be a breaking change for some apps. However, this change is necessary to ensure the protection of customer data. </p>
<p>Learn more about Protected Customer Data, including the actions you need to take to enable existing apps to continue to have access to <code>order.statusPageUrl</code>  on <a href="https://shopify.dev/docs/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Mar 2024 19:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <link>https://shopify.dev/changelog/level-2-protected-customer-data-requirements-are-now-needed-to-access-the-order-statuspageurl-field</link>
  </item>
  <item>
    <title>`ui-save-bar` component added to the latest version of App Bridge</title>
    <description><![CDATA[ <div class=""><p>With the latest version of App Bridge, you can use the <code>ui-save-bar</code> component and the <code>SaveBar</code> React component to declaratively control the contextual save bar, including setting <code>loading</code> and <code>disabled</code> states of the Save and Discard buttons. Learn more about it in the <a href="https://shopify.dev/docs/api/app-bridge-library/web-components/ui-save-bar" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Mar 2024 17:24:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/ui-save-bar-component-added-to-the-latest-version-of-app-bridge</link>
  </item>
  <item>
    <title>Modal `src` attribute added to the latest version of App Bridge</title>
    <description><![CDATA[ <div class=""><p>With the latest version of App Bridge, you can use the <code>src</code> attribute with the <code>ui-modal</code> component and the <code>Modal</code> React component to display content from the provided URL. Learn more about it in the <a href="https://shopify.dev/docs/api/app-bridge-library/web-components/ui-modal#uimodalelement-propertydetail-src" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Mar 2024 17:02:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/modal-src-attribute-added-to-the-latest-version-of-app-bridge</link>
  </item>
  <item>
    <title>Query retail cash tracking sessions with the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04, you can use the GraphQL Admin API to query a shop's Shopify POS cash tracking sessions. The API returns cash tracking data for locations that have a Shopify POS Pro subscription</p>
<p>Below are some examples of the data that's available on the new <code>CashTrackingSession</code> type:</p>
<ul>
<li>Opening and closing times, and the staff member who performed each action</li>
<li>Adjustments to add or remove cash from the cash drawer, and the staff member who performed each action</li>
<li>Notes attached to the actions listed above</li>
<li>Aggregations, such as the total cash sales, total cash refunds, and the net cash sales that were processed during the cash tracking session</li>
<li>Discrepancies between the amount counted in the cash drawer and the amount expected</li>
</ul>
<p>To find out more, see <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/CashTrackingSession" target="_blank" class="body-link"><em>CashTrackingSession</em></a> in the GraphQL Admin API reference.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Mar 2024 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/query-retail-cash-tracking-sessions-with-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Swatches and images for product filters</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 of the Storefront API, you can use new attributes of the Filter and FilterValue objects to create <a href="https://help.shopify.com/en/manual/online-store/search-and-discovery/filters#visual-filters" target="_blank" class="body-link">visual filters</a> for your custom storefront.</p>
<p>We are adding <a href="https://shopify.dev/docs/api/storefront/2024-04/objects/FilterValue#field-filtervalue-swatch" target="_blank" class="body-link"><code>FilterValue.swatch</code></a> intended for color and pattern swatches and <a href="https://shopify.dev/docs/api/storefront/2024-04/objects/FilterValue#field-filtervalue-image" target="_blank" class="body-link"><code>FilterValue.image</code></a> for more detailed imagery. Use the new <a href="https://shopify.dev/docs/api/storefront/2024-04/objects/Filter#field-filter-presentation" target="_blank" class="body-link"><code>Filter.presentation</code></a> attribute to know the intended display of each filter.</p>
<p>Merchants must use Shopify's <a href="https://apps.shopify.com/search-and-discovery" target="_blank" class="body-link">Search &amp; Discovery app</a> to set visual filters for their store.</p>
</div> ]]></description>
    <pubDate>Thu, 14 Mar 2024 18:15:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/swatches-and-images-for-product-filters</link>
  </item>
  <item>
    <title>POS UI Extensions 1.7 Update: Support for multiple cart discounts</title>
    <description><![CDATA[ <div class=""><p>As of March 13, we added the following updates to POS UI Extensions: </p>
<ul>
<li>Added a <code>discounts</code> property to the Cart object, which includes all cart discounts.</li>
<li>Added <code>addCartCodeDiscount</code> to the Cart API, which allows the UI extension to add a code discount. The existing <code>applyCartDiscount</code> will still function for code discounts, too.</li>
<li>Added <code>remove AllDiscounts</code> to the Cart API, which allows the UI extension to remove all cart discounts.</li>
<li>Added a <code>listHeaderComponent</code> to the List component.</li>
</ul>
<p>All of the changes are available for POS UI extensions version 1.7.0 and POS app version 9.4.0. See the <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/versions" target="_blank" class="body-link">version log</a> for all version details.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Mar 2024 19:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-1-7-update-support-for-multiple-cart-discounts</link>
  </item>
  <item>
    <title>Field `isGiftCard` on all line item types</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version 2024-04, the <code>isGiftCard</code> field that was present on <code>DraftOrderLineItem</code> and <code>CalculatedDraftOrderLineItem</code> is now also present on:</p>
<ul>
<li><code>ExchangeCheckoutLineItem</code></li>
<li><code>ExchangeV2LineItem</code></li>
<li><code>LineItem</code></li>
<li><code>LineItemMutable</code></li>
</ul>
<p>It is now preferable to use this field to check whether a line item is a gift card instead of using the fulfillment service.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Mar 2024 18:02:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/field-isgiftcard-on-all-line-item-types</link>
  </item>
  <item>
    <title>New Shopify App Store apps require the latest App Bridge</title>
    <description><![CDATA[ <div class=""><p>As of March 13th, 2024, net new Shopify App Store apps must use the <a href="https://shopify.dev/docs/api/app-bridge-library#getting-started" target="_blank" class="body-link">latest Shopify App Bridge</a> by adding the <code>app-bridge.js</code> script tag to the <code>&lt;head&gt;</code> of each document of your app.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Mar 2024 15:52:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-shopify-app-store-apps-require-the-latest-app-bridge</link>
  </item>
  <item>
    <title>Customer Redaction support on Subscriptions APIs </title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of version 2024-04 of the Admin GraphQL API, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/subscriptionContractAtomicCreate" target="_blank" class="body-link">subscriptionContractAtomicCreate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/subscriptionContractCreate" target="_blank" class="body-link">subscriptionContractCreate</a> mutations will return a new error code <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/SubscriptionDraftErrorCode#value-customerredacted" target="_blank" class="body-link">CUSTOMER_REDACTED</a> when creating new subscription contracts for customers scheduled for redaction or have been redacted.</p>
<p>Learn more about customer redaction <a href="https://help.shopify.com/en/manual/customers/manage-customers#part-c3168705890cfe54" target="_blank" class="body-link">here</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 12 Mar 2024 15:42:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/customer-redaction-support-on-subscriptions-apis</link>
  </item>
  <item>
    <title>New filter value swatch drop available, replacing the deprecated filter value's display drop</title>
    <description><![CDATA[ <div class=""><p>You can now use a Liquid <a href="https://shopify.dev/docs/api/liquid/objects/swatch" target="_blank" class="body-link">swatch</a> drop to create <a href="https://help.shopify.com/en/manual/online-store/search-and-discovery/filters#visual-filters" target="_blank" class="body-link">visual filters</a> for your Online store themes.</p>
<p>The <a href="https://shopify.dev/docs/api/liquid/objects#filter_value_display" target="_blank" class="body-link">filter value display</a> drop is now considered deprecated in favour of <code>swatch</code>. The <code>display</code> drop will continue to function as it does today for backwards compatibility in merchants’ themes. </p>
</div> ]]></description>
    <pubDate>Tue, 12 Mar 2024 15:04:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Liquid</category>
    <link>https://shopify.dev/changelog/new-filter-value-swatch-drop-available-replacing-the-deprecated-filter-value-s-display-drop</link>
  </item>
  <item>
    <title>Delivery Groups now contain a group type</title>
    <description><![CDATA[ <div class=""><p>As of Storefront API's 2024-04 release, you can use <code>cart.deliveryGroups.groupType</code> to determine whether a delivery group represents a single delivery (<code>ONE_TIME_PURCHASE</code>) or is a recurring delivery (<code>SUBSCRIPTION</code>)</p>
</div> ]]></description>
    <pubDate>Mon, 11 Mar 2024 10:53:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/delivery-groups-now-contain-a-group-type</link>
  </item>
  <item>
    <title>More data available in the checkout_completed customer event</title>
    <description><![CDATA[ <div class=""><p>You can now collect the id of a customer within the order object of the checkout_completed customer event. This gives you more customer insights to improve marketing campaign targeting and analytics.</p>
<p>Learn more about the checkout_completed event in our <a href="https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed" target="_blank" class="body-link">developer documentation</a></p>
</div> ]]></description>
    <pubDate>Fri, 08 Mar 2024 21:03:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/more-data-available-in-the-checkout_completed-customer-event</link>
  </item>
  <item>
    <title>Clarifications in the Webhooks Reference docs</title>
    <description><![CDATA[ <div class=""><ul>
<li>Clarified webhooks-related terminology in the <a href="https://shopify.dev/docs/apps/webhooks#webhook-concepts" target="_blank" class="body-link">Webhooks Overview page</a> to make it easier to get started </li>
<li>Updated accuracy of <a href="https://shopify.dev/docs/apps/webhooks#limitations" target="_blank" class="body-link">Limitations</a> on webhook delivery guarantees</li>
<li>Updated technical implementation accuracy of <a href="https://shopify.dev/docs/apps/webhooks/best-practices#avoid-debounces" target="_blank" class="body-link">Avoiding debounces</a></li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 08 Mar 2024 20:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/clarifications-in-the-webhooks-reference-docs</link>
  </item>
  <item>
    <title>Hydrogen March 2024 release</title>
    <description><![CDATA[ <div class=""><p>Hydrogen <a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402024.1.3" target="_blank" class="body-link">v2024.1.3</a> is out today. The March 2024 Hydrogen release contains several new features:</p>
<ul>
<li>Hydrogen now includes <a href="https://hydrogen.shopify.dev/update/march-2024" target="_blank" class="body-link">experimental support for Vite</a>.</li>
<li>A new <code>env push__unstable</code> command to upload local environment variables to Oxygen from the command line</li>
<li>You can now get <a href="https://shopify.dev/docs/custom-storefronts/hydrogen/deployments/github#enable-deployment-pr-comments" target="_blank" class="body-link">comments on GitHub PRs</a> when Oxygen creates a preview deployment on your connected storefront.</li>
</ul>
<p>In addition to these new features, Hydrogen 2024.1.3 includes a range of updates, performance upgrades, and bug fixes, including an upgrade to Remix v2.8.</p>
<p>Check out our full <a href="https://hydrogen.shopify.dev/update/march-2024" target="_blank" class="body-link">Hydrogen March 2024 release blog post</a> for more details. And please drop your comments, feedback, and suggestions in <a href="https://github.com/Shopify/hydrogen/discussions" target="_blank" class="body-link">GitHub Discussions</a>!</p>
</div> ]]></description>
    <pubDate>Thu, 07 Mar 2024 18:30:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hydrogen-march-2024-release</link>
  </item>
  <item>
    <title>App submissions now require a screencast demo</title>
    <description><![CDATA[ <div class=""><p>Developers must create a video demo that illustrates how to use their app, as a now mandatory requirement for submission.</p>
<p>New apps that are in a Draft status will be asked to provide this prior to submitting for initial review. Submitted apps that are already in initial review may be asked to provide one before they can be published. Published apps that become Delisted may be asked to provide one before they can become published again.</p>
<p>This requirement will substantially help our review team to understand app flows and functionality during testing, and will speed up the review process.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Mar 2024 17:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-submissions-now-require-a-screencast-demo</link>
  </item>
  <item>
    <title>Return Sales and Exchange APIs</title>
    <description><![CDATA[ <div class=""><p>Returns will now create corresponding Sales entries.</p>
<p>As of 2024-04, SalesAgreements made as part of a return will have the type ReturnAgreement. The OrderActionType enum can have a type of RETURN.</p>
<p>As of 2024-04, the SaleLineType enum can now have a type of FEE. Fees can be of the type RestockingFee or ReturnShippingFee, representing corresponding fees on a return. </p>
<p>Any Admin API consumers of OrderActionType or SaleLineType will need to accept this new enum value. Previous versions of the Admin API will show these values as &quot;UNKNOWN&quot;.</p>
<p>You can now view ExchangeLineItems on their associated return. This provides context on returns that will be resolved with an exchange.</p>
<p>A new webhook &quot;returns/update&quot; has been added. This webhook will fire when fees or line items on a return are modified or removed. All returns webhooks will now display restock and shipping fees, as well as exchange line items.</p>
<p>Dispositions can no longer be created for canceled reverse fulfillment orders. This will result in the new error code INVALID_STATE.</p>
<p>Restocking returned items in the Admin will now create <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/ReverseFulfillmentOrderDisposition" target="_blank" class="body-link"><code>ReverseFulfillmentOrderDisposition</code>s</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Mar 2024 15:14:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/return-sales-and-exchange-apis</link>
  </item>
  <item>
    <title>Inventory Item new fields and ProductVariant deprecations</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API 2024-04, there will be new fields exposed on <code>InventoryItem</code> (and related input types) and some fields on <code>ProductVariant</code> (and related input types) that were marked as deprecated.</p>
<p>For <code>InventoryItem</code> and related input types:</p>
<ul>
<li><code>InventoryItemMeasurement</code> and <code>InventoryItemMeasurementInput</code> were added as new types, with a single field: <code>weight</code> (which is a <code>Weight</code> type).</li>
<li><code>measurement</code> was added as a field to <code>InventoryItem</code>.</li>
<li><code>harmonizedSystemCode</code>, <code>measurement</code>, and <code>requiresShipping</code> were all added as input fields to <code>InventoryItemInput</code>.</li>
</ul>
<p>For <code>ProductVariant</code> and related input types:</p>
<ul>
<li><code>fulfillmentServiceEditable</code>, <code>weight</code>, and <code>weightUnit</code> were all marked as deprecated on <code>ProductVariant</code>.</li>
<li><code>harmonizedSystemCode</code>, <code>requiresShipping</code>, <code>weight</code>, and <code>weightUnit</code> were all marked as deprecated on <code>ProductVariantInput</code> and <code>ProductVariantBulkInput</code>.</li>
</ul>
<p>These changes are all in support of removing long-deprecated fields on <code>ProductVariant</code> and removing the duplicated fields between <code>ProductVariant</code> and <code>InventoryItem</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Mar 2024 19:11:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/inventory-item-new-fields-and-productvariant-deprecations</link>
  </item>
  <item>
    <title>Introducing category page ads on the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Developers can now generate even more demand for their apps by showcasing them on the category and subcategory pages of the Shopify App Store.</p>
<p>Learn more about category page ads on <a href="https://shopify.dev/docs/apps/store/advertising" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Mar 2024 18:15:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-category-page-ads-on-the-shopify-app-store</link>
  </item>
  <item>
    <title>Filter product media by media_type</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, you can filter the results returned by the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/Product#connection-product-media" target="_blank" class="body-link">Product.media</a> connection to a specific <code>media_type</code>.</p>
<p>Using the <code>Product.media</code> connection enables you to retrieve all the media that's associated with a product including images, video, and 3D models or filtering to a specific <code>media_type</code> such as <code>IMAGE</code>. We recommend that developers migrate their apps from the <code>Product.images</code> connection to <code>Product.media</code>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Mar 2024 15:31:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/filter-product-media-by-media_type</link>
  </item>
  <item>
    <title>Add and remove shipping lines with new mutations on the order editing API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2024-04</code>, you can add new shipping lines or remove existing shipping lines when editing an order. You can also continue to query removed shipping lines.</p>
<p>The mutation <code>orderEditAddShippingLine</code> allows you to add a new, custom shipping line to an existing order.
The mutation <code>orderEditRemoveShippingLine</code> allows you to remove existing shipping lines from an order.
The mutation <code>orderEditUpdateShippingLine</code> allows you to update the attributes of a newly added shipping line before committing the order edit. 
The new field <code>shippingLine.isRemoved</code> allows you to determine whether a shipping line has been removed. 
The new parameter <code>includeRemovals</code> on the connection <code>order.shippingLines</code> allows you to query removed shipping lines. The default value for this parameter is false, so removed shipping lines will not be returned by default. </p>
<p>For REST API users, removed shipping lines will continue to be returned in the payload of the Order resource. As of API version <code>2024-04</code>, you can determine whether a shipping line has been removed by checking the value of the new attribute <code>is_removed</code>. </p>
<p>For consumers of Order webhooks, removed shipping lines will also continue to be returned in the payload. As of API version <code>2024-04</code>, the payload for shipping lines will have a new key <code>is_removed</code>. You can consume the <code>order/edit</code> webhook to be notified when shipping lines have been added or removed from an order. </p>
<p>For more information about editing shipping lines, visit the tutorial on <a href="https://shopify.dev/docs/apps/fulfillment/order-management-apps/order-editing" target="_blank" class="body-link">editing an existing order with the Admin API</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 29 Feb 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/add-and-remove-shipping-lines-with-new-mutations-on-the-order-editing-api</link>
  </item>
  <item>
    <title>OrderPaymentStatus Now Exposes Related Order Transactions</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, you can now query the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/OrderPaymentStatus" target="_blank" class="body-link">OrderPaymentStatus</a> object to obtain information about its corresponding <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/OrderPaymentStatus#field-orderpaymentstatus-transactions" target="_blank" class="body-link">transactions</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 28 Feb 2024 20:56:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/orderpaymentstatus-now-exposes-related-order-transactions</link>
  </item>
  <item>
    <title>New amount field on the OrderCreateMandatePayment Mutation</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, you can specify custom amounts to be charged from a vaulted card through the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/orderCreateMandatePayment" target="_blank" class="body-link">OrderCreateMandatePayment</a> mutation for Shopify Plus merchants.</p>
</div> ]]></description>
    <pubDate>Wed, 28 Feb 2024 19:07:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-amount-field-on-the-ordercreatemandatepayment-mutation</link>
  </item>
  <item>
    <title>New transactionVoid Mutation</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 of the Admin GraphQL API, you can now void a transaction through the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/transactionVoid" target="_blank" class="body-link">transactionVoid</a> mutation.</p>
</div> ]]></description>
    <pubDate>Wed, 28 Feb 2024 14:11:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-transactionvoid-mutation</link>
  </item>
  <item>
    <title>Defer Directive for Storefront API is now available in developer preview </title>
    <description><![CDATA[ <div class=""><p>The <a href="https://github.com/graphql/graphql-wg/blob/main/rfcs/DeferStream.md" target="_blank" class="body-link">@defer directive</a> is now available in developer preview, allowing developers to prioritize part of a GraphQL query without having to make multiple requests to fetch the remaining information. Clients can make a single request and data will be received in a stream of responses. </p>
<p>This developer preview will guide our decision on the inclusion of this directive in the Storefront API. It will also provide insights into whether clients can effectively support the @defer directive in their implementations, as we are planning the introduction of fields that require mandatory use of @defer.</p>
<p>Test out the defer directive today by <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-storefront-api/defer" target="_blank" class="body-link">enabling the developer preview and following our tutorial </a>. We value your input, please share your <a href="https://github.com/Shopify/storefront-api-feedback/discussions/234" target="_blank" class="body-link">feedback on Github.</a></p>
</div> ]]></description>
    <pubDate>Wed, 28 Feb 2024 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Storefront GraphQL API</category>
    <link>https://shopify.dev/changelog/defer-directive-for-storefront-api-is-now-available-in-developer-preview</link>
  </item>
  <item>
    <title>App Bridge React v4 released</title>
    <description><![CDATA[ <div class=""><p>React developers can start using the <a href="https://www.npmjs.com/package/@shopify/app-bridge-react" target="_blank" class="body-link">App Bridge React v4</a> via NPM.  This optional NPM package works with the <a href="https://shopify.dev/docs/api/app-bridge-library#getting-started" target="_blank" class="body-link">required App Bridge library</a> loaded via the <code>&lt;script&gt;</code> tag.  </p>
<p>For those already using App Bridge React v3 or lower, please refer to the <a href="https://shopify.dev/docs/api/app-bridge/migration-guide" target="_blank" class="body-link">migration guide</a> for how to upgrade.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Feb 2024 23:12:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-bridge-react-v4-released</link>
  </item>
  <item>
    <title>`lineItem.discountedTotalSet` can optionally include code based discounts</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-04 version of the GraphQL Admin API, you can use the new argument <code>withCodeDiscounts</code> on the <code>order.lineItem.discountedTotalSet</code> field to include or exclude line item discounts originating from a discount code. The current behaviour of <code>discountedTotalSet</code> is to exclude code based discounts and as such, the default value for this option is <code>false</code> so there will be no change required for clients who want to continue to have them excluded.</p>
<p>See the documentation for <code>discountedTotalSet</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/LineItem#field-lineitem-discountedtotalset" target="_blank" class="body-link">Shopify.dev</a>. The argument is already available on the <code>unstable</code> Admin API.</p>
</div> ]]></description>
    <pubDate>Fri, 23 Feb 2024 20:58:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/lineitem-discountedtotalset-can-optionally-include-code-based-discounts</link>
  </item>
  <item>
    <title>Return mutation will update sales (previously unchanged until time of Refund)</title>
    <description><![CDATA[ <div class=""><p>As of February 20, 2024, the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate" target="_blank" class="body-link"><code>returnCreate</code> mutation</a> and the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/returnApproveRequest" target="_blank" class="body-link"><code>returnApproveRequest</code> mutation</a> will create <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/SaleActionType#value-return-return" target="_blank" class="body-link">return sales</a> on the order. Each returned item will create a <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/SaleLineType#value-product-product" target="_blank" class="body-link"><code>product</code> type</a> return sale. Previously, these mutations did not create sales.</p>
<p>This new behavior is applied to all non-Plus merchants, and Plus merchants who have enabled Exchanges capabilities using Test Drive. <a href="https://help.shopify.com/manual/organization-settings/test-drive" target="_blank" class="body-link">Learn more about feature test drives in our Shopify help docs</a> </p>
<p>To keep track of line item or value changes to the order due to returns, we will soon provide more information on subscribing to enhanced Return related webhooks. Stay tuned for these details.</p>
<p>###Related changes</p>
<p>####Return fees as <code>RETURN</code> type
When a merchant adds return fees to a return using the admin, return fees will show up as a <code>RETURN</code> <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/OrderActionType" target="_blank" class="body-link"><code>OrderActionType</code></a> on a <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/interfaces/salesagreement" target="_blank" class="body-link"><code>SalesAgreement</code></a>.      </p>
<p>####<code>LineItem.currentQuantity</code> and <code>LineItem.refundableQuantity</code> definition changes</p>
<p>Previously, both LineItem.currentQuantity and LineItem.refundableQuantity returned identical numbers. They represented the total quantity of the line item minus the quantity that had been removed.</p>
<p>The definitions of these properties have been updated:  </p>
<ul>
<li><code>LineItem.currentQuantity</code>: This property now considers returns that are in progress, even if they haven't been refunded yet. CurrentQuantity will now be the line item's total quantity minus the removed or returned quantity.   </li>
<li><code>LineItem.refundableQuantity</code>: It now represents the line item's total quantity minus the refunded quantity, not the removed quantity. This indicates the quantity of line items that are available for a refund, including items in a return.</li>
</ul>
<p>These changes affect all currently supported APIs (GraphQL, REST, liquid, etc.)        </p>
<p>####Use ReturnRefund when refunding a return line
Use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/returnRefund" target="_blank" class="body-link"><code>returnRefund</code></a>GraphQL mutation when refunding a line item on a return to guarantee accurate sales ledger entries. We strongly encourage developers to migrate away from using <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/refundCreate" target="_blank" class="body-link"><code>refundCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-rest/2024-01/resources/refund#post-orders-order-id-refunds" target="_blank" class="body-link">POST refund</a> to refund return line items due to potential inaccuracies in the sales ledger due to both returns and refunds producing <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/SaleLineType#value-product-product" target="_blank" class="body-link"><code>product</code> type</a> return sales. </p>
</div> ]]></description>
    <pubDate>Tue, 20 Feb 2024 15:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/return-mutation-will-update-sales-previously-unchanged-until-time-of-refund</link>
  </item>
  <item>
    <title>POS UI Extensions 1.6 Update: Banner on CameraScanner and paginated variant fetching</title>
    <description><![CDATA[ <div class=""><p>As of February 15, we added the following updates to POS UI Extensions: </p>
<ul>
<li>Added optional <code>bannerProps</code> to the CameraScanner component, which allows the UI extension to surface banners within the context of the CameraScanner.</li>
<li>Added <code>fetchPaginatedProductVariantsWithProductId</code> to the ProductSearch API, which allows the UI extension to fetch pages of variants for a product by ID.</li>
</ul>
<p>All of the changes are available for POS UI extensions version 1.6.0 and POS app version 9.2.0. See the <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/versions" target="_blank" class="body-link">version log</a> for all version details.</p>
</div> ]]></description>
    <pubDate>Thu, 15 Feb 2024 19:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-1-6-update-banner-on-camerascanner-and-paginated-variant-fetching</link>
  </item>
  <item>
    <title>Product duplication now duplicates variant metafields</title>
    <description><![CDATA[ <div class=""><p>Product duplication now includes variant metafields. Previously, variant metafields were ignored when products were duplicated. Products can be duplicated via <a href="https://help.shopify.com/en/manual/sell-in-person/shopify-pos/inventory-management/products/duplicate-product" target="_blank" class="body-link">admin</a> or <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/productDuplicate" target="_blank" class="body-link">GraphQL</a></p>
</div> ]]></description>
    <pubDate>Wed, 14 Feb 2024 19:55:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/product-duplication-now-duplicates-variant-metafields</link>
  </item>
  <item>
    <title>Deprecation of Order Risk APIs and Introduction of Risk Assessments API</title>
    <description><![CDATA[ <div class=""><p>Starting from April 2024, the Order risk REST and GraphQL APIs are deprecated:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-rest/2024-04/resources/order-risk" target="_blank" class="body-link">admin-rest / order-risk</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/Order#field-order-risks" target="_blank" class="body-link">admin-graphql / field-order-risks</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/Order#field-order-risklevel" target="_blank" class="body-link">admin-graphql / field-order-riskLevel</a></li>
</ul>
<p>Clients are advised to use the new <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/OrderRiskAssessment" target="_blank" class="body-link">Risk Assessments API</a> instead:</p>
<p>To create assessments, you can now use the new mutation <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/orderRiskAssessmentCreate" target="_blank" class="body-link">orderRiskAssessmentCreate</a>.</p>
<p>Additionally, a new webhook topic is available: <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/enums/WebhookSubscriptionTopic#value-ordersriskassessmentchanged-ordersriskassessmentchanged" target="_blank" class="body-link">ORDERS_RISK_ASSESSMENT_CHANGED</a></p>
</div> ]]></description>
    <pubDate>Mon, 12 Feb 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>Admin GraphQL API</category>
    <category>Admin REST API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/deprecation-of-order-risk-apis-and-introduction-of-risk-assessments-api</link>
  </item>
  <item>
    <title>New `additionalInformation` object argument on `fulfillmentOrder` query</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-04 of the Admin GraphQL API, you can read the <code>additionalInformation</code> object value on the <code>deliveryMethod</code> object using the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/queries/fulfillmentOrder" target="_blank" class="body-link"><code>fulfillmentOrder</code> query</a> .</p>
<p>Learn more about <code>additionalInformation</code> argument on <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/DeliveryMethod" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 06 Feb 2024 20:50:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>Admin GraphQL API</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/new-additionalinformation-object-argument-on-fulfillmentorder-query</link>
  </item>
  <item>
    <title>Store Credit Primitive and API now available in developer preview</title>
    <description><![CDATA[ <div class=""><p>Help merchants with post-purchase customer service by enabling them to issue, track, and report accurately on store credit using Shopify’s new Store Credit Primitive and API, available in developer preview.</p>
<p>Streamline checkout, customer support and workflows, with a single, reloadable store credit balance for customers. Start using the store credit GraphQL API today to add key functionality that enables differentiation between gift cards and store credit, the linking of store credit directly to a sole customer, and more.</p>
<p><a href="https://shopify.dev/docs/api/release-notes/developer-previews#store-credit-primitive-and-api-developer-preview" target="_blank" class="body-link">Get started</a></p>
</div> ]]></description>
    <pubDate>Thu, 01 Feb 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/store-credit-primitive-and-api-now-available-in-developer-preview</link>
  </item>
  <item>
    <title>New OAuth2 Token Exchange API &amp; Shopify managed install authorization flows available</title>
    <description><![CDATA[ <div class=""><p>We've introduced <a href="https://shopify.dev/docs/apps/auth/get-access-tokens/token-exchange" target="_blank" class="body-link">OAuth2 Token Exchange</a> and <a href="https://shopify.dev/docs/apps/auth/installation" target="_blank" class="body-link">Shopify managed install</a> to eliminate screen flickering due to full page redirects on app load and provide uninterrupted &amp; faster embedded app loading and installs.</p>
<p>To avoid unnecessary redirects and page flickers during the app installation process, <a href="https://shopify.dev/docs/apps/tools/cli/configuration" target="_blank" class="body-link">configure your app's required access scopes using Shopify CLI</a>. This allows Shopify to manage the installation process for you.</p>
<p>OAuth2 Token Exchange allows embedded apps to exchange session tokens for access tokens. This avoids the multiple requests and redirects as a result of OAuth authorization code grant, making it easier to retrieve both online and offline access tokens. </p>
<p>Use <a href="https://shopify.dev/docs/apps/getting-started/create" target="_blank" class="body-link">Shopify CLI to generate a starter app</a>, which uses token exchange and leverages Shopify managed install. For existing Remix apps, please refer to our <a href="https://shopify.dev/docs/api/shopify-app-remix#embedded-auth-strategy" target="_blank" class="body-link">migration guide</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 20:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-oauth2-token-exchange-api-shopify-managed-install-authorization-flows-available</link>
  </item>
  <item>
    <title>Cart and Checkout Validation Function API</title>
    <description><![CDATA[ <div class=""><p>You can now use Admin UI extensions to provide a user interface for merchants to configure your Cart and Checkout Validation Functions.</p>
<p>Additionally, merchants on any plan can now use validation functions provided by public apps distributed through the Shopify App Store.</p>
<p>Learn more on <a href="https://shopify.dev/docs/apps/checkout/validation/create-complex-validation-rules" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 19:33:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/cart-and-checkout-validation-function-api</link>
  </item>
  <item>
    <title>Checkout branding supports container styles</title>
    <description><![CDATA[ <div class=""><p>The Checkout Branding API now supports container styling for sections in the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/input-objects/CheckoutBrandingCustomizationsInput#field-checkoutbrandingcustomizationsinput-main" target="_blank" class="body-link">main</a> and the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/input-objects/CheckoutBrandingCustomizationsInput#field-checkoutbrandingcustomizationsinput-ordersummary" target="_blank" class="body-link">order summary</a> areas of checkout. This change is available in the 2024-04 release candidate.</p>
<p>These changes will give merchants more control over section corner radius, border styles, color scheme, spacing and shadow customizations within or between sections. We will be releasing an update to customize the header and footer sections in a subsequent release. </p>
<p>Learn more through our reference <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/checkoutBrandingUpsert" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:01:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/checkout-branding-supports-container-styles</link>
  </item>
  <item>
    <title>Checkout supports header and footer customizations</title>
    <description><![CDATA[ <div class=""><p>As of 2024-01-31, Checkout Extensibility enables merchants to customize checkout's header and footer with their brand and navigation intent.</p>
<p>Use the GraphQL Admin API's checkout branding to:</p>
<ul>
<li>Hide the logo, breadcrumbs, default footer content, and Back to cart links</li>
<li>Control the footer position and alignment</li>
</ul>
<p>Use checkout UI extensions to add content and replace hidden content, with the new header and footer extension targets in Checkout and the Thank you page.</p>
<p>Learn more on <a href="https://shopify.dev/docs/apps/checkout/header-footer/customize-footer" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:01:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/checkout-supports-header-and-footer-customizations</link>
  </item>
  <item>
    <title>New Discounts Allocator Function API in Developer Preview</title>
    <description><![CDATA[ <div class=""><p>You can now use the Discounts Allocator Function API in Developer Preview to implement custom logic for distributing discounts across multiple products or orders.</p>
<p>This new API allows you to define your own logic for how discounts are distributed, enabling the implementation of merchant-specific discount strategies. </p>
<p>Learn more about the Discounts Allocator Function API in our <a href="https://shopify.dev/docs/api/functions/reference/discounts-allocator" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-discounts-allocator-function-api-in-developer-preview</link>
  </item>
  <item>
    <title>Theme Check 2.0: Unified theme developer tools everywhere</title>
    <description><![CDATA[ <div class=""><p>Theme Check 2.0 marks the grand unification of Shopify theme developer tools. Now, you can use all Language Server Protocol (LSP) features in the <a href="https://shopify.dev/docs/themes/tools/code-editor" target="_blank" class="body-link">admin code editor</a>, on the <a href="https://shopify.dev/docs/themes/tools/theme-check/vscode" target="_blank" class="body-link">Shopify Liquid VS Code extension</a>, and on <a href="https://shopify.dev/docs/themes/tools/cli" target="_blank" class="body-link">Shopify CLI</a>.</p>
<p>Here's what's now available everywhere:</p>
<ul>
<li>Hover documentation support</li>
<li>Code completion for theme, section, and block settings</li>
<li>Code completion for theme translations</li>
<li>Code completion for HTML tags, attributes, and values</li>
<li>Code completion for Liquid filters, objects, and tags</li>
<li>Enhanced auto-closing pair user experience</li>
<li>Automatic support for new Liquid tags, filters, and objects</li>
</ul>
<p>We're excited to see how these changes will enhance your theme development process. Learn more about Theme Check 2.0 on <a href="https://shopify.dev/docs/themes/tools/theme-check" target="_blank" class="body-link">Shopify.dev</a> and happy coding!</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/theme-check-2-0-unified-theme-developer-tools-everywhere</link>
  </item>
  <item>
    <title>Gain more customer behavior analytics with DOM events</title>
    <description><![CDATA[ <div class=""><p>You can now subscribe to select <a href="https://shopify.dev/docs/api/web-pixels-api/dom-events" target="_blank" class="body-link">DOM events</a> with the Web Pixels API, including <strong>input_changed</strong>, <strong>input_blurred</strong>, <strong>input_focused</strong>, <strong>form_submitted</strong>, and <strong>clicked</strong>.</p>
<p>These new events will help merchants better understand how visitors are engaging with their online stores.</p>
<p>Learn more about Web Pixels on <a href="https://shopify.dev/apps/pixels" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/gain-more-customer-behavior-analytics-with-dom-events</link>
  </item>
  <item>
    <title>Hydrogen updates: Tool that make your path to production painless</title>
    <description><![CDATA[ <div class=""><p>With the latest release, Hydrogen and Oxygen make the path to production more seamless than ever. We’ve added new developer tools so you can more easily debug and optimize your build before you deploy:</p>
<ul>
<li><strong>Subrequest profiler</strong>: get a more detailed look at what’s happening inside your Remix loaders — identify query waterfalls, inefficient API calls, and suboptimal caching behavior.</li>
<li><strong>Error console</strong>: stack-trace errors back to your source code, right from the Shopify admin, so you can get right to the fix.</li>
<li><strong>CLI deploys</strong>: Deploying to Oxygen is easier than ever. Run the new deploy command to create deployments from your local dev environment, or build your own CI/CD processes on any platform.</li>
<li><strong>End-to-end testing support</strong>: Automatically and securely run E2E tools like Playwright or Cypress on every Oxygen deployment with our new E2E testing tokens.</li>
<li><strong>Shareable storefront previews</strong>: Share progress with colleagues and stakeholders — even if they don’t have access to your Shopify Admin — with our new revocable, token-based shareable links.</li>
<li><strong>Runtime mirroring</strong>: Hydrogen’s development server runtime is now nearly identical to production Oxygen, and now serves assets from a separate domain to better replicate how Shopify’s CDN works.</li>
<li><strong>Bundle insights</strong>: analyze your worker bundle file to find bloated dependencies, optimize your bundle size, and reduce cold start times, so your app stays fast over time.</li>
<li><strong>CLI upgrade command</strong>: Stay up-to-date with the latest version of Hydrogen and Remix with h2 upgrade command from your CLI. Your project’s critical dependencies will all be updated to the latest version, along with a custom migration guide.</li>
<li>It’s easier than ever to learn Hydrogen, with our <a href="https://shopify.dev/docs/custom-storefronts/hydrogen" target="_blank" class="body-link">refreshed docs</a>, and a <a href="https://github.com/Shopify/hydrogen/tree/main/examples" target="_blank" class="body-link">new suite of examples</a>.</li>
</ul>
<p>Learn more about our <a href="https://hydrogen.shopify.dev/update/deploy-observe-debug" target="_blank" class="body-link">latest release</a> in detail.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/hydrogen-updates-tool-that-make-your-path-to-production-painless</link>
  </item>
  <item>
    <title>Customer Privacy API now available on Hydrogen &amp; Oxygen</title>
    <description><![CDATA[ <div class=""><p>You can now integrate the <a href="https://shopify.dev/docs/api/customer-privacy" target="_blank" class="body-link">Customer Privacy API</a> and the <a href="https://apps.shopify.com/customer-privacy-banner" target="_blank" class="body-link">Shopify Privacy &amp; Compliance app</a> into your Hydrogen storefront, making it easier to comply with data protection laws and increase customer trust. This allows consent to flow to Shopify so it can be honored on Pixels, Checkout and other services.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/customer-privacy-api-now-available-on-hydrogen-oxygen</link>
  </item>
  <item>
    <title>New structured app category details</title>
    <description><![CDATA[ <div class=""><p>The Shopify App Store is introducing structured app category details to make it even easier for merchants to evaluate relevant apps within the same category. Starting today, category details can be added for apps classified under: </p>
<ul>
<li>Product reviews</li>
<li>Dropshipping</li>
<li>Product bundles</li>
<li>Subscriptions</li>
<li>Loyalty and rewards</li>
<li>SEO</li>
<li>Page builder</li>
<li>Pop-ups</li>
<li>Discounts</li>
<li>Email marketing</li>
</ul>
<p>Using this structured data, merchants will soon be able to see this information on the app details page, as well as on the compare apps page</p>
<p>Learn more about how App Category Details work at <a href="https://shopify.dev/docs/apps/store/requirements#4-app-category-details" target="_blank" class="body-link">shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-structured-app-category-details</link>
  </item>
  <item>
    <title>New install modal and data access section for apps with defines permissions</title>
    <description><![CDATA[ <div class=""><p>When you <a href="https://shopify.dev/docs/apps/tools/cli/configuration#access_scopes" target="_blank" class="body-link">define the permissions your app requests</a>, they will now show up in a new &quot;Data Access&quot; section on your app details page to help build merchant trust.</p>
<p>Your installation flow will also be updated to a new installation modal, rather than a full page experience, which will streamline the install process for merchants.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-install-modal-and-data-access-section-for-apps-with-defines-permissions</link>
  </item>
  <item>
    <title>[General Availability] Checkout Sheet Kit for Android, React Native, Swift v1.0.0</title>
    <description><![CDATA[ <div class=""><p>Shopify’s Checkout Sheet Kit enables you to provide the world’s highest converting, customizable, one-page checkout directly within a mobile app.  Today we are happy to announce that the v1.0.0 of Checkout Sheet Kit for <a href="https://github.com/Shopify/checkout-sheet-kit-android" target="_blank" class="body-link">Android</a>, <a href="https://github.com/Shopify/checkout-sheet-kit-react-native'" target="_blank" class="body-link">React Native</a> and <a href="https://github.com/Shopify/checkout-sheet-kit-swift" target="_blank" class="body-link">Swift</a> is officially available and no longer in developer preview. The libraries are open-source and ready for you to start building. </p>
<p>More information can be found in <a href="https://shopify.dev/docs/custom-storefronts/mobile-apps?shpxid=5b6ab9a2-3788-4ED8-2B6C-3B662C8CD600" target="_blank" class="body-link">documentation</a> as well as in the Github repositories linked above.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/general-availability-checkout-sheet-kit-for-android-react-native-swift-v1-0-0</link>
  </item>
  <item>
    <title>New GraphQL APIs that support 2000 product variants now in developer preview</title>
    <description><![CDATA[ <div class=""><p>Now in developer preview, we’ve introduced new GraphQL product APIs that support 2000 variants, allowing for support of more complex catalogs.</p>
<p><a href="https://shopify.dev/docs/api/release-notes/developer-previews#increased-variants-developer-preview" target="_blank" class="body-link">Learn more here</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-graphql-apis-that-support-2000-product-variants-now-in-developer-preview</link>
  </item>
  <item>
    <title>Guided Search</title>
    <description><![CDATA[ <div class=""><p>Merchants can now discover your app in the new AI-powered guided search that supports merchant’s natural language queries, and provides insights to help them make a better informed app decision. This can be accessed through the search bar in the Shopify App Store under the &quot;Ask about apps&quot; section. 
Keep your <a href="https://shopify.dev/docs/apps/store/requirements#5-app-listing" target="_blank" class="body-link">listing accurate and up-to-date</a> with the solution that you provide to help the right merchants find your app.</p>
<p><a href="https://apps.shopify.com/guided-search?q=simplify+the+returns+process&utm_campaign=changelog&utm_source=changelog&utm_medium=dev_changelog" target="_blank" class="body-link">Try it now</a></p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 16:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/guided-search</link>
  </item>
  <item>
    <title>Coming soon: New way to deploy app configuration using Shopify CLI</title>
    <description><![CDATA[ <div class=""><p>An upcoming release affects the <a href="https://shopify.dev/docs/apps/tools/cli/configuration" target="_blank" class="body-link">app configuration</a> deployment process using Shopify CLI, which includes breaking changes that require your attention.</p>
<p>Effective <strong>January 31, 2024</strong>, we're introducing an improved way to release your app configuration and extensions together using the <code>shopify app deploy</code>  command. With this update, you can version and roll  back changes to your app configuration as part of app versions!</p>
<p><strong>Upcoming Breaking Change Details</strong>: The Shopify CLI <code>shopify app config push</code> command will no longer be supported in any CLI version. Instead, you should use the  <a href="https://shopify.dev/docs/apps/tools/cli/commands#deploy" target="_blank" class="body-link"><code>shopify app deploy</code> command</a> to release your app configurations and extensions.  </p>
<p><strong>Next steps starting January 31, 2024</strong>: </p>
<ul>
<li>Developers using <code>shopify app config push</code> to release app configuration need to update to the latest Shopify CLI version and use <code>shopify app deploy</code> instead. </li>
<li>Developers using <code>shopify app config push</code> in CI/CD workflows need to update their deployment scripts to remove this command.</li>
</ul>
<p>Detailed migration instructions will be provided in <a href="https://shopify.dev/docs/apps/tools/cli/configuration#migrate-from-config-push" target="_blank" class="body-link">app configuration documentation</a> at the time of release on January 31.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/coming-soon-new-way-to-deploy-app-configuration-using-shopify-cli</link>
  </item>
  <item>
    <title>Subscribe to compliance topics using PubSub or Eventbridge</title>
    <description><![CDATA[ <div class=""><p>You can now subscribe to compliance topics using you app's [TOML configuration file] (<a href="https://shopify.dev/docs/apps/app-extensions/configuration" target="_blank" class="body-link">https://shopify.dev/docs/apps/app-extensions/configuration</a>) and use PubSub or Eventbridge URIs as your subscription endpoint.</p>
<p>Learn more about mandatory compliance topics <a href="https://shopify.dev/docs/apps/webhooks/configuration/mandatory-webhooks" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 14:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/subscribe-to-compliance-topics-using-pubsub-or-eventbridge</link>
  </item>
  <item>
    <title>Revised the App Design Guidelines (Winter 2024)</title>
    <description><![CDATA[ <div class=""><p>We've introduced the following changes to improve and update the <a href="https://shopify.dev/docs/apps/design" target="_blank" class="body-link">App Design Guidelines</a>:</p>
<ul>
<li>The full-screen mode guidance has been revised and renamed to <a href="https://shopify.dev/docs/apps/design-guidelines/app-structure#max-modal" target="_blank" class="body-link">max modal</a>.</li>
<li>The admin app block directive regarding the <a href="https://shopify.dev/docs/api/admin-extensions/2024-01/components/other/adminblock#adminblockprops-propertydetail-summary" target="_blank" class="body-link"><code>summary</code></a> property has been removed as it is no longer applicable.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2024 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/revised-the-app-design-guidelines-winter-2024</link>
  </item>
  <item>
    <title>POS API added to the latest version of App Bridge</title>
    <description><![CDATA[ <div class=""><p>With the latest version of App Bridge, you can use the <a href="https://shopify.dev/docs/api/app-bridge-library/reference/pos" target="_blank" class="body-link">POS</a> API. This provides the ability to retrieve the POS user, device, and location data, while also interacting with the cart and closing the app.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Jan 2024 00:31:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/pos-api-added-to-the-latest-version-of-app-bridge</link>
  </item>
  <item>
    <title>Release the isFromCustomStorefront field on Abandonment into stable version</title>
    <description><![CDATA[ <div class=""><p>As of 2024-04, the <code>Abandonment.isFromCustomStorefront</code> field has been released into stable version.</p>
</div> ]]></description>
    <pubDate>Mon, 22 Jan 2024 20:54:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/release-the-isfromcustomstorefront-field-on-abandonment-into-stable-version</link>
  </item>
  <item>
    <title>Prepare for IPv6 adoption for Storefront domains</title>
    <description><![CDATA[ <div class=""><p>In preparation for supporting IPv6 on storefront domains, merchants and partners should update any third-party tools, such as firewall rules, to allow traffic in the CIDR range <code>2620:127:f00f::/48</code> and <code>2620:127:f00e::/48</code> by January 16, 2024. </p>
<p>Outbound traffic from Shopify will not be affected.</p>
</div> ]]></description>
    <pubDate>Tue, 16 Jan 2024 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/prepare-for-ipv6-adoption-for-storefront-domains</link>
  </item>
  <item>
    <title>Add new fields `firstName` and `lastName` on `CompanyAddress`</title>
    <description><![CDATA[ <div class=""><p>As of version 2024-01, you can use the GraphQL Admin API to get and set a <code>firstName</code> and <code>lastName</code> on the <code>CompanyAddress</code>.</p>
</div> ]]></description>
    <pubDate>Mon, 15 Jan 2024 20:27:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/add-new-fields-firstname-and-lastname-on-companyaddress</link>
  </item>
  <item>
    <title>Locale fields on `MarketWebPresence` now return `ShopLocale` object</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-04</code> the following fields on the <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/MarketWebPresence" target="_blank" class="body-link"><code>MarketWebPresence</code></a> object will no longer return locale strings and will instead make use of the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/ShopLocale" target="_blank" class="body-link"><code>ShopLocale</code></a> type:</p>
<ul>
<li><code>defaultLocale</code></li>
<li><code>alternateLocales</code></li>
</ul>
<p>We’re making this change as it allows callers to query for more information regarding locales on a market, such as whether it is published or primary. Please ensure to update your API calls using <code>MarketWebPresence.defaultLocale</code> or <code>MarketWebPresence.alternateLocales</code> to use the <code>ShopLocale</code> type.</p>
<p>Learn more about the <code>MarketWebPresence</code> object on <a href="https://shopify.dev/docs/api/admin-graphql/2024-04/objects/MarketWebPresence" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 15 Jan 2024 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/locale-fields-on-marketwebpresence-now-return-shoplocale-object</link>
  </item>
  <item>
    <title>GraphiQL in Shopify CLI for apps</title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI version 3.53+, you can use GraphiQL in the CLI while running <code>app dev</code> by simply pressing the <code>g</code> hotkey.</p>
<p>This GraphiQL instance uses your app's credentials, working with the same data and access scopes, ensuring that what works in GraphiQL will work exactly the same in your app. We expect this feature to streamline how you create and edit GraphQL queries.</p>
<p>Learn more about in <a href="https://shopify.dev/docs/apps/tools/graphiql-admin-api" target="_blank" class="body-link">our documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 11 Jan 2024 17:01:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/graphiql-in-shopify-cli-for-apps</link>
  </item>
  <item>
    <title>Filter query added to the App Bridge Resource Picker API</title>
    <description><![CDATA[ <div class=""><p>With the latest version of App Bridge, you can use the filter query option with the <a href="https://shopify.dev/docs/api/app-bridge-library/reference/resource-picker" target="_blank" class="body-link">Resource Picker API</a> to filter resources without showing the query in the Resource Picker search bar.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Jan 2024 15:10:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/filter-query-added-to-the-app-bridge-resource-picker-api</link>
  </item>
  <item>
    <title>TaxLine Channel Liable REST-API Improvement</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-01 version of the REST Order APIs, <code>channel_liable field</code> on the <code>TaxLine</code> has been updated to reflect the value indicated by the app. The behaviors now align between the REST and GraphQL endpoints.</p>
<p>The <code>channel_liable</code> field lets developers inform merchants that another party is responsible for sales tax remittance, which then helps merchants better understand the tax that they are responsible for.</p>
<p><code>channel_liable</code> can contain the following values:</p>
<ul>
<li><code>true</code> indicates that the channel is responsible for remittance of the tax line</li>
<li><code>false</code> indicates that the channel is not responsible for remittance of the tax line</li>
</ul>
<p>If the <code>channel_liable</code> field is not populated, a value of <code>false</code> will be assumed.</p>
</div> ]]></description>
    <pubDate>Mon, 08 Jan 2024 14:30:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/taxline-channel-liable-rest-api-improvement</link>
  </item>
  <item>
    <title>New error codes added for metafield capabilities</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-01, we've added the <code>CAPABILITY_VIOLATION</code> error code to the <code>MetafieldsSetUserErrorCode</code> enum. This error code is returned if you attempt to update a metafield in a way that doesn't conform to the enabled capabilities. </p>
</div> ]]></description>
    <pubDate>Mon, 08 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/new-error-codes-added-for-metafield-capabilities</link>
  </item>
  <item>
    <title>New and updated operations for the Cart Transform API</title>
    <description><![CDATA[ <div class=""><p>Previously, the Cart Transform Function API allowed percentage based adjustments to the cost of a bundle when using <code>expand</code> operations. The [weight price algorithm](<a href="http://shopify.dev/docs/api/functions/reference/cart-transform/developer-preview#/weight-" target="_blank" class="body-link">http://shopify.dev/docs/api/functions/reference/cart-transform/developer-preview#/weight-</a>
price-algorithm) would then allocate the bundle price to its component lines based on the weight of each component line (unit price * quantity).</p>
<p>As of the <code>2024-01</code> Cart Transform Function API version, <code>expand</code> operations will also allow you to set fixed prices on each component of the bundle, resulting in a bundle price that is the sum of each component. Additionally, the <code>expand</code> operation will now allow you to define a custom title and image for each parent line item. This gives you more control over bundle pricing and enables bundles to be used for add-on products.</p>
<p>A new <code>update</code> operation will allow you to override the price, title, and image of a given line item. This gives you more more flexibility to make additional customizations to items in the cart. The <code>update</code> operation is only available for Plus merchants. </p>
<p>To see what operations are available for a shop, you can <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/ShopFeatures" target="_blank" class="body-link">query</a> the <code>cartTransform</code> field on <code>ShopFeatures</code>.  </p>
<p>Finally, the CartTransformCreate mutation in the Admin API now supports a <code>blockOnFailure</code> field that determines if cart and checkout operations should be blocked if the CartTransform function fails to run. This can be used as a safeguard if the Cart Transform is considered a critical component in resolving merchandise attributes (e.g. price, title, image).</p>
<p>More information can be found in the Cart Transform API <a href="https://shopify.dev/docs/api/functions/reference/cart-transform" target="_blank" class="body-link">documentation</a> and the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/cartTransformCreate" target="_blank" class="body-link">CartTransformCreate mutation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 02 Jan 2024 22:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/new-and-updated-operations-for-the-cart-transform-api</link>
  </item>
  <item>
    <title>New optional argument to include translations when duplicating product</title>
    <description><![CDATA[ <div class=""><p>As of 2024-01 version in the admin GraphQL API, you can specify whether to include translations when calling the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/productDuplicate" target="_blank" class="body-link">productDuplicate</a> mutation. When this optional argument is passed in as <code>true</code>, all translations that are saved on the product, its variants, and its metafields are copied over to the new product.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 22:28:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/new-optional-argument-to-include-translations-when-duplicating-product</link>
  </item>
  <item>
    <title>Reset to default functionality for Checkout Branding Admin API mutation</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2024-01, you can use the <code>checkoutBrandingUpsert</code> mutation to reset branding settings to their default state without resetting each leaf field explicitly. It is now possible to pass in a <code>null</code> value to the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/checkoutBrandingUpsert#argument-checkoutbrandinginput" target="_blank" class="body-link"><code>checkoutBrandingInput</code></a> argument to clear all of the branding settings, which will revert the branding of the Checkout to its default state. </p>
<p>Note that for all API versions, it is also possible to pass in a <code>null</code> value to a non-leaf subfield, for example <code>design_system.colors.schemes.scheme1</code>, to reset a given group of parameters.</p>
<p>Both of these changes enhance the usability of the Checkout Branding API by allowing to easily reset groups of branding parameters.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 18:24:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/reset-to-default-functionality-for-checkout-branding-admin-api-mutation</link>
  </item>
  <item>
    <title>Bugfix to Returns API: Block refunds on requested returns</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-01, we fixed a bug that had allowed refunds specifically against a requested return. Refunds are blocked on returns with a <code>REQUESTED</code> status.</p>
<ul>
<li>Learn more about the <code>status</code> of a return on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/enums/ReturnStatus#value-requested" target="_blank" class="body-link">Shopify.dev</a>.</li>
<li>Learn more about <code>requesting returns</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/returnRequest" target="_blank" class="body-link">Shopify.dev</a></li>
<li>Learn more about <em>self serve returns</em> on <a href="https://help.shopify.com/en/manual/orders/self-serve-returns" target="_blank" class="body-link">the help center</a></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 17:30:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/bugfix-to-returns-api-block-refunds-on-requested-returns</link>
  </item>
  <item>
    <title>Adding Scheduled Changes to Inventory</title>
    <description><![CDATA[ <div class=""><p>As of the 2024-01 version, you can Schedule Changes to your inventory quantities. For example, if an application user creates a purchase order and adds some incoming quantities for a specified inventory item at a location, they can then create a Scheduled Change that states the date these quantities are expected to be transitioning from incoming to available. </p>
<p>This information can then be used for planning to help the merchant make better buying or selling decisions. It will not automatically change any quantities, that still has to be done using one of the existing quantities mutations for inventory such as <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/inventoryAdjustQuantities" target="_blank" class="body-link">InventoryAdjustQuantitites</a>. As part of this change there will be a new mutation <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/inventorySetScheduledChanges" target="_blank" class="body-link">inventorySetScheduledChanges</a> along with the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/InventoryScheduledChange" target="_blank" class="body-link">scheduledChanges</a> field on the InventoryLevel query model which will allow the merchant to access the Scheduled Changes for a specific item at a given location.</p>
<p>You can include links inline in the text, and add another link at the end in this format:</p>
<p>Learn more about Inventory Scheduled changes on <a href="https://shopify.dev/docs/apps/fulfillment/inventory-management-apps" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/adding-scheduled-changes-to-inventory</link>
  </item>
  <item>
    <title>ChoiceList branding controls exposed in Checkout Branding API</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2024-01, you can use the Checkout Branding API to customize the look of the ChoiceList components on your checkout with <code>customizations.choiceList</code>. </p>
<p>Learn more about the ChoiceList component on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/input-objects/CheckoutBrandingChoiceListInput" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/choicelist-branding-controls-exposed-in-checkout-branding-api</link>
  </item>
  <item>
    <title>Metaobjects exposed as market localizable</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2024-01</strong> Metaobjects will be exposed as a <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/enums/MarketLocalizableResourceType" target="_blank" class="body-link">MarketLocalizableResourceType</a>. This means that metaobjects with the translatable capability will be eligible for custom content by market through the Translations API as well as the <a href="https://apps.shopify.com/translate-and-adapt" target="_blank" class="body-link">Translate and Adapt</a> app. Localizable fields will be determined by the Metaobject type.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/metaobjects-exposed-as-market-localizable</link>
  </item>
  <item>
    <title>OrderTransaction now exposes the multiCapturable field</title>
    <description><![CDATA[ <div class=""><p>As of <code>2024-01</code> the <code>OrderTransaction</code> endpoint now exposes the <code>multiCapturable</code> field, to inform whether a transaction can be captured multiple times.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/OrderTransaction" target="_blank" class="body-link">OrderTransaction</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/ordertransaction-now-exposes-the-multicapturable-field</link>
  </item>
  <item>
    <title>Expose line_item field on AbandonedCheckout GraphQL API to public</title>
    <description><![CDATA[ <div class=""><p>As of 2024-01, the <code>line_items</code> field on <code>AbandonedCheckout</code> GraphQL API will be available to public.  </p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/expose-line_item-field-on-abandonedcheckout-graphql-api-to-public</link>
  </item>
  <item>
    <title>Improved support for syncing external marketing activities and receiving aggregate marketing data</title>
    <description><![CDATA[ <div class=""><p>We're revamping the External Marketing APIs in the 2024-01 version of the GraphQL Admin API.</p>
<h4>Breaking changes</h4>
<ul>
<li>The <code>channel</code> field in <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivityCreateExternal" target="_blank" class="body-link">marketingActivityCreateExternal</a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivityUpdateExternal" target="_blank" class="body-link">marketingActivityUpdateExternal</a> has been renamed to <code>marketingChannelType</code>.</li>
<li><code>utcOffset</code> and <code>isCumulative</code> are now required fields and the <code>fetchedAt</code> field has been removed from <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/MarketingEngagementInput" target="_blank" class="body-link">marketingEngagementInput</a>.</li>
<li>The <code>utm</code> field has been deprecated from <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/MarketingActivityUpdateExternalInput" target="_blank" class="body-link">MarketingActivityUpdateExternalInput</a>.</li>
</ul>
<h4>Improvements on the creation of marketing activities</h4>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivityUpsertExternal" target="_blank" class="body-link">marketingActivityUpsertExternal</a> can be used to sync externally managed activities without having to keep track of Shopify IDs.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivityCreateExternal" target="_blank" class="body-link">marketingActivityCreateExternal</a> or <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivityUpsertExternal" target="_blank" class="body-link">marketingActivityUpsertExternal</a> can be used to create a hierarchy of activities. Activities can be created to represent ads, ad groups, or campaigns.</li>
<li>Bulk mutation support has been added for <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivityUpsertExternal" target="_blank" class="body-link">marketingActivityUpsertExternal</a>. Learn more about bulk mutations on <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">Shopify.dev</a>.</li>
</ul>
<h4>Now supporting the deletion of marketing activities</h4>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivityDeleteExternal" target="_blank" class="body-link">marketingActivityDeleteExternal</a> can be used to delete a single external marketing activity.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingActivitiesDeleteAllExternal" target="_blank" class="body-link">marketingActivitiesDeleteAllExternal</a> can be used to enqueue a job to bulk delete all external marketing activities. This can be used to cleanup data if a store owner revokes permission to sync data to Shopify.</li>
</ul>
<h4>Improved support for syncing aggregate data</h4>
<ul>
<li>The <code>remoteId</code> can be used to reference a marketing activity in <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingEngagementCreate" target="_blank" class="body-link">marketingEngagementCreate</a>.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingEngagementCreate" target="_blank" class="body-link">marketingEngagementCreate</a> can be used to sync aggregate data at the activity level and at the channel level. </li>
<li>Bulk mutation support has been added for <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingEngagementCreate" target="_blank" class="body-link">marketingEngagementCreate</a>. Learn more about bulk mutations on <a href="https://shopify.dev/docs/api/usage/bulk-operations/imports" target="_blank" class="body-link">Shopify.dev</a>.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingEngagementsDelete" target="_blank" class="body-link">marketingEngagementsDelete</a> can be used to enqueue a job to delete all channel-level data that was sent through <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingEngagementCreate" target="_blank" class="body-link">marketingEngagementCreate</a>. This can be used to cleanup data if a store owner revokes permission to sync data to Shopify.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 17:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/improved-support-for-syncing-external-marketing-activities-and-receiving-aggregate-marketing-data</link>
  </item>
  <item>
    <title>Removal of accepts marketing fields in Admin API customer resources</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2024-01</strong>, the following customer resource fields have been removed: <code>acceptsMarketing</code>, <code>acceptsMarketingUpdatedAt</code>, and <code>MarketingOptInLevel</code>. They have been deprecated since <strong>2022-04</strong> and the field <code>emailMarketingConsent</code> should be used instead.</p>
<p>Learn more about the affected resources:</p>
<ul>
<li><code>Customer</code> object in <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/Customer" target="_blank" class="body-link">GraphQL Queries</a>.</li>
<li><code>CustomerInput</code> object on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/input-objects/CustomerInput" target="_blank" class="body-link">GraphQL Mutations</a>.</li>
<li><code>customer</code> resource in <a href="https://shopify.dev/docs/api/admin-rest/2024-01/resources/customer" target="_blank" class="body-link">REST</a>.</li>
<li><code>customers/create</code>, <code>customers/delete</code>, <code>customers/disable</code>, <code>customers/enable</code>, and <code>customers/update</code> webhook topics (<a href="https://shopify.dev/docs/api/admin-rest/2024-01/resources/webhook#event-topics" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-rest/2024-01/resources/webhook#event-topics</a>).</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 16:29:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/removal-of-accepts-marketing-fields-in-admin-api-customer-resources</link>
  </item>
  <item>
    <title>Discounts API - New fixed amount option for Buy X Get Y discount</title>
    <description><![CDATA[ <div class=""><p>Buy X Get Y discounts now support setting a fixed amount discount. This new option can be utilized alongside the existing percentage or free item discount options for a minimum qualifying purchase. </p>
<p>Use this option to create promotions such as “Buy 2 items, get $20 off”. This option is available as both an automatic discount or a discount code using the Discounts GraphQL API. </p>
<p>For more details on how to implement this new feature, refer to our <a href="https://shopify.dev/docs/api/admin-graphql" target="_blank" class="body-link">API Guide</a> in the Shopify Developer Documentation.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/discounts-api-new-fixed-amount-option-for-buy-x-get-y-discount</link>
  </item>
  <item>
    <title>Delete multiple market regions in a single mutation</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-01, you can use the <code>marketRegionsDelete</code> mutation to delete multiple market regions in a single mutation.</p>
<p>Learn more about markets on <a href="https://shopify.dev/docs/apps/markets" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/delete-multiple-market-regions-in-a-single-mutation</link>
  </item>
  <item>
    <title>Add, remove, and update discounts with the newest order editing API</title>
    <description><![CDATA[ <div class=""><p>You can now add, remove, and update discounts to new or existing items when editing orders.</p>
<p>The orderEditAddLineItemDiscount mutation allows you to add a fixed amount or percentage discount to an already existing item during an order edit. Previously, this mutation was limited to applying discounts to new products or custom items added to the order.</p>
<p>In addition, two new mutations allow you to remove and update discounts. The mutation orderEditRemoveDiscount removes discounts on newly added, existing products, or custom items, while the orderEditUpdateDiscount mutation allows for updating discounts.</p>
<p>For more information about using discounts with order edits, visit the tutorial on <a href="https://shopify.dev/tutorials/edit-an-existing-order-with-admin-api#add-a-discount-to-the-variant" target="_blank" class="body-link">editing an existing order with the Admin API</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/add-remove-and-update-discounts-with-the-newest-order-editing-api</link>
  </item>
  <item>
    <title>created_by_app and created_by_user fields on Metaobject and MetaobjectDefinition types</title>
    <description><![CDATA[ <div class=""><p>We are introducing two new fields in the <code>MetaobjectDefinition</code> type:</p>
<ul>
<li><code>createdByApp</code>: The app used to create the metaobject definition.</li>
<li><code>createdByStaff</code>: The staff member who created the metaobject definition.</li>
</ul>
<p>Similarly, we are introducing two new fields in the <code>Metaobject</code> type:</p>
<ul>
<li><code>createdByApp</code>: The app used to create the object.</li>
<li><code>createdByStaff</code>: The staff member who created the metaobject.</li>
</ul>
<p>Additionally, we are deprecating the <code>staffMember</code> field in the <code>Metaobject</code> type. This field is being deprecated, and the <code>createdByStaff</code> field should be used instead.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/created_by_app-and-created_by_user-fields-on-metaobject-and-metaobjectdefinition-types</link>
  </item>
  <item>
    <title>Update storefront access control settings in custom data</title>
    <description><![CDATA[ <div class=""><p>Upcoming in API version 2024-01, access controls (access.storefront) are modified to be more explicit for custom data. These changes affect how reserved prefixes can be modified in the admin as well as how access controls are set by apps.</p>
<p>As a reminder, by default metafields and metaobjects are owned by Shopify and provide no restrictions to reading, writing, or modifying.</p>
<p>For app reserved prefixes, access is configurable. For example, if you set access for <code>admin</code> to be <code>MERCHANT_READ</code> and <code>storefront</code> to be <code>PUBLIC_READ</code> then the merchant will have read-only access in the Shopify admin, and the metafields will be publicly readable in the storefront surface area (Liquid templates and Storefront API).</p>
<p>Learn more about access controls for <a href="https://shopify.dev/docs/apps/custom-data/metafields/definitions/access-controls" target="_blank" class="body-link">metafields</a> and <a href="https://shopify.dev/docs/apps/custom-data/metaobjects/access-controls" target="_blank" class="body-link">metaobjects</a> respectively on <a href="https://shopify.dev/docs/apps/custom-data/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/update-storefront-access-control-settings-in-custom-data</link>
  </item>
  <item>
    <title>Order Cancellation now available on GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2024-01, you can use the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/orderCancel" target="_blank" class="body-link">orderCancel</a> mutation to cancel an order. The mutation allows apps to specify some options for cancellation (eg whether or not to refund the customer, restock inventory quantities, notify the customer) as well as a reason for cancellation and a merchant-facing staff note.  The mutation performs cancellation asynchronously in a background job and as such, returns a <code>job</code> that can be queried for using the <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/queries/job" target="_blank" class="body-link">job API</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:01:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/order-cancellation-now-available-on-graphql-admin-api</link>
  </item>
  <item>
    <title>&quot;Awaiting return items&quot; fulfillment hold reason</title>
    <description><![CDATA[ <div class=""><p><code>AWAITING_RETURN_ITEMS</code>
The fulfillment hold is applied because of return items not yet received during an exchange.</p>
<p>The new hold reason is applied to a <a href="https://shopify.dev/docs/api/admin-graphql/next/objects/FulfillmentHold" target="_blank" class="body-link">fulfillment hold</a> on a fulfillment order when a return is created with exchange items. </p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/awaiting-return-items-fulfillment-hold-reason</link>
  </item>
  <item>
    <title>Updates to Split and Merge Feature</title>
    <description><![CDATA[ <div class=""><p>As of API Version 2024-01 we've added a few extra documentation details around our recent Split and Merge feature. </p>
<ul>
<li>Webhooks for <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/WebhookSubscriptionTopic#value-fulfillmentorderssplit" target="_blank" class="body-link">Split</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/WebhookSubscriptionTopic#value-fulfillmentordersmerged" target="_blank" class="body-link">Merge</a> are now available.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/FulfillmentOrderLocationForMove" target="_blank" class="body-link">FulfillmentOrderLocationForMove</a> has had the <code>availableLineItems</code> and <code>unavailableLineItems</code> connections added along with a count of each.  </li>
<li>A new error code <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/FulfillmentOrderSplitUserErrorCode#value-nolineitemsprovidedtosplit" target="_blank" class="body-link">No Line Items Provided To Split</a> has also been added.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/updates-to-split-and-merge-feature</link>
  </item>
  <item>
    <title>Enhanced the FulfillmentOrder API with additional Order details and FulfillmentOrderLineItem with financialSummaries</title>
    <description><![CDATA[ <div class=""><p>As of REST and GraphQL API Version 2024-01 we have added more information to the <code>FulfillmentOrder</code> and <code>FulfillmentOrderLineItem</code> objects.</p>
<p>We've added the following fields to the <code>FulfillmentOrder</code> graphQL object: <code>orderId</code>, <code>orderName</code>, <code>orderProcessedAt</code>, <code>channelId</code>.</p>
<p>With this change, order information required to fulfill an order is accessible on the <code>fulfillmentOrder</code> object with any of the <code>fulfillment_orders</code> access scopes.  The same data is available via <code>fulfillmentOrder.order</code>, but this requires <code>read_orders</code> access scope.</p>
<p>Additionally we've added the <code>financialSummaries</code> field to the <code>FulfillmentOrderLineItem</code> graphQL object. Within this field you have access to these subfields: <code>approximateDiscountedUnitPriceSet</code>, <code>discountAllocations</code>, <code>originalUnitPriceSet</code> and <code>quantity</code>.  However, the <code>quantity</code> value on the <code>FulfillmentOrderLineItem.financialSummaries</code> reflects the quantity with respect to the <code>FulfillmentOrderLineItem</code>. The same data is available via the REST api when the query parameter <code>include_financial_summaries=true</code> is sent with the request. </p>
<p>With this change, order information required to calculate the financial specifics of an order is accessible via the <code>fulfillmentOrder.lineItems</code> connection with any of the <code>fulfillment_orders</code> access scopes.  The same data is available via <code>fulfillmentOrder.order.lineItems</code>, but this requires <code>read_orders</code> access scope.</p>
<p>Learn more about <code>FulfillmentOrder</code> on <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link">Shopify.dev</a> and <code>FulfillmentOrderLineItem</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/FulfillmentOrderLineItem" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/enhanced-the-fulfillmentorder-api-with-additional-order-details-and-fulfillmentorderlineitem-with-financialsummaries</link>
  </item>
  <item>
    <title>New webhook topics added for Metaobject events</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-01 of the GraphQL Admin API, your app can subscribe to <code>metaobjects/create</code>, <code>metaobjects/update</code> and <code>metaobjects/delete</code>.</p>
<p>These new webhook topics use sub-topics so you can subscribe to events for the specific types of metaobjects your app cares about. Learn more about sub-topics on <a href="https://shopify.dev/docs/apps/webhooks/sub-topics" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/new-webhook-topics-added-for-metaobject-events</link>
  </item>
  <item>
    <title>Subscriptions Contracts APIs: Introduce new mutations to update Subscription Contract status</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-01</strong> release of the GraphQL Admin API, you can update the status field of a subscription contract in a single operation with the <code>subscriptionContractActivate</code>, <code>subscriptionContractPause</code>, <code>subscriptionContractCancel</code>, <code>subscriptionContractFail</code>, <code>subscriptionContractExpire</code> mutations.</p>
<p>As of the <strong>2024-01</strong> release of the GraphQL Customer API, you can update the status field of a subscription contract in a single operation with the <code>subscriptionContractActivate</code>, <code>subscriptionContractCancel</code> and <code>subscriptionContractPause</code> mutations. </p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/subscriptions-contracts-apis-introduce-new-mutations-to-update-subscription-contract-status</link>
  </item>
  <item>
    <title>Subscriptions Billing Cycles APIs: Introduce new mutations to update SubscriptionBillingCycle skipped field</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-01</strong> release of the GraphQL Admin API and GraphQL Customer API, you can update the skipped field of a subscription billing cycle in a single operation with the <code>subscriptionBillingCycleSkip</code> and  <code>subscriptionBillingCycleUnskip</code> mutations</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/subscriptions-billing-cycles-apis-introduce-new-mutations-to-update-subscriptionbillingcycle-skipped-field</link>
  </item>
  <item>
    <title>Webhook topics introduced for updating subscription contract status</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-01</strong> release of the GraphQL Admin API, new dedicated webhook topics  have been introduced to notify whenever there is a change in the status of a subscription contract.</p>
<p>The topic <code>subscription_contracts/activate</code> is added when the subscription contract status turns to active, <code>subscription_contracts/expire</code> when a subscription contract's status turns to expire, <code>subscription_contracts/fail</code> when the status turns to failed, <code>subscription_contracts/cancel</code> when the status turns to cancelled, and <code>subscription_contracts/pause</code> when the status turns to paused. </p>
<p>More information on webhooks can be found <a href="https://shopify.dev/docs/api/admin-rest/latest/resources/webhook" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/webhook-topics-introduced-for-updating-subscription-contract-status</link>
  </item>
  <item>
    <title>Subscriptions Contracts APIs - Deprecate subscriptionContract `stale` status</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL 2024-01, the<a href="https://shopify.dev/docs/api/admin-graphql/2023-10/enums/SubscriptionContractSubscriptionStatus#value-stale" target="_blank" class="body-link"> <code>SubscriptionContractSubscriptionStatus.STALE</code> status</a> is being deprecated. Instead, please use <code>EXPIRED</code> or <code>CANCELLED</code>.</p>
<p>Any existing contracts with the <code>STALE</code> status will be returned as <code>CANCELLED</code>.</p>
<p>Additionally, we are now preventing the update of Subscription Contracts to have the <code>STALE</code> status.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/subscriptions-contracts-apis-deprecate-subscriptioncontract-stale-status</link>
  </item>
  <item>
    <title>Subscriptions Contracts APIs: Introduce SubscriptionContractFetchDeliveryOptions and SubscriptionContractSelectDeliveryMethod mutations</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-01</strong> release of the GraphQL Customer API, you can fetch the available delivery options for a subscription contract with <code>subscriptionContractFetchDeliveryOptions</code>. And you can select an option from a delivery options result and update the delivery method on a subscription contract with the <code>subscriptionContractSelectDeliveryMethod</code> mutation. </p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/subscriptions-contracts-apis-introduce-subscriptioncontractfetchdeliveryoptions-and-subscriptioncontractselectdeliverymethod-mutations</link>
  </item>
  <item>
    <title>Subscription Billing Attempt is now prevented if a subscription contract has terminal status</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2024-01</strong> release of the GraphQL Admin API, the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/subscriptionBillingAttemptCreate" target="_blank" class="body-link"><code>SubscriptionBillingAttemptCreate</code></a> mutation now prevents the creation of Billing Attempts if a subscription contract has a terminal status: <code>EXPIRED</code>, <code>CANCELLED</code>, <code>STALE</code>.</p>
<p>We've also added the <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/enums/BillingAttemptUserErrorCode#value-contractterminated" target="_blank" class="body-link"><code>CONTRACT_TERMINATED</code></a> error code to the <code>BillingAttemptUserErrorCode</code> enum. This new error code is returned in the case where Billing Attempt creation is prevented.</p>
<p>Learn more about the Subscription Contracts API and Billing Attempts on <a href="https://shopify.dev/docs/apps/selling-strategies/subscriptions/contracts/create#step-4-create-a-billing-attempt" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jan 2024 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/subscription-billing-attempt-is-now-prevented-if-a-subscription-contract-has-terminal-status</link>
  </item>
  <item>
    <title>Product type is now translatable</title>
    <description><![CDATA[ <div class=""><p>Using the <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/translationsRegister" target="_blank" class="body-link">TranslationsRegister GraphQL API</a>, you can now register translations for Product types.</p>
<p>Product type filters will now be displayed to customers shopping in the store's non-default language.</p>
<p>Learn more about <code>TranslatableResourceTypes</code> on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/TranslatableResourceType" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 22 Dec 2023 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/product-type-is-now-translatable</link>
  </item>
  <item>
    <title>Metaobject Pages now available in Storefront Menus</title>
    <description><![CDATA[ <div class=""><p>As of API version 2024-01, you are now able to incorporate links to Metaobject pages as menu items in your Storefront <a href="https://shopify.dev/docs/api/storefront/2024-01/objects/Menu" target="_blank" class="body-link">Menus</a>. Please note that only Metaobjects with both <code>Renderable</code> and <code>OnlineStore</code> capabilities enabled are eligible for Online Store URLs.</p>
<p>Learn more about Metaobject Pages on <a href="https://shopify.dev/docs/apps/custom-data/metaobjects/capabilities#make-your-metaobjects-render-web-pages-in-the-online-store" target="_blank" class="body-link">shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Fri, 22 Dec 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/metaobject-pages-now-available-in-storefront-menus</link>
  </item>
  <item>
    <title>Optional Address Validation in Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of Storefront API's 2024-04 release, you can use <code>buyerIdentity.deliveryAddressPreferences.deliveryAddressValidationStrategy</code> (accepted values <code>STRICT</code> or <code>COUNTRY_CODE_ONLY</code>) to enable address validation on the passed <code>deliveryAddress</code> for any cart mutations that accept a buyer identity as input (like <code>cartCreate</code>or <code>cartBuyerIdentityUpdate</code>).</p>
<p>Passing <code>STRICT</code> will perform a full validation on the address fields, and will raise <code>CartUserError</code>s for invalid addresses. Invalid addresses will not be stored on the cart.</p>
<p>Passing <code>COUNTRY_CODE_ONLY</code> or omitting the field will only validate the presence of a valid country in the address (unchanged behavior from previous version).</p>
</div> ]]></description>
    <pubDate>Tue, 19 Dec 2023 17:09:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-04</category>
    <link>https://shopify.dev/changelog/optional-address-validation-in-storefront-api</link>
  </item>
  <item>
    <title>Theme editor now supports metaobject references in text settings</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/themes/architecture/settings/input-settings#richtext" target="_blank" class="body-link">richtext</a>, <a href="https://shopify.dev/docs/themes/architecture/settings/input-settings#text" target="_blank" class="body-link">text</a>, and <a href="https://shopify.dev/docs/themes/architecture/settings/input-settings#inline_richtext" target="_blank" class="body-link">inline_text</a> settings in the theme editor are now compatible with text fields of metaobject reference lists. For example, merchants can now create a list of product materials on a product detail page via the richtext setting using dynamic sources. </p>
<p>This includes updates to the <a href="https://shopify.dev/docs/api/liquid/filters/metafield_tag" target="_blank" class="body-link">metafield_tag</a> and <a href="https://shopify.dev/docs/api/liquid/filters/metafield_text" target="_blank" class="body-link">metafield_text</a> Liquid filters to support metaobject reference metafields. 
For example: 
{{ product.metafields.custom.authors | metafield_text: field: &quot;name&quot; }}
will output an author's name. 
More information on the liquid implementation can be found on the <a href="https://shopify.dev/docs/themes/architecture/settings/dynamic-sources" target="_blank" class="body-link">dynamic sources docs</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 19 Dec 2023 13:44:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/theme-editor-now-supports-metaobject-references-in-text-settings</link>
  </item>
  <item>
    <title>Filter price list prices by product and variant IDs</title>
    <description><![CDATA[ <div class=""><p>As of the  <code>2024-01</code> version of the Admin GraphQL API, you can filter the <code>prices</code> connection on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/PriceList#connection-pricelist-prices" target="_blank" class="body-link">Price List</a> using a <code>query</code> param with supported <code>product_id</code> and <code>variant_id</code> filters.</p>
<p>Learn more about the Price List API on <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/PriceList" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Dec 2023 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>Admin GraphQL API</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/filter-price-list-prices-by-product-and-variant-ids</link>
  </item>
  <item>
    <title>Modal API added to the latest version of App Bridge</title>
    <description><![CDATA[ <div class=""><p>With the latest version of App Bridge, you can use the <a href="https://shopify.dev/docs/api/app-bridge-library/reference/modal" target="_blank" class="body-link">modal</a> API with custom DOM content.</p>
<p>You can also use the new max modal variant.  This is the replacement for the previous Fullscreen API. Learn more about it in the <a href="https://shopify.dev/docs/api/app-bridge-library/reference/modal" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 14 Dec 2023 18:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/modal-api-added-to-the-latest-version-of-app-bridge</link>
  </item>
  <item>
    <title>General availability of Shipping Discount Function API</title>
    <description><![CDATA[ <div class=""><p>As of API Version <code>2024-01</code>, the Shipping Discount Function API will be available to use on all merchant stores.</p>
<p>This Discount Function API can be used for use cases such as:</p>
<ul>
<li>Discounting specific delivery options (e.g. Free standard shipping only)</li>
<li>Discounting shipping based on contents of cart (e.g. Buy this candle and get free shipping)</li>
<li>Discounting shipping based on buyer identity, how many orders they’ve placed, etc.</li>
</ul>
<p>Please note that the <code>discountApplicationStrategy</code> on <code>FunctionRunResult</code> (and its predecessor, <code>FunctionResult</code> field) is being deprecated, and removed in <code>2024-01</code>. </p>
<p>You can learn more about the <a href="https://shopify.dev/docs/api/functions/reference/shipping-discounts" target="_blank" class="body-link">Shipping Discount Function API here</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 07 Dec 2023 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/general-availability-of-shipping-discount-function-api</link>
  </item>
  <item>
    <title>`InventoryQuantity` GraphQL object now has a globally-unique ID in Admin API </title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-01</strong> , you can use the <code>ID</code> field to identify an <a href="https://shopify.dev/docs/api/admin-graphql/2024-01/objects/InventoryQuantity#field-inventoryquantity-id" target="_blank" class="body-link">InventoryQuantity</a> object. This object now implements <code>Node</code> interface.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Dec 2023 20:43:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/inventoryquantity-graphql-object-now-has-a-globally-unique-id-in-admin-api</link>
  </item>
  <item>
    <title>Customer Accounts Extensibility is now available in Developer Preview</title>
    <description><![CDATA[ <div class=""><p>We’ve unlocked the ability for partners to add unique and powerful functionality to the customer account experience by building extensions directly into new customer accounts. </p>
<p>Starting today, <a href="https://shopify.dev/docs/apps/customer-accounts" target="_blank" class="body-link">customer accounts extensibility</a> is now available in developer preview, allowing partners to build extensions on new customer account pages (such as the order index, order status and customer profile pages), add highly visible order actions and create full-page extensions tailored to specific merchant needs.</p>
<p>Join us in creating better buying experiences, where customers navigate seamlessly across apps, with one single login. </p>
<p><a href="https://shopify.dev/docs/apps/customer-accounts" target="_blank" class="body-link">Start building today</a> </p>
<p>Get started by reading our <a href="https://shopify.dev/docs/apps/customer-accounts" target="_blank" class="body-link">developer documentation</a> and <a href="https://discord.com/channels/842813079926603828/1175152827329425449" target="_blank" class="body-link">join us on Discord</a> December 14, 2023 at 1pm EST.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Dec 2023 20:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/customer-accounts-extensibility-is-now-available-in-developer-preview</link>
  </item>
  <item>
    <title>UI Extensions - Shipping method option list targets will be duplicated for possible types of delivery groups (One Time Purchases and Subscription)</title>
    <description><![CDATA[ <div class=""><p><em>Breaking change</em>: UI extensions on versions <code>2023-10</code> or older that use either the <code>purchase.checkout.shipping-option-list.render-before</code> or the <code>purchase.checkout.shipping-option-list.render-after</code> will no longer render if the checkout contains both a one time purchase and subscription item.</p>
<p> As of <code>2024-01</code>, <code>purchase.checkout.shipping-option-list.render-before</code> and <code>purchase.checkout.shipping-option-list.render-after</code> will be duplicated for possible types of delivery groups (One Time Purchase and Subscription). You can use the new <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/targets/shipping/purchase-checkout-shipping-option-list-render-before#shippingoptionlistapi" target="_blank" class="body-link"><code>ShippingOptionListApi</code></a> to target each delivery group in your extension.</p>
<p>The delivery group the extension is attached to will be passed as a <code>target</code>. In React, you can also use the <code>useDeliveryGroupTarget()</code> hook to retrieve the current delivery group. The target will be <code>undefined</code> if the group is not available, for example when the buyer hasn’t entered an address on One-page checkout, or when shipping is unavailable for this address.</p>
<p>We’re also introducing a new unique <code>id</code> on a <code>DeliveryGroup</code> to identify each delivery group. </p>
<p>If your extension is capturing buyer inputs at Checkout and storing the information in a metafield, you can use checkout attributes with a namespaced key to capture information for multiple delivery groups rendered on Checkout. <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/targets/shipping/purchase-checkout-shipping-option-list-render-before#shippingoptionlistapi" target="_blank" class="body-link">See examples</a>.</p>
<p>These changes can be tested today using the Checkout Extensibility developer preview using the <code>unstable</code> api version.</p>
<p>Learn more about these API changes on <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/targets/shipping/purchase-checkout-shipping-option-list-render-before#shippingoptionlistapi" target="_blank" class="body-link">shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Wed, 06 Dec 2023 18:47:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/ui-extensions-shipping-method-option-list-targets-will-be-duplicated-for-possible-types-of-delivery-groups-one-time-purchases-and-subscription</link>
  </item>
  <item>
    <title>Automatic Discount Functions now apply to B2B sessions</title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of December 6th, 2023, Automatic Discounts created using Shopify Functions will apply by default to B2B customers. Previously, it wasn't possible to target B2B customers with discounts. Discount codes created using Shopify Functions are also available, but gated behind a beta flag, so merchants will need to explicitly opt-in for their store.</p>
<p>App developers can use the <a href="https://shopify.dev/docs/api/functions/reference/product-discounts/graphql/common-objects/purchasingcompany" target="_blank" class="body-link">BuyerIdentity.purchasingCompany</a> attribute on the Cart input to detect a B2B customer, and use that to customize the discount behavior for a merchant’s B2B audience. Examples of this could include: </p>
<ul>
<li>a discount that applies to B2B customers only</li>
<li>a discount that applies to a specific B2B company only</li>
<li>a discount that applies to D2C customers only</li>
</ul>
<p>Note: at this time, discounts are not compatible for B2B customers configured to <a href="https://help.shopify.com/en/manual/b2b/draft-orders" target="_blank" class="body-link">Submit all orders as drafts for review</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Dec 2023 15:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/automatic-discount-functions-now-apply-to-b2b-sessions</link>
  </item>
  <item>
    <title>Shopify Function to uniformly use the GraphQL scalar Handle </title>
    <description><![CDATA[ <div class=""><p>As of 2024-01, fields returning a &quot;handle&quot; will use an appropriate <code>Handle</code> scalar as their type, instead of a <code>String</code>. This signals that this type is not just any string, but specifically a handle. This specificity will help prevent bugs that could be caused by unexpected data.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Dec 2023 05:01:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/shopify-function-to-uniformly-use-the-graphql-scalar-handle</link>
  </item>
  <item>
    <title>Addition of LineItem current_quantity on Admin REST API</title>
    <description><![CDATA[ <div class=""><p>Partners currently using refund line items to calculate a line item’s current quantity should migrate to using the new current_quantity field as it is a more reliable method. We recommend migrating to GraphQL as a general practice, however the current_quantity field has been added to indicate a line item’s current quantity after removals as of Admin REST API version 2024-01.</p>
<p>Learn more about the Order.line_items object on <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Dec 2023 18:07:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/addition-of-lineitem-current_quantity-on-admin-rest-api</link>
  </item>
  <item>
    <title>Collaborator request code now required to initiate request for store access</title>
    <description><![CDATA[ <div class=""><p>Partners must now obtain a unique code to initiate a collaborator request and access a merchant’s store.</p>
<p>Collaborator request codes, previously optional, are now enabled by default for all merchants. This change gives merchants more control over who can access their store as collaborators, by ensuring that only those with the unique code can send a collaborator request.</p>
<p>Learn more about collaborator requests in the <a href="https://help.shopify.com/en/partners/dashboard/managing-stores/request-access" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Dec 2023 20:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/collaborator-request-code-now-required-to-initiate-request-for-store-access</link>
  </item>
  <item>
    <title>Customer Account API schema improvements</title>
    <description><![CDATA[ <div class=""><p>As of release candidate API version 2024-01, the <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">schema</a> for the Customer Account API has evolved significantly resulting in breaking changes. This update is necessary to ensure a more streamlined developer experience. Support has also been added to redirect buyers to a specific URI after logout with the <code>post_logout_redirect_uri</code> query parameter, providing a solution for custom storefronts with multiple domains. Additionally, mutations for modifying marketing subscriptions have been added with <code>customerEmailMarketingSubscribe</code> and <code>customerEmailMarketingUnsubscribe</code>. The Customer Account API is available in Developer Preview and accessible via the Hydrogen and Headless channels. We encourage developers to <a href="https://discord.com/channels/842813079926603828/877582067750305832" target="_blank" class="body-link">provide feedback</a> to help shape future iterations of this API.</p>
<p>Learn more about the schema updates and the new features in the <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-customer-account-api/" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Dec 2023 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/customer-account-api-schema-improvements</link>
  </item>
  <item>
    <title>Introducing webhook topics for discount events</title>
    <description><![CDATA[ <div class=""><p>We’ve introduced dedicated webhook topics that will be sent out whenever a discount has been created, updated or deleted, enabling developers to keep their discount apps in sync.</p>
<p>Learn more <a href="https://shopify.dev/docs/api/admin-rest/latest/resources/webhook" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Mon, 04 Dec 2023 08:18:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-webhook-topics-for-discount-events</link>
  </item>
  <item>
    <title>Introducing the new Customer Data Erasure API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-01</strong>, we are excited to introduce the Customer Data Erasure API. This API allows merchants to handle customer data erasure requests in compliance with GDPR, CCPA, and other data protection regulations. The API includes two new mutations:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/customerRequestDataErasure" target="_blank" class="body-link">customerRequestDataErasure</a> enqueues a request to erase customer's data.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/customerCancelDataErasure" target="_blank" class="body-link">customerCancelDataErasure</a> cancels a pending erasure of a customer's data.</li>
</ul>
<p>To learn more about how data erasure is processed and the impact on customer data, please refer to the <a href="https://help.shopify.com/en/manual/privacy-and-security/privacy/processing-customer-data-requests#erase-customer-personal-data" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 30 Nov 2023 15:30:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/introducing-the-new-customer-data-erasure-api</link>
  </item>
  <item>
    <title>Shopify Functions run logs now include production store executions</title>
    <description><![CDATA[ <div class=""><p>All Shopify Functions executions are now visible for production stores in your <a href="https://partners.shopify.com/current/apps" target="_blank" class="body-link">Partner Dashboard</a>.</p>
<p>Run details are only available for failed runs that have been shared by users.</p>
<p>More information can be found on Shopify.dev:</p>
<ul>
<li><a href="https://shopify.dev/docs/apps/functions/testing-and-debugging" target="_blank" class="body-link">Testing and debugging practices for Shopify Functions</a></li>
<li><a href="https://shopify.dev/docs/api/functions/errors" target="_blank" class="body-link">Shopify Functions error handling</a></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 29 Nov 2023 14:59:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-run-logs-now-include-production-store-executions</link>
  </item>
  <item>
    <title>AppSubscriptionDiscountInput.durationLimitInIntervals will no longer accept 0</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2024-01, AppSubscriptionDiscountInput.durationLimitInIntervals will no longer accept 0. To create a discount with an unlimited duration, durationLimitInIntervals should not be provided.</p>
</div> ]]></description>
    <pubDate>Tue, 28 Nov 2023 13:42:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/appsubscriptiondiscountinput-durationlimitinintervals-will-no-longer-accept-0</link>
  </item>
  <item>
    <title>[Developer preview] Checkout Kit for Android</title>
    <description><![CDATA[ <div class=""><p>Shopify’s Checkout Kit for Android enables you to provide the world’s highest converting, customizable, one-page checkout directly within a mobile app. The presented experience is a fully-featured checkout that preserves all of the store customizations: Checkout UI extensions, Scripts, Functions, Web Pixels, and more. It also provides platform idiomatic defaults such as support for light and dark mode, and convenient APIs to embed, customize, and follow the lifecycle of the checkout experience.</p>
<p>Today we are launching <a href="https://github.com/Shopify/mobile-checkout-sdk-android" target="_blank" class="body-link">Developer Preview of the Mobile Kit for Android</a>, as a follow up to our iOS <a href="https://shopify.dev/changelog/developer-preview-mobile-checkout-sdk-for-ios" target="_blank" class="body-link">deverloper preview launch on October 19th</a>.</p>
<p>More information can be found in our <a href="https://www.shopify.com/partners/blog/mobile-checkout-sdks-for-ios-and-android" target="_blank" class="body-link">blog post</a> as well as in the <a href="https://github.com/Shopify/mobile-checkout-sdk-android" target="_blank" class="body-link">Github repository</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 16 Nov 2023 15:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developer-preview-checkout-kit-for-android</link>
  </item>
  <item>
    <title>Breaking changes to Variants API: Removal of &quot;ProductVariantsBulkInput.imageId&quot; and &quot;ProductVariantsBulkInput.imageSrc&quot;</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-01</strong>, we are removing the deprecated <code>imageId</code> and <code>imageSrc</code> fields from the <code>ProductVariantsInput</code> input object. Please use the <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductVariantsBulkInput#field-productvariantsbulkinput-mediaid" target="_blank" class="body-link"><code>mediaId</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductVariantsBulkInput#field-productvariantsbulkinput-mediasrc" target="_blank" class="body-link"><code>mediaSrc</code></a> fields instead.</p>
<p>Learn more about the usage of the <code>media</code> fields on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 14 Nov 2023 10:52:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-variants-api-removal-of-productvariantsbulkinput-imageid-and-productvariantsbulkinput-imagesrc</link>
  </item>
  <item>
    <title>UI extensions on the Thank you and Order status pages have launched</title>
    <description><![CDATA[ <div class=""><p>As of 2023-11-07, Checkout Extensibility on the Thank you and Order status pages is available to plus merchants. Merchants can now make code-free, app-based, upgrade-safe customizations throughout the buying journey to create holistic and consistent experiences.</p>
<p>Checkout Extensibility replaces checkout.liquid, apps with script tags and additional scripts on the Thank you and Order status pages. </p>
<p>Script tags, additional scripts and checkout.liquid on the Thank you and Order status pages are now deprecated. Merchants have been notified of the following turn off dates:</p>
<ul>
<li>August 13, 2024 - the removal date of checkout.liquid for in-checkout pages</li>
<li>August 28, 2025 - the removal date of checkout.liquid, apps with script tags and additional scripts on the thank you and order status page</li>
</ul>
<p>Shops that aren't upgraded during these dates will be upgraded to an un-customized out-of-the-box Shopify Checkout.</p>
</div> ]]></description>
    <pubDate>Tue, 07 Nov 2023 17:45:00 +0000</pubDate>
    <category>Platform</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/ui-extensions-on-the-thank-you-and-order-status-pages-have-launched</link>
  </item>
  <item>
    <title>Storefront API `Cart.checkoutUrl` now contains key param</title>
    <description><![CDATA[ <div class=""><p>The Storefront API Cart now returns a new <code>key</code> param appended to <code>CheckoutUrl</code> that is required to render buyer information in checkout. This behavior is applied retroactively to all versions of the Storefront API. </p>
<p>The param is validated and removed as the buyer is navigated into checkout. This change is transparent to the buyer and does not affect what they see in the browser or their ability to copy and share checkout URLs. When a checkout is loaded without the valid key, the cart is cloned, and buyer information is removed.</p>
<p><strong>Example Format:</strong> <a href="https://example-shop.com/cart/c/c1-09av29f248bb6420de3842b051f6a1a3?key=824bdj25mhg1242bdb385" target="_blank" class="body-link">https://example-shop.com/cart/c/c1-09av29f248bb6420de3842b051f6a1a3?key=824bdj25mhg1242bdb385</a></p>
<p><strong>Action Required:</strong>
If your app is manually constructing checkout URLs from cart IDs, you need to switch and use <code>cart.checkoutUrl</code>. If you’re augmenting the <code>cart.checkoutUrl</code> with additional parameters, update and validate that your code does not override the parameter and returns a valid destination URL. </p>
</div> ]]></description>
    <pubDate>Mon, 06 Nov 2023 10:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-checkouturl-now-contains-key-param</link>
  </item>
  <item>
    <title>Theme Store Full-funnel Google Analytics attribution</title>
    <description><![CDATA[ <div class=""><p>We’ve added visibility into the theme install event itself as part of our existing integration with Google Analytics. </p>
<p>In addition to having full visibility into the theme install event, you can also now tie the theme install event to a Shop ID, enabling richer insights on the type of merchants that are installing your theme. </p>
<p>Learn more on our <a href="https://www.shopify.com/partners/blog/google-analytics-app-and-theme-install-event" target="_blank" class="body-link">blog</a> and <a href="https://shopify.dev/docs/themes/store/review-process/listings#google-analytics-code" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Nov 2023 20:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/theme-store-full-funnel-google-analytics-attribution</link>
  </item>
  <item>
    <title>Introduce subscriptions contracts cleanup mechanism</title>
    <description><![CDATA[ <div class=""><p>We've added a new cleanup process for Subscription Contracts.</p>
<p>This process involves automatically canceling any Subscription Contracts owned by the subscription app that have not been terminated. These contracts may be in the <code>active</code>, <code>paused</code>, or <code>failed</code> status. The cancellation will occur 48 hours after a user uninstalls the app. </p>
<p>This is aligned with our <a href="https://shopify.dev/docs/apps/selling-strategies/subscriptions/selling-plans/manage#step-1-create-a-selling-plan-group" target="_blank" class="body-link">purchase options cleanup process</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Nov 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introduce-subscriptions-contracts-cleanup-mechanism</link>
  </item>
  <item>
    <title>[Developer Preview] Cart Transform API - Updating lines in the cart</title>
    <description><![CDATA[ <div class=""><p>Previously, the Cart Transform API enabled functions to <code>expand</code> a single cart line item to form a bundle of components or add-on products, or <code>merge</code> multiple cart lines into a single line that represents a bundle.</p>
<p>With this release, <code>update</code> operations will also allow you to override the price, title, and/or image of a given line item. This gives you more more flexibility to make additional customizations to items in the cart.</p>
<p>More information can be found in the Cart Transform API <a href="https://shopify.dev/docs/api/functions/reference/cart-transform/developer-preview" target="_blank" class="body-link">developer preview documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 31 Oct 2023 21:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/developer-preview-cart-transform-api-updating-lines-in-the-cart</link>
  </item>
  <item>
    <title>Hydrogen 2023.10 has been released</title>
    <description><![CDATA[ <div class=""><p>Hydrogen <a href="https://github.com/Shopify/hydrogen/releases/tag/%40shopify%2Fhydrogen%402023.10.0" target="_blank" class="body-link">v2023.10</a> is now available. This release includes a number of new features and breaking changes.</p>
<h3>Remix 2.0 (breaking change)</h3>
<ul>
<li>Hydrogen 2023.10 now uses <a href="https://github.com/remix-run/remix/releases/tag/remix%402.0.0" target="_blank" class="body-link">Remix 2</a>.</li>
<li>Remix has also been made a peer dependency, so you can keep your Remix package updated independently of Hydrogen.</li>
</ul>
<h3>Other breaking changes</h3>
<ul>
<li>Hydrogen's default caching strategy has been <a href="https://github.com/Shopify/hydrogen/pull/1336" target="_blank" class="body-link">updated</a> to have a longer <code>stale-while-revalidate</code> period.</li>
<li>A dependency bump for <code>@graphql-codegen/typescript</code>  to <a href="https://github.com/dotansimha/graphql-code-generator/blob/master/packages/plugins/typescript/typescript/CHANGELOG.md#400" target="_blank" class="body-link">v4</a> will require updates to <code>Scalar</code> types if you import them directly from Hydrogen or Hydrogen React.</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>All packages and examples now query <code>v2023-10</code> API versions.</li>
<li>Hydrogen now includes an <a href="https://github.com/Shopify/hydrogen/pull/1430" target="_blank" class="body-link">API client</a> for the <a href="https://shopify.dev/docs/api/customer" target="_blank" class="body-link">Customer Account API</a>.</li>
<li>Custom cart methods are now <a href="https://github.com/Shopify/hydrogen/pull/1440" target="_blank" class="body-link">stable</a>.</li>
<li>The GraphiQL client available through the local development server <a href="https://github.com/Shopify/hydrogen/pull/1470" target="_blank" class="body-link">now includes</a> the <a href="https://github.com/OneGraph/graphiql-explorer" target="_blank" class="body-link">GraphiQL Explorer plugin</a>, which makes it easier to browse GraphQL resources.</li>
<li>Props and parameters that were deprecated in v2023-07 have been removed.</li>
<li>Additional dependency bumps, patches, and fixes.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 31 Oct 2023 18:51:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/hydrogen-2023-10-has-been-released</link>
  </item>
  <item>
    <title>Changes to Point of Sales (POS) payment processing behavior</title>
    <description><![CDATA[ <div class=""><p>We're changing how payments are processed on POS in order to bring order cancellations to POS. These changes will go into effect beginning October 31, 2023 for POS Pro and January 22, 2024 for Shopify Plus. </p>
<p>Payments may be authorized for up to 15 minutes before being captured automatically or voided by retail staff. As such, you may notice a few changes to the Admin and Storefront APIs.</p>
<p>On the Admin API, you may see:</p>
<ul>
<li><code>AUTHORIZED</code> as the <code>OrderDisplayFinancialStatus</code> for up to 15 minutes before transitioning to <code>PAID</code>. The status will transition to <code>VOIDED</code> if the order gets canceled within these 15 minutes.</li>
<li>Separate <code>OrderTransaction</code> objects with <code>AUTHORIZATION</code> and <code>CAPTURE</code> as the <code>OrderTransactionKind</code> when the payment is authorized and captured, instead of a single transaction with the <code>SALE</code> kind.</li>
<li>Separate <code>OrderTransaction</code> objects with <code>AUTHORIZATION</code> and <code>VOID</code> as the <code>OrderTransactionKind</code> when the payment is authorized and voided.</li>
<li>An empty array for <code>SuggestedRefund.suggestedTransactions</code> until payments in the order have been captured.</li>
</ul>
<p>On the Storefront API, the <code>OrderFinancialStatus</code> will exhibit the same behavior as the <code>OrderDisplayFinancialStatus</code> on the Admin API.</p>
<p>Learn more about canceling orders on POS <a href="https://help.shopify.com/en/manual/sell-in-person/shopify-pos/order-management/complete-refund-orders" target="_blank" class="body-link">here</a>.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/enums/OrderDisplayFinancialStatus" target="_blank" class="body-link">OrderDisplayFinancialStatus</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/enums/OrderTransactionKind" target="_blank" class="body-link">OrderTransactionKind</a>, and <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/objects/SuggestedRefund" target="_blank" class="body-link">SuggestedRefund</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 31 Oct 2023 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/changes-to-point-of-sales-pos-payment-processing-behavior</link>
  </item>
  <item>
    <title>Breaking changes to Products API: Deprecate &quot;ProductInput.images&quot;</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2024-01</strong>, we're deprecating the <code>images</code> field from the <code>ProductInput</code> input object and replacing it with a <code>media</code> argument in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productcreate#argument-media" target="_blank" class="body-link"><code>productCreate</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productupdate#argument-media" target="_blank" class="body-link"><code>productUpdate</code></a> mutations.</p>
<p>Learn more about the usage of the <code>media</code> field on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 24 Oct 2023 18:27:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-products-api-deprecate-productinput-images</link>
  </item>
  <item>
    <title>UI extensions - the order status page is getting a new look</title>
    <description><![CDATA[ <div class=""><p>As of 2023-10-24, the order status page is getting a new look with updated visual treatment that is consistent with new customer accounts. This change will be rolling out progressively to all developer shops on checkout extensibility developer preview to ensure a smooth transition. </p>
<p>To view this change in developer shops on the checkout extensibility developer preview, navigate to <strong>Settings &gt; Checkout &gt; Customize</strong> and select <strong>Order Status</strong> from the page dropdown.</p>
<p>No action is required and there should be no changes to any UI extensions in development.</p>
<p>Learn more about UI extensions on the thank you and order status pages on <a href="https://shopify.dev/docs/apps/checkout/thank-you-order-status" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 24 Oct 2023 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/ui-extensions-the-order-status-page-is-getting-a-new-look</link>
  </item>
  <item>
    <title>New fields on Country Liquid object</title>
    <description><![CDATA[ <div class=""><p>We've added the <code>available_languages</code>, <code>continent</code> and <code>popular?</code> properties on the <code>country</code> object in Liquid. </p>
<p>You can now access the languages that have been added to the market that a country belongs to, the country's translated continent name, and whether the country is a popular one amongst those that the shop sells to. </p>
<p>These properties provide flexibility when building a localization switcher, allowing customers to switch country and language simultaneously and allowing for grouping or sorting countries in a theme's country selector</p>
<p>Learn more about these new fields in the <a href="https://shopify.dev/docs/api/liquid/objects/country#country" target="_blank" class="body-link">dev docs</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 23 Oct 2023 16:07:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-fields-on-country-liquid-object</link>
  </item>
  <item>
    <title>[Developer Preview] Mobile Checkout SDK for iOS</title>
    <description><![CDATA[ <div class=""><p>Shopify’s Mobile Checkout SDKs enables you to provide the world’s highest converting, customizable, one-page checkout directly within a mobile app. The presented experience is a fully-featured checkout that preserves all of the store customizations: Checkout UI extensions, Scripts, Functions, Web Pixels, and more. It also provides platform idiomatic defaults such as support for light and dark mode, and convenient APIs to embed, customize, and follow the lifecycle of the checkout experience.</p>
<p>Today we are launching <a href="https://github.com/Shopify/mobile-checkout-sdk-ios" target="_blank" class="body-link">Developer Preview of the Checkout SDK for iOS</a>, with our Android SDK coming very soon. The SDKs are open-source and ready for you start building. During this developer preview, the APIs are subject to change as we adapt to feedback.</p>
<p>More information can be found in our <a href="https://www.shopify.com/partners/blog/mobile-checkout-sdks-for-ios-and-android" target="_blank" class="body-link">blog post</a> as well as in the <a href="https://github.com/Shopify/mobile-checkout-sdk-ios" target="_blank" class="body-link">Github repository</a> and all feedback is welcome <a href="https://github.com/Shopify/mobile-kit-feedback/discussions" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Oct 2023 17:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developer-preview-mobile-checkout-sdk-for-ios</link>
  </item>
  <item>
    <title>[Developer Preview] Cart Transform API - Pricing bundles per component &amp; additional customizations</title>
    <description><![CDATA[ <div class=""><p>Previously, the Cart Transform API allowed percentage based adjustments to the cost of a bundle when using <code>expand</code> operations. The (weight price algorithm) (<a href="http://shopify.dev/docs/api/functions/reference/cart-transform/developer-preview#/weight-" target="_blank" class="body-link">http://shopify.dev/docs/api/functions/reference/cart-transform/developer-preview#/weight-</a>
price-algorithm) would then allocate the bundle price to its component lines based on the weight of each component line (unit price * quantity).</p>
<p>With this release, <code>expand</code> operations will also allow you to set fixed prices on each component of the bundle, resulting in a bundle price that is the sum of each component. Additionally, the <code>expand</code> operation will now allow you to define a custom title and image for each parent line item. </p>
<p>This gives you more control over bundle pricing and enables bundles to be used for add-on products.</p>
<p>More information can be found in the Cart Transform API <a href="https://shopify.dev/docs/api/functions/reference/cart-transform/developer-preview" target="_blank" class="body-link">developer preview documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 13 Oct 2023 17:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/developer-preview-cart-transform-api-pricing-bundles-per-component-additional-customizations</link>
  </item>
  <item>
    <title>Display Business Imprint on Shopify's App Store and Theme Store</title>
    <description><![CDATA[ <div class=""><p>Starting October 11, 2023, Shopify's App Store and Theme Store will display the partner's geographical address and contact information in order to be in compliance with Business Imprint legal requirements. All partners should ensure their information is up to date.</p>
<p>Learn more about Business Imprint in the <a href="https://help.shopify.com/en/partners/faq/business-imprint" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Oct 2023 20:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/display-business-imprint-on-shopify-s-app-store-and-theme-store</link>
  </item>
  <item>
    <title>App Store listings are now automatically translated into 8 languages</title>
    <description><![CDATA[ <div class=""><p>Now every English-language primary app listing is automatically translated into the 8 languages listed below, unless the partner provides their own translated listings for any of those languages.</p>
<ul>
<li>Brazilian Portuguese</li>
<li>Danish</li>
<li>Dutch</li>
<li>French</li>
<li>German</li>
<li>Simplified Chinese</li>
<li>Spanish</li>
<li>Swedish</li>
</ul>
<p>This will improve the experience of our international merchants, and significantly boost app installs in non-English speaking markets (by as much as 20%). To maximize the effect, complement translated listings with <a href="https://shopify.dev/docs/apps/best-practices/internationalization" target="_blank" class="body-link">translating your app’s UI</a>.</p>
<p>Learn more about automated listing translation on <a href="https://shopify.dev/docs/apps/store/requirements#translate-your-app-listing" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 10 Oct 2023 13:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/app-store-listings-are-now-automatically-translated-into-8-languages</link>
  </item>
  <item>
    <title>Shopify Flow - Use dev command to preview tasks and use more complex data in triggers</title>
    <description><![CDATA[ <div class=""><p>With this update, the <code>dev</code> command is now supported for Flow extensions, you can use more complex data in your triggers, and Flow in the CLI is generally available. </p>
<h2>Flow in the CLI</h2>
<p>Flow in the Shopify CLI is now generally available. We still welcome feedback at <a href="mailto:flow-connectors-dev@shopify.com" target="_blank" class="body-link">flow-connectors-dev@shopify.com</a></p>
<p>Previously, Flow actions and triggers were defined in the partner dashboard. As <a href="https://www.npmjs.com/package/@shopify/cli" target="_blank" class="body-link">Shopify CLI </a> adoption has expanded, this meant that you needed to manage and deploy your Flow extensions separately from the rest of your app. </p>
<p>Going forward, you will now create your Flow tasks and actions through the CLI. You follow these guides for how to create both <a href="https://shopify.dev/docs/apps/flow/triggers/create-a-trigger" target="_blank" class="body-link">triggers</a> and <a href="https://shopify.dev/docs/apps/flow/actions/create-an-action" target="_blank" class="body-link">actions</a> through the CLI. In addition, you can <a href="https://shopify.dev/docs/apps/flow/migrating-flow-legacy-extensions" target="_blank" class="body-link">migrate your existing tasks</a> to be CLI-managed, unifying your code. For more details on what is possible, you can also consult Flow’s reference guide for <a href="https://shopify.dev/docs/apps/flow/triggers/reference" target="_blank" class="body-link">triggers</a> and <a href="https://shopify.dev/docs/apps/flow/actions/reference" target="_blank" class="body-link">actions</a>.</p>
<h2>Dev command</h2>
<p>You can now also use the <code>dev</code> <a href="https://shopify.dev/docs/apps/tools/cli/commands#dev" target="_blank" class="body-link">command</a> to preview Flow tasks in your development store. See our docs for <a href="https://shopify.dev/docs/apps/flow/triggers/create-a-trigger#step-3-enable-the-draft-version-of-your-trigger" target="_blank" class="body-link">triggers</a> and <a href="https://shopify.dev/docs/apps/flow/actions/create-an-action#step-4-enable-the-draft-version-of-your-action" target="_blank" class="body-link">actions</a>.</p>
<h2>Complex data in triggers</h2>
<p>Finally, like actions, Flow triggers now support more <a href="https://shopify.dev/docs/apps/flow/using-complex-data-types" target="_blank" class="body-link">complex data structures</a>, like lists and objects, making it easier than ever to build your triggers in Flow. </p>
<h2>Requirements</h2>
<p>To create Flow extensions using the CLI, version 3.48 or higher is required. To use <code>dev</code> version 3.49 or higher is required.</p>
</div> ]]></description>
    <pubDate>Wed, 04 Oct 2023 21:28:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-flow-use-dev-command-to-preview-tasks-and-use-more-complex-data-in-triggers</link>
  </item>
  <item>
    <title>Shopify Function configurations now use target identifiers</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-10 and Shopify CLI 3.49.5, <a href="https://shopify.dev/docs/apps/functions" target="_blank" class="body-link">Shopify Functions</a> configuration now uses <a href="https://shopify.dev/docs/apps/app-extensions/configuration#targets" target="_blank" class="body-link">targets</a> to identify backend extensibility points in Shopify, so that configuring a function is now more like configuring other app extensions.</p>
<p>All Shopify Function APIs now support <code>[targeting]</code> configuration, with an extension target mapping to a specific WebAssembly export.</p>
<pre><code>[[extensions.targeting]]
target = &quot;purchase.validation.run&quot;
input_query = &quot;src/run.graphql&quot;
export = &quot;run&quot;
</code></pre>
<p>Existing functions without <code>targeting</code> specified will continue to execute and deploy without any changes required. Use of <code>targeting</code> requires <a href="https://shopify.dev/docs/apps/tools/cli#upgrade-shopify-cli" target="_blank" class="body-link">upgrading</a> Shopify CLI to 3.49.4 or higher.</p>
<p>For more information, you can reference:</p>
<ul>
<li><a href="https://shopify.dev/docs/apps/app-extensions/configuration" target="_blank" class="body-link">Configuring app extensions</a></li>
<li><a href="https://shopify.dev/docs/api/functions/configuration" target="_blank" class="body-link">Function configuration</a></li>
<li><a href="https://shopify.dev/docs/api/functions" target="_blank" class="body-link">Function API references</a></li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 02 Oct 2023 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/shopify-function-configurations-now-use-target-identifiers</link>
  </item>
  <item>
    <title>New fields available for Shopify Functions input queries</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-10, <a href="https://shopify.dev/docs/apps/functions" target="_blank" class="body-link">Shopify Functions</a> APIs now include the following values in their input query GraphQL schema, so that you can do more with Functions!</p>
<ul>
<li>A <code>shop</code> field is now available on the input root (<a href="https://shopify.dev/docs/api/functions/reference/product-discounts/graphql/common-objects/shop" target="_blank" class="body-link">example</a>), which includes:<ul>
<li>A <code>localTime</code> field, which provides the current date and allows testing the current time and date relative to provided arguments. (<a href="https://shopify.dev/docs/api/functions/reference/product-discounts/graphql/common-objects/localtime" target="_blank" class="body-link">example</a>)</li>
<li>A <code>metafield</code> field, which provides access to shop-level metafields.</li>
</ul>
</li>
<li>All Function APIs now include <code>localization</code> as part of their input root. (<a href="https://shopify.dev/docs/api/functions/reference/product-discounts/graphql/common-objects/localization" target="_blank" class="body-link">example</a>)</li>
<li>All Function APIs now include <code>presentmentCurrencyRate</code> as part of their input root. (<a href="https://shopify.dev/docs/api/functions/reference/product-discounts/graphql/input" target="_blank" class="body-link">example</a>)</li>
</ul>
<p>For more information, refer to the <a href="https://shopify.dev/docs/api/functions" target="_blank" class="body-link">Shopify Function API references</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 02 Oct 2023 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/new-fields-available-for-shopify-functions-input-queries</link>
  </item>
  <item>
    <title>Shopify Functions now support localization of their name and description</title>
    <description><![CDATA[ <div class=""><p>Shopify Functions now supports localization of the function name and description. Function names and descriptions which are displayed in admin, such as the names of function discount types, can now be translated into the user’s native language.</p>
<p>Use of this localization requires <a href="https://shopify.dev/docs/apps/tools/cli#upgrade-shopify-cli" target="_blank" class="body-link">upgrading</a> Shopify CLI to 3.49.5 or higher.</p>
<p>Learn more about localization of functions on <a href="https://shopify.dev/docs/apps/functions/localization" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 02 Oct 2023 16:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-now-support-localization-of-their-name-and-description</link>
  </item>
  <item>
    <title>Updates to GraphQL Admin API for bundles</title>
    <description><![CDATA[ <div class=""><p>As of 2023-10, you can now <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/objects/LineItemGroup" target="_blank" class="body-link">query the product_variant_id  field of the <code>LineItemGroup</code></a> to identify which variant was used to model the bundle after it was purchased.</p>
<p>In addition, apps can now render custom UI for the bundles card on the product details page by <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/mutations/productCreate#field-productinput-claimownership" target="_blank" class="body-link">claiming bundle ownership of the product</a>.</p>
<p><a href="https://shopify.dev/docs/apps/selling-strategies/bundles/product-config" target="_blank" class="body-link">Learn more about the product configuration extension for bundles</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 02 Oct 2023 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/updates-to-graphql-admin-api-for-bundles</link>
  </item>
  <item>
    <title>New webhook topic added for Publication delete events</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-10, a new webhook topic <code>PUBLICATIONS_DELETE</code> is added. This webhook occurs whenever a publication is deleted and requires the <code>read_publications</code> scope.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/new-webhook-topic-added-for-publication-delete-events</link>
  </item>
  <item>
    <title>Staff error as Order cancel reason</title>
    <description><![CDATA[ <div class=""><p>As of 2023-10, we have added <code>STAFF</code> to the <code>OrderCancelReason</code> GraphQL type to serve as a reason for canceling orders due to staff errors.</p>
<p>Learn more about <code>OrderCancelReason</code> on <a href="https://shopify.dev/docs/api/admin-graphql/latest/enums/OrderCancelReason" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/staff-error-as-order-cancel-reason</link>
  </item>
  <item>
    <title>New compare-at price range field on Product API </title>
    <description><![CDATA[ <div class=""><p>As of version 2023-10 of the GrapqhQL Admin API, we've added the <code>compareAtPriceRange</code> field to <code>Product</code>  which will return the minimum and maximum compare-at prices across a product's variants.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/new-compare-at-price-range-field-on-product-api</link>
  </item>
  <item>
    <title>Cart Line Items Now Ordered in Reverse Chronological Order Based on Time of Addition</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-10</strong>, we've made changes to the ordering of line items in the cart. In the past, newly added items were placed at the end of the cart without explicit sorting. Now, line items will be sorted in reverse order by the time they were added to the cart, meaning the most recently added items will be positioned at the top.</p>
<p>Developers, be aware that this change could affect the ordering of cart items in your applications. If your app or store's functionality relies on the order of line items or an item's position in the cart, this update is especially relevant to you.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/cart-line-items-now-ordered-in-reverse-chronological-order-based-on-time-of-addition</link>
  </item>
  <item>
    <title>Apps can now change the name and address of their fulfillment service locations</title>
    <description><![CDATA[ <div class=""><p>As of the <code>2023-10</code> API version, apps can change the name and address of their fulfillment service locations using the <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/mutations/locationedit" target="_blank" class="body-link">LocationEdit</a> GraphQL mutation.</p>
<p>When a fulfillment service is created, Shopify also creates a new location and associates this with the new fulfillment service. This location inherits it's name from the fulfillment service.</p>
<p>Apps can now update the name and address of this location. For example, when a fulfillment service is created, it will inherit the country of the shop. If the fulfillment service is located in a different country from the shop, apps can now update the location to accurately reflect the address of the fulfillment service.</p>
<h3>API breaking changes</h3>
<h4>New user error when editing locations</h4>
<p>The <code>LocationEdit</code> mutation will return a new user error with the <code>CANNOT_MODIFY_ONLINE_ORDER_FULFILLMENT_FOR_FS_LOCATION</code> code if attempting to update the <code>fulfillsOnlineOrders</code> field for a fulfillment service location. This field can only be modified on manual locations. Fulfillment service locations are always enabled to fulfill online orders.</p>
<h4>New authorization check when attempting to edit a fulfillment service location</h4>
<p>From the <code>2023-10</code> API version, if you attempt to edit the location belonging to a fulfillment service without having the <code>write_fulfillments</code> access scope, you will get the following access denied error:</p>
<blockquote>
<p>Access denied for locationEdit field. Required access: <code>write_fulfillments</code> access scope is required to edit the location associated with a fulfillment service.</p>
</blockquote>
<p>Earlier API versions would return a user error with the <code>NOT_FOUND</code> code.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/apps-can-now-change-the-name-and-address-of-their-fulfillment-service-locations</link>
  </item>
  <item>
    <title>Making the primary market more flexible</title>
    <description><![CDATA[ <div class=""><p>As of 2023-10, you can customize the primary market in three new ways:</p>
<ul>
<li>The currency can be set to any currency independent of the merchant's shop currency.</li>
<li>The country can be set independently of the primary market's currency, such that combinations like Canada and USD are now possible.</li>
<li>Price lists can be created, allowing you to set fixed prices and percentage adjustments for the primary market.</li>
</ul>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/making-the-primary-market-more-flexible</link>
  </item>
  <item>
    <title>Removal of Customer averageOrderAmount fields on Admin API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-10</strong>, the following <code>Customer</code> fields have been deprecated: <code>averageOrderAmount</code>, <code>averageOrderAmountV2</code>.</p>
<p>Learn more about the <code>Customer</code> object on <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/objects/Customer" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/removal-of-customer-averageorderamount-fields-on-admin-api</link>
  </item>
  <item>
    <title>Manage Quantity Price Breaks for B2B Customers</title>
    <description><![CDATA[ <div class=""><p>As of the <code>2023-10</code> version of the Admin GraphQL API, you can view the <code>quantityPriceBreaks</code> for a product variant on <code>priceListPrice</code> and <code>productVariantContextualPricing</code>. Additionally, you will be able to use the <code>quantityPricingByVariantUpdate</code> mutation to manage quantity price breaks, quantity rules, and fixed prices for multiple variants.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/manage-quantity-price-breaks-for-b2b-customers</link>
  </item>
  <item>
    <title>Simplify Metafield interaction with default namespaces</title>
    <description><![CDATA[ <div class=""><p>Starting from 2023-10, the Admin and Storefront GraphQL APIs have made the namespace field optional when creating, updating, or querying Metafields and Metafield Definitions. We have updated all relevant mutations and queries to accommodate this change. When working with Metafields from an App, the default namespace will be the <a href="https://shopify.dev/docs/apps/custom-data/ownership" target="_blank" class="body-link">app reserved namespace</a>.</p>
<p>This update does not affect API calls that explicitly specify a namespace. However, it simplifies the process of interacting with namespaces by removing the need to provide a namespace field when the default is suitable. As a result, Apps can now create and query Metafields without the requirement of specifying a namespace.</p>
<p>Learn more in the <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/queries/metafield" target="_blank" class="body-link">Admin API</a> and <a href="https://shopify.dev/docs/api/storefront" target="_blank" class="body-link">Storefront API</a> documentation for Metafields.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/simplify-metafield-interaction-with-default-namespaces</link>
  </item>
  <item>
    <title>New field to query Order cancellation</title>
    <description><![CDATA[ <div class=""><p>As of 2023-10, we've added a new field <code>cancellation</code> to <code>Order</code> graphQL object. </p>
<p>This field can provide additional details about the order cancellation, such as staff provided notes on why the order was cancelled. This data is currently available for some orders cancelled on Point of Sale app.</p>
<p>Learn more about <code>Order</code> on <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/new-field-to-query-order-cancellation</link>
  </item>
  <item>
    <title>Subscriptions Support for Automatic Discounts</title>
    <description><![CDATA[ <div class=""><p>We've added a subscription options for automatic discounts so that you can create automatic discounts for all your products. See the <a href="https://shopify.dev/docs/apps/selling-strategies/subscriptions/contracts#subscription-discounts" target="_blank" class="body-link">subscription discounts page</a> for more details.</p>
<p>One important observation is that starting from API versions prior to 2024-01, the <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/enums/DiscountType" target="_blank" class="body-link">DiscountType</a> will classify any automatic discount as &quot;MANUAL&quot;. However, from 2024-01 onwards, it will accurately represent automatic discounts as &quot;AUTOMATIC_DISCOUNT&quot;.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2024-01</category>
    <link>https://shopify.dev/changelog/subscriptions-support-for-automatic-discounts</link>
  </item>
  <item>
    <title>Deprecation of `metafield(id)` query</title>
    <description><![CDATA[ <div class=""><p>As of 2023-10, the <code>metafield(id)</code> query is no longer supported. Metafields should be queried via the <code>HasMetafields</code> connection of metafield owners. If necessary, metafields can be queried by ID via the <code>Node</code> interface.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/deprecation-of-metafield-id-query</link>
  </item>
  <item>
    <title>Removing `Shop.shopifyPaymentsAccount` on Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-10</code>, we're removing the deprecated <code>Shop.shopifyPaymentsAccount</code> field. Use the <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/queries/shopifyPaymentsAccount" target="_blank" class="body-link">shopifyPaymentsAccount</a> query instead.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/removing-shop-shopifypaymentsaccount-on-admin-api</link>
  </item>
  <item>
    <title>Multiple domains on the primary market</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-10</strong>, you can have multiple domains on the primary market. The following changes have been introduced to the Markets API:</p>
<ul>
<li>New <code>Market.webPresences</code> connection has been added</li>
<li>Pre-existing <code>Market.webPresence</code> field will return the primary domain web presence for a primary market with multiple web presences</li>
<li><code>marketWebPresenceCreate</code> mutation will now allow adding additional web presences to the primary market</li>
<li>The required <code>marketId</code> argument has been removed from the <code>marketWebPresenceUpdate</code> and <code>marketWebPresenceDelete</code> mutations. The new required <code>webPresenceId</code> argument should be used instead</li>
</ul>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/multiple-domains-on-the-primary-market</link>
  </item>
  <item>
    <title>More information about the Order added to the FulfillmentOrder API</title>
    <description><![CDATA[ <div class=""><p>As of { 2023-10 }, we've added the following fields to the <code>FulfillmentOrder</code> graphQL object: <code>orderId</code>, <code>orderName</code>, <code>orderProcessedAt</code>, <code>channelId</code>.</p>
<p>With this change, order information required to fulfill an order is accessible on the <code>fulfillmentOrder</code> object with any of the fulfillment_orders access scopes.  The same data is available via <code>fulfillmentOrder.order</code>, but this requires read_orders access scope.</p>
<p>Learn more about <code>FulfillmentOrder</code> on <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/more-information-about-the-order-added-to-the-fulfillmentorder-api</link>
  </item>
  <item>
    <title>serviceCode is available on the DeliveryMethod API</title>
    <description><![CDATA[ <div class=""><p>As of the { 2023-10 } API version, you can use { DeliveryMethod } to get the value of the { serviceCode } chosen for the related { FulfillmentOrder} . The { DeliveryMethod } object is now accessible through any of the fulfillment order scopes. </p>
<p>Learn more about { DeliveryMethod } on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/DeliveryMethod" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/servicecode-is-available-on-the-deliverymethod-api</link>
  </item>
  <item>
    <title>Breaking change to metafieldDefinitionUpdate mutation: access input type changed</title>
    <description><![CDATA[ <div class=""><p><strong>Note:</strong> This change does not affect many apps and you likely aren't affected unless you are defining a variable of type <code>MetafieldAccessInput</code> for the access property in your <code>MetafieldDefinitionUpdate</code> mutation.</p>
<p>As of GraphQL Admin API version 2023-10, we are changing the input field type of <code>MetafieldDefinitionUpdateInput.access</code> from <code>MetafieldAccessInput</code> to <code>MetafieldAccessUpdateInput</code>. This change is part of a broader API change to introduce support for explicit access grants (see <a href="https://shopify.dev/changelog/introducing-explicit-access-grants-for-app-owned-metafields" target="_blank" class="body-link">Introducing explicit access grants for app-owned metafields</a> for details), which will have a different input for updating the grants on existing definitions than for specifying grants on new definitions.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/breaking-change-to-metafielddefinitionupdate-mutation-access-input-type-changed</link>
  </item>
  <item>
    <title>Introducing explicit access grants for app-owned metafields</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2023-10, you can grant <code>READ</code> or <code>READ_WRITE</code> access to your metafields to explicitly specified apps, by using the new <code>grants</code> property of the <code>access</code> object in your <code>metafieldDefinitionCreate</code> and <code>metafieldDefinitionUpdate</code> mutations. You can pass a list of up to 16 grants per definition, specifying the grantee and the level of access to grant.</p>
<p>This could be useful if you need fine-grained control over access to your metafields, for example you could keep the admin access setting <code>PRIVATE</code> but explicitly grant access to other app ids.</p>
<p>Learn more about metafield access controls on <a href="https://shopify.dev/docs/apps/custom-data/metafields/definitions/access-controls" target="_blank" class="body-link">shopify.dev</a>.</p>
<p>Note that the introduction of explicit grants required a breaking change to the <code>metafieldDefinitionUpdate</code> mutation - see <a href="https://shopify.dev/changelog/breaking-change-to-metafielddefinitionupdate-mutation-access-input-type-changed" target="_blank" class="body-link">Breaking change to metafieldDefinitionUpdate mutation: access input type changed</a> for details.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/introducing-explicit-access-grants-for-app-owned-metafields</link>
  </item>
  <item>
    <title>App Revenue Attribution Record API Depreciated</title>
    <description><![CDATA[ <div class=""><p>As of <strong>October 2023</strong>, the App Revenue Attribution API has been removed.</p>
<h3>What does this mean?</h3>
<p><code>appRevenueAttributionRecordCreate</code> and <code>appRevenueAttributionRecordDelete</code> are no longer supported in this and future API versions. </p>
<h3>What are the alternatives?</h3>
<p>This change removes tracking for external app revenue attributions that occur outside of the Billing API. Partners can now use <a href="https://www.shopify.com/partners/blog/google-analytics-app-install-event" target="_blank" class="body-link">Google Analytics to track Shopify App Store Ads installs</a> - which can be linked to external app revenue to calculate ad related return on ad spend and other ads related metrics.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/app-revenue-attribution-record-api-depreciated</link>
  </item>
  <item>
    <title>Checkout branding is moving to stable, with an update on color settings</title>
    <description><![CDATA[ <div class=""><p>As of 2023-09-15, we've made updates to the color settings available in the Checkout Branding API, moving to the 2023-10 stable release. </p>
<p>These changes will give merchants more control over colors in checkout including defining and applying color schemes with more controls over borders, icons, form fields and button colors</p>
<p><em>Note:</em> please reference the new <code>CheckoutBrandingColorsInput</code> element and avoid the deprecated <a href="https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/CheckoutBrandingDesignSystemInput#field-checkoutbranding%5B%E2%80%A6%5Dysteminput-colorpalette" target="_blank" class="body-link">CheckoutBrandingColorPaletteInput</a> when making changes to checkout branding via the API. Any previous API calls that set a colorPalette have been automatically updated to the new color system. Future API calls must use the new system in order for changes to be reflected. </p>
<p>Learn more about our color settings <a href="https://shopify.dev/docs/apps/checkout/applying-color-changes" target="_blank" class="body-link">here</a> or review the reference <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkout-branding-is-moving-to-stable-with-an-update-on-color-settings</link>
  </item>
  <item>
    <title>`payment_method_name` available in PaymentDetails GraphQL and REST APIs to check for Shop Pay Installments transactions</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-10</strong>, a new field <code>payment_method_name</code> is available in the <code>PaymentDetails</code> GraphQL API and the <code>payment_details</code> property in the Transaction resource of the Admin REST API. This field provides information about the payment method used to process an order transaction.</p>
<p>This update is in preparation for changes releasing in January 2024 where new Shop Pay Installment transactions will have a <code>gateway</code> value of <code>shopify_payments</code>. </p>
<p>Once released, relying on the gateway value to determine if an order is a Shop Pay Installments transaction will no longer be feasible. Instead, it will be necessary to utilize the <code>payment_method_name</code> value to identify the transaction type. </p>
<p>For example, you can identify Shop Pay Installments transactions by checking that <code>payment_method_name</code> has a value of <code>shop_pay_installments</code>. For historical orders prior to 2023-10, you still need to check the <code>gateway</code> value to identify Shop Pay Installments orders.</p>
<p>Learn more about the change in the <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/interfaces/BasePaymentDetails" target="_blank" class="body-link">PaymentDetails GraphQL API doc</a> and <a href="https://shopify.dev/docs/api/admin-rest/2023-10/resources/transaction" target="_blank" class="body-link">Admin REST API doc for Transactions</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/payment_method_name-available-in-paymentdetails-graphql-and-rest-apis-to-check-for-shop-pay-installments-transactions</link>
  </item>
  <item>
    <title>New error code added for MetafieldDefinitionUpdate</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-10, we've added the <code>METAOBJECT_DEFINITION_CHANGED</code> error code to the <code>MetafieldDefinitionUpdateUserErrorCode</code> enum. This new error code is returned if you attempt to update a <code>metaobject_reference</code> metafield definition so that it references a different Metaobject definition. Previously, this action would result in an  <code>INTERNAL_SERVER_ERROR</code>.</p>
<p>Learn more about <code>METAOBJECT_DEFINITION_CHANGED</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/enums/MetafieldDefinitionUpdateUserErrorCode" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/2023-07/enums/MetafieldDefinitionUpdateUserErrorCode</a></p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/new-error-code-added-for-metafielddefinitionupdate</link>
  </item>
  <item>
    <title> Changes to Subscription Billing Attempt creation behavior </title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/mutations/subscriptionBillingAttemptCreate" target="_blank" class="body-link"><code>SubscriptionBillingAttemptCreate</code></a> mutation now limits the creation of Billing Attempts based on the <a href="https://help.shopify.com/en/manual/orders/fraud-analysis" target="_blank" class="body-link">Fraud Analysis</a> result on the Subscription Contract’s <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/objects/SubscriptionContract#field-subscriptioncontract-originorder" target="_blank" class="body-link">Origin Order</a>.</p>
<p>As of API version 2023-10, we've added the <code>CONTRACT_UNDER_REVIEW</code> error code to the <code>BillingAttemptUserErrorCode</code> enum. This new error code is returned in the case where Billing Attempt creation is prevented. In previous API versions, this action will return the <code>INVALID</code> error code.</p>
<p>Learn more about the Subscription Contracts API and Billing Attempts on <a href="https://shopify.dev/docs/apps/selling-strategies/subscriptions/contracts/create#step-4-create-a-billing-attempt" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/changes-to-subscription-billing-attempt-creation-behavior</link>
  </item>
  <item>
    <title>Storefront API now supports product bundles </title>
    <description><![CDATA[ <div class=""><p>It’s now possible for merchants using Hydrogen or the Headless Channel in the admin to offer bundles with Shopify. </p>
<p>Headless merchants can choose from creating fixed bundles and multipacks with our free  <a href="https://apps.shopify.com/shopify-bundles" target="_blank" class="body-link">Shopify Bundles</a> app, using one of these <a href="https://apps.shopify.com/collections/functions-bundles" target="_blank" class="body-link">updated bundle apps</a> for more bundle support or using our <a href="https://shopify.dev/docs/apps/selling-strategies/bundles" target="_blank" class="body-link">APIs</a> (Shopify Plus and Shopify partners only) to create a custom bundle offering.</p>
<p><a href="https://help.shopify.com/en/manual/products/bundles" target="_blank" class="body-link">Learn more about bundles on Shopify</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 27 Sep 2023 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/storefront-api-now-supports-product-bundles</link>
  </item>
  <item>
    <title>POS UI extensions 1.4.0 update: new API, props</title>
    <description><![CDATA[ <div class=""><p>As of September 27, we added the following updates to POS UI Extensions: </p>
<ul>
<li>Introduced a <code>Connectivity API</code> which gives the UI extension access to the information about the device connectivity.</li>
<li>Added optional <code>BadgeStatus</code> prop to the <code>Badge</code> component</li>
<li>Added optional <code>overrideNavigateBack</code> prop to the <code>Screen</code> component</li>
<li>Added <code>isDevice</code> function to the <code>Device API</code></li>
</ul>
<p>All of the changes are available for POS UI extensions version 1.4.0 and POS app version 8.18.0. See the <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/versions" target="_blank" class="body-link">version log</a> for all version details.</p>
</div> ]]></description>
    <pubDate>Wed, 27 Sep 2023 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-1-4-0-update-new-api-props</link>
  </item>
  <item>
    <title> Enhancements to range and select input settings</title>
    <description><![CDATA[ <div class=""><p>New quality of life updates are here for the range and select input settings! Featuring enhancements to the design and functionality of these settings, these two changes will improve the theme editing experience.</p>
<p>We have introduced a new input box as part of the range setting updates. Merchants now have two ways to set their range value, either by using the existing slider or by typing in a value, which offers more flexibility and precision when setting values.</p>
<p>The select setting can now present itself in one of two ways, either as a dropdown list, or as a new segmented control. Depending on the options passed in, the setting will apply the ideal visual treatment accordingly.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/themes/architecture/settings/input-settings#range" target="_blank" class="body-link">range setting</a> and <a href="https://shopify.dev/docs/themes/architecture/settings/input-settings#select" target="_blank" class="body-link">select setting</a> changes in our developer documentation.</p>
</div> ]]></description>
    <pubDate>Fri, 22 Sep 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/enhancements-to-range-and-select-input-settings</link>
  </item>
  <item>
    <title>New input setting text_alignment launched</title>
    <description><![CDATA[ <div class=""><p>A new input setting of type text_alignment has been introduced, featuring an icon-based segmented control design. </p>
<p>The setting comes pre-built with default values <code>left</code>, <code>center</code> and <code>right</code>, which cannot be changed.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/themes/architecture/settings/input-settings#text_alignment" target="_blank" class="body-link">text_alignment</a> setting in our development documentation.</p>
</div> ]]></description>
    <pubDate>Fri, 22 Sep 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-input-setting-text_alignment-launched</link>
  </item>
  <item>
    <title>New Liquid section properties and default lazy loading for image tags</title>
    <description><![CDATA[ <div class=""><p>We've added default lazy loading for the <code>image_tag</code> when it occurs in sections further down the page. </p>
<p>We've also added new section properties so you can customize this behavior as well as fix other web performance issues dependent on layout position:</p>
<ul>
<li><code>section.index</code> - the 1-based index of a section within its location</li>
<li><code>section.index0</code> - the 0-based index of a section within its location</li>
<li><code>section.location</code> - the location of the section (e.g., template, section group type, etc.)</li>
</ul>
<p>You can now fix performance anti-patterns like lazy loading images above the fold and layout shifts due to async CSS loading without depending on section settings.</p>
<p>Learn more about the new <a href="https://shopify.dev/docs/api/liquid/filters#image_tag" target="_blank" class="body-link"><code>image_tag</code> behavior</a> and how to use the new <a href="https://shopify.dev/docs/api/liquid/objects/section" target="_blank" class="body-link">section properties</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 18 Sep 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-liquid-section-properties-and-default-lazy-loading-for-image-tags</link>
  </item>
  <item>
    <title>New GraphQL Admin API field CustomerAccountsV2 exposes shops' customer accounts settings</title>
    <description><![CDATA[ <div class=""><p>As of Admin GraphQL API version 2023-10, you can query the CustomerAccountsV2 field on the Shop object to get information about the shop's customer accounts settings. CustomerAccountsV2 will let you adapt your app's behaviour to the merchant's customer accounts settings.</p>
<p>Learn more about CustomerAccountsV2 on <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/objects/CustomerAccountsV2" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 14 Sep 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/new-graphql-admin-api-field-customeraccountsv2-exposes-shops-customer-accounts-settings</link>
  </item>
  <item>
    <title>Updates to the Theme Store Requirements</title>
    <description><![CDATA[ <div class=""><p>We've made updates to the Theme Store requirements, in relation to the prohibited use of externally hosted scripts, and code which interferes with native Shopify functionality. These requirements are contained within <a href="https://shopify.dev/docs/themes/store/requirements#7-consistency-and-functionality" target="_blank" class="body-link">Section 7, Consistency and functionality</a> and inform that:</p>
<ul>
<li>Scripts included in theme code must be hosted on Shopify's servers, with the exception of approved third-party libraries.</li>
<li>Themes must not include any Javascript or code that interferes with, or augments, any native Shopify feature within the theme editor or Shopify admin.</li>
</ul>
<p>These requirements are to ensure all themes in the Shopify Theme Store are secure, reliable, performant, and maintain a consistent user experience. </p>
<p>The new requirements can be viewed on <a href="https://shopify.dev/docs/themes/store/requirements#7-consistency-and-functionality" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Sep 2023 21:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-the-theme-store-requirements</link>
  </item>
  <item>
    <title>Cart validation errors on online store cart and Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of Storefront GraphQL API version <strong>2023-10</strong>, we’ve added the <code>VALIDATION_CUSTOM</code> error type to <code>CartErrorCode</code> so that you can use validation errors in carts.</p>
<p>Learn more about cart validation errors on <a href="https://shopify.dev/docs/api/storefront/2023-10/enums/CartErrorCode" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Sep 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/cart-validation-errors-on-online-store-cart-and-storefront-api</link>
  </item>
  <item>
    <title>Admin action extensions are now generally available</title>
    <description><![CDATA[ <div class=""><p>Admin action extensions are now generally available and can be deployed to apps. These new extensions enable you to seamlessly integrate your app's functionality into the Shopify admin by embedding workflows and UX on core admin pages. </p>
<p>Once deployed, merchants can find actions in the “More actions” menus at the top of Products, Orders, and Customers pages in the admin. When a merchant launches the extension, it will appear as a modal over the current page. By giving merchants access to your app's functionality, without the need to navigate away from their current task, these extensions help increase efficiency and productivity. </p>
<p>Admin action extensions come with <a href="https://shopify.dev/docs/api/admin-extensions#direct-api-access" target="_blank" class="body-link">direct API access</a>, enabling them to use the Admin GraphQL API without having to proxy the calls through their app's backend resulting in faster and more responsive apps.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/admin/admin-actions-and-blocks#admin-actions" target="_blank" class="body-link">admin action extensions</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Sep 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/admin-action-extensions-are-now-generally-available</link>
  </item>
  <item>
    <title>Introducing homepage ads on the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Developers can now generate more demand for your apps by showcasing them on the homepage of the Shopify App Store. </p>
<p>Learn more about homepage ads on our <a href="https://www.shopify.com/partners/blog/introducing-homepage-ads" target="_blank" class="body-link">blog</a> and <a href="https://shopify.dev/docs/apps/store/advertising" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 12 Sep 2023 13:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-homepage-ads-on-the-shopify-app-store</link>
  </item>
  <item>
    <title>Full-funnel Google Analytics attribution</title>
    <description><![CDATA[ <div class=""><p>We’ve added visibility into the app install event itself as part of our existing integration with Google Analytics. This addition enables developers to more easily compare the performance of your Shopify App Store Ads with your other marketing activities on and off Shopify.</p>
<p>In addition to having full visibility into the app install event, you can also now tie the app install event to a Shop ID, enabling richer insights on the type of merchants that are installing your app. </p>
<p>Learn more on our <a href="https://www.shopify.com/partners/blog/google-analytics-app-and-theme-install-event" target="_blank" class="body-link">blog</a> and <a href="https://shopify.dev/docs/apps/store/success/marketing/marketing-internally/tracking-your-listing-traffic" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 12 Sep 2023 13:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/full-funnel-google-analytics-attribution</link>
  </item>
  <item>
    <title>New APIs added to the latest version of App Bridge</title>
    <description><![CDATA[ <div class=""><p>With the latest version of App Bridge, you can use the <a href="https://shopify.dev/docs/api/app-bridge-library/reference/print" target="_blank" class="body-link">Print</a>, <a href="https://shopify.dev/docs/api/app-bridge-library/reference/scanner" target="_blank" class="body-link">Scanner</a> and <a href="https://shopify.dev/docs/api/app-bridge-library/reference/share" target="_blank" class="body-link">Share</a> APIs.<br>Both Print and Share rely on web standards. Learn more about these APIs on <a href="https://shopify.dev/docs/api/app-bridge-library/reference" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 11 Sep 2023 21:12:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-apis-added-to-the-latest-version-of-app-bridge</link>
  </item>
  <item>
    <title>Automatic free shipping discount now available on GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>It is now possible to offer automatic free shipping discounts using the GraphQL Admin API using  <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/mutations/discountAutomaticFreeShippingUpdate" target="_blank" class="body-link">discountAutomaticFreeshippingUpdate</a> and <a href="https://shopify.dev/docs/api/admin-graphql/2023-10/mutations/discountAutomaticFreeShippingCreate" target="_blank" class="body-link">discountAutomaticFreeshippingCreate</a>.</p>
<p>Learn more on <a href="https://shopify.dev/docs/api/admin-graphql" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 11 Sep 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/automatic-free-shipping-discount-now-available-on-graphql-admin-api</link>
  </item>
  <item>
    <title>Liquid Console: Test and evaluate Liquid snippets quickly using Shopify CLI</title>
    <description><![CDATA[ <div class=""><p>Liquid Console is now available, a tool that enables Liquid testing and evaluation directly in your code editor through Shopify CLI. This feature accelerates your feedback loop, simplifies debugging, and assists developers learning Liquid.</p>
<p>Get started by running the command <code>shopify theme console</code> in your terminal. This command opens up an efficient way to experiment with Liquid filters and explore Liquid object data structures.</p>
<p>Learn more about Liquid Console on <a href="https://shopify.dev/docs/themes/tools/cli/commands#console" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 07 Sep 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/liquid-console-test-and-evaluate-liquid-snippets-quickly-using-shopify-cli</link>
  </item>
  <item>
    <title>Removal of UsageCharge billing_on field on Admin REST API</title>
    <description><![CDATA[ <div class=""><p>As of Admin REST API version <strong>2023-10</strong>, the following <code>UsageCharge</code> fields have been deprecated: <code>billing_on</code>.</p>
<p>Learn more about the <code>UsageCharge</code> object on <a href="https://shopify.dev/docs/api/admin-rest/2022-10/resources/usagecharge" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 07 Sep 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/removal-of-usagecharge-billing_on-field-on-admin-rest-api</link>
  </item>
  <item>
    <title>Breaking changes to ShopResourceLimits API: Deprecate &quot;skuResourceLimits&quot;</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-10</strong>, we're deprecating the &quot;skuResourceLimits&quot; field from the <code>ShopResourceLimits</code> query object. We're no longer enforcing a limit of SKUs at a shop level. Instead, please use &quot;maxProductVariants&quot; to determine the limit of variants at a product level.</p>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/ShopResourceLimits" target="_blank" class="body-link"><code>ShopResourceLimits</code></a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Wed, 06 Sep 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-shopresourcelimits-api-deprecate-skuresourcelimits</link>
  </item>
  <item>
    <title>Removed minimum character requirement for reviews</title>
    <description><![CDATA[ <div class=""><p>We’re simplifying feedback collection and reducing non-informative content. These ratings contribute to the overall score without impacting the recent review ranking updates.</p>
</div> ]]></description>
    <pubDate>Thu, 31 Aug 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/removed-minimum-character-requirement-for-reviews</link>
  </item>
  <item>
    <title>Updates to our Terms of Use and Partner Program Agreement</title>
    <description><![CDATA[ <div class=""><p>EFFECTIVE AUGUST 28, 2023 ACTION REQUIRED</p>
<p>We've made changes to our <a href="https://www.shopify.ca/partners/terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Partner Program Agreement</a> and <a href="https://www.shopify.com/legal/api-terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">API License and Terms of Use</a>. These updates include terms that clarify a partner's responsibility to sync back order data when any type of data is taken off of Shopify and facilitates an order, as well as other important updates.</p>
<p>These changes come into effect as of today, August 28, 2023.</p>
<p>We encourage all developers on our platform to review and be familiar with the API License and Terms and the Partner Program Agreement, so that you understand how to build, run, and grow your app and development business on our platform.</p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 28 Aug 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-to-our-terms-of-use-and-partner-program-agreement</link>
  </item>
  <item>
    <title>New inventory states: Safety Stock, Damaged and Quality Control</title>
    <description><![CDATA[ <div class=""><p>You can now use the GraphQL Admin API to adjust new inventory states: <code>safety_stock</code>, <code>damaged</code>, and <code>quality_control</code>.</p>
<p>By moving inventory units to one of these states, they are tracked as part of a merchant's <code>on_hand</code> inventory, but are unavailable for sale. Inventory quantities in one of these states display as <strong>Unavailable</strong> to merchants that are tracking inventory in the Shopify admin.</p>
<p>Learn more about the the new states on <a href="https://shopify.dev/docs/apps/fulfillment/inventory-management-apps" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 28 Aug 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-inventory-states-safety-stock-damaged-and-quality-control</link>
  </item>
  <item>
    <title>New App Store Requirement</title>
    <description><![CDATA[ <div class=""><p>Starting <strong>Monday September 18th</strong>, languages listed under the Languages section of your App Store listing must be fully available within the app. Any language listed that is not accessible within the app must be removed until translations can be completed. </p>
<p>To learn more, please see the <a href="https://shopify.dev/docs/apps/store/requirements#4-languages" target="_blank" class="body-link">App Store Requirements</a> on <a href="https://shopify.dev/docs" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 24 Aug 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-app-store-requirement</link>
  </item>
  <item>
    <title>Cart and Checkout Validation Functions now run in online store cart</title>
    <description><![CDATA[ <div class=""><p>Cart and Checkout Validation Functions now run on the online store cart (they previously only ran on the storefront cart API). You can now apply custom validation logic to buyers on the online store as well as custom storefronts.  </p>
<p>Learn more about Cart and Checkout Validation Functions on <a href="https://shopify.dev/docs/api/functions/reference/cart-checkout-validation" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 22 Aug 2023 03:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/cart-and-checkout-validation-functions-now-run-in-online-store-cart</link>
  </item>
  <item>
    <title>Discounts - Ability to create Automatic free shipping discount</title>
    <description><![CDATA[ <div class=""><p>Shopify is bringing a new feature for merchants, the ability to create automatic free shipping discount. </p>
<p>As of 2023-10 API version, you can create automatic free shipping discounts via admin or using graphql api. </p>
<p>Learn more about discounts in the <a href="https://help.shopify.com/en/manual/discounts/discount-types" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 21 Aug 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/discounts-ability-to-create-automatic-free-shipping-discount</link>
  </item>
  <item>
    <title>checkout_started now triggers on every checkout visit in checkout extensibility.</title>
    <description><![CDATA[ <div class=""><p>As of August 17, 2023 4:30 pm EDT, <strong>checkout_started</strong> now triggers on every checkout visit in checkout extensibility. </p>
<p>The customer event, <strong>checkout_started</strong>, will now trigger for all checkout visits if you upgraded to checkout extensibility. Previously, it only triggered the first time you entered the checkout.</p>
<p>Additional event data will provide additional insights into the customer journey. The customer event reference can be found <a href="https://shopify.dev/docs/api/pixels/customer-events#checkout_started" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 17 Aug 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkout_started-now-triggers-on-every-checkout-visit-in-checkout-extensibility-1</link>
  </item>
  <item>
    <title>POS UI extensions update: new components, fixes</title>
    <description><![CDATA[ <div class=""><p>As of August 16, we added the following components to <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference#pos-ui-extension-components" target="_blank" class="body-link">POS UI extensions</a>:</p>
<p><code>DatePicker</code></p>
<p><code>TimePicker</code></p>
<p><code>DateField</code></p>
<p><code>TimeField</code></p>
<p><code>EmailField</code></p>
<p><code>NumberField</code></p>
<p><code>TextField</code></p>
<p><code>TextArea</code></p>
<p>The <code>Tile</code> component's props have been updated:</p>
<p><code>enabled</code> is now optional</p>
<p><code>onPress</code> is now optional</p>
<p><code>badgeValue</code> added</p>
<p>All of the changes are available for POS UI extensions version 1.3.0 and POS app version 8.15.0. See the <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/versions" target="_blank" class="body-link">version log</a> for all version details.</p>
</div> ]]></description>
    <pubDate>Wed, 16 Aug 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-update-new-components-fixes</link>
  </item>
  <item>
    <title>Renderable and Online Store capabilities for metaobjects</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-10</strong> we're introducing new metaobject capabilities to enable SEO attributes and make entries renderable in the Online Store. These capabilities make it possible to render landing pages from metaobject entries. </p>
<p>The renderable capability enables setting SEO metadata attributes on your metaobjects. These attributes are accessible in Liquid and via the Storefront API. </p>
<p>The Online Store capability makes your metaobjects render as web pages in the Online Store by assigning a theme template and defining a URL. </p>
<p>Both capabilities can be enabled and configured independently when creating and updating a metaobject definition.</p>
<p>Learn more about the <code>renderable</code> and <code>onlineStore</code> capabilities on <a href="https://shopify.dev/docs/apps/custom-data/metaobjects/capabilities" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 14 Aug 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/renderable-and-online-store-capabilities-for-metaobjects</link>
  </item>
  <item>
    <title>Server Pixels now has order_id as part of the checkout_completed event</title>
    <description><![CDATA[ <div class=""><p>For Server Pixels, we've added <em>order_id</em> to the <em>checkout_completed</em> event payload so that you can track it server-side.</p>
</div> ]]></description>
    <pubDate>Thu, 10 Aug 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/server-pixels-now-has-order_id-as-part-of-the-checkout_completed-event</link>
  </item>
  <item>
    <title>Improvements to app review ranking</title>
    <description><![CDATA[ <div class=""><p>We’ve shipped refinements to our app review ranking system and will continue to further invest in it. If you have any feedback, please submit it to <a href="https://forms.gle/s1nsaQU3t5YEfdvN9" target="_blank" class="body-link">this form</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Aug 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/improvements-to-app-review-ranking</link>
  </item>
  <item>
    <title>Coming soon: simplified extension versioning and deployment</title>
    <description><![CDATA[ <div class=""><p>Soon, you'll be able to release all your extensions at the same time, directly from Shopify CLI. New app-level extension versioning will help you to keep better track of your app's iterations, and allow you to easily revert to previous versions, if needed. You’ll also be able to preview Functions using the dev command, and delete any extension.</p>
<p>This functionality will be included in a future release of Shopify CLI. You'll be able to opt in for each app that you develop.</p>
<p><a href="https://shopify.dev/docs/apps/deployment/simplified-deployment" target="_blank" class="body-link">Learn more about simplified deployment</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Aug 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/coming-soon-simplified-extension-versioning-and-deployment</link>
  </item>
  <item>
    <title>[Developer Preview] Shopify Flow - Use the CLI to manage your tasks</title>
    <description><![CDATA[ <div class=""><p>Flow in the Shopify CLI is available in developer preview. We welcome feedback at <a href="mailto:flow-connectors-dev@shopify.com" target="_blank" class="body-link">flow-connectors-dev@shopify.com</a> </p>
<p>Previously, Flow actions and triggers were defined in the partner dashboard. As <a href="https://www.npmjs.com/package/@shopify/cli" target="_blank" class="body-link">Shopify CLI</a> adoption has expanded, this meant that you needed to manage and deploy your Flow extensions separately from the rest of your app. </p>
<p>Going forward, you will now create your Flow tasks and actions through the CLI. You can follow these guides for how to create both <a href="https://shopify.dev/docs/apps/flow/triggers/create-a-trigger" target="_blank" class="body-link">triggers</a> and <a href="https://shopify.dev/docs/apps/flow/actions/create-an-action" target="_blank" class="body-link">actions</a> through the CLI. In addition, you can <a href="https://shopify.dev/docs/apps/flow/migrating-flow-legacy-extensions" target="_blank" class="body-link">migrate your existing tasks</a> to be CLI-managed, unifying your code. For more details on what is possible, you can also consult Flow’s reference guide for <a href="https://shopify.dev/docs/apps/flow/triggers/reference" target="_blank" class="body-link">triggers</a> and <a href="https://shopify.dev/docs/apps/flow/actions/reference" target="_blank" class="body-link">actions</a>.</p>
<p>To create Flow extensions using the CLI, version 3.48 or higher is required. Please note that Flow does not currently support the <code>app dev</code> command. </p>
</div> ]]></description>
    <pubDate>Fri, 28 Jul 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developer-preview-shopify-flow-use-the-cli-to-manage-your-tasks</link>
  </item>
  <item>
    <title>[Developer Preview] Shopify Flow - Use return data in your actions</title>
    <description><![CDATA[ <div class=""><p>Your <a href="https://shopify.dev/docs/apps/flow/actions/reference#optional-add-a-custom-return-data-type" target="_blank" class="body-link">Flow actions</a> can now return data into the Flow environment, allowing your merchants to build new types of automations making use of your app and data. </p>
<p>Several Flow actions make use of return data, allowing merchants to use data from other services. For example the <a href="https://help.shopify.com/en/manual/shopify-flow/reference/connectors#openai" target="_blank" class="body-link">OpenAI connector</a> returns AI-generated text from OpenAI's completion API. Flow's &quot;Get data&quot; actions, including <a href="https://help.shopify.com/en/manual/shopify-flow/reference/actions/get-order-data" target="_blank" class="body-link">Get order data</a>, return a list of objects that can be used in the workflow. </p>
<p>To use return data, your action must be defined through the <a href="https://shopify.dev/docs/apps/tools/cli" target="_blank" class="body-link">Shopify CLI</a>. You must use CLI version 3.48 or higher.</p>
</div> ]]></description>
    <pubDate>Fri, 28 Jul 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developer-preview-shopify-flow-use-return-data-in-your-actions</link>
  </item>
  <item>
    <title>Install custom apps on multiple Shopify Plus stores</title>
    <description><![CDATA[ <div class=""><p>Starting today partner accounts can distribute a single custom app to all stores within a Shopify Plus organization. As a result, it's now much simpler to manage and maintains apps for multi-store organizations.</p>
<p>Learn more about custom app distribution in the <a href="https://shopify.dev/docs/apps/distribution/select-distribution-method" target="_blank" class="body-link">Shopify developer docs.</a></p>
</div> ]]></description>
    <pubDate>Thu, 27 Jul 2023 18:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/install-custom-apps-on-multiple-shopify-plus-stores</link>
  </item>
  <item>
    <title>Extension-only apps</title>
    <description><![CDATA[ <div class=""><p>You can now create custom apps that contain only extensions without the need to build and host an external web application, or implement OAuth. Custom apps without a requirement for embedded admin pages can now be created from the CLI and installed on merchant stores. </p>
<p>[Learn more about extensions-only apps] (<a href="https://shopify.dev/docs/apps/app-extensions/extension-only-apps" target="_blank" class="body-link">https://shopify.dev/docs/apps/app-extensions/extension-only-apps</a>)</p>
</div> ]]></description>
    <pubDate>Thu, 27 Jul 2023 15:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/extension-only-apps</link>
  </item>
  <item>
    <title>Checkout UI Extensions - API Versioning</title>
    <description><![CDATA[ <div class=""><p>We have released API versioning for checkout UI extensions. As part of this release, we are also moving checkout UI extensions over to the new ui extension packages.</p>
<ul>
<li>For information on how to adopt API versions for existing extensions, [visit our versioning page] (<a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/versioning-migration" target="_blank" class="body-link">https://shopify.dev/docs/api/checkout-ui-extensions/unstable/versioning-migration</a>)</li>
<li>For more details on the what and why, see <a href="https://github.com/Shopify/ui-extensions/discussions/1161" target="_blank" class="body-link">our post on github</a></li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 27 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkout-ui-extensions-api-versioning</link>
  </item>
  <item>
    <title>[Developer Preview] Admin action and block extensions</title>
    <description><![CDATA[ <div class=""><p>Developers can now create and test Admin action and block extensions in their dev stores. These new extensions enable you to seamlessly integrate your app's functionality into the Shopify admin by embedding workflows and UX on core admin pages. By giving merchants access to your app's functionality, without the need to navigate away from their current task, these extensions help merchants be more efficient and productive.</p>
<p>Admin actions and blocks can use <a href="https://shopify.dev/docs/api/admin-extensions#direct-api-access" target="_blank" class="body-link">direct API access</a>, enabling them to use the Admin GraphQL API  without having to proxy  the calls through their app's backend resulting in faster and more responsive apps.</p>
<p>Learn more about Admin action and block extensions on <a href="https://shopify.dev/docs/apps/admin/admin-actions-and-blocks" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 27 Jul 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developer-preview-admin-action-and-block-extensions</link>
  </item>
  <item>
    <title>Cart and Checkout Validation Function are now available for custom apps</title>
    <description><![CDATA[ <div class=""><p>The Shopify Functions API for cart and checkout validations is now available on production stores for custom apps. </p>
<p>Learn more about building cart and checkout validations in our dev docs: <a href="https://shopify.dev/api/functions/reference/cart-checkout-validation" target="_blank" class="body-link">Cart and Checkout validations</a></p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 11:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/cart-and-checkout-validation-function-are-now-available-for-custom-apps</link>
  </item>
  <item>
    <title>Introducing the new Customer Account API in developer preview</title>
    <description><![CDATA[ <div class=""><p>The <strong>Developer Preview</strong> of the Customer Account API is now available for exploration and experimentation. This API can be accessed through the Hydrogen and Headless channels, providing developers with early access to its powerful features. The Customer Account API offers enhanced security, authentication, and personalization capabilities for headless storefronts. It enables passwordless single sign-on across all of the Shopify platform, from Liquid to Hydrogen and non-Hydrogen custom storefronts, all the way through to checkout. The Customer Account API also empowers effortless customer-scoped management for DTC–accounts, orders, drafts, payments, fulfillment, discounts, refunds, and metafields (shop, order, customer).</p>
<p>This version of the Customer Account API is marked as unstable as there will be changes and updates to refine and improve its functionality. We encourage developers to <a href="https://discord.com/channels/842813079926603828/877582067750305832" target="_blank" class="body-link">provide feedback</a> and share their experiences to help shape the future iterations of this API.</p>
<p>Read the <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-customer-account-api/" target="_blank" class="body-link">developer documentation</a> to learn more.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-new-customer-account-api-in-developer-preview</link>
  </item>
  <item>
    <title>App review summaries</title>
    <description><![CDATA[ <div class=""><p>We’ve added app review summaries (powered by Shopify Magic) to the Shopify App Store, helping merchants see your app’s value based on other merchants' experiences. To start, review summaries will appear for apps with at least 100 reviews and a 4.0 rating.</p>
<p>Merchants can leave feedback when viewing the summary. We ask that developers share feedback using <a href="https://forms.gle/1CLxB5UXFLKNieYX9" target="_blank" class="body-link">this form</a>, which will be shared with the product team.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/app-review-summaries</link>
  </item>
  <item>
    <title>Oxygen Log Drains now available to Shopify Plus</title>
    <description><![CDATA[ <div class=""><p>Oxygen has now added support for log drains, which allows developers to forward their Hydrogen storefront’s application logs to third-party log management platforms, including DataDog, Splunk, and New Relic. </p>
<p>Log drains can be easily set up and configured through the Shopify admin, with no code required. Merchants with complex monitoring needs now have full control of log monitoring, analysis, and retention–in your observability service of choice.</p>
<p>This feature is available today for all merchants on the Shopify Plus plan. Read the <a href="https://shopify.dev/docs/custom-storefronts/oxygen/storefronts/log-drains" target="_blank" class="body-link">developer documentation</a> to learn more.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/oxygen-log-drains-now-available-to-shopify-plus</link>
  </item>
  <item>
    <title>Hydrogen updates: New CLI improvements and Remix-optimized components</title>
    <description><![CDATA[ <div class=""><p>Building headless stores with Hydrogen is now even faster with our latest release.</p>
<p>Starting a new Hydrogen project with the Shopify CLI now gives you more options. You can scaffold a full purchase journey with standard app routes, add your favorite styling library, and configure language and currency settings, and connect your live product inventory to your Hydrogen app with a single command.</p>
<p>Hydrogen also features pre-built components optimized for Remix for better performance, SEO, and DX – from cart, image, product form, to pagination. And enhanced type safety support with built-in GraphQL codegen ensures your build is least error-prone.</p>
<p>Learn more about our <a href="https://hydrogen.shopify.dev/updates" target="_blank" class="body-link">latest release</a> in detail and what’s coming next.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/hydrogen-updates-new-cli-improvements-and-remix-optimized-components</link>
  </item>
  <item>
    <title>Remove rate limits on the Storefront API</title>
    <description><![CDATA[ <div class=""><p>Storefront API now serves all legitimate requests from both private and public clients without rate limits. Headless stores will stay protected against bot activity and never hit a throttle, no matter the size of traffic they receive. All included for free in your plan.</p>
<p>Read the <a href="https://shopify.dev/docs/api/storefront#rate_limits" target="_blank" class="body-link">developer documentation</a> to learn more.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/remove-rate-limits-on-the-storefront-api</link>
  </item>
  <item>
    <title>Updates to the App Design Guidelines</title>
    <description><![CDATA[ <div class=""><p>We've updated the App Design Guidelines for better clarity and coverage of the trickiest parts of app design. “Mandatory” and “Unacceptable” directives are now “Must Do” and “Do Not”, to clarify that all these directives must be met to qualify for Built for Shopify status. We have also added new guidelines for Forms, Marketing, and Admin UI extensions.</p>
<p><strong>All Built for Shopify applicants will be evaluated against the updated App Design Guidelines starting September 1, 2023.</strong></p>
<p>See the new guidelines on <a href="https://shopify.dev/docs/apps/design-guidelines" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Built for Shopify</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-the-app-design-guidelines</link>
  </item>
  <item>
    <title>The Summer ’23 Edition is live!</title>
    <description><![CDATA[ <div class=""><p>There are now more ways than ever to customize and extend Shopify, from storefront to checkout to admin.</p>
<p>Explore the latest updates to our suite of APIs, SDKs, and developer tools.</p>
<ul>
<li>Create the best checkout experience with 17 new APIs and updates for Shopify Checkout</li>
<li>Build Hydrogen storefronts faster with Remix-optimized workflows and CLI improvements like enhanced type safety support, and scale effortlessly without rate limits on the Storefront API</li>
<li>Develop apps faster and more easily with our new Remix app template, extension-only apps, and config as code</li>
<li>Extend the Shopify admin in entirely new ways with admin UI extensions</li>
<li>Stand out from the crowd—Built for Shopify badging and promotional placements are now live in the Shopify App Store</li>
<li>Customize Shopify’s backend logic with new Function APIs, support for JavaScript now generally available, and faster development and iteration with the <code>shopify app dev</code> command</li>
</ul>
<p><a href="https://www.shopify.com/editions/summer2023?filters=developer-updates&owner=AG&itcat=changelog-banner&itterm=dev-changelog" target="_blank" class="body-link">Visit the Editions website</a> to see all the developer announcements.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-summer-23-edition-is-live</link>
  </item>
  <item>
    <title>Cart Transform Function API</title>
    <description><![CDATA[ <div class=""><p>You can now use the Cart Transform Function API  to expand or merge cart line items. The Cart Transform API is used to <a href="https://shopify.dev/docs/apphttps://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundles/selling-strategies/bundles/add-a-customized-bundle" target="_blank" class="body-link">build customized bundles</a>. </p>
<p>For more information on the Cart Transform Function API <a href="https://shopify.dev/docs/api/functions/reference/cart-transform" target="_blank" class="body-link">click here</a>.</p>
<p>For an overview on building a custom bundle offering <a href="https://shopify.dev/docs/apps/selling-strategies" target="_blank" class="body-link">click here</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/cart-transform-function-api</link>
  </item>
  <item>
    <title>New and updated APIs to build product bundles</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/ProductVariantComponent" target="_blank" class="body-link">ProductVariantComponent API</a> has recently been added to the GraphQL Admin API allowing for the implementation of <a href="https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-fixed-bundle" target="_blank" class="body-link">fixed bundles</a>.</p>
<p>To <a href="https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle" target="_blank" class="body-link">build customized bundles</a>, use the newly launched <a href="https://shopify.dev/docs/api/functions/reference/cart-transform" target="_blank" class="body-link">Cart Transform Function API</a>.</p>
<p>For more information on creating bundles <a href="https://shopify.dev/docs/apps/selling-strategies/bundles" target="_blank" class="body-link">click here</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-and-updated-apis-to-build-product-bundles</link>
  </item>
  <item>
    <title>Checkout UI Extensions - New APIs for Summer Editions</title>
    <description><![CDATA[ <div class=""><ul>
<li><a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/checkoutapi#properties-propertydetail-applyshippingaddresschange" target="_blank" class="body-link">Shipping address write API</a> - Extensions can use the applyShippingAddressChange API to modify address values on behalf of a buyer.</li>
<li><a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/standardapi#properties-propertydetail-buyeridentity" target="_blank" class="body-link">B2B context APIs</a> - Extensions can now read details about a purchasingCompany as well as <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/standardapi#properties-propertydetail-checkoutsettings" target="_blank" class="body-link">checkout settings</a> that apply to the current buyer</li>
<li><a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/standardapi#properties-propertydetail-appmetafields" target="_blank" class="body-link">Support for new metafield types</a> - Extensions can now read metafields on carts, companies, or companyLocations. They can also <a href="https://shopify.dev/docs/api/checkout-ui-extensions/unstable/apis/checkoutapi#properties-propertydetail-applymetafieldchange" target="_blank" class="body-link">write to cart metafields</a></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/checkout-ui-extensions-new-apis-for-summer-editions</link>
  </item>
  <item>
    <title>Polaris v12 beta now available</title>
    <description><![CDATA[ <div class=""><p>The beta release of Polaris v12 is now available, providing developers with early access to resources for updating the look and feel of your apps to fit seamlessly within the newly redesigned Shopify admin.</p>
<p>Learn more about Polaris v12-beta on <a href="https://polaris.shopify.com/new-design-language" target="_blank" class="body-link">polaris.shopify.com</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/polaris-v12-beta-now-available-1</link>
  </item>
  <item>
    <title>App Bridge via &lt;script&gt; tag</title>
    <description><![CDATA[ <div class=""><p>We have released a new version of App Bridge.  You can add the <code>&lt;script&gt;</code>
tag to the <code>&lt;head&gt;</code> of your app pages and get the benefits immediately.  </p>
<p>App Bridge has been written from the ground up to be more familiar to web standards.  </p>
<p>App Bridge  will keep itself up to date automatically, so you don't have to worry about version updates.</p>
<p>Learn more about App Bridge in the <a href="https://shopify.dev/docs/api/app-bridge" target="_blank" class="body-link">documentation</a></p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-bridge-via-script-tag</link>
  </item>
  <item>
    <title>Simplified extension versioning and deployment</title>
    <description><![CDATA[ <div class=""><p>As of today, extensions are packaged and deployed at the same time, directly from Shopify CLI. New app-level extension versioning will help you to keep better track of your app's iterations, and allow you to easily revert to previous versions. </p>
<p>Until September 5th, you can opt in to get access to simplified deployment. Simplified deployment is available in Shopify CLI 3.48.</p>
<p>On September 5th, all apps will automatically be opted in to simplified deployment.</p>
<p><a href="https://shopify.dev/docs/apps/deployment/extension" target="_blank" class="body-link">Learn more about simplified deployment</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/simplified-extension-versioning-and-deployment</link>
  </item>
  <item>
    <title>Config as Code</title>
    <description><![CDATA[ <div class=""><p>Starting today, you can configure and manage your apps directly in your codebase without having to visit the Partner Dashboard. Using Shopify CLI, you can link your <code>shopify.app.toml</code> file to an app, modify the configuration, and push the configuration live. </p>
<p><a href="https://shopify.dev/docs/apps/tools/cli/configuration" target="_blank" class="body-link">Learn more about app configuration</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jul 2023 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/config-as-code</link>
  </item>
  <item>
    <title>Smart Grid management for Point of Sale now available</title>
    <description><![CDATA[ <div class=""><p>As of the latest unstable GraphQL API version, we have introduced the ability to utilize the Admin API for managing Smart Grid for Point of Sale. This enhancement enables the creation and naming of Smart Grid layouts that are not yet linked to any location. Once prepared, the API facilitates the assignment of a layout to single or multiple locations. Any subsequent modifications to this layout will be reflected across all assigned locations, eliminating the necessity for individual manual adjustments.</p>
<p>Just request the appropriate access scope(s) be added to your app.</p>
<p>Learn more about Smart Grid management on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/smartGridLayoutCreate" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 20 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/smart-grid-management-for-point-of-sale-now-available</link>
  </item>
  <item>
    <title>Introduce Fulfillment Constraints built on Shopify Function</title>
    <description><![CDATA[ <div class=""><ul>
<li>As of <code>2023-10</code> version of the Shopify Functions API, you can use the Fulfillment Constraints API to have a higher degree of customization when defining fulfillment and delivery strategies. With this API, checkout won’t return any shipping rates if the configured constraints can’t be met.</li>
<li>For example, you can specify that certain products must be fulfilled from a specific location, based on buyer information, cart information or metafields.</li>
<li>Learn more about Fulfillment Constraints on <a href="https://shopify.dev/docs/api/functions/reference/fulfillment-constraints" target="_blank" class="body-link">Shopify.dev</a>.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 19 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/introduce-fulfillment-constraints-built-on-shopify-function</link>
  </item>
  <item>
    <title>Storefront API Cart BXGY discount line folding</title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of today, the way cart lines are folded when a BXGY discount is applied to the cart is changing in the Storefront API. The lines will now be grouped by applied discount and discounted amount. This change ensures that the Storefront API behaviour matches the existing line folding functionality of the Online Store/Ajax API Cart.</p>
<p>For example, if you have a buy one get one free discount for a product variant and you add 3 of that variant to a cart. The cart lines will be;</p>
<ul>
<li>Item with quantity of 1, no discount applied</li>
<li>Item with quantity of 1, BXGY discount code applied, adjusted discounted price of 0</li>
<li>Item with quantity of 1, BXGY discount code applied, full price of product variant</li>
</ul>
<p>This change reflects the existing line folding functionality of the Online Store/Ajax API Cart.</p>
</div> ]]></description>
    <pubDate>Tue, 18 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/storefront-api-cart-bxgy-discount-line-folding</link>
  </item>
  <item>
    <title>Changes to Ajax API Cart token format </title>
    <description><![CDATA[ <div class=""><p>Ajax API cart tokens will now be returned with a new format. The new format will include a prefix <code>c1-</code> however the API features and functionality remain unchanged. <strong>Apps and themes should be designed to handle cart tokens in any format and of any length</strong>. Treat the cart token as a random identifier that will change in the future.</p>
<p><strong>Action Required:</strong>
Ensure that any app and theme code is free from hard-coded assumptions (ex. Using regex to identify a cart token) on the format and structure of the cart token.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Jul 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-ajax-api-cart-token-format</link>
  </item>
  <item>
    <title>`url` available on `MediaImage.originalSource` GraphQL field</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2023-10</code>, <code>url</code> field is available on the GraphQL <code>MediaImage</code>'s <code>originalSource</code> field <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/mediaimage#field-mediaimage-originalsource" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/2023-07/objects/mediaimage#field-mediaimage-originalsource</a>.</p>
<p>This will be a signed URL that is valid only for a short period of time. It provides access to the originally uploaded uncompressed image.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Jul 2023 20:57:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/url-available-on-mediaimage-originalsource-graphql-field</link>
  </item>
  <item>
    <title>Shopify Protect protection status on Admin API</title>
    <description><![CDATA[ <div class=""><p>As of the latest <code>unstable</code> version and upcoming <code>2023-10</code> version of the Admin GraphQL API, you can use the <code>shopifyProtect</code> field of <code>Order</code> to view the protection status of Shop Pay orders. The protection status is established asynchronous from the <code>orders/create</code> webhook so you can also listen to the <code>orders/shopify_protect_eligibility_changed</code> webhook to know when the protection status is created or updated.</p>
<p>By providing a clear view of an order’s protection status, we're empowering developers to make more informed decisions. For instance, fraud protection apps can avoid redundant costs for merchants when a Shop Pay order is already protected.</p>
<p>Learn more about Shopify Protect’s protection status on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/Order#field-order-shopifyprotect" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Jul 2023 12:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-10</category>
    <link>https://shopify.dev/changelog/shopify-protect-protection-status-on-admin-api</link>
  </item>
  <item>
    <title>Updated integrations field for app listing </title>
    <description><![CDATA[ <div class=""><p>We’ve combined the “Fit seamlessly” and “Integrates with” fields on our app listing pages into one place. Apps that are built using the Checkout and Point of Sale extensions will have them automatically noted in the “Works with” field on the app listing.</p>
<p>Log into your Partner Dashboard and click on Apps &gt; Manage Listing to view the “Integrations” field for your app to ensure the content is up to date.</p>
</div> ]]></description>
    <pubDate>Wed, 12 Jul 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-integrations-field-for-app-listing</link>
  </item>
  <item>
    <title>Updated merchant notification system for apps</title>
    <description><![CDATA[ <div class=""><p>We’ve updated the app settings page with a new notification system to inform merchants of notable insights on their installed apps. Merchants will be able to quickly identify apps that are unsupported, incompatible, require action, on free trial, paid (including the cost), or least used.</p>
</div> ]]></description>
    <pubDate>Wed, 12 Jul 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-merchant-notification-system-for-apps</link>
  </item>
  <item>
    <title>Search and predictive search are now available on Storefront API</title>
    <description><![CDATA[ <div class=""><p>You can now use <code>search</code> and <code>predictiveSearch</code> queries in the GraphQL Storefront API to enable natural language search on your custom storefronts.</p>
<p>The <a href="https://shopify.dev/docs/api/storefront/latest/queries/search" target="_blank" class="body-link">search</a> API returns the most releavant search results among product, page and article resource types. Merchants can use the <a href="https://apps.shopify.com/search-and-discovery" target="_blank" class="body-link">Shopify Search &amp; Discovery app</a> to change the default value of the resource types and customize search results.</p>
<p>The <a href="https://shopify.dev/docs/api/storefront/latest/queries/predictiveSearch" target="_blank" class="body-link">predictiveSearch</a> API helps you implement a predictive search dropdown interface where suggested results are displayed immediately as buyers type into the search bar.</p>
<p>Learn more about new search APIs on <a href="https://shopify.dev/docs/custom-storefronts/building-with-the-storefront-api/search-discovery" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/search-and-predictive-search-are-now-available-on-storefront-api</link>
  </item>
  <item>
    <title>Introduce new `stale` status to Subscription Contracts</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-07,</strong> you can use the new Subscription Contract <code>stale</code> status to express a contract that has been marked as stale due to inactivity. </p>
<p>We're deprecating the <a href="https://shopify.dev/docs/api/admin-graphql/2022-10/enums/subscriptiondrafterrorcode#value-stalecontract" target="_blank" class="body-link">SubscriptionDraftErrorCode <code>STALE_CONTRACT</code></a> and replace it by <code>CONCURRENT_CONTRACT_UPDATE</code> for a better description of the error. </p>
<p>We're introducing the new error code <code>CONTRACT_STALE_STATUS</code> to <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/SubscriptionBillingCycleErrorCode" target="_blank" class="body-link">SubscriptionBillingCycleErrorCode</a> and <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/SubscriptionDraftErrorCode" target="_blank" class="body-link">SubscriptionDraftErrorCode</a> to indicate whenever we attempt to update or bill a contract that hasn't been used for 1 year.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/introduce-new-stale-status-to-subscription-contracts</link>
  </item>
  <item>
    <title>`trackingParameters` is available on `Product`, `Collection`, `Article`, `Post` and `SearchQuerySuggestion` GraphQL types</title>
    <description><![CDATA[ <div class=""><p>We've added <code>trackingParameters</code> on <code>Product</code>, <code>Collection</code>, <code>Article</code>, <code>Post</code> and <code>SearchQuerySuggestion</code> when it is a part of results coming from <code>search</code> and <code>predictiveSearch</code> as adding this to a page URL when it is linked from a search result allows for tracking the origin of the traffic.</p>
<p>Learn more about <code>trackingParameters</code> on <a href="https://shopify.dev/docs/api/storefront/unstable/interfaces/Trackable#field-trackable-trackingparameters" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/trackingparameters-is-available-on-product-collection-article-post-and-searchquerysuggestion-graphql-types</link>
  </item>
  <item>
    <title>Exposing ONLINE_STORE_POST_PURCHASE_CROSS_SELL fulfillment hold reason on Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-07</strong> partners will be able to determine whether fulfillment has been on hold for a post-purchase with the reason <code>ONLINE_STORE_POST_PURCHASE_CROSS_SELL</code>.</p>
<p>Learn more about this new feature <a href="https://shopify.dev/docs/api/admin-graphql/unstable/objects/FulfillmentHold" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/exposing-online_store_post_purchase_cross_sell-fulfillment-hold-reason-on-admin-api</link>
  </item>
  <item>
    <title>Release of Shop Promise details presented to buyer at checkout</title>
    <description><![CDATA[ <div class=""><p>The DeliveryMethod object now has a <strong>brandedPromise</strong> field that can be used to determine if an order was branded with &quot;Shop Promise&quot; at checkout.</p>
<p>Additionally, the MailingAddress object now includes the <strong>timeZone</strong> field, which can be used with the DeliveryMethod's <strong>maxDeliveryDateTime</strong> field, to determine the date and time according to the time zone of the destination address.</p>
<p>The new field on the GraphQL DeliveryMethod object is:</p>
<ul>
<li>brandedPromise</li>
</ul>
<p>Learn more about this new field in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryMethod#fields" target="_blank" class="body-link">GraphQL reference docs</a>.</p>
<p>The new field on the GraphQL MailingAddress object is:</p>
<ul>
<li>timeZone</li>
</ul>
<p>Learn more about this new field in the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress#fields" target="_blank" class="body-link">GraphQL reference docs</a>.</p>
<p>Learn more about <a href="https://www.shopify.com/shop-promise" target="_blank" class="body-link">Shop Promise eligibility</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/release-of-shop-promise-details-presented-to-buyer-at-checkout</link>
  </item>
  <item>
    <title>New error code added to inventory quantity mutations</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2023-07</code>, a new error code <code>item_not_stocked_at_location</code> will be added to the the <code>inventorySetOnHandQuantities</code>, <code>inventoryAdjustQuantities</code>, and <code>inventoryMoveQuantities</code> mutations. This error code is returned when you attempt to change inventory quantities for an item that is not stocked at the specified location.</p>
<p>Learn more about managing inventory quantities on <a href="https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#step-3-manage-inventory-quantities" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/new-error-code-added-to-inventory-quantity-mutations</link>
  </item>
  <item>
    <title>Function parameter values can be queried in the Segmentation API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API Version <code>2023-07</code>, you can use the new <code>functionParameterQueryName</code> argument on <code>segmentValueSuggestions</code> to query for function parameter value suggestions for Customer Segmentation.</p>
<p>For example, the <code>products_purchased</code> filter has the function parameter <code>id</code>: <code>products_purchased(id: '2012162031638') = true</code>. To retrieve a list of possible Product IDs to use for the <code>id</code> function parameter, provide <code>filterQueryName: 'products_purchased', functionParameterQueryName: 'id'</code> as arguments to the <code>segmentValueSuggestions</code> endpoint.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/function-parameter-values-can-be-queried-in-the-segmentation-api</link>
  </item>
  <item>
    <title>PUBLIC_READ Access Setting for App Owned Metafields</title>
    <description><![CDATA[ <div class=""><p>As of the 2023-07 Admin API release, you can now apply a <code>PUBLIC_READ</code> access setting to your metafield definitions. If your metafield definition is <code>PUBLIC_READ</code>, this means:</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>PRIVATE</code>, <code>MERCHANT_READ</code>, and <code>MERCHANT_READ_WRITE</code> access settings <a href="https://shopify.dev/changelog/access-controls-for-app-metafields" target="_blank" class="body-link">released in January 2023</a>. </p>
<p>Note that the <code>access</code> field can only be set when the definition is in your own <a href="https://shopify.dev/docs/apps/custom-data/ownership#create-a-metafield-definition-under-a-reserved-namespace" target="_blank" class="body-link">reserved namespace</a>.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/custom-data/ownership" target="_blank" class="body-link">access controls</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/public_read-access-setting-for-app-owned-metafields</link>
  </item>
  <item>
    <title>Webhooks for B2B Customers Flow Primitives</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API <code>2023-07</code> Release, we are providing additional webhook notifications for changes to the major entities within the B2B Customers product. These hooks are provided to enable better integration with Flow. The following webhooks are provided:</p>
<ul>
<li><code>company_contact_roles/assign</code></li>
<li><code>company_contact_roles/revoke</code></li>
</ul>
<p>Learn more about these webhooks on  <a href="https://shopify.dev/docs/api/admin-rest/2023-07/resources/webhook#event-topics" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/webhooks-for-b2b-customers-flow-primitives</link>
  </item>
  <item>
    <title>New mutations `fulfillmentOrderSplit` and `fulfillmentOrderMerge` that enables to split and merge Fulfillment Orders</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-07</strong> partners will be able to split and merge fulfillment orders.
Patners can split a single fulfillment order into multiple fulfillment order dividing the line line items across multiple fulfillment orders.
Partners can also merge fulfillment orders together into a single fulfillment order</p>
<p>Learn more about <code>fulfillmentOrderSplit</code> [here] (<a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentOrderSplit" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentOrderSplit</a>) and <code>fulfillmentOrderMerge</code> [here] (<a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentOrderMerge" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentOrderMerge</a>)</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/new-mutations-fulfillmentordersplit-and-fulfillmentordermerge-that-enables-to-split-and-merge-fulfillment-orders</link>
  </item>
  <item>
    <title>New error codes added to `fileUpdate` mutation</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-07</strong>  new error codes <code>FILENAME_ALREADY_EXISTS</code> and <code>INVALID_FILENAME</code> will be added to the <code>fileUpdate</code>  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 is invalid.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/new-error-codes-added-to-fileupdate-mutation</link>
  </item>
  <item>
    <title>Moving total_count field from SegmentStatistics to CustomerSegmentMemberConnection</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-07</strong>, you can use <strong>total_count</strong>  on <strong>CustomerSegmentMemberConnection</strong> endpoint, which will provide you with the total count of your specified customer segment.
Also, as of <strong>2023-07</strong>, we're removing <strong>total_count</strong> field on <strong>SegmentStatistics</strong>. 
Using the total_count functionality will make it easier to know the count of members of your specified segment.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/moving-total_count-field-from-segmentstatistics-to-customersegmentmemberconnection</link>
  </item>
  <item>
    <title>Creating a single-country market will no longer automatically create a subfolder web presence for this market</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-07, we are 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 <code>marketWebPresenceCreate</code> mutation. Passing in the country code of the market region as the <code>subfolderSuffix</code> would create the corresponding web presence.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/creating-a-single-country-market-will-no-longer-automatically-create-a-subfolder-web-presence-for-this-market</link>
  </item>
  <item>
    <title>Deprecation of Unity Buy SDK</title>
    <description><![CDATA[ <div class=""><p>Today we are announcing the deprecation and end-of-life for our Unity Buy SDK. Effective July 1, 2023 the library’s repository will be placed into read-only mode and will no longer receive any updates. The repository will remain accessible as a reference to those who are still utilizing it today.</p>
<p>This does not mean, however, that the ability to build commerce experiences in Unity powered by Shopify will no longer exist. The Unity engine provides robust APIs for performing HTTP requests which can be used with our Storefront GraphQL API. Additionally, there are several open-source projects available which provide varying levels of GraphQL functionality within the Unity engine.</p>
<p>For more information, please see our <a href="https://shopify.dev/docs/custom-storefronts/additional-sdks/unity-buy" target="_blank" class="body-link">Unity Buy SDK documentation</a>. We look forward to watching our merchants continue to build and push the boundaries of commerce in the constantly changing digital world.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/deprecation-of-unity-buy-sdk</link>
  </item>
  <item>
    <title>Allows updating the filename of a file in the fileUpdate mutation.</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-07</strong>  we have added a new field called <code>filename</code> to the <code>fileUpdate</code> mutation. This new field allows you to update the <code>filename</code> of both generic files and images.</p>
<p>To learn more about the <code>fileUpdate</code> mutation, visit the GraphQL reference in our <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/fileUpdate" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/allows-updating-the-filename-of-a-file-in-the-fileupdate-mutation</link>
  </item>
  <item>
    <title>Allows specifying a custom filename when using fileCreate mutation.</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-07</strong>  , you can now specify a custom <code>filename</code>  when using the <code>fileCreate</code> mutation to create files that will appear in the Admin.</p>
<p>To learn more about the <code>fileCreate</code> mutation, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/fileCreate" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/allows-specifying-a-custom-filename-when-using-filecreate-mutation</link>
  </item>
  <item>
    <title>Added new field `type` to `TranslatableContent`</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-07</code>, you can use the new field <code>type</code> on <code>TranslatableContent</code> to get the type of the translatable content.</p>
<p>The new <code>type</code> field gives more information about the underlying translatable content which enables the ability to conditionally render UI elements such as input fields.</p>
<p>Learn more about the <code>LocalizableContentType</code> object on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/enums/LocalizableContentType" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/added-new-field-type-to-translatablecontent</link>
  </item>
  <item>
    <title>Contextual Product Feeds are Generally Available</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version <strong>2023-07</strong>, all partners have access to Contextual Product Feeds. Partners will be able to receive contextual product data for any contexts they want that are supported by the merchant.
To get started, the partner will need to create product feeds and subscribe to productfeeds/incrementalsync and productfeeds/fullsync webhooks.</p>
<p>For more information on how to query for product feeds, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/queries/productFeeds" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/contextual-product-feeds-are-generally-available</link>
  </item>
  <item>
    <title>Expose the discount class for applied_discounts and discount_allocations on a line item for the Checkout Admin REST API</title>
    <description><![CDATA[ <div class=""><p>The <code>2023-07</code> API version of the <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/checkout" target="_blank" class="body-link">Checkout Admin REST API</a> will expose the <code>discount_class</code> attribute in the <code>line_items[n].applied_discounts</code> and <code>line_items[n].discount_allocations</code>.</p>
<p>The <code>discount_class</code> identifies the type of discount applied to a line_item:</p>
<p><code>PRODUCT</code> - denotes a Product class discount that applies to specific products only.
<code>ORDER</code> - denotes an Order class discount that applies across all line items.</p>
<p>The following example shows the <code>&quot;discount_class&quot;: &quot;ORDER&quot;</code> present for the line item when an order class discount was applied to a checkout.</p>
<pre><code>&quot;line_items&quot;: [
    {
        &quot;id&quot;: &quot;a93dfd7540730e5d9812a92fac5a640e&quot;,
        &quot;key&quot;: &quot;a93dfd7540730e5d9812a92fac5a640e&quot;,
        &quot;product_id&quot;: 6,
        &quot;variant_id&quot;: 10,
        &quot;sku&quot;: &quot;jeans1&quot;,
        &quot;vendor&quot;: &quot;&quot;,
        &quot;title&quot;: &quot;Jeans&quot;,
        &quot;variant_title&quot;: &quot;Black&quot;,
        &quot;image_url&quot;: &quot;&quot;,
        &quot;taxable&quot;: true,
        &quot;requires_shipping&quot;: true,
        &quot;gift_card&quot;: false,
        &quot;price&quot;: &quot;50.00&quot;,
        &quot;compare_at_price&quot;: &quot;30.00&quot;,
        &quot;line_price&quot;: &quot;50.00&quot;,
        &quot;properties&quot;: {},
        &quot;quantity&quot;: 1,
        &quot;grams&quot;: 0,
        &quot;fulfillment_service&quot;: &quot;manual&quot;,
        &quot;applied_discounts&quot;: [],
        &quot;discount_allocations&quot;: [
            {
                &quot;id&quot;: null,
                &quot;amount&quot;: &quot;20.00&quot;,
                &quot;description&quot;: &quot;ORDER$20&quot;,
                &quot;created_at&quot;: null,
                &quot;application_type&quot;: &quot;discount_code&quot;,
                &quot;discount_class&quot;: &quot;ORDER&quot;
            }
        ],
        &quot;tax_lines&quot;: []
    }
],
</code></pre>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/expose-the-discount-class-for-applied_discounts-and-discount_allocations-on-a-line-item-for-the-checkout-admin-rest-api</link>
  </item>
  <item>
    <title>Subfolders can now exist on ccTLD domains</title>
    <description><![CDATA[ <div class=""><p>As of 2023-07, you can now create region-specific subfolders on country-code top-level domains (ccTLDs), such as shop.ca or shop.fr. Previously, subfolders could only be created on generic top-level domains (gTLDs).</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/subfolders-can-now-exist-on-cctld-domains</link>
  </item>
  <item>
    <title>Update credit card payment method payload in Payments Apps API 2023-07 release</title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->


<p>As of <code>2023-07</code> Payments Apps API version for credit card payments app extensions, we're changing the structure of the decrypted message of <code>payment_method.data.encrypted_message</code> sent in the HTTP request body from Shopify to your payments app. This change aims to consolidate the API design that we follow, as demonstrated in the <a href="https://shopify.dev/docs/apps/payments/implementation/process-a-payment/credit-card#payment_method-data-hash" target="_blank" class="body-link">payment_method object</a>.</p>
<p>Learn more about the decryption of the <code>encrypted_message</code> on <a href="https://shopify.dev/docs/apps/payments/implementation/process-a-payment/credit-card#decrypt-encrypted_message" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/update-credit-card-payment-method-payload-in-payments-apps-api-2023-07-release</link>
  </item>
  <item>
    <title>Adding metafield attributes to the Admin API `CustomerSegmentMember` object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-07</strong>, the <code>CustomerSegmentMember</code> object now has the attributes and connections to access the metafields associated to the customer.</p>
<p>Learn more about the <code>CustomerSegmentMember</code> object on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/CustomerSegmentMember" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/adding-metafield-attributes-to-the-admin-api-customersegmentmember-object</link>
  </item>
  <item>
    <title>Adding `acceptsMultipleValues` attribute to `SegmentEventFilterParameter` object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-07</strong>, the <code>SegmentEventFilterParameter</code> object now has the attribute <code>acceptsMultipleValues</code> to denote if the parameter can handle multiple values. For example, the <code>id</code> parameter for the <code>products_purchased</code> function can accept multiple values: <code>products_purchased(id: (2012162031638, 1012132033639) = false</code>.</p>
<p>Learn more about the <code>Segment query language</code> on <a href="https://shopify.dev/docs/api/shopifyql/segment-query-language-reference" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/adding-acceptsmultiplevalues-attribute-to-segmenteventfilterparameter-object</link>
  </item>
  <item>
    <title>New mutation for removing a CompanyContact from a Company.</title>
    <description><![CDATA[ <div class=""><p>As of the <code>2023-07</code> release, you can use the <code>companyContactRemoveFromCompany</code> mutation in GraphQL to remove a company contact from a company even if they have placed orders on behalf of the company. </p>
<p>For more information on this new mutation, visit our <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/companyContactRemoveFromCompany" target="_blank" class="body-link">developer documentation</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/new-mutation-for-removing-a-companycontact-from-a-company</link>
  </item>
  <item>
    <title>Added new field `isMarketplace` on `ChannelDefinition`</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-07</code>, you can use the new field <code>isMarketplace</code> on <code>ChannelDefinition</code> to check if a channel definition represents a marketplace such as Shops on Facebook and Instagram or Buy on Google.</p>
<p>The new <code>isMarketplace</code> field gives the ability to know if any object that references <code>ChannelDefinition</code> is related to a marketplace channel. For example, you can know if an order was placed on a channel that is a marketplace or if the store has available channels that are marketplaces.</p>
<p>Learn more about the <code>isMarketplace</code> field on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/ChannelDefinition" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/added-new-field-ismarketplace-on-channeldefinition</link>
  </item>
  <item>
    <title>Added new field `taxExempt` on `Order`</title>
    <description><![CDATA[ <div class=""><p>As of  GraphQL Admin API <code>2023-07</code>, we've added the <code>taxExempt</code> field to the <code>Order</code> object. You can use this field to determine whether or not an order was exempt from taxes.</p>
<p>Orders can be exempt from taxes if the &quot;Charge taxes&quot; option was disabled during the creation of a Draft Order, or if the order was created for a customer with the &quot;Collect tax&quot; option disabled. </p>
<p><em>Note that any products that are tax exempt in an order are not considered when calculating the <code>taxExempt</code> field .</em></p>
<p>Learn more about the <code>taxExempt</code> field on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/Order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/added-new-field-taxexempt-on-order</link>
  </item>
  <item>
    <title>Deprecation of `productDuplicateAsync` and introduction of `productDuplicateAsyncV2` and `productDuplicateJob`</title>
    <description><![CDATA[ <div class=""><p>In the Admin API <code>2023-07</code> Release, we are deprecating the <code>productDuplicateAsync</code> mutation and introducing the <code>productDuplicateAsyncV2</code> mutation and the <code>productDuplicateJob</code> query. </p>
<p>The new mutation brings several improvements over <code>productDuplicateAsync</code>, enhancing the overall user experience and performance of the endpoint.</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDuplicateAsync" target="_blank" class="body-link">productDuplicateAsync</a> has been deprecated.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDuplicateAsyncV2" target="_blank" class="body-link">productDuplicateAsyncV2</a> has been introduced.</li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/productDuplicateJob" target="_blank" class="body-link">productDuplicateJob</a> query has been introduced to fetch the status of an existing product duplication job.</li>
</ul>
<p>Learn more about these changes at <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDuplicateAsyncV2" target="_blank" class="body-link">productDuplicateAsyncV2</a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/productDuplicateJob" target="_blank" class="body-link">productDuplicateJob</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/deprecation-of-productduplicateasync-and-introduction-of-productduplicateasyncv2-and-productduplicatejob</link>
  </item>
  <item>
    <title>Adding the ability to sort orders by total item quantity</title>
    <description><![CDATA[ <div class=""><p>As of Admin API <code>2023-07</code> release we've added <code>TOTAL_ITEM_QUANTITY</code> to <code>OrderSortKeys</code> so that you can sort orders by the total quantity of items.</p>
<p>For more information on all of the other order sort keys that are available, visit our <a href="https://shopify.dev/docs/api/storefront/2023-07/enums/OrderSortKeys" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/adding-the-ability-to-sort-orders-by-total-item-quantity</link>
  </item>
  <item>
    <title>New fields on Shopify Function APIs</title>
    <description><![CDATA[ <div class=""><p>New fields have been added to all Shopify Functions APIs.</p>
<ul>
<li>The <code>sellingPlanAllocation</code> field is now available on <code>CartLine</code>.</li>
<li>The <code>title</code> field is now available on <code>Product</code>, <code>CustomProduct</code>, and <code>ProductVariant</code>.</li>
<li>The <code>inCollections</code> field on <code>Product</code> allows for checking membership in individual product collections.</li>
<li>The <code>hasTags</code> field on <code>Product</code> and <code>Customer</code> allows for checking the presence of individual tags.</li>
<li>The <code>isAuthenticated</code> field on <code>BuyerIdentity</code> identifies whether the customer is logged in.</li>
</ul>
<p>For details on these fields, see the <a href="https://shopify.dev/docs/api/functions" target="_blank" class="body-link">API Reference documentation</a> for Shopify Functions.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-fields-on-shopify-function-apis</link>
  </item>
  <item>
    <title>Partner Exclusive Mutations to Support the Transfer of Subscriptions Between Shops</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version 2023-07, selected partners can use the new <em><strong>customerPaymentMethodGetDuplicationData</strong></em> and <em><strong>customerPaymentMethodCreateFromDuplicationData</strong></em> to migrate subscription contracts and its vaulted payment method between shops within the same organization.</p>
<p>This is currently limited to specific partners, and to subscriptions checked out through Shop Pay.</p>
<p>No action is needed from developers at this moment.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/partner-exclusive-mutations-to-support-the-transfer-of-subscriptions-between-shops</link>
  </item>
  <item>
    <title>Determining local pickup inventory availability in the Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of version 2023-07 of the Storefront GraphQL API, you can now use the <code>StoreAvailability.quantityAvailable</code> field to determine the inventory available for a product variant at a particular local pickup location.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/determining-local-pickup-inventory-availability-in-the-storefront-api</link>
  </item>
  <item>
    <title>Added new field `tax_exempt` on the `Order` resource for the REST Admin API</title>
    <description><![CDATA[ <div class=""><p>As of  REST Admin API <code>2023-07</code>, we've added the <code>tax_exempt</code> field to the <code>Order</code> resource. You can use this field to determine whether or not an order was exempt from taxes.</p>
<p>Orders can be exempt from taxes if the &quot;Charge taxes&quot; option was disabled during the creation of a Draft Order, or if the order was created for a customer with the &quot;Collect tax&quot; option disabled. </p>
<p><em>Note that any products that are tax exempt in an order are not considered when calculating the <code>tax_exempt</code> field .</em></p>
<p>Learn more about the <code>tax_exempt</code> field on <a href="https://shopify.dev/docs/api/admin-rest/2023-07/resources/order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/added-new-field-tax_exempt-on-the-order-resource-for-the-rest-admin-api</link>
  </item>
  <item>
    <title>Translate filter settings</title>
    <description><![CDATA[ <div class=""><p>As of 2023-07 we're introducing a new capability to translate filters.</p>
<p>When enabled, all filter labels will be eligible for translations through the <a href="https://shopify.dev/docs/apps/markets/translate-content" target="_blank" class="body-link">Translations API</a> as well as the <a href="https://apps.shopify.com/translate-and-adapt?shpxid=c0b0c0ff-6A02-4274-4021-DD5A9A2B85A9" target="_blank" class="body-link">Translate and Adapt</a> app.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/translate-filter-settings</link>
  </item>
  <item>
    <title>Tax partners can now configure the state of an tax app configuration</title>
    <description><![CDATA[ <div class=""><p>We’ve added the <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/taxAppConfigure" target="_blank" class="body-link">taxAppConfigure</a> mutation, which now 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 application.</p>
<p>For more information, visit <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/taxAppConfigure" target="_blank" class="body-link">shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/tax-partners-can-now-configure-the-state-of-an-tax-app-configuration</link>
  </item>
  <item>
    <title>Unknown sale type</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-07</code>, we are introducing sales type <code>UnknownSale</code> with line type <code>UNKNOWN</code> that represents new types of sales that may be added in the future and do not exist on older versions.</p>
<p>This is a complimentatry object type for the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/enums/SaleLineType#value-unknown" target="_blank" class="body-link">SalesLineType UNKNOWN</a> and implements the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/interfaces/Sale" target="_blank" class="body-link">Sale interface</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/unknown-sale-type</link>
  </item>
  <item>
    <title>Breaking changes to Product Feeds API</title>
    <description><![CDATA[ <div class=""><p>As of Product Feeds API version 2023-07, we're introducing two breaking changes to the productfeeds webhook topics:</p>
<ul>
<li>Deprecated use of <strong>bulk</strong> in favour of <strong>full</strong> for the <code>product_feeds</code> / <code>full_sync</code> webhook topic.</li>
<li>Corrected spelling of <strong>occurred_at</strong> field in metadata for product_feeds notifications metadata.</li>
</ul>
<p>Partners who wish to continue receiving full sync notifications should start using the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/productFullSync" target="_blank" class="body-link">productFullSync</a> mutation instead of <code>productBulkSync</code>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/breaking-changes-to-product-feeds-api</link>
  </item>
  <item>
    <title>Added new `tax_partner/update` webhook</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API <code>2023-07</code> Release the <code>tax_partners/update</code> webhook will be available.</p>
<p>The <code>tax_partners/update</code> webhook will be 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's tax app.</p>
<p>Learn more about these webhooks on  <a href="https://shopify.dev/docs/api/admin-rest/2023-07/resources/webhook#event-topics" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/added-new-tax_partner-update-webhook</link>
  </item>
  <item>
    <title>Additional fees as a sale line type</title>
    <description><![CDATA[ <div class=""><p>Sales records can now be of type <code>AdditonalFeeSale</code> as of <code>2023-07</code>, which represents a sale associated with an additional fee charge.</p>
<p>For more information on this new type implementation, visit the documentation for the <a href="https://shopify.dev/docs/api/admin-graphql/unstable/interfaces/Sale#top" target="_blank" class="body-link">sale interface</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/additional-fees-as-a-sale-line-type</link>
  </item>
  <item>
    <title>Purchase order numbers added to Orders/DraftOrders object</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-07</strong>  we have added a new field called <code>poNumber</code> to the <code>Order</code> and <code>DraftOrder</code> object.</p>
<p>The <code>OrderInput</code> and <code>DraftOrderInput</code> input objects now accept a <code>poNumber</code>. This will set the purchase order number during an <code>orderUpdate</code> , <code>draftOrderUpdate</code> and <code>draftOrderCreate</code> mutation.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jul 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/purchase-order-numbers-added-to-orders-draftorders-object</link>
  </item>
  <item>
    <title>Manage quantity rules for B2B customers</title>
    <description><![CDATA[ <div class=""><p>As of the  <code>2023-07</code> version of the Admin GraphQL API, you can use the <code>quantityRulesAdd</code> and <code>quantityRulesDelete</code> mutations to manage product variant minimums, maximums and increments for B2B customers. Use the <code>quantityRules</code> field on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/ProductVariantContextualPricing" target="_blank" class="body-link">ProductVariantContextualPricing</a> to view the quantity rules applied for the <code>companyLocationId</code> input.</p>
<p>Learn more about the Quantity Rules API on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/objects/QuantityRule" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 30 Jun 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/manage-quantity-rules-for-b2b-customers</link>
  </item>
  <item>
    <title>POS UI extensions update: new components, APIs, fixes</title>
    <description><![CDATA[ <div class=""><p>As of June 26, we added a <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/components/pin-pad" target="_blank" class="body-link">PinPad component</a>, a <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/api/product-search" target="_blank" class="body-link">Product Search API</a> and a <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/api/device" target="_blank" class="body-link">Device API</a>. </p>
<p>POS UI extensions <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/components/navigator" target="_blank" class="body-link">Navigator component</a> now supports a new prop called <code>initialScreenName</code>. It can be used to set the name of the <code>Screen</code> to initialize to. The <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/components/list" target="_blank" class="body-link">List component</a> was updated to support <code>badge</code> property for <code>leftSide</code> image, and <code>toggleSwitch</code> property for <code>rightSide</code>.</p>
<p>We also made the <code>amount</code> field in the <code>applyCartDiscount</code> function of the <a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/api/cart" target="_blank" class="body-link">Cart API</a> optional to allow for code discounts.</p>
<p>All of the changes are available for POS UI extensions version 1.2.0 and POS app version 8.12.0.</p>
</div> ]]></description>
    <pubDate>Wed, 28 Jun 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pos-ui-extensions-update-new-components-apis-fixes</link>
  </item>
  <item>
    <title>Order confirmation number</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-07,</strong> you can filter orders by their confirmation number.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#:~:text=checkout_token-,confirmation_number,-created_at" target="_blank" class="body-link">confirmation_number filter</a> is available on the orders connection. This number corresponds to the order confirmation number that customers see after checkout.</p>
</div> ]]></description>
    <pubDate>Wed, 28 Jun 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/order-confirmation-number</link>
  </item>
  <item>
    <title>One page checkout in the checkout editor</title>
    <description><![CDATA[ <div class=""><p>Developers can now customize and preview one page checkout from the checkout editor. With this new developer preview, one page checkout is automatically compatible with existing checkout extensions and customizations. Preview and prepare for one page checkout today.</p>
<p>Learn more about one page support in the checkout editor <a href="https://shopify.dev/docs/api/checkout-ui-extensions" target="_blank" class="body-link">in the Shopify developer docs</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 27 Jun 2023 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/one-page-checkout-in-the-checkout-editor</link>
  </item>
  <item>
    <title>Checkout UI Extension limits are raised to 50</title>
    <description><![CDATA[ <div class=""><p>We heard you love extensions. We heard you want more per app. So we shipped 10x the goodness so apps now have a limit of 50 extensions.</p>
</div> ]]></description>
    <pubDate>Tue, 27 Jun 2023 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkout-ui-extension-limits-are-raised-to-50</link>
  </item>
  <item>
    <title>Updates to order status page UI extensions</title>
    <description><![CDATA[ <div class=""><p>We’ve made it easier than ever to build checkout UI extensions on the order status page! More specifically, we’ve added new getting started tutorials to help you build extensions that target all, or specific pages in the customer journey. We’ve also launched a new testing experience in the checkout editor, so you can preview what merchants will see when customizing their post-checkout extensions. <a href="https://shopify.dev/docs/apps/checkout/thank-you-order-status/multi-page" target="_blank" class="body-link">Learn more</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 27 Jun 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-to-order-status-page-ui-extensions</link>
  </item>
  <item>
    <title>Resource url handles are now translatable</title>
    <description><![CDATA[ <div class=""><p>Using the <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/translationsRegister" target="_blank" class="body-link">TranslationsRegister GraphQL API</a>, you can now register translations for resource handles in order to create localized online store urls for merchants. For example, merchants may want their product URLs to be <code>example.com/products/en-us/red-shoes</code> for English-speaking customers and <code>example.com/products/es-us/zapatos-rojos</code> for Spanish-speaking customers.</p>
<p>The resource types that support translatable url handles are Products, Collections, Articles, Blogs, and Pages. This change is supported across all api versions.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Jun 2023 16:07:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/resource-url-handles-are-now-translatable</link>
  </item>
  <item>
    <title>App review ranking changes</title>
    <description><![CDATA[ <div class=""><p>On <strong>June 22nd</strong> we introduced a new ranking system for app reviews that factors in the quality of a review to determine which reviews are surfaced first. Reviews with helpful, meaningful content that were submitted recently by merchants who have used the app for an extended period will appear first. </p>
<p>All reviews are continuously monitored by Shopify and non-compliant reviews will be automatically removed.</p>
</div> ]]></description>
    <pubDate>Thu, 22 Jun 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-review-ranking-changes</link>
  </item>
  <item>
    <title>New chargebackLiability field for onsite credit card payments apps with 3-D Secure</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2023-07</code> of the GraphQL <code>Payments Apps API</code>, you must provide the <a href="https://shopify.dev/docs/api/payments-apps/unstable/input-objects/PaymentSessionThreeDSecureAuthenticationData#field-paymentsessionthreedsecureauthenticationdata-chargebackliability" target="_blank" class="body-link">chargebackLiability</a> field in the 3-D Secure <a href="https://shopify.dev/docs/api/payments-apps/unstable/input-objects/PaymentSessionThreeDSecureAuthenticationData" target="_blank" class="body-link">PaymentSessionThreeDSecureAuthenticationData</a> input object. Merchants will benefit from this information to better manage their orders.</p>
<p>Learn more about the GraphQL <code>Payments Apps API</code> and 3-D Secure on <a href="https://shopify.dev/docs/apps/payments/implementation/process-a-payment#credit-card-with-3-d-secure" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 19 Jun 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/new-chargebackliability-field-for-onsite-credit-card-payments-apps-with-3-d-secure</link>
  </item>
  <item>
    <title>Additional webhook subscription topics for customer tags</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API <code>2023-07</code> release for GraphQL, we're providing additional webhook subscription topics for customer tags:</p>
<ul>
<li><code>CUSTOMER_TAGS_ADDED</code></li>
<li><code>CUSTOMER_TAGS_REMOVED</code></li>
</ul>
<p>Learn more about these webhooks on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/enums/WebhookSubscriptionTopic" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 16 Jun 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/additional-webhook-subscription-topics-for-customer-tags</link>
  </item>
  <item>
    <title>Release an API to update marketing activity delivery status on abandonment objects into a stable version</title>
    <description><![CDATA[ <div class=""><p>As of 2023-07, you can use the <code>abandonmentUpdateActivitiesDeliveryStatuses</code> to update the delivery status of marketing activities created via Flow action extension. We are deprecating the <code>abandonmentEmailStateUpdate</code> mutation since it's being replaced by the new API. </p>
</div> ]]></description>
    <pubDate>Thu, 15 Jun 2023 19:22:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/release-an-api-to-update-marketing-activity-delivery-status-on-abandonment-objects-into-a-stable-version</link>
  </item>
  <item>
    <title>Deprecation of image-related fields in product and product variants mutations</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-07</strong>, we're deprecating a set of fields used for associating images with products and variants. Please, have a look at the list of upcoming changes:</p>
<ul>
<li>On <code>ProductInput</code>: we're deprecating the <code>images</code> field. Use the newly introduced <code>media</code> field instead.</li>
<li>On <code>ProductVariantInput</code>: we're deprecating <code>imageId</code> and <code>imageSrc</code> fields. Use <code>mediaId</code> and <code>mediaSrc</code> instead.</li>
<li>On <code>ProductVariantsBulkInput</code>: we're deprecating the <code>imageSrc</code> field. Use <code>mediaSrc</code> instead.</li>
</ul>
<p>Learn more about <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductInput" target="_blank" class="body-link"><code>ProductInput</code></a>, <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductVariantInput" target="_blank" class="body-link"><code>ProductVariantInput</code></a> and <a href="https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductVariantsBulkInput" target="_blank" class="body-link"> <code>ProductVariantsBulkInput</code></a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Thu, 15 Jun 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/deprecation-of-image-related-fields-in-product-and-product-variants-mutations</link>
  </item>
  <item>
    <title>Increased Admin API rate limits for the Advanced plan</title>
    <description><![CDATA[ <div class=""><p>Shopify increased Admin API rate limits for the Advanced plan by 2x over standard limits. Apps installed on Advanced plan stores will now get 100 points/second on the GraphQL Admin API and 4 requests/second on the REST Admin API.</p>
<p><a href="https://shopify.dev/docs/api/usage/rate-limits" target="_blank" class="body-link">Read more about API rate limits.</a></p>
</div> ]]></description>
    <pubDate>Wed, 07 Jun 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increased-admin-api-rate-limits-for-the-advanced-plan</link>
  </item>
  <item>
    <title>Removal of the delivery_category field on order shipping lines.</title>
    <description><![CDATA[ <div class=""><p>As of 2023-07, we're deprecating the order shipping line <code>delivery_category</code> property. The property has not been in use since <code>2020-06-12</code> and will no longer be present.</p>
</div> ]]></description>
    <pubDate>Tue, 06 Jun 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/removal-of-the-delivery_category-field-on-order-shipping-lines</link>
  </item>
  <item>
    <title>App Store search filters by extension for checkout and Point of Sale</title>
    <description><![CDATA[ <div class=""><p>On June 5 we released a new filter for App Store search results pages that will allow merchants to easily identify apps with extensions for Shopify Checkout and Shopify Point of Sale.</p>
</div> ]]></description>
    <pubDate>Mon, 05 Jun 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/app-store-search-filters-by-extension-for-checkout-and-point-of-sale</link>
  </item>
  <item>
    <title>CLI 2.x is deprecated</title>
    <description><![CDATA[ <div class=""><p>As of May 31, 2023, Shopify CLI 2.x is deprecated for app and theme development, and is no longer supported. You should use Shopify CLI 3.x for all development tasks moving forward.</p>
<p>Shopify will block app and extension commmands for all CLI 2.x users in the coming weeks.</p>
<p>Theme commands will continue to function in the near term.</p>
<p>Learn how to migrate to Shopify CLI 3.x using the following guides:</p>
<ul>
<li><a href="https://shopify.dev/docs/apps/tools/cli/migrate" target="_blank" class="body-link">For app development</a></li>
<li><a href="https://shopify.dev/docs/themes/tools/cli/migrate" target="_blank" class="body-link">For theme development</a></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 31 May 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/cli-2-x-is-deprecated</link>
  </item>
  <item>
    <title>Storefront API is now available to non-channel apps</title>
    <description><![CDATA[ <div class=""><p>Apps no longer need to be a channel in order to access the <a href="https://shopify.dev/docs/api/storefront" target="_blank" class="body-link">Storefront APIs</a>. Just request the appropriate unauthenticated access scope(s) to your app. </p>
<p>Take advantage of the Storefront API’s powerful <a href="https://shopify.dev/docs/api/storefront#directives" target="_blank" class="body-link">contextualization features</a> to build rich customer-facing experiences for your merchants.</p>
<p>Learn more about authenticating with the Storefront API on <a href="https://shopify.dev/docs/api/usage/authentication#access-tokens-for-the-storefront-api" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Thu, 25 May 2023 20:13:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/storefront-api-is-now-available-to-non-channel-apps</link>
  </item>
  <item>
    <title>Transition of application credit creation to the Partner API</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version 2023-07, we are deprecating creating application credits through the Admin API.  Both the <a href="https://shopify.dev/docs/api/admin-rest/2023-07/resources/applicationcredit#post-application-credits" target="_blank" class="body-link">REST resource</a>, and the <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/appCreditCreate" target="_blank" class="body-link">GraphQL mutation</a> will have their ability to create application credits deprecated.  Going forward, create application credits using our new <a href="https://shopify.dev/docs/api/partner/unstable/mutations/appCreditCreate" target="_blank" class="body-link">appCreditCreate</a> mutation in the Partner API.</p>
<p>This change will allow us to implement new features for application credit creation, such as allowing Partners to issue credits to Shops that have uninstalled their app.</p>
</div> ]]></description>
    <pubDate>Wed, 24 May 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/transition-of-application-credit-creation-to-the-partner-api</link>
  </item>
  <item>
    <title>Add color schemes to themes</title>
    <description><![CDATA[ <div class=""><p>Theme developers can now add <code>color schemes</code> to themes. This update adds clarity and flexibility to the theme editing experience by allowing theme-defined and merchant-defined color schemes, adding a visual preview that enables merchants to more easily and predictably update theme colors, and allowing merchants to implement theme changes at the global, section, and block level within their theme. </p>
<p>A solution which will enable theme developers to specify how to migrate merchants’ theme data during the update process when introducing architecture changes (ex: changing scope of settings, modifying schema structure in other ways etc.) will be available later this summer. </p>
<p>Learn more about <code>color schemes</code> in the [dev docs] (<a href="https://shopify.dev/docs/themes/architecture/settings/input-settings#color_scheme_group" target="_blank" class="body-link">https://shopify.dev/docs/themes/architecture/settings/input-settings#color_scheme_group</a>)</p>
</div> ]]></description>
    <pubDate>Fri, 19 May 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/add-color-schemes-to-themes</link>
  </item>
  <item>
    <title>duplicateResolutionMode added to fileCreate</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-07</strong>, you can use the new duplicateResolutionMode on the fileCreate mutation to control how duplicate filenames are handled.</p>
<p>Learn more about duplicateResolutionMode on <a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fileCreate" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 17 May 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/duplicateresolutionmode-added-to-filecreate</link>
  </item>
  <item>
    <title>Partner email verification</title>
    <description><![CDATA[ <div class=""><p>Starting May 15, we will begin enforcing partner email verification to keep the Shopify App Store safe and secure and to better serve our partner community.</p>
<p>Account owners, please use the banner in the [partner dashboard] (<a href="https://partners.shopify.com/" target="_blank" class="body-link">https://partners.shopify.com/</a>) to verify your email as soon as possible avoid restrictions to your dashboard access.</p>
</div> ]]></description>
    <pubDate>Mon, 15 May 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/partner-email-verification</link>
  </item>
  <item>
    <title>metafieldsSet support for MediaImage</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-07</strong>, you can use the metafieldsSet mutation to set metafields on images via MediaImage GIDs.</p>
<p>Learn more about metafieldsSet on <a href="https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/metafieldsSet" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 15 May 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/metafieldsset-support-for-mediaimage</link>
  </item>
  <item>
    <title>Add scanner support to POS UI Extensions</title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->

<p>As of May 15, camera and hardware scanning is supported for POS UI Extensions. Available for POS UI Extensions version 1.1.2 and POS app version 8.9.0.</p>
<p><a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/components/camera-scanner" target="_blank" class="body-link">CameraScanner</a>
This new component utilizes the device's camera for scanning. The CameraScanner provides a live feed with guidance markers to help users align the camera with barcodes. </p>
<p><a href="https://shopify.dev/docs/api/pos-extensions/ui-extensions-reference/api/scanner" target="_blank" class="body-link">Scanner API</a> This new API allows UI extensions to access scanner data and available scanning sources. The API also introduces support for hardware scanners that have external or embeddeed scanning capabilities. </p>
</div> ]]></description>
    <pubDate>Mon, 15 May 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/add-scanner-support-to-pos-ui-extensions</link>
  </item>
  <item>
    <title>Adding read and write permissions for Dependabot secrets to Shopify’s GitHub app</title>
    <description><![CDATA[ <div class=""><p>Shopify’s GitHub app now requests read and write permissions for <a href="https://docs.github.com/en/rest/overview/permissions-required-for-github-apps#dependabot-secrets" target="_blank" class="body-link">Dependabot secrets</a>. This update supports improvements to the developer experience for <a href="https://hydrogen.shopify.dev/" target="_blank" class="body-link">Hydrogen</a> headless storefronts hosted on Oxygen.</p>
<p>Currently, deployments to Oxygen are triggered by pushes or merges to a GitHub repo. However, Dependabot, GitHub’s dependency management service, doesn’t have access to the API tokens required to create a deployment. By adding these new permissions, Dependabot will be able to trigger preview deployments on Oxygen when creating pull requests that bump package versions. This change will let developers more quickly validate that automated updates can be safely merged.</p>
<p>Learn more about <a href="https://shopify.dev/themes/tools/github" target="_blank" class="body-link">Shopify’s GitHub integration</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 12 May 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/adding-read-and-write-permissions-for-dependabot-secrets-to-shopify-s-github-app</link>
  </item>
  <item>
    <title>Improve your themes with theme check in the code editor</title>
    <description><![CDATA[ <div class=""><p>As of today, you can prevent Liquid errors and improve the quality of your themes with theme check in the code editor. This new feature identifies and warns you about potential issues in your code, so you can fix them before they affect the performance of your store.</p>
<p>Learn more about the code editor on <a href="https://shopify.dev/docs/themes/tools/code-editor" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 10 May 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/improve-your-themes-with-theme-check-in-the-code-editor</link>
  </item>
  <item>
    <title>Increased number of dynamic sources available within templates</title>
    <description><![CDATA[ <div class=""><p>Based on your feedback, we've updated the number of dynamic sources you can add within an online store template. You can now add up to 100 dynamic sources per template, and 50 per static section. </p>
<p>Specifically, we now support: </p>
<ul>
<li>100 Dynamic sources in a JSON template	</li>
<li>100 Dynamic sources in general theme settings	</li>
<li>100 Dynamic sources in a section group	</li>
<li>50 Dynamic sources in a single setting	</li>
<li>50 Dynamic sources in a static section</li>
</ul>
<p>Updated values and more info can be found in <a href="https://shopify.dev/docs/themes/architecture/settings/dynamic-sources#limits" target="_blank" class="body-link">Shopify dev docs</a></p>
</div> ]]></description>
    <pubDate>Tue, 09 May 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increased-number-of-dynamic-sources-available-within-templates</link>
  </item>
  <item>
    <title>Changes to Merchant Asset URLs</title>
    <description><![CDATA[ <div class=""><p><strong>Update</strong>: In the coming weeks we'll start serving some store assets (e.g. images, JS or CSS) from a shop’s store domain rather than a Shopify CDN domain. Certain assets will continue to use the old URL format <code>cdn.shopify.com/…</code>, while the rest will be converted to a new URL format: <code>shop.example.com/cdn/…</code>. The new URL format can be seen in action on the demo store <a href="https://www.snowdevil.ca" target="_blank" class="body-link">www.snowdevil.ca</a>. The old <code>cdn.shopify.com/…</code> URL format will continue to work indefinitely.</p>
<p>The new format will be returned by liquid tags and will be present in Shopify-rendered storefront HTML, but the old format will continue to be used in all API responses. This new asset delivery approach is not used on headless shops, which will continue to use <code>cdn.shopify.com/…</code>.</p>
<p>The domain used in the new URL format is dependent on the request context: it may be the store’s permanent <code>myshopify.com</code> domain or a custom domain depending on which one a buyer visits. Code that depends on the old URL format may need to be updated to support both formats.</p>
<p>In addition, new images associated with products now use the <code>/files</code> path format rather than the previous <code>/products</code>. Previously uploaded product images will continue to use the <code>/products</code> path.</p>
<p>These changes are being made to provide a variety of benefits to merchants: </p>
<ul>
<li>Improved page load times on storefronts to provide a better buyer experience and improve conversion rate. Improvements to page load speed are potentially on the order of hundreds of milliseconds.</li>
<li>Improved security: because we don't need to allow for cross-origin assets from our CDN, we can use more restrictive content security policies (CSP) and cross-origin resource sharing (CORS) policies.</li>
<li>Less Shopify branding on merchant domains.</li>
</ul>
<p>Learn more about the <a href="https://shopify.dev/docs/themes/best-practices/performance/platform#shopify-cdn" target="_blank" class="body-link">Shopify CDN</a> and <a href="https://shopify.dev/docs/api/liquid/filters" target="_blank" class="body-link">liquid filters</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a></p>
<h2>Action Required:</h2>
<ul>
<li>Ensure that any app and theme code is free from hard-coded assumptions on the old URL format</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 09 May 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-merchant-asset-urls</link>
  </item>
  <item>
    <title>Shopify Functions input limit updates</title>
    <description><![CDATA[ <div class=""><p>As of May 8, you can access metafield values up to 10,000 bytes in Shopify Functions input queries, so that you can store more merchant configuration for your function.</p>
<p>The overall input JSON size for Shopify Functions is constrained to 64,000 bytes.</p>
<p>Learn more about execution limitations for Shopify Functions on <a href="https://shopify.dev/docs/apps/functions#limitations" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 08 May 2023 14:06:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-input-limit-updates</link>
  </item>
  <item>
    <title>Introducing POS UI extensions </title>
    <description><![CDATA[ <div class=""><p>New POS UI extensions available to app developers</p>
<p><a href="https://shopify.dev/beta/pos-ui-extensions" target="_blank" class="body-link">POS UI extensions</a> are available for developers to start building apps for Shopify POS. Improve the efficiency of a current extension or build custom functionality in the POS smart grid. POS UI extensions provide developers with access to numerous components and API's required to develop extensions that feel native to Shopify POS with faster performance. This technology will transform POS extensions for an improved merchant experience.</p>
<p><strong>Extension Points</strong> Two extension points are available that allow for the rendering of different components. The Tile which can customize the functionality of the app's smart grid tile and the Modal a full-screen modal that presents on top of the smart grid. </p>
<p><strong>Components</strong> Build extensions using the UI Extensions library that utilize interface elements and behaviors that mirror the look at feel of the POS experience. These elements are rendered natively, providing the performance and accessibility inherent to a native app.</p>
<p>To learn more about building apps for POS, please review our <a href="https://shopify.dev/beta/pos-ui-extensions" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 08 May 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-pos-ui-extensions</link>
  </item>
  <item>
    <title>Product media and files unification </title>
    <description><![CDATA[ <div class=""><p>As of this week, we've brought product media together with the broader file management system. You can access the file management system from Shopify admin by going to Content&gt;Files </p>
<p>This means that product media is now available within the files section within content in admin. As part of the new update, we’re introducing a reference feature that enables merchants to trace the usage of files in their storefronts. This feature also allows merchants to use references as search parameters, for example a search that only lists files used in product media. Additionally, we’re also launching a new file selector in the online store editor that allows merchants to save views, filter within the selector, and toggle between different types of media as required, all through a new modal design. </p>
<p>Learn more about product media at <a href="https://shopify.dev/docs/themes/product-merchandising/media" target="_blank" class="body-link">Shopify.dev</a>. You can also learn more about the Files API at <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/queries/files" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 02 May 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/product-media-and-files-unification</link>
  </item>
  <item>
    <title>Changes to support requests for app charge refunds</title>
    <description><![CDATA[ <div class=""><p>As of May 3, 2023, merchants will be required to contact partners directly if they want to discuss or request a refund for an app. When a merchant contacts Shopify to request a refund for an app charge, Shopify Support will no longer reach out to partners on behalf of the merchant to facilitate their request.</p>
<p>This change will streamline the refund process, as refunds are at the partners’ discretion and partners have the ability to issue most refunds themselves. The exception is still reversals to pending charges. In this case, Shopify highly encourages partners to issue <a href="https://shopify.dev/docs/api/admin-rest/2023-04/resources/applicationcredit" target="_blank" class="body-link">application credits</a>, which Shopify Support can then apply to the invoice.</p>
<p>What’s not changing?</p>
<ul>
<li>Other types of facilitated third party requests</li>
<li>Processing of reversals for pending charges once approved by the partner</li>
<li>Follow-ups on unresolved inquires from merchants</li>
<li>Assistance with bulk refunds, refunds over $1,000, and refunds older than 12 months</li>
</ul>
<p>Please contact partner support with any questions about these changes.</p>
</div> ]]></description>
    <pubDate>Mon, 01 May 2023 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/changes-to-support-requests-for-app-charge-refunds</link>
  </item>
  <item>
    <title>Update bytes in-place using fileUpdate</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-07</strong>, you can use the <code>fileUpdateInput</code> to provide an originalSource which will be used to update the bytes of a file. Passing originalSource when updating is supported 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> ]]></description>
    <pubDate>Fri, 28 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/update-bytes-in-place-using-fileupdate</link>
  </item>
  <item>
    <title>New updates to checkout extensibility </title>
    <description><![CDATA[ <div class=""><h3>New Checkout UI Components</h3>
<p><a href="https://shopify.dev/docs/api/checkout-ui-extensions/components/forms/datepicker" target="_blank" class="body-link">DatePicker</a> will help you build customizations to select specific delivery dates in checkout. </p>
<p><a href="https://shopify.dev/docs/api/checkout-ui-extensions/components/interactive/disclosure" target="_blank" class="body-link">Disclosure</a> will help with UX patterns that progressively disclose information, like the long list of line items in a bundle. </p>
<h3>Checkout Branding Update</h3>
<p><a href="https://shopify.dev/docs/apps/checkout/advanced-checkout-branding#custom-fonts" target="_blank" class="body-link">Checkout branding</a> now supports custom fonts. Checkout, accounts, and UI extensions inherit these fonts making experiences consistent across surfaces.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Apr 2023 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-updates-to-checkout-extensibility</link>
  </item>
  <item>
    <title>Increasing search relevance with behavioral data in the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>As of April 26, Shopify App Store’s search algorithm folds in even more data on how merchants interact with results after they search.</p>
<p>In other words, apps that merchants find most relevant, given what they’re searching for, will rank higher overall. While term matching will still inform results, this update will reduce the impact of keyword stuffing.</p>
<p>Learn more about search on our <a href="https://www.shopify.com/partners/blog/search-improvements?shpxid=a58560d0-4B46-415A-B1AE-3CA6B533162D" target="_blank" class="body-link">blog</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Apr 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increasing-search-relevance-with-behavioral-data-in-the-shopify-app-store</link>
  </item>
  <item>
    <title>Sale attribution edits now can be subscribed via Orders/updated webhook</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-07</strong>, you can now subscribe to the <strong>orders/updated</strong> webhook to be notified of any sale attribution edits to an order. When a staff attribution edit is made on POS, the <strong>orders/updated</strong> webhook will fire. The payload will include a new <strong>attributed_staffs</strong> field under <strong>line_items</strong>. This new field will reflect the new attributions on the order after the edit.</p>
<blockquote>
<p> &quot;line_items&quot;: [
    {
      &quot;id&quot;:111,
      &quot;attributed_staffs&quot;: [
   {
           &quot;id&quot;: &quot;gid://shopify/StaffMember/123&quot;,
           &quot;quantity&quot;: 1
         }
      ]
    }
  ]  </p>
</blockquote>
<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>Note that the payload in the <strong>orders/create</strong> webhook will also be updated to include attributed_staffs.</p>
<p>Learn more about webhook on <a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/webhook#event-topics" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 20 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/sale-attribution-edits-now-can-be-subscribed-via-orders-updated-webhook</link>
  </item>
  <item>
    <title>Update on the speed test app listing highlight</title>
    <description><![CDATA[ <div class=""><p>As of April 18, we're temporarily suspending Speed tested as an app listing highlight.  We will still measure an app’s impact on store speed once it has applied for Built for Shopify status.</p>
<p>We are making this change while we invest in better tooling and will keep app developers posted on plans to resume incentives in this area, as impact on store speed remains incredibly important to merchants. </p>
<p>Learn more about storefront performance on <a href="https://shopify.dev/docs/apps/best-practices/performance/storefront" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 18 Apr 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/update-on-the-speed-test-app-listing-highlight</link>
  </item>
  <item>
    <title>Deprecating mutations inventoryAdjustQuantity and inventoryBulkAdjustQuantityAtLocation</title>
    <description><![CDATA[ <div class=""><p>In the GraphQL Admin API, we're deprecating the <code>inventoryAdjustQuantity</code> and <code>inventoryBulkAdjustQuantityAtLocation</code> mutations.
Instead, you can use the new <code>inventoryAdjustQuantities</code> or <code>inventoryMoveQuantities</code> mutations instead.</p>
<p>The <code>inventoryAdjustQuantities</code> mutation supports more inventory quantity names as well as setting a reason. The mutations we're deprecating only supported setting available quantities and didn't allow you to set a reason for the adjustment.</p>
<p>Learn more about <code>inventoryAdjustQuantities</code> on <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryAdjustQuantities" target="_blank" class="body-link">Shopify.dev</a> or on <a href="https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#adjust-inventory-quantities" target="_blank" class="body-link">inventory states on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Apr 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/deprecating-mutations-inventoryadjustquantity-and-inventorybulkadjustquantityatlocation</link>
  </item>
  <item>
    <title>Deprecating available, incoming and deactivationAlertHtml fields on InventoryLevel</title>
    <description><![CDATA[ <div class=""><p>In the GraphQL Admin API, we're deprecating some fields on the <code>InventoryLevel</code>. </p>
<p>The following fields are deprecated:</p>
<ul>
<li>instead of <code>available</code>, use <code>quantities(names:[&quot;available&quot;]){ name quantity }</code> instead.</li>
<li>instead of <code>incoming</code>, use <code>quantities(names:[&quot;incoming&quot;]){ name quantity }</code> instead.</li>
<li>instead of <code>deactivationAlertHtml</code>, use <code>deactivationAlert</code> instead.</li>
</ul>
<p>The <code>quantities</code> field supports all the new inventory quantity names. You can still get <code>available</code> and <code>incoming</code> from <code>quantities</code> by specifying those as the names. </p>
<p>Learn more about <code>inventoryLevel</code> on <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/objects/InventoryLevel" target="_blank" class="body-link">Shopify.dev</a> as well as inventory states on <a href="https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Apr 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/deprecating-available-incoming-and-deactivationalerthtml-fields-on-inventorylevel</link>
  </item>
  <item>
    <title>Theme app extension app block deep linking</title>
    <description><![CDATA[ <div class=""><p>As of April 14, we have enabled deep linking to theme app blocks so that merchants can easily preview app functionality in their theme.</p>
<p>[Learn more] (<a href="https://shopify.dev/docs/apps/online-store/theme-app-extensions/extensions-framework#deep-linking" target="_blank" class="body-link">https://shopify.dev/docs/apps/online-store/theme-app-extensions/extensions-framework#deep-linking</a>) about deep links to app blocks.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Apr 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/theme-app-extension-app-block-deep-linking</link>
  </item>
  <item>
    <title>New commerce primitives for development stores test data</title>
    <description><![CDATA[ <div class=""><p>We've added new commerce primitives such as gift cards, selling plans, and metafields to development stores populated with test data. </p>
<p>To speed up the development and testing process, you can create a development store that's populated with test data generated by Shopify.</p>
<p>Review all of  the objects, configurations, and relationships that are included in the development store test data set on <a href="https://shopify.dev/docs/apps/tools/development-stores/generated-data" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Thu, 13 Apr 2023 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-commerce-primitives-for-development-stores-test-data</link>
  </item>
  <item>
    <title>Write Shopify Functions in JavaScript</title>
    <description><![CDATA[ <div class=""><p>Shopify Functions written in JavaScript can now be deployed in production. Going forward Rust and JavaScript will be our first-class languages for Shopify Functions. However, you can still write Shopify Functions in any WebAssembly-supported language that meets our requirements.</p>
<p>Learn more about JavaScript Shopify Functions <a href="https://shopify.dev/docs/apps/functions/language-support/javascript" target="_blank" class="body-link">here</a> </p>
</div> ]]></description>
    <pubDate>Mon, 10 Apr 2023 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/write-shopify-functions-in-javascript</link>
  </item>
  <item>
    <title>New billingAddress field on the Storefront API Order object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2023-04, the <code>Order</code> object has a new field: <code>billingAddress</code>. This field returns a <code>mailingAddress</code> object for the address associated with the payment method. </p>
<p>Learn more about the <code>Order</code> object on <a href="https://shopify.dev/docs/api/storefront/unstable/objects/Order" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/new-billingaddress-field-on-the-storefront-api-order-object</link>
  </item>
  <item>
    <title>Server Pixels Limited Release</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-04</strong>, select partners can use Server Pixels to consume customer events on the server-side. These new mutations are available to those partners:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/serverPixelCreate" target="_blank" class="body-link">serverPixelCreate</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/eventBridgeServerPixelUpdate" target="_blank" class="body-link">eventBridgeServerPixelUpdate</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/pubSubServerPixelUpdate" target="_blank" class="body-link">pubSubServerPixelUpdate</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/serverPixelDelete" target="_blank" class="body-link">serverPixelDelete</a></li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/server-pixels-limited-release</link>
  </item>
  <item>
    <title>Set Metafield values for Locations</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API Version <code>2023-04</code> you can use the mutations <code>locationAdd</code> and <code>locationEdit</code> to set Metafield values for locations.</p>
<p>As of Storefront API Version <code>2023-04</code>, you can query metafields belonging to a location using the Location query object.</p>
<p>You can use Metafields to store aditional information for Locations.</p>
<p>Learn more about { Metafields } on <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/Metafield" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/set-metafield-values-for-locations</link>
  </item>
  <item>
    <title>Removal of deprecated `status` field in Payments Apps API 2023-04 release</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-04</code> GraphQL Payments Apps API version, we are removing the <code>status</code> field as it was <a href="https://shopify.dev/changelog/new-pending-mutation-in-payments-apps-api-2022-04-release" target="_blank" class="body-link">deprecated since <code>2022-04</code> version</a> in favour of the <code>state</code> field of the following objects returned by our GraphQL mutations:</p>
<ul>
<li><a href="https://shopify.dev/api/payments-apps/2023-04/objects/PaymentSession" target="_blank" class="body-link"><code>PaymentSession</code></a></li>
<li><a href="https://shopify.dev/api/payments-apps/2023-04/objects/RefundSession" target="_blank" class="body-link"><code>RefundSession</code></a></li>
<li><a href="https://shopify.dev/api/payments-apps/2023-04/objects/CaptureSession" target="_blank" class="body-link"><code>CaptureSession</code></a></li>
<li><a href="https://shopify.dev/api/payments-apps/2023-04/objects/VoidSession" target="_blank" class="body-link"><code>VoidSession</code></a></li>
</ul>
<p>To get up to date, make sure you no longer query the <code>status</code> field on these objects and use <code>state</code> instead.</p>
<p>Learn more about payments apps on <a href="https://shopify.dev/apps/payments" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/removal-of-deprecated-status-field-in-payments-apps-api-2023-04-release</link>
  </item>
  <item>
    <title>Release of the subscriptionContractAtomicCreate and subscriptionContractProductUpdate mutations</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-04</strong> release of the GraphQL Admin API, you can create a subscription contract in a single operation with the <code>subscriptionContractAtomicCreate</code> mutation.</p>
<p>You can also replace a retired product by a new one, or update the price of a product in a subscription contract in one GraphQL call to the <code>subscriptonContractProductUpdate</code> mutation.</p>
<p>More information on Bulk Operations can be found <a href="https://shopify.dev/apps/subscriptions/migrate/contracts#import-and-bill-contracts-in-bulk" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/release-of-the-subscriptioncontractatomiccreate-and-subscriptioncontractproductupdate-mutations</link>
  </item>
  <item>
    <title>Generate targeted product recommendations with the new `ProductRecommendationIntent` type</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-04</strong> API version of the Storefront API, <a href="https://shopify.dev/api/storefront/unstable/queries/productRecommendations" target="_blank" class="body-link">the ProductRecommendations query</a> will accept an optional <code>intent</code> argument. Additionally, a new <code>ProductRecommendationIntent</code> will be introduced as a GraphQL Enum Type, defining the supported <a href="https://shopify.dev/themes/product-merchandising/recommendations#recommendation-intents" target="_blank" class="body-link">product recommendation intents</a>. By default, the API will return <code>RELATED</code> recommendations for backward compatibility.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/generate-targeted-product-recommendations-with-the-new-productrecommendationintent-type</link>
  </item>
  <item>
    <title>New `selected_delivery_option` error codes in cart</title>
    <description><![CDATA[ <div class=""><p>We've added the error codes <code>INVALID_DELIVERY_GROUP</code> and <code>INVALID_DELIVERY_OPTION</code> for <code>cartSelectedDeliveryOptionsUpdate</code> mutation , allowing you to get descriptive error codes when GraphQL returns invalid delivery group id or invalid delivery options input.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-selected_delivery_option-error-codes-in-cart</link>
  </item>
  <item>
    <title>Introduce onsite credit card support for payments apps</title>
    <description><![CDATA[ <div class=""><p>As of version <code>2023-04</code>, payments apps will have support for onsite credit card payments through new types introduced to the GraphQL Payments Apps API.
Changes to support on-site credit card processing are as follows:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/payments-apps/2023-04/enums/PaymentSessionStateRejectedReason" target="_blank" class="body-link">New rejection codes</a> are now available in the <a href="https://shopify.dev/docs/api/payments-apps/2023-04/mutations/paymentSessionReject" target="_blank" class="body-link"><code>paymentSessionReject</code> GraphQL mutation</a> for credit card payments apps</li>
<li><a href="https://shopify.dev/docs/api/payments-apps/2023-04/enums/PaymentSessionPendingUserErrorCode#value-unsupportedpaymentmethod" target="_blank" class="body-link">A new error code</a> is introduced in the <a href="https://shopify.dev/docs/api/payments-apps/2023-04/mutations/paymentSessionPending" target="_blank" class="body-link"><code>paymentSessionPending</code> GraphQL mutation</a></li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/introduce-onsite-credit-card-support-for-payments-apps</link>
  </item>
  <item>
    <title>Introducing the new Customer Merge API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-04</strong>, 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:</p>
<ul>
<li><a href="https://shopify.dev/api/admin-graphql/2023-04/queries/customerMergePreview" target="_blank" class="body-link">Preview a customer merge</a></li>
<li><a href="https://shopify.dev/api/admin-graphql/2023-04/mutations/customerMerge" target="_blank" class="body-link">Merge two customers</a> </li>
<li><a href="https://shopify.dev/api/admin-graphql/2023-04/queries/customerMergeJobStatus" target="_blank" class="body-link">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="https://shopify.dev/api/admin-graphql/2023-04/objects/Customer#field-customer-mergeable" target="_blank" class="body-link">Customer.mergeable</a> field. This field is also available on the CustomerSegmentMember API <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/objects/CustomerSegmentMember#field-customersegmentmember-mergeable" target="_blank" class="body-link">CustomerSegmentMember.
mergeable</a>. </p>
<p>You can learn more about merging customer profiles on <a href="https://help.shopify.com/en/manual/customers/manage-customers#merging-customer-profiles" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/introducing-the-new-customer-merge-api</link>
  </item>
  <item>
    <title>Update Access Scope for Publishing and Unpublishing Mutations to Current Channel</title>
    <description><![CDATA[ <div class=""><p>As of version <strong>2023-04</strong>, we're deprecating the requirement of <code>writeproductslistings</code> access scope for the mutations <code>publishableUnpublishToCurrentChannel</code> and <code>publishablePublishToCurrentChannel</code>. Use the access scope <code>writepublications</code> instead.</p>
<p>You can provide this new access scope to your third party app or any stuff member through the admin as it is regularly being done for any other access scope. This change will provide a more restricted access to call these mutations. </p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/update-access-scope-for-publishing-and-unpublishing-mutations-to-current-channel</link>
  </item>
  <item>
    <title>Filter orders by return status</title>
    <description><![CDATA[ <div class=""><p>You can now filter orders by their return status.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/queries/orders#:~:text=reference_location_id-,return_status,-risk_level" target="_blank" class="body-link"><code>return_status</code> filter</a> is available on the orders connection. This status corresponds to the return status merchants see in the orders page.</p>
<p>Learn more about the order's return status on <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/enums/OrderReturnStatus" target="_blank" class="body-link">Shopify.dev</a>.</p>
<p>Learn more about return statuses on <a href="https://help.shopify.com/en/manual/orders/order-status#return-status" target="_blank" class="body-link">the help center</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/filter-orders-by-return-status</link>
  </item>
  <item>
    <title>Changing`CartLine` from an `Object` to an `Interface`</title>
    <description><![CDATA[ <div class=""><p>As part of the GraphQL Storefront API <strong>2023-04</strong> API release, we are creating <code>BaseCartLine</code> as an interface to <code>CartLine</code> and we are updating <code>CartLineConnection</code> to <code>BaseCartLineConnection</code>. </p>
<p>Learn more about the <code>Cart</code> object on <a href="https://shopify.dev/api/storefront/unstable/objects/Cart#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/changing-cartline-from-an-object-to-an-interface</link>
  </item>
  <item>
    <title>Deprecating `PublishedTranslation` GraphQL type</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-04</code>, we are deprecating the <code>PublishedTranslation</code> graphQL type in the admin API. Use the <code>Translation</code> graphQL type instead.</p>
<p>The <code>Translation</code> graphQL type contains more fields; <code>outdated</code>, <code>updatedAt</code> and <code>market</code>.</p>
<p>To get up to date, make sure you no longer query the <code>marketId</code> field on these objects and query using the <code>market</code> field instead.</p>
<p>Learn more about <code>Translation</code>  on <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/Translation" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/deprecating-publishedtranslation-graphql-type</link>
  </item>
  <item>
    <title>Added `source_location` field to `FulfillmentOrdersMove` webhook payload</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-04, <code>FulfillmentOrdersMove</code> webhook payload is extended <code>source_location</code> field.</p>
<p>The <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorder#field-fulfillmentorder-assignedlocation" target="_blank" class="body-link">assignedLocation</a>  of the <code>original_fulfillment_order</code> may be changed by the move operation. Therefore, if you need to determine the originally assigned location, you should refer to the <code>source_location</code> field.</p>
<p>Learn more about fulfillment order move in the <a href="https://shopify.dev/docs/api/admin-rest/2023-04/resources/webhook#event-topics-fulfillment-orders-moved" target="_blank" class="body-link">FulfillmentOrdersMove webhook</a>, <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/fulfillmentOrderMove" target="_blank" class="body-link">FulfillmentOrdersMove GraphQL mutation</a> and <a href="https://shopify.dev/docs/api/admin-rest/2023-04/resources/fulfillmentorder#post-fulfillment-orders-fulfillment-order-id-move" target="_blank" class="body-link">Moves a fulfillment order to a new location REST endpoint</a> documentation pages.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/added-source_location-field-to-fulfillmentordersmove-webhook-payload</link>
  </item>
  <item>
    <title>productVariantsBulkUpdate mutation returns data along with errors</title>
    <description><![CDATA[ <div class=""><p>In the Admin GraphQL API version <strong>2023-04</strong>, the <code>productVariantsBulkUpdate</code> mutation will return <code>product</code> and <code>productVariants</code> data even when errors are present. Previously, the mutation would always return <code>null</code> for the <code>product</code> and <code>productVariants</code> data.</p>
<p>Learn more about the mutation <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/productvariantsbulkupdate" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/productvariantsbulkupdate-mutation-returns-data-along-with-errors</link>
  </item>
  <item>
    <title>Releasing new Catalogs APIs to manage pricing and product publishing for different customers</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-04</strong>, you can use the Catalogs API to create a set of rules that determine the available products and their prices in different customer contexts. The Catalogs API lets you link Shopify Markets and B2B primitives to Publications and PriceLists to customize product offerings for different audiences. The same APIs also allow you to manage product publishing for sales channels.</p>
<p>To learn more about Catalogs API, read <a href="https://shopify.dev/apps/b2b/catalogs" target="_blank" class="body-link">B2B Catalogs</a> and <a href="https://shopify.dev/apps/internationalization/catalogs" target="_blank" class="body-link">Catalogs for Markets</a>. </p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/releasing-new-catalogs-apis-to-manage-pricing-and-product-publishing-for-different-customers</link>
  </item>
  <item>
    <title>Adds `comparedTo` field to ShopifyQL query response</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-04</strong>, you can now use <code>comparedTo</code>  on comparison columns from <code>ShopifyqlResponse</code> to indicate the column to compare to.</p>
<p>Learn more about <code>COMPARE TO</code>  ShopifyQL queries on <a href="https://shopify.dev/docs/api/shopifyql/shopifyql-reference#compare-to" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/adds-comparedto-field-to-shopifyql-query-response</link>
  </item>
  <item>
    <title>Update ShopifyQL parse error codes</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-04</strong>, parse error codes enum has been updated to remove stale codes as well as add new ones.</p>
<p><strong>Added</strong></p>
<ul>
<li><code>ParseErrorCode.INVALID_DATE_RANGE</code></li>
<li><code>ParseErrorCode.EXCESS_BACKFILL_DIMENSIONS</code></li>
<li><code>ParseErrorCode.BACKFILL_DATE_RANGE_NOT_FOUND</code></li>
<li><code>ParseErrorCode.COMPARE_TO_MISSING_PERIOD</code></li>
<li><code>ParseErrorCode.EXCESS_DIMENSIONS</code></li>
<li><code>ParseErrorCode.SYNTAX_FAILED_PREDICATE</code></li>
</ul>
<p><strong>Removed</strong></p>
<ul>
<li><code>ParseErrorCode.VISUALIZE_TYPE_NOT_FOUND</code></li>
<li><code>ParseErrorCode.FUNCTION_MODIFIER_INVALID</code></li>
<li><code>ParseErrorCode.VISUALIZE_BY_OR_OVER_NOT_FOUND</code></li>
<li><code>ParseErrorCode.VISUALIZE_CONTAINS_BY_AND_OVER</code></li>
<li><code>ParseErrorCode.BINARY_EXPRESSION_INCOMPATIBLE_TYPES</code></li>
<li><code>ParseErrorCode.VISUALIZE_EXCESS_PROJECTIONS_ALPHA</code></li>
<li><code>ParseErrorCode.EXCESS_GROUP_BY_ALL</code></li>
<li><code>ParseErrorCode.GROUP_BY_ALL_DATE_RANGE_NOT_FOUND</code></li>
<li><code>ParseErrorCode.COMPARE_TO_WITHOUT_DURING</code></li>
<li><code>ParseErrorCode.GROUP_BY_EXCESS_PROJECTIONS</code></li>
</ul>
<p>See the full list of parse error codes on <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/enums/ParseErrorCode" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/update-shopifyql-parse-error-codes</link>
  </item>
  <item>
    <title>Updates to FulfillmentOrderLineItemsPreparedForPickupUserErrorCode resource</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-04</strong> API version of the Admin API, <a href="https://shopify.dev/docs/api/admin-graphql/2023-01/enums/FulfillmentOrderLineItemsPreparedForPickupUserErrorCode" target="_blank" class="body-link">the FulfillmentOrderLineItemsPreparedForPickupUserErrorCode GraphQL object</a> will have the following breaking changes:</p>
<ul>
<li>The <code>FULFILLMENT_ORDER_CHANGED</code> error code will be removed</li>
<li>The <code>UNABLE_TO_PREPARE_QUANTITY</code> error code will be added</li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/updates-to-fulfillmentorderlineitemspreparedforpickupusererrorcode-resource</link>
  </item>
  <item>
    <title>Adding additional filtering to `/assigned_fulfillment_orders` REST endpoint</title>
    <description><![CDATA[ <div class=""><p>As of API version <code>2023-04</code>, you can retrieve a subset of fulfillment orders which are assigned to locations owned by the app performing the request but have not been requested for fulfillment so far.</p>
<p>The <code>assignment_status</code> query parameter in the <a href="(https://shopify.dev/docs/api/admin-rest/latest/resources/assignedfulfillmentorder#get-assigned-fulfillment-orders" target="_blank" class="body-link">/assigned_fulfillment_orders.json</a> endpoint can now accept a value of <code>fulfillment_unsubmitted</code> for filtering in addition to the existing <code>fulfillment_requested</code>, <code>fulfillment_accepted</code>, and <code>cancellation_requested</code> filter values.</p>
<p>Learn more about retrieving assigned fulfillment orders as a fulfillment service on <a href="https://shopify.dev/docs/api/admin-rest/latest/resources/assignedfulfillmentorder" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/adding-additional-filtering-to-assigned_fulfillment_orders-rest-endpoint</link>
  </item>
  <item>
    <title>Update validations of a metafield definition</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API Version <code>2023-04</code> you can use the field <code> MetafieldDefintionInput.validations</code> to change the validations of a metafield definition.</p>
<p>Also, as of GraphQL Admin API Version <code>2023-04</code>, you can query the field 
<code>MetafieldDefinitionUpdatePayload.validationJob</code> to get the details of the job running to validate existing metafields for the metafield definition.</p>
<p>Learn more about { Metafields } on <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/Metafield" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/update-validations-of-a-metafield-definition</link>
  </item>
  <item>
    <title>Web Pixels can be queried without specifying an ID</title>
    <description><![CDATA[ <div class=""><p>In the Admin API version <strong>2023-04</strong>, you can now query your web pixels installed on an online store without having to provide a Web Pixel ID.</p>
<p>API: <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/queries/webPixel" target="_blank" class="body-link">https://shopify.dev/docs/api/admin-graphql/2023-04/queries/webPixel</a></p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/marketing/pixels" target="_blank" class="body-link">web pixels</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/web-pixels-can-be-queried-without-specifying-an-id</link>
  </item>
  <item>
    <title>Accept customer address id as input for delivery address preferences in SFAPI Cart</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-04</strong>, you can pass <a href="https://shopify.dev/docs/api/storefront/2023-01/objects/Customer#connection-customer-addresses" target="_blank" class="body-link">Customer address id</a> as an input for <a href="https://shopify.dev/docs/api/storefront/2023-01/objects/CartBuyerIdentity#field-cartbuyeridentity-deliveryaddresspreferences" target="_blank" class="body-link">CartBuyerIdentity.deliveryAddressPreferences</a> when creating or updating carts for authenticated customers. </p>
<p>You can learn more about the Cart API references in <a href="https://shopify.dev/docs/api/storefront/2023-01/objects/Cart" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/accept-customer-address-id-as-input-for-delivery-address-preferences-in-sfapi-cart</link>
  </item>
  <item>
    <title>Add Metafields to Cart API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API Version <code>2023-04</code> you can use Metafields with Carts!  Metafields can be added during Cart creation, they can be queried, updated, and deleted.</p>
<p>Learn more:</p>
<ul>
<li><a href="https://shopify.dev/docs/api/storefront/2023-04/mutations/cartCreate#field-cartinput-metafields" target="_blank" class="body-link">Create Cart Metafields</a></li>
<li><a href="https://shopify.dev/docs/api/storefront/2023-04/objects/Cart#field-cart-metafields" target="_blank" class="body-link">Query Cart Metafields</a></li>
<li><a href="https://shopify.dev/docs/api/storefront/2023-04/mutations/cartMetafieldsSet" target="_blank" class="body-link">Update Cart Metafields</a></li>
<li><a href="https://shopify.dev/docs/api/storefront/2023-04/mutations/cartMetafieldDelete" target="_blank" class="body-link">Delete Cart Metafields</a></li>
</ul>
</div> ]]></description>
    <pubDate>Sat, 01 Apr 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/add-metafields-to-cart-api</link>
  </item>
  <item>
    <title>GraphQL Admin API now supports creating app charges using the merchant's billing currency</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-04</strong> release of the GraphQL Admin API, the Billing API will allow creating app charges using currencies that match the <a href="https://help.shopify.com/en/manual/your-account/manage-billing/your-invoice/local-currency#countries-and-regions-where-local-currency-billing-is-supported" target="_blank" class="body-link">merchant's local billing currency</a>. </p>
<p>Previously, app charges could only be created using USD and were converted to the merchant's local currency using the exchange rate at the time the invoice is issued. By creating app charges in the merchant's billing currency, app developers will allow merchants to better budget their app spend without being exposed to currency exchange rate fluctuations.</p>
<p>You can use the <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/queries/shopBillingPreferences" target="_blank" class="body-link">shopBillingPreferences</a> query to retrieve the merchant's local billing currency, then pass in the currency value as input to the existing GraphQL Billing APIs.</p>
</div> ]]></description>
    <pubDate>Fri, 31 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-now-supports-creating-app-charges-using-the-merchant-s-billing-currency</link>
  </item>
  <item>
    <title>ExchangeV2s field is available behind beta flag on order graphql</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-07</strong> version, you can use the Order APIs <code>exchangeV2</code> field to get a better exchange (an <code>exchangeV2</code> object value).</p>
<p>This will help ERP partners to properly integrate optimal exchange values.</p>
</div> ]]></description>
    <pubDate>Thu, 30 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-07</category>
    <link>https://shopify.dev/changelog/exchangev2s-field-is-available-behind-beta-flag-on-order-graphql</link>
  </item>
  <item>
    <title>Update to Google Analytics 4 before July 2023</title>
    <description><![CDATA[ <div class=""><p>Google is sunsetting Universal Analytics in July 2023, and replacing it with <a href="https://support.google.com/analytics/answer/10089681" target="_blank" class="body-link">Google Analytics 4 (GA4)</a> which is Google's next-generation measurement solution. Universal Analytics will continue to collect data until its sunset in July 2023, and data will remain accessible for at least 6 months afterwards.</p>
<p>Visit <a href="https://shopify.dev/docs/apps/store/success/marketing/marketing-internally/tracking-your-listing-traffic#set-up-google-analytics-for-your-app-listing" target="_blank" class="body-link">Shopify.dev</a> for next steps to migrate your app listing tracking from Universal Analytics to the new Google Analytics 4 or to set up tracking for the first time.</p>
</div> ]]></description>
    <pubDate>Tue, 28 Mar 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/update-to-google-analytics-4-before-july-2023</link>
  </item>
  <item>
    <title>Dynamic sources for blogs and articles now live</title>
    <description><![CDATA[ <div class=""><p>You can now use dynamic sources on blogs and articles. This means that merchants can now connect theme files to their metafields and metaobjects when working with the blog and article resources. Previously, this was only possible when working with product, collection, and page resources. </p>
<p>Learn more about datasources on <a href="https://shopify.dev/docs/themes/architecture/settings#dynamic-sources" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Fri, 24 Mar 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/dynamic-sources-for-blogs-and-articles-now-live</link>
  </item>
  <item>
    <title>Additional fees fields for Orders</title>
    <description><![CDATA[ <div class=""><p>The Order object now has fields representing additional fees as of API version 2023-04. Additional fees are extra costs associated with an international package that aren't duties or taxes.</p>
<p>The new fields on the GraphQL Order object are:</p>
<ul>
<li>additionalFees</li>
<li>currentTotalAdditionalFeesSet</li>
<li>originalTotalAdditionalFeesSet</li>
</ul>
<p>The new fields on the REST Order resource are:</p>
<ul>
<li>current_total_additional_fees_set</li>
<li>original_total_additional_fees_set</li>
</ul>
<p>Learn more about these new fields in the <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/objects/Order#fields" target="_blank" class="body-link">GraphQL reference docs</a> or <a href="https://shopify.dev/docs/api/admin-rest/2023-04/resources/order#resource-object" target="_blank" class="body-link">REST reference docs</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 20 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/additional-fees-fields-for-orders</link>
  </item>
  <item>
    <title>Policies for leaving a review on the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>We’re continuously improving our systems to effectively and efficiently identify and remove fake reviews to ensure a safe, fair, and useful ecosystem for both merchants and developers.</p>
<p>As part of these efforts, you may receive an email notifying you that a review for your app has been removed because it doesn’t comply with our policies.</p>
<p>Learn more about our policies for leaving a review in the Shopify App Store in the <a href="https://help.shopify.com/en/partners/faq/reviews" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 20 Mar 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/policies-for-leaving-a-review-on-the-shopify-app-store</link>
  </item>
  <item>
    <title>Support For API Version 2022-04 Extended To June 30, 2023</title>
    <description><![CDATA[ <div class=""><p>Shopify is extending support for <a href="https://shopify.dev/docs/api/release-notes/2022-04" target="_blank" class="body-link">API version 2022-04</a> to June 30, 2023 (previously March 31, 2023). All public, custom, and private apps using <a href="https://shopify.dev/docs/api/release-notes/2022-10#breaking-changes" target="_blank" class="body-link">API resources that are no longer supported in API version 2022-10</a> <strong>will stop working as intended</strong> after this date.</p>
<p><strong>Action Required</strong> Existing apps must migrate to API version 2022-10 or later by June 30, 2023 to avoid any interruptions.</p>
<p>Below are a few important breaking changes, please make sure to review the <a href="https://shopify.dev/docs/api/release-notes/2022-07#breaking-changes" target="_blank" class="body-link">full list</a>:</p>
<ul>
<li>The following customer object properties on the REST Admin API’s order resources have been deprecated:  last_order_id, last_order_name, orders_count , total_spent (<a href="https://shopify.dev/docs/api/release-notes/2022-10#deprecated-properties-on-the-order-resource-in-the-rest-admin-api" target="_blank" class="body-link">see details here</a>) </li>
<li>Some <strong>Fulfillment API endpoints and mutations</strong> relating to managing fulfillments via an order have been deprecated (<a href="https://shopify.dev/changelog/some-endpoint-deprecations-on-the-fulfillment-api-and-the-introduction-of-fulfillment-order-api" target="_blank" class="body-link">see details here</a>)</li>
</ul>
<p>To see a full list of apps that may be impacted, please log  into your Partner Dashboard and click on <strong>Apps &gt; Insights &gt; API Health</strong>. </p>
<p>Please note that this extended timeline for supporting API version 2022-04  does not impact deprecation timelines for any subsequent API releases. If you have any questions, reach out to your Shopify account manager or post here, in the Shopify Community. </p>
</div> ]]></description>
    <pubDate>Sun, 19 Mar 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/support-for-api-version-2022-04-extended-to-june-30-2023-1</link>
  </item>
  <item>
    <title>[Action Required] Support for API version 2022-04 extended to June 30, 2023</title>
    <description><![CDATA[ <div class=""><p>Shopify is extending support for <a href="https://shopify.dev/docs/api/release-notes/2022-04" target="_blank" class="body-link">API version 2022-04 to June 30, 2023</a> (previously March 31, 2023). All public and custom apps using API resources which support end with the API verions <a href="https://shopify.dev/docs/api/release-notes/2022-04#breaking-changes" target="_blank" class="body-link">2022-04</a> and <a href="https://shopify.dev/docs/api/release-notes/2022-07#breaking-changes" target="_blank" class="body-link">2022-07</a> <strong>will stop working as intended</strong> after this date.</p>
<p><strong>Action Required</strong>: Existing apps must migrate to API version 2022-10 or later by June 30, 2023 to avoid any interruptions.</p>
<p>Below are a few important breaking changes, please make sure to review the <a href="https://shopify.dev/docs/api/release-notes/2022-07#breaking-changes" target="_blank" class="body-link">full list</a>:</p>
<ul>
<li>The following <code>customer</code> object properties on the REST Admin API’s <code>order</code> resources have been deprecated:  <code>last_order_id</code>, <code>last_order_name</code>, <code>orders_count</code> , <code>total_spent </code><a href="https://shopify.dev/docs/api/release-notes/2022-07#deprecated-properties-on-the-order-resource-in-the-rest-admin-api" target="_blank" class="body-link">(see details here)</a></li>
<li>Some Fulfillment API endpoints and mutations relating to managing fulfillments via an order have been deprecated <a href="https://shopify.dev/changelog/some-endpoint-deprecations-on-the-fulfillment-api-and-the-introduction-of-fulfillment-order-api" target="_blank" class="body-link">(see details here)</a></li>
</ul>
<p>To see a full list of apps that may be impacted, please log  into your Partner Dashboard and click on Apps &gt; Insights &gt; API Health. </p>
<p>Please note that this extended timeline for supporting API version 2022-04  does not impact deprecation timelines for any subsequent API releases. If you have any questions, reach out to your Shopify account manager or post in our <a href="https://community.shopify.com/c/shopify-apis-and-sdks/bd-p/shopify-apis-and-technology" target="_blank" class="body-link">community forums</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Mar 2023 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/action-required-support-for-api-version-2022-04-extended-to-june-30-2023</link>
  </item>
  <item>
    <title>Access image Focal Point from the Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-04</code>, we're introducing the ability to access the <code>Focal Point</code> setting value for <a href="https://shopify.dev/docs/api/storefront/2023-04/objects/MediaPresentation" target="_blank" class="body-link">Media Presentation</a> in the <a href="https://shopify.dev/docs/api/storefront/2023-04/objects/MediaPresentation#field-mediapresentation-asjson" target="_blank" class="body-link">asJson</a> field using the Storefront API.</p>
<p><code>Focal Points</code> can be set from the shop admin when editing your image files.</p>
<p>Learn more about <code>Focal Points</code> on <a href="https://help.shopify.com/en/manual/online-store/images/theme-images#set-a-focal-point-on-a-theme-image" target="_blank" class="body-link">Shopify Help</a></p>
</div> ]]></description>
    <pubDate>Thu, 16 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/access-image-focal-point-from-the-storefront-api</link>
  </item>
  <item>
    <title>Read 3D model configuration settings from the Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of <code>2023-04</code> we're introducing the ability to read presentation attributes for 3D models in the storefront api.</p>
<p>When a 3D model is customized via the no code 3D viewer configuration the properties associated with lighting, zoom, camera angle and background color are available in the Storefront API.</p>
<p>Learn more about this feature on <a href="https://help.shopify.com/en/manual/online-store/images/3d-images" target="_blank" class="body-link">Shopify Help</a></p>
</div> ]]></description>
    <pubDate>Thu, 16 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/read-3d-model-configuration-settings-from-the-storefront-api</link>
  </item>
  <item>
    <title>Removal of `contextRule` on PriceList</title>
    <description><![CDATA[ <div class=""><p>Starting in API version <code>2023-04</code>, the <code>PriceList.contextRule</code> field will be removed and deprecated in previous API versions. If you have an existing app that uses the <code>contextRule</code> field, then you should migrate to catalogs.</p>
<p>Learn more about migrating to catalogs on <a href="https://shopify.dev/docs/apps/markets/catalogs/migrate" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Mar 2023 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/removal-of-contextrule-on-pricelist</link>
  </item>
  <item>
    <title>Geotargeting for Shopify App Store ads</title>
    <description><![CDATA[ <div class=""><p>As of March 15, you can geotarget Shopify App Store advertising campaigns, giving greater control over how you market your apps and grow your business. Create effective and relevant regional campaigns with country-specific attribution, metrics, and even recommended bids.</p>
<p>Learn more about creating geotargeted ads on <a href="https://shopify.dev/docs/apps/store/advertising/getting-started" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Mar 2023 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/geotargeting-for-shopify-app-store-ads</link>
  </item>
  <item>
    <title>The `templates` schema attribute is now deprecated for the `apps.liquid` section</title>
    <description><![CDATA[ <div class=""><p>As of March 15, the <code>templates</code> schema attribute is no longer supported in the <code>apps.liquid</code> section. </p>
<ul>
<li>The <code>templates</code> schema attribute cannot be specified in the <code>apps.liquid</code> section.</li>
<li>The <code>enabled_on/disabled_on</code> schema attribute cannot contain <code>templates</code> attribute in the <code>apps.liquid</code> section.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 15 Mar 2023 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/the-templates-schema-attribute-is-now-deprecated-for-the-apps-liquid-section</link>
  </item>
  <item>
    <title>Webhooks for B2B Customers Primitives</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API <code>2023-04</code> Release, we are providing webhook notifications for changes to the major entities within the B2B Customers product. The following webhooks are provided:</p>
<ul>
<li><code>companies/create</code></li>
<li><code>companies/update</code></li>
<li><code>companies/delete</code></li>
<li><code>company_locations/create</code></li>
<li><code>company_locations/update</code></li>
<li><code>company_locations/delete</code></li>
<li><code>company_contacts/create</code></li>
<li><code>company_contacts/update</code></li>
<li><code>company_contacts/delete</code></li>
</ul>
<p>Learn more about these webhooks on  <a href="https://shopify.dev/docs/api/admin-rest/2023-04/resources/webhook#event-topics" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Wed, 15 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/webhooks-for-b2b-customers-primitives</link>
  </item>
  <item>
    <title>SVGs returned as MediaImage in Admin API</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-04</strong>, SVGs are treated as MediaImages by the Admin API.</p>
<p>This makes it easier to use SVGs in your online storefront.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/svgs-returned-as-mediaimage-in-admin-api</link>
  </item>
  <item>
    <title>Consistent presence of null values on the order object</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-04</strong>, we're no longer filtering out <code>null</code> values on certain fields of the <code>Order</code> object. Previously, some keys with <code>null</code> values would not be present on the REST API and webhook payloads.</p>
<p>This change removes unecessary and inconsistent handling of <code>null</code>.</p>
</div> ]]></description>
    <pubDate>Tue, 14 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/consistent-presence-of-null-values-on-the-order-object</link>
  </item>
  <item>
    <title>Google Analytics 4 in the Google channel app</title>
    <description><![CDATA[ <div class=""><p><strong>New release:</strong> <a href="https://support.google.com/analytics/answer/10089681" target="_blank" class="body-link">Google Analytics 4</a> is now available through the Google channel app on Shopify, enabling you to upgrade and take advantage of its enhanced real-time, multi-channel measurement and privacy controls. </p>
<p>Google Analytics 4 is replacing Universal Analytics, which will continue to process data until July 1, 2023 (July 1, 2024 for Analytics 360 properties).</p>
<p>Learn more about Google Analytics 4 and what this means for you <a href="https://help.shopify.com/en/manual/reports-and-analytics/google-analytics/google-analytics-4" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 13 Mar 2023 14:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/google-analytics-4-in-the-google-channel-app</link>
  </item>
  <item>
    <title>Added `wallet_preferences` to the `Cart` object</title>
    <description><![CDATA[ <div class=""><p>As part of the GraphQL Storefront API 2023-04 API release, we are adding <code>wallet_preferences</code> to the <code>Cart</code> object. The wallet preferences from the cart will allow to pass through a buyer's wallet preference to the checkout.</p>
<p>Learn more about the <code>Cart</code> object on <a href="https://shopify.dev/api/storefront/unstable/objects/Cart#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 13 Mar 2023 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/added-wallet_preferences-to-the-cart-object</link>
  </item>
  <item>
    <title>JavaScript support for Shopify Functions developer preview</title>
    <description><![CDATA[ <div class=""><p>The JavaScript support developer preview enables you to write functions in JavaScript or TypeScript, compile them to WebAssembly with Shopify CLI, deploy them to Shopify, and execute them on development stores.</p>
<p>Learn more about the developer preview on <a href="https://shopify.dev/docs/api/release-notes/developer-previews#javascript-support-for-shopify-functions" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 10 Mar 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/javascript-support-for-shopify-functions-developer-preview</link>
  </item>
  <item>
    <title>Idempotent creation of AppUsageRecord</title>
    <description><![CDATA[ <div class=""><p>In the Admin GraphQL API version 2023-04, <code>appUsageRecordCreate</code> now supports an optional parameter <code>idempotencyKey</code> which ensures the merchant will not be charged twice. When <code>idempotencyKey</code> is provided, the mutation will return the same response as any previous <code>appUsageRecordCreate</code> mutations with identical <code>idempotencyKey</code> for the intended shop and requesting app, rather than creating a new record and charging the merchant again.</p>
<p>This means that an <code>idempotencyKey</code> could be reused by an app to create <code>appUsageRecord</code>s on different shops to charge the merchant. Different apps can also use the same <code>idempotencyKey</code> on the same shop and still charge the shop. But we recommend a UUID.</p>
<p>The <code>appUsageRecordCreate</code> will behave like past API versions when <code>idempotencyKey</code> is not provided and create a new record on every mutation.</p>
</div> ]]></description>
    <pubDate>Fri, 10 Mar 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/idempotent-creation-of-appusagerecord</link>
  </item>
  <item>
    <title>Translate Metaobjects with Translatable Capability</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-04</strong> we're introducing a new capability to translate metaobjects.</p>
<p>Similar to the publishable capability, the translatable capability can be enabled when creating and updating a metaobject definition. When enabled all metaobjects belonging to the definition will be eligible for translations through the <a href="https://shopify.dev/docs/apps/markets/translate-content" target="_blank" class="body-link">Translations API</a> as well as the <a href="https://apps.shopify.com/translate-and-adapt" target="_blank" class="body-link">Translate and Adapt</a> app.</p>
<p>Learn more about the Translatable Capability on <a href="https://shopify.dev/docs/apps/custom-data/metaobjects/capabilities#make-your-metaobjects-translatable" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Mon, 06 Mar 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/translate-metaobjects-with-translatable-capability</link>
  </item>
  <item>
    <title>New rich text setting functionality in online store editor </title>
    <description><![CDATA[ <div class=""><p>We've added headings as well as ordered lists to the rich text setting within online store editor. This means that themes can now take advantage of this new semantic styling within the editor to allow merchants to configure multiple headings of different semantic sizing and craft lists (now both ordered and unordered) right in the theme. </p>
<p>Learn more about the rich text input setting on <a href="https://shopify.dev/docs/themes/architecture/settings" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 02 Mar 2023 19:30:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-rich-text-setting-functionality-in-online-store-editor</link>
  </item>
  <item>
    <title>Partial updates for bulk product variants mutation</title>
    <description><![CDATA[ <div class=""><p>In the Admin GraphQL API version 2023-04, you can use the <code>productVariantsBulkUpdate</code> mutation to update valid variants even if some variants are invalid. The new <code>allowPartialUpdates</code> parameter is optional and defaults to <code>false</code> for backwards compatibility, but by enabling it, the mutation will modify valid variants, instead of not updating any variants due to invalid variants.</p>
<p>Learn more about the mutation <a href="https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/productvariantsbulkupdate" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 28 Feb 2023 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/partial-updates-for-bulk-product-variants-mutation</link>
  </item>
  <item>
    <title>Increasing search relevance with behavioral data</title>
    <description><![CDATA[ <div class=""><p>As of February 27, Shopify App Store’s search algorithm folds in more data on how merchants interact with results after they search.</p>
<p>In other words, apps that merchants find most relevant, given what they’re searching for, will rank higher overall. While term matching will still inform results, this update will reduce the impact of keyword stuffing.</p>
<p>Learn more about search on our <a href="https://www.shopify.com/partners/blog/search-improvements" target="_blank" class="body-link">blog</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 27 Feb 2023 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increasing-search-relevance-with-behavioral-data</link>
  </item>
  <item>
    <title>Shopify Functions now support app-owned metafields and reserved prefixes</title>
    <description><![CDATA[ <div class=""><p>You can now use the <code>$app:</code> metafield namespace prefix in Shopify Functions <a href="https://shopify.dev/docs/apps/functions/input-output" target="_blank" class="body-link">input queries</a> to ensure your app's ownership of metafields used in your function.</p>
<p>We recommend use of reserved prefixes by default for all functions, so that you can control access to metafields used by your function. By default, they will be private to your app.</p>
<p>Learn more about <a href="https://shopify.dev/docs/apps/custom-data/ownership" target="_blank" class="body-link">metafield ownership</a> and <a href="https://shopify.dev/docs/apps/functions/input-output/queries-metafields" target="_blank" class="body-link">using metafields with input queries</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Mon, 27 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-now-support-app-owned-metafields-and-reserved-prefixes</link>
  </item>
  <item>
    <title>Introducing new `enabled_on` / `disabled_on` app blocks schema attributes (deprecating `templates`)</title>
    <description><![CDATA[ <div class=""><p>You can now use the new <code>enabled_on</code> / <code>disabled_on</code> app block <a href="https://shopify.dev/docs/apps/online-store/theme-app-extensions/extensions-framework#schema" target="_blank" class="body-link">schema</a> attributes to specify where an app block can be used. These new attributes replace the existing <code>templates</code> attribute and work for both templates and <a href="https://shopify.dev/themes/architecture/section-groups" target="_blank" class="body-link">section groups</a>.</p>
<ul>
<li>Use the <code>enabled_on</code> attribute to limit an app block to specific templates and section groups. </li>
<li>Use the <code>disabled_on</code> attribute to prevent an app block from being used in specific templates and section groups.</li>
<li>These new attributes work for both app blocks and app block embeds.</li>
</ul>
<p>Please keep in mind that you can use only one of <code>enabled_on</code> or <code>disabled_on</code>.</p>
</div> ]]></description>
    <pubDate>Sun, 26 Feb 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-new-enabled_on-disabled_on-app-blocks-schema-attributes-deprecating-templates</link>
  </item>
  <item>
    <title>Deprecating Price Rules GraphQL API</title>
    <description><![CDATA[ <div class=""><p>We are deprecating Price Rule GraphQL queries &amp; mutations. Use Discounts GraphQL queries &amp; mutations instead.</p>
<p>You will need to migrate to the new endpoints by April of 2024 when we will remove access to these resources.</p>
<p>Certain features, such as Automatic Discounts, and Shopify Functions-backed Discounts, are not supported by these
Price Rule endpoints. This migration will allow you to access all the latest features, including ones coming in the
future.</p>
<p>Affected queries:</p>
<ul>
<li><a href="https://shopify.dev/api/admin-graphql/latest/queries/priceRule" target="_blank" class="body-link"><code>priceRule</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/queries/priceRules" target="_blank" class="body-link"><code>priceRules</code></a></li>
</ul>
<p>Affected mutations:</p>
<ul>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/priceRuleActivate" target="_blank" class="body-link"><code>priceRuleActivate</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/priceRuleCreate" target="_blank" class="body-link"><code>priceRuleCreate</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/priceRuleDeactivate" target="_blank" class="body-link"><code>priceRuleDeactivate</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/priceRuleDelete" target="_blank" class="body-link"><code>priceRuleDelete</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/priceRuleDiscountCodeCreate" target="_blank" class="body-link"><code>priceRuleDiscountCodeCreate</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/priceRuleDiscountCodeUpdate" target="_blank" class="body-link"><code>priceRuleDiscountCodeUpdate</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/priceRuleUpdate" target="_blank" class="body-link"><code>priceRuleUpdate</code></a></li>
</ul>
<p>To get up to date, make sure you no longer use the affected queries &amp; mutations listed above. To replace them, use the
Discounts queries &amp; mutations found on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a> below:</p>
<ul>
<li><a href="https://shopify.dev/apps/discounts/automatic" target="_blank" class="body-link">Create automatic discounts</a></li>
<li><a href="https://shopify.dev/apps/discounts/code" target="_blank" class="body-link">Create code discounts</a></li>
<li><a href="https://shopify.dev/apps/discounts/existing" target="_blank" class="body-link">Manage existing discounts</a></li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 23 Feb 2023 18:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/deprecating-price-rules-graphql-api</link>
  </item>
  <item>
    <title>Upcoming changes to Asset API approval scope </title>
    <description><![CDATA[ <div class=""><p>Over a year ago, we introduced <a href="https://shopify.dev/docs/apps/online-store/theme-app-extensions/extensions-framework" target="_blank" class="body-link">Theme App Extensions</a> as the recommended way for public apps to integrate into themes. The use of Theme App Extensions is a more streamlined and secure method for merchants to customize their Online Store themes, replacing the need for the Asset API.</p>
<p>As of today, when requesting <strong>the unstable 2023-04 release candidate, or future versions of the Admin API, the Asset API access to create, update and delete assets is no longer accessible for public apps</strong>. Refer to <a href="https://shopify.dev/docs/apps/online-store/other-integration-methods/asset" target="_blank" class="body-link">this guide</a> for more details on the change, exemptions and how to migrate your apps.</p>
</div> ]]></description>
    <pubDate>Tue, 21 Feb 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/upcoming-changes-to-asset-api-approval-scope</link>
  </item>
  <item>
    <title>CompanyAddress name field changes</title>
    <description><![CDATA[ <div class=""><p>The CompanyAddress is no longer supporting the use of firstName/lastName fields, preferring instead to use a single recipient field. English-based UI elements may call this new field Attention. This is due to requests from merchants who are not dispatching orders to named individuals, but rather to locations, departments, or roles.</p>
<p>The field recipient has been added to the liquid API for <a href="https://shopify.link/4z4b" target="_blank" class="body-link">CompanyAddress</a> to display this field. However, there are a large number of existing templates that use the firstName/lastName fields. In order to minimize the impact on these templates, we populate the lastName field with the recipient, and leave the firstName field blank (specifically, it is <code>null</code>).</p>
<p>The previous paragraph is true for those CompanyAddresses where the recipient field has been populated. Where the address is still using firstName/lastName, the firstName/lastName fields will be populated as before, with the recipient field being the concatenation of these fields in a locale aware manner (in the same way as the name field). We are in the process of porting all CompanyAddresses to use the recipient field only.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/companyaddress-name-field-changes</link>
  </item>
  <item>
    <title>Certificate Update On Myshopify.Com Domains</title>
    <description><![CDATA[ <div class=""><p>Shopify will be making changes to the certificate used to secure subdomains of myshopify.com (eg: <a href="https://test.myshopify.com/" target="_blank" class="body-link">https://test.myshopify.com/</a>) effective <strong>February 13, 2023</strong>. The current certificate which is being used is issued by Cloudflare via DigiCert. We will be adding in additional certificates signed by Lets Encrypt and Google Trust Services.</p>
<p><strong>Note:</strong> This will not affect the certificate used for mTLS connections.</p>
<p>For more information refer to the <a href="https://community.shopify.com/c/shopify-apis-and-sdks/important-notice-certificate-update-on-myshopify-com-domains/td-p/1928332" target="_blank" class="body-link">community notice</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 13 Feb 2023 21:31:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/certificate-update-on-myshopify-com-domains</link>
  </item>
  <item>
    <title>Checkout.liquid will no longer work for in-checkout pages starting August 13, 2024</title>
    <description><![CDATA[ <div class=""><p>Shopify Plus merchants can now customize their in-checkout pages, which include their Information, Shipping, and Payment Pages, using <a href="https://shopify.dev/apps/checkout" target="_blank" class="body-link">checkout extensibility</a>. Checkout extensibility is a faster way to customize Shopify Checkout in a way that’s app-based, upgrade-safe, higher-converting, and integrated with Shop Pay. It has the power and flexibility for merchants to build the experiences they want. </p>
<p>Checkout extensibility replaces checkout.liquid. As a result, checkout.liquid will no longer work for in-checkout pages on <strong>August 13, 2024</strong>. Any merchants that currently customize their in-checkout pages with checkout.liquid need to upgrade to checkout extensibility before this date.</p>
<p>Shopify Plus merchants can continue customizing their post-checkout pages, which includes their Thank You Page and Order Status Page, with checkout.liquid. However, we’ll soon support customization on these pages with checkout extensibility as well.</p>
<p><a href="https://www.shopify.com/ca/partners/blog/checkout-extensibility" target="_blank" class="body-link">Click here to learn more</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 13 Feb 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/checkout-liquid-will-no-longer-work-for-in-checkout-pages-starting-august-13-2024</link>
  </item>
  <item>
    <title>Support for Shopify Scripts will end on August 13, 2024</title>
    <description><![CDATA[ <div class=""><p><strong>Update: In October 2023, the end of life date for Shopify Scripts was extended from August 13, 2024 to August 28, 2025.</strong> </p>
<p>Shopify Functions replace the need for Shopify Scripts, as a result Shopify Scripts will no longer be supported as of August 28, 2025. Merchants that leverage Shopify Scripts will need to migrate to Shopify Functions before this date. </p>
<p>You can now build unique discount, payment, and delivery customizations with <a href="https://shopify.dev/api/functions" target="_blank" class="body-link">Shopify Functions</a>. Functions are deployed through apps and configured alongside native features directly in the Shopify Admin. This means that merchant end users never have to touch a line of code when modifying their customizations. </p>
<p>Please note that Functions and Scripts can work together, so if a use case isn't yet supported by Functions, merchants can continue to leverage their existing Shopify Scripts. Over the next year, we'll continue to release additional <a href="https://shopify.dev/api/functions/reference" target="_blank" class="body-link">Functions APIs</a> to cover existing Scripts use-cases, and more. </p>
<p>Help merchants migrate by <a href="https://help.shopify.com/en/manual/checkout-settings/script-editor/migrating" target="_blank" class="body-link">building apps powered by Functions</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 13 Feb 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/support-for-shopify-scripts-will-end-on-august-13-2024</link>
  </item>
  <item>
    <title>JavaScript support in Shopify Functions local developer preview</title>
    <description><![CDATA[ <div class=""><p>JavaScript support for Shopify Functions is now available in a local developer preview. This means you can try Shopify Functions with JavaScript locally, on your own development machine, but you can't deploy functions to production yet. We are releasing this preview now to get your feedback on our JavaScript development experience.</p>
<p>Learn more about JavaScript support for functions on <a href="https://shopify.dev/api/functions/language-support/javascript" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/javascript-support-in-shopify-functions-local-developer-preview</link>
  </item>
  <item>
    <title>Cart and Checkout Validations are now available in Developer Preview</title>
    <description><![CDATA[ <div class=""><p>The Shopify Functions API for cart and checkout validations is now available in the Checkout Extensibility developer preview. </p>
<p>This API allows you to apply validation rules that run in both the cart and checkout, ensuring that purchases meet certain criteria before checking out, or completing the order.</p>
<p>Learn more about building cart and checkout validations in our dev docs: <a href="https://shopify.dev/api/functions/reference/cart-checkout-validation" target="_blank" class="body-link">Cart and Checkout validations</a></p>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/cart-and-checkout-validations-are-now-available-in-developer-preview</link>
  </item>
  <item>
    <title>New CheckoutBranding API properties</title>
    <description><![CDATA[ <div class=""><p>We released new checkout branding API properties to make it possible to customize more of checkout’s look and feel. These consist of API-only capabilities that can style interactive elements like buttons and form inputs, as well as more typography controls on heading styles and font styles.</p>
<p>These customizations are automatically inherited by checkout UI extensions and include:</p>
<ul>
<li>Font properties for all font surfaces like case and kerning</li>
<li>Form controls such as corner radius, border presence, label position and label typography</li>
<li>Button styles such as padding, corner radius and button typography</li>
</ul>
<p>For more information, view the <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert" target="_blank" class="body-link">checkout branding API reference</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-checkoutbranding-api-properties</link>
  </item>
  <item>
    <title>Order Routing Location Rule API — Developer Preview </title>
    <description><![CDATA[ <div class=""><p>The Order Routing Location Rule API is now available in a developer preview. You can use this new Shopify Functions API to write custom order routing rules that determine how to best fulfill and ship orders, based on the needs of the merchant. </p>
<p>For example, keeping orders within the country, balancing inventory levels to prioritize locations with more items in stock, or shipping directly from stores, just to name a few.      </p>
<p>Learn more about the Order Routing Location Rule Function API <a href="https://shopify.dev/api/functions/reference/order-routing-location-rule" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/order-routing-location-rule-api-developer-preview</link>
  </item>
  <item>
    <title>Delivery and Payment Customizations - Shopify Functions </title>
    <description><![CDATA[ <div class=""><p>The Shopify Functions APIs for delivery and payment customizations are now generally available. These Functions APIs allow you to hide, reorder, or rename delivery and payment options directly in the checkout. </p>
<p>One of the most popular delivery customizations include the ability to surface unique shipping options to specific buyers — like bike shipping options, that only display to customers that live within certain ZIP or postal codes. </p>
<p>With regards to payment customizations, one of the most popular use cases is to hide certain payment options based on a dollar threshold. </p>
<ul>
<li>Start building with the <a href="https://shopify.dev/apps/checkout/delivery-customizations?itcat=partnersblog&itterm=shopify-functions-apis" target="_blank" class="body-link">Delivery Customization API</a> </li>
<li>Start building with the <a href="https://shopify.dev/apps/checkout/payment-customizations?itcat=partnersblog&itterm=shopify-functions-apis" target="_blank" class="body-link">Payment Customization API</a></li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/delivery-and-payment-customizations-shopify-functions</link>
  </item>
  <item>
    <title>Cart Transform API (Product Bundles) — Developer Preview </title>
    <description><![CDATA[ <div class=""><p>The Cart Transform API is now available in a developer preview. You can use this new Shopify Functions API to create unique product bundle offerings that display directly in the checkout. </p>
<p>There are two key parts building a product bundle. First, you can determine which specific products can be merged into a bundle. Second, the Cart Transform API can also expand a bundle product into its individual components, making it easier to complete tasks on the backend—like calculating taxes, shipping weights, decrement inventory, and more. </p>
<p>Learn more about how to use the Cart Transform Function API to build product bundles <a href="https://shopify.dev/api/functions/reference/cart-transform" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/cart-transform-api-product-bundles-developer-preview</link>
  </item>
  <item>
    <title>Checkout UI extensions are now available on the order status page in developer preview</title>
    <description><![CDATA[ <div class=""><p>Checkout UI extensions on the order status page are now available in the Checkout Extensibility developer preview. Add app-powered extensions or content to post-checkout pages such as surveys, social shares or referral links so merchants can install and configure apps without code. <a href="https://shopify.dev/docs/api/release-notes/developer-previews#checkout-extensibility-developer-preview" target="_blank" class="body-link">Learn more</a></p>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/checkout-ui-extensions-are-now-available-on-the-order-status-page-in-developer-preview</link>
  </item>
  <item>
    <title>New APIs and components for Checkout UI extensions</title>
    <description><![CDATA[ <div class=""><h3>New Checkout UI Extensions APIs</h3>
<p>With this new API release, checkout UI extensions can access the storefront API without needing to be a sales channel. They can also read and edit discount codes and gift cards, and generate a signed token to be verified on an app server. Extensions can also verify that they are rendering in the checkout editor. </p>
<ul>
<li><a href="https://shopify.dev/api/checkout-extensions/checkout/extension-points/api#standardapi" target="_blank" class="body-link">Buyer journey and order hooks</a> - Extensions can use the buyer journey API to render different extensions on the order status page based on the intended step in the customer journey (e.g. on checkout completion, or order fulfillment). For more details about extensions on the order status page, <a href="https://shopify.dev/apps/checkout/order-status-page" target="_blank" class="body-link">see here</a></li>
<li><a href="https://shopify.dev/api/checkout-extensions/checkout/configuration#api-access" target="_blank" class="body-link">Storefront Direct Access API</a> - Extensions can query the storefront API of a shop to get additional information like product tags, product recommendations, or currency conversions. Shopify handles authentication, so the extension only needs to pass in the query. This API is available to all apps and does not require the app to be a sales channel.</li>
<li><a href="https://shopify.dev/api/checkout-extensions/checkout/extension-points/api#extension" target="_blank" class="body-link">Rendered in editor API</a> - Extensions can now detect when they are being rendered inside the checkout editor. Extensions that only conditionally render to buyers should always use this to render content for merchants configuring the extension.</li>
<li><a href="https://shopify.dev/api/checkout-extensions/checkout/extension-points/api#standardapi" target="_blank" class="body-link">Discount Code API</a> - Extensions can now read discount allocations and discount codes in checkout, and add or remove the discount code(s).</li>
<li><a href="https://shopify.dev/api/checkout-extensions/checkout/extension-points/api#standardapi" target="_blank" class="body-link">Gift Card API</a> - Extensions can now read the gift card code applied to a checkout along with the amount. They can also add or remove gift card codes.</li>
<li><a href="https://shopify.dev/api/checkout-extensions/checkout/extension-points/api#sessiontoken" target="_blank" class="body-link">Session Token API</a> - Shopify provides a token signed with the app’s secret to the extension. This token can be passed via external call to an app server, and the app can trust that the contents of the token were created by Shopify</li>
</ul>
<h3>New UI Components</h3>
<p>With the following new components, checkout UI extensions can progressively disclose information that buyers can opt in to. Using the overlay activation pattern on interactive components, extensions can show buyers information on customer trust like terms and conditions, trust badges, or warranties. Additional conditional styles offer more props to build performant UI.</p>
<ul>
<li><a href="https://shopify.dev/api/checkout-ui-extensions/components/actions/pressable" target="_blank" class="body-link">Pressable</a> - Extensions can now use this generic interactive component without the styling that comes with a button or link. </li>
<li><a href="https://shopify.dev/api/checkout-ui-extensions/components/overlays" target="_blank" class="body-link">Component Overlays</a> - Extensions have access to a set of accessible UI component overlays that provide additional information on interaction from Button, Link or Pressable components.</li>
<li>Conditional style additions to Button, GridItem and Image</li>
<li><a href="https://shopify.dev/api/checkout-ui-extensions/components/titles-and-text/text" target="_blank" class="body-link">Text</a> has access to a visibility prop that allows visually-hidden content</li>
<li><a href="https://shopify.dev/api/checkout-ui-extensions/components/structure/griditem" target="_blank" class="body-link">GridItem</a> has added styling props on background, BlockSize and InlineSize</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-apis-and-components-for-checkout-ui-extensions</link>
  </item>
  <item>
    <title>Introducing the Shop Minis developer program </title>
    <description><![CDATA[ <div class=""><p>Shop Minis are a new way for Shopify App developers to bring their experiences into Shop and in front of 100 million buyers.</p>
<p>Our React Native SDK is designed to get you started with just one command, and it comes with all the components you’ll need, like search, product pages, and cart, to make an incredible shopping experience faster than ever before.</p>
<p>Learn more about <a href="https://shop.app/minis" target="_blank" class="body-link">early access</a>. </p>
</div> ]]></description>
    <pubDate>Thu, 09 Feb 2023 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-shop-minis-developer-program</link>
  </item>
  <item>
    <title>Introducing new Catalogs APIs to manage pricing and product publishing for different customers</title>
    <description><![CDATA[ <div class=""><p>As of the latest unstable GraphQL API version, you can use the Catalogs API to create a set of rules that determine the available products and their prices in different customer contexts. The Catalogs API lets you link Shopify Markets and B2B primitives to Publications and PriceLists to customize product offerings for different audiences. The same APIs also allow you to manage product publishing for sales channels.</p>
<p>To learn more about Catalogs API, read <a href="https://shopify.dev/apps/b2b/catalogs" target="_blank" class="body-link">B2B Catalogs</a> and <a href="https://shopify.dev/apps/internationalization/catalogs" target="_blank" class="body-link">Catalogs for Markets</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 08 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-new-catalogs-apis-to-manage-pricing-and-product-publishing-for-different-customers</link>
  </item>
  <item>
    <title>Increased Admin API rate limits for Shopify Plus</title>
    <description><![CDATA[ <div class=""><p>Shopify increased Admin API rate limits for Shopify Plus by 10x over standard limits. Apps installed on Shopify Plus stores will now get 500 points/second on the GraphQL Admin API and 20 requests/second on the REST Admin API. In addition, merchants on <a href="https://www.shopify.com/commerce-components" target="_blank" class="body-link">Commerce Components by Shopify</a> now have unlimited API calls.</p>
<p><a href="https://shopify.dev/api/usage/rate-limits" target="_blank" class="body-link">Read more about API rate limits</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 08 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increased-admin-api-rate-limits-for-shopify-plus</link>
  </item>
  <item>
    <title>Test data for Shopify development stores</title>
    <description><![CDATA[ <div class=""><p>Now, you can populate your store with test data in a single click, so you can start developing your app or theme faster. </p>
<p>The generated test data set includes the most common commerce primitives and configurations that you need to test an app, theme, or custom storefront, including some Shopify Plus exclusive features.</p>
<p>Read <a href="https://shopify.dev/apps/tools/development-stores/generated-data" target="_blank" class="body-link">the developer documentation</a> for more information and <a href="https://partners.shopify.com/2615420/stores/new?store_type=test_store&data_type=static_data&utm_source=editions&utm_feature=dev-stores" target="_blank" class="body-link">try it in your Partner Dashboard</a> today.</p>
</div> ]]></description>
    <pubDate>Tue, 07 Feb 2023 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/test-data-for-shopify-development-stores</link>
  </item>
  <item>
    <title>Updates to our Partner Program Agreement and API License and Terms of Use</title>
    <description><![CDATA[ <div class=""><p>EFFECTIVE FEBRUARY 06, 2023 <strong>ACTION REQUIRED</strong></p>
<p>We've made changes to our Partner Program Agreement and API License and Terms of Use. These updates include terms that clarify a partner's responsibility to promptly take certain actions, including as necessary to resolve failed requirements and/or violations to our terms, as well as other important updates.</p>
<p>These changes come into effect as of today, February 06, 2023.</p>
<p>We encourage all developers on our platform to review and be familiar with the <a href="https://www.shopify.com/legal/api-terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">API License and Terms</a> and the <a href="https://www.shopify.ca/partners/terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Partner Program Agreement</a>, so that you understand how to build, run, and grow your app and development business on our platform.</p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 06 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-our-partner-program-agreement-and-api-license-and-terms-of-use</link>
  </item>
  <item>
    <title>Embedded Apps not on App Bridge 2.0.5 or higher will redirect merchants to a new tab</title>
    <description><![CDATA[ <div class=""><p>The following requirements must be met for embedded apps to load in <code>admin.shopify.com</code>:</p>
<ul>
<li>The <a href="https://shopify.dev/apps/store/security/iframe-protection" target="_blank" class="body-link">content security policy</a> includes <code>admin.shopify.com</code>.</li>
<li>The app is on <a href="https://shopify.dev/apps/tools/app-bridge/updating-overview#ensure-compatibility-with-the-new-shopify-admin-domain" target="_blank" class="body-link">App Bridge 2.0.5 or higher</a>, and has correctly implemented the <a href="https://shopify.dev/apps/tools/app-bridge/retrieve-the-host" target="_blank" class="body-link"><code>host</code></a> parameter. <a href="https://shopify.dev/apps/tools/app-bridge/migrating-to-3" target="_blank" class="body-link">App Bridge 3.0</a> is recommended.</li>
</ul>
<p>When merchants try and access apps which have not been updated, they will be redirected to the old admin domain in a new tab. They will also be shown a banner letting them know that they've been redirected in the original tab. </p>
<p>If you have recently updated your app, or if you are unsure if your app has ever loaded correctly within the new admin domain, you are encouraged to test the app on any partner owned dev store. If you are redirected, ensure that your app has loaded correctly under the banner on admin.shopify.com. We will record the successful load, and within 3 hours our data pipeline will update. Once the pipeline has updated, the banner/redirect will no longer occur. </p>
</div> ]]></description>
    <pubDate>Mon, 06 Feb 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/embedded-apps-not-on-app-bridge-2-0-5-or-higher-will-redirect-merchants-to-a-new-tab</link>
  </item>
  <item>
    <title>Transaction in Admin REST API will now return the Total Unsettled Set amount</title>
    <description><![CDATA[ <div class=""><p>As of version <strong>2023-04</strong> of the <a href="https://shopify.dev/api/admin-rest" target="_blank" class="body-link">Admin REST API</a>, requests for <a href="https://shopify.dev/api/admin-rest/2023-04/resources/transaction" target="_blank" class="body-link">Transaction</a> will now return <code>total_unsettled_set</code>. This represents the remaining amount to be captured on the transaction. <code>total_unsettled_set</code> is returned in both <code>shop</code> and <code>presentment</code> money objects with currency. </p>
<p>If you are leveraging <strong>manual capture</strong> and the <strong>authorized</strong> amount from <a href="https://shopify.dev/api/admin-rest/2023-04/resources/transaction" target="_blank" class="body-link">Transaction</a>, you should switch to referencing <code>total_unsettled_set</code>. The authorized amount can differ from the total amount to capture due to adjustments during order finalization such as tax adjustments.</p>
</div> ]]></description>
    <pubDate>Fri, 03 Feb 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/transaction-in-admin-rest-api-will-now-return-the-total-unsettled-set-amount</link>
  </item>
  <item>
    <title>Predictive search now returns query suggestions </title>
    <description><![CDATA[ <div class=""><p>As of January 23, 2023, a new resource type for query suggestions has been added to the <a href="https://shopify.dev/api/ajax/reference/predictive-search#section-response" target="_blank" class="body-link">Predictive Search API</a>. </p>
<p>Notably, several other improvements have been made to the Predictive Search API: </p>
<ul>
<li><strong>Resources[type]</strong> is now optional with a default set to queries, products, collections and pages</li>
<li>Performance improvements when requesting multiple resource types </li>
<li>New parameter: <strong>limit_scope</strong> to decide whether the limit parameter applies to the total number of returned results, or the total that each resource type returns.</li>
</ul>
<p>Learn more about query suggestions on <a href="https://shopify.dev/themes/navigation-search/search/predictive-search" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 27 Jan 2023 15:24:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/predictive-search-now-returns-query-suggestions</link>
  </item>
  <item>
    <title>Introducing intelligent code completion for Liquid</title>
    <description><![CDATA[ <div class=""><p>We've added intelligent code completion features in Theme Check so that you can speedup writing Liquid code.</p>
<p>You can easily explore Liquid attributes as you type and benefit from type inferences, smart filters and scope awareness. With in-line documentation, you can check the most updated version of our documentation for objects, attributes, filters, and tags.</p>
<p>To start using, install <a href="https://github.com/shopify/theme-check#installation" target="_blank" class="body-link">Theme Check</a></p>
</div> ]]></description>
    <pubDate>Thu, 26 Jan 2023 20:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-intelligent-code-completion-for-liquid</link>
  </item>
  <item>
    <title>Shopify Functions adds support for variables in input queries</title>
    <description><![CDATA[ <div class=""><p>Shopify Functions now support the use of variables in input queries, so that you can use merchant input for GraphQL field arguments.</p>
<p>Learn more about input query variables on <a href="https://shopify.dev/api/functions/input-query-variables" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 26 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-functions-adds-support-for-variables-in-input-queries</link>
  </item>
  <item>
    <title>New color settings in themes</title>
    <description><![CDATA[ <div class=""><p>Empower your merchants to easily customize their online store with intuitive new color scheme settings. Online store color schemes are now available in <a href="https://shopify.dev/api/release-notes/developer-previews" target="_blank" class="body-link">developer preview</a>.</p>
<p>You can define the structure of a color scheme in <code>settings_schema.json</code> and set values for each color scheme in <code>settings_data.json</code>. You can then reference the color schemes in the settings of a given section or block.</p>
<p><code>ColorSchemesDrop</code> provides access to the colors schemes and color values in each scheme. You can define your CSS by iterating over the new drop. This way, merchants no longer need to edit their CSS or liquid file to add or remove color schemes.  </p>
<p>Learn more about <a href="https://shopify.dev/themes/architecture/settings/input-settings#color_scheme" target="_blank" class="body-link">color scheme</a> and <a href="https://shopify.dev/themes/architecture/settings/input-settings#color_schemes" target="_blank" class="body-link">color schemes</a> settings. </p>
</div> ]]></description>
    <pubDate>Wed, 25 Jan 2023 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-color-settings-in-themes</link>
  </item>
  <item>
    <title>Cart Mutations return a new cart on FailedToRetrieveCart error</title>
    <description><![CDATA[ <div class=""><p>In order to make the Cart SFAPI experience more seamless, we're rolling out changes to Cart Update mutations so they return a new, valid Cart even if the provided token is no longer valid. If a Cart is found for the provided token, the mutations will work the way they always have. That way you get back a a valid, updated Cart in your response, no matter what.</p>
<p>These mutations will return a new, empty cart:</p>
<ul>
<li><code>cartLinesRemove</code></li>
<li><code>cartLinesUpdate</code></li>
<li><code>cartSelectedDeliveryOptionsUpdate</code></li>
</ul>
<p>The following mutations will update the new cart with the requested input:</p>
<ul>
<li><code>cartAttributesUpdate</code></li>
<li><code>cartBuyerIdentityUpdate</code></li>
<li><code>cartDiscountCodesUpdate</code></li>
<li><code>cartLinesAdd</code></li>
<li><code>cartNoteUpdate</code></li>
</ul>
<p>To take advantage of this, use the new Cart ID from the returned Cart when you receive the <code>FailedToRetrieveCart</code> error code in your response. Please note that the new cart is <strong>not</strong> a copy of the cart whose token was invalid.</p>
</div> ]]></description>
    <pubDate>Wed, 25 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/cart-mutations-return-a-new-cart-on-failedtoretrievecart-error</link>
  </item>
  <item>
    <title>Add inventoryItemId on FulfillmentOrderLineItem Resource</title>
    <description><![CDATA[ <div class=""><p>As of Admin Graphql API version <strong>2023-04</strong>, you can now get <code>inventoryItemId</code> on  the <code>FulfillmentOrderLineItem</code>  resource.</p>
</div> ]]></description>
    <pubDate>Mon, 23 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/add-inventoryitemid-on-fulfillmentorderlineitem-resource</link>
  </item>
  <item>
    <title>Private apps are automatically converting to custom apps</title>
    <description><![CDATA[ <div class=""><p>From January 19th to January 20th, 2023, all private apps will be automatically converted to custom apps managed through the Shopify admin.</p>
<p>Custom apps support all the functionality that private apps did, and provide better security. </p>
<p>Learn more about <a href="https://shopify.dev/apps/getting-started/app-types" target="_blank" class="body-link">the different types of app you can build</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Jan 2023 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/private-apps-are-automatically-converting-to-custom-apps</link>
  </item>
  <item>
    <title>We are introducing `sections` liquid tag and section groups  </title>
    <description><![CDATA[ <div class=""><p>You can now create section groups in your theme’s layout. Section groups are JSON containers that allow merchants to add, remove, and reorder sections in areas of the layout file such as the header and footer.</p>
<p>To include a section group in a layout file, add the section group to the <strong>sections</strong> directory of your theme, then add a <code>{% sections '&lt;filename&gt;' %}</code> Liquid tag that references your new sections file to the layout file where you want it to be rendered.</p>
<p>To learn more, refer to <a href="https://shopify.dev/themes/architecture/section-groups" target="_blank" class="body-link">section groups</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 06 Jan 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/we-are-introducing-sections-liquid-tag-and-section-groups</link>
  </item>
  <item>
    <title>Introducing new `enabled_on` / `disabled_on` section schema attributes (deprecating `templates`)</title>
    <description><![CDATA[ <div class=""><p>You can now use the new <a href="https://shopify.dev/themes/architecture/sections/section-schema#enabled_on" target="_blank" class="body-link"><code>enabled_on</code></a> / <a href="https://shopify.dev/themes/architecture/sections/section-schema#disabled_on" target="_blank" class="body-link"><code>disabled_on</code></a> section schema attributes to specify where a section can be used. These new attributes replace the existing <code>templates</code> attribute and work for both templates and <a href="https://shopify.dev/themes/architecture/section-groups" target="_blank" class="body-link">section groups</a>.</p>
<ul>
<li>Use the <code>enabled_on</code> attribute to limit a section to specific templates and section groups. </li>
<li>Use the <code>disabled_on</code> attribute to prevent a section from being used in specific templates and section groups.</li>
</ul>
<p>Please keep in mind that you can use only one of <code>enabled_on</code> or <code>disabled_on</code>.</p>
</div> ]]></description>
    <pubDate>Fri, 06 Jan 2023 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-new-enabled_on-disabled_on-section-schema-attributes-deprecating-templates</link>
  </item>
  <item>
    <title>Delivery and Payment Customizations are now available in Developer Preview</title>
    <description><![CDATA[ <div class=""><p>The Functions APIs for delivery customizations and payment customizations are now available in a developer preview.  </p>
<p>With these new APIs, you can hide, reorder, or rename payment and delivery options to help merchants increase conversions and stand out from the competition.</p>
<p>Learn more about building with delivery and payment Functions in our dev docs:
<a href="https://shopify.dev/apps/checkout/delivery-customizations" target="_blank" class="body-link">Delivery Customization</a>
<a href="https://shopify.dev/apps/checkout/payment-customizations" target="_blank" class="body-link">Payment Customization</a></p>
</div> ]]></description>
    <pubDate>Wed, 04 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/delivery-and-payment-customizations-are-now-available-in-developer-preview</link>
  </item>
  <item>
    <title>Return request actions available to merchants in the admin</title>
    <description><![CDATA[ <div class=""><p>We've just released enhancements that allow merchants to approve or decline return requests in their admin for partners using the returnRequest <a href="https://shopify.dev/api/admin-graphql/2023-01/mutations/returnRequest" target="_blank" class="body-link">mutation</a>.</p>
<p>This <a href="https://shopify.dev/changelog/new-ways-to-manage-returns-with-the-graphql-admin-api" target="_blank" class="body-link">changelog post</a> announced new ways for managing returns via the GraphQL Admin API, including the ability to approve or decline a return automatically.</p>
<p>Partners can now choose to automate this behavior or allow merchants to take action themselves.</p>
</div> ]]></description>
    <pubDate>Wed, 04 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/return-request-actions-available-to-merchants-in-the-admin</link>
  </item>
  <item>
    <title>Publication Id and channel Id validations</title>
    <description><![CDATA[ <div class=""><p>As of the 2023-04 version of the Admin GraphQL API, the <code>publicationId</code> and <code>channelId</code> fields of the <code>PublicationInput</code> will be validated on calls to <code>publishableUnpublish</code> and <code>productUnpublish</code> mutations.</p>
<p>This allows you to ensure that ids sent into a mutation correspond to existing records in the database.</p>
<p>The validation message for the <code>publicationId</code> field will change from &quot;Channel can't be blank&quot; to &quot;Publication does not exist&quot; on a <code>PublicationInput</code> object. </p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-04/mutations/publishableUnpublish" target="_blank" class="body-link">publishableUnpublish</a> and <a href="https://shopify.dev/api/admin-graphql/2022-04/mutations/productUnpublish" target="_blank" class="body-link">productUnpublish</a> on <a href="https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 04 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/publication-id-and-channel-id-validations</link>
  </item>
  <item>
    <title>FulfillmentOrder move and hold operations now accept specific line items</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-04, both FulfillmentOrder hold and move operations for both GraphQL and REST support a <code>fulfillment_order_line_items</code> parameter to allow you to place only a specified subset of the line items on hold, or move them to another location where they are in stock.</p>
<h3>GraphQL</h3>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentOrderMove" target="_blank" class="body-link">FulfillmentOrderMove</a></li>
<li><a href="https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmentOrderHold" target="_blank" class="body-link">FulfillmentOrderHold</a></li>
</ul>
<h3>REST</h3>
<ul>
<li><a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/fulfillmentorder#post-fulfillment-orders-fulfillment-order-id-move" target="_blank" class="body-link">move</a> </li>
<li><a href="https://shopify.dev/docs/api/admin-rest/unstable/resources/fulfillmentorder#post-fulfillment-orders-fulfillment-order-id-hold" target="_blank" class="body-link">hold</a></li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 04 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/fulfillmentorder-move-and-hold-operations-now-accept-specific-line-items</link>
  </item>
  <item>
    <title>Verified by Shopify tiers now available on the GraphQL Admin API's MerchantApprovedSignals object</title>
    <description><![CDATA[ <div class=""><p>You can now query <code>verifiedByShopifyTier</code> on the <code>MerchantApprovedSignals</code> object to determine what tier of pre-approval a merchant is in if available.</p>
<p>This query helps you to accelerate the onboarding of merchants to sales channels based on the tiers.</p>
<p>For more information, refer to the <a href="https://shopify.dev/api/release-notes/2023-04" target="_blank" class="body-link">release notes</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 04 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/verified-by-shopify-tiers-now-available-on-the-graphql-admin-api-s-merchantapprovedsignals-object</link>
  </item>
  <item>
    <title>Sort orders by destination</title>
    <description><![CDATA[ <div class=""><p>GraphQL Admin API <strong>2023-04</strong> introduces support for sorting orders by destination, based on the order's shipping address.</p>
<p>Orders will be sorted first by country, then zone (e.g. state or province), then city.</p>
</div> ]]></description>
    <pubDate>Tue, 03 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/sort-orders-by-destination</link>
  </item>
  <item>
    <title>New ways to manage returns with the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>Returns apps can now use the stable version of the GraphQL Admin API to give merchants greater visibility into critical returns data across platforms, and help them manage orders more efficiently.</p>
<p>Returns apps can automate the return management process by taking actions on behalf of merchants. These actions can include the following:</p>
<ul>
<li>Creating and canceling returns</li>
<li>Approving or declining return requests</li>
<li>Managing reverse fulfillment orders and deliveries, including creating a reverse delivery with shipping information, and disposing or restocking items</li>
<li>Issuing refunds</li>
<li>Closing and reopening returns</li>
</ul>
<p>We’ve also added new webhooks that your app can use to listen for events related to returns, refunds, reverse fulfillment orders, and reverse deliveries.</p>
<p>Learn more about <a href="https://shopify.dev/apps/fulfillment/returns-apps" target="_blank" class="body-link">returns management workflows</a> on <a href="https://https://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 02 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-ways-to-manage-returns-with-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Updated MetafieldsSetInput.type to be nullable for metafieldsSet mutation </title>
    <description><![CDATA[ <div class=""><p>As part of the <strong>2023-01</strong> GraphQL Admin API release, we've updated the <code>metafieldsSet</code> API to make the <code>MetafieldsSetInput.type</code> field nullable. When the metafield you are trying to mutate already has corresponding <a href="https://help.shopify.com/en/manual/metafields/metafield-definitions" target="_blank" class="body-link">metafield definitions</a>, you can simplify the mutation by omitting the <code>type</code> field from its arguments. The <code>type</code> field is still required when the metafield doesn't have a corresponding definition to the given <code>ownerId</code>, <code>namespace</code> and <code>key</code>.</p>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/metafieldsSet" target="_blank" class="body-link">metafieldsSet</a> mutation.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/updated-metafieldssetinput-type-to-be-nullable-for-metafieldsset-mutation</link>
  </item>
  <item>
    <title>New field `tag` added to the ProductFilter object</title>
    <description><![CDATA[ <div class=""><p>You can now use the Storefront API to filter products by tags if tags are enabled as a filter setting on the shop.</p>
<p>The <code>tag</code> field has been added to the Storefront API's <code>ProductFilter</code> object, for this purpose.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-field-tag-added-to-the-productfilter-object</link>
  </item>
  <item>
    <title>Storefront API `Metaobject` queries</title>
    <description><![CDATA[ <div class=""><p>With GraphQL Storefront API version 2023-01, you can use <code>Metaobject</code> queries to display custom content that's associated with resources like products, customers, and orders. Metaobjects created with the <code>CONTENT</code> category with an <code>Active</code> status are available through <code>Metaobject</code> queries.</p>
<p>This change is related to the GraphQL Admin API's support <a href="https://shopify.dev/changelog/create-custom-objects-with-the-new-metaobjects-api" target="_blank" class="body-link">for content management and metaobjects</a>. </p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/storefront-api-metaobject-queries</link>
  </item>
  <item>
    <title>Selling Plan Group Limit Increase</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-01</strong>, <a href="https://shopify.dev/api/admin-graphql/latest/objects/sellingplangroup" target="_blank" class="body-link">Selling Plan Groups</a> will have their <a href="https://shopify.dev/api/admin-graphql/latest/enums/SellingPlanGroupUserErrorCode#value-sellingplancountupperbound" target="_blank" class="body-link">limit on the number of associated Selling Plans</a> increased from 20 to 31. We recommend paginating all queries on a Selling Plan Group's Selling Plans, rather than relying on this fixed limit.</p>
<p>To learn more about Selling Plan Groups, refer to the <a href="https://shopify.dev/apps/purchase-options" target="_blank" class="body-link">purchase options documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/selling-plan-group-limit-increase</link>
  </item>
  <item>
    <title>Add near parameter to StoreAvailability - Storefront API</title>
    <description><![CDATA[ <div class=""><p>You can now use the <em>near</em> parameter to search StoreAvailability by proximity, via Storefront API.</p>
<p>The type is <a href="https://shopify.dev/api/storefront/2022-10/input-objects/GeoCoordinateInput" target="_blank" class="body-link">GeoCoordinateInput</a>, so far also used as parameter for <a href="https://shopify.dev/api/storefront/2022-10/queries/locations" target="_blank" class="body-link">Locations</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/add-near-parameter-to-storeavailability-storefront-api</link>
  </item>
  <item>
    <title>`metafieldsSet` is now Atomic</title>
    <description><![CDATA[ <div class=""><p>As of 2023-01, the <code>metafieldsSet</code> mutation is atomic and will not persist changes if any errors are encountered.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/metafieldsset-is-now-atomic</link>
  </item>
  <item>
    <title>Duplicate and Delete Product Asynchronously with GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2023-01</code>, we are adding mutations productDuplicateAsync and productDeleteAsync. This will allow you to asynchronously duplicate and delete products that have a high number of variants that are stocked at several locations. This is because the mutations <a href="https://shopify.dev/api/admin-graphql/latest/mutations/productDuplicate" target="_blank" class="body-link">productDuplicate</a> and <a href="https://shopify.dev/api/admin-graphql/latest/mutations/productDelete" target="_blank" class="body-link">productDelete</a> may time out for these <em>larger</em> products.</p>
<p>Learn more about the mutations at <a href="https://shopify.dev/api/admin-graphql/latest/mutations/productDuplicateAsync" target="_blank" class="body-link">productDuplicateAsync</a> and <a href="https://shopify.dev/api/admin-graphql/latest/mutations/productDeleteAsync" target="_blank" class="body-link">productDeleteAsync</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/duplicate-and-delete-product-asynchronously-with-graphql-admin-api</link>
  </item>
  <item>
    <title>New field `EditedAt` is added to CheckoutProfile object</title>
    <description><![CDATA[ <div class=""><p>As of 2023-01, you can use the <code>EditedAt</code> to see when checkout profile has been edited. Checkout profiles are sorted by <code>EditedAt</code> field instead of <code>updatedAt</code>.<code>UpdatedAt</code> field may be deprecated in the future.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/new-field-editedat-is-added-to-checkoutprofile-object</link>
  </item>
  <item>
    <title>New And Updated Fulfillment Order Webhooks</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API <strong>2023-01</strong> release candidate, fulfillment service and order management apps can subscribe to webhooks notifications related to fulfillment orders and events relating to them. </p>
<p>Learn more about fulfillment order webhooks at <a href="https://shopify.dev/apps/fulfillment/fulfillment-service-apps#webhooks" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/new-and-updated-fulfillment-order-webhooks</link>
  </item>
  <item>
    <title>Moving the Shop.fulfillmentOrders connection to QueryRoot</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-01</strong> release of the admin GraphQL, you can access fulfillment orders from <code>QueryRoot.fulfillmentOrders</code> in addition to the pre-existing <code>Shop.fulfillmentOrders</code> connection.</p>
<p>This change will also include the deprecation of the <code>Shop.fulfillmentOrders</code> query in favour of the newly added <code>QueryRoot.fulfillmentOrders</code></p>
<p>This change aligns with direction of the admin API moving forward ensuring that domain primitives are available on <code>QueryRoot</code> and the <code>Shop</code> field is reserved for key information related to the shop in the scope of the request.</p>
<p>You can learn more about fulfillment orders <a href="https://shopify.dev/api/admin-graphql/2023-01/connections/FulfillmentOrderConnection#connection-fulfillmentorderconnection-edges" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/moving-the-shop-fulfillmentorders-connection-to-queryroot</link>
  </item>
  <item>
    <title>Release of the fulfillmentOrdersReleaseHolds Mutation</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-01</strong>, you can use the <code>fulfillmentOrdersReleaseHolds</code> mutation to release holds on multiple fulfillment orders in a single request.</p>
<p>This will allow developers to reduce the number of individual requests used to complete bulk fulfillment actions with their apps. </p>
<p>For more details on the <code>fulfillmentOrdersReleaseHolds</code> mutation see <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/fulfillmentOrdersReleaseHolds" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/release-of-the-fulfillmentordersreleaseholds-mutation</link>
  </item>
  <item>
    <title>Shop Resource Feedback with GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>GraphQL Admin API 2023-01 introduces support for creation of shop resource feedback.</p>
<p>You can now use <code>shopResourceFeedbackCreate</code> mutation to create resource feedback on a shop to let merchant know what steps they need to take to make sure that your app is set up correctly. </p>
<p>For more information, refer to <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/shopResourceFeedbackCreate" target="_blank" class="body-link">https://shopify.dev/api/admin-graphql/unstable/mutations/shopResourceFeedbackCreate</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/shop-resource-feedback-with-graphql-admin-api</link>
  </item>
  <item>
    <title>New FulfillmentOrderLineItemsPreparedForPickup GraphQL Mutation Released</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-01</strong> release candidate in the Admin API, you can use the  GraphQL <code>FulfillmentOrderLineItemsPreparedForPickup</code> mutation to mark line items associated with a fulfillment order as being ready for pickup by a customer.</p>
<p>Learn more about FulfillmentOrderLineItemsPreparedForPickup mutation on <a href="https://shopify.dev/api/admin-graphql/2023-01/mutations/fulfillmentOrderLineItemsPreparedForPickup" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/new-fulfillmentorderlineitemspreparedforpickup-graphql-mutation-released</link>
  </item>
  <item>
    <title>New argument to update shipping package</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-01</strong> in GraphQL Admin API stable version, you can use <code>shippingPackage</code> as a <strong>required</strong> argument in <code>shippingPackageUpdate</code> mutation. 
<code>shippingPackage</code> is a set of attributes that describes a shipping package, including: <code>weight</code>, <code>dimensions</code>, <code>name</code>, <code>default</code> and <code>type</code>.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2023-01/mutations/shippingPackageUpdate" target="_blank" class="body-link">shippingPackageUpdate</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/new-argument-to-update-shipping-package</link>
  </item>
  <item>
    <title>Removal of SMS Templates as translatable resources</title>
    <description><![CDATA[ <div class=""><p>As part of GraphQL Admin API version <code>2023-01</code>, we are removing SMS Templates as a translatable resource. 
This means the <a href="https://shopify.dev/api/admin-graphql/2022-10/enums/TranslatableResourceType#value-smstemplate" target="_blank" class="body-link"><code>SMS_TEMPLATE</code></a> value will be removed from the <a href="https://shopify.dev/api/admin-graphql/2022-10/enums/TranslatableResourceType" target="_blank" class="body-link"><code>TranslatableResourceType</code></a> enum and the following GraphQL endpoints will stop accepting SMS Template IDs:</p>
<ul>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/translationsRemove" target="_blank" class="body-link"><code>translationsRemove</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/translationsRegister" target="_blank" class="body-link"><code>translationsRegister</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/queries/translatableResource" target="_blank" class="body-link"><code>translatableResource</code></a></li>
<li><a href="https://shopify.dev/api/admin-graphql/2022-10/queries/translatableResourcesByIds" target="_blank" class="body-link"><code>translatableResourcesByIds</code></a></li>
</ul>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/removal-of-sms-templates-as-translatable-resources</link>
  </item>
  <item>
    <title>Update: Carrier Service API Access for Stores on Starter and Basic Plans</title>
    <description><![CDATA[ <div class=""><p>As of January 1, 2023 <strong>stores on Starter and Basic plans (globally), will no longer be able to request access to the Carrier Service API.</strong> The option to request access by transitioning to annual billing or by paying an additional monthly fee for these plan types will be removed.  </p>
<p>Stores on Advanced and Shopify Plus plans will continue to have access to Carrier Service API. Stores on Shopify plans can continue to request access by contacting <a href="https://help.shopify.com/en/support/login" target="_blank" class="body-link">Shopify Support</a>. <strong>Stores on Starter or Basic plans that were previously granted access are not impacted by this change.</strong></p>
<p>Learn more about CarrierService access requirements on <a href="https://shopify.dev/api/admin-rest/2022-07/resources/carrierservice" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/update-carrier-service-api-access-for-stores-on-starter-and-basic-plans</link>
  </item>
  <item>
    <title>New credit card fields added to Transaction's payment details</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-01</strong> release candidate in the Admin API, new fields are available under the REST Transaction <code>payment_details</code> property, and the GraphQL OrderTransaction includes a new <code>payment_details</code> property.</p>
<p><strong>New fields added to REST Transaction <code>payment_details</code></strong></p>
<ul>
<li><code>credit_card_name</code>: The holder of the credit card.</li>
<li><code>credit_card_wallet</code>: The wallet type where this credit card was retrieved from.</li>
<li><code>credit_card_expiration_month</code>: The month in which the credit card expires.</li>
<li><code>credit_card_expiration_year</code>: The year in which the credit card expires.</li>
</ul>
<p>Learn more about the REST Transaction resource on <a href="https://shopify.dev/api/admin-rest/2023-01/resources/transaction" target="_blank" class="body-link">Shopify.dev</a>.</p>
<p><strong>New <code>paymentDetails</code> property added to GraphQL OrderTransaction</strong></p>
<p>A new field, <code>payment_details</code>, is available under the GraphQL OrderTransaction resource. The type of this field is <code>PaymentDetails</code>, a new union type. Only one type is available at the moment, <code>CardPaymentDetails</code>, which defines the following properties:</p>
<ul>
<li><code>avsResultCode</code>: The response code from the address verification system (AVS).</li>
<li><code>bin</code>: The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.</li>
<li><code>company</code>: The name of the company that issued the customer's credit card.</li>
<li><code>cvvResultCode</code>: The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.</li>
<li><code>expirationMonth</code>: The month in which the credit card expires.</li>
<li><code>expirationYear</code>: The year in which the credit card expires.</li>
<li><code>name</code>: The holder of the credit card.</li>
<li><code>number</code>:  The customer's credit card number, with most of the leading digits redacted.</li>
<li><code>wallet</code>: Digital wallet used for the payment.</li>
</ul>
<p>Learn more about the GraphQL OrderTransaction resource on <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/OrderTransaction#field-ordertransaction-paymentdetails" target="_blank" class="body-link">Shopify.dev</a>.
 </p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/new-credit-card-fields-added-to-transaction-s-payment-details</link>
  </item>
  <item>
    <title>Deprecate FulfillmentOrderLineItem.lineItem field</title>
    <description><![CDATA[ <div class=""><p>As of API version 2023-01,  the <code>lineItem</code> field on the <code>FulfillmentOrderLineItem</code> resource has been deprecated. The order line item associated with a <code>FulfillmentOrderLineItem</code> shouldn't be used to determine what to fulfill. </p>
<p>Use the <code>FulfillmentOrderLineItem</code> and <code>FulfillmentOrder</code> objects instead. An order <code>LineItem</code> represents a single line item on an order, but it doesn't represent what should be fulfilled.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/deprecate-fulfillmentorderlineitem-lineitem-field</link>
  </item>
  <item>
    <title>Metafields and BulkOperation now available for B2B</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2023-01</strong>, metafields are being added to the <code>Company</code> and <code>CompanyLocation</code> primitives for B2B. Additionally, a subset of mutations are now available for use asynchronous usage via <a href="https://shopify.dev/api/usage/bulk-operations/" target="_blank" class="body-link">BulkOperation</a>.
Learn more about B2B on <a href="https://shopify.dev" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/metafields-and-bulkoperation-now-available-for-b2b</link>
  </item>
  <item>
    <title>Simplified Metafield Querying</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-01</strong> Admin API release, you can optionally supply the <code>key</code> argument to metafield queries on resources in the format of <code>namespace.key</code> to simplify your queries on the <code>metafield</code> field. You will also be able to optionally supply the <code>keys</code> argument to the <code>metafields</code> connection as a list of strings in the same format. The key returned will also be in the format of <code>namespace.key</code>. </p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/simplified-metafield-querying</link>
  </item>
  <item>
    <title>B2B Order Import REST API</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-01</strong>, Merchants with B2B enabled on their stores can import Orders in a B2B context using the REST API.</p>
<p>Learn more about B2B order imports on <a href="https://shopify.dev/apps/b2b/import-orders" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/b2b-order-import-rest-api</link>
  </item>
  <item>
    <title>Removal of the error code `INVALID` from LocationDeactivateErrorCode</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2023-01</code>, we are removing the error code <code>INVALID</code> from <code>LocationDeactivateUserError</code> as we never return this error code when using the mutation <code>locationDeactivate</code> to deactivate a location. 
If you are explicitly checking for this error code, you should remove references to it. </p>
<p>Learn more about { Location deactivate user error codes } on <a href="https://shopify.dev/api/admin-graphql/2023-01/enums/LocationDeactivateUserErrorCode" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/removal-of-the-error-code-invalid-from-locationdeactivateerrorcode</link>
  </item>
  <item>
    <title>Serving errors on a fulfillment orders opt-out fulfillment service creation and modification</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/changelog/legacy-fulfillment-api-deprecation" target="_blank" class="body-link">As of 2022-07 API version</a>, it's mandatory for a fulfillment service to follow a fulfillment order based workflow and have <code>fulfillment_orders_opt_in</code> set to <code>true</code> in <code>FulfillmentService</code> resource. The last API version serving the legacy fulfillment APIs is <strong>2022-04</strong>.</p>
<p>With <strong>2023-01</strong> release, we add observability to the migration process. </p>
<p>Errors will be returned if a legacy (fulfillment orders opt-out) fulfillment service is intended to be created on an API version, where the legacy fulfillment APIs are not available. </p>
<p>Errors will be returned on fulfillment service create <a href="https://shopify.dev/api/admin-rest/2023-01/resources/fulfillmentservice#post-fulfillment-services" target="_blank" class="body-link">REST</a> and <a href="https://shopify.dev/api/admin-graphql/2023-01/mutations/fulfillmentServiceCreate" target="_blank" class="body-link">GraphQL</a> API calls if  <code>fulfillment_orders_opt_in</code> field is not set into <code>true</code> in the parameters. </p>
<p>Errors will be returned on fulfillment service update <a href="https://shopify.dev/api/admin-rest/2023-01/resources/fulfillmentservice#put-fulfillment-services-fulfillment-service-id" target="_blank" class="body-link">REST</a> and <a href="https://shopify.dev/api/admin-graphql/2023-01/mutations/fulfillmentServiceUpdate" target="_blank" class="body-link">GraphQL</a> API calls if the fulfillment service being changed has <code>fulfillment_orders_opt_in</code> set to <code>false</code> and the update request does not promote <code>fulfillment_orders_opt_in</code> into <code>true</code>. <code>fulfillment_orders_opt_in</code> and <code>callback_url</code> become required parameters for fulfillment service create request/mutation.</p>
<p>Follow <a href="https://shopify.dev/apps/fulfillment/migrate" target="_blank" class="body-link">Migrate to fulfillment orders</a> guide to learn how to migrate. Follow <a href="https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments" target="_blank" class="body-link">Manage fulfillments as a fulfillment service app</a> guide to learn how to fulfill fulfillment orders.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/serving-errors-on-a-fulfillment-orders-opt-out-fulfillment-service-creation-and-modification</link>
  </item>
  <item>
    <title>Shop &quot;Contact Information&quot; policy</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2023-01, Shop Policy now supports the &quot;Contact Information&quot; policy. 
This policy is intended to allow users to add regulatory information like VAT and Trade number. </p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/shop-contact-information-policy</link>
  </item>
  <item>
    <title>ShopifyQL API is now available for Developers</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version <strong>2023-01</strong>, you can use the <a href="https://shopify.dev/api/admin-graphql/2023-01/queries/shopifyqlQuery" target="_blank" class="body-link">shopifyqlQuery API</a> to query analytical data from merchant stores to create reporting apps that provide business insights for merchants on the <strong>Plus</strong> plan.</p>
<p>We are removing the <strong>unstable</strong> <code>sales</code> dataset as a part of this stable channel release.</p>
<p>Learn more about ShopifyQL on <a href="https://shopify.dev/api/shopifyql" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/shopifyql-api-is-now-available-for-developers</link>
  </item>
  <item>
    <title>New webhook topic for when a `PaymentSchedule` is due</title>
    <description><![CDATA[ <div class=""><p>As of Admin API <strong>2023-01</strong>, you can subscribe to the new <code>PAYMENT_SCHEDULES_DUE</code> webhook topic to be notified of when a <code>PaymentSchedule.due_at</code> date is reached.</p>
<p>Learn more about the <code>PAYMENT_SCHEDULES_DUE</code> topic on <a href="https://shopify.dev/api/admin-graphql/unstable/enums/WebhookSubscriptionTopic#value-paymentschedulesdue" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/new-webhook-topic-for-when-a-paymentschedule-is-due</link>
  </item>
  <item>
    <title>Asynchronous queries in Segmentation API</title>
    <description><![CDATA[ <div class=""><p>Starting in January 2023, on the 2023-01 API release, some queries could be processed and returned asynchronously based on complexity and the amount of shop data. Most queries will continue to be evaluated synchronously. This breaking change allows you to build the best possible user experience as we introduce more complex filters in Segmentation. Async queries should revolve within 5 seconds but some queries might take up to 1-2 minutes or even longer. </p>
<p>To get up to date, make sure you are handling responses returning an error code because the query must be processed asynchronously. You can follow our <a href="https://shopify.dev/apps/marketing/customer-segments/async-queries" target="_blank" class="body-link">migration guide</a>.</p>
<p>Learn more about building for asynchronous queries in our <a href="https://shopify.dev/apps/marketing/customer-segments/manage#query-a-list-of-segment-members" target="_blank" class="body-link">developer documentation</a> or visit our <a href="https://community.shopify.com/c/shopify-apis-and-sdks/segmentation-api-now-available/m-p/1465812?shpxid=e26c566f-6B4A-47DC-DF03-62FBBA559D90" target="_blank" class="body-link">API forum for questions</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/asynchronous-queries-in-segmentation-api</link>
  </item>
  <item>
    <title>Delivery Settings support for more locations</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-01</strong> in GraphQL Admin API stable version, we’ve introduced a few changes that will improve managing delivery settings for merchants with a high number of locations.</p>
<h4>Delivery Profile mutation changes</h4>
<p>We’ve added a new and more efficient way of managing locations associated with groups within a delivery profile. Instead of using the <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/DeliveryLocationGroup#connection-deliverylocationgroup-locations" target="_blank" class="body-link">locations</a> field (which always requires the full list of locations to have in a location group), you can now use the <a href="https://shopify.dev/api/admin-graphql/2023-01/input-objects/DeliveryProfileLocationGroupInput#field-deliveryprofilelocationgroupinput-locationstoadd" target="_blank" class="body-link">locationsToAdd</a> and <a href="https://shopify.dev/api/admin-graphql/2023-01/input-objects/DeliveryProfileLocationGroupInput#field-deliveryprofilelocationgroupinput-locationstoremove" target="_blank" class="body-link">locationsToRemove</a> fields to specify exactly the locations you want to adjust from a group.</p>
<h4>Delivery Profile query changes</h4>
<p>We’ve added a new argument <code>locationGroupId</code>  to <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/DeliveryProfile#field-deliveryprofile-profilelocationgroups" target="_blank" class="body-link">profileLocationGroups</a> field. You can use this to query a specific <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/DeliveryLocationGroup#field-deliverylocationgroup-id" target="_blank" class="body-link">location group</a> and fetch its paginated locations more efficiently.
We’ve added a new field <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/DeliveryProfile#connection-deliveryprofile-unassignedlocationspaginated" target="_blank" class="body-link">unassignedLocationsPaginated</a>. You can use this field to query locations that are not assigned to a delivery profile in a more efficient way.</p>
<p>We’ve added a new field <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/DeliveryLocationGroup#field-deliverylocationgroup-locationscount" target="_blank" class="body-link">locationsCount</a> to the <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/DeliveryLocationGroup" target="_blank" class="body-link">DeliveryLocationGroup</a> object.</p>
<h4>Local Pickup settings</h4>
<p>Local Pickup API introduced in the <a href="https://shopify.dev/changelog/introducing-the-local-pickup-api" target="_blank" class="body-link">2022-10 release</a> is now part of the stable version.</p>
<h4>Documentation changes</h4>
<p>In addition to the changes above, we’ve also updated documentation for <a href="https://shopify.dev/api/admin-graphql/2023-01/input-objects/DeliveryProfileInput#field-deliveryprofileinput-locationgroupstocreate" target="_blank" class="body-link">DeliveryProfileInput</a> and <a href="https://shopify.dev/api/admin-graphql/2023-01/input-objects/DeliveryProfileLocationGroupInput#field-deliveryprofilelocationgroupinput-locationstoadd" target="_blank" class="body-link">DeliveryProfileLocationGroupInput</a> in which we raise awareness regarding performance considerations and input array limits. This also includes examples for the <a href="https://shopify.dev/api/admin-graphql/2023-01/mutations/deliveryProfileCreate" target="_blank" class="body-link">deliveryProfileCreate</a>  and <a href="https://shopify.dev/api/admin-graphql/2023-01/mutations/deliveryProfileUpdate" target="_blank" class="body-link">deliveryProfileUpdate mutations</a>, where we show how to manage profiles in a more efficient way, using changes introduced in this version.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/delivery-settings-support-for-more-locations</link>
  </item>
  <item>
    <title>External Ids for Fulfillment Order Holds</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-01</strong>, you can tag fulfillment order holds with an external ID.</p>
<p>This can be used to track states within your own application on why a fulfillment order has been placed on hold and when it needs to be released. This can be done by utilizing the new <code>FulfillmentOrderHoldInput.externalId</code> field argument described <a href="https://shopify.dev/api/admin-graphql/unstable/input-objects/FulfillmentOrderHoldInput" target="_blank" class="body-link">here</a>.</p>
<p>To learn more about the fulfillment order API see the <a href="https://shopify.dev/api/admin-graphql/unstable/objects/FulfillmentOrder#field-fulfillmentorder-fulfillmentHolds" target="_blank" class="body-link">fulfillment order object documentation</a></p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/external-ids-for-fulfillment-order-holds</link>
  </item>
  <item>
    <title>Access Controls for App Metafields</title>
    <description><![CDATA[ <div class=""><p>As of the <strong>2023-01</strong> Admin API release, you can optionally specify an <code>access</code> setting when you create or update metafield definitions via the API. This new setting will allow you to control who else can access the metafields under your definition via the Admin API.</p>
<p>Note that this setting can only be set when the definition is in your own <a href="https://shopify.dev/apps/custom-data/ownership#create-a-metafield-definition-under-a-reserved-namespace" target="_blank" class="body-link">reserved namespace</a>.</p>
<p>Possible settings you can use are <code>PRIVATE</code> (no one else can access the metafields), <code>MERCHANT_READ</code> (the merchant has read-only access to the metafields via the admin UI), and <code>MERCHANT_READ_WRITE</code> (the merchant can view and edit the metafields via the admin UI).</p>
<p>Learn more about <a href="https://shopify.dev/apps/custom-data/ownership#create-a-metafield-definition-under-a-reserved-namespace" target="_blank" class="body-link">reserved namespaces</a>.</p>
<p>Learn more about <a href="https://shopify.dev/apps/custom-data/ownership" target="_blank" class="body-link">access controls</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/access-controls-for-app-metafields</link>
  </item>
  <item>
    <title>`Shop.billingAddress` uses new type, deprecates name fields</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-01</strong>, the <code>Shop.billingAddress</code> field uses a new <code>ShopAddress</code> type instead of the customer-centric <code>MailingAddress</code> type.</p>
<p>Since <code>Shop.billingAddress</code> never returns non-null first or last names, these fields have been marked as deprecated on the new <code>ShopAddress</code> type. You should stop requesting those fields as they will be removed in a later version.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/shop-billingaddress-uses-new-type-deprecates-name-fields</link>
  </item>
  <item>
    <title>Inventory States APIs</title>
    <description><![CDATA[ <div class=""><p>As of Admin API 2023-01, there are new mutations that allow you to alter the inventory quantities at a location. State quantities reserved and on_hand are adjustable through the API. In addition, there are queries to retrieve quantities for every state.</p>
<p>Details about these new endpoints are in the 
<a href="https://shopify.dev/apps/fulfillment/inventory-management-apps/quantities-states" target="_blank" class="body-link">Inventory management apps</a> section of the developer docs.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/inventory-states-apis</link>
  </item>
  <item>
    <title>`DraftOrder` and `Order` fields added to the `PaymentTerms` GraphQL object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API <strong>2023-01</strong>, you can load the associated <code>Order</code> or <code>DraftOrder</code> object when querying for a  <code>PaymentTerms</code> object.</p>
<p>Until now you could only go from <code>Order</code> or <code>DraftOrder</code> to <code>PaymentTerms</code> that relationship is now available in both directions.</p>
<p>Learn more about these new fields on <a href="https://shopify.dev/api/admin-graphql/unstable/objects/PaymentTerms#field-paymentterms-draftorder" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/draftorder-and-order-fields-added-to-the-paymentterms-graphql-object</link>
  </item>
  <item>
    <title>`PaymentTerms` field added to the `PaymentSchedule` GraphQL object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API <strong>2023-01</strong>, you can load the associated <code>PaymentTerms</code> object when querying for a  <code>PaymentSchedule</code> object.</p>
<p>Until now you could only go from <code>PaymentTerms</code> to <code>PaymentSchedule</code>, that relationship is now available in both directions.</p>
<p>Learn more about the new field on <a href="https://shopify.dev/api/admin-graphql/unstable/objects/PaymentSchedule#field-paymentschedule-paymentterms" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/paymentterms-field-added-to-the-paymentschedule-graphql-object</link>
  </item>
  <item>
    <title>Send payment reminders via email to customers with the `paymentReminderSend` endpoint</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API <strong>2023-01</strong>, you can use the <code>paymentReminderSend</code> mutation to send payment reminder emails to customers.</p>
<p>Learn more about sending payment reminders on <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/paymentReminderSend" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/send-payment-reminders-via-email-to-customers-with-the-paymentremindersend-endpoint</link>
  </item>
  <item>
    <title>Create custom objects with the new Metaobjects API</title>
    <description><![CDATA[ <div class=""><p>As of 2023-01, we're introducing a new Admin API to allow you to create custom data structures called <strong>Metaobjects</strong>.</p>
<p>Similar to metafields, which enable custom fields to be associated with core resources in Shopify, Metaobjects provide a way to create and associate entirely new data models. The API enables you to do the following:</p>
<ul>
<li>Define objects with granular access control on how merchants and apps can interact with them.</li>
<li>Create entries of custom defined objects and make them publishable to storefronts.</li>
</ul>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/create-custom-objects-with-the-new-metaobjects-api</link>
  </item>
  <item>
    <title>Add Purchasing Company to the Cart's Buyer Identity in Shopify Functions for B2B</title>
    <description><![CDATA[ <div class=""><p>As of Shopify Functions API <strong>2023-01</strong>, you can use the purchasing company as buyer identity in a B2B context to customize B2B checkout.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/add-purchasing-company-to-the-cart-s-buyer-identity-in-shopify-functions-for-b2b</link>
  </item>
  <item>
    <title>Creating Fulfillment Events with GraphQL</title>
    <description><![CDATA[ <div class=""><p>As of API version <strong>2023-01</strong>,  you can create fulfillment events using the GraphQL mutation <code>fulfillmentEventCreate</code> which was previously only accessible via the REST API.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jan 2023 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/creating-fulfillment-events-with-graphql</link>
  </item>
  <item>
    <title>Release of Re-engagement API for use with marketing automations</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API <strong>2023-01</strong>, we are giving apps the capability for Apps to integrate into our Re-engagement marketing automation.</p>
<p>You will now be able to integrate Marketing Automation Flow Actions inside our Re-engagement marketing automation workflows.
These are &quot;Browse&quot;, &quot;Cart&quot;, as well as &quot;Checkout&quot; abandonment automations. Here is the link for <a href="https://www.shopify.com/ca/blog/reengagement-automations" target="_blank" class="body-link">more detail</a> about the re-engagement suite for marketing automations.</p>
</div> ]]></description>
    <pubDate>Mon, 19 Dec 2022 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/release-of-re-engagement-api-for-use-with-marketing-automations</link>
  </item>
  <item>
    <title>Quickly format your code with the Liquid prettier plugin </title>
    <description><![CDATA[ <div class=""><p>As of today, you can format your code instantly with our <strong>Liquid prettier plugin</strong> (1.0.0) for consistent code styles so you can avoid discussing styles and focus on what matters.  Available both in-admin and locally in your favorite code editor. </p>
<p>Learn more about the Liquid Prettier Plugin on <a href="https://shopify.dev/themes/tools/liquid-prettier-plugin" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 14 Dec 2022 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/quickly-format-your-code-with-the-liquid-prettier-plugin</link>
  </item>
  <item>
    <title>We’re making it easier for app developers to test webhook topics, and streamlining webhook failure emails</title>
    <description><![CDATA[ <div class=""><p>You’ll now be able to trigger a webhook test payload to a specified destination directly from the CLI. Previously, developers needed to create a dev store and manually click around with an app installed in order to test their app logic. This manual process added significant time and friction to the development loop. With this new feature, it’ll be easy to test your subscriptions for each topic, so you can see what the payload will look like before your app is in production.</p>
<p>We’re also reducing the number of emails sent each time a webhook delivery fails. Previously, there was one email sent per attempt - which could quickly add up and become ineffective for monitoring. Now only one email will be sent for each one per consecutive string of failed attempts, over a two-day period, in order to keep your inbox clean and actionable.</p>
<p>To learn more about testing webhooks, check out the <a href="https://shopify.dev/apps/tools/cli/commands#webhook-trigger" target="_blank" class="body-link">Shopify CLI command reference</a>.
If you have any questions about these changes, contact <a href="https://help.shopify.com/en/questions/partners#/" target="_blank" class="body-link">Partner Support</a> with any questions.</p>
</div> ]]></description>
    <pubDate>Tue, 13 Dec 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/we-re-making-it-easier-for-app-developers-to-test-webhook-topics-and-streamlining-webhook-failure-emails</link>
  </item>
  <item>
    <title>Recent update to the App Design Guidelines</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/apps/design-guidelines/content#voice-tone" target="_blank" class="body-link">Voice and tone</a> section of the App Design Guidelines has been shortened, with a new link to the complete Polaris documentation for voice and tone.</p>
</div> ]]></description>
    <pubDate>Fri, 09 Dec 2022 18:28:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/recent-update-to-the-app-design-guidelines</link>
  </item>
  <item>
    <title>Adding webhooks to the Subscription Billing Cycles API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2023-01, you can use webhooks with subscription billing cycles API. </p>
<p>We introduced <code>subscription_billing_cycle_edits_create</code>, <code>subscription_billing_cycle_delete</code> and <code>subscription_billing_cycle_edits_update</code> to <code>WebhookSubscriptionTopic</code>.</p>
<p>We also added some new error codes to <code>SubscriptionBillingAttemptUserError</code> and <code>SubscriptionBillingCycleUserError</code>.</p>
<p>Learn more about the Subscription Billing Cycles API on <a href="https://shopify.dev/apps/subscriptions/billing-cycles" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 09 Dec 2022 17:29:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/adding-webhooks-to-the-subscription-billing-cycles-api</link>
  </item>
  <item>
    <title>Online store media localizable to different languages &amp; markets</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/api/admin-graphql/2022-10/queries/translatableResources" target="_blank" class="body-link">Localization API</a> now supports online store media as a localizable resource. Metafield file references and &quot;image&quot; type theme sections can now be translated and localized to different markets using the <code>translationsRegister</code> mutation.</p>
<p>Note: media localization is currently only supported for theme sections &amp; metafield file references. Product media localization is not yet supported.</p>
</div> ]]></description>
    <pubDate>Thu, 08 Dec 2022 22:25:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/online-store-media-localizable-to-different-languages-markets</link>
  </item>
  <item>
    <title>Plus merchants can now start building with Shopify Functions</title>
    <description><![CDATA[ <div class=""><p>Starting today, Shopify Functions are available to Shopify Plus brands who are not leveraging a <code>checkout.liquid</code> customization. This means that Plus merchants can start building their own product or order discount Functions and deploy them with a custom app.  </p>
<p>Please note that the rollout to eligible Plus shops will take a couple of weeks to complete. Plus brands that leverage a <code>checkout.liquid</code> customization are not eligible to use Functions at this point in time. </p>
<p>Learn more about Shopify Functions <a href="https://shopify.dev/api/functions" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 06 Dec 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/plus-merchants-can-now-start-building-with-shopify-functions</link>
  </item>
  <item>
    <title>Payment properties deprecation on the Admin API Order resource</title>
    <description><![CDATA[ <div class=""><p>The following properties on the REST and GraphQL Admin API's <a href="https://shopify.dev/api/admin-rest/unstable/resources/order" target="_blank" class="body-link">Order</a> resource, including webhooks, are deprecated:</p>
<ul>
<li><code>gateway</code></li>
<li><code>payment_details</code></li>
<li><code>processing_method</code></li>
</ul>
<p>The <code>gateway</code> and <code>payment_details</code> properties are available on the corresponding <a href="https://shopify.dev/api/admin-rest/unstable/resources/transaction" target="_blank" class="body-link"><code>Transaction</code></a> resources.</p>
<p>The <code>processing_method</code> property is no longer available due to orders supporting multiple transactions with various processing methods, the field contained incorrect data. The values it provided can be inferred from various sources:</p>
<ul>
<li><code>free</code>. This is accessible through the order totals.</li>
<li><code>checkout</code> can be determined by the presence of <code>checkout_id</code> on an order.</li>
<li><code>express</code>, <code>direct</code>, <code>offsite</code>, and <code>manual</code> can be inferred through the <code>OrderTransaction</code> <code>gateway</code> and <code>payment_details</code> properties.</li>
</ul>
<p>These deprecated properties will be removed from unstable in January 2023. The change will be made official in the 2023-04 Admin API version.</p>
</div> ]]></description>
    <pubDate>Tue, 06 Dec 2022 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-04</category>
    <link>https://shopify.dev/changelog/payment-properties-deprecation-on-the-admin-api-order-resource</link>
  </item>
  <item>
    <title>Updates to the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>On <strong>December 6</strong>, we released new designs that make it easier for developers to showcase the value of their apps and for merchants to discover the right apps for their businesses, including:</p>
<ul>
<li>Optimized app listing</li>
<li>Personalized home page</li>
<li>Educational category pages</li>
<li>New story pages</li>
</ul>
<p>We will continue to build in public, with new features rolling out over the upcoming weeks.</p>
</div> ]]></description>
    <pubDate>Tue, 06 Dec 2022 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-to-the-shopify-app-store</link>
  </item>
  <item>
    <title>Add Due on fulfillment to payment terms type</title>
    <description><![CDATA[ <div class=""><p>As of the Admin API <strong>2023-01</strong> release candidate, Due on Fulfillment is now a Payment Terms type available to all 3rd party apps. </p>
<p>With this change, apps can create and update orders and draft orders with payment terms whose due date will be set upon fulfillment of the order. The newly added <code>FULFILLMENT</code> type value can be found on the <strong>PaymentTermsType ENUM</strong> object.</p>
</div> ]]></description>
    <pubDate>Fri, 02 Dec 2022 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/add-due-on-fulfillment-to-payment-terms-type</link>
  </item>
  <item>
    <title>Updates to displaying accelerated checkout buttons</title>
    <description><![CDATA[ <div class=""><p>Accelerated checkout buttons will now always appear in checkout even if customers have previously seen them in cart. This change will gradually roll out to eligible shops over the next two weeks.</p>
<p>To learn more, refer to <a href="https://shopify.dev/themes/pricing-payments/accelerated-checkout" target="_blank" class="body-link">accelerated checkout buttons</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Dec 2022 17:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-displaying-accelerated-checkout-buttons</link>
  </item>
  <item>
    <title>The partner dashboard now includes clear steps to earn achievements that drive merchant installs</title>
    <description><![CDATA[ <div class=""><p>This spring, we added app highlights to app store listings to help merchants find high quality apps and make better informed decisions. These highlights show tested indicators of merchant success, including its impact to storefront performance, how it works with other Shopify features, and integration with Admin.</p>
<p>Starting December 1, we’re providing visibility into how to achieve these highlights within the Distribution section of the Partner Dashboard. Initial data shows that app highlights are a major factor for merchant exploration and installation.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Dec 2022 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-partner-dashboard-now-includes-clear-steps-to-earn-achievements-that-drive-merchant-installs</link>
  </item>
  <item>
    <title>Rename authorV2 and enable author as nullable</title>
    <description><![CDATA[ <div class=""><p>As of 2023-01, the <code>authorV2</code> field is being removed from the Storefront API. It was previously used to reference nullable author scenarios. As a result, the following changes are being made:</p>
<ul>
<li><code>authorV2</code> will now be deprecated.</li>
<li><code>author</code> will be used instead, and will now be a nullable field.</li>
</ul>
<p>These changes will help improve consistency of the API and avoid confusion when using these fields.</p>
</div> ]]></description>
    <pubDate>Wed, 30 Nov 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/rename-authorv2-and-enable-author-as-nullable</link>
  </item>
  <item>
    <title>Governorates now available for Kuwait shipping zones</title>
    <description><![CDATA[ <div class=""><p>Merchants based in Kuwait can now add governorates to their shipping zones. </p>
<p>As a result, merchants in this region can give their customers the opportunity to provide more accurate address information at checkout as well as set up more specific shipping zones for the governorates that they add. </p>
</div> ]]></description>
    <pubDate>Wed, 30 Nov 2022 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/governorates-now-available-for-kuwait-shipping-zones</link>
  </item>
  <item>
    <title>We've updated how we calculate the 'Speed Tested' app highlight</title>
    <description><![CDATA[ <div class=""><p>The 'Speed Tested' app highlight in the app store has been adjusted as of November 17th to better reflect your app's current performance, as well as impact on checkout experience. </p>
<p>We continue to measure how apps affect store performance using Google Lighthouse, but we now focus on your app's affect from recent installations, as opposed to all historical installations. This change gives merchants more accurate info about which apps perform quickly on their stores. As developers improve their app's performance, those improvements will be reflected more quickly in the app highlights.</p>
<p>For a shipping app to be eligible to receive the 'Speed Tested' app highlight, we will now consider its response time and error rate for shipping rate requests. Because there is some variability in performance between checkouts, we will only feature apps with a sufficient number of installs and requests in order to ensure a stable measurement.</p>
</div> ]]></description>
    <pubDate>Fri, 18 Nov 2022 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/we-ve-updated-how-we-calculate-the-speed-tested-app-highlight</link>
  </item>
  <item>
    <title>CLI 2.0 to be sunset on May 31, 2023</title>
    <description><![CDATA[ <div class=""><p>With the latest addition of <a href="https://shopify.dev/changelog/migrating-theme-commands-over-to-cli-3-0" target="_blank" class="body-link">theme support to Shopify CLI 3.x</a>, Shopify CLI 2.x has been scheduled to sunset on May 31, 2023. Learn more about <a href="https://shopify.dev/apps/tools/cli/migrate" target="_blank" class="body-link">how to migrate over to Shopify CLI 3.x here</a>. </p>
<p>Note that app and extension creation will sunset a month earlier on April 28, 2023. </p>
</div> ]]></description>
    <pubDate>Wed, 09 Nov 2022 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/cli-2-0-to-be-sunset-on-may-31-2023</link>
  </item>
  <item>
    <title>Shopify Scripts now available on Storefront API Cart </title>
    <description><![CDATA[ <div class=""><p>You can now use<a href="https://help.shopify.com/en/manual/checkout-settings/script-editor/shopify-scripts" target="_blank" class="body-link"> Line Item Shopify Scripts</a> with the <a href="https://shopify.dev/custom-storefronts/cart" target="_blank" class="body-link">Storefront API Cart </a>to create discounts that are applied to a cart and reflected in the API response.</p>
</div> ]]></description>
    <pubDate>Tue, 08 Nov 2022 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-scripts-now-available-on-storefront-api-cart</link>
  </item>
  <item>
    <title>Recent updates to the App Design Guidelines</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/apps/design-guidelines" target="_blank" class="body-link">App Design Guidelines</a> have been updated to improve clarity on high quality app experiences.</p>
<p>In the <a href="https://shopify.dev/apps/design-guidelines/navigation#app-nav" target="_blank" class="body-link">app navigation</a> section, it is now mandatory to use App Bridge’s <a href="https://shopify.dev/apps/tools/app-bridge/actions/menu/navigation" target="_blank" class="body-link">Navigation Menu</a> to integrate with the Shopify admin navigation experience if your app has different sections.</p>
<p>The existing requirement in the <a href="https://shopify.dev/apps/design-guidelines/layout#responsive-layout-grid" target="_blank" class="body-link">responsive grid</a> section that apps must have responsive layouts for all device sizes has been moved to a callout card to make it more noticeable.</p>
<p>The wording of one callout card in the <a href="https://shopify.dev/apps/design-guidelines/layout#single-column-layout" target="_blank" class="body-link">single-column layout</a> section has been updated to make it clear that tables should only use the full width page if they have enough columns to require the extra space. Otherwise, they should use normal width pages.</p>
</div> ]]></description>
    <pubDate>Mon, 07 Nov 2022 15:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/recent-updates-to-the-app-design-guidelines</link>
  </item>
  <item>
    <title>Developers can now choose their own app store categories</title>
    <description><![CDATA[ <div class=""><p>Starting November 1, 2022, you can self-categorize your app once using the app submission form in the Partner Dashboard. Categories can be chosen by selecting up to two tags from our updated app categories that best describe the main function of your app. You can later appeal to change your app’s categorization if its capabilities change.</p>
<p>Learn more on <a href="https://shopify.dev/apps/store/categories" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Nov 2022 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developers-can-now-choose-their-own-app-store-categories</link>
  </item>
  <item>
    <title>Shopify Functions begins rollout to developers and merchants</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/api/functions" target="_blank" class="body-link">Shopify Functions</a> are available for developers to start customizing the backend logic of discounts. All non Shopify Plus merchants are able to install your apps today. Shopify Functions are not yet available to Shopify Plus merchants. We will provide an update when Functions become generally available to Plus brands. </p>
<p><strong>Discount the entire cart</strong> with <a href="https://shopify.dev/api/functions/reference/order-discounts" target="_blank" class="body-link">order discounts</a> applying a fixed amount of percentage off.</p>
<p><strong>Discount specific products</strong> with <a href="https://shopify.dev/api/functions/reference/product-discounts" target="_blank" class="body-link">product discounts</a> applying a fixed amount or percentage off.</p>
<p>Learn more about Shopify Functions on <a href="https://shopify.dev/api/functions" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Thu, 27 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-functions-begins-rollout-to-developers-and-merchants</link>
  </item>
  <item>
    <title>Subscription Shipping Rate Name to Use Actual Rate Name</title>
    <description><![CDATA[ <div class=""><p>Merchants can create selling plan specific shipping rates (for subscriptions) and have those names from those rates surface in checkout. </p>
<p>We've added new functionality to replace the default subscription rate names (ie. &quot;subscription shipping&quot;, &quot;subscription pickup&quot;,  &quot;subscription local&quot;) to now expose the merchant defined rate names during checkout, admin order and in the email notification. If merchants do not create selling plan specific shipping rates then the general rate name will be surfaced in checkout.</p>
</div> ]]></description>
    <pubDate>Thu, 27 Oct 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/subscription-shipping-rate-name-to-use-actual-rate-name</link>
  </item>
  <item>
    <title>Automatic GIF conversion to animated WebP</title>
    <description><![CDATA[ <div class=""><p>We've implemented an automatic GIF to animated WebP conversion process in our image processing pipeline, which improves performance by reducing delivered bytes by up to 50%.</p>
<p>For more information, please visit <a href="https://help.shopify.com/en/manual/online-store/images/theme-images#automatic-image-compression-and-format-selection" target="_blank" class="body-link">Shopify Help Center </a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Oct 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/automatic-gif-conversion-to-animated-webp</link>
  </item>
  <item>
    <title>Migrating theme commands over to CLI 3.0</title>
    <description><![CDATA[ <div class=""><p>Support for themes has been added to Shopify CLI 3.20. In addition to migrating over theme commands, Shopify CLI 3.20 now includes the ability to integrate Shopify CLI into your CI/CD pipeline to perform actions like pushing, pulling and publishing a theme. Most theme commands on Shopify CLI 3.20 will continue to work the same with the exception of a few differences outlined <a href="https://shopify.dev/themes/tools/cli/migrate" target="_blank" class="body-link">here</a>. More information on using Shopify CLI in a CI/CD pipeline can be found <a href="https://shopify.dev/themes/tools/cli/ci-cd" target="_blank" class="body-link">here</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 26 Oct 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/migrating-theme-commands-over-to-cli-3-0</link>
  </item>
  <item>
    <title>Subscriptions shippingOptions deprecated by deliveryOptions</title>
    <description><![CDATA[ <div class=""><p>In the API version <code>2022-10</code>, we included the expanded support of new delivery options for Subscriptions: Local Delivery and Pickup.</p>
<p>As of API version <code>2023-01</code>, we are deprecating the old <code>shippingOptions</code> field of <code>SubscriptionDraft</code> in favor of the new <code>deliveryOptions</code> field which supports Local Delivery and Pickup.</p>
<p>Learn more about <code>deliveryOptions</code> on <a href="https://shopify.dev/api/admin-graphql/2023-01/objects/SubscriptionDraft#field-subscriptiondraft-deliveryoptions" target="_blank" class="body-link">Shopify.dev - SubscriptionDraft</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Oct 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/subscriptions-shippingoptions-deprecated-by-deliveryoptions</link>
  </item>
  <item>
    <title>Introducing the Video Setting</title>
    <description><![CDATA[ <div class=""><p>We've added the <a href="https://shopify.dev/themes/architecture/settings/input-settings#video" target="_blank" class="body-link">video setting</a>. You can use the video setting to surface videos uploaded to the <a href="https://www.shopify.com/admin/settings/files" target="_blank" class="body-link">Files Page</a> in your theme.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Oct 2022 18:02:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-the-video-setting</link>
  </item>
  <item>
    <title>Reconcile payments made using third party providers with Payment ID</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2023-01</strong> a unique ID is sent by Shopify to payment providers when a customer pays at checkout. Use this ID to match order information between Shopify and your payment provider. An order can have more than one Payment ID. It only includes successful or pending payments. It does not include captures and refunds.</p>
<p>Steps:</p>
<ol>
<li>From your Shopify admin, go to <a href="https://www.shopify.com/admin/orders" target="_blank" class="body-link">Orders</a>.</li>
<li><a href="https://help.shopify.com/en/manual/orders/search-view-print-orders#filter-orders-using-custom-terms" target="_blank" class="body-link">Search using the custom term</a> <strong>payment_id:</strong> and the payment ID value. For example <strong>payment_id:xxx</strong>.</li>
<li>Alternatively, you can search using the <strong>payment_id</strong> directly, without any explicit filters.</li>
<li>Click the order.</li>
</ol>
</div> ]]></description>
    <pubDate>Fri, 14 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/reconcile-payments-made-using-third-party-providers-with-payment-id</link>
  </item>
  <item>
    <title>Deprecating custom and standardized product type in favor of product category; will be used for sales tax purposes</title>
    <description><![CDATA[ <div class=""><p>We’ve added a new <code>productCategory</code> field to the <code>Product</code> object. The product category specifies a category in the Shopify Product Taxonomy.</p>
<p>We’re deprecating several fields:</p>
<ul>
<li>The <code>standardizedProductType</code> field is deprecated in favor of <code>productCategory</code>.</li>
<li>The <code>customProductType</code> field is deprecated in favor of <code>productType</code>.</li>
</ul>
<p>Previously, the product category data was not powering any platform features. Now, the product category will be used to determine the rate at which a product is taxed in the US. In the future, it will apply to how products are taxed in other regions/markets.</p>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/latest/objects/Product" target="_blank" class="body-link"><code>Product</code></a> object or learn more about Product Tax Codes <a href="https://help.shopify.com/manual/taxes/shopify-tax/product-tax-codes" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Wed, 12 Oct 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/deprecating-custom-and-standardized-product-type-in-favor-of-product-category-will-be-used-for-sales-tax-purposes</link>
  </item>
  <item>
    <title>Cookie policy update and new Cookies added</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://www.shopify.com/ca/legal/cookies" target="_blank" class="body-link">Shopify cookies policy</a> has been updated. </p>
<p><strong>Breaking change</strong></p>
<p>In addition to the policy update, we've added the following <a href="https://www.shopify.com/ca/legal/cookies?shpxid=c9bb1ac3-2295-44BD-F214-883DDC2EEB47#:~:text=identity%2Dstate-,Used%20in%20connection%20with%20customer%20authentication,-24h" target="_blank" class="body-link">three required cookies</a> to the <strong>Cookies Necessary for the Functioning of the Store</strong> cookie list: </p>
<ul>
<li><code>identity-state</code></li>
<li><code>identity-state-&lt;&lt;token&gt;&gt;</code></li>
<li><code>identity_customer_account_number</code></li>
</ul>
<p>These cookies are required to use the new customer account log-in, which some merchants have already enabled. Without them, customers won't be able to log into the store. All cookies management applications, including GDPR-related apps, must update their application as soon as possible and not block these cookies.</p>
<p><strong>Please be noted:</strong></p>
<ul>
<li>The difference between <code>-</code> and <code>_</code>. The two identity state cookies names are:</li>
</ul>
<p> <code>identity-state</code> and <code>identity-state-&lt;&lt;token&gt;&gt;</code></p>
<p> NOT</p>
<p> <code>identity_state</code> and <code>identity_state_&lt;&lt;token&gt;&gt;</code></p>
<ul>
<li>The <code>token</code> in the real name of  <code>identity-state-&lt;&lt;token&gt;&gt;</code> is a random string, like <code>identity-state-fsdf25fxg34se69d</code>. The name does not contain <code>&lt;</code> or <code>&gt;</code>. It means, your app should not block cookies whose name is similar to <code>identity-state-fsdf25fxg34se69d</code> . This also applies to <code>checkout_session_token_&lt;&lt;token&gt;&gt;</code>. Your app should not block cookies whose name is similar to <code>checkout_session_token_fsdf25fxg34se69d</code> .</li>
</ul>
<p>We've also added <a href="https://www.shopify.com/ca/legal/cookies#:~:text=session-,customer_auth_provider,session,-Shopify%E2%80%99s%20websites" target="_blank" class="body-link">two cookies</a> to the <strong>Reporting and Analytics</strong> cookie list: </p>
<ul>
<li><code>customer_auth_provider</code></li>
<li><code>customer_auth_session_created_at</code></li>
</ul>
<p>These cookies are used to provide additional data for Shopify analytics.</p>
</div> ]]></description>
    <pubDate>Tue, 11 Oct 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/cookie-policy-update-and-new-cookies-added</link>
  </item>
  <item>
    <title>Storefront API allows for cross-origin resource sharing</title>
    <description><![CDATA[ <div class=""><p>Requests made to Storefront API from SSL provisioned domains that are registered in the domains list on the Admin Panel will now return a two new headers:</p>
<p><code>Access-Control-Allow-Credentials: true</code>
<code>Access-Control-Allow-Origin: ${origin_domain}</code></p>
<p>With that mechanism in place, Storefront API securely shares resources such as cookies with the browser, allowing for cart events originated from API Clients other than Online Store to be accounted for in the conversion metrics out of the box, as long as the origin request complies with CORS policy.</p>
</div> ]]></description>
    <pubDate>Thu, 06 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/storefront-api-allows-for-cross-origin-resource-sharing</link>
  </item>
  <item>
    <title>Introducing the Web Pixel API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2022-10</strong>, you can use Web Pixel Extensions to connect your marketing and analytics pixels to a merchant's online store for collecting customer events.</p>
<p>Learn more about Web Pixels on <a href="https://shopify.dev/apps/pixels" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 03 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/introducing-the-web-pixel-api</link>
  </item>
  <item>
    <title>Checkout Extensibility begins rollout to developers and Shopify Plus Merchants</title>
    <description><![CDATA[ <div class=""><p><a href="https://shopify.dev/apps/checkout" target="_blank" class="body-link">Checkout extensibility</a> capabilities are available for developers to start building apps for checkout customizations. We’re gradually rolling out checkout extensibility to Shopify Plus merchants so they can install and use your apps in production. Merchants will be able to discover apps with checkout UI extensions via the checkout editor. </p>
<p><strong>Add new functionality</strong> with <a href="https://shopify.dev//api/checkout-extensions/checkout" target="_blank" class="body-link">checkout UI extensions </a>in various places in checkout and Shop Pay. Use these extensions to add in unique elements like product offers, custom fields, custom banners and more that are adaptable to various flows, creating a unified experience for buyers wherever they choose to checkout.</p>
<p><strong>Track events</strong> using the new <a href="https://shopify.dev/apps/pixels" target="_blank" class="body-link">web pixel extension</a>, to provide customer events that merchants can subscribe to. Apps will be able to hook into the events in the Pixels API, including checkout, to allow merchants access privacy-compliant customer behavior analytics.</p>
<p>Merchants are now able to use the new <a href="https://shopify.dev/api/examples/checkout-branding" target="_blank" class="body-link">checkout branding API</a> to customize the styling, to truly make checkout feel like their own, adapting the visual appearance such as the logo, font, and colors. Checkout UI extensions will inherit the brand settings from this API, so your app automatically reflects a brand’s style.</p>
<p>To learn more about building apps for checkout, please review our <a href="https://shopify.dev/apps/checkout" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 03 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/checkout-extensibility-begins-rollout-to-developers-and-shopify-plus-merchants</link>
  </item>
  <item>
    <title>Introducing the Checkout Profiles API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2022-10</strong>, you can query for a <strong>CheckoutProfile</strong>, or mulitple <strong>CheckoutProfiles</strong>, providing insights about existing checkout profiles on your shop.</p>
<p>Learn more about Checkout Profiles on <a href="https://shopify.dev/apps/checkout" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 03 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/introducing-the-checkout-profiles-api</link>
  </item>
  <item>
    <title>New mutations marketingActivityCreateExternal and marketingActivityUpdateExternal are available</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2022-10</strong>, you can now use <em>marketingActivityCreateExternal</em> and <em>marketingActivityUpdateExternal</em> mutations to create and manage marketing activities, without the need to implement a marketing activity app extension.</p>
<p>These endpoints will allow our app partners to more easily link their marketing efforts, and accompanying tracking information to Shopify so our merchants can have a more complete picture of their marketing performance.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-mutations-marketingactivitycreateexternal-and-marketingactivityupdateexternal-are-available</link>
  </item>
  <item>
    <title>Full markets and multi-currency support for draft orders</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2022-10</strong>, we’ve added full support for markets and multi-currency on draft orders. </p>
<p>You will now be able to specify the market region that should apply to a draft order, inheriting your configured market settings such as pricing. The selected market region’s attributes will be available on their respective objects.</p>
<p>Additionally, we have built out full support for multi-currency in draft orders. You will now be able to query a new set of fields that expose all monetary values relevant to a draft order in multi-currency. As part of these changes, you will now be able to use all draft order payment completion flows in multi-currency. </p>
<p>Learn more about these fields on <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/DraftOrder" target="_blank" class="body-link">DraftOrder</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/DraftOrderLineItem" target="_blank" class="body-link">DraftOrderLineItem</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/DraftOrderAppliedDiscount" target="_blank" class="body-link">DraftOrderAppliedDiscount</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/input-objects/DraftOrderInput" target="_blank" class="body-link">DraftOrderInput</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/CalculatedDraftOrder" target="_blank" class="body-link">CalculatedDraftOrder</a> and <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/CalculatedDraftOrderLineItem" target="_blank" class="body-link">CalculatedDraftOrderLineItem</a> reference docs.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/full-markets-and-multi-currency-support-for-draft-orders</link>
  </item>
  <item>
    <title>New mutation inventoryBulkToggleActivation now available</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, we are releasing a new mutation <code>inventoryBulkToggleActivation</code>.</p>
<p>This new mutation will allow you to bulk activate or deactivate a single inventory item at many locations, with a maximum of 250 locations at a time.</p>
<p>Instead of having to call <a href="https://shopify.dev/api/admin-graphql/latest/mutations/inventoryDeactivate" target="_blank" class="body-link">inventoryActivate</a> or <a href="https://shopify.dev/api/admin-graphql/latest/mutations/inventoryDeactivate" target="_blank" class="body-link">inventoryDeactivate</a> for each location, you can now do that in bulk for a single inventory item.</p>
<p>Learn more about the inventoryBulkToggleActivation mutation on <a href="https://shopify.dev/api/admin-graphql/latest/mutations/inventoryBulkToggleActivation" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-mutation-inventorybulktoggleactivation-now-available</link>
  </item>
  <item>
    <title>Apps can now request access to necessary protected data</title>
    <description><![CDATA[ <div class=""><p>As of the 2022-10 release, APIs will <a href="https://shopify.dev/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">redact customer personal data by default</a> and you will be able to request access to protected customer data and protected customer fields through your <a href="https://www.shopify.com/partners" target="_blank" class="body-link">Partner Dashboard</a>. You will need approval to access protected customer data on any store that isn't a development store. </p>
<p>Apps that require <strong>protected customer data</strong> (data that relates directly to a customer or prospective customer) must implement our <a href="https://shopify.dev/apps/store/data-protection/protected-customer-data#protected-customer-data-requirements" target="_blank" class="body-link">data protection requirements</a>, including informing merchants of your app’s data use and purpose, applying customer consent decisions, opt-out requests, and more. </p>
<p>Apps that require <strong>protected customer fields</strong> (individual configuration and approval) in addition to approval for protected customer data will need to abide by additional requirements, including encrypting your data back ups, keeping test and production data separate, and more.</p>
<p>For more information, please visit our <a href="https://shopify.dev/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/apps-can-now-request-access-to-necessary-protected-data</link>
  </item>
  <item>
    <title>Introducing the Subscription Billing Cycles API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-10, we've introduced Subscription Billing Cycles to the existing Subscriptions Contract APIs so that you can make changes to an upcoming order without affecting the base subscription contract. </p>
<p>This includes: </p>
<ul>
<li>The ability to skip a future order.</li>
<li>The ability to make changes to the line items of an upcoming order, including any additions, quantity changes, or removals.</li>
<li>The ability to combine the orders of one or more subscriptions contracts in order to save on shipping costs.</li>
</ul>
<p>Please note that with the introduction of Subscriptions Billing Cycles API, <code>SubscriptionBillingAttemptCreate</code> will create a billing attempt for the billing cycle at the <code>origin_time</code> if specified. Otherwise, it will be created for the current billing cycle by default. </p>
<p>Alternatively, you can also use <code>BillingCycleSelector</code> to select the billing cycle you wish to create billing attempt for.</p>
<p>Learn more about <a href="https://shopify.dev/apps/subscriptions/billing-cycles" target="_blank" class="body-link">the API on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/introducing-the-subscription-billing-cycles-api</link>
  </item>
  <item>
    <title>New field `marketing_sms_consent_enabled_at_checkout` added to Shop object</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version 2022-10, a new field <code>marketing_sms_consent_enabled_at_checkout</code> has been added to the Shop object in the <a href="https://shopify.dev/api/admin-rest/2022-10/resources/shop" target="_blank" class="body-link">REST</a> Admin APIs. </p>
<p>The field is also present on the <a href="https://shopify.dev/api/admin-rest/2022-10/resources/webhook" target="_blank" class="body-link">&quot;shop/update&quot; webhook</a>, which now will trigger when the <code>marketing_sms_consent_enabled_at_checkout</code> state of a shop changes.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-field-marketing_sms_consent_enabled_at_checkout-added-to-shop-object</link>
  </item>
  <item>
    <title>New mutations to manage Locations</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, we are adding mutations so you can manage your locations using GraphQL. This will allow you to add, edit, deactivate, re-activate and delete locations. </p>
<p>Learn more about Locations on <a href="https://shopify.dev/api/admin-graphql/latest/objects/Location" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-mutations-to-manage-locations</link>
  </item>
  <item>
    <title>New Admin GraphQL APIs for B2B are available in 2022-10</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, we are adding queries, objects, and mutations to introspect and manage B2B primitives notably Companies, Company Locations, and Company Contacts with associated Roles.
Learn more about B2B on <a href="https://shopify.dev" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-admin-graphql-apis-for-b2b-are-available-in-2022-10</link>
  </item>
  <item>
    <title>Create B2B Draft Orders via PurchasingEntityInput</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, you can use the purchasing entity input field to create and update B2B draft orders.</p>
<p>This will attach company, location and contact to the draft order.</p>
<p>The field can also be used to create and update a traditional D2C draft order, requiring only a customer ID.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-10/input-objects/PurchasingEntityInput" target="_blank" class="body-link">PurchasingEntityInput</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/create-b2b-draft-orders-via-purchasingentityinput</link>
  </item>
  <item>
    <title>Duplicate and Create Inventory Reservations in Draft Orders</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, you will get access to new fields and mutations for draft orders.</p>
<p>In particular, you will now be able to:</p>
<ul>
<li>Duplicate drafts</li>
<li>Creating drafts from orders</li>
<li>Execute bulk operations such as add/remove tags and deleting drafts</li>
<li>Create drafts with inventory reservations</li>
<li>Access previously hidden fields, such as metafields, on drafts and line items</li>
</ul>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-10/mutations/draftOrderCreate" target="_blank" class="body-link">DraftOrderCreate</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/duplicate-and-create-inventory-reservations-in-draft-orders</link>
  </item>
  <item>
    <title>New `selected_delivery_option` field in cart</title>
    <description><![CDATA[ <div class=""><p>We have added the <code>selected_delivery_option</code> as part of the <code>CartDeliveryGroup</code> as well as the <code>handle</code> field as part of the <code>CartDeliveryOption</code> in the cart.</p>
<p>The <code>selected_delivery_option</code>  field represents the selected delivery option in a delivery group. The <code>handle</code> field represents a unique identifier for the delivery option.</p>
<p>A default <code>CartDeliveryOption</code> is saved as the <code>selected_delivery_option</code> in each <code>CartDeliveryGroup</code> available.</p>
<p>We also added the <code>cartSelectedDeliveryOptionsUpdate</code> mutation, allowing you to update the <code>selected_delivery_option</code>s of each of your delivery groups.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-selected_delivery_option-field-in-cart</link>
  </item>
  <item>
    <title>New mutations marketingActivityCreateExternal and marketingActivityUpdateExternal are available</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2022-10</strong>, you can now use <em>marketingActivityCreateExternal</em> and <em>marketingActivityUpdateExternal</em> mutations to create and manage marketing activities, without the need to implement a marketing activity app extension.</p>
<p>These endpoints will allow our app partners to more easily link their marketing efforts, and accompanying tracking information to Shopify so our merchants can have a more complete picture of their marketing performance.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-mutations-marketingactivitycreateexternal-and-marketingactivityupdateexternal-are-available</link>
  </item>
  <item>
    <title>Full markets and multi-currency support for draft orders</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <strong>2022-10</strong>, we’ve added full support for markets and multi-currency on draft orders. </p>
<p>You will now be able to specify the market region that should apply to a draft order, inheriting your configured market settings such as pricing. The selected market region’s attributes will be available on their respective objects.</p>
<p>Additionally, we have built out full support for multi-currency in draft orders. You will now be able to query a new set of fields that expose all monetary values relevant to a draft order in multi-currency. As part of these changes, you will now be able to use all draft order payment completion flows in multi-currency. </p>
<p>Learn more about these fields on <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/DraftOrder" target="_blank" class="body-link">DraftOrder</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/DraftOrderLineItem" target="_blank" class="body-link">DraftOrderLineItem</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/DraftOrderAppliedDiscount" target="_blank" class="body-link">DraftOrderAppliedDiscount</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/input-objects/DraftOrderInput" target="_blank" class="body-link">DraftOrderInput</a>, <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/CalculatedDraftOrder" target="_blank" class="body-link">CalculatedDraftOrder</a> and <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/CalculatedDraftOrderLineItem" target="_blank" class="body-link">CalculatedDraftOrderLineItem</a> reference docs.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/full-markets-and-multi-currency-support-for-draft-orders</link>
  </item>
  <item>
    <title>New mutation inventoryBulkToggleActivation now available</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, we are releasing a new mutation <code>inventoryBulkToggleActivation</code>.</p>
<p>This new mutation will allow you to bulk activate or deactivate a single inventory item at many locations, with a maximum of 250 locations at a time.</p>
<p>Instead of having to call <a href="https://shopify.dev/api/admin-graphql/latest/mutations/inventoryDeactivate" target="_blank" class="body-link">inventoryActivate</a> or <a href="https://shopify.dev/api/admin-graphql/latest/mutations/inventoryDeactivate" target="_blank" class="body-link">inventoryDeactivate</a> for each location, you can now do that in bulk for a single inventory item.</p>
<p>Learn more about the inventoryBulkToggleActivation mutation on <a href="https://shopify.dev/api/admin-graphql/latest/mutations/inventoryBulkToggleActivation" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-mutation-inventorybulktoggleactivation-now-available</link>
  </item>
  <item>
    <title>Apps can now request access to necessary protected data</title>
    <description><![CDATA[ <div class=""><p>As of the 2022-10 release, APIs will <a href="https://shopify.dev/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">redact customer personal data by default</a> and you will be able to request access to protected customer data and protected customer fields through your <a href="https://www.shopify.com/partners" target="_blank" class="body-link">Partner Dashboard</a>. You will need approval to access protected customer data on any store that isn't a development store. </p>
<p>Apps that require <strong>protected customer data</strong> (data that relates directly to a customer or prospective customer) must implement our <a href="https://shopify.dev/apps/store/data-protection/protected-customer-data#protected-customer-data-requirements" target="_blank" class="body-link">data protection requirements</a>, including informing merchants of your app’s data use and purpose, applying customer consent decisions, opt-out requests, and more. </p>
<p>Apps that require <strong>protected customer fields</strong> (individual configuration and approval) in addition to approval for protected customer data will need to abide by additional requirements, including encrypting your data back ups, keeping test and production data separate, and more.</p>
<p>For more information, please visit our <a href="https://shopify.dev/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/apps-can-now-request-access-to-necessary-protected-data</link>
  </item>
  <item>
    <title>Introducing the Subscription Billing Cycles API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-10, we've introduced Subscription Billing Cycles to the existing Subscriptions Contract APIs so that you can make changes to an upcoming order without affecting the base subscription contract. </p>
<p>This includes: </p>
<ul>
<li>The ability to skip a future order.</li>
<li>The ability to make changes to the line items of an upcoming order, including any additions, quantity changes, or removals.</li>
<li>The ability to combine the orders of one or more subscriptions contracts in order to save on shipping costs.</li>
</ul>
<p>Please note that with the introduction of Subscriptions Billing Cycles API, <code>SubscriptionBillingAttemptCreate</code> will create a billing attempt for the billing cycle at the <code>origin_time</code> if specified. Otherwise, it will be created for the current billing cycle by default. </p>
<p>Alternatively, you can also use <code>BillingCycleSelector</code> to select the billing cycle you wish to create billing attempt for.</p>
<p>Learn more about <a href="https://shopify.dev/apps/subscriptions/billing-cycles" target="_blank" class="body-link">the API on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/introducing-the-subscription-billing-cycles-api</link>
  </item>
  <item>
    <title>New field `marketing_sms_consent_enabled_at_checkout` added to Shop object</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version 2022-10, a new field <code>marketing_sms_consent_enabled_at_checkout</code> has been added to the Shop object in the <a href="https://shopify.dev/api/admin-rest/2022-10/resources/shop" target="_blank" class="body-link">REST</a> Admin APIs. </p>
<p>The field is also present on the <a href="https://shopify.dev/api/admin-rest/2022-10/resources/webhook" target="_blank" class="body-link">&quot;shop/update&quot; webhook</a>, which now will trigger when the <code>marketing_sms_consent_enabled_at_checkout</code> state of a shop changes.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-field-marketing_sms_consent_enabled_at_checkout-added-to-shop-object</link>
  </item>
  <item>
    <title>New mutations to manage Locations</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, we are adding mutations so you can manage your locations using GraphQL. This will allow you to add, edit, deactivate, re-activate and delete locations. </p>
<p>Learn more about Locations on <a href="https://shopify.dev/api/admin-graphql/latest/objects/Location" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-mutations-to-manage-locations</link>
  </item>
  <item>
    <title>New Admin GraphQL APIs for B2B are available in 2022-10</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, we are adding queries, objects, and mutations to introspect and manage B2B primitives notably Companies, Company Locations, and Company Contacts with associated Roles.
Learn more about B2B on <a href="https://shopify.dev" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-admin-graphql-apis-for-b2b-are-available-in-2022-10</link>
  </item>
  <item>
    <title>Create B2B Draft Orders via PurchasingEntityInput</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, you can use the purchasing entity input field to create and update B2B draft orders.</p>
<p>This will attach company, location and contact to the draft order.</p>
<p>The field can also be used to create and update a traditional D2C draft order, requiring only a customer ID.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-10/input-objects/PurchasingEntityInput" target="_blank" class="body-link">PurchasingEntityInput</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/create-b2b-draft-orders-via-purchasingentityinput</link>
  </item>
  <item>
    <title>Duplicate and Create Inventory Reservations in Draft Orders</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version <code>2022-10</code>, you will get access to new fields and mutations for draft orders.</p>
<p>In particular, you will now be able to:</p>
<ul>
<li>Duplicate drafts</li>
<li>Creating drafts from orders</li>
<li>Execute bulk operations such as add/remove tags and deleting drafts</li>
<li>Create drafts with inventory reservations</li>
<li>Access previously hidden fields, such as metafields, on drafts and line items</li>
</ul>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-10/mutations/draftOrderCreate" target="_blank" class="body-link">DraftOrderCreate</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/duplicate-and-create-inventory-reservations-in-draft-orders</link>
  </item>
  <item>
    <title>Contextual pricing for company locations is now available for products in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of the  <code>2022-10</code> version of the Admin GraphQL API, you can use the <code>contextualPricing</code> field on <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/Product" target="_blank" class="body-link">Product</a> and <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/ProductVariant" target="_blank" class="body-link">ProductVariant</a> to fetch prices for a <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/CompanyLocation" target="_blank" class="body-link">CompanyLocation</a> by passing a <code>companyLocationId</code> argument to the <code>context</code> input.</p>
<p>Learn more about the Contextual Pricing API on <a href="http://shopify.dev/" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Oct 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/contextual-pricing-for-company-locations-is-now-available-for-products-in-the-graphql-admin-api</link>
  </item>
  <item>
    <title>MarketWebPresence association can now be fully accessed through ShopLocale endpoints</title>
    <description><![CDATA[ <div class=""><p>As of <code>2022-10</code> you can now add, remove and view <code>MarketWebPresence</code> associated with a <code>Locale</code> through the <code>ShopLocale</code> GraphQL endpoints. </p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/ShopLocale" target="_blank" class="body-link">ShopLocale</a> and [MarketWebPresence].(<a href="https://shopify.dev/api/admin-graphql/2022-10/objects/MarketWebPresence" target="_blank" class="body-link">https://shopify.dev/api/admin-graphql/2022-10/objects/MarketWebPresence</a>).</p>
</div> ]]></description>
    <pubDate>Fri, 30 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/marketwebpresence-association-can-now-be-fully-accessed-through-shoplocale-endpoints</link>
  </item>
  <item>
    <title>Local Delivery &amp; Pickup for Subscriptions</title>
    <description><![CDATA[ <div class=""><p>As of <code>2022-10</code>, partners can manage the delivery methods of the subscriptions contracts with Shipping, Local Delivery, and Pickup.</p>
<p><a href="https://shopify.dev/api/admin-graphql/2022-10/objects/SubscriptionContract#field-subscriptioncontract-deliverymethod" target="_blank" class="body-link"><code>SubscriptionContract.deliveryMethod</code></a> supports two new types: <code>SubscriptionDeliveryMethodLocalDelivery</code> and <code>SubscriptionDeliveryMethodPickup</code>.</p>
<p>A new <a href="https://shopify.dev/api/admin-graphql/2022-10/objects/SubscriptionDraft#field-subscriptiondraft-deliveryoptions" target="_blank" class="body-link"><code>SubscriptionDraft.deliveryOptions</code></a> provides a <code>SubscriptionDeliveryOptionResultSuccess</code> type for all three delivery methods.</p>
<p>To edit or create contracts, an extended <a href="https://shopify.dev/api/admin-graphql/2022-10/input-objects/SubscriptionDeliveryMethodInput" target="_blank" class="body-link"><code>SubscriptionDeliveryMethodInput</code></a> for <code>SubscriptionDraftInput</code> can receive <code>localDelivery</code> and <code>pickup</code> information.</p>
<p><strong>Important to note:</strong></p>
<ul>
<li><a href="https://shopify.dev/api/admin-graphql/2022-04/objects/SubscriptionContract#field-subscriptioncontract-deliverymethod" target="_blank" class="body-link">SubscriptionContract.deliveryMethod</a> returns null for clients using API versions earlier than 2022-10 when the contract is created with Local Delivery or Pickup. If you have been inferring a subscription has only digital products because the delivery method is null, then adopt our new graphql changes.</li>
<li>We also recommend taking a look at general delivery terms your app might be using, such as “delivers” or “ships”. Consider replacing them with broader terminology like “fulfills” or “recurs” that cover all modes of delivery.</li>
</ul>
<p>Learn more about Delivery Methods for Subscription on <a href="https://shopify.dev/apps/subscriptions/shipping-delivery" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 30 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/local-delivery-pickup-for-subscriptions</link>
  </item>
  <item>
    <title>Introducing the Local Pickup API</title>
    <description><![CDATA[ <div class=""><p>As of <strong>2022-10</strong> in GraphQL Admin API version <strong>unstable</strong>, you can use the new Local Pickup mutations to:</p>
<p><a href="https://shopify.dev/api/admin-graphql/unstable/mutations/locationLocalPickupEnable" target="_blank" class="body-link">Enable Local Pickup for a location</a></p>
<p><a href="https://shopify.dev/api/admin-graphql/unstable/mutations/locationLocalPickupDisable" target="_blank" class="body-link">Disable Local Pickup for a location</a></p>
<p>Additionally, you can access the current Local Pickup settings using the new <a href="https://shopify.dev/api/admin-graphql/unstable/objects/Location#field-location-localpickupsettingsv2" target="_blank" class="body-link">Location.localPickupSettingsV2</a> field.</p>
<p>This enables you to fully manage Local Pickup settings for a location!</p>
<p>Learn more about Local Pickup on <a href="https://help.shopify.com/en/manual/shipping/setting-up-and-managing-your-shipping/local-methods/local-pickup#set-up-the-local-pickup-option" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/introducing-the-local-pickup-api</link>
  </item>
  <item>
    <title>New metafield definition types in GraphQL - collection_reference / list.collection_reference</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API <strong>2022-10</strong>, two new metafield definition types are available:</p>
<ul>
<li><code>collection_reference</code>: A reference to a collection on the online store.</li>
<li><code>list.collection_reference</code>: A list of collection references on the online store.</li>
</ul>
<p>Learn more about the new reference types in <a href="https://shopify.dev/api/admin-graphql/2022-10/unions/MetafieldReference" target="_blank" class="body-link">Shopify.dev</a>, and see <a href="https://shopify.dev/apps/metafields/types" target="_blank" class="body-link">examples</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-metafield-definition-types-in-graphql-collection_reference-list-collection_reference</link>
  </item>
  <item>
    <title>Preview theme app extensions using Shopify CLI</title>
    <description><![CDATA[ <div class=""><p>As of Shopify CLI version 3.13.0, you can now preview <a href="https://shopify.dev/apps/online-store/theme-app-extensions" target="_blank" class="body-link">theme app extensions</a> by running the <code>dev</code> command. Shopify CLI supports hot reloading for theme app extensions, so you can avoid refreshing the browser after making changes.</p>
<p><a href="https://shopify.dev/apps/online-store/theme-app-extensions/getting-started#step-2-preview-your-theme-app-extension" target="_blank" class="body-link">Learn more about previewing theme app extensions</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 21 Sep 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/preview-theme-app-extensions-using-shopify-cli</link>
  </item>
  <item>
    <title>Performance Improvement on Product(s) Query</title>
    <description><![CDATA[ <div class=""><p>We've added a new Rails association to <code>Product</code> and use it in the <code>Product</code> GraphQL, so that the database queries use an indexed access path, rather than doing a full table search as is being done now.</p>
<p>There's no change to the API.</p>
</div> ]]></description>
    <pubDate>Tue, 20 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/performance-improvement-on-product-s-query</link>
  </item>
  <item>
    <title>Display both related and complementary product recommendations on storefronts</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/api/ajax/reference/product-recommendations" target="_blank" class="body-link">Product Recommendations API</a> now supports an <code>intent</code> parameter that allows theme developers to specify whether they want to show related or complementary products.</p>
<p>Complementary products are a new type of product recommendation intended for items that are often bought together or pair well. Complementary products can be set with the <a href="https://apps.shopify.com/search-and-discovery" target="_blank" class="body-link">Search &amp; Discovery app</a>.</p>
<p>Learn more about the product recommendation intents on <a href="https://shopify.dev/themes/product-merchandising/recommendations#recommendation-intents" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Tue, 20 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/display-both-related-and-complementary-product-recommendations-on-storefronts</link>
  </item>
  <item>
    <title>GraphQL Admin API now supports custom content by market that is not language based</title>
    <description><![CDATA[ <div class=""><p>As of September 19, 2022, you can use a new set of endpoints in the GraphQL Admin <strong>API 2022-10</strong> version to surface custom content to buyers in a specific market that is not language based.</p>
<p>The newly introduced endpoints are <code>marketLocalizableResource</code>, <code>marketLocalizableResources</code> and <code>marketLocalizableResourcesByIds</code> queries, as well as <code>marketLocalizationsRegister</code> and <code>marketLocalizationsRemove</code> mutations. </p>
<p>An example of market localizable content that is not language based is the newly introduced <a href="https://changelog.shopify.com/posts/metafield-improvements-money-content-type" target="_blank" class="body-link">money content type metafield</a></p>
</div> ]]></description>
    <pubDate>Mon, 19 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-now-supports-custom-content-by-market-that-is-not-language-based</link>
  </item>
  <item>
    <title>Use a server to build custom storefronts with authenticated access for the Storefront API</title>
    <description><![CDATA[ <div class=""><p>You can now use <a href="https://shopify.dev/api/usage/authentication#getting-started-with-authenticated-access" target="_blank" class="body-link">authenticated access</a> to make <a href="https://shopify.dev/api/storefront" target="_blank" class="body-link">Storefront API</a> requests from a server (for example, from a <a href="https://shopify.dev/custom-storefronts/hydrogen" target="_blank" class="body-link">Hydrogen server</a>).</p>
<p>Using <a href="https://shopify.dev/api/usage/authentication#getting-started-with-authenticated-access" target="_blank" class="body-link">authenticated access</a> enables more throughput for your server than using a public token, and enables Shopify's bot protection features to work more effectively.</p>
</div> ]]></description>
    <pubDate>Fri, 16 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/use-a-server-to-build-custom-storefronts-with-authenticated-access-for-the-storefront-api</link>
  </item>
  <item>
    <title>Updates required for embedded apps to work on the new Shopify admin domain</title>
    <description><![CDATA[ <div class=""><p>The Shopify admin is moving to a new domain: <code>admin.shopify.com</code>. Embedded apps should migrate to <a href="https://shopify.dev/apps/tools/app-bridge/migrating-to-3" target="_blank" class="body-link">App Bridge 3.0</a> as soon as possible to ensure the best merchant experience in this new domain. </p>
<p>The following requirements must be met for embedded apps to load in <code>admin.shopify.com</code>. Until these requirements are met, merchants will be forced to redirect to the old admin domain to use the app:</p>
<ol>
<li>The <a href="https://shopify.dev/apps/store/security/iframe-protection" target="_blank" class="body-link">content security policy</a> includes <code>admin.shopify.com</code>.</li>
<li>The app is on <a href="https://shopify.dev/apps/tools/app-bridge/updating-overview#ensure-compatibility-with-the-new-shopify-admin-domain" target="_blank" class="body-link">App Bridge 2.0.5 or higher</a>, and has correctly implemented the <a href="https://shopify.dev/apps/tools/app-bridge/retrieve-the-host" target="_blank" class="body-link"><code>host</code></a> parameter. <a href="https://shopify.dev/apps/tools/app-bridge/migrating-to-3" target="_blank" class="body-link">App Bridge 3.0</a> is recommended.</li>
</ol>
</div> ]]></description>
    <pubDate>Fri, 16 Sep 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/updates-required-for-embedded-apps-to-work-on-the-new-shopify-admin-domain</link>
  </item>
  <item>
    <title>Update your app listing</title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->


<p>New fields have been added to the app listing in preperation for the updated app listing page. All developers must complete the updated form by November 1.
For more information on the new form, [click here] (<a href="https://shopify.dev/apps/store/requirements#writing-a-shopify-app-store-listing" target="_blank" class="body-link">https://shopify.dev/apps/store/requirements#writing-a-shopify-app-store-listing</a>)</p>
</div> ]]></description>
    <pubDate>Thu, 15 Sep 2022 15:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/update-your-app-listing</link>
  </item>
  <item>
    <title>Updates to app categorization</title>
    <description><![CDATA[ <div class=""><!-- Write a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.

Here are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:

As of { API and version }, you can use the {object or resource} to {do something new}.
or
As of { API and version }, we're deprecating { description }. Use the { object or resource } instead.
or
You can now use { thing } to { do something new }.
or
We've added { thing } so that you can { do something }.

Describe any benefits { thing } has, or any action developers need to take and when they need to take it.
 
You can include links inline in the text, and add another link at the end in this format:

Learn more about { thing } on [Shopify.dev](URL).
-->


<p>App categories are getting simplified for better merchant discovery. Starting in November, you’ll be able to categorize your own app.
For more information, <a href="https://shopify.dev/apps/store/categories" target="_blank" class="body-link">click here</a></p>
</div> ]]></description>
    <pubDate>Thu, 15 Sep 2022 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-app-categorization</link>
  </item>
  <item>
    <title>Unpublished locales can now be added to a MarketWebPresence</title>
    <description><![CDATA[ <div class=""><p>As of <code>2022-10</code> the <code>marketWebPresenceUpdate</code> endpoint now supports adding unpublished locales as <code>alternateLocales</code>.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-10/mutations/marketWebPresenceUpdate" target="_blank" class="body-link">marketWebPresenceUpdate</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 14 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/unpublished-locales-can-now-be-added-to-a-marketwebpresence</link>
  </item>
  <item>
    <title>Destroy delegate access tokens through the GraphQL Admin API API</title>
    <description><![CDATA[ <div class=""><p>As of ** 2023-01 ** version on the Admin GraphQL schema, you can use the DelegateAccessTokenDestroy mutation to delete the delegate tokens created by the API client.</p>
<p>For app architectures that use delegate tokens from multiple subsystems, this makes it easy to remove those delegate tokens that are unused or leaked for better application security.</p>
</div> ]]></description>
    <pubDate>Wed, 14 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2023-01</category>
    <link>https://shopify.dev/changelog/destroy-delegate-access-tokens-through-the-graphql-admin-api-api</link>
  </item>
  <item>
    <title>Brand settings now available via Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of the <code>2022-10</code> release of the Storefront API, you can now query a shop's brand settings and assets via the new <a href="https://shopify.dev/api/storefront/2022-10/objects/Brand" target="_blank" class="body-link"><code>Shop.brand</code> field</a>. </p>
<p>For more information on configuring your shop's brand settings, click <a href="https://help.shopify.com/en/manual/promoting-marketing/managing-brand-assets" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 13 Sep 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/brand-settings-now-available-via-storefront-api</link>
  </item>
  <item>
    <title>Critical changes to analytics and marketing measurement in Apps</title>
    <description><![CDATA[ <div class=""><p>Starting October 3rd, Plus Merchants who customize their checkout via Checkout Extensibility will be required to use the new Web Pixel Extension instead of adding checkout.liquid code. </p>
<p>Ensure your app can support these merchants' measurement goals by building with the Web Pixel Extension. This will unlock additional locations for adding pixels, such as checkout, while increasing data accuracy, and providing tools for privacy compliance. </p>
<p>Visit the <a href="https://shopify.dev/apps/pixels/pixel-extension?utm_campaign=Pixels&utm_medium=changelog#app-web-pixels" target="_blank" class="body-link">developer documentation to learn more</a> and build with pixels. </p>
</div> ]]></description>
    <pubDate>Thu, 08 Sep 2022 13:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/critical-changes-to-analytics-and-marketing-measurement-in-apps</link>
  </item>
  <item>
    <title>Changes to the required app icon size in the Partner Dashboard</title>
    <description><![CDATA[ <div class=""><p>Icons added to your app using the Partner Dashvoard <strong>App setup</strong> page now must be 1200 px by 1200 px in size. This change makes icon sizes consistent across the Partner Dashboard, the Shopify App Store, and other development surfaces.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Aug 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/changes-to-the-required-app-icon-size-in-the-partner-dashboard</link>
  </item>
  <item>
    <title>Changes to GraphQL API MoneyV2-related fields</title>
    <description><![CDATA[ <div class=""><p>As of 2022-10, the <code>Money</code> scalar is being removed from the Storefront API. It was previously used for monetary fields that do not have a V2 suffix (<code>&lt;name&gt;: Money</code>). As a result, the following changes are being made:</p>
<ul>
<li>Non-V2 fields will now use <code>MoneyV2</code> objects for their type (<code>&lt;name&gt;: MoneyV2</code>).</li>
<li>Monetary fields that do have the <code>V2</code> suffix (<code>&lt;name&gt;V2: MoneyV2</code>) are being deprecated in favor of the <code>&lt;name&gt;: MoneyV2</code> equivalent. These fields will be removed in subsequent releases.</li>
</ul>
<p>These changes will help improve consistency of the API and avoid confusion when using these fields.</p>
</div> ]]></description>
    <pubDate>Mon, 29 Aug 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/changes-to-graphql-api-moneyv2-related-fields</link>
  </item>
  <item>
    <title>Automatic image delivery in AVIF</title>
    <description><![CDATA[ <div class=""><p>Shopify now supports automatically optimizing storefront images using the AV1 Image File Format (AVIF) format, which improves performance by reducing delivered bytes. Optimization occurs on a per image basis, where Shopify will examine the request and determine the best compatible file format (e.g. AVIF, WebP or JPEG) based on image quality and compressed bytes.</p>
<p>You can learn more by visiting <a href="https://cdn.shopify.com/" target="_blank" class="body-link">https://cdn.shopify.com/</a></p>
</div> ]]></description>
    <pubDate>Mon, 29 Aug 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/automatic-image-delivery-in-avif</link>
  </item>
  <item>
    <title>Accelerated app creation and improved app insights</title>
    <description><![CDATA[ <div class=""><p>Hey all! Coming back at you with improvements to creating an app from the Partner Dashboard! We’re removing the need for you to enter in any kind of URL when you’re manually creating an app from the UI. Instead, we’ll generate placeholders for you in the <strong>App setup</strong> area. You can update these URLs when you're ready to test or distribute your app.</p>
<p>We’ve also added a new <strong>Insights</strong> section to the app navigation, so you can discover everything from app history to API health without having to hunt around! </p>
</div> ]]></description>
    <pubDate>Thu, 18 Aug 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/accelerated-app-creation-and-improved-app-insights</link>
  </item>
  <item>
    <title>SellingPlan and SellingPlanGroup fields are supported by the Translations API </title>
    <description><![CDATA[ <div class=""><p>SellingPlanGroup and SellingPlan fields will be supported by the Translations API as translatable resources. The following fields will be available in the <a href="https://shopify.dev/api/admin-graphql/unstable/enums/translatableresourcetype" target="_blank" class="body-link">unstable</a> API until the 2022-10 API release:</p>
<ul>
<li>SellingPlanGroup.name - Public-Facing Name of the Selling Plan Group</li>
<li>SellingPlan.description - Optional, more verbose description of the Selling Plan</li>
<li>SeillingPlan.option1 - Delivery frequency</li>
<li>SellingPlan.option2- Delivery frequency (optional)</li>
<li>SellingPlan.option3 - Delivery frequency (optional)</li>
</ul>
<p>More information about our translation API is available in our <a href="https://shopify.dev/api/examples/i18n-app-translations" target="_blank" class="body-link">API documentation</a>. </p>
</div> ]]></description>
    <pubDate>Fri, 12 Aug 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/sellingplan-and-sellingplangroup-fields-are-supported-by-the-translations-api</link>
  </item>
  <item>
    <title>Updates to our Partner Program Agreement effective August 3, 2022</title>
    <description><![CDATA[ <div class=""><p>We've made changes to our Partner Program Agreement. This includes terms noting that all apps may only be installed or otherwise initiated directly on or through applicable Shopify surfaces allowing us to help provide merchants the trust signals they need to make informed choices, as well as other updates.</p>
<p>These changes come into effect as of today, August 03, 2022.</p>
<p>We encourage all developers on our platform to review and be familiar with the <a href="https://www.shopify.com/legal/api-terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">API License and Terms</a> and the <a href="https://www.shopify.ca/partners/terms?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Partner Program Agreement</a>, so that you understand how to build, run, and grow your app and development business on our platform.</p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq?shpxid=823b80d5-C747-48F6-6CF0-832254EC6F4B" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 03 Aug 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-our-partner-program-agreement-effective-august-3-2022</link>
  </item>
  <item>
    <title>Theme app extensions locale file size limit increase</title>
    <description><![CDATA[ <div class=""><p>As of today, theme app extensions are be able to store translations up to 15 KB per locale file.</p>
<p>For more information about file and content size limits for theme app extensions, refer to the <a href="https://shopify.dev/apps/online-store/theme-app-extensions/extensions-framework#file-and-content-size-limits" target="_blank" class="body-link">theme app extension framework</a> documentation.</p>
</div> ]]></description>
    <pubDate>Thu, 28 Jul 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/theme-app-extensions-locale-file-size-limit-increase</link>
  </item>
  <item>
    <title>New customer payment method revocation reason types have been added</title>
    <description><![CDATA[ <div class=""><p>You may now see new error values and descriptions if you encounter a Braintree payment method being revoked when associating Braintree payment methods with the customers that you import into Shopify. </p>
<p>Learn more about <a href="https://shopify.dev/apps/subscriptions/migrate/contracts" target="_blank" class="body-link">migrating existing subscription contracts to Shopify</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 25 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-customer-payment-method-revocation-reason-types-have-been-added</link>
  </item>
  <item>
    <title>New Reference Type Deletion Error Message for Metafield Definitions</title>
    <description><![CDATA[ <div class=""><p>As of the API version 2022-10, upon deleting a reference type metafield definition with delete_all_associated_metafields argument set to false, REFERENCE_TYPE_DELETION_ERROR will be returned with the following error message:</p>
<p><em>&quot;Deleting a reference type metafield definition requires deletion of its associated metafields.&quot;</em></p>
</div> ]]></description>
    <pubDate>Thu, 21 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-reference-type-deletion-error-message-for-metafield-definitions</link>
  </item>
  <item>
    <title>New tax exemption values</title>
    <description><![CDATA[ <div class=""><p>As of <code>2022-10</code> , the following new tax exemption values will be added to the <a href="https://shopify.dev/api/admin-graphql/2022-10/enums/TaxExemption" target="_blank" class="body-link">TaxExemption</a> enum and are intended to help with B2B transactions:</p>
<ul>
<li>United States reseller exemptions, indicating that the merchant is exempt for taxes in a specific state as they are a reseller.</li>
<li>European Union reverse charge exemption, indicating that VAT should not be included on the buyers invoice and that the buyer will be responsible for reporting the correct VAT on their purchase.</li>
</ul>
</div> ]]></description>
    <pubDate>Wed, 20 Jul 2022 18:16:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/new-tax-exemption-values</link>
  </item>
  <item>
    <title>Adding write permissions for Actions to Shopify’s GitHub app</title>
    <description><![CDATA[ <div class=""><p>Shopify’s GitHub app is requesting write permissions for GitHub Actions. This update will support improvements to the developer experience for <a href="https://hydrogen.shopify.dev/" target="_blank" class="body-link">Hydrogen</a> custom storefronts hosted on Oxygen.</p>
<p>Today, deployments to the Oxygen hosting platform can only be triggered by committing and pushing a change to a Hydrogen code repository. These additional permissions will enable features such as on-demand re-deploys, automatic branch deployment when creating new Oxygen environments, and other enhancements.</p>
<p>Learn more about <a href="https://shopify.dev/themes/tools/github" target="_blank" class="body-link">Shopify’s GitHub integration</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 18 Jul 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/adding-write-permissions-for-actions-to-shopify-s-github-app</link>
  </item>
  <item>
    <title>App proxy requests include new parameter for the logged in customer ID</title>
    <description><![CDATA[ <div class=""><p>The customer ID for logged in customers is now included as a parameter in the forwarded query for <a href="https://shopify.dev/apps/online-store/app-proxies" target="_blank" class="body-link">app proxy</a> requests. The customer ID is passed in the <code>logged_in_customer_id</code> parameter. The parameter will be blank if no customer is currently logged in.</p>
<p><strong>Tip:</strong>
Make sure that your application is <a href="https://shopify.dev/apps/online-store/app-proxies#calculate-a-digital-signature" target="_blank" class="body-link">verifying the <code>signature</code> parameter</a> of forwarded queries.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-proxy-requests-include-new-parameter-for-the-logged-in-customer-id</link>
  </item>
  <item>
    <title>Updated contextualPricing to be nullable</title>
    <description><![CDATA[ <div class=""><p>In the 2022-04 API version release, the <code>Product.contextualPricing</code> and <code>ProductVariant.contextualPricing</code> fields can now return <code>null</code>. </p>
<p>This is in preparation for future argument changes. With the current arguments, there is no case where these fields can return <code>null</code>. However, future arguments will introduce <code>null</code> cases.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-01/queries/productVariant#examples-Get_the_price_for_a_product_variant_for_buyers_from_Canada" target="_blank" class="body-link">contextualPricing</a></p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/updated-contextualpricing-to-be-nullable</link>
  </item>
  <item>
    <title>Read and write disputes and dispute evidence in the GraphQL and REST Admin API</title>
    <description><![CDATA[ <div class=""><p>You can now read and write disputes and dispute evidence for Shopify Payments using the REST and GraphQL Admin APIs. The following new objects, mutations, and endpoints are available:</p>
<h3>GraphQL Admin API</h3>
<ul>
<li><a href="https://shopify.dev/api/admin-graphql/latest/objects/ShopifyPaymentsDisputeEvidence" target="_blank" class="body-link"><code>ShopifyPaymentsDisputeEvidence</code></a> object</li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/input-objects/ShopifyPaymentsDisputeFileUploadUpdateInput" target="_blank" class="body-link"><code>ShopifyPaymentsDisputeFileUploadUpdateInput</code></a> input object</li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/enums/ShopifyPaymentsDisputeEvidenceFileType" target="_blank" class="body-link"><code>ShopifyPaymentsDisputeEvidenceFileType</code></a> enum</li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/objects/ShopifyPaymentsDisputeFileUpload" target="_blank" class="body-link"><code>ShopifyPaymentsDisputeFileUpload</code></a> object</li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/mutations/disputeEvidenceUpdate" target="_blank" class="body-link"><code>ShopifyPaymentsDisputeEvidenceUpdate</code></a> mutation</li>
</ul>
<h3>REST Admin API</h3>
<ul>
<li><code>POST /admin/api/2022-07/shopify_payments/disputes/{{dispute_id}}/dispute_file_uploads.json</code></li>
<li><code>DELETE /admin/api/{version}/shopify_payments/disputes/{{dispute_id}}/dispute_file_uploads/{{dispute_file_upload_id}}</code></li>
<li><code>PUT /admin/api/{version}/shopify_payments/disputes/{{dispute_id}}/dispute_evidences.json</code></li>
</ul>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-rest/latest/resources/dispute#top" target="_blank" class="body-link">Dispute</a> resource developer documentation.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/read-and-write-disputes-and-dispute-evidence-in-the-graphql-and-rest-admin-api</link>
  </item>
  <item>
    <title>Locations now support metafields</title>
    <description><![CDATA[ <div class=""><p>Location resources now support metafields. Use metafields APIs to store additional information in metafield values, like store hours, and then reference them in Liquid. Note: this is currently supported in our unstable API version only.</p>
<p>To learn more about metafields, refer to the <a href="https://shopify.dev/api/admin-graphql/unstable/objects/Metafield#fields" target="_blank" class="body-link">metafields documentation</a>. To use location metafields in Liquid, refer to the <a href="https://shopify.dev/api/liquid/objects/storeavailability" target="_blank" class="body-link">store_availability</a> Liquid reference.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/locations-now-support-metafields</link>
  </item>
  <item>
    <title>New totalQuantity field on the Storefront API Cart object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2022-07, the <code>Cart</code> object has a new field: <code>totalQuantity</code>. This field returns an integer representing the total number of items in the cart.</p>
<p>Learn more about the <code>Cart</code> object on <a href="https://shopify.dev/api/storefront/unstable/objects/Cart#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-totalquantity-field-on-the-storefront-api-cart-object</link>
  </item>
  <item>
    <title>New fields amount and compareAtAmount on the Storefront API CartLineEstimatedCost object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2022-07, the <code>CartLineEstimatedCost</code> object has two new fields: <code>amount</code> and <code>compareAtAmount</code>. Both fields return an object of type <code>MoneyV2</code>. These new fields allow the price of a product variant on a cart to be queried using <code>buyerIdentity</code> as the context driver.</p>
<p>Learn more about these fields on <a href="https://shopify.dev/api/storefront/current/objects/CartLineEstimatedCost#fields" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-fields-amount-and-compareatamount-on-the-storefront-api-cartlineestimatedcost-object</link>
  </item>
  <item>
    <title>New Online Store URL redirect object for the Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2022-07, a new <code>urlRedirects</code> object has been added. </p>
<p>URL redirects can be used to redirect traffic from one web page to another. The new <code>urlRedirects</code> object can be used to query the <code>path</code> and <code>target</code> URLs for URL redirects already set up on a shop.</p>
<p>Learn more about this object on <a href="https://shopify.dev/api/storefront/unstable/objects/UrlRedirect#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-online-store-url-redirect-object-for-the-storefront-api</link>
  </item>
  <item>
    <title>New reason and lineItems fields for rejecting fulfillment requests</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2022-07, the <a href="https://shopify.dev/api/admin-graphql/current/mutations/fulfillmentorderrejectfulfillmentrequest" target="_blank" class="body-link"><code>fulfillmentOrderRejectFulfillmentRequest</code></a> mutation has two new optional arguments: </p>
<ul>
<li><code>reason</code>: Identify the reason the fulfillment request was declined. It can be used to filter, group, and provide workflows to help merchants solve rejection issues.</li>
<li><code>lineItems</code>: Identify which line items in a fulfillment request are causing the rejection, and provide a detailed message for each one.</li>
</ul>
<p>Also in this version, the <a href="https://shopify.dev/api/admin-graphql/current/objects/fulfillmentorderlineitem#fields" target="_blank" class="body-link"><code>FulfillmentOrderLineItem</code></a> object has a new generic <code>warnings</code> field, which can be used to display rejection issues for the line item.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-reason-and-lineitems-fields-for-rejecting-fulfillment-requests</link>
  </item>
  <item>
    <title>The behavior of HasMetafields.metafields has changed</title>
    <description><![CDATA[ <div class=""><p>As of Storefront API version 2022-07, we're deprecating the <code>HasMetafields.metafields</code> paginated connection in the Storefront API. This connection enabled you to paginate over all visible metafields in a given resource.</p>
<p><code>HasMetafields.metafields</code> now accepts a list of metafield namespaces and keys, and returns a list of associated metafields that match the given namespaces and keys.</p>
<p>The updated endpoint is available in unstable, and will be part of the 2022-07 release. The existing paginated behaivor is available in 2022-04 and prior supported stable versions.</p>
<p>For more information, refer to the <a href="https://shopify.dev/api/storefront/unstable/interfaces/hasmetafields" target="_blank" class="body-link"><code>HasMetafields</code></a> interface.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/the-behavior-of-hasmetafields-metafields-has-changed</link>
  </item>
  <item>
    <title>Subscription shipping address phone validation</title>
    <description><![CDATA[ <div class=""><p>As of the 2022-07 version of the Admin GraphQL API, the <code>phone</code> field of the delivery address will be validated on calls to <code>subscriptionContractCreate</code> and <code>subscriptionDraftUpdate</code>. </p>
<p>This allows you to ensure phone numbers are properly formatted and will prevent errors that may occur when processing subscription payments with invalid data.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/subscriptionContractCreate" target="_blank" class="body-link">SubscriptionContractCreate</a> and <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/subscriptionDraftUpdate" target="_blank" class="body-link">subscriptionDraftUpdate</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/subscription-shipping-address-phone-validation</link>
  </item>
  <item>
    <title>Enable Standard metafields by namespace and key</title>
    <description><![CDATA[ <div class=""><p>You can now enable standard metafields on a shop using namespace and key with our GraphQL API.</p>
<p>Learn more about <a href="https://shopify.dev/apps/metafields/definitions/standard-definitions" target="_blank" class="body-link">standard metafields</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/enable-standard-metafields-by-namespace-and-key</link>
  </item>
  <item>
    <title>Create delegate access tokens through the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>Avoid sharing an access token across systems with the new <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/delegateAccessTokenCreate" target="_blank" class="body-link"><code>delegateAccessTokenCreate</code> mutation</a>. This mutation creates new tokens with a subset of the total permissions of an app.</p>
<p>For app architectures that require authenticated access from multiple subsystems, it's best to avoid sharing the same token across all systems. Instead, create a new token that has access to only the minimal scopes that are required for proper functioning.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/create-delegate-access-tokens-through-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Braintree is now available as a CustomerPaymentMethodRemoteInput</title>
    <description><![CDATA[ <div class=""><p>As of API version 2022-07, an input field for Braintree has been added to the <a href="https://shopify.dev/api/admin-graphql/2022-07/input-objects/CustomerPaymentMethodRemoteInput" target="_blank" class="body-link"><code>CustomerPaymentMethodRemoteInput</code></a> object, which is used by the <code>customerPaymentMethodRemoteCreate</code> mutation. This field can be used to help you migrate Braintree subscription contracts to Shopify.</p>
<p>Learn more about [migrating existing subscription contracts to Shopify] (<a href="https://shopify.dev/apps/subscriptions/migrate/contracts" target="_blank" class="body-link">https://shopify.dev/apps/subscriptions/migrate/contracts</a>).</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/braintree-is-now-available-as-a-customerpaymentmethodremoteinput</link>
  </item>
  <item>
    <title>Fulfillment service SKU sharing</title>
    <description><![CDATA[ <div class=""><p>The fulfillment service SKU sharing feature gives fulfillment service apps the ability to stock and fulfill product variants together with merchant's locations.</p>
<p>Merchants will be able to stock and fulfill the same variant from multiple fulfillment services. This means that they can now have the same product/variant be stocked at their merchant managed locations as well as 3PL services at the same time.</p>
<p>This feature introduces the <code>permits_sku_sharing</code> parameter when creating or updating a fulfillment service. Setting <code>permits_sku_sharing</code> to <code>true</code> allows the merchant to assign fulfillment orders to both the merchant's locations and compatible fulfillment services.</p>
<p>When a fulfillment service app sets <code>permits_sku_sharing</code> to <code>true</code>, some of the following behaviour will break. If you set a product variant's <code>fulfillmentService</code> parameter (<a href="https://shopify.dev/api/admin/rest/reference/products/product-variant" target="_blank" class="body-link">REST</a> &amp; <a href="https://shopify.dev/api/admin/graphql/reference/products-and-collections/productvariantupdate" target="_blank" class="body-link">GraphQL</a>)  to <code>manual</code>, then it no longer means that the variant is stocked only at a merchant-managed location. Apps that use the <code>fulfillmentService</code> parameter in this way should instead use the <code>location</code> parameter on the Fulfillment Order resource to determine which location or fulfillment service fulfills a given product variant.</p>
<p>Learn about <a href="https://help.shopify.com/en/manual/products/inventory/getting-started-with-inventory/multi-managed-inventory" target="_blank" class="body-link">multi-managed inventory</a> from merchant's perspective.</p>
<p>Learn more about the <a href="https://shopify.dev/apps/fulfillment/migrate" target="_blank" class="body-link">building a fulfillment service using the fulfillment orders API</a>.</p>
<p>Learn more about managing fulfillment orders using the <a href="https://shopify.dev/api/admin/rest/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">REST Admin API</a> and <a href="https://shopify.dev/api/admin/graphql/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">GraphQL Admin API</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/fulfillment-service-sku-sharing</link>
  </item>
  <item>
    <title>New WebHooks and App Events for App Usage Spending Limits and Changes to `balanced_used`</title>
    <description><![CDATA[ <div class=""><p>On July 31st 2022 we will be introducing App Usage Spending Limits to provide flexibility for merchants to control the usage charge limit per billing cycle from their Shopify admin. Developers no longer need to set a &quot;one size fits all&quot; app usage capped amount that is difficult to meet a variety of merchants' needs.</p>
<h2>Merchants Can Self-Serve Increasing Their Subscription's <code>cappedAmount</code></h2>
<p>As of July 31st 2022 Merchants will be able to increase the <a href="https://shopify.dev/api/admin-graphql/2021-10/input-objects/AppUsagePricingInput#field-appusagepricinginput-cappedamount" target="_blank" class="body-link"><code>cappedAmount</code></a> associated with a subscription that has usage pricing.  Partners are advised to listen to the <a href="https://shopify.dev/api/admin-graphql/2022-07/enums/WebhookSubscriptionTopic#value-appsubscriptionsupdate" target="_blank" class="body-link"><code>app_subscription/update</code></a> webhook to stay notified when Merchants update their capped amounts.  For instructions on how Merchants will be able to update their <code>cappedAmount</code> visit the <a href="https://help.shopify.com/en/manual/your-account/manage-billing/your-invoice/apps#app-usage-charges" target="_blank" class="body-link">help center</a></p>
<h2>App Usage Webhook Notifications</h2>
<p>As of GraphQL Admin API version 2022-07, app developers offering usage-based pricing should subscribe to new webhook updates in advance of the roll out of App Usage Spending Limits. Developers can receive notifications when merchants update their App Spending Limits, which is also the  <code>capped_amount</code> by <a href="https://shopify.dev/apps/webhooks/configuration" target="_blank" class="body-link">creating a webhook subscription through the Admin Graphql API</a> to the <a href="https://shopify.dev/api/admin-graphql/2022-07/enums/WebhookSubscriptionTopic#value-appsubscriptionsupdate" target="_blank" class="body-link">app_subscriptions/update topic</a>. </p>
<p>Once merchants update their App Spending Limits, developers may need to make updates to their application to allow merchants to incur additional usage charges. </p>
<p>Learn more about Admin Graphql API webhooks <a href="https://shopify.dev/apps/webhooks/configuration" target="_blank" class="body-link">here</a>. </p>
<h2>Important update about <code>balance_used</code> endpoint for app usage charges</h2>
<p>The <code>balance_used</code> endpoint in the App Usage Pricing API now shows the running total usage charges for the entire billing cycle. Previously, there was an issue where the usage charge running total, presented on the <code>balance_used</code> field, resets when a new recurring charge with usage-based pricing is accepted by the merchant. Note that the issue only applied to the value being presented in the <code>balance_used</code> field and usage charges were not able to exceed the <code>capped_amount</code> in a cycle.</p>
<p>Going forward, the <code>balance_used</code> endpoint will always show the total usage charge balance for the billing cycle, which is reflective of what merchants see in the Shopify Admin about their current App Spending Limits. </p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-webhooks-and-app-events-for-app-usage-spending-limits-and-changes-to-balanced_used</link>
  </item>
  <item>
    <title>New `Cart.discountAllocations` field and change in `CartLine.discountAllocations`</title>
    <description><![CDATA[ <div class=""><p>As part of the GraphQL Storefront API 2022-07 API release, we are changing how <code>discountAllocations</code> on <code>Cart</code> and <code>CartLine</code> are returned.</p>
<ul>
<li><code>Cart.discountAllocations</code> returns discount allocations that are applied to the entire <code>Cart</code>.</li>
</ul>
<p><code>CartLine.discountAllocations</code> now only returns discount allocations that are applied to the specific <code>CartLine</code>.</p>
<p><code>CartLine.total</code> reflects the line total with only line-level discounts applied, not discounts applied to the entire <code>Cart</code>.</p>
<p>Learn more about the <code>Cart</code> object on <a href="https://shopify.dev/api/storefront/unstable/objects/Cart#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-cart-discountallocations-field-and-change-in-cartline-discountallocations</link>
  </item>
  <item>
    <title>Property deprecations in the Admin API Order and LineItem resource</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/changelog/fulfillment-service-sku-sharing" target="_blank" class="body-link">relationship between a ProductVariant and a FulfillmentService was changed in the 2022-07 API version</a>. A <code>ProductVariant</code> can be stocked by multiple fulfillment services. As a result, we recommended that you no longer use the following fields: <code>ProductVariant.fulfillment_service</code> (<a href="https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#resource-object" target="_blank" class="body-link">REST</a>)(<a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-fulfillmentservice" target="_blank" class="body-link">GraphQL</a>) and <code>LineItem.fulfillment_service</code> (<a href="https://shopify.dev/docs/api/admin-rest/latest/resources/order#resource-object" target="_blank" class="body-link">REST</a>)(<a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem#field-lineitem-fulfillmentservice" target="_blank" class="body-link">GraphQL</a>). Instead, you should use inventory items and inventory levels if you need to find or manage where a product is stocked.</p>
<p>If you need to determine whether a product is a gift card, you should continue to use the <code>ProductVariant.fulfillment_service</code> field until an alternative is available.</p>
<p>Learn more about <a href="https://shopify.dev/apps/fulfillment/inventory-management-apps/quantities-states" target="_blank" class="body-link">managing inventory quantities and states</a>.</p>
<p>Learn more about managing fulfillment orders using the <a href="https://shopify.dev/api/admin/rest/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">REST Admin API</a> and <a href="https://shopify.dev/api/admin/graphql/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">GraphQL Admin API</a>.</p>
<p>Learn more about the <a href="https://shopify.dev/apps/fulfillment/migrate" target="_blank" class="body-link">building a fulfillment service using the fulfillment orders API</a>.</p>
<p>The following other line item object properties on the REST Admin API's Order resource are deprecated:</p>
<ul>
<li><code>origin_location</code></li>
<li><code>destination_location</code></li>
</ul>
<p>The following object property on the REST Admin API's Order resource is deprecated:</p>
<ul>
<li><code>total_price_usd</code></li>
</ul>
<p>These deprecated properties will be removed from unstable. The change will be made official in the 2022-10 REST Admin API version.</p>
<p>For other recent deprecations on the Orders resource refer to this <a href="https://shopify.dev/changelog/property-deprecations-in-the-rest-admin-api-order-resource" target="_blank" class="body-link">Change Log</a></p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/property-deprecations-in-the-admin-api-order-and-lineitem-resource</link>
  </item>
  <item>
    <title>Property deprecations in the Admin API ProductVariant resource</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/changelog/fulfillment-service-sku-sharing" target="_blank" class="body-link">relationship between a ProductVariant and a FulfillmentService was changed in the 2022-07 API version</a>. A <code>ProductVariant</code> can be stocked by multiple fulfillment services. As a result, we recommended that you no longer use the following fields: <code>ProductVariant.fulfillment_service</code> (<a href="https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#resource-object" target="_blank" class="body-link">REST</a>)(<a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-fulfillmentservice" target="_blank" class="body-link">GraphQL</a>) and <code>LineItem.fulfillment_service</code> (<a href="https://shopify.dev/docs/api/admin-rest/latest/resources/order#resource-object" target="_blank" class="body-link">REST</a>)(<a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem#field-lineitem-fulfillmentservice" target="_blank" class="body-link">GraphQL</a>). Instead, you should use inventory items and inventory levels if you need to find or manage where a product is stocked.</p>
<p>If you need to determine whether a product is a gift card, you should continue to use the <code>ProductVariant.fulfillment_service</code> field until an alternative is available.</p>
<p>Learn more about <a href="https://shopify.dev/apps/fulfillment/inventory-management-apps/quantities-states" target="_blank" class="body-link">managing inventory quantities and states</a>.</p>
<p>Learn more about managing fulfillment orders using the <a href="https://shopify.dev/api/admin/rest/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">REST Admin API</a> and <a href="https://shopify.dev/api/admin/graphql/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">GraphQL Admin API</a>.</p>
<p>Learn more about the <a href="https://shopify.dev/apps/fulfillment/migrate" target="_blank" class="body-link">building a fulfillment service using the fulfillment orders API</a>.</p>
<p>Also the field <code>presentment_prices</code> is being deprecated in REST and GraphQL. For more context refer to this <a href="https://shopify.dev/changelog/contextual-pricing-for-products-is-now-available-in-the-graphql-admin-api" target="_blank" class="body-link">change log.</a></p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/property-deprecations-in-the-admin-api-productvariant-resource</link>
  </item>
  <item>
    <title>Release Fulfillment Hold Automation API Changes</title>
    <description><![CDATA[ <div class=""><p>This change adds the public GraphQL fields associated with fulfillment hold automations to the 2022-07 Admin API GraphQL release. Specifically, this adds the following field</p>
<ul>
<li>MailingAddress.coordinatesValidated</li>
</ul>
<p>This new boolean field can be used by partners to determine if the coordinates of a mailing address have been validated by Shopify. This unlocks ability to hold fulfillments on unvalidated mailing address and ensure that merchants check prior to requesting fulfillments from their 3PL.</p>
<p>Learn more about holding fulfillments with <a href="https://shopify.dev/api/admin-graphql/2022-04/mutations/fulfillmentOrderHold" target="_blank" class="body-link">GraphQL</a> and with <a href="https://shopify.dev/api/admin-rest/2022-04/resources/fulfillmentorder#post-fulfillment-orders-fulfillment-order-id-hold" target="_blank" class="body-link">REST</a>
Learn more about <a href="https://help.shopify.com/en/manual/shopify-flow" target="_blank" class="body-link">Shopify Flow</a></p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/release-fulfillment-hold-automation-api-changes</link>
  </item>
  <item>
    <title>Some endpoint deprecations on the Fulfillment API, and the introduction of Fulfillment Order API</title>
    <description><![CDATA[ <div class=""><p>The date by which you need to migrate away from the 2022-04 API has been <a href="https://shopify.dev/changelog/action-required-support-for-api-version-2022-04-extended-to-june-30-2023" target="_blank" class="body-link">extended to June 30 2023</a>.</p>
<p>Some of the Fulfillment API endpoints and mutations on the Fulfillment API relating to managing fulfillments via an order ID were deprecated in the 2022-04 API release. They have now been removed and replaced by the Fulfillment Orders API in the 2022-07 API release.  </p>
<p>This means that your app/integration using the deprecated Fulfillment API endpoints will have until the 2023-07 API release to migrate away from using the deprecated end points. You can continue to use API version 2022-04 until the 2023-07 release.</p>
<p>To help you seamlessly migrate, we've crafted a migration guide that walks you through the process of moving to Fulfillment Orders. To learn more, visit the migration guide on <a href="https://shopify.dev/apps/fulfillment/migrate" target="_blank" class="body-link">Shopify.dev</a>. </p>
<h3>Deprecated Endpoints on the Fulfillment API</h3>
<p><a href="https://shopify.dev/docs/api/release-notes/2022-07#fulfillment-endpoints-removed-from-the-rest-admin-api" target="_blank" class="body-link">https://shopify.dev/docs/api/release-notes/2022-07#fulfillment-endpoints-removed-from-the-rest-admin-api</a></p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/some-endpoint-deprecations-on-the-fulfillment-api-and-the-introduction-of-fulfillment-order-api</link>
  </item>
  <item>
    <title>GraphQL schemas will use the &quot;@deprecated&quot; directive for input fields and arguments</title>
    <description><![CDATA[ <div class=""><p>As of API version 2022-07 all GraphQL schemas will start using the &quot;@deprecated&quot; directive for input fields and arguments which have been deprecated. API versions 2022-04 and below will continue to use the description for deprecation warnings.</p>
<p>It is recommended you use a GraphQL client which supports deprecated input fields and arguments when using GraphQL API versions 2022-07 and above. For example graphql-js added support as of version <a href="https://github.com/graphql/graphql-js/releases/tag/v15.5.0" target="_blank" class="body-link">v15.5.0</a>. See the <a href="https://spec.graphql.org/draft/#sec--deprecated" target="_blank" class="body-link">official GraphQL spec</a> for more details.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/graphql-schemas-will-use-the-deprecated-directive-for-input-fields-and-arguments</link>
  </item>
  <item>
    <title>New PredictedSpendTier field on the Customer object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-07, a new <code>statistics</code> field has been added to the <code>Customer</code> object for computed customer statistics. It includes a new field <code>predictedSpendTier</code> which indicates the predicted spend of a customer with a shop.</p>
<p>For more information, refer to the <code>CustomerStatistics</code> field in the <a href="https://shopify.dev/api/admin-graphql/2022-07/objects/CustomerStatistics" target="_blank" class="body-link">GraphQL Admin API reference</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-predictedspendtier-field-on-the-customer-object</link>
  </item>
  <item>
    <title>Updated requirements for protected customer data</title>
    <description><![CDATA[ <div class=""><p>Starting with API version 2022-10, we’re introducing updated requirements for apps that use customer data. Updated requirements will be published prior to the release of API version 2022-10. </p>
<p>The protected customer data requirements focus on data minimization, transparency, and security so that Partners can better support merchants' paths towards compliance with privacy and data protection rules. </p>
<p>Learn more about how you can be ready for <a href="https://shopify.dev/apps/store/data-protection/protected-customer-data" target="_blank" class="body-link">protected customer data</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jul 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-10</category>
    <link>https://shopify.dev/changelog/updated-requirements-for-protected-customer-data</link>
  </item>
  <item>
    <title>Introducing Checkout Extensibility </title>
    <description><![CDATA[ <div class=""><p>With Checkout Extensibility, you can now build apps to customize checkout and Shop Pay. You can leverage Checkout UI extensions and Shopify Functions to surface new functionality, Checkout Branding API to customize styling, and Pixels to track events. </p>
<p>Checkout Extensibility is now available in developer preview. </p>
<p>Learn more about Checkout Extensibility on <a href="https://shopify.dev/apps/checkout" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 28 Jun 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-checkout-extensibility</link>
  </item>
  <item>
    <title>Apply multiple discounts to an order with discount combinations</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-07, you can use the Discount APIs to modify combination settings on a discount. This allows a customer to apply more than one discount to their order. </p>
<p>Discount combinations are available now as part of the <a href="https://shopify.dev/api/release-notes/developer-previews?shpxid=a5e89eb2-DAA4-42E0-0229-8E113A7FB084#checkout-extensibility-developer-preview" target="_blank" class="body-link">Checkout extensibility developer preview</a>. </p>
<p>Learn more about <a href="https://help.shopify.com/en/manual/discounts/combining-discounts" target="_blank" class="body-link">how discount combinations work</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 27 Jun 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/apply-multiple-discounts-to-an-order-with-discount-combinations</link>
  </item>
  <item>
    <title>Introducing Shopify Functions </title>
    <description><![CDATA[ <div class=""><p>Shopify Functions lets you extend or replace key parts of Shopify’s backend with custom logic. Functions run on Shopify infrastructure, making them both scalable and performant.</p>
<p>Functions are now available in developer preview for product, order, and shipping discounts. </p>
<p>Learn more about Shopify Functions on <a href="https://shopify.dev/api/functions" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Jun 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-shopify-functions</link>
  </item>
  <item>
    <title>Embedded App Improvements with App Bridge</title>
    <description><![CDATA[ <div class=""><p>With the latest App Bridge enhancements, your app will now look, feel, and perform like it’s a part of Shopify.</p>
<p>More specifically, App Bridge mobile apps can now load 85% faster from the Shopify iOS and Android apps when you enable <a href="https://shopify.dev/apps/tools/app-bridge/optimized-loading" target="_blank" class="body-link">mobile optimization</a> for your embedded app. App Bridge apps can also now leverage <a href="https://shopify.dev/apps/tools/app-bridge/actions/fullscreen" target="_blank" class="body-link">full-screen mode</a>, just like our first-party apps, for complex workflows in the Shopify admin. Lastly, apps that use the <a href="https://shopify.dev/apps/tools/app-bridge/actions/menu/navigation" target="_blank" class="body-link">NavigationMenu</a> component will now have their navigation embedded into the Shopify admin for faster, more natural access.</p>
<p>Learn more about App Bridge on <a href="https://shopify.dev/apps/tools/app-bridge" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Jun 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/embedded-app-improvements-with-app-bridge</link>
  </item>
  <item>
    <title>Introducing Shopify CLI 3.0 </title>
    <description><![CDATA[ <div class=""><p>The updated Shopify CLI 3.0 is both easier to use and more powerful than ever. With Shopify CLI 3.0, we’ve simplified the development process by reducing the number of commands that you need to get started from 13 to 5. </p>
<p>You can also now leverage a single project for your app and extensions, preview your entire project with one command, and push your entire project together with a single command when you’re finished.</p>
<p><a href="https://shopify.dev/apps/tools/cli" target="_blank" class="body-link">Learn more about Shopify CLI 3.0</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Jun 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/introducing-shopify-cli-3-0</link>
  </item>
  <item>
    <title>Selling Plan API now supports pre-orders and try before you buy </title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-07, we have expanded the Selling Plan API enabling you to integrate support for new deferred purchase options like pre-orders and try before you buy  into the Shopify Checkout.</p>
</div> ]]></description>
    <pubDate>Tue, 21 Jun 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/selling-plan-api-now-supports-pre-orders-and-try-before-you-buy</link>
  </item>
  <item>
    <title>New API for collecting deferred payments on orders</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-07, we have introduced new APIs that enable you to collect deferred payment on an order using a vaulted card belonging to the customer. The orderCreateMandatePayment mutation will be available for charging payments against a vaulted credit card. This API returns a GraphApi::Job and paymentReferenceId. This paymentReferenceId can be used to poll the status of the payment using the orderPaymentStatus query. </p>
</div> ]]></description>
    <pubDate>Tue, 21 Jun 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-api-for-collecting-deferred-payments-on-orders</link>
  </item>
  <item>
    <title>App distribution decoupled from app creation, new Partner Dashboard navigation</title>
    <description><![CDATA[ <div class=""><p>What a relief - app distribution is now decoupled from the app creation flow in the Partner Dashboard! This means you no longer have to select a public or custom app type before you start coding. </p>
<p>We’ve also improved the navigation within the Partner Dashboard and added a <strong>Distribution</strong> page, where can manage your Shopify App Store listing or generate your merchant install link. Also, if you’re building your app using Shopify CLI, you’ll be able to copy and paste the commands you need to get started right from the dashboard.</p>
<p>Learn more about <a href="https://shopify.dev/apps/distribution" target="_blank" class="body-link">app distribution</a> and <a href="https://shopify.dev/apps/distribution/select-distribution-method" target="_blank" class="body-link">selecting a distribution method</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 21 Jun 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-distribution-decoupled-from-app-creation-new-partner-dashboard-navigation</link>
  </item>
  <item>
    <title>Selling plans can now specify a fixed cutoff day for a delivery policy</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-07, the <a href="https://shopify.dev/api/admin-graphql/2022-04/input-objects/SellingPlanAnchorInput" target="_blank" class="body-link"><code>SellingPlanAnchorInput</code></a> type has an additional optional field.</p>
<p><code>cutoff_day</code> represents a fixed cutoff day for each anchor, to be used for monthly and weekly selling plans. Use this method if the cutoff should land on the same day each month.  </p>
<p>You can also specify a cutoff using the <code>cutoff</code> field of the <a href="https://shopify.dev/api/admin-graphql/2022-04/input-objects/SellingPlanRecurringDeliveryPolicyInput#field-sellingplanrecurringdeliverypolicyinput-anchors" target="_blank" class="body-link">SellingPlanRecurringDeliveryPolicyInput</a> type, which represents a duration. Using <code>cutoff</code>, the exact cutoff day could be different based on the number of days in the month.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Jun 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/selling-plans-can-now-specify-a-fixed-cutoff-day-for-a-delivery-policy</link>
  </item>
  <item>
    <title>Changes to Cart and CartLine on Storefront API</title>
    <description><![CDATA[ <div class=""><p>As part of the GraphQL Storefront API 2022-07 API release, the following are changes to have been made to the <code>Cart</code> and <code>CartLine</code> object:</p>
<ul>
<li>New <code>attribute</code> field with a <code>key</code> argument</li>
<li><code>estimatedCost</code> is renamed to <code>cost</code> on <code>Cart</code>.</li>
<li><code>estimatedCost</code> is renamed to <code>cost</code> on <code>CartLine</code>.</li>
<li>Add <code>subtotalAmountEstimated</code>, <code>totalAmountEstimated</code>, <code>totalTaxAmountEstimated</code>, <code>totalDutyAmountEstimated</code> to <code>CartCost</code> </li>
<li><code>amount</code> is renamed to <code>amountPerQuantity</code> on <code>CartLineCost</code>.</li>
<li><code>compareAtAmount</code> is renamed to <code>compareAtAmountPerQuantity</code> on <code>CartLineCost</code>.</li>
</ul>
<p>Learn more about the <code>Cart</code> object on <a href="https://shopify.dev/api/storefront/unstable/objects/Cart#top" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Jun 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/changes-to-cart-and-cartline-on-storefront-api</link>
  </item>
  <item>
    <title>New options for app subscription upgrades and downgrades</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-07, app developers can now choose their preferred update behavior when upgrading or downgrading merchant application subscriptions. </p>
<p>By specifying the desired <code>AppSubscriptionReplacementBehavior</code> type, app developers can control whether the new subscription goes into effect immediately or is deferred to the end of the  current subscription's billing cycle. By default, all app subscription changes will continue with the existing behavior.</p>
<p>Learn more about specifying app subscription replacement behavior on <a href="https://shopify.dev/api/admin-graphql/unstable/enums/AppSubscriptionReplacementBehavior" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 13 Jun 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/new-options-for-app-subscription-upgrades-and-downgrades</link>
  </item>
  <item>
    <title>Removal of Deprecated Storefront API Checkout Mutations</title>
    <description><![CDATA[ <div class=""><p>In the <code>2022-01</code> Storefront API release <a href="https://shopify.dev/changelog/cleaning-up-deprecations-in-the-storefront-api" target="_blank" class="body-link">we removed several deprecated fields</a>. With the <code>2022-07</code> release, we're continuing with that effort and removing the following deprecated checkout mutations:</p>
<ul>
<li><code>checkoutGiftCardApply</code></li>
<li><code>checkoutGiftCardRemove</code></li>
<li><code>checkoutEmailUpdate</code></li>
<li><code>checkoutDiscountCodeApply</code></li>
<li><code>checkoutCustomerAssociate</code></li>
<li><code>checkoutCustomerDisassociate</code></li>
<li><code>checkoutCompleteWithTokenizedPayment</code></li>
<li><code>checkoutCompleteWithTokenizedPaymentV2</code></li>
<li><code>checkoutShippingAddressUpdate</code> </li>
<li><code>checkoutCompleteWithCreditCard</code></li>
<li><code>checkoutAttributesUpdate</code></li>
</ul>
<p>These mutations will continue to be available within the <code>2022-04</code> API version until it's sunset in April 2023. For more information on Shopify API versioning, refer to <a href="https://shopify.dev/api/usage/versioning" target="_blank" class="body-link">our documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 07 Jun 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/removal-of-deprecated-storefront-api-checkout-mutations</link>
  </item>
  <item>
    <title>Shopify CLI: Preview your theme changes using any theme</title>
    <description><![CDATA[ <div class=""><p>When developing a theme using Shopify CLI, you can now preview your local changes using any theme in a store. To specify a theme, run the Shopify CLI <a href="https://shopify.dev/themes/tools/cli/theme-commands#serve" target="_blank" class="body-link"><code>theme serve</code></a> command with the new <code>-t</code> or <code>--theme</code> flag:</p>
<pre><code class="language-bash">shopify theme serve -t my-unpublished-theme
</code></pre>
<p>Previously, developers could only preview changes using <a href="https://shopify.dev/themes/tools/cli#development-themes" target="_blank" class="body-link">development themes</a>.</p>
<p><strong>Caution:</strong>
Before running <code>shopify theme serve</code>, pull your remote theme to ensure that any recent changes don't get overwritten by your local development files.</p>
<p>Learn more about <a href="https://shopify.dev/themes/tools/cli/getting-started#preview-test-and-share-your-theme" target="_blank" class="body-link">previewing your theme using Shopify CLI</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 07 Jun 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-cli-preview-your-theme-changes-using-any-theme</link>
  </item>
  <item>
    <title>Support for the XML response format is deprecated from the Admin REST API</title>
    <description><![CDATA[ <div class=""><p>Starting in version 2022-07, support for the XML response format and XML payloads in the Admin REST API is removed. Requests expecting an XML response will result in a 404. Requests that send an XML payload will result in a 415.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jun 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-07</category>
    <link>https://shopify.dev/changelog/support-for-the-xml-response-format-is-deprecated-from-the-admin-rest-api</link>
  </item>
  <item>
    <title>GraphQL Admin API now supports custom content by market</title>
    <description><![CDATA[ <div class=""><p>As of May 9, 2022, you can use the GraphQL Admin API <code>unstable</code> version to surface custom content to buyers in a specific market, including custom content for a store’s default language.  </p>
<p>This feature enables merchants to provide the following kinds of localized and custom content:</p>
<ul>
<li>Support showing regional spelling or preferred terms. For example, a “Sweaters” menu title for a United States market, and a “Jumpers” menu title for a United Kingdom market. </li>
<li>Display promotional content based on the buyer’s market. For example, a custom Thanksgiving announcement bar in October for Canadian buyers.</li>
</ul>
<p>For more information, refer to examples in our developer documentation for the <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/translationsRegister" target="_blank" class="body-link">translationsRegister</a>, <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/translationsRemove" target="_blank" class="body-link">translationsRemove</a>, and <a href="https://shopify.dev/api/admin-graphql/unstable/queries/translatableResource" target="_blank" class="body-link">translatableResource</a> mutations.</p>
</div> ]]></description>
    <pubDate>Mon, 09 May 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-now-supports-custom-content-by-market</link>
  </item>
  <item>
    <title>Support added for compressed GIF images</title>
    <description><![CDATA[ <div class=""><p>A much wider range of optimized GIFs, including LZW compression, are now accepted for upload.</p>
<p>To learn more about which image formats Shopify accepts refer to: <a href="https://help.shopify.com/en/manual/online-store/images/theme-images#image-formats" target="_blank" class="body-link">https://help.shopify.com/en/manual/online-store/images/theme-images#image-formats</a></p>
</div> ]]></description>
    <pubDate>Tue, 03 May 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/support-added-for-compressed-gif-images</link>
  </item>
  <item>
    <title>Subscription apps support Google Pay</title>
    <description><![CDATA[ <div class=""><p>Google Pay payments are now accepted for recurring transactions. For these transactions, the <code>CustomerCreditCard</code> will have a source of <code>google_pay</code>. </p>
<p>For more information, refer to <a href="https://shopify.dev/apps/subscriptions" target="_blank" class="body-link">Building subscription apps</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 22 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/subscription-apps-support-google-pay</link>
  </item>
  <item>
    <title>TranslationsRemove endpoint now supports removing asset translation keys</title>
    <description><![CDATA[ <div class=""><p>The <code>TranslationsRemove</code> endpoint now supports deleting translations that are stored in asset files.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-04/mutations/translationsremove" target="_blank" class="body-link">the <code>TranslationsRemove</code> endpoint</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 19 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/translationsremove-endpoint-now-supports-removing-asset-translation-keys</link>
  </item>
  <item>
    <title>Themes now support 25 sections per template and 50 blocks per section</title>
    <description><![CDATA[ <div class=""><p>Based on your feedback, we've updated the number of sections and blocks you can add within a template. You can now add up to 25 sections per template and 50 blocks per section within each template. </p>
<p>This will support use cases like: </p>
<ul>
<li>Adding more blocks to an FAQ section</li>
<li>Adding multiple profile sections on the <strong>About Us</strong> page</li>
<li>Creating multiple areas of focus on the homepage </li>
<li>Section and block support for very large collections</li>
</ul>
<p>You can specify a lower limit with the <code>max_blocks</code> attribute.</p>
<p>Learn more about section and block limits in our <a href="https://shopify.dev/themes/architecture/sections/section-schema#max_blocks" target="_blank" class="body-link">theme architecture documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 19 Apr 2022 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/themes-now-support-25-sections-per-template-and-50-blocks-per-section</link>
  </item>
  <item>
    <title>Theme app extensions now support conditional app blocks</title>
    <description><![CDATA[ <div class=""><p>The visibility of an app block, or app embed block, of a <a href="https://shopify.dev/apps/online-store/theme-app-extensions/" target="_blank" class="body-link">theme app extension</a> can now be controlled based on a custom condition. </p>
<p>The condition can be included in the block's <a href="https://shopify.dev/apps/online-store/theme-app-extensions/extensions-framework#schema" target="_blank" class="body-link">schema</a> with the <code>available_if</code> attribute, and the state of the condition is stored in an <a href="/api/admin-graphql/2022-04/enums/MetafieldOwnerType#value-apipermission" target="_blank" class="body-link">app-owned metafield</a>. The metafield can be accessed through the Liquid <a href="/api/liquid/objects/app" target="_blank" class="body-link"><code>app</code> object</a>.</p>
<p>To learn more about conditional app blocks, refer to <a href="/apps/online-store/theme-app-extensions/extensions-framework#conditional-app-blocks" target="_blank" class="body-link">Theme app extensions framework</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/theme-app-extensions-now-support-conditional-app-blocks</link>
  </item>
  <item>
    <title>New app Liquid object</title>
    <description><![CDATA[ <div class=""><p>A new Liquid <code>app</code> object is available for use within the context of theme app extensions and app proxies. The <code>app</code> object can be used to access an app's <a href="/api/liquid/objects/metafield" target="_blank" class="body-link">metafields</a>.</p>
<p>Refer to the <a href="/api/liquid/objects/app" target="_blank" class="body-link"><code>app</code> object</a> documentation for more information.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-app-liquid-object</link>
  </item>
  <item>
    <title>New checkoutChargeAmount field added to Cart object on Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2022-04, a new <code>checkoutChargeAmount</code> field has been added to <code>Cart</code>. It indicates the subtotal amount to be paid for this cart at checkout, not including any deferred payments. This field is currently restricted behind the <code>extend_selling_plans_api</code> beta flag.</p>
<p>The <code>checkoutChargeAmount</code> field is similar to the <code>subtotal</code> field. The <code>subtotal</code> field indicates the subtotal that will be paid altogether, including any payments that will be made at a later date. The <code>checkoutChargeAmount</code> is the actual price that will be paid at the time of checkout.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-checkoutchargeamount-field-added-to-cart-object-on-storefront-api</link>
  </item>
  <item>
    <title>New field deliveryGroups for the cart object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04, a new <code>deliveryGroups</code> connection has been added to <code>cart</code>. It consists of a group of delivery options available for the line items in the cart, for a specified shipping address. Delivery groups are only available for logged-in customers with a full default address.</p>
<p>Refer to our documentation on <a href="https://shopify.dev/api/storefront/2022-01/mutations/cartCreate#field-cartinput-buyeridentity" target="_blank" class="body-link">cartCreate</a> and <a href="https://shopify.dev/api/storefront/2022-01/mutations/customerCreate" target="_blank" class="body-link">customerCreate</a> to learn more about how to create a cart associated with a logged-in customer.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-field-deliverygroups-for-the-cart-object</link>
  </item>
  <item>
    <title>Attribute orders to a sales channel</title>
    <description><![CDATA[ <div class=""><p>As of Admin API version 2022-04, two new fields, <code>source_url</code> and <code>source_identifier</code> have been added to the Orders and Checkout objects in both the REST and Graph APIs. The <code>source_name</code> field will also be updated across these APIs for the Orders, Draft Orders and Checkout object. By adding a valid <code>source_name</code>, the order will be attributed to a list of sales channels found within the partner's dashboard.</p>
<p>More information can be found <a href="https://shopify.dev/changelog/channel-attribution-is-now-available-in-beta" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/attribute-orders-to-a-sales-channel</link>
  </item>
  <item>
    <title>Storefront API @inContext directive supports languages</title>
    <description><![CDATA[ <div class=""><p>As of version 2022-04, the <code>@inContext</code> directive in the Storefront API accepts a <code>language</code> argument in addition to <code>country</code>. If the requested language is active for the given country, as configured within the shop's Market settings, then the query will return translated values.</p>
<p>The list of available languages can be accessed with this query:</p>
<pre><code class="language-graphql">query Localization @inContext(country: CA, language: FR) {
  localization {
    # for the current country
    availableLanguages {
      isoCode
      endonymName
    }
    # and for non-current countries
    availableCountries {
      isoCode
      name
      availableLanguages {
        isoCode
        endonymName
      }
    }
  }
}
</code></pre>
<p>If an unsupported language or country is requested via <code>@inContext</code>, the response will fall back to supported values. In all cases, the actual country and language context will be returned as a response extension.</p>
<pre><code class="language-json">{
  &quot;data&quot;: {
    &quot;productByHandle&quot;: {
      &quot;title&quot;: &quot;Cat bed&quot;,
      &quot;variants&quot;: {
        &quot;edges&quot;: [
          {
            &quot;node&quot;: {
              &quot;priceV2&quot;: {
                &quot;amount&quot;: &quot;100.0&quot;,
                &quot;currencyCode&quot;: &quot;CAD&quot;
              }
            }
          }
        ]
      }
    }
  },
  &quot;extensions&quot;: {
    &quot;context&quot;: {
      &quot;country&quot;: &quot;CA&quot;,
      &quot;language&quot;: &quot;EN&quot;
    }
  }
}
</code></pre>
<p>Learn more about <a href="https://shopify.dev/api/examples/multiple-languages" target="_blank" class="body-link">supporting multiple languages on storefronts</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/storefront-api-incontext-directive-supports-languages</link>
  </item>
  <item>
    <title>New value for the FilterType enum</title>
    <description><![CDATA[ <div class=""><p>As of API version 2022-04, the GraphQL Admin API's <code>FilterType</code> enum has a new value(<code>BOOLEAN</code>). The <code>BOOLEAN</code> value is assigned when a filter is based off a <code>boolean</code> type metafield definition.</p>
<p>For more information, refer to the <a href="https://shopify.dev/api/storefront/latest/objects/Filter" target="_blank" class="body-link"><code>Filter</code></a> object.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-value-for-the-filtertype-enum</link>
  </item>
  <item>
    <title>New menu field in the Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of the 2022-04 version of the Storefront API, you can fetch a navigation menu by handle with the <a href="https://shopify.dev/api/storefront/latest/queries/menu" target="_blank" class="body-link"><code>menu</code> field</a>. The new field returns a <a href="https://shopify.dev/api/storefront/latest/objects/Menu" target="_blank" class="body-link"><code>Menu</code> object</a>, and can be used to replicate a merchant's Online Store menus on custom storefronts.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-menu-field-in-the-storefront-api</link>
  </item>
  <item>
    <title>Deprecated fields on the Customer object</title>
    <description><![CDATA[ <div class=""><p>The following are changes to the GraphQL Admin API's <code>Customer</code> object:</p>
<ul>
<li>The <code>orders_count</code> field is renamed to <code>number_of_orders</code>.</li>
<li>The <code>total_spent</code> and <code>total_spent_v2</code> fields are replaced by <code>amount_spent</code>.</li>
<li>The <code>has_note</code> field is removed. The <code>note</code> field still exists on the <code>customer</code>.</li>
<li>The <code>has_timeline_comment</code> field is removed. To query for comments on the timeline, use the events connection and a <code>query</code> argument containing <code>verb:comment</code>, or look for a <code>CommentEvent</code> in the <code>__typename</code> of events.</li>
</ul>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/latest/objects/Order#top" target="_blank" class="body-link"><code>Customer</code></a> object.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/deprecated-fields-on-the-customer-object</link>
  </item>
  <item>
    <title>New email marketing consent for customers and deprecated fields</title>
    <description><![CDATA[ <div class=""><p>The accepts marketing and related fields were used to indicate if a customer subscribed to all marketing channels. In 2021, we started separating marketing consent into SMS and email channels by introducing SMS marketing consent.</p>
<p>In API version 2022-04, we’re completing that split by deprecating the accepts marketing fields and replacing them with email marketing consent fields. You’ll need to update your apps to use the SMS and email marketing consent fields to send the opt-in level, consent state and the time at which the consent was granted, instead of a simple Boolean to express the marketing consent of customers.</p>
<p>As of GraphQL Admin API version 2022-04, we're deprecating the <code>acceptsMarketing</code>, <code>acceptsMarketingUpdatedAt</code> and <code>marketingOptInLevel</code> fields on the <code>Customer</code> object and <code>CustomerInput</code> input object.</p>
<p>The deprecated fields are replaced by the following new fields, that you can access using the <code>emailMarketingConsent</code> field on the <code>CustomerInput</code> object:</p>
<ul>
<li><code>marketingState</code></li>
<li><code>consentUpdatedAt</code></li>
<li><code>marketingOptInLevel</code></li>
</ul>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/2022-04/input-objects/CustomerInput" target="_blank" class="body-link"><code>CustomerInput</code></a> input object on Shopify.dev.</p>
<p>As of REST Admin API version 2022-04, we're deprecating the <code>accepts_marketing</code>, <code>accepts_marketing_updated_at</code> and <code>marketing_opt_in_level</code> fields on the <code>Customer</code> resource.</p>
<p>The deprecated fields are replaced by the following properties on the new <code>email_marketing_consent</code> field for the <code>Customer</code> resource:</p>
<ul>
<li><code>state</code></li>
<li><code>consent_updated_at</code></li>
<li><code>opt_in_level</code></li>
</ul>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-rest/2022-04/resources/customer" target="_blank" class="body-link"><code>Customer</code></a> resource on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-email-marketing-consent-for-customers-and-deprecated-fields</link>
  </item>
  <item>
    <title>New checkoutCharge field added to the Storefront API sellingPlan object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04, a new <code>checkoutCharge</code> field has been added to <code>sellingPlan</code>. It consists of a charge type (either <code>percentage</code> or <code>price</code>), and an amount, indicating how much of the product's cost will be charged at the time of checkout. This field is currently restricted behind the <code>extend_selling_plans_api</code> beta flag.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-checkoutcharge-field-added-to-the-storefront-api-sellingplan-object</link>
  </item>
  <item>
    <title>New: Markets API</title>
    <description><![CDATA[ <div class=""><p>After the release of <a href="https://www.shopify.com/markets" target="_blank" class="body-link">Shopify Markets</a>, we are following up with the Markets API in version 2022-04. The API allows you to create, update, and delete markets and their settings.</p>
<p>Shopify Markets unlocks the ability to create high-performing, localized buyer experiences by allowing merchants to specify the domain, language, currency and price that international buyers see when browsing a merchant's storefront.</p>
<p>You can learn more about the Markets API on <a href="https://shopify.dev/api/admin-graphql/unstable/objects/Market#top" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-markets-api</link>
  </item>
  <item>
    <title>New fulfillment information API fields for fulfill by and expected delivery time</title>
    <description><![CDATA[ <div class=""><p><strong>GraphQL Admin API</strong></p>
<p>As of GraphQL Admin API version 2022-04, we're adding the <code>fulfillBy</code> to the <code>FulfillmentOrder</code> object. The field represents the latest date and time when all items in the fulfillment order need to be fulfilled. </p>
<p>We're also adding the <code>maxDeliveryDateTime</code> and <code>minDeliveryDateTime</code> fields to the <code>DeliveryMethod</code> object. When combined, they represent a range of time when the delivery is expected to be completed.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin-graphql/2022-04/objects/FulfillmentOrder#top" target="_blank" class="body-link"><code>FulfillmentOrder</code></a> and <a href="https://shopify.dev/api/admin-graphql/2022-04/objects/deliverymethod#fields" target="_blank" class="body-link"><code>DeliveryMethod</code></a> objects.</p>
<p><strong>REST Admin API</strong></p>
<p>As of REST Admin API version 2022-04, the following properties are added to the <code>FulfillmentOrder</code> resource: </p>
<ul>
<li><code>fulfill_by</code></li>
<li><code>delivery_method.max_delivery_date_time</code> </li>
<li><code>delivery_method.min_delivery_date_time</code></li>
</ul>
<p>Learn more about the <a href="https://shopify.dev/api/admin-rest/2022-04/resources/fulfillmentorder" target="_blank" class="body-link"><code>FulfillmentOrder</code></a> resource.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-fulfillment-information-api-fields-for-fulfill-by-and-expected-delivery-time</link>
  </item>
  <item>
    <title>Enhancements to pagination for GraphQL connections</title>
    <description><![CDATA[ <div class=""><p>In addition to <code>edges</code>, GraphQL connections now have a <code>nodes</code> field. When you only query <code>node</code> on <code>edges</code>, you can simplify the query.</p>
<p>For example:</p>
<p><code>{ connection { edges { node { fields } } }</code></p>
<p>can be simplified to:</p>
<p><code>{ connection { nodes { fields } } }</code></p>
<p><code>PageInfo</code> has been expanded as well to include <code>startCursor</code> and <code>endCursor</code>. </p>
<p>When these fields are used in tandem, it can simplify the shape of return data for pagination. </p>
<p>Previous query format:</p>
<p><code>{ connection { edges { cursor node { fields } } pageInfo { hasNextPage } } }</code></p>
<p>Improved query format:</p>
<p><code>{ connection { nodes { fields } pageInfo { hasNextPage endCursor } } }</code></p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/enhancements-to-pagination-for-graphql-connections</link>
  </item>
  <item>
    <title>New app billing discounts and app trial extensions</title>
    <description><![CDATA[ <div class=""><p>We are introducing new flexible ways for app partners to offer merchants incentives for app subscriptions. </p>
<p><strong>Recurring App Discounts</strong> </p>
<p>As of GraphQL Admin API version 2022-04, app developers can now offer limited time discounts on recurring app charges through the Billing API. Partners may define a percentage or fixed amount discount that will be applied to a designated number of billing cycles (e.g. 20% of 6 billing cycles). This will enable app partners to create introductory offers for new merchants. </p>
<p>Learn more about app billing discounts on <a href="https://shopify.dev/apps/billing/purchase-adjustments/subscription-discounts" target="_blank" class="body-link">Shopify.dev</a>.</p>
<p><strong>App Trial Extensions</strong></p>
<p>App developers can increase the number of trial days offered to a recurring app charge by using the new appSubscriptionTrialExtend offered without merchants accepting a new app subscription. This will enable developers to provide new merchants additional time to trial products. App trial extension is currently available in the unstable version of the GraphQL Admin API. </p>
<p>Learn more about trial extensions on <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/appSubscriptionTrialExtend" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-app-billing-discounts-and-app-trial-extensions</link>
  </item>
  <item>
    <title>Providing app credits in the appSubscriptionCancel mutation</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04, app partners can issue prorated credits for the unused portion of the app subscription when a recurring app charge is cancelled. This enables developers to automatically provide app credits to merchants when they uninstall an app or cancel a subscription, and reduce support requests to app partners for refund requests.  </p>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/latest/mutations/appSubscriptionCancel" target="_blank" class="body-link">appSubscriptionCancel</a> mutation.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/providing-app-credits-in-the-appsubscriptioncancel-mutation</link>
  </item>
  <item>
    <title>new checkoutChargeAmount and remainingBalanceChargeAmount fields on Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04,  <code>checkoutChargeAmount</code> and <code>remainingBalanceChargeAmount</code> fields have been added to <code>sellingPlanAllocation</code>. These fields indicate how much of a product variant's price must be paid upfront, and how much must be paid at a later date. This field is currently restricted behind the <code>extend_selling_plans_api</code> beta flag.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-checkoutchargeamount-and-remainingbalancechargeamount-fields-on-storefront-api</link>
  </item>
  <item>
    <title>Videos in Files and Metafields</title>
    <description><![CDATA[ <div class=""><p>You can now create <a href="https://shopify.dev/api/admin-graphql/2022-01/objects/video#top" target="_blank" class="body-link">videos</a> and transcode them to multiple formats, using the <a href="https://shopify.dev/api/admin-graphql/2022-01/mutations/filecreate" target="_blank" class="body-link">FileCreate</a> mutation. </p>
<p>You can also  attach videos to metafields using <a href="https://shopify.dev/apps/metafields/types" target="_blank" class="body-link">file_reference</a>. These videos are also available using the Storefront API. </p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/videos-in-files-and-metafields</link>
  </item>
  <item>
    <title>Deprecating countries field on PriceListContextRuleInput</title>
    <description><![CDATA[ <div class=""><p>With the launch of the Markets API as of version 2022-04, price lists are no longer associated with a country, but with a market. We've deprecated the <code>countries</code> field on the <code>PriceListContextRuleInput</code> object and replaced it with a new field called <code>marketId</code>. </p>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/2022-04/input-objects/pricelistcontextruleinput" target="_blank" class="body-link"><code>PriceListContextRuleInput</code></a> object.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/deprecating-countries-field-on-pricelistcontextruleinput</link>
  </item>
  <item>
    <title>Enhancements to pagination for GraphQL connections</title>
    <description><![CDATA[ <div class=""><p>In addition to <code>edges</code>, GraphQL connections now have a <code>nodes</code> field. When you only query <code>node</code> on <code>edges</code>, you can simplify the query.</p>
<p>For example:</p>
<p><code>{ connection { edges { node { fields } } }</code></p>
<p>can be simplified to:</p>
<p><code>{ connection { nodes { fields } } }</code></p>
<p><code>PageInfo</code> has been expanded as well to include <code>startCursor</code> and <code>endCursor</code>. </p>
<p>When these fields are used in tandem, it can simplify the shape of return data for pagination. </p>
<p>Previous query format:</p>
<p><code>{ connection { edges { cursor node { fields } } pageInfo { hasNextPage } } }</code></p>
<p>Improved query format:</p>
<p><code>{ connection { nodes { fields } pageInfo { hasNextPage endCursor } } }</code></p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/enhancements-to-pagination-for-graphql-connections</link>
  </item>
  <item>
    <title>New app billing discounts and app trial extensions</title>
    <description><![CDATA[ <div class=""><p>We are introducing new flexible ways for app partners to offer merchants incentives for app subscriptions. </p>
<p><strong>Recurring App Discounts</strong> </p>
<p>As of GraphQL Admin API version 2022-04, app developers can now offer limited time discounts on recurring app charges through the Billing API. Partners may define a percentage or fixed amount discount that will be applied to a designated number of billing cycles (e.g. 20% of 6 billing cycles). This will enable app partners to create introductory offers for new merchants. </p>
<p>Learn more about app billing discounts on <a href="https://shopify.dev/apps/billing/purchase-adjustments/subscription-discounts" target="_blank" class="body-link">Shopify.dev</a>.</p>
<p><strong>App Trial Extensions</strong></p>
<p>App developers can increase the number of trial days offered to a recurring app charge by using the new appSubscriptionTrialExtend offered without merchants accepting a new app subscription. This will enable developers to provide new merchants additional time to trial products. App trial extension is currently available in the unstable version of the GraphQL Admin API. </p>
<p>Learn more about trial extensions on <a href="https://shopify.dev/api/admin-graphql/unstable/mutations/appSubscriptionTrialExtend" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-app-billing-discounts-and-app-trial-extensions</link>
  </item>
  <item>
    <title>Providing app credits in the appSubscriptionCancel mutation</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04, app partners can issue prorated credits for the unused portion of the app subscription when a recurring app charge is cancelled. This enables developers to automatically provide app credits to merchants when they uninstall an app or cancel a subscription, and reduce support requests to app partners for refund requests.  </p>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/latest/mutations/appSubscriptionCancel" target="_blank" class="body-link">appSubscriptionCancel</a> mutation.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/providing-app-credits-in-the-appsubscriptioncancel-mutation</link>
  </item>
  <item>
    <title>new checkoutChargeAmount and remainingBalanceChargeAmount fields on Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04,  <code>checkoutChargeAmount</code> and <code>remainingBalanceChargeAmount</code> fields have been added to <code>sellingPlanAllocation</code>. These fields indicate how much of a product variant's price must be paid upfront, and how much must be paid at a later date. This field is currently restricted behind the <code>extend_selling_plans_api</code> beta flag.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-checkoutchargeamount-and-remainingbalancechargeamount-fields-on-storefront-api</link>
  </item>
  <item>
    <title>Videos in Files and Metafields</title>
    <description><![CDATA[ <div class=""><p>You can now create <a href="https://shopify.dev/api/admin-graphql/2022-01/objects/video#top" target="_blank" class="body-link">videos</a> and transcode them to multiple formats, using the <a href="https://shopify.dev/api/admin-graphql/2022-01/mutations/filecreate" target="_blank" class="body-link">FileCreate</a> mutation. </p>
<p>You can also  attach videos to metafields using <a href="https://shopify.dev/apps/metafields/types" target="_blank" class="body-link">file_reference</a>. These videos are also available using the Storefront API. </p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/videos-in-files-and-metafields</link>
  </item>
  <item>
    <title>Deprecating countries field on PriceListContextRuleInput</title>
    <description><![CDATA[ <div class=""><p>With the launch of the Markets API as of version 2022-04, price lists are no longer associated with a country, but with a market. We've deprecated the <code>countries</code> field on the <code>PriceListContextRuleInput</code> object and replaced it with a new field called <code>marketId</code>. </p>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/2022-04/input-objects/pricelistcontextruleinput" target="_blank" class="body-link"><code>PriceListContextRuleInput</code></a> object.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/deprecating-countries-field-on-pricelistcontextruleinput</link>
  </item>
  <item>
    <title>App-owned Metafields</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04, a new owner type <code>ApiPermission</code> is now available for metafields. A metafield with this permission type will only be readable and writable by the app that owns the metafield.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Apr 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/app-owned-metafields</link>
  </item>
  <item>
    <title>Updates to error codes for translationsRegister</title>
    <description><![CDATA[ <div class=""><p>Although the <code>INVALID_LOCALE_FOR_SHOP</code> error code was introduced in the 2020-07 version, it has never been used to represent a <code>locale</code> field related error when calling the <code>translationsRegister</code> mutation. </p>
<p>As of GraphQL Admin API version 2022-04, the <code>INVALID_LOCALE_FOR_SHOP</code> error code is used to represent all errors related to the <code>locale field</code> on the <code>Translation</code> object.</p>
<p>Previous verions will still use the <code>INVALID_CODE</code> error code to represent errors related to the locale field.</p>
</div> ]]></description>
    <pubDate>Thu, 31 Mar 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-error-codes-for-translationsregister</link>
  </item>
  <item>
    <title>Online Store 2.0: Two-way sync support on Shopify CLI</title>
    <description><![CDATA[ <div class=""><p>Theme developers can now use the Shopify CLI <code>theme serve</code> command with the new <code>--theme-editor-sync</code> flag. When active, theme editor changes are automatically synced back to the local development files. </p>
<p>Learn more about <a href="https://shopify.dev/themes/tools/cli/theme-commands#serve" target="_blank" class="body-link">Shopify CLI theme commands</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 31 Mar 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/online-store-2-0-two-way-sync-support-on-shopify-cli</link>
  </item>
  <item>
    <title>CI/CD support for scripts, extensions</title>
    <description><![CDATA[ <div class=""><p>Developers can now programmatically push their scripts and extensions to Shopify from their CI/CD pipelines with CLI authentication tokens. </p>
<p>For more information on how to set up CI/CD for your scripts and extensions, visit <a href="https://shopify.dev/apps/tools/cli/ci-cd" target="_blank" class="body-link">our developer documentation</a>.  </p>
</div> ]]></description>
    <pubDate>Thu, 24 Mar 2022 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/ci-cd-support-for-scripts-extensions</link>
  </item>
  <item>
    <title>New theme editor setting types: product list and collection list</title>
    <description><![CDATA[ <div class=""><p>Two new input setting types have been added to the theme editor: <code>product_list</code> and <code>collection_list</code>. They allow merchants to quickly create curated, ordered and paginatable lists of products and collections.</p>
<p>Learn more about <a href="https://shopify.dev/themes/architecture/settings/input-settings#product_list" target="_blank" class="body-link">product_list</a> and <a href="https://shopify.dev/themes/architecture/settings/input-settings#collection_list" target="_blank" class="body-link">collection_list</a> on shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 23 Mar 2022 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-theme-editor-setting-types-product-list-and-collection-list</link>
  </item>
  <item>
    <title>Changes to metafield definition error codes</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04, an error returns when a metafield definition is created with invalid characters in either the <code>key</code> or the <code>namespace</code> fields. The <code>key</code>  and <code>namespace</code> fields can contain only alphanumeric characters, hyphens, and underscores.</p>
<p><a href="https://shopify.dev/api/admin-graphql/current/objects/MetafieldDefinition" target="_blank" class="body-link">Learn more about the <code>MetafieldDefinition</code> object</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 21 Mar 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/changes-to-metafield-definition-error-codes</link>
  </item>
  <item>
    <title>New fields on App and AccessScope</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-04, new fields on the App resource are available. These include <code>previouslyInstalled</code>, <code>webhookApiVersion</code>, <code>developerType</code>, <code>requestedAccessScopes</code>, <code>availableAccessScopes</code>, and <code>publicCategory</code>. <code>publicCategory</code> introduces a new enum <code>AppPublicCategory</code> which represents the distribution pattern the app uses.</p>
</div> ]]></description>
    <pubDate>Tue, 15 Mar 2022 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/new-fields-on-app-and-accessscope</link>
  </item>
  <item>
    <title>App store listings now have additional Partner details</title>
    <description><![CDATA[ <div class=""><p>As of March 14, 2022, app listing pages will include additional details about Partners, such as how many apps they have on the store, the average app rating (for all apps combined), and how long they’ve developed for Shopify. Some of this information is already displayed on the app developer pages, but we’re adding it to the app listing page so that merchants have the decision-making details they need in a single place.</p>
<p>See your app listing page under the <strong>Support</strong> tab for more details.</p>
</div> ]]></description>
    <pubDate>Mon, 14 Mar 2022 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-store-listings-now-have-additional-partner-details</link>
  </item>
  <item>
    <title>Theme app extensions now support locales directory</title>
    <description><![CDATA[ <div class=""><p>As of today, apps will be able to store translation strings in a centralized locales folder accessible across all app blocks and app embeds within a theme app extension.</p>
<p>For more information about the locales directory, refer to the <a href="https://shopify.dev/apps/online-store/theme-app-extensions/extensions-framework#file-structure" target="_blank" class="body-link">theme app extension framework file structure</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Mar 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/theme-app-extensions-now-support-locales-directory</link>
  </item>
  <item>
    <title>Scheduled Publishing to Channels is now Generally Available</title>
    <description><![CDATA[ <div class=""><p>We’ve just released Product Scheduled Publishing to Channels, allowing merchants to schedule products to be published to a sales channel at a specific datetime.</p>
<p>For channels that have product validation workflows, you’ll need to integrate with scheduled product publishing so that your channel can validate products before their scheduled publication datetime.</p>
<p><a href="https://docs.google.com/forms/d/e/1FAIpQLSeK6ePzACpc-kAdOgrwZJ8eCBatIiAv7nk_5e98Mtguv5JTyw/viewform" target="_blank" class="body-link">Complete this form</a> to sign your channel up for scheduled publishing.</p>
<p>For more information, refer to <a href="https://shopify.dev/apps/channels/scheduled-product-publishing" target="_blank" class="body-link">scheduled publishing</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 24 Feb 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/scheduled-publishing-to-channels-is-now-generally-available</link>
  </item>
  <item>
    <title>Display duties with Liquid using `order.total_duties`</title>
    <description><![CDATA[ <div class=""><p>A new attribute (<code>total_duties</code>) is now available on the <code>order</code> object. <code>order.total_duties</code> attribute returns the sum of all duties applied to line items in the order. <code>order.total_duties</code> returns <code>nil</code> if duties are not applicable to the order.</p>
<p>For more information, refer to <a href="https://shopify.dev/api/liquid/objects/order#order-total_duties" target="_blank" class="body-link">order.total_duties</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 18 Feb 2022 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/display-duties-with-liquid-using-order-total_duties</link>
  </item>
  <item>
    <title>Changes to Theme Translatable Content Keys </title>
    <description><![CDATA[ <div class=""><p>As of February 17th, newly-created themes will generate translatable content keys for content in JSON templates in an altered format. Translations originating outside of JSON templates, such as those stored in the <code>locales/</code> folder of a theme, are not affected by this change.</p>
<p>Old: <code>section.Template—123456__section_id.block_id.setting_id</code>
New: <code>section.product.ext.json.section_id.block_id.setting_id:abc123</code></p>
<p>We consider the precise format of these keys to be an implementation detail, but try to ensure that the keys remain consistent for a resource over time. Given that, these new keys will only be generated for themes that are uploaded or duplicated after 12:00 EST February 17th.</p>
<p>More information about our translation API is available in our <a href="https://shopify.dev/api/examples/i18n-app-translations" target="_blank" class="body-link">API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 17 Feb 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-theme-translatable-content-keys</link>
  </item>
  <item>
    <title>Shopify Markets is now Generally Available</title>
    <description><![CDATA[ <div class=""><p>We’ve just released Shopify Markets, which helps merchants sell their products to customers in different countries from a single Shopify store. Merchants can also create unique experiences for their global customers from the Shopify Markets admin's Settings. Apps and themes must use the <a href="https://shopify.dev/themes/internationalization/multiple-currencies-languages#locale-aware-urls" target="_blank" class="body-link">routes</a> object to support subfolders with locale-aware URLs, and should also use the <a href="https://shopify.dev/themes/internationalization/multiple-currencies-languages" target="_blank" class="body-link">country</a> object (instead of currency) if they provide storefront switchers.</p>
<p>Shopify Markets is now available for all merchants, with <a href="https://help.shopify.com/en/manual/markets/stores-excluded-from-markets" target="_blank" class="body-link">some exceptions</a>. All development stores now have access to Shopify Markets.</p>
<p>For more information, refer to <a href="https://help.shopify.com/en/manual/markets" target="_blank" class="body-link">Shopify Markets</a>. Developer considerations for supporting multiple currencies and languages can be found <a href="https://shopify.dev/themes/internationalization/multiple-currencies-languages" target="_blank" class="body-link">here</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 15 Feb 2022 21:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-markets-is-now-generally-available</link>
  </item>
  <item>
    <title> Cart change REST API now supports changing selling plan</title>
    <description><![CDATA[ <div class=""><p>It’s now possible to upsell subscriptions in cart in the online store. We added a new field, <code>selling_plan</code>, to the  <a href="https://shopify.dev/api/ajax/reference/cart#post-cart-change-js" target="_blank" class="body-link"><code>/cart/change.js</code></a> endpoint in the AJAX REST API to support adding, updating, and removing the selling plan.</p>
<p>Learn more about supporting subcriptions on <a href="https://shopify.dev/themes/pricing-payments/subscriptions/support-subscriptions" target="_blank" class="body-link">shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 14 Feb 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/cart-change-rest-api-now-supports-changing-selling-plan</link>
  </item>
  <item>
    <title>Subscriptions APIs now support Apple Pay</title>
    <description><![CDATA[ <div class=""><p>Apple Pay payments are now accepted for recurring transactions. We added source and virtualLastDigits to the <a href="https://shopify.dev/api/admin-graphql/2021-10/objects/CustomerCreditCard#fields" target="_blank" class="body-link">CustomerCreditCard</a> object to support this, in the 2021-10 release.</p>
<p>Note: Available to merchants using Shopify Payments in the US, Canada, Australia, and New Zealand for Visa and Mastercard.</p>
<p>For more information, refer to <a href="https://shopify.dev/apps/subscriptions" target="_blank" class="body-link">subscriptions</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Feb 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/subscriptions-apis-now-support-apple-pay</link>
  </item>
  <item>
    <title>Segmentation API available in 2022-04 release</title>
    <description><![CDATA[ <div class=""><p>In the 2022-04 API version release, Shopify is introducing a Segmentation API for the GraphQL Admin. The API helps app partners support merchants that want to target specific customer groups for marketing, analytics, and reporting. Saved searches and Discount Eligibility based on saved searches, will be deprecated in favor of the Segmentation API. </p>
<p>If your app uses saved searches, then you need to migrate your app to support segments. Learn more about Segmentation in our <a href="https://shopify.dev/beta/segmentation-api" target="_blank" class="body-link">developer documentation</a> or visit our <a href="https://community.shopify.com/c/shopify-apis-and-sdks/segmentation-api-now-available/m-p/1465812" target="_blank" class="body-link">API forum</a> for questions.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Feb 2022 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/segmentation-api-available-in-2022-04-release</link>
  </item>
  <item>
    <title>Name change for Shopify’s GitHub app</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://github.com/apps/shopify" target="_blank" class="body-link">app</a> that manages connections between Shopify and GitHub has changed its name from <strong>Shopify Online Store</strong> to <strong>Shopify</strong>. There’s no change to the app’s existing functionality.</p>
<p>This change reflects <a href="https://shopify.dev/changelog/updated-permissions-on-the-shopify-online-store-app-for-github" target="_blank" class="body-link">earlier updates</a> to Shopify’s GitHub app, which allows it to be used for custom storefront development with <a href="https://hydrogen.shopify.dev/" target="_blank" class="body-link">Hydrogen</a>, in addition to managing theme code for the online store. We’ll continue to use this app to manage any additional future connections between Shopify and GitHub.</p>
<p>Learn more about the <a href="https://shopify.dev/themes/tools/github" target="_blank" class="body-link">Shopify GitHub integration</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 31 Jan 2022 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/name-change-for-shopify-s-github-app</link>
  </item>
  <item>
    <title>Changes to Storefront API Object IDs </title>
    <description><![CDATA[ <div class=""><p>Last year, we announced that there were <a href="https://shopify.dev/changelog/improvements-and-changes-coming-to-the-storefront-api" target="_blank" class="body-link">some updates</a> coming to the Storefront API around object IDs.</p>
<p>As of today, when requesting the <code>unstable</code>, <code>2022-04</code> release candidate, or future versions of the Storefront API, the object IDs returned will no longer be Base64 encoded.</p>
<p>Please refer to this <a href="https://shopify.dev/custom-storefronts/object-ids" target="_blank" class="body-link">migation guide</a> for more details on the change and the steps needed to ensure your apps continue to work properly.</p>
</div> ]]></description>
    <pubDate>Thu, 27 Jan 2022 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/changes-to-storefront-api-object-ids</link>
  </item>
  <item>
    <title>Updated Admin GraphQL/Storefront ExternalVideo URL fields</title>
    <description><![CDATA[ <div class=""><p>As part of the 2022-04 API release, we've updated the Admin GraphQL and Storefront APIs to provide clearer URLs for the <code>ExternalVideo</code> type: </p>
<ul>
<li>The <code>embeddedUrl</code> field has been deprecated in favor of <code>originUrl</code>. Like <code>embeddedUrl</code>, <code>originUrl</code> returns the URL to the video on its hosted platform (either Vimeo or YouTube). </li>
<li>A new field called <code>embedUrl</code> has been added. It returns the URL required to embed the video inside an iframe.</li>
</ul>
<p>Learn more about the <a href="https://shopify.dev/api/admin-graphql/2022-04/objects/externalvideo" target="_blank" class="body-link">Admin API <code>ExternalVideo</code> type</a> and the <a href="https://shopify.dev/api/storefront/reference/products/externalvideo?api%5Bversion%5D=2022-04" target="_blank" class="body-link">Storefront API <code>ExternalVideo</code> type</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/updated-admin-graphql-storefront-externalvideo-url-fields</link>
  </item>
  <item>
    <title>Introducing a new custom app developer experience </title>
    <description><![CDATA[ <div class=""><p>We’ve simplified the app model at Shopify by introducing a new experience for creating, configuring, and building custom apps in the Shopify admin. </p>
<p>Custom apps now support all of the functionality that private apps do today, and provide better security. Going forward private apps will be replaced by custom apps, however existing private apps can still be used and modified. </p>
<p>Learn more about [the different types of app you can build]  (<a href="https://shopify.dev/apps/getting-started/app-types" target="_blank" class="body-link">https://shopify.dev/apps/getting-started/app-types</a>).</p>
</div> ]]></description>
    <pubDate>Mon, 24 Jan 2022 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/introducing-a-new-custom-app-developer-experience</link>
  </item>
  <item>
    <title>Channel Attribution is now available in beta</title>
    <description><![CDATA[ <div class=""><h2>Channel Attribution is now available in beta</h2>
<p>Passing the correct information to these fields will now improve the accuracy of order source reporting up to the sub-channel level as well as reduce the time merchants spend organizing and fulfilling orders from marketplaces.</p>
<p>The following fields are now being used for sales attribution on the Orders, Checkout, and Draft Orders APIs. Please ensure that the version of the API you are using is unstable.</p>
<p>Orders &amp; Checkout fields:</p>
<ul>
<li><strong>source_name</strong> (string): Handle indicating where the order originated. Can be set only during order creation, and is not writeable afterwards. Values for Shopify channels are protected and cannot be assigned by other API clients: web, pos, shopify_draft_order, iphone, and android. Orders created via the API can be assigned any of the handles listed in the Partner Dashboard, on the app's Marketplace extension. The handles are case sensitive. If the string is not in the list handles, then the order will be left unattributed. If unspecified, then new orders are assigned the value of your app's ID. </li>
<li><strong>source_identifier</strong> (string): The ID belonging to the original order.</li>
<li><strong>source_url</strong> (string): A valid URL pointing to the original order on the originating surface. This URL will eventually be displayed to merchants on the Order Details page. If the URL is invalid, it will not be displayed.</li>
</ul>
<p>Draft Orders fields</p>
<p><strong>source_name</strong> (string): The handle indicating the order’s origin. This field is not writable afterwards so make sure to consult the list of handles beforehand. If your handle does not exist in list of, then value will still be saved and will not block order creation.</p>
<p><em>Note: You need to include the Content-Type param in the header (&quot;Content-Type: application/json&quot;)</em></p>
</div> ]]></description>
    <pubDate>Fri, 21 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/channel-attribution-is-now-available-in-beta</link>
  </item>
  <item>
    <title>Updates to Facebook and Instagram Order and Fulfillment Workflows</title>
    <description><![CDATA[ <div class=""><p>A new checkout experience on Facebook and Instagram is being rolled out to merchants. To ensure your app is compatible for checkout on these marketplaces, <a href="https://shopify.dev/apps/fulfillment/facebook-order-fulfillment" target="_blank" class="body-link">update order and fulfillment workflows to capture payments</a>. </p>
<p>As Shopify merchants transition to Shopify Payments for checkout on Facebook and Instagram, orders that were previously processed by Facebook Payments are now transitioning to Shopify Payments as the payment gateway. As a result, how orders are processed will be changing and we are recommending changes to apps to minimize order automation issues arising following the migration. </p>
<p>Learn more about the <a href="https://shopify.dev/apps/fulfillment/facebook-order-fulfillment" target="_blank" class="body-link">Updates to Facebook and Instagram order and fulfillment workflows</a> in our developer documentation.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jan 2022 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-to-facebook-and-instagram-order-and-fulfillment-workflows</link>
  </item>
  <item>
    <title>Stripe as additional payment gateway for subscriptions</title>
    <description><![CDATA[ <div class=""><p>Merchants can use the Subscription API if they have Stripe on their Shopify checkout or have permission to do so.</p>
<p>For more information, refer to <a href="https://shopify.dev/apps/subscriptions" target="_blank" class="body-link">subscriptions</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Jan 2022 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/stripe-as-additional-payment-gateway-for-subscriptions</link>
  </item>
  <item>
    <title>Updates to our API License and Terms &amp; Partner Program Agreement</title>
    <description><![CDATA[ <div class=""><p>We've made changes to our API License and Terms of Use and our Partner Program Agreement. These changes impact how Shopify Partners and developers interact with the Shopify platform, and offer products or services to merchants. </p>
<p>These changes come into effect as of today, January 5, 2022.</p>
<p>We encourage all developers on our platform to review and be familiar with the <a href="https://www.shopify.com/legal/api-terms" target="_blank" class="body-link">API License and Terms</a> and the <a href="https://www.shopify.ca/partners/terms" target="_blank" class="body-link">Partner Program Agreement</a>, so that you understand how to build, run, and grow your app and development business on our platform. </p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 05 Jan 2022 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-our-api-license-and-terms-partner-program-agreement</link>
  </item>
  <item>
    <title>New Regulatory operating fee field in the Partner payout and app earnings CSV</title>
    <description><![CDATA[ <div class=""><p>On January 5, 2022, we will add a <code>Regulatory operating fee</code> field to the Partner payout and app earnings CSV. </p>
<p>This field will help app and theme developers understand the calculation of the Regulatory Operating Fee introduced in the <a href="https://www.shopify.com/partners/terms" target="_blank" class="body-link">Partner Program Agreement update</a>. It represents the amount deducted from your app and theme charges to merchants based on the applicable merchant business address.</p>
<p>For more information about the Partner Program Agreement update, refer to our <a href="https://help.shopify.com/partners/ppa-api-faq" target="_blank" class="body-link">PPA update FAQ</a>.</p>
<p>For more information about tracking your Partner earnings, visit the <a href="https://help.shopify.com/partners/getting-started/getting-paid" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 05 Jan 2022 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-regulatory-operating-fee-field-in-the-partner-payout-and-app-earnings-csv</link>
  </item>
  <item>
    <title>Authorization errors in mutations are refined</title>
    <description><![CDATA[ <div class=""><p>API calls made to the Admin and Storefront API are denied access if the API client does not have the required <a href="https://shopify.dev/api/usage/access-scopes" target="_blank" class="body-link">access scopes</a> or the user does not have the required permissions. From 2022-01, when access is denied, the required permissions is returned as part of the error message. An error code is also returned.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/authorization-errors-in-mutations-are-refined</link>
  </item>
  <item>
    <title>Introducing standardized and custom product types to GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>We’ve added two new fields to the Product object, <a href="https://shopify.dev/api/admin-graphql/2022-01/objects/Product#field-product-standardizedproducttype" target="_blank" class="body-link">standardizedProductType</a> and <a href="https://shopify.dev/api/admin-graphql/2022-01/objects/Product#field-product-customproducttype" target="_blank" class="body-link">customProductType</a>. The standardized type is a new data primitive that links products to the <a href="https://help.shopify.com/en/manual/products/details/product-type" target="_blank" class="body-link">Shopify Product Taxonomy</a>. We use this today to determine product eligibility for the Shop app and as a part of our BFCM Notebook. We will see future experiences using the standardized product type. The custom type provides further granularity than the standardized type allows.</p>
<p>For more information on Product Taxonomy, visit our <a href="https://shopify.dev/api/admin-graphql/2022-01/queries/productTaxonomy?shpxid=2b1b04af-4F8B-4F6D-BA21-580CE6B4CA21" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 16:25:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/introducing-standardized-and-custom-product-types-to-graphql-admin-api</link>
  </item>
  <item>
    <title>New field on the SuggestedOrderTransaction object</title>
    <description><![CDATA[ <div class=""><p>As of the 2020-10 version of the GraphQL API, a new field is now present on the <code>SuggestedOrderTransaction</code> object: <code>supportedRefundType</code>. This field can contain one of two values, either <code>CARD_NOT_PRESENT_REFUND</code> or <code>CARD_PRESENT_REFUND</code>. </p>
<p>Because &quot;card present&quot; refunds can only be processed by the POS that has access to the physical card, API clients only receive a <code>SuggestedOrderTransaction</code> by default if the <code>supportedRefundType</code> is <code>CARD_NOT_PRESENT_REFUND</code>.</p>
<p>For more information about SuggestedOrderTransactions, visit our <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/order/suggestedordertransaction" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-field-on-the-suggestedordertransaction-object</link>
  </item>
  <item>
    <title>New sellable online quantity field on ProductVariant object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-01, the <code>ProductVariant</code> object has a new field: <code>sellableOnlineQuantity</code>. This field returns the total sellable quantity of the product variant for online channels.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin/graphql/reference/product/productvariant" target="_blank" class="body-link">this API on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/new-sellable-online-quantity-field-on-productvariant-object</link>
  </item>
  <item>
    <title>New barcode field on the Storefront API ProductVariant object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2022-01, the <code>ProductVariant</code> object has a new field: <code>barcode</code>. This field returns the barcode value (ISBN, UPC, GTIN, etc.) associated with the variant.</p>
<p>Learn more about the <code>barcode</code> field on <a href="https://shopify.dev/api/storefront/reference/products/productvariant" target="_blank" class="body-link">Shopify.dev.</a></p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/new-barcode-field-on-the-storefront-api-productvariant-object</link>
  </item>
  <item>
    <title>New subscriptionPolicy field on Shop object</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Storefront API version 2022-01, the <code>Shop</code> object has a new field: <code>subscriptionPolicy</code>. This field returns the subscription policy associated with the shop.</p>
<p>Learn more about the Shop object in the Storefront API documentation on <a href="https://shopify.dev/api/storefront/reference/online-store/shop" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/new-subscriptionpolicy-field-on-shop-object</link>
  </item>
  <item>
    <title>New mutation OrderInvoiceSend</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL Admin API version 2022-01, we are releasing a new mutation <code>orderInvoiceSend</code>. This mutation will take an <code>Order</code> ID and an <code>EmailInput</code> and send the order invoice to the email. It returns the <code>Order</code> when successful.</p>
<p>Learn more about this <a href="https://shopify.dev/api/admin-graphql/2022-01/mutations/orderInvoiceSend" target="_blank" class="body-link">API on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/new-mutation-orderinvoicesend</link>
  </item>
  <item>
    <title>New error codes for bulkOperationRunMutation</title>
    <description><![CDATA[ <div class=""><p>Starting in version <code>2022-01</code>, the <code>BULK_MUTATION_USER_ERROR_CODE</code> error code for the <code>bulkOperationRunMutation</code> mutation has been replaced by more granular error codes.</p>
<p>For the list of new error codes, refer to the <a href="https://shopify.dev/api/admin-graphql/2022-01/enums/BulkMutationErrorCode" target="_blank" class="body-link">GraphQL Admin API reference</a>. </p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/new-error-codes-for-bulkoperationrunmutation</link>
  </item>
  <item>
    <title>Metafield Definitions available on Order, Collection, and Customer</title>
    <description><![CDATA[ <div class=""><p>As of API version 2022-01, you can query for <code>metafieldDefinitions</code> on <code>Order</code>, <code>Collection</code>, and <code>Customer</code>. Previously this was only available on <code>Product</code> and <code>ProductVariant</code>.</p>
<p>Metafield Definitions are used to define a namespace, key, and type across all instances of a type of resource. These definitions enable Admin UI so that merchants can edit these fields in the context of each resource. You can learn more about <a href="https://shopify.dev/apps/metafields/definitions" target="_blank" class="body-link">Metafield Definitions</a> in the Developer Docs.</p>
</div> ]]></description>
    <pubDate>Sat, 01 Jan 2022 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/metafield-definitions-available-on-order-collection-and-customer</link>
  </item>
  <item>
    <title>Property deprecations in the REST Admin API Order resource</title>
    <description><![CDATA[ <div class=""><p>The following <code>customer</code> object properties on the REST Admin API's <a href="https://shopify.dev/api/admin-rest/2021-10/resources/order#top" target="_blank" class="body-link">Order</a> resource are deprecated:</p>
<ul>
<li><code>last_order_id</code></li>
<li><code>last_order_name</code></li>
<li><code>orders_count</code></li>
<li><code>total_spent</code></li>
</ul>
<p>These properties will still be available in the <a href="https://shopify.dev/api/admin-rest/2021-10/resources/customer#top" target="_blank" class="body-link">Customer</a> resource.</p>
<p>These deprecated properties will be removed from <code>unstable</code> in early 2022. The change will be made official in the <code>2022-04</code> REST Admin API version.</p>
</div> ]]></description>
    <pubDate>Tue, 21 Dec 2021 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/property-deprecations-in-the-rest-admin-api-order-resource</link>
  </item>
  <item>
    <title>New endpoint: translatableResourcesByIds</title>
    <description><![CDATA[ <div class=""><p>This new endpoint takes an array of specific resource GIDs, and returns a list of <a href="https://shopify.dev/api/admin-graphql/2022-01/objects/translatableresource#top" target="_blank" class="body-link">TranslatableResources</a> associated with those GIDs. </p>
<p>Learn more about the <a href="https://shopify.dev/api/admin-graphql/2022-01/queries/translatableResourcesByIds" target="_blank" class="body-link">translatableResourcesByIds</a> query and the <a href="https://shopify.dev/api/examples/i18n-app-translations" target="_blank" class="body-link">Translations API</a> on shopify.dev.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Dec 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/new-endpoint-translatableresourcesbyids</link>
  </item>
  <item>
    <title>Developer preview: Shopify Markets</title>
    <description><![CDATA[ <div class=""><p>Shopify Markets is a cross-border management tool that helps merchants identify, set up, launch, optimize and manage their international markets - all from a single store. You can now enable a developer preview to access Shopify Markets on new development stores.</p>
<p>Learn more about <a href="https://shopify.dev/api/release-notes/developer-previews#shopify-markets-developer-preview" target="_blank" class="body-link">this developer preview</a>.</p>
<p>Learn more about <a href="https://www.shopify.com/markets" target="_blank" class="body-link">Shopify Markets</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 16 Dec 2021 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/developer-preview-shopify-markets</link>
  </item>
  <item>
    <title>Subscription support on dynamic and accelerated checkout methods for PayPal Express</title>
    <description><![CDATA[ <div class=""><p>We've added subscription support for dynamic and accelerated checkout methods for PayPal Express on some stores.</p>
<p>Learn more about <a href="https://shopify.dev/apps/subscriptions" target="_blank" class="body-link">subscriptions</a> in the Shopify Developer documentation.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Dec 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/subscription-support-on-dynamic-and-accelerated-checkout-methods-for-paypal-express</link>
  </item>
  <item>
    <title>Locale fields are now appended with language and country codes</title>
    <description><![CDATA[ <div class=""><p>If available, the language and country/region codes of a customer can now be appended to locale fields to provide more granularity for our partners. Affected fields are <code>Order.customerLocale</code> and <code>Customer.locale</code> in the GraphQL Admin API. For example, if a customer places an order in the <code>french</code> language within the <code>France</code> storefront of the shop, then the <code>Order.customerLocale</code> and <code>Customer.locale</code> fields will have <code>fr-Fr</code>.</p>
<p>For more information, refer to the <a href="https://shopify.dev/api/admin-graphql/2021-10/objects/order#fields-Order-OBJECT" target="_blank" class="body-link">Order</a> and <a href="https://shopify.dev/api/admin-graphql/2021-10/objects/Customer#fields-Customer-OBJECT" target="_blank" class="body-link">Customer</a> object fields.</p>
</div> ]]></description>
    <pubDate>Fri, 10 Dec 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/locale-fields-are-now-appended-with-language-and-country-codes</link>
  </item>
  <item>
    <title>Cleaning up deprecations in the Storefront API</title>
    <description><![CDATA[ <div class=""><p>At this year's Unite conference, we announced that we wanted to make some sweeping changes and improvements to the Storefront API. Today we're taking another step towards that goal.</p>
<p>The following previously deprecated fields have been removed from the <code>unstable</code> and <code>2022-04</code> versions of the Storefront API:</p>
<ul>
<li><code>Article.url</code></li>
<li><code>Blog.url</code></li>
<li><code>Checkout.customer</code></li>
<li><code>Page.url</code></li>
<li><code>Product.presentmentPriceRanges</code></li>
<li><code>ProductVariant.available</code></li>
<li><code>ProductVariant.presentmentPrices</code></li>
<li><code>ProductVariant.presentmentUnitPrices</code></li>
<li><code>ScriptDiscountApplication.description</code></li>
<li><code>Shop.articles</code></li>
<li><code>Shop.blogs</code></li>
<li><code>Shop.collectionByHandle</code></li>
<li><code>Shop.collections</code></li>
<li><code>Shop.currencyCode</code></li>
<li><code>Shop.productByHandle</code></li>
<li><code>Shop.productTags</code></li>
<li><code>Shop.productTypes</code></li>
<li><code>Shop.products</code></li>
<li><code>Shop.shopifyPaymentsAccountId</code></li>
</ul>
<p>Additionally, the arguments <code>scale</code>, <code>maxWidth</code>, <code>maxHeight</code>, and <code>crop</code> are no longer available on the following fields:</p>
<ul>
<li><code>Collection.image</code></li>
<li><code>ProductVariant.image</code></li>
<li><code>Product.images</code></li>
<li><code>Article.image</code></li>
</ul>
</div> ]]></description>
    <pubDate>Fri, 10 Dec 2021 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-04</category>
    <link>https://shopify.dev/changelog/cleaning-up-deprecations-in-the-storefront-api</link>
  </item>
  <item>
    <title>Adding the manually_revoked value to theCustomerPaymentMethodRevocationReason enum</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version 2021-10, running the <code>CustomerPaymentMethodRevoke</code> mutation can now set the <code>customer_payment_method.revoked_reason</code> field to <code>manually_revoked</code>.</p>
<p>For more information, refer to <a href="https://shopify.dev/api/admin-graphql/2021-10/mutations/customerpaymentmethodrevoke" target="_blank" class="body-link">CustomerPaymentMethodRevocationReason</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 09 Dec 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/adding-the-manually_revoked-value-to-thecustomerpaymentmethodrevocationreason-enum</link>
  </item>
  <item>
    <title>JSON templates now have limit of 1000 per theme</title>
    <description><![CDATA[ <div class=""><p>The limit for JSON templates is increased from 50 per template to 1000 per theme. After this limit is reached, you can't create more JSON templates on the theme.</p>
<p>Learn more about <a href="https://shopify.dev/themes/architecture/templates/json-templates" target="_blank" class="body-link">JSON templates</a> in the Shopify Developer documentation.</p>
</div> ]]></description>
    <pubDate>Tue, 07 Dec 2021 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/json-templates-now-have-limit-of-1000-per-theme</link>
  </item>
  <item>
    <title> Contract notes for subscriptions</title>
    <description><![CDATA[ <div class=""><p>We’ve added support for contract notes to the 2022-01 API version. Contract notes are carried over from order notes on the initial order, if present. </p>
<p>For more information, refer to the <a href="https://shopify.dev/api/release-notes/2022-01" target="_blank" class="body-link">release notes</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 06 Dec 2021 14:04:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/contract-notes-for-subscriptions</link>
  </item>
  <item>
    <title>Adding mediaWarnings and 3D model bounding box information </title>
    <description><![CDATA[ <div class=""><p>Media objects in the Admin API now includes <strong>mediaWarnings</strong> which returns information about a media item that might require attention such as when a 3D Model is incorrectly scaled. Data about the warning can be retrieved using the associated MediaWarningCode and message string.</p>
<p>Model3d objects now include a new field <strong>boundingBox</strong> that returns a Model3dBoundingBox object. The bounding box of the 3D model is the size of the model described by a box that surrounds the model.</p>
</div> ]]></description>
    <pubDate>Fri, 03 Dec 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/adding-mediawarnings-and-3d-model-bounding-box-information</link>
  </item>
  <item>
    <title>Adding new enum value for handling processing errors for Model3d objects</title>
    <description><![CDATA[ <div class=""><p><a href="**https://shopify.dev/api/admin-graphql/2021-10/enums/MediaErrorCode**" target="_blank" class="body-link">MediaErrorCodes</a> and <a href="https://shopify.dev/api/admin-graphql/2021-10/enums/FileErrorCode" target="_blank" class="body-link">FileErrorCodes</a> will now include a new enum value named MODEL3D_PROCESSING_ERROR that is used for when 3D models fail to process after being uploaded to Shopify.</p>
</div> ]]></description>
    <pubDate>Fri, 03 Dec 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/adding-new-enum-value-for-handling-processing-errors-for-model3d-objects</link>
  </item>
  <item>
    <title>Updating apps capturing transactions</title>
    <description><![CDATA[ <div class=""><p>Apps that omit the <code>authorization</code> or <code>parent_id</code> parameters when capturing transactions can potentially cause errors for merchants who also use an order editing app. </p>
<p>When creating transactions to capture an authorization, always include either the <code>authorization</code> or <code>parent_id</code> parameter to specify which authorization you'd like to capture. To capture payments successfully, apps must allow for multiple authorization transactions to avoid issues for merchants. </p>
<p>Learn more about using the REST Transaction resource on <a href="https://shopify.dev/api/admin-rest/latest/resources/transaction" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Nov 2021 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updating-apps-capturing-transactions</link>
  </item>
  <item>
    <title>Changes to Cart default bundled section rendering (Ajax API)</title>
    <description><![CDATA[ <div class=""><p>Previously, the Cart API's bundled section rendering operated in the context of <code>/cart</code> when no specific <code>sections_url</code> parameter was set. Now, when <code>sections_url</code> isn't set, sections are rendered in the context of the current page, based on the Referer HTTP request header.</p>
<p>The behavior when <code>sections_url</code> is set remains unchanged.</p>
<p>For most themes, this change won't be disruptive. If the section being requested exists in the context of the current page, then using the Referer as the context for rendering, instead of <code>/cart</code>, shouldn't present any issues.</p>
<p>For more information on bundled section rendering, refer to the Ajax API's <a href="https://shopify.dev/api/ajax/reference/cart#bundled-section-rendering" target="_blank" class="body-link">Cart reference</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 19 Nov 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-cart-default-bundled-section-rendering-ajax-api</link>
  </item>
  <item>
    <title>Make images responsive with the new image_tag filter</title>
    <description><![CDATA[ <div class=""><p>Adding <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images" target="_blank" class="body-link">responsive images</a> to your theme is now easier with the new <code>image_tag</code> filter. The filter outputs a responsive HTML <code>img</code> tag by default, allows adding arbitrary HTML attributes, and supports <a href="https://shopify.dev/themes/best-practices/performance#preload-key-resources-defer-or-avoid-loading-others" target="_blank" class="body-link">preloading</a>.</p>
<p>Learn more about the <a href="https://shopify.dev/api/liquid/filters/html-filters#image_tag" target="_blank" class="body-link">image_tag filter</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Tue, 16 Nov 2021 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/make-images-responsive-with-the-new-image_tag-filter</link>
  </item>
  <item>
    <title>Vulnerable password validation on the Storefront API's Customer object</title>
    <description><![CDATA[ <div class=""><p>Validation to identify vulnerable passwords has been added to the Storefront API's <a href="https://shopify.dev/api/storefront/reference/customers/customerreset" target="_blank" class="body-link">customerReset</a> and <a href="https://shopify.dev/api/storefront/reference/customers/customerresetbyurl" target="_blank" class="body-link">customerResetByUrl</a> mutations.</p>
<p>Now, when you try resetting a password to one that’s considered vulnerable, the API will return an error.</p>
</div> ]]></description>
    <pubDate>Tue, 16 Nov 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/vulnerable-password-validation-on-the-storefront-api-s-customer-object</link>
  </item>
  <item>
    <title>New: Marketplace Kit</title>
    <description><![CDATA[ <div class=""><p>We’ve just released Marketplace Kit, a collection of APIs, components, and pre-built code snippets to add commerce features to any platform. </p>
<p>A marketplace is a purchasing surface on any platform, featuring products from different stores and directing buyers towards a sale. Marketplace Kit uses a channel app to connect Shopify merchants to any platform, and the Storefront API to power the set of actions that a customer can perform in a marketplace - such as viewing products and collections, adding products to a cart, and checking out.</p>
<p>Learn more: shopify.dev/marketplaces</p>
</div> ]]></description>
    <pubDate>Wed, 10 Nov 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-marketplace-kit</link>
  </item>
  <item>
    <title>Specify private metafields for webhooks using GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>The <code>WebhookSubscription</code> GraphQL object now has a <code>privateMetafieldNamespaces</code> field. You can use this field to specify private metafields that you want to be included in the payload for events sent by that webhook subscription.</p>
</div> ]]></description>
    <pubDate>Thu, 04 Nov 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/specify-private-metafields-for-webhooks-using-graphql-admin-api</link>
  </item>
  <item>
    <title>Updated permissions on the Shopify Online Store app for GitHub</title>
    <description><![CDATA[ <div class=""><p>The Shopify Online Store app for GitHub lets you associate a GitHub account with your Shopify login to sync changes to your themes continuously for faster development.</p>
<p>We are expanding this integration with GitHub to simplify the future development experience for building and deploying custom storefronts. In order to support this functionality we require additional permissions: Admin, Deployments, Pull requests, Secrets, and Workflows. The GitHub app will only require these permissions to work with custom storefronts. </p>
<p>We are asking for the minimum GitHub app permissions that we require to build a smooth experience for you. Ignoring this request won’t affect your work with the Online Store channel, and you can always come back to grant the permissions as needed.</p>
<p>Learn more about the <a href="https://shopify.dev/themes/tools/github" target="_blank" class="body-link">GitHub integration with Shopify</a> from Shopify Developer docs.</p>
</div> ]]></description>
    <pubDate>Fri, 29 Oct 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-permissions-on-the-shopify-online-store-app-for-github</link>
  </item>
  <item>
    <title>Expose selected fields on AbandonedCheckout GraphQL API to public</title>
    <description><![CDATA[ <div class=""><p>We have changed part of the <code>AbandonedCheckout</code> GraphQL API visibility to public. Third-party apps only have access to the <code>AbandonedCheckout</code> object and a selection of its fields if the <code>marketing_automation_abandonments</code> beta flag is enabled for the app. The available fields are <code>line_items</code>, <code>line_items_quantity</code>, and <code>total_price_set</code>. </p>
</div> ]]></description>
    <pubDate>Thu, 28 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/expose-selected-fields-on-abandonedcheckout-graphql-api-to-public</link>
  </item>
  <item>
    <title>Storefront filtering now supports filters on product and variant metafields</title>
    <description><![CDATA[ <div class=""><p>The following types of storefront filters on product and variant metafields are now supported:</p>
<ul>
<li><code>single_line_text_field</code></li>
<li><code>number_decimal</code></li>
<li><code>number_integer</code></li>
</ul>
<p>Learn more about <a href="https://shopify.dev/themes/navigation-search/filtering" target="_blank" class="body-link">storefront filters on metafields</a> in the Shopify Developer Docs.</p>
</div> ]]></description>
    <pubDate>Wed, 27 Oct 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/storefront-filtering-now-supports-filters-on-product-and-variant-metafields</link>
  </item>
  <item>
    <title>Subscriptions APIs now support Shop Pay</title>
    <description><![CDATA[ <div class=""><p>We've added a new <a href="https://shopify.dev/api/admin-graphql/2021-10/unions/CustomerPaymentInstrument" target="_blank" class="body-link">CustomerPaymentInstrument</a> and <a href="https://shopify.dev/api/admin-graphql/2021-10/objects/customershoppayagreement" target="_blank" class="body-link">CustomerShopPayAgreement</a> to the 2021-10 API version that allows the ability to store Shop Pay Agreements in Shopify to be used by <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptioncontract" target="_blank" class="body-link">SubscriptionContracts</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 22 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/subscriptions-apis-now-support-shop-pay</link>
  </item>
  <item>
    <title>New: Payment Terms API</title>
    <description><![CDATA[ <div class=""><p>We’ve just launched the Payment Terms API to allow you to build apps that can set due dates on an order and track overdue payments with the newly added overdue status. </p>
<p>Payment terms and overall payment flexibility are important to Shopify merchants, especially those selling B2B, as they allow merchants to improve their buyer experience by offering personalized payment options and reduce the manual effort required to manage and process payments due at a later date.</p>
<p>Learn more about the <a href="https://shopify.dev/api/admin-graphql/2021-10/objects/paymentterms" target="_blank" class="body-link">Payment Terms API</a> and view our <a href="https://shopify.dev/api/release-notes/2021-10" target="_blank" class="body-link">release notes</a>. </p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 16:15:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-payment-terms-api</link>
  </item>
  <item>
    <title>New webhook to notify when a billing attempt is 3DS-challenged</title>
    <description><![CDATA[ <div class=""><p>External apps can now subscribe to a webhook event to be notified when a financial institution challenges a subscription billing attempt charge. This update is in accordance with 3-D Secure.+</p>
<p>The webhook event will trigger a message to be published on the <code>subscription_billing_attempts/challenged</code> topic. To use the topic, an app requires the <code>own_subscription_contracts</code> access scope.</p>
<p>For more information, visit the <a href="https://shopify.dev/docs/admin-api/rest/reference/events/webhook" target="_blank" class="body-link">REST Admin API Webhook documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-webhook-to-notify-when-a-billing-attempt-is-3ds-challenged</link>
  </item>
  <item>
    <title>Removed 'full' permission on User resource</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10, the <code>full</code> permission is no longer a potential value of the permissions property on the <a href="https://shopify.dev/api/admin/rest/reference/plus/user" target="_blank" class="body-link">REST User resource</a>. This update follows the <a href="https://shopify.dev/api/release-notes/2021-07#explicit-user-permissions" target="_blank" class="body-link">change to API version 2021-07</a>, which returned a complete list of explicit permissions for a user.</p>
<p>For more information about this change, visit our <a href="https://shopify.dev/api/release-notes/2021-10#removed-full-permission-on-user-resource" target="_blank" class="body-link">release notes</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/removed-full-permission-on-user-resource</link>
  </item>
  <item>
    <title>Bulk product resource feedback API now available</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10, you can use the <code>bulkProductResourceFeedbackCreate</code> mutation to create up to 50 feedback entries on a product resource in a single API request. You can also query for product resource feedback with the <code>productResourceFeedback</code> field.</p>
<p>For more information, refer to <a href="https://shopify.dev/api/admin/graphql/reference/apps/bulkproductresourcefeedbackcreate" target="_blank" class="body-link">https://shopify.dev/api/admin/graphql/reference/apps/bulkproductresourcefeedbackcreate</a></p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/bulk-product-resource-feedback-api-now-available</link>
  </item>
  <item>
    <title>Origin address property in the REST Fulfillment resource</title>
    <description><![CDATA[ <div class=""><p>API version 2021-10 adds the <code>origin_address</code> property to the REST Admin API's <code>Fulfillment</code> resource. <code>origin_address</code> specifies the address at which a fulfillment occurred.</p>
<p> <code>origin_address</code>  accepts a JSON object with  <code>address1</code>,  <code>city</code>, <code>zip</code>, <code>province_code</code>, <code>retail</code>, or <code>country_code</code>. </p>
<p>For more information about Fulfillment, visit our <a href="https://shopify.dev/docs/admin-api/graphql/reference/shipping-and-fulfillment/fulfillment" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/origin-address-property-in-the-rest-fulfillment-resource</link>
  </item>
  <item>
    <title>Improvements and changes coming to the Storefront API</title>
    <description><![CDATA[ <div class=""><p>At this year's Unite conference, we announced that we wanted to make some sweeping changes and improvements to the Storefront API. With the <code>2021-10</code> release, we are taking the first steps towards that goal.</p>
<h3>Improved lookup fields</h3>
<p>You can now fetch a <code>Product</code>, <code>Collection</code>, <code>Page</code>, or <code>Blog</code> by its handle <em>or</em> ID:</p>
<pre><code class="language-graphql">query FetchProduct {
	product(id: &quot;Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEK&quot;) { ... }
	# OR
  product(handle: &quot;my-cool-shirt&quot;) { ... }
}
</code></pre>
<p>With the introduction of these new fields, the following fields are now deprecated and will be removed in a future release:</p>
<ul>
<li><code>QueryRoot.blogByHandle</code></li>
<li><code>QueryRoot.pageByHandle</code></li>
<li><code>QueryRoot.collectionByHandle</code></li>
<li><code>QueryRoot.productByHandle</code></li>
</ul>
<p>For more details, please see <a href="https://shopify.dev/api/storefront/reference/common-objects/queryroot?api%5Bversion%5D=2021-10#fields-2021-10" target="_blank" class="body-link">https://shopify.dev/api/storefront/reference/common-objects/queryroot?api%5Bversion%5D=2021-10#fields-2021-10</a>.</p>
<h3>Introducing <code>OnlineStorePublishable</code></h3>
<p>In order to improve consistency among objects with common properties, we have added a new GraphQL interface type named <code>OnlineStorePublishable</code>. This interface is used to denote a resource type that can be published to the Online Store sales channel, such as <code>Product</code>, <code>Collection</code>, <code>Page</code>, and others.</p>
<pre><code class="language-graphql">{
  collection(handle: &quot;staff-picks&quot;) {
	  onlineStoreUrl
	}
}
</code></pre>
<p>As a result, the following fields are now deprecated and will be removed in a future release:</p>
<ul>
<li><code>Page.url</code></li>
<li><code>Blog.url</code></li>
<li><code>Article.url</code></li>
</ul>
<p>More information about <code>OnlineStorePublishable</code> can be found <a href="https://shopify.dev/api/storefront/reference/common-objects/onlinestorepublishable?api%5Bversion%5D=2021-10" target="_blank" class="body-link">here</a>.</p>
<h3>Upcoming changes to object IDs</h3>
<p>One of the most consistent pieces of feedback we've received revolves around a subtle but impactful difference between how object IDs are represented in our Admin and Storefront GraphQL APs.</p>
<p>You may have noticed that on the Storefront API, the values for object IDs are Base64 encoded, and furthermore, the decoded value is identical to the Admin API's response. We understand that this slight difference has proven to be problematic for developers who need to inter-operate between the two APIs.</p>
<p>Starting on January 3, 2022 we will begin serving non-encoded object IDs from the <code>unstable</code> version of the Storefront GraphQL API, with the goal of having the <code>2022-04</code> release be the first stable version that does not serve Base64 encoded object IDs.</p>
<p>Refer to <a href="https://shopify.dev/custom-storefronts/migration/object-ids" target="_blank" class="body-link">this guide</a> for more details on the change and how to migrate your apps.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/improvements-and-changes-coming-to-the-storefront-api</link>
  </item>
  <item>
    <title>New fields in TranslatableResourceType enum</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10, the <code>TranslatableResourceType</code>  enum will include two new resource types: <code>ONLINE_STORE_MENU</code> and <code>PACKING_SLIP_TEMPLATE</code>. <code>ONLINE_STORE_MENU</code> refers to the links used for navigation on an online store. <code>PACKING_SLIP_TEMPLATE</code> refers to templates used for creating packing slips. The <code>ONLINE_STORE_MENU</code>'s <code>title</code> field and <code>PACKING_SLIP_TEMPLATE</code>'s <code>body</code> field are now translatable with our translations API. </p>
<p>Learn more about <a href="https://shopify.dev/api/admin/graphql/reference/translations/translatableresourcetype?api%5Bversion%5D=2021-10" target="_blank" class="body-link">this API on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-fields-in-translatableresourcetype-enum</link>
  </item>
  <item>
    <title>New field on the CustomerPaymentMethod object</title>
    <description><![CDATA[ <div class=""><p>As of the 2020-10 version of the GraphQL API, a new field is now present on the <code>CustomerPaymentMethod</code> object: <code>revokedReason</code>. This field can contain one of the following values: </p>
<ul>
<li><code>AUTHORIZE_NET_GATEWAY_NOT_ENABLED</code> </li>
<li><code>AUTHORIZE_NET_RETURNED_NO_PAYMENT_METHOD</code> </li>
<li><code>FAILED_TO_UPDATE_CREDIT_CARD</code></li>
<li><code>STRIPE_API_AUTHENTICATION_ERROR</code></li>
<li><code>STRIPE_API_INVALID_REQUEST_ERROR</code></li>
<li><code>STRIPE_GATEWAY_NOT_ENABLED</code></li>
<li><code>STRIPE_PAYMENT_METHOD_NOT_CARD</code></li>
<li><code>STRIPE_RETURNED_NO_PAYMENT_METHOD</code></li>
</ul>
<p>Updated the customerPaymentMethod API to allow querying for a reason on why a payment method was revoked.</p>
<p>For more information about CustomerPaymentMethod, visit our <a href="https://shopify.dev/api/admin/graphql/reference/orders/custompaymentmethod" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-field-on-the-customerpaymentmethod-object</link>
  </item>
  <item>
    <title>New field on the Order object</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10, the <code>Order</code>  object will include an <code>app</code> field representing the application that created the order. The field returns an <code>OrderApp</code> object.</p>
<p>Learn more about <a href="https://shopify.dev/api/admin/graphql/reference/orders/orderapp" target="_blank" class="body-link">this API on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-field-on-the-order-object</link>
  </item>
  <item>
    <title>New property on Fulillment.line_item object</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10, the <code>line_item</code>  object on a <code>Fulfillment</code> will include a <code>fulfillment_line_item_id</code> property. This property represents the ID of a line item from an order that's included in a fulfillment</p>
<p>Learn more about <a href="https://shopify.dev/api/admin/rest/reference/shipping-and-fulfillment/fulfillment?api%5Bversion%5D=2021-10" target="_blank" class="body-link">this API on Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-property-on-fulillment-line_item-object</link>
  </item>
  <item>
    <title>New webhook topic notifies when a Bulk Operation has finished</title>
    <description><![CDATA[ <div class=""><p>Apps can now subscribe to the <code>bulk_operations/finish</code> webhook topic that sends notifications when a Bulk Operation has completed, failed, or been cancelled.</p>
<p>Apps do not need to poll the GraphQL Admin API to check for status changes anymore. The webhook will notify the app when the Bulk Operation finishes.</p>
<p>This webhook supports <a href="https://shopify.dev/api/admin/graphql/reference/bulk-operations/bulkoperationrunquery" target="_blank" class="body-link">query</a> and <a href="https://shopify.dev/api/admin/graphql/reference/bulk-operations/bulkoperationrunmutation" target="_blank" class="body-link">mutation</a> operations.</p>
<p>Learn more about the new feature in the <a href="https://shopify.dev/api/usage/bulk-operations/queries#wait-for-the-bulk-operation-to-finish" target="_blank" class="body-link">Bulk Operation tutorial</a> and the <a href="https://shopify.dev/api/admin/graphql/reference/events/webhooksubscriptiontopic?api%5Bversion%5D=2021-10" target="_blank" class="body-link">API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-webhook-topic-notifies-when-a-bulk-operation-has-finished</link>
  </item>
  <item>
    <title>New type field for the BulkOperation GraphQL object</title>
    <description><![CDATA[ <div class=""><p>The <code>BulkOperation</code> object has a new <code>type</code> field that returns whether the operation is a query or a mutation.</p>
<p>Learn more about the <code>type</code> field in the <a href="https://shopify.dev/api/admin/graphql/reference/bulk-operations/bulkoperation" target="_blank" class="body-link"><code>BulkOperation</code> object documentaion</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-type-field-for-the-bulkoperation-graphql-object</link>
  </item>
  <item>
    <title>customerPaymentMethodGetUpdateUrl mutation for Customer payment methods is now available</title>
    <description><![CDATA[ <div class=""><p>As of the 2021-10 API version, we have introduced a <code>customerPaymentMethodGetUpdateUrl</code> mutation to the Admin API that, given a customer payment method ID, returns a URL that enables a customer to update their payment method in a secure way when in a session. This mutation supports Shop Pay as of late 2021, and will expand support to other payment methods in the future. The <code>customerPaymentMethodSendUpdateEmail</code> is recommended as a fallback when the <code>customerPaymentMethodGetUpdateUrl</code> returns an error or when the customer needs to update their payment method outside of a session. </p>
<p>Learn more about this mutation by visiting our <a href="https://shopify.dev/api/admin/graphql/reference/customers/customerpaymentmethodgetupdateurl" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/customerpaymentmethodgetupdateurl-mutation-for-customer-payment-methods-is-now-available</link>
  </item>
  <item>
    <title>Contextual pricing for products is now available in the GraphQL Admin API</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10, you can query prices given a particular context using the new field <code>contextualPricing</code> . This functionality allows Apps to query prices in different contexts, including prices for countries (<a href="https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/international-pricing" target="_blank" class="body-link">International Pricing</a>). This new field was added to the Product Variant object to return a price and to the Product object to return a price range.</p>
<p>Learn more about the Contextual Pricing API on <a href="https://shopify.dev/api/admin/graphql/reference/products-and-collections." target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Oct 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/contextual-pricing-for-products-is-now-available-in-the-graphql-admin-api</link>
  </item>
  <item>
    <title>Preload key resources with the preload_tag filter</title>
    <description><![CDATA[ <div class=""><p>You can now take advantage of <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/preload" target="_blank" class="body-link">preload links</a> in Liquid by using the <code>preload_tag</code> filter. The filter will add a link tag with <code>rel=preload</code> to the page, and will attempt to add an entry to the response's Link header.</p>
<p>Learn more about the <a href="https://shopify.dev/api/liquid/filters/html-filters#preload_tag" target="_blank" class="body-link">preload_tag filter</a> in the Shopify Developer Docs.</p>
</div> ]]></description>
    <pubDate>Wed, 29 Sep 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/preload-key-resources-with-the-preload_tag-filter</link>
  </item>
  <item>
    <title>New Stripe PaymentTokenType for Storefront API</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10 Sales Channels can now complete a checkout with the Storefront API using <code>TokenizedPaymentInputV3</code> and the <code>PaymentTokenType</code> value <code>STRIPE_VAULT_TOKEN</code></p>
<p>Learn more about <a href="https://shopify.dev/custom-storefronts/checkout#stripe" target="_blank" class="body-link">completing a checkout with the Storefront API</a> and refer to the <a href="https://shopify.dev/api/storefront/reference/checkouts/checkoutcompletewithtokenizedpaymentv3#tokenizedpaymentinputv3-fields-2021-07" target="_blank" class="body-link">TokenizedPaymentInputV3 fields</a> documentation on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 29 Sep 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-stripe-paymenttokentype-for-storefront-api</link>
  </item>
  <item>
    <title>Checkout URL query parameters no longer contain customer details</title>
    <description><![CDATA[ <div class=""><p>In limited circumstances, such as when using <a href="https://shopify.dev/apps/channels/cart-permalinks" target="_blank" class="body-link">cart permalinks</a>, customer details like email and shipping address could be contained in the query parameters of the resulting checkout URL.</p>
<p>These customer details no longer appear in checkout URLs. Features that resulted in this behavior like <a href="https://shopify.dev/apps/channels/cart-permalinks" target="_blank" class="body-link">cart permalinks</a> should continue to function as normal.</p>
</div> ]]></description>
    <pubDate>Tue, 28 Sep 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkout-url-query-parameters-no-longer-contain-customer-details</link>
  </item>
  <item>
    <title>New form to report violations of Shopify's Partner Program Agreement</title>
    <description><![CDATA[ <div class=""><p>You can now directly <a href="https://www.shopify.com/partners/report-a-partner-violation" target="_blank" class="body-link">report violations</a> of our <a href="https://www.shopify.ca/partners/terms" target="_blank" class="body-link">Partner Program Agreement</a>, instead of contacting Shopify Partner Support. Please ensure your report is a term violation rather than a support issue.</p>
<p>Learn more about prohibited actions on <a href="https://shopify.dev/apps/store/success/prohibited-actions" target="_blank" class="body-link">Shopify.dev</a></p>
</div> ]]></description>
    <pubDate>Fri, 24 Sep 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-form-to-report-violations-of-shopify-s-partner-program-agreement</link>
  </item>
  <item>
    <title>SMS marketing consent</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-10, you can use the GraphQL Admin API and REST Admin API to retrieve, add, and update a customer's consent to receive marketing material by SMS. </p>
<p>You can also subscribe to a webhook topic to be notified when a customer updates their SMS marketing consent.</p>
<p>For more information, refer to the API <a href="https://shopify.dev/api/release-notes/2021-10" target="_blank" class="body-link">2021-10 release notes</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Sep 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/sms-marketing-consent</link>
  </item>
  <item>
    <title>Subscription offers for post-purchase is now available</title>
    <description><![CDATA[ <div class=""><p>Shopify’s post-purchase checkout extension now supports subscriptions offers. By surfacing subscription offerings immediately after checkout, you can now start building high-converting experiences for merchants’ most captive buyers. </p>
<p>Learn more about getting started, requirements, and limitations for <a href="https://shopify.dev/apps/checkout/post-purchase/add-subscription-post-purchase-app-extension" target="_blank" class="body-link">post-purchase checkout extensions</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 20 Sep 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/subscription-offers-for-post-purchase-is-now-available</link>
  </item>
  <item>
    <title>Fulfillment Order has a new fulfill_by field</title>
    <description><![CDATA[ <div class=""><p>Merchants selling on multiple channels are unable to tell how long they have to fulfill a multi-channel order in Shopify to be compliant with the fulfillment policies of the channel. This can lead to merchants being penalized by the channel, having longer processing times which impacts a merchant's ratings on marketplaces and further reduces their dependence on Shopify as their back office. </p>
<p>The new field, <code>fulfill_by</code> on the <code>FulfillmentOrder</code> object, indicates the latest date that a merchant should fulfill an order to ensure that it arrives to the buyer within the estimated delivery window. This is the date at the end of the longest processing time for an order.</p>
<p>For example, if your processing time for an item is 3-5 days, and a buyer orders the item on September 1, then the <code>fulfill_by</code> date for this order is September 6.</p>
<p> The <code>fulfill_by</code> field is currently available only in the <code>unstable</code> version of the GraphQL Admin API and the REST Admin API. They are accessible through the new <code>OrderSetFulfillmentDeadline</code> mutation or endpoint <code>POST /admin/api/unstable/fulfillment_orders/set_fulfillment_deadline.json</code>.</p>
</div> ]]></description>
    <pubDate>Mon, 20 Sep 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/fulfillment-order-has-a-new-fulfill_by-field</link>
  </item>
  <item>
    <title>New fields on the GraphQL Admin API's Shop object</title>
    <description><![CDATA[ <div class=""><p>You can now query <code>merchantApprovalSignals</code> on the <code>Shop</code> object to determine whether a merchant is pre-verified for onboarding to channel apps. </p>
<p>This query helps you to accelerate the process for onboarding approved merchants to sales channels.</p>
<p>For more information, refer to the <a href="https://shopify.dev/api/release-notes/2021-10" target="_blank" class="body-link">release notes</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Sep 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/new-fields-on-the-graphql-admin-api-s-shop-object</link>
  </item>
  <item>
    <title>Increasing the app block limit from 10 to 25 for theme app extensions</title>
    <description><![CDATA[ <div class=""><p>We increased the maximum number of app blocks supported in theme app extensions from 10 to 25. Learn more about theme app extensions on <a href="https://shopify.dev/apps/online-store/theme-app-extensions/extensions-framework#enforced-and-suggested-limits" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Sep 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increasing-the-app-block-limit-from-10-to-25-for-theme-app-extensions</link>
  </item>
  <item>
    <title>Updates to our Partner Program Agreement effective September, 15 2021 </title>
    <description><![CDATA[ <div class=""><p>We've updated the terms related to the new revenue sharing plan for theme developers in our <a href="https://www.shopify.ca/partners/terms" target="_blank" class="body-link">Partner Program Agreement</a>.</p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/theme-rev-share-faq" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 15 Sep 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-to-our-partner-program-agreement-effective-september-15-2021</link>
  </item>
  <item>
    <title>Developer preview: Fulfillment service SKU sharing</title>
    <description><![CDATA[ <div class=""><p>The fulfillment service SKU sharing developer preview gives fulfillment service apps the ability to stock and fulfill product variants alongside a merchant's locations.</p>
<p>This preview introduces the <code>permits_sku_sharing</code> parameter when creating or updating a fulfillment service. Setting <code>permits_sku_sharing</code> to <code>true</code> allows the merchant to assign fulfillment orders to both the merchant's locations and compatible fulfillment services.</p>
<p>Learn more about <a href="https://shopify.dev/api/release-notes/developer-previews#fulfillment-service-sku-sharing-developer-preview" target="_blank" class="body-link">this developer preview</a></p>
<p>Learn more about the <a href="https://shopify.dev/apps/fulfillment/migrate" target="_blank" class="body-link">building a fulfillment service using the fulfillment orders API</a>.</p>
<p>Learn more about fulfillment orders on the <a href="https://shopify.dev/api/admin/rest/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">REST</a> and <a href="https://shopify.dev/api/admin/graphql/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">GraphQL</a> APIs.</p>
</div> ]]></description>
    <pubDate>Tue, 14 Sep 2021 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/developer-preview-fulfillment-service-sku-sharing</link>
  </item>
  <item>
    <title>Theme app extension requirement - all new apps</title>
    <description><![CDATA[ <div class=""><p>Starting Tuesday September 7, 2021, if you're submitting an app that integrates with a theme to the Shopify App Store, then you need to use <a href="/apps/online-store/theme-app-extensions" target="_blank" class="body-link">theme app extensions</a>. </p>
<p>Existing apps are strongly encouraged to adopt this feature as well. However, there is currently no deadline for existing apps in the Shopify App Store to adopt theme app extensions.</p>
</div> ]]></description>
    <pubDate>Tue, 07 Sep 2021 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/theme-app-extension-requirement-all-new-apps</link>
  </item>
  <item>
    <title>Liquid support now available for Predictive Search API</title>
    <description><![CDATA[ <div class=""><p>You can now show predictive search results through a rendered section using the following:</p>
<ul>
<li>The Liquid <a href="/api/liquid/objects/predictive-search" target="_blank" class="body-link">predictive_search</a> object</li>
<li>The <code>/search/suggest</code> endpoint of the <a href="/api/ajax/reference/predictive-search#get-search-suggest" target="_blank" class="body-link">Predictive Search API</a></li>
</ul>
<p>Learn more about <a href="/themes/navigation-search/search/predictive-search" target="_blank" class="body-link">adding predictive search to your theme</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 31 Aug 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/liquid-support-now-available-for-predictive-search-api</link>
  </item>
  <item>
    <title>New currency formatting theme setting guidelines</title>
    <description><![CDATA[ <div class=""><p>Shopify has introduced new guidelines around currency formatting for themes. If you're developing a theme, you can introduce a currency setting that lets merchants choose whether the currency code is included in price displays.</p>
<p>Showing the currency code with a price helps customers understand what currency they're browsing in, especially when the currency uses a common symbol like the dollar ($), so that there's no confusion at checkout.</p>
<p>To learn more about how this setting is implemented, and other considerations, refer to the <a href="https://shopify.dev/themes/pricing-payments/price-display-ux-guidelines" target="_blank" class="body-link">price display UX guidelines</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Aug 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-currency-formatting-theme-setting-guidelines</link>
  </item>
  <item>
    <title>Removing the @global block type in favour of the @app block type in theme sections</title>
    <description><![CDATA[ <div class=""><p>In order for theme sections to accept app blocks, the section must define a block of type <code>@app</code> in its schema.</p>
<p>A number of development shops have been created using a pre-release version of Shopify's Dawn theme. The pre-release defines blocks of type <code>@global</code> in some of the sections (<code>sections/apps.liquid</code>, <code>sections/main-product.liquid</code>) to indicate that those sections support app blocks.</p>
<p>Moving forward, <code>@global</code> is removed and being replaced by <code>@app</code>. For more information about the <code>@app</code> block type, refer to <a href="https://shopify.dev/themes/migration#step-8-add-support-for-app-blocks-to-sections" target="_blank" class="body-link">add support for app blocks to sections</a>. In order to make sure your theme sections work correctly, follow one of the recommendations: </p>
<ul>
<li>Download the latest version of <a href="https://github.com/Shopify/dawn" target="_blank" class="body-link">Dawn</a> and upload it to your store.</li>
<li>Update the affected theme sections to use the <code>@app</code> instead of the <code>@global</code> block type.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 17 Aug 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/removing-the-global-block-type-in-favour-of-the-app-block-type-in-theme-sections</link>
  </item>
  <item>
    <title>New metafield type: Rating</title>
    <description><![CDATA[ <div class=""><p>Metafields now support a Rating type. Ratings represent a value on a specified scale, such as a product rating of 4.8 out of 5, or a spiciness rating of 3 chili peppers.</p>
<p>Learn more about Ratings in our <a href="https://shopify.dev/apps/metafields/definitions/types" target="_blank" class="body-link">metafield types</a> and <a href="https://shopify.dev/api/liquid/objects/metafield#metafield-value" target="_blank" class="body-link">metafield object</a> documentation.</p>
</div> ]]></description>
    <pubDate>Tue, 17 Aug 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-metafield-type-rating</link>
  </item>
  <item>
    <title> Shopify now serves minified JavaScript files automatically</title>
    <description><![CDATA[ <div class=""><p>As of August 2021, Shopify automatically minifies theme JavaScript when it is requested by the storefront. Minified JavaScript files are cached until the next time the underlying file is updated.</p>
<p>Minification improves storefront performance, leading to a better buying experience for customers.</p>
<p>Learn more about theme performance on <a href="https://shopify.dev/themes/best-practices/performance" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 12 Aug 2021 13:05:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-now-serves-minified-javascript-files-automatically</link>
  </item>
  <item>
    <title>New webhook topics for SellingPlanGroups</title>
    <description><![CDATA[ <div class=""><p>External apps can now subscribe to <code>SellingPlanGroups</code> webhook events to keep track of <code>SellingPlans</code> and <code>SellingPlanGroups</code> lifecycles. </p>
<p>The following are the topics for the events:</p>
<ul>
<li><code>selling_plan_groups/create</code>: Triggered when a new SellingPlanGroup is created.</li>
<li><code>selling_plan_groups/update</code>: Triggered when a SellingPlanGroup is updated, including adding/removing/updating SellingPlans.</li>
<li><code>selling_plan_groups/delete</code>: Triggered when a new SellingPlanGroup is removed.</li>
</ul>
<p>To use the topics, an app requires the <code>read_products</code> access scope.</p>
</div> ]]></description>
    <pubDate>Thu, 12 Aug 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-webhook-topics-for-sellingplangroups</link>
  </item>
  <item>
    <title>Changes to the Partner payout CSV and app earnings CSV</title>
    <description><![CDATA[ <div class=""><p>On August 1, 2021, we will introduce two changes to the Partner payout CSV and app earnings CSV. These changes will help developers understand the calculation of their app revenue after they register for <a href="https://help.shopify.com/en/partners/rev-share-faq#calculation-of-app-store-revenues" target="_blank" class="body-link">the new app store revenue share plan</a>.</p>
<p>The following fields will be added or updated:</p>
<ul>
<li><p><strong>Processing fee</strong> (new) - This new field represents the amount deducted from your application's charges to merchants for processing the charge.</p>
</li>
<li><p><strong>Partner share</strong> (updated) - The calculation of this field will be updated to represent the <code>Partner sale</code> amount less the <code>Processing fee</code> as well as the <code>Shopify fee</code>. This field will now better represent the amount you earn for each app charge.</p>
</li>
</ul>
<p>For more information about tracking your earnings, visit the <a href="https://help.shopify.com/en/partners/getting-started/getting-paid" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Aug 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-the-partner-payout-csv-and-app-earnings-csv</link>
  </item>
  <item>
    <title>New updates to Partner API</title>
    <description><![CDATA[ <div class=""><p>Starting today, the following changes are effective on the <code>unstable</code> version of Partner API to help developers with the calculation of their app store revenue.</p>
<ul>
<li>The transaction objects <code>AppOneTimeSale</code>, <code>AppSaleAdjustment</code>, <code>AppSaleCredit</code>, <code>AppSubscriptionSale</code>, and <code>AppUsageSale</code> have a new field titled <code>processingFee</code>. The <code>processingFee</code>  field indicates the amount that was deducted for processing your application’s charge to a merchant.</li>
<li>The previously mentioned transaction objects have a new calculation for the <code>netAmount</code> field. The new calculation accounts for the deduction of <code>processingFee</code> amount from your app charge and adjustment to a merchant.</li>
<li><code>SALE_SHOPIFY_FEE</code> in the TaxTransactionType enum is deprecated and replaced by the <code>SALE_FEES</code> value. When taxes are charged on all fees for an app, theme, or service transaction, the <code>SALE_FEES</code> value is returned in the <code>TaxTransaction</code> object.</li>
<li>The <code>type</code> field in <code>TaxTransaction</code> object is deprecated. A new field titled <code>taxType</code> is now present on the object, which will return either <code>TaxTransactionType.REFERRAL_COMMISSION</code> for taxes paid out on your commission fee for a referral or <code>TaxTransactionType.SALE_FEES</code> for taxes charged on fees for an app, theme, or service transaction.</li>
</ul>
<p>These changes are available in the unstable version today and will be made official in the 2022-01 version of Partner API. Learn more about <a href="https://shopify.dev/api/partner/reference" target="_blank" class="body-link">partner API reference documentation</a> at Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Aug 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/new-updates-to-partner-api</link>
  </item>
  <item>
    <title>Published app developers can register for the new revenue share model on August 1st</title>
    <description><![CDATA[ <div class=""><p>Starting August 1, 2021 at 10:00 am PST (1:00 pm EST), app developers can register for a reduced revenue share plan for apps sold through the Shopify App Store in the apps section of the Partner Dashboard. </p>
<p>In this new plan, Shopify collects 0% on the first 1,000,000 USD in annual gross app revenue earned through the Shopify App Store. Total app revenues in excess of 1,000,000 USD annually will be subject to a 15% revenue share, reduced from the previous 20%.</p>
<p>Learn more about <a href="https://help.shopify.com/en/partners/rev-share-faq" target="_blank" class="body-link">updates to revenue share for Shopify App Store developers</a> in the Shopiry Help Center.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Aug 2021 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/published-app-developers-can-register-for-the-new-revenue-share-model-on-august-1st</link>
  </item>
  <item>
    <title>Updates to our Partner Program Agreement now in effect </title>
    <description><![CDATA[ <div class=""><p>We've updated the following items in our <a href="https://www.shopify.ca/partners/terms" target="_blank" class="body-link">Partner Program Agreement</a>:</p>
<ul>
<li>Terms related to the new revenue sharing plan for app developers</li>
<li>Administrative details that help support the growth of Shopify Partners</li>
</ul>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Aug 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-to-our-partner-program-agreement-now-in-effect</link>
  </item>
  <item>
    <title>Manage webhooks with Google Cloud Pub/Sub</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-07, you can use the GraphQL Admin API and Google Cloud Pub/Sub to subscribe to, update, and delete webhook subscriptions.</p>
<p>You can learn more about <a href="https://shopify.dev/apps/webhooks/google-cloud" target="_blank" class="body-link">managing webhooks with Google Cloud Pub/Sub</a> at Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Thu, 15 Jul 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/manage-webhooks-with-google-cloud-pub-sub</link>
  </item>
  <item>
    <title>Validate draft versions of theme app extensions using Theme Check</title>
    <description><![CDATA[ <div class=""><p>You can now validate a draft version of a theme app extension using <a href="https://shopify.dev/themes/tools/theme-check" target="_blank" class="body-link">Theme Check</a>.</p>
<p>You can validate the content and structure of your extension by running <code>shopify extension check</code> in your theme app extension's project directory. Version 2.1.0 of <a href="https://shopify.dev/apps/tools/cli" target="_blank" class="body-link">Shopify CLI</a> is required to run this command.</p>
</div> ]]></description>
    <pubDate>Tue, 13 Jul 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/validate-draft-versions-of-theme-app-extensions-using-theme-check</link>
  </item>
  <item>
    <title>Bulk Mutation API now available</title>
    <description><![CDATA[ <div class=""><p>As of July 2021, you can use the BulkOperationRunMutation endpoint, a resilient and performant solution, to move data in bulk into a store in a bulk asynchronously.</p>
<p>Instead of running a GraphQL mutation multiple times, you can run a bulk mutation operation. This is a simple way for you to import all of their data, without being slowed down by throttles.</p>
<p>We currently provide support for the following mutations:</p>
<ul>
<li>productCreate</li>
<li>collectionCreate</li>
<li>productUpdate</li>
<li>productUpdateMedia</li>
<li>productPageUpdate</li>
<li>productVariantUpdate</li>
<li>metafieldUpsert</li>
<li>priceListFixedPricesAdd</li>
<li>priceListFixedPricesDelete</li>
</ul>
<p>Learn more about <a href="https://shopify.dev/docs/admin-api/graphql/reference/bulk-operations/bulkoperationrunmutation" target="_blank" class="body-link">how to get started</a> with Bulk Mutations.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jul 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/bulk-mutation-api-now-available</link>
  </item>
  <item>
    <title>Discount application methods are returned by the Checkout resource</title>
    <description><![CDATA[ <div class=""><p>As of version 2021-04 of the REST Admin API, the Checkout resource returns the <code>application_type</code> property for discounts that are added to a checkout. The field shows how the discount was applied. Valid values are <code>automatic</code>, <code>discount_code</code>, <code>manual</code>, and <code>script</code>.</p>
<p>To learn more, refer to the <a href="https://shopify.dev/docs/admin-api/rest/reference/sales-channels/checkout" target="_blank" class="body-link">Checkout reference</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jul 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-04</category>
    <link>https://shopify.dev/changelog/discount-application-methods-are-returned-by-the-checkout-resource</link>
  </item>
  <item>
    <title>Metafields in GraphQL Storefront API available on additional resources</title>
    <description><![CDATA[ <div class=""><p>Metafields are currently available to Products and Product Variants in the unstable API version. When the stable API version 2021-07 is released, the Metafields will also be available to Shop Collections, Customers, Blogs, Articles and Pages.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Jul 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/metafields-in-graphql-storefront-api-available-on-additional-resources</link>
  </item>
  <item>
    <title>TaxLine object now has a channel_liable field</title>
    <description><![CDATA[ <div class=""><p>When merchants sell on multiple sales channels, it can be difficult to determine whether the merchant or the sales channel is responsilbe for remitting sales taxes. For example, most marketplaces are the liable party for sales tax, and should be excluded from merchant sales tax filings.</p>
<p>As of the 2021-07 version of the REST and GraphQL orders APIs, a new field is now present on the <code>TaxLine</code> object: <code>channel_liable</code>. This field indicates whether the sales channel that submitted the order is liable for remittance for each tax line. It can contain the following values: </p>
<ul>
<li><code>true</code> indicates that the channel is responsible for remittance of the tax line.</li>
<li><code>false</code> indicates that the channel is not responsible for remittance of the tax line.</li>
<li><code>null</code> indicates that it is unknown who has the responsibility, and that the merchant should check with a local tax authority to determine their tax obligations.</li>
</ul>
<p>The <code>channel_liable</code> field lets developers inform merchants that another party is responsible for sales tax remittance, which then helps merchants better understand the tax that they are responsible for. </p>
</div> ]]></description>
    <pubDate>Thu, 01 Jul 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/taxline-object-now-has-a-channel_liable-field</link>
  </item>
  <item>
    <title>New code for unrecognized currencies</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-07, the GraphQL Admin API returns <code>XXX</code> in response to an unrecognized currency code. <code>XXX</code> is the ISO code used to denote transactions that involve no currency.</p>
<p>In mutations, a <code>CurrencyCode</code> input value of <code>XXX</code> is invalid. <code>XXX</code> can only be returned as a result and not as an input value.</p>
<p>This change prevents order pages from breaking if payments include a currency code that's not in the list of <a href="api/admin/reference/common-objects/currencycode" target="_blank" class="body-link">supported values for the <code>CurrencyCode</code> object</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 30 Jun 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/new-code-for-unrecognized-currencies</link>
  </item>
  <item>
    <title>Online Store 2.0: Introducing the new Liquid input setting</title>
    <description><![CDATA[ <div class=""><p>The new Liquid input setting allows merchants to add custom Liquid code directly from the editor. The Liquid setting is similar to the HTML setting type, except it allows access to Liquid variables. This means merchants will be able to access global and template-specific Liquid objects without editing their theme code.</p>
<p>Learn more about this update in our <a href="https://shopify.dev/themes/architecture/settings/input-settings#liquid" target="_blank" class="body-link">developer documentation</a>.</p>
<p>Refer to <a href="https://github.com/Shopify/dawn/blob/main/sections/custom-liquid.liquid" target="_blank" class="body-link">Dawn’s custom-liquid section</a> for an example of how the Liquid setting can be implemented.</p>
</div> ]]></description>
    <pubDate>Wed, 30 Jun 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/online-store-2-0-introducing-the-new-liquid-input-setting</link>
  </item>
  <item>
    <title>File API is now available</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-07, you can use the File API to create, update, and delete generic files and images. This functionality allows merchants to reuse files for different apps. These files are added to the <a href="https://shopify.com/admin/settings/files" target="_blank" class="body-link">Files page</a> in Shopify admin.</p>
<p>Learn more about the File API on <a href="https://shopify.dev/docs/admin-api/graphql/reference/products-and-collections/file" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/file-api-is-now-available</link>
  </item>
  <item>
    <title>Online Store 2.0: Shopify GitHub integration now available </title>
    <description><![CDATA[ <div class=""><p>With the Shopify GitHub integration, you can connect your GitHub user account or organization to your Shopify admin, and connect Git branches to themes in your store. Native support for version control allows you to make and track and manage changes to theme code, as well as collaborate with other developers and share progress in real time.</p>
<p><a href="https://shopify.dev/themes/tools/github" target="_blank" class="body-link">Learn more about the Shopify GitHub integration</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/online-store-2-0-shopify-github-integration-now-available</link>
  </item>
  <item>
    <title>New updates to the Storefront API </title>
    <description><![CDATA[ <div class=""><h4>2021-07 API version release</h4>
<p>The upcoming 2021-07 release of the Storefront API includes the following new features:</p>
<p><strong>Subscriptions</strong> 
You can now retrieve subscription products from the <code>sellingPlans</code> object, and enable a buyer to purchase a subscription with Shopify’s native checkout. </p>
<p><strong>International pricing</strong>
The prices that display in a storefront can vary based on a buyer's location. You can now offer localized buyer experiences reflecting international pricing, including percentage adjustments, fixed prices, currency conversion, and rounding rules. We've shipped a new GraphQL directive called <code>@inContext</code> that enables you to optionally pass in country information when fetching products, as well as new optional inputs that specify the buyer's country when creating carts and checkouts. This functionality replaces the existing presentment currency connections. </p>
<p><strong>Local pickup</strong>
You can now display whether a product is in stock and available for local pickup using the new <code>StoreAvailability</code> and <code>Location types</code> in the Storefront API. This enables buyers to purchase a product online and pick it up from their desired location.</p>
<p><strong>Additional metafields</strong> 
The Storefront API now supports metafields on the following additional resources: <code>Article</code>, <code>Blog</code>, <code>Collection</code>, <code>Customer</code>, <code>Order</code>, <code>Page</code>, and <code>Shop</code>. You can retrieve metafields to access information from different types of resources to enhance your commerce experience. Previously metafields were only supported on the Product and ProductVariant resources.</p>
<p>Review the detailed <a href="http://shopify.dev/api/release-notes/2021-07" target="_blank" class="body-link">release notes</a> for this version release.</p>
<h4>Unstable API version release</h4>
<p>We have also added the following features to the unstable Storefront API version: </p>
<p><strong>Cart</strong>
The cart enables buyers to collect the merchandise they intend to purchase, get the estimated cost of those items, and continue to a checkout once ready. It's optimized for performance and designed to scale without any store-wide rate limits.</p>
<p><strong>Filtering</strong>
You can support a number of buyer experiences by narrowing down your collections query by specifying which products to fetch. For example, you can filter search results based on a subset of data, such as product size, color, and vendor. </p>
<p>We invite you to participate in the discussion in our new <a href="https://github.com/Shopify/storefront-api-feedback/discussions" target="_blank" class="body-link">Storefront API Feedback</a> repository on GitHub where you can share feedback on these unstable features, and explore our new <a href="https://github.com/Shopify/storefront-api-feedback/discussions/6" target="_blank" class="body-link">proposed schema evolution</a> in the Storefront API. We look forward to engaging with you on GitHub!</p>
<p>To learn more about the Storefront API, check out the <a href="http://shopify.dev/custom-storefronts" target="_blank" class="body-link">new tutorials for these features</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/new-updates-to-the-storefront-api</link>
  </item>
  <item>
    <title>Post-purchase checkout extensions beta access</title>
    <description><![CDATA[ <div class=""><p>You can now access our post-purchase checkout extension beta. This allows you  to start building high-converting experiences like upsell offers, survey, donation requests, and more.</p>
<p>For more information on getting started, requirements, limitations, and more, refer to our <a href="https://shopify.dev/apps/checkout/post-purchase" target="_blank" class="body-link">detailed developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/post-purchase-checkout-extensions-beta-access</link>
  </item>
  <item>
    <title>Online Store 2.0: Create and manage themes using Shopify CLI </title>
    <description><![CDATA[ <div class=""><p>Theme developers can now use Shopify CLI to build themes. </p>
<p>You can now do the following:</p>
<ul>
<li>Develop, preview, and test changes using development themes</li>
<li>Hot-reload CSS and Liquid section changes as you’re developing </li>
<li>Initialize a new theme project using our reference theme, <a href="https://shopify.dev/themes/tools/dawn" target="_blank" class="body-link">Dawn</a>, as a starting point</li>
<li>Push and publish themes from the command line</li>
<li>Lint your theme’s code using <a href="https://shopify.dev/themes/tools/theme-check" target="_blank" class="body-link">Theme Check</a></li>
<li>Populate test data for your theme, including products, customers, and draft orders</li>
</ul>
<p><a href="https://shopify.dev/themes/tools/cli/getting-started" target="_blank" class="body-link">Learn more about developing themes using Shopify CLI</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/online-store-2-0-create-and-manage-themes-using-shopify-cli</link>
  </item>
  <item>
    <title>Online Store 2.0: Detect theme errors with Theme Check </title>
    <description><![CDATA[ <div class=""><p>Theme Check scans themes for errors and highlights Shopify theme and Liquid best practices. You can run these checks as a part of the Shopify Liquid Visual Studio Code extension. Theme Check identifies several types of issues within your theme code, including: </p>
<ul>
<li>Liquid syntax errors</li>
<li>Missing templates</li>
<li>Unused variables and snippets</li>
<li>Unknown and deprecated tags</li>
<li>Excessive snippet nesting</li>
<li>Performance issues</li>
</ul>
<p><a href="https://shopify.dev/themes/tools/theme-check" target="_blank" class="body-link">Learn more about Theme Check</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/online-store-2-0-detect-theme-errors-with-theme-check</link>
  </item>
  <item>
    <title>Online Store 2.0: Build and test themes with development themes</title>
    <description><![CDATA[ <div class=""><p>Development themes are temporary, hidden themes that are connected to the Shopify store you’re using for development. When you run <code>shopify theme serve</code>, Shopify CLI automatically creates a development theme inside the store you’re working on, and will reuse that theme each time <code>shopify theme serve</code> is subsequently run during the same session. You don’t need to worry about others viewing or making edits to it because development themes are not visible on the <strong>Online store</strong> &gt; <strong>Themes</strong> page. </p>
<p><a href="https://shopify.dev/themes/tools/cli#development-themes" target="_blank" class="body-link">Learn more about Development Themes</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/online-store-2-0-build-and-test-themes-with-development-themes</link>
  </item>
  <item>
    <title>Online Store 2.0: JSON templates and improvements to Liquid</title>
    <description><![CDATA[ <div class=""><p>Themes can now use JSON templates in place of Liquid templates for all template types except for <code>gift_card</code> and <code>robots.txt</code>.</p>
<p>Using the new JSON template files, you can define which sections should appear by default when your theme is first installed, and which order they appear in. Merchants can add, remove or reorder sections of JSON templates using the theme editor. </p>
<p>You can also connect theme settings to <a href="https://shopify.dev/themes/architecture/settings#dynamic-sources" target="_blank" class="body-link">dynamic sources</a> to pull dynamic information from the store. Dynamic sources can be <a href="https://shopify.dev/api/liquid/objects/metafield" target="_blank" class="body-link">metafield values</a> or resource attributes.</p>
<p><a href="http://shopify.dev/themes/architecture/templates/json-templates" target="_blank" class="body-link">Learn more about JSON templates</a> and <a href="https://shopify.dev/themes/migration" target="_blank" class="body-link">how to update your themes to use this new architecture</a>. </p>
<p>To see a model of how you can implement JSON templates, take a look at the /<code>templates</code> directory of the <a href="https://github.com/Shopify/dawn" target="_blank" class="body-link">Dawn GitHub repo</a>. </p>
<p>We’ve also made other notable improvements to Liquid:</p>
<ul>
<li>Moved <a href="https://shopify.dev/themes/architecture/locales/schema-locale-files" target="_blank" class="body-link">theme translations</a> currently defined in the schema into <code>locales/</code> files.</li>
<li>Added <a href="https://shopify.dev/api/ajax/reference/cart#bundled-section-rendering" target="_blank" class="body-link">Bundled Section Rendering</a> in JavaScript endpoints to offload client-side rendering from themes.</li>
<li>Updated <a href="https://shopify.dev/themes/architecture/settings/input-settings#specialized-input-settings" target="_blank" class="body-link">specialized theme setting types</a> to return Liquid objects instead of resource handles.</li>
<li>Updated filters and attributes for functionality such as preloading critical CSS, adding html attributes to links, and removing items from carts.</li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/online-store-2-0-json-templates-and-improvements-to-liquid</link>
  </item>
  <item>
    <title>Online Store 2.0: New metafields type system and dynamic sources available</title>
    <description><![CDATA[ <div class=""><p>We've released a new commerce-oriented type system for metafields. Metafields created with these new types from our APIs will be more interoperable across our system.</p>
<p>The type system is exposed through a new <code>type</code> field. The <code>type</code> field replaces the <code>valueType</code> field, which is now deprecated, and will be removed in our 2021-10 release.</p>
<p>Most new types map to the old <code>MetafieldValueType</code> enum, except for <code>json_string</code> and <code>json</code>. <code>json</code> replaces <code>json_string</code>, but <code>json_string</code> will continue to exist because it behaves differently than the new <code>json</code> type when referenced in Liquid.</p>
<p><strong>Note</strong>: <code>json_string</code> will not automatically migrate to the <code>json</code> type.</p>
<p>Learn more about the type system and how to migrate to it in the <a href="https://shopify.dev/apps/metafields/definitions/types" target="_blank" class="body-link">Metafields documentation</a>.</p>
<p>To learn more about these API changes, refer to our API reference documentation:</p>
<ul>
<li><a href="https://shopify.dev/docs/admin-api/rest/reference/metafield" target="_blank" class="body-link">Admin REST reference</a></li>
<li><a href="https://shopify.dev/docs/admin-api/graphql/reference/metafields" target="_blank" class="body-link">Admin GraphQL reference</a></li>
<li><a href="https://shopify.dev/docs/storefront-api/reference/common-objects/metafield" target="_blank" class="body-link">Storefront API reference</a></li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <category>2021-10</category>
    <link>https://shopify.dev/changelog/online-store-2-0-new-metafields-type-system-and-dynamic-sources-available</link>
  </item>
  <item>
    <title>Online Store 2.0: Extend apps into the Online Store with theme app extensions </title>
    <description><![CDATA[ <div class=""><p>App developers can now integrate their apps into the Online store with theme app extensions. A theme app extension is a bundle of app block definitions and supporting files. App blocks can be added, removed, and configured directly from the theme editor without having to touch a theme’s code. This means uninstalls are also cleaner, with ghost code automatically removed.</p>
<p><a href="https://shopify.dev/apps/online-store/theme-app-extensions" target="_blank" class="body-link">Learn more about theme app extensions</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/online-store-2-0-extend-apps-into-the-online-store-with-theme-app-extensions</link>
  </item>
  <item>
    <title>Online Store 2.0: New reference theme available: Dawn </title>
    <description><![CDATA[ <div class=""><p>Dawn is Shopify’s first open source reference theme–built with performance and flexibility in mind, and using Online Store 2.0 features, including JSON templates, which support app blocks and sections on all pages.</p>
<p>Dawn uses a HTML-first, Javascript-only-as-needed approach to theme development, and can be used as a model for building new themes on Shopify. Using Shopify CLI, theme developers can <a href="https://shopify.dev/themes/tools/dawn" target="_blank" class="body-link">clone Dawn</a> as a starting point for building new themes. </p>
<p><a href="https://github.com/shopify/dawn" target="_blank" class="body-link">View the Dawn repository on GitHub</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/online-store-2-0-new-reference-theme-available-dawn</link>
  </item>
  <item>
    <title>Online Store 2.0: New metafields type system and dynamic sources</title>
    <description><![CDATA[ <div class=""><p>We've released a new commerce-oriented type system for metafields. Metafields that are created with these new types from our APIs are now more interoperable across our system. </p>
<p>You can use the type system through a new <code>type</code> field that replaces the existing <code>valueType</code> field, which is now deprecated. To make the migration easier, this is a non-breaking change. The deprecated <code>valueType</code> field will be removed in 2022-01.</p>
<p>To learn more about the API changes, refer to the API specific reference documentation:</p>
<ul>
<li><a href="https://shopify.dev/api/admin-rest/latest/resources/metafield" target="_blank" class="body-link">Admin REST API</a></li>
<li><a href="https://shopify.dev/api/admin-graphql/latest/objects/Metafield" target="_blank" class="body-link">Admin GraphQL API</a></li>
<li><a href="https://shopify.dev/api/storefront/latest/objects/metafield" target="_blank" class="body-link">Storefront API reference</a></li>
</ul>
<p>If you’re a theme developers, then you can now use <a href="https://shopify.dev/themes/architecture/settings#dynamic-sources" target="_blank" class="body-link">dynamic sources</a> to insert standard metafields and known resource properties as setting defaults.</p>
<p>Learn more about the type system and how to migrate to it in the <a href="https://shopify.dev/apps/metafields/definitions/types" target="_blank" class="body-link">Metafields documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 29 Jun 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2022-01</category>
    <link>https://shopify.dev/changelog/online-store-2-0-new-metafields-type-system-and-dynamic-sources</link>
  </item>
  <item>
    <title>Subscription APIs now support Authorize.net</title>
    <description><![CDATA[ <div class=""><p>The Shopify Subscription APIs now support <a href="https://www.authorize.net/" target="_blank" class="body-link">Authorize.net</a>! </p>
<p>We have updated our <a href="https://shopify.dev/docs/admin-api/graphql/reference/customers/customerpaymentmethod" target="_blank" class="body-link">CustomerPaymentMethod API</a> on the September 2021 release to allow Shopify to store credit cards from Authorize.net and be used by the <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptioncontract" target="_blank" class="body-link">SubscriptionContract API</a>. </p>
<p>Learn more about <a href="https://shopify.dev/concepts/apps/subscription-apps" target="_blank" class="body-link">Shopify Subscription APIs</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 24 Jun 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/subscription-apis-now-support-authorize-net</link>
  </item>
  <item>
    <title>Retrieve accurate and reliable order sales data </title>
    <description><![CDATA[ <div class=""><p>Accurate and reliable sales data is critical to our merchants' businesses. It surfaces the insights they need to report on sales, reconcile their accounts, and measure and improve the performance of their business. </p>
<p>Shopify is releasing a new set of APIs that provide app developers the ability to query a list of all sales related changes on any Shopify order. You can now have a single consistent way to ensure your app is retrieving the most up to date and precise sales data as opposed to stitching order and sales data together through multiple resources. The APIs offer a variety of helpful metrics regarding each sale including detailed information about discounts, taxes, and the additional ability to reference information about the line item associated with the sale. You can think of it as a queryable audit trail to track all order changes from new sales, order edits, returns, and more. </p>
<p>To learn more about the new APIs, visit our <a href="https://shopify.dev/tutorials/review-sales-data-order-history" target="_blank" class="body-link">getting started guide</a> in the Shopify Developer Docs. </p>
</div> ]]></description>
    <pubDate>Fri, 18 Jun 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/retrieve-accurate-and-reliable-order-sales-data</link>
  </item>
  <item>
    <title>Storefront API now available for custom apps </title>
    <description><![CDATA[ <div class=""><p>The Storefront API, which was previously limited to only private apps and public sales channel apps, can now also be used by custom apps to create custom buying experiences. </p>
<p>Learn more about the Storefront API <a href="https://shopify.dev/docs/storefront-api" target="_blank" class="body-link">here</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 16 Jun 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/storefront-api-now-available-for-custom-apps</link>
  </item>
  <item>
    <title>Build and test your product subscription app extension with the Developer Console </title>
    <description><![CDATA[ <div class=""><p>With the Developer Console, you no longer need to build your app extension in an isolated environment, you can now test your app extension with real store data in a local store environment. Any changes made to your local environment will render immediately, meaning you no longer need to publish your app to view your modifications. </p>
<p>You can also render both desktop and mobile testing environments. </p>
<p>Learn more about product <a href="https://shopify.dev/tutorials/getting-started-product-subscription-extension" target="_blank" class="body-link">subscription app extensions and the developer console</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 11 Jun 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/build-and-test-your-product-subscription-app-extension-with-the-developer-console</link>
  </item>
  <item>
    <title>App developers can initiate app refunds from the Partner Dashboard </title>
    <description><![CDATA[ <div class=""><p>App developers and their teams can independently investigate billing questions from merchants and issue app refunds directly from the <a href="https://shopify.dev/apps/billing/refunds" target="_blank" class="body-link">Charge Overview page</a>. Developers no longer need to contact Shopify Support to issue app refunds. By responding to merchant billing support inquiries directly, app developers can increase merchant satisfaction.</p>
<p>Staff acounts can use the new <code>Manage refunds</code> permission to issue app refunds so that app developers can decide which team members perform refunds. Developers can issue refunds for app charges up to $1,000.00 USD and app charges that were created less than a year ago. </p>
<p>To learn more about partner app refunds, refer to: <a href="https://shopify.dev/apps/billing/refunds" target="_blank" class="body-link">Issuing app refunds page</a></p>
</div> ]]></description>
    <pubDate>Thu, 10 Jun 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/app-developers-can-initiate-app-refunds-from-the-partner-dashboard</link>
  </item>
  <item>
    <title>Access theme files with the Theme Kit Access app</title>
    <description><![CDATA[ <div class=""><p>The new Theme Kit Access app makes it easier for merchants to grant access to their theme. Instead of relying on a private app API password to authenticate, merchants can now leverage the Theme Kit Access app to create, share, and manage Theme Kit access with their partners. </p>
<p>To start leveraging the Theme Kit Access app, <a href="https://shopify.dev/tools/theme-kit/manage-theme-kit-access" target="_blank" class="body-link">click here</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Jun 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/access-theme-files-with-the-theme-kit-access-app</link>
  </item>
  <item>
    <title>Update - Shopify App Store Categories and Subcategories </title>
    <description><![CDATA[ <div class=""><p>To reduce the complexity of searching for apps, we’ve reduced the number of app categories and subcategories in the Shopify App Store, and renamed some of our categories to better fit the merchant's vocabulary and search intent. </p>
<p>This change means that most developers will find their apps listed in different or renamed categories and subcategories, and therefore some might also have a different page rank. </p>
<p>To learn more about app store categorization, please visit the [shopify.dev] (<a href="https://shopify.dev/concepts/app-store/getting-your-app-approved/app-categories" target="_blank" class="body-link">https://shopify.dev/concepts/app-store/getting-your-app-approved/app-categories</a>)</p>
</div> ]]></description>
    <pubDate>Mon, 31 May 2021 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/update-shopify-app-store-categories-and-subcategories</link>
  </item>
  <item>
    <title>The pages global Liquid object is now iterable</title>
    <description><![CDATA[ <div class=""><p>You can now iterate through <a href="https://shopify.dev/docs/themes/liquid/reference/objects#pages" target="_blank" class="body-link">the global Liquid <code>pages</code> object</a>, instead of only being able to directly reference known pages through their handle. This allows you to access a paginated pages listing of up to 50 items at a time and produce HTML that is conditional to the page data that is available.</p>
<p>You can return properties for a specific page using <code>{{ pages.pagename.propertyname }}</code>:</p>
<pre><code class="language-liquid">&lt;h1&gt;{{ pages.about.title }}&lt;/h1&gt;
&lt;p&gt;{{ pages.about.author }} says...&lt;/p&gt;
&lt;div&gt;{{ pages.about.content }}&lt;/div&gt;
</code></pre>
<p>You can also interate through up to 50 pages at a time with pagination:</p>
<pre><code class="language-liquid">&lt;ul&gt;
{%- paginate pages by 50 \-%}
	{%- for p in pages -%}
		&lt;li&gt;{{p.title}}&lt;/li&gt;
	{%- endfor -%}
	{{ paginate | default\_pagination: next: 'Older', previous: 'Newer' }} 
{%- endpaginate \-%}
&lt;/ul&gt;
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 21 May 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-pages-global-liquid-object-is-now-iterable</link>
  </item>
  <item>
    <title>Subscriptions APIs now support PayPal Express </title>
    <description><![CDATA[ <div class=""><p>We have added a new payment method type, CustomerPaypalBillingAgreement, to the 2021-07 release candidate that allows the ability to store Paypal Billing Agreements in Shopify to be used by <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptioncontract" target="_blank" class="body-link">SubscriptionContracts</a>. </p>
<p>This change also introduces two new mutations. One to create a PayPal billing agreement for a customer, and one to update existing agreements. For more information on the new mutations, visit our documentation on <a href="https://shopify.dev/docs/admin-api/graphql/reference/customers/customerpaymentmethodpaypalbillingagreementcreate" target="_blank" class="body-link">customerPaymentMethodPaypalBillingAgreementCreate</a> and <a href="https://shopify.dev/docs/admin-api/graphql/reference/customers/customerpaymentmethodpaypalbillingagreementupdate" target="_blank" class="body-link">customerPaymentMethodPaypalBillingAgreementUpdate</a></p>
</div> ]]></description>
    <pubDate>Wed, 19 May 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/subscriptions-apis-now-support-paypal-express</link>
  </item>
  <item>
    <title>New localization form enables country selectors in themes</title>
    <description><![CDATA[ <div class=""><p>We've released the <a href="https://shopify.dev/tutorials/customize-theme-support-multiple-currencies" target="_blank" class="body-link">localization form</a>, which lets  you build country selectors into themes. Merchants can now offer different prices for different countries that share the same currency with <a href="https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/international-pricing" target="_blank" class="body-link">international pricing</a>.</p>
<p>The <a href="https://shopify.dev/docs/themes/liquid/reference/tags/deprecated-tags#the-currency-form" target="_blank" class="body-link">currency form</a> remains backwards compatible for new and existing themes, however using the localization form is highly recommended. </p>
<p>Learn more about the <a href="https://shopify.dev/tutorials/customize-theme-support-multiple-currencies" target="_blank" class="body-link">localization form</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 17 May 2021 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-localization-form-enables-country-selectors-in-themes</link>
  </item>
  <item>
    <title>Shopify now serves minified CSS files automatically</title>
    <description><![CDATA[ <div class=""><p>As of May 2021, Shopify will automatically minify theme CSS when it is requested by the storefront. Minified CSS files are cached until the next time the underlying CSS file is updated.</p>
<p>Minification improves storefront performance, leading to a better buying experience for customers.</p>
<p>Learn more about performance and its benefits in the <a href="https://help.shopify.com/en/manual/online-store/store-speed/improving-speed" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 10 May 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-now-serves-minified-css-files-automatically</link>
  </item>
  <item>
    <title>New query filter on SellingPlanGroups</title>
    <description><![CDATA[ <div class=""><p>Apps can now query <code>SellingPlanGroups</code> that were created by another app using the new Shopify API Search query term <code>app_id</code>.</p>
<p>The <code>app_id</code> can be one of the following terms:</p>
<ol>
<li>CURRENT (<code>sellingPlanGroups(query:&quot;app_id:CURRENT&quot;)</code>) - The default behavior, where it returns all <code>SellingPlanGroups</code> created by the requesting app.</li>
<li>ALL (<code>sellingPlanGroups(query:&quot;app_id:ALL&quot;)</code>) - Returns all <code>SellingPlanGroups</code> from all apps.</li>
<li>An app id number (sellingPlanGroups(query:&quot;app_id:2525000000&quot;)) - Returns all <code>SellingPlanGroups</code> for the specified app id.</li>
</ol>
<p>Learn more about the SellingPlanGroups query in the <a href="https://shopify.dev/docs/admin-api/graphql/reference/common-objects/queryroot?api%5Bversion%5D=unstable#sellingplangroups-unstable" target="_blank" class="body-link">query root documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 07 May 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-query-filter-on-sellingplangroups</link>
  </item>
  <item>
    <title>Post-purchase fulfillment holds</title>
    <description><![CDATA[ <div class=""><p>Orders that include a <a href="https://help.shopify.com/en/manual/checkout-settings/order-processing#post-purchase-upsells" target="_blank" class="body-link">post-purchase offer</a> may now have <a href="https://help.shopify.com/en/manual/orders/fulfillment/fulfilling-orders/fulfill-your-own#fulfillment-holds" target="_blank" class="body-link">fulfillment holds</a> on inventory. These holds occur after payment is accepted, before the customer decides whether they will add items to their order. Like an edited order, the <code>fulfillable_quantity</code> of line items on post-purchase eligible orders are subject to change before fulfillment.</p>
<p>A few things to note about orders with post-purchase offers:</p>
<ul>
<li>When a customer places an order that qualifies for a post-purchase offer, any line items on an order will have a <code>fulfillable_quantity</code> of 0 while Shopify waits to see if there will be more items added to the order. The order <code>fulfillment_status</code> will be <code>on_hold</code>, and FulfillmentOrders in version ≥2021-07 will have a status of <code>ON_HOLD</code>. API versions before 2021-07 will return no FulfillmentOrders.</li>
<li>When a customer accepts a post-purchase offer or does not return to the post-purchase page for 60 minutes, the <code>fulfillable_quantity</code> will update to reflect the number of items that should be shipped. It is also possible that additional line items will appear on the order at this time. The order <code>fulfillment_status</code> will change to <code>null</code>. The FulfillmentOrder status will change to <code>OPEN</code>, and clients calling versions before 2021-07 will now be able to see FulfillmentOrders associated with the order.</li>
</ul>
<p>The most reliable source of timely fulfillment data is the FulfillmentOrders endpoint, available in both REST and GraphQL. Clients calling the most recent version of FulfillmentOrders will always include all relevant, up-to-date information about fulfillments.</p>
<p><a href="https://shopify.dev/docs/admin-api/graphql/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">FulfillmentOrder GraphQL Reference</a>
<a href="https://shopify.dev/docs/admin-api/rest/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">FulfillmentOrder REST Reference</a></p>
<p>For more information on using Fulfillment Orders, visit our guide on <a href="https://shopify.dev/tutorials/manage-fulfillments-with-fulfillment-and-fulfillmentorder-resources" target="_blank" class="body-link">managing fulfillment with Fulfillment and FulfillmentOrder resources</a>.</p>
<p>To be notified when the post-purchase checkout extension becomes widely available for new apps, <a href="https://shopify.dev/changelog/feed.xml" target="_blank" class="body-link">subscribe</a> to the developer changelog for updates.</p>
</div> ]]></description>
    <pubDate>Mon, 03 May 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <category>2021-07</category>
    <link>https://shopify.dev/changelog/post-purchase-fulfillment-holds</link>
  </item>
  <item>
    <title>BulkDiscountCodeCreationJob performance improvement</title>
    <description><![CDATA[ <div class=""><p>The discount code creation job has been updated to enhance its performance, including an update to our request throttling. For best results, enqueue a discount code creation job, and then enqueue another job when the job completes.</p>
<p>For more information about discount code creation job, visit our developer documentation.</p>
</div> ]]></description>
    <pubDate>Thu, 22 Apr 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/bulkdiscountcodecreationjob-performance-improvement</link>
  </item>
  <item>
    <title>New constituent countries for United Kingdom zone</title>
    <description><![CDATA[ <div class=""><p>Zone information for United Kingdom will now return the following possible constituent countries for the UK:</p>
<ul>
<li>Name: <code>England</code>, Code: <code>ENG</code></li>
<li>Name: <code>Northern Ireland</code>, Code: <code>NIR</code></li>
<li>Name: <code>Scotland</code>, Code: <code>SCT</code></li>
<li>Name: <code>Wales</code>, Code: <code>WLS</code></li>
<li>Name: <code>British Forces</code>, Code: <code>BFP</code></li>
</ul>
<p>Merchants use provinces in their <a href="https://help.shopify.com/en/manual/shipping/setting-up-and-managing-your-shipping/setting-up-shipping-zones" target="_blank" class="body-link">shipping zones settings</a> to specify the rates for a country or province.</p>
<img src="https://screenshot.click/14-00-thnt9-fupv3.png" alt="Example of the shipping zone settings with United Kingdom constituent countries" width="450"/>

<p>All existing shops that have United Kingdom in a zone will automatically include all UK constituent countries.</p>
<p>This data can be queried from the <a href="https://shopify.dev/docs/admin-api/graphql/reference/shipping-and-fulfillment/deliveryprovince" target="_blank" class="body-link">GraphQL admin api</a> or <a href="https://shopify.dev/docs/admin-api/rest/reference/store-properties/shippingzone" target="_blank" class="body-link">REST admin api</a></p>
<p>Shipping/billing addresses in the UK are not supposed to contain these consitituent countries. To ensure that the shipping/billing address is displayed correctly, ensure you are using the <a href="https://shopify.dev/docs/themes/liquid/reference/filters/additional-filters#format_address" target="_blank" class="body-link">format_address liquid filter</a> to format correctly based on the address locale.</p>
</div> ]]></description>
    <pubDate>Tue, 20 Apr 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-constituent-countries-for-united-kingdom-zone</link>
  </item>
  <item>
    <title>Activity log added for app store ads</title>
    <description><![CDATA[ <div class=""><p>We've added an activity log for app store ads to help advertisers keep track of who completed which actions, and at what time, within their ads account. </p>
<p>To access the activity log, go to your <a href="https://partners.shopify.com/current/ads" target="_blank" class="body-link">Ads page</a> and then click <strong>Activity log</strong>.</p>
<p>The following actions are tracked as of April 14. Some events may appear as early as March 31.</p>
<ul>
<li>Ad creation</li>
<li>Ad status changes (active / paused / archived)</li>
<li>Ad budget changes</li>
<li>Keyword creation (inclusive of negative keywords)</li>
<li>Keyword status changes (active / paused / removed)</li>
<li>Keyword bid changes.</li>
</ul>
<p>Learn more about advertising in the Shopify App Store on <a href="https://shopify.dev/concepts/app-store/advertising" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 20 Apr 2021 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/activity-log-added-for-app-store-ads</link>
  </item>
  <item>
    <title>Host parameter added to the OAuth redirect URI</title>
    <description><![CDATA[ <div class=""><p>We've introduced a <code>host</code> query parameter as part of the URI that Shopify redirects to after the OAuth grant flow. This parameter represents the domain that hosts your embedded app and is needed to initalize App Bridge 2.0 in the Shopify admin.</p>
<p>For most apps, there is no action required following this change. This change might be a breaking change if your app's <code>hmac</code> verification step doesn't verify the <code>hmac</code> using all the parameters available in the redirect URI.</p>
<p>For steps to verify the <code>hmac</code> parameter, see the <a href="https://shopify.dev/tutorials/authenticate-with-oauth#verification" target="_blank" class="body-link">&quot;Verification&quot; step of the <em>Authenticate with OAuth</em> guide</a>.</p>
<p>To see what other changes are needed to use App Bridge 2.0, see <a href="https://shopify.dev/tutorials/migrate-your-app-to-app-bridge-2" target="_blank" class="body-link">Migrate your app to App Bridge 2</a></p>
</div> ]]></description>
    <pubDate>Wed, 14 Apr 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/host-parameter-added-to-the-oauth-redirect-uri</link>
  </item>
  <item>
    <title>Restrict staff member access to development &amp; managed stores with Store access controls</title>
    <description><![CDATA[ <div class=""><p>Store access controls adds enhanced workflows that let you work more securely on development stores, managed stores, and Plus Sandbox stores with your team and contractors. </p>
<p>Owners and staff members with the <strong>Manage members</strong> permission can now: </p>
<ul>
<li>Specify a level of access, for each type of store, for a staff member. You can select between <strong>no access</strong>, <strong>access to all stores</strong>, or <strong>access to specific stores</strong>. A staff member can log in to a store only when they’ve been allowed access.</li>
<li>Allow select staff members to add, archive, or transfer ownership of stores.</li>
<li>Provide access to a specific store for a staff member from the <strong>Team</strong> or <strong>Stores</strong> section of the Partner Dashboard.</li>
</ul>
<p>To get started, head over to the <strong>Team</strong> section of the Partner Dashboard, and open up any team member’s profile. Learn more about the features in our <a href="https://help.shopify.com/en/partners/dashboard/managing-stores" target="_blank" class="body-link">Help</a> documentation.</p>
</div> ]]></description>
    <pubDate>Tue, 06 Apr 2021 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/restrict-staff-member-access-to-development-managed-stores-with-store-access-controls</link>
  </item>
  <item>
    <title>EASDK being removed and embedded apps must migrate to App Bridge</title>
    <description><![CDATA[ <div class=""><p>The Embedded App SDK (EASDK) and backwards compatibility layer are being removed from Shopify on January 1, 2022. </p>
<p>All embedded apps using EASDK or the backward compatibility layer are requested to move to <a href="https://shopify.dev/tutorials/migrate-your-app-to-app-bridge-2" target="_blank" class="body-link">App Bridge 2.0</a> as soon as possible in order to provide a more consistent and performant app loading experience for merchants.</p>
<p>Additionally, starting May 1, new embedded public apps submitted for review to the Shopify App Store will be required to be on App Bridge 2.0 with session tokens implemented.</p>
<p>To learn how to update your apps, refer to the <a href="https://shopify.dev/tutorials/migrate-your-app-from-legacy-sdks-to-shopify-app-bridge" target="_blank" class="body-link">migration guide</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Apr 2021 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/easdk-being-removed-and-embedded-apps-must-migrate-to-app-bridge</link>
  </item>
  <item>
    <title>Increased app quality checks for published apps</title>
    <description><![CDATA[ <div class=""><p>To help maintain app quality and marketplace trust on the Shopify App Store, we’re increasing app quality checks to ensure that published apps:</p>
<ul>
<li>Meet the most up-to-date version of <a href="https://shopify.dev/concepts/app-store/getting-your-app-approved/app-requirements" target="_blank" class="body-link">requirements for public apps</a></li>
<li>Meet our new <a href="https://shopify.dev/concepts/app-store/getting-your-app-approved/app-requirements#a-performance-score" target="_blank" class="body-link">app performance requirement</a> to ensure apps don’t negatively impact store speeds</li>
<li>Have clear and trustworthy app listings, that are without <a href="https://www.shopify.com/partners/blog/get-reviews-for-your-shopify-apps" target="_blank" class="body-link">incentivized reviews</a>.</li>
</ul>
<p>If something is found during the quality check of your listed app that does not meet our criteria, then the app store team will email you with the required changes and next steps.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Apr 2021 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/increased-app-quality-checks-for-published-apps</link>
  </item>
  <item>
    <title>Removing discount allocation method &quot;one&quot;.</title>
    <description><![CDATA[ <div class=""><p>This is a possibly breaking call, where there's no way for Shopify to know if your app is using the 'one' value. As a result, we will not delist any app that continues to get this warning.</p>
<p>As of API version 2020-07, we're updating the allocation method for discounts that have set the target_selection as explicit. Currently, Shopify applies these discounts to a single line item, which corresponds to an allocation method of one. With this change, the allocation methods will instead include &quot;each&quot; and &quot;across&quot;.</p>
<p>We're making this change to add &quot;each&quot; functionality, and simplify the discount syntax, as &quot;one&quot; and &quot;across&quot; functionally both discount the final price by a set amount.</p>
<p>This change also affects discount_applications on the following webhook payloads :</p>
<ul>
<li>orders/cancelled</li>
<li>orders/create</li>
<li>orders/fulfilled</li>
<li>orders/paid</li>
<li>orders/partially_fulfilled</li>
<li>orders/updated</li>
</ul>
<p>For more information, please visit the <a href="https://community.shopify.com/c/Shopify-APIs-SDKs/Removing-discount-allocation-method-quot-one-quot/m-p/727361" target="_blank" class="body-link">community forum post.</a></p>
</div> ]]></description>
    <pubDate>Wed, 31 Mar 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/removing-discount-allocation-method-one-1</link>
  </item>
  <item>
    <title>Predictive Search now returns appropriate results for translated storefronts</title>
    <description><![CDATA[ <div class=""><p>We’ve just released a change to predictive search that fixes the issue where predictive search API returns results in multiple languages. This helps customers searching for products on translated storefronts.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Mar 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/predictive-search-now-returns-appropriate-results-for-translated-storefronts</link>
  </item>
  <item>
    <title>3D Secure Customer Authentication Support for Subscriptions </title>
    <description><![CDATA[ <div class=""><p>Recent changes requiring two-factor authentication on payments in Europe have required 3D Secure 2.0 (3DS) coverage for subscriptions particularly in a recurring billing scenario. </p>
<p>This update includes the full buyer end-to-end experience for a 3DS challenge when attempting recurring billing. </p>
<p>If a European buyer’s bank requires authentication, then Shopify notifies the buyer in an email of the 3DS challenge requirement. If the buyer authentication fails, then it's the partner’s responsibility to retry the payment.</p>
<p>For information on 3DS support for subscriptions and more detail on Shopify and partner responsibilities in this process, <a href="https://shopify.dev/tutorials/create-manage-subscription-contracts#about-3d-secure" target="_blank" class="body-link">click here</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Mar 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/3d-secure-customer-authentication-support-for-subscriptions</link>
  </item>
  <item>
    <title>Manage international pricing with the price list admin API</title>
    <description><![CDATA[ <div class=""><p>Introducing price lists, a new API resource that allows you to configure <a href="https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/international-pricing" target="_blank" class="body-link">international pricing</a>.</p>
<p>Price lists can be used to create percentage price adjustments and fixed variant prices that are applied in the online store and checkout.</p>
<p>Learn more about the <a href="https://shopify.dev/tutorials/support-different-pricing-models-with-the-price-list-api" target="_blank" class="body-link">price list API</a> in Shopify Developers.</p>
</div> ]]></description>
    <pubDate>Wed, 24 Mar 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/manage-international-pricing-with-the-price-list-admin-api</link>
  </item>
  <item>
    <title>New App Charge Overview Page in Partner Dashboard</title>
    <description><![CDATA[ <div class=""><p>We’ve introduced a new app charge overview page in the Partner Dashboard, so app developers can view all one-time charges, app subscriptions, and usage charges made to merchants. This helps developers access key details to investigate app charges for answering merchants’ billing inquiries and better understand payouts.</p>
<p>Learn more about the app charge overview page on <a href="https://shopify.dev/tutorials/manage-subscriptions-with-billing-api#viewing-app-charges-in-the-partner-dashboard" target="_blank" class="body-link">Shopify.dev</a> </p>
</div> ]]></description>
    <pubDate>Mon, 22 Mar 2021 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-app-charge-overview-page-in-partner-dashboard</link>
  </item>
  <item>
    <title>GiftCard API available for Shopify Plus custom and private apps</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-04, <a href="https://shopify.dev/docs/admin-api/graphql/reference/common-objects/giftcard" target="_blank" class="body-link">GiftCard GraphQL APIs</a> are available for custom and private apps installed on Shopify Plus stores. App developers can now use the APIs to query all gift cards within a shop, as well as create, update, and disable gift cards. To get started, check out our tutorial on <a href="https://shopify.dev/tutorials/manage-gift-cards-with-admin-api" target="_blank" class="body-link">managing gift cards using the GraphQL Admin API</a>.</p>
<p>GiftCard REST API availability has also been extended to custom apps installed on Shopify Plus stores. Partners developing custom apps can now use Gift Card functionality when creating custom apps for Plus merchants. Learn more about the <a href="https://shopify.dev/docs/admin-api/rest/reference/plus/giftcard" target="_blank" class="body-link">GiftCard REST resource</a> in our developer documentation.</p>
</div> ]]></description>
    <pubDate>Fri, 19 Mar 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-04</category>
    <link>https://shopify.dev/changelog/giftcard-api-available-for-shopify-plus-custom-and-private-apps</link>
  </item>
  <item>
    <title>TA and AC country codes will be added to GraphQL API version 2019-04</title>
    <description><![CDATA[ <div class=""><p>As of GraphQL API version 2019-04, the list of valid country codes will retroactively include TA (Tristan da Cunha) and AC (Ascension Island). These British Overseas Territories were formerly included under the GB country code, but they are now distinct in order to comply with post-Brexit mailing address formats. Our APIs already support other British Territories, including AI, BM, FK, GG, GI, GS, IM, IO, JE, MS, PN, SH, TC, and VG. This change affects the shipping locations for all merchants who ship to the “rest of world” shipping zone.</p>
<p>The impacted enums are <a href="https://shopify.dev/docs/storefront-api/reference/common-objects/countrycode" target="_blank" class="body-link">CountryCode</a> in the GraphQL Storefront API and <a href="https://shopify.dev/docs/admin-api/graphql/reference/common-objects/countrycode" target="_blank" class="body-link">CountryCode</a> in the GraphQL Admin API.</p>
<p>This change will go live on March 22, 2021.</p>
</div> ]]></description>
    <pubDate>Thu, 18 Mar 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/ta-and-ac-country-codes-will-be-added-to-graphql-api-version-2019-04</link>
  </item>
  <item>
    <title>Attribution metrics for app store ads</title>
    <description><![CDATA[ <div class=""><p>Over the next week, we’ll be rolling-out new metrics in the ads reporting dashboard for Shopify App Store ads. The new metrics will help developers to measure their return on ad spend, the number of customers gained through ads, and customer acquisition costs. </p>
<p>New metrics include:</p>
<ul>
<li>Customers</li>
<li>Revenue</li>
<li>Customer Acquisition Cost</li>
<li>Return on Ad Spend</li>
<li>Conversion Rate</li>
</ul>
<p>The new metrics will be available on impressions served on or after May 5, 2020.</p>
<p>These additional metrics and soon-to-be added personalized keyword optimization suggestions will help make sure that your advertising efforts trend towards a positive return on investment.</p>
<p>You can learn more about these new metrics on <a href="https://shopify.dev/concepts/app-store/advertising/reporting" target="_blank" class="body-link">Shopify.dev</a> and in <a href="https://shopify.dev/concepts/app-store/advertising/faq" target="_blank" class="body-link">frequently asked questions.</a></p>
</div> ]]></description>
    <pubDate>Tue, 16 Mar 2021 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/attribution-metrics-for-app-store-ads</link>
  </item>
  <item>
    <title>SUBSCRIPTION_POLICY value now available in the ShopPolicyType enum</title>
    <description><![CDATA[ <div class=""><p>As of 2021-04, you can use the SUBSCRIPTION_POLICY value in the existing <a href="https://shopify.dev/docs/admin-api/graphql/reference/store-properties/shoppolicytype" target="_blank" class="body-link">ShopPolicyType</a> enum. This lets you retrieve and modify a shop's subscription policy.</p>
<p>Lean more about the <a href="https://shopify.dev/docs/admin-api/graphql/reference/store-properties/shoppolicy" target="_blank" class="body-link">ShopPolicy object</a> and the <a href="https://shopify.dev/docs/admin-api/graphql/reference/store-properties/shoppolicyupdate" target="_blank" class="body-link">shopPolicyUpdate mutation</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 15 Mar 2021 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-04</category>
    <link>https://shopify.dev/changelog/subscription_policy-value-now-available-in-the-shoppolicytype-enum</link>
  </item>
  <item>
    <title>Delivery method property in the REST FullfillmentOrder resource</title>
    <description><![CDATA[ <div class=""><p>As of API version 2021-04, a new field called <code>delivery_method</code> is present on the <code>FulfillmentOrder</code> object in the REST Admin. This field can contain an <code>id</code> and a <code>method_type</code>. The <code>method_type</code> can be one of the following values: <code>local</code>, <code>none</code>, <code>pick_up</code>, <code>retail</code>, or <code>shipping</code>. </p>
<p><code>delivery_method</code> represents the type of method that is used to transfer a product or service to a customer. The field was previously released in GraphQL API 2020-10 version.</p>
<p>For more information about FulfillmentOrder, visit our <a href="https://shopify.dev/docs/admin-api/graphql/reference/shipping-and-fulfillment/fulfillmentorder" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 11 Mar 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-04</category>
    <link>https://shopify.dev/changelog/delivery-method-property-in-the-rest-fullfillmentorder-resource</link>
  </item>
  <item>
    <title>Subscription-only product availability for online stores</title>
    <description><![CDATA[ <div class=""><p>Products that require a subscription for purchase, but have no selling plans associated with the product variants, are no longer available for purchase in the Online Store sales channel. Previously, a product would become available as a one-time purchase if no selling plans were attached.</p>
<p>The Liquid property <code>requires_selling_plan</code> on Product and ProductVariants has been updated to reflect this change. The Liquid property still states whether a selling plan is required to purchase the product variant. Previously, the property would return <code>false</code> if the product was set as subscription-only in the admin, but had no selling plans associated with the product variants.</p>
<p><a href="https://help.shopify.com/en/manual/products/subscriptions/setup#subscription-products" target="_blank" class="body-link">Learn more</a> about setting products as subscription only.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Mar 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/subscription-only-product-availability-for-online-stores</link>
  </item>
  <item>
    <title>Show automatic international tax-inclusive prices using liquid</title>
    <description><![CDATA[ <div class=""><p>With the launch of automatic international tax-inclusive pricing, whether or not prices have taxes included can vary based on the customer's country. </p>
<p>This change introduces a new liquid method on the <code>cart</code> drop, <code>cart.taxes_included</code>.</p>
<p>Learn more about <a href="https://shopify.dev/docs/themes/liquid/reference/objects/cart#cart-original_total_price" target="_blank" class="body-link">automatic international tax-inclusive pricing</a> in the Shopify Developer Docs.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Mar 2021 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/show-automatic-international-tax-inclusive-prices-using-liquid</link>
  </item>
  <item>
    <title>Vimeo embedded videos and ExternalVideo type changes</title>
    <description><![CDATA[ <div class=""><p>Shopify now supports adding embedded Vimeo videos to products, leveraging the <code>ExternalVideo</code> object.</p>
<p>Many <code>ExternalVideo</code> API implementations assume that all external video objects represent YouTube videos. To help determine where the video is hosted, we're introducing the new field <code>host</code> to <code>ExternalVideo</code> that will return a <code>MediaHost</code> enum value (currently <code>VIMEO</code> or <code>YOUTUBE</code>).</p>
<p>Additionally, we're introducing two new <code>MediaError</code>values <code>EXTERNAL_VIDEO_EMBED_NOT_FOUND_OR_TRANSCODING</code> and <code>EXTERNAL_VIDEO_EMBED_DISABLED</code> for Vimeo error handling.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Mar 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/vimeo-embedded-videos-and-externalvideo-type-changes</link>
  </item>
  <item>
    <title>All embedded apps submitted for app review are required to adopt session tokens </title>
    <description><![CDATA[ <div class=""><p>Session token-based authentication is now required for all embedded apps submitted for app reviews. This update helps mitigate the risk of embedded apps failing due to third-party cookie browser restrictions. With session token-based authentication, embedded apps no longer rely on cookies to verify identity.</p>
<p>Learn more about how to <a href="https://shopify.dev/tutorials/authenticate-your-app-using-session-tokens" target="_blank" class="body-link">authenticate your app using session tokens</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Mon, 08 Mar 2021 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/all-embedded-apps-submitted-for-app-review-are-required-to-adopt-session-tokens</link>
  </item>
  <item>
    <title>International pricing support now added to the Product API</title>
    <description><![CDATA[ <div class=""><p>If a merchant has used price adjustments by region, or set specific pricing by region, then those prices are now reflected in the <a href="https://shopify.dev/tutorials/migrate-your-app-to-support-multi-currency#product-and-product-variant-resources" target="_blank" class="body-link">presentment_prices property</a> of Shopify's Product API. Prices for the Eurozone are still reflected as one price across all countries or regions that use the Euro.</p>
<p>Learn more about <a href="https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/international-pricing" target="_blank" class="body-link">international pricing</a> in the Shopify Help Centre.</p>
</div> ]]></description>
    <pubDate>Mon, 08 Mar 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/international-pricing-support-now-added-to-the-product-api</link>
  </item>
  <item>
    <title>Kit Skills deprecated on April 1, 2021</title>
    <description><![CDATA[ <div class=""><p>Kit, a Shopify app that automates some marketing tasks, and the Kit Skills API will be deprecated on April 1, 2021. The API will be removed on August 31, 2021, and won't work after that date.</p>
<p>To Kit Skills developers, we are grateful for your partnership and the amazing things that you do for Shopify merchants.</p>
<p>For more information, refer to the <a href="https://shopify.dev/docs/kit/faq" target="_blank" class="body-link">frequently asked questions</a> in the Shopify developer documentation for Kit.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Mar 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/kit-skills-deprecated-on-april-1-2021</link>
  </item>
  <item>
    <title>New Node library for apps to interact with the Admin API</title>
    <description><![CDATA[ <div class=""><p>We’ve released a new <a href="https://github.com/Shopify/shopify-node-api" target="_blank" class="body-link">Shopify Admin API library for Node</a>. This library makes interacting with the Admin API easier, to help accelerate app development for developers who use Node frameworks. </p>
<p>The following resources have been updated to use this new library:</p>
<ul>
<li>The <a href="https://github.com/Shopify/koa-shopify-auth" target="_blank" class="body-link">koa-shopify-auth</a> package</li>
<li>Our <a href="https://shopify.dev/tutorials/build-a-shopify-app-with-node-and-react" target="_blank" class="body-link">Node + React app tutorial</a></li>
<li>The <a href="https://shopify.dev/tools/cli" target="_blank" class="body-link">Shopify App CLI</a></li>
</ul>
<p>For more information on how to use this new library, refer to our <a href="https://github.com/Shopify/shopify-node-api/blob/main/docs/index.md" target="_blank" class="body-link">Getting started guide</a>. You can also <a href="https://github.com/Shopify/shopify-node-api/issues" target="_blank" class="body-link">submit issues and feature requests</a> to the shopify-node-api repo.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Feb 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-node-library-for-apps-to-interact-with-the-admin-api</link>
  </item>
  <item>
    <title>Discount code lookup API redirect now includes the API version</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode?api%5Bversion%5D=2021-01#lookup-unstable" target="_blank" class="body-link">DiscountCode lookup API</a> now includes requested the API version in the location URL that it returns, instead of falling back to the earliest supported version.  </p>
<p>Example:
<code>/admin/api/&lt;API_VERSION&gt;/price_rules/&lt;PRICE_RULE_ID&gt;/discount_codes/&lt;DISCOUNT_ID&gt;.json</code></p>
<p>Learn more about the DiscountCode lookup API on <a href="https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode?api%5Bversion%5D=2021-01#lookup-unstable" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Feb 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/discount-code-lookup-api-redirect-now-includes-the-api-version</link>
  </item>
  <item>
    <title>The external_video Liquid object now supports YouTube and Vimeo videos</title>
    <description><![CDATA[ <div class=""><p>Shopify now supports adding embedded Vimeo videos to products, leveraging the <code>external_video</code> object.</p>
<p>Many <code>ExternalVideo</code> API implementations assume that all external video objects represent YouTube videos. To avoid any complications arising from this change, version 2021-01 and earlier of our APIs don't return <code>ExternalVideo</code> objects that represent Vimeo videos.</p>
<p>You can access Vimeo videos using the <a href="https://shopify.dev/docs/storefront-api/reference/products/externalvideo?api%5Bversion%5D=unstable" target="_blank" class="body-link">unstable</a> version of our APIs. We will also be introducing the ability to detect the video host in 2021-04.</p>
<p>Learn more about Liquid <a href="https://shopify.dev/docs/themes/liquid/reference/filters/media-filters" target="_blank" class="body-link">media filters</a> and the <a href="https://shopify.dev/docs/themes/liquid/reference/objects/external-video" target="_blank" class="body-link"><code>external_video</code></a> object on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 24 Feb 2021 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/the-external_video-liquid-object-now-supports-youtube-and-vimeo-videos</link>
  </item>
  <item>
    <title>Subscription APIs now support Shopify Scripts</title>
    <description><![CDATA[ <div class=""><p>The Shopify Subscription APIs now support Shopify Scripts.</p>
<p>For information on how to use Shopify Scripts with subscriptions, refer to <a href="https://help.shopify.com/manual/checkout-settings/script-editor/scripts-subscriptions" target="_blank" class="body-link"><em>Scripts for subscriptions</em></a> in the Shopify Help Center.</p>
<p>For more information on the Subscription APIs and upcoming roadmap, including the timeline for upcoming features, visit the <a href="https://shopify.dev/concepts/apps/subscriptions-faq" target="_blank" class="body-link">Subscriptions FAQ</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Wed, 24 Feb 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/subscription-apis-now-support-shopify-scripts</link>
  </item>
  <item>
    <title>New webhook metrics report for apps</title>
    <description><![CDATA[ <div class=""><p>Over the next few weeks, we're rolling out a new webhook metrics report in the Partner Dashboard. This report lets you track failed webhook deliveries, monitor response times, and find removed webhook subscriptions for your public and custom apps in real time. </p>
<p>You can access the report from the <a href="https://partners.shopify.com/current/apps/" target="_blank" class="body-link">Apps</a> page of your Partner Dashboard. Click on the percentage in the <strong>Webhook deliveries</strong> column to view the webhook metrics report for your app.</p>
<p>You can search your detailed delivery logs by subscription ID, webhook ID, or shop ID to troubleshoot any failures, and keep your app reliably consuming webhooks and providing merchants with a great app experience.</p>
<p>Learn more about using the <a href="https://shopify.dev/tutorials/track-webhook-deliveries" target="_blank" class="body-link">webhook metrics report</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Tue, 23 Feb 2021 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-webhook-metrics-report-for-apps</link>
  </item>
  <item>
    <title>Detect the theme editor using Liquid and JavaScript</title>
    <description><![CDATA[ <div class=""><p>You can now detect the theme editor programmatically using Liquid and JavaScript. In Liquid, you can use <code>request.design_mode</code>. In JavaScript, you can use <code>Shopify.designMode</code>.</p>
<p>Workaround methods, such as <code>content_for_header contains</code> in Liquid, or searching the page URL in JavaScript, aren't supported and won't continue to work in the new theme editor. To make your app or theme compatible with the new theme editor, you need to update your code to use a supported method.</p>
<p>Learn more about detecting the theme editor on <a href="https://shopify.dev/docs/themes/sections/develop-theme-sections-integration-with-theme-editor#detecting-the-theme-editor" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 03 Feb 2021 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/detect-the-theme-editor-using-liquid-and-javascript</link>
  </item>
  <item>
    <title>Pricing validations removed from all API versions</title>
    <description><![CDATA[ <div class=""><p>In our 2020-04 API version, we added validation requiring the <code>compare_at_price</code> field to always be greater than the <code>price</code> field on variants.</p>
<p>After further review of use cases around the current use of the <code>compare_at_price</code> field, we're reverting the addition of validation between the <code>price</code> and <code>compare_at_price</code> fields on variants, and notifications about this change as we will be removed from all versions.</p>
<p>If you're currently seeing notifications about this change in your API Health dashboard, you can safely ignore them. If you've already updated your app to handle this breaking change, there's no need for action. Your app will continue to function throughout the revert.</p>
</div> ]]></description>
    <pubDate>Wed, 27 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pricing-validations-removed-from-all-api-versions</link>
  </item>
  <item>
    <title>Preview and upgrade your checkout</title>
    <description><![CDATA[ <div class=""><p>Shops with checkout.liquid enabled can now upgrade to a new version of Shopify Checkout, unlocking powerful new checkout features—like subscription apps and local pickup—while keeping checkout.liquid customizations in-tact. </p>
<p><strong>All checkout upgrades need to be completed by February 26, 2021.</strong> Shops that don’t complete the upgrade within the checkout upgrade window (January 25, 2021 to February 26, 2021) will be upgraded automatically, which may cause some checkout.liquid customizations to break. </p>
<p>Find instructions for the checkout upgrade process in the <a href="https://help.shopify.com/manual/checkout-settings/checkout-upgrade" target="_blank" class="body-link">Shopify help center</a>.</p>
<p><strong>Note:</strong> Only shops with checkout.liquid enabled need to perform the upgrade.</p>
</div> ]]></description>
    <pubDate>Mon, 25 Jan 2021 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/preview-and-upgrade-your-checkout</link>
  </item>
  <item>
    <title>Selling plans are deleted 48 hours after a merchant uninstalls their subscriptions app</title>
    <description><![CDATA[ <div class=""><p>If a merchant uninstalls a subscriptions app, then 48 hours later selling plans and associated records (selling plan groups, policies, and their associations to products and variants) are deleted.  Subscription contracts and the product and variant records themselves won't be affected.</p>
<p>Learn more about <a href="https://shopify.dev/tutorials/create-manage-selling-plans" target="_blank" class="body-link">selling plans</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Tue, 19 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/selling-plans-are-deleted-48-hours-after-a-merchant-uninstalls-their-subscriptions-app</link>
  </item>
  <item>
    <title>More granular permissions for the Partner Dashboard</title>
    <description><![CDATA[ <div class=""><p>Two new staff permissions have been added to the Partner Dashboard, giving you more granular control over what your organization’s staff members can access.</p>
<ul>
<li><strong>View referrals</strong> grants access to the Referrals page.</li>
<li><strong>Manage affiliate campaigns</strong> grants access to the <strong>Affiliate tools</strong> page, and affiliate tools on the <strong>Referrals</strong> page. Staff members with this permission can also manage affiliate campaigns. This permission is available only to organizations that are part of the Shopify Affiliate Program.</li>
</ul>
<p>Access to these features was previously controlled by the <strong>Manage shops</strong> permission. Staff members in your organization who have the <strong>Manage shops</strong> permission are granted <strong>View referrals</strong> as part of this update. If you are part of the Shopify Affiliate Program, then staff members who have the <strong>Manage shops</strong> permission are also granted the <strong>Manage affiliate campaigns</strong> permission as part of this update.</p>
<p>To learn more about staff permissions, visit the <a href="https://help.shopify.com/partners/dashboard/account-access" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 18 Jan 2021 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/more-granular-permissions-for-the-partner-dashboard</link>
  </item>
  <item>
    <title>Subscriptions API scopes are now available by request</title>
    <description><![CDATA[ <div class=""><p>All developers can now request access to the Subscription APIs and Product Subscription App Extension. Using these tools, developers can build flexible apps that support new selling methods for merchants, and are compatible with all of Shopify’s platform features (including discounts, shipping, reporting, and payments).</p>
<p>To learn more about building with the new Subscription APIs and tooling, refer to our <a href="https://shopify.dev/tutorials/shopify-subscriptions-overview" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/subscriptions-api-scopes-are-now-available-by-request</link>
  </item>
  <item>
    <title>Quantity remaining no longer returned from Checkout API error message</title>
    <description><![CDATA[ <div class=""><p>The <a href="http://shopify.dev/tutorials/sell-through-the-checkout-api" target="_blank" class="body-link">Checkout API</a> no longer returns the amount of inventory remaining when a checkout is created or updated and there are not enough products in stock. This change was made to protect the privacy of our merchants.</p>
<p>To support older themes, the option <code>remaining: 1</code> is returned from the API. However, this number doesn't change, or represent the actual amount of inventory remaining. This option will be removed in a future version of the API.</p>
<p>Learn more about the updated error response by reading our <a href="https://shopify.dev/tutorials/sell-through-the-checkout-api#handling-errors" target="_blank" class="body-link">Checkout API documentation</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Tue, 12 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/quantity-remaining-no-longer-returned-from-checkout-api-error-message</link>
  </item>
  <item>
    <title>The Partner API is now available for accessing App Events, Earnings, and Experts Jobs Data </title>
    <description><![CDATA[ <div class=""><p>API access to App event, Earning, and Experts Marketplace Job data is now available to all Shopify Partners through the new Partner GraphQL API. This API allows programmatic access to data that was previously available only on the Partner Dashboard. </p>
<p>To get started with this API, visit <a href="https://shopify.dev/docs/partner-api" target="_blank" class="body-link">Shopify.dev</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 11 Jan 2021 18:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-partner-api-is-now-available-for-accessing-app-events-earnings-and-experts-jobs-data</link>
  </item>
  <item>
    <title> Checkout upgrade coming soon</title>
    <description><![CDATA[ <div class=""><p>On the Shopify Plus plan, brands get exclusive access to the checkout.liquid file, enabling them to make flexible customizations to Shopify Checkout. However, they need to upgrade Shopify Checkout periodically in order to unlock new checkout features while ensuring any checkout.liquid customizations remain in-tact. </p>
<p><strong>The next checkout upgrade will take place between January 25, 2021 to February 26, 2021.</strong> Only shops with checkout.liquid enabled need to perform the upgrade.</p>
<p>Learn more about the <a href="https://help.shopify.com/manual/checkout-settings/checkout-upgrade" target="_blank" class="body-link">checkout upgrade process</a> and view a full list of the new Shopify Checkout features in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Jan 2021 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkout-upgrade-coming-soon-1</link>
  </item>
  <item>
    <title>Product media in GraphQL Storefront API now ordered by position</title>
    <description><![CDATA[ <div class=""><p>As of the 2021-01 API version, <a href="https://shopify.dev/docs/storefront-api/reference/products/product?api%5Bversion%5D=2021-01" target="_blank" class="body-link">product media information</a> in the GraphQL Storefront API is returned in order of its position.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/product-media-in-graphql-storefront-api-now-ordered-by-position</link>
  </item>
  <item>
    <title>Users endpoint now supports cursor-based pagination</title>
    <description><![CDATA[ <div class=""><p>Previously, the Users endpoint returned the full list of all staff accounts on a shop.</p>
<p>For shops with a large number of users, this could lead to response timeouts, as the list was simply too large to return within a reasonable timeframe.</p>
<p>To make this data more manageable, we've enabled the same cursor-based-pagination found in other areas of the Admin API on the Users endpoint.</p>
<p>To learn more about pagination support in REST Admin APIs, please check out <a href="https://shopify.dev/tutorials/make-paginated-requests-to-rest-admin-api" target="_blank" class="body-link">this tutorial</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jan 2021 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/users-endpoint-now-supports-cursor-based-pagination</link>
  </item>
  <item>
    <title>Translated countries and provinces names available in Shipping Profiles</title>
    <description><![CDATA[ <div class=""><p>As of the 2021-01 API version, a new field <code>translated_name</code> will be available in <a href="https://shopify.dev/docs/admin-api/graphql/reference/shipping-and-fulfillment/deliverycountry" target="_blank" class="body-link"><code>DeliveryCountry</code></a> and <a href="https://shopify.dev/docs/admin-api/graphql/reference/shipping-and-fulfillment/deliveryprovince" target="_blank" class="body-link"><code>DeliveryProvince</code></a> types. The translated name of the country or province is based on the user locale.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/translated-countries-and-provinces-names-available-in-shipping-profiles</link>
  </item>
  <item>
    <title>Auto-activation of charges and subscriptions</title>
    <description><![CDATA[ <div class=""><p>When billing for your app, your charges and subscriptions will transition between a few different states.</p>
<p>One of these transitions is the <code>accepted</code> to <code>active</code> state. </p>
<p>When a merchant accepts a new one-time charge or subscription, the charge transitions from <code>pending</code> to <code>accepted</code>. However, the merchant is not charged until you manually activate that charge, transitioning the status from <code>accepted</code> to <code>active</code>.</p>
<p>To simplify the billing flow for apps and make it easier to use, we're removing the need for that request.</p>
<p>Starting in the <code>2021-01</code> release: when a charge is approved by a merchant, the charge will immediately transition from <code>pending</code> to <code>active</code>.
Check out our updated <a href="https://shopify.dev/tutorials/charging-for-your-app-with-rest-admin-api-introduction" target="_blank" class="body-link">REST Admin API billing guide</a> for more information.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/auto-activation-of-charges-and-subscriptions</link>
  </item>
  <item>
    <title>Storefront API Product, Blog, and Page nodes now have SEO fields</title>
    <description><![CDATA[ <div class=""><p>As of Storefront API version 2021-01, you can obtain the <a href="https://shopify.dev/docs/storefront-api/reference/online-store/seo" target="_blank" class="body-link">SEO</a> details for <a href="https://shopify.dev/docs/storefront-api/reference/products/product" target="_blank" class="body-link"><code>Product</code></a>, <a href="https://shopify.dev/docs/storefront-api/reference/online-store/blog" target="_blank" class="body-link"><code>Blog</code></a>, and <a href="https://shopify.dev/docs/storefront-api/reference/online-store/page" target="_blank" class="body-link"><code>Page</code></a> nodes. This new field returns translated content if any is available.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jan 2021 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/storefront-api-product-blog-and-page-nodes-now-have-seo-fields</link>
  </item>
  <item>
    <title>Updates to our API License and Terms and Partner Program Agreement</title>
    <description><![CDATA[ <div class=""><p>We've made some updates to our <a href="https://www.shopify.com/legal/api-terms" target="_blank" class="body-link">API License and Terms of Use</a> and our <a href="https://www.shopify.ca/partners/terms" target="_blank" class="body-link">Partner Program Agreement</a> to protect the integrity of our platform and clarify how apps should be built and distributed on the Shopify platform. </p>
<p>These changes come into effect as of today, January 1, 2021. </p>
<p>We encourage all developers on our platform to review and be familiar with the API License and Terms and the Partner Program Agreement, so that you understand how to build, run, and grow your app and development business on our platform. </p>
<p>For more information and frequently asked questions, please visit the <a href="https://help.shopify.com/en/partners/ppa-api-faq" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Jan 2021 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updates-to-our-api-license-and-terms-and-partner-program-agreement</link>
  </item>
  <item>
    <title>Pricing validations moved from 2020-04 to 2020-07</title>
    <description><![CDATA[ <div class=""><p>In April 2020, we released a breaking change that added additional validation requiring the <code>compare_at_price</code> to be strictly greater than the <code>price</code> on variants, in order to provide a more consistent experience for apps consuming these values.</p>
<p>Due to an internal oversight, apps affected by this breaking change were not notified of that fact until very recently. In order to provide apps with enough time to do this migration, we are extending the migration window for this change by 1 full versioning cycle. Effectively, this change will move from <code>2020-04</code> to <code>2020-07</code>.</p>
<p>We encourage you to stay on top of changes by regularly viewing your API Health report, checking for the presence of a deprecation header, and by reading through our quarterly release notes.</p>
<p>Learn more about this breaking change in the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-07#breaking-changes" target="_blank" class="body-link"><code>2020-07</code> release notes</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 15 Dec 2020 16:39:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/pricing-validations-moved-from-2020-04-to-2020-07</link>
  </item>
  <item>
    <title>App store ads team permissions</title>
    <description><![CDATA[ <div class=""><p>You can now create customizable team permissions for Shopify App Store ads. Owners of partner accounts can now set permissions for which team members can and can’t view or manage ads, or financials. </p>
<p>Owners can customize ad permissions in the <strong>Team</strong> section of the Partner Dashboard. The ad permissions that you can assign to team members are View ads, Manage ads, and View financials.</p>
<ul>
<li>View ads allows the team member to view the ads reporting dashboard.</li>
<li>Manage ads allows the team member to create and edit ads.</li>
<li>View financials allows the team member to access the Ad billing page.</li>
</ul>
<p>To learn more about ad permissions, please visit the <a href="https://shopify.dev/concepts/app-store/advertising" target="_blank" class="body-link">Shopify Help Centre</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 15 Dec 2020 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/app-store-ads-team-permissions</link>
  </item>
  <item>
    <title>Localization extensions mutation update</title>
    <description><![CDATA[ <div class=""><p>Earlier this year, <a href="https://shopify.dev/tutorials/get-a-country-field-using-localization-extensions" target="_blank" class="body-link">Localization Extensions</a> were launched to allow additional information to be collected upon checkout. This feature can be used to collect information for stores to meet various countries' regulatory requirements (e.g. Brazillian CPF numbers).</p>
<p>Version 2021-01 of the GraphQL Admin API adds functionality to update those values using an order mutation.</p>
<p>For more information, refer to the GraphQL Admin API reference docs for the <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/orderinput?api%5Bversion%5D=2021-01" target="_blank" class="body-link"><code>OrderInput</code> object</a> and the <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/draftorderinput?api%5Bversion%5D=2021-01" target="_blank" class="body-link"><code>DraftOrderInput</code> object</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 11 Dec 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/localization-extensions-mutation-update</link>
  </item>
  <item>
    <title>Updates to Image type on Storefront GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of the 2021-01 version, we've made it easier to determine the original width and height of storefront images before attempting to download and render it. This will help with optimizing performance of client-side rendering logic, such as <a href="https://css-tricks.com/preventing-content-reflow-from-lazy-loaded-images/" target="_blank" class="body-link">preventing content reflow from lazy-loaded images</a>.</p>
<p>Learn more about the image <code>width</code> and <code>height</code> properties in the <a href="https://shopify.dev/docs/storefront-api/reference/common-objects/image?api%5Bversion%5D=2021-01" target="_blank" class="body-link">Shopify Storefront API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 11 Dec 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/updates-to-image-type-on-storefront-graphql-api</link>
  </item>
  <item>
    <title>New proxy feature for Script Tag API</title>
    <description><![CDATA[ <div class=""><p>As of the 2021-01 API version, you can now proxy script tags added to Storefront's via the ScriptTags API through Shopify infrastructure, allowing Shopify's globally distributed CDN to cache and serve your script tags.</p>
<p>Learn more about the new <code>cache</code> property in the <a href="https://shopify.dev/docs/admin-api/rest/reference/online-store/scripttag?api%5Bversion%5D=2021-01" target="_blank" class="body-link">ScriptTags API documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 09 Dec 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/new-proxy-feature-for-script-tag-api</link>
  </item>
  <item>
    <title>Subscriptions API update</title>
    <description><![CDATA[ <div class=""><p>The following Subscription API resources received updates:</p>
<ul>
<li>Descriptions updated for <a href="https://shopify.dev/docs/admin-api/graphql/reference/products-and-collections/sellingplananchor" target="_blank" class="body-link"><code>SellingPlanAnchor.day</code></a>.</li>
<li>Added the <code>pricingPolicy</code> field to <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptionline" target="_blank" class="body-link"><code>SubscriptionLine</code></a> and <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptionlineinput" target="_blank" class="body-link"><code>SubscriptionLineInput</code></a>.</li>
<li>Added <code>createdAt</code> and <code>completedAt</code>  <code>DateTime</code> fields to <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptionbillingattempt" target="_blank" class="body-link"><code>SubscriptionBillingAttempt</code></a>.</li>
<li>Added <code>nextBillingDate</code> to <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptiondraftinput" target="_blank" class="body-link"><code>SubscriptionDraftInput</code></a>  allowing the <code>nextBillingDate</code> to be batched with other changes.</li>
<li>Added the <code>expiresSoon</code> field to <a href="https://shopify.dev/docs/admin-api/graphql/reference/customers/customercreditcard" target="_blank" class="body-link"><code>CustomerCreditCard</code></a>.</li>
<li>Removed <code>DELIVERY</code> from <a href="https://shopify.dev/docs/admin-api/graphql/reference/products-and-collections/sellingplanrecurringdeliverypolicyintent" target="_blank" class="body-link"><code>SellingPlanRecurringDeliveryPolicyIntent</code></a>.</li>
<li>The <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/subscriptiondraftlineupdate" target="_blank" class="body-link"><code>subscriptionDraftLineUpdate</code></a> mutation now accepts partial input. Unspecified fields retain their previous value.</li>
<li>Added the <a href="https://shopify.dev/docs/admin-api/rest/reference/events/webhook#list-of-supported-webhook-events-and-topics-2021-0" target="_blank" class="body-link"><code>customer_payment_methods/revoke</code></a> webhook.</li>
<li>Added the <code>admin_graphql_api_id</code> attribute to <a href="https://shopify.dev/docs/admin-api/rest/reference/events/webhook#list-of-supported-webhook-events-and-topics-2021-01" target="_blank" class="body-link"><code>customer_payment_methods/*</code></a>. Manually building the resource ID is no longer required.</li>
</ul>
</div> ]]></description>
    <pubDate>Thu, 26 Nov 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/subscriptions-api-update</link>
  </item>
  <item>
    <title>Private apps can now check their deprecated calls</title>
    <description><![CDATA[ <div class=""><p>Private apps can now check their deprecated calls through the Deprecated endpoint using the REST API.</p>
<p>Details can be found in the <a href="https://shopify.dev/docs/admin-api/rest/reference/deprecated_api_calls" target="_blank" class="body-link">REST API reference doc</a></p>
</div> ]]></description>
    <pubDate>Thu, 26 Nov 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/private-apps-can-now-check-their-deprecated-calls</link>
  </item>
  <item>
    <title>Transaction fees available on the OrderTransaction resource</title>
    <description><![CDATA[ <div class=""><p>As of 2021-01, you can query transaction fees on the <strong>OrderTransaction</strong> resource. The <strong>TransactionFee</strong> provides you with a breakdown of the fees associated with an order transaction, such as processing fees or foreign exchange fees.</p>
<p>Learn more by visiting the <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/ordertransaction?api%5Bversion%5D=2021-01" target="_blank" class="body-link">OrderTransaction</a> and <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/transactionfee?api%5Bversion%5D=2021-01" target="_blank" class="body-link">TransactionFee</a>  reference docs.</p>
</div> ]]></description>
    <pubDate>Tue, 24 Nov 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/transaction-fees-available-on-the-ordertransaction-resource</link>
  </item>
  <item>
    <title>Duties are now available on the Storefront API</title>
    <description><![CDATA[ <div class=""><p>Update March 11 2021: The version was delayed to 2021-04 from the originally posted 2021-01.</p>
<p>Duties are now available on the <strong>2021-04</strong> version of the Storefront API. You can query duties on the <strong>Checkout</strong> and <strong>Order</strong> resources.</p>
<p>Learn more by visiting the <a href="https://shopify.dev/docs/storefront-api/reference/object/checkout/?api%5Bversion%5D=2021-04" target="_blank" class="body-link">Checkout</a> and <a href="https://shopify.dev/docs/storefront-api/reference/object/order/?api%5Bversion%5D=2021-04" target="_blank" class="body-link">Order</a> resource reference docs.</p>
<p><strong>Details of resources affected:</strong></p>
<p><strong>API Version 2021-04 or later (includes duties)</strong></p>
<p><em>Checkout</em></p>
<p>lineItemsSubtotalPrice: The sum of all the prices of all the items in the checkout. <em>Duties</em>, taxes, shipping and discounts excluded.</p>
<p>paymentDueV2: The amount left to be paid. This is equal to the cost of the line items, <em>duties</em>, taxes and shipping minus discounts and gift cards.</p>
<p>subtotalPriceV2: Price of the checkout before <em>duties</em>, shipping and taxes.</p>
<p>totalPriceV2: The sum of all the prices of all the items in the checkout, <em>duties</em>, taxes and discounts included.</p>
<p><em>Order</em></p>
<p>currentSubtotalPrice: The subtotal of line items and their discounts, excluding line items that have been removed. Does not contain order-level discounts, <em>duties</em>, shipping costs, or shipping discounts. Taxes are not included unless the order is a taxes-included order.</p>
<p>currentTotalPrice: The total amount of the order, including <em>duties</em>, taxes and discounts, minus amounts for line items that have been removed.</p>
<p>subtotalPriceV2: Price of the order before <em>duties</em>, shipping and taxes.</p>
<p>totalPriceV2: The sum of all the prices of all the items in the order, <em>duties</em>, taxes and discounts included (must be positive).</p>
<p><strong>API Version 2020-10 or earlier (does not include duties)</strong></p>
<p><em>Checkout</em></p>
<p>lineItemsSubtotalPrice: The sum of all the prices of all the items in the checkout. Taxes, shipping and discounts excluded.</p>
<p>paymentDueV2: The amount left to be paid. This is equal to the cost of the line items, taxes and shipping minus discounts and gift cards.</p>
<p>subtotalPriceV2: Price of the checkout before shipping and taxes.</p>
<p>totalPriceV2: The sum of all the prices of all the items in the checkout, taxes and discounts included.</p>
<p><em>Order</em></p>
<p>currentSubtotalPrice: The subtotal of line items and their discounts, excluding line items that have been removed. Does not contain order-level discounts, shipping costs, or shipping discounts. Taxes are not included unless the order is a taxes-included order.</p>
<p>currentTotalPrice: The total amount of the order, including taxes and discounts, minus amounts for line items that have been removed.</p>
<p>subtotalPriceV2: Price of the order before shipping and taxes.</p>
<p>totalPriceV2: The sum of all the prices of all the items in the order, taxes and discounts included (must be positive).</p>
</div> ]]></description>
    <pubDate>Fri, 20 Nov 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-04</category>
    <link>https://shopify.dev/changelog/duties-are-now-available-on-the-storefront-api</link>
  </item>
  <item>
    <title>Dynamic Timeout for CarrierService API Rate Requests</title>
    <description><![CDATA[ <div class=""><p>TL;DR - In high-volume situations, the timeout for responding to rate requests from Shopify will be dynamically adjusted based on the number of requests per minute.</p>
<p>The timeout for CarrierService API rate requests will be changed to a dynamic value depending on how many requests per minute (RPM) are being made by the client. This change is to optimize the performance of checkout, while still giving apps the appropriate amount of time to calculate shipping rates. These limits are applied to each app-shop pair. The new timeout values are as follows:</p>
<ul>
<li>RPM under 1500: read timeout will be 10 seconds</li>
<li>RPM between 1500 and 3000: read timeout will be 5 seconds</li>
<li>RPM over 3000: read timeout will be 3 seconds</li>
</ul>
<p>These values are upper limits and should not be interpreted as a goal to develop towards. The requests are also treated as tiers, so only those requests above a given threshold will be given a lower timeout.</p>
<p>Shopify is constantly evaluating the performance of the platform and working towards improving resilience as well as app capabilities. As such, these numbers may be adjusted outside of our normal versioning timelines. The data and statistics have shown the impact to our partner community with these thresholds are minimal.</p>
<p>For more information on the CarrierService API, read our documentation here: <a href="https://shopify.dev/docs/admin-api/rest/reference/shipping-and-fulfillment/carrierservice" target="_blank" class="body-link">https://shopify.dev/docs/admin-api/rest/reference/shipping-and-fulfillment/carrierservice</a></p>
</div> ]]></description>
    <pubDate>Wed, 04 Nov 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/dynamic-timeout-for-carrierservice-api-rate-requests</link>
  </item>
  <item>
    <title>Deprecating Sass in themes</title>
    <description><![CDATA[ <div class=""><p>The use of <code>.scss</code> files within compiled Shopify themes is being officially deprecated. We'll be transitioning to only using <code>.css</code> files within all free and paid themes available on the Shopify Theme Store. </p>
<p>Support for Sass won't be removed in the short term and themes using <code>.scss</code> files will continue to function. However, we strongly recommend that developers compile their <code>.scss</code> files to <code>.css</code> locally, or use only <code>.css</code> files. New themes might be blocked from using <code>.scss</code> files in the future.</p>
<p>To learn more about this change and the alternatives available for developers who want to continue using Sass in their development workflow, refer to the <a href="https://www.shopify.com/partners/blog/deprecating-sass" target="_blank" class="body-link">Shopify Partners Blog</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 04 Nov 2020 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/deprecating-sass-in-themes</link>
  </item>
  <item>
    <title>Extended Authorization available in the API</title>
    <description><![CDATA[ <div class=""><p>As of 2021-01, apps can access Shopify Payments extended authorization fields by querying the <a href="https://shopify.dev/docs/admin-api/graphql/reference/orders/shopifypaymentsextendedauthorization" target="_blank" class="body-link">GraphQL Admin</a> or <a href="https://shopify.dev/docs/admin-api/rest/reference/orders/transaction" target="_blank" class="body-link">REST Admin</a> APIs.</p>
</div> ]]></description>
    <pubDate>Tue, 03 Nov 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <category>2021-01</category>
    <link>https://shopify.dev/changelog/extended-authorization-available-in-the-api</link>
  </item>
  <item>
    <title>New subscription and post-purchase up-sell app collections available now</title>
    <description><![CDATA[ <div class=""><p>On November 2nd, we will be introducing a <a href="http://apps.shopify.com/collections/checkout" target="_blank" class="body-link">new collection of apps</a> for both subscriptions and post-purchase upsells in the Shopify App Store. These are the first apps built directly within Shopify Checkout using the new Subscriptions APIs and post purchase app extensions, creating a more smooth and integrated experience. </p>
<p>With this release, the previous subscription apps and post-purchase upsell apps that bypass the Shopify Checkout will no longer be available for download. Merchants currently using these apps will continue being able to use them, but any new clients will need to select from one of the publicly available options that are properly integrated into the Shopify Checkout. All the most popular apps in these categories have replatformed their apps to leverage these new APIs and extensions and can be found in our new collection. </p>
<p>View the new collection of apps on the Shopify App Store, and learn more about the <a href="https://shopify.dev/tutorials/shopify-subscriptions-overview" target="_blank" class="body-link">Subscriptions APIs</a> in our Shopify developer documentation.</p>
</div> ]]></description>
    <pubDate>Mon, 02 Nov 2020 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-subscription-and-post-purchase-up-sell-app-collections-available-now</link>
  </item>
  <item>
    <title>Show pickup availability on product pages for themes</title>
    <description><![CDATA[ <div class=""><p>We've released a new version of <a href="https://themes.shopify.com/themes/debut/styles/default" target="_blank" class="body-link">Debut</a> that contains the new pickup availability feature. This feature lets merchants show customers whether a product in the online store is available for local pickup. On each product page, the pickup availability section shows whether the product is available, and the estimated time frame for pickup.</p>
<p>Learn more about how merchants can <a href="https://help.shopify.com/en/manual/shipping/setting-up-and-managing-your-shipping/local-methods/local-pickup#show-pickup-availability-to-your-customers" target="_blank" class="body-link">show pickup availability</a> from the Shopify Help Center.</p>
<p>Want to implement this feature in your own themes? Checkout the <a href="https://shopify.dev/tutorials/add-store-availability" target="_blank" class="body-link">Add pickup availability to product pages</a> tutorial.</p>
</div> ]]></description>
    <pubDate>Thu, 29 Oct 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/show-pickup-availability-on-product-pages-for-themes</link>
  </item>
  <item>
    <title>New collaborator account access security feature</title>
    <description><![CDATA[ <div class=""><p>To maintain a safe and secure working relationship between merchants and partners, we've added an additional layer of security when requesting access to a store through a collaborator account. Merchants can choose to set a 4-digit collaborator request code to only receive collaborator requests from those who have the exact code. If this feature is enabled, then you'll need to get the code from merchants to request access to their store. </p>
<p>For more information on the collaborator request code and where to enter the code in your partner dashboard, visit our <a href="https://help.shopify.com/partners/dashboard/managing-stores/request-access#request-access" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 27 Oct 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-collaborator-account-access-security-feature</link>
  </item>
  <item>
    <title>App store ads - Relevance</title>
    <description><![CDATA[ <div class=""><p>We've released a new reporting column for App store ads - <strong>relevance</strong>. The relevance column provides advertisers with a more explicit signal for how relevant their app is for any given search term or keyword.</p>
<p>To learn more about creating ads in the Shopify App Store, refer to our <a href="https://shopify.dev/concepts/app-store/advertising/creating-ads" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 16 Oct 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-store-ads-relevance</link>
  </item>
  <item>
    <title>New ‘Charge_ID’ field in the Partner Payout CSV</title>
    <description><![CDATA[ <div class=""><p>On October 14th, we’re introducing a new ‘Charge_ID’ field in the Partner Payout CSV, so app developers can link app charges with a particular payout item. This new field will help app developers reconcile app charges with their payouts. </p>
<p>Note that the new <code>Charge_ID</code> field is only available for data generated in new Partner Payouts CSV file downloads. </p>
<p>For more information on the Partner Payout CSV, visit the <a href="https://help.shopify.com/en/partners/getting-started/getting-paid" target="_blank" class="body-link">Shopify Help Center.</a></p>
</div> ]]></description>
    <pubDate>Wed, 14 Oct 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-charge_id-field-in-the-partner-payout-csv</link>
  </item>
  <item>
    <title>New Subscription APIs and Product Subscription Extension available in early access</title>
    <description><![CDATA[ <div class=""><p>We’re excited to introduce APIs and tooling that will enable you to build support for subscriptions into the cart and product pages on the storefront.</p>
<p>You can use the <strong>Subscription APIs</strong> and <strong>Product Subscription Extension</strong> to develop flexible apps that support new selling methods for merchants, and are compatible with all of Shopify’s platform features (including discounts, shipping, reporting, and payments).</p>
<p>Start developing new subscription apps today! Request access to the new APIs using our <a href="https://forms.gle/HoWTmeNEcC5TF3sz7" target="_blank" class="body-link">early access sign up form</a>. </p>
<p>To learn more about building with the new Subscription APIs and tooling, refer to our <a href="https://shopify.dev/tutorials/shopify-subscriptions-overview" target="_blank" class="body-link">developer documentation</a>.</p>
<p>To learn how we’re making Shopify checkout more extensible for you, check out our <a href="https://www.shopify.com/partners/blog/shopify-subscription-APIs" target="_blank" class="body-link">Web Design and Development blog</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 08 Oct 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-subscription-apis-and-product-subscription-extension-available-in-early-access</link>
  </item>
  <item>
    <title>Legal Policy API now available</title>
    <description><![CDATA[ <div class=""><p>As of 2020-10, legal settings can now be modified using the new Legal Policies API. Legal policy apps will be able to update the text content of policies by specified policy type (e.g. refund policy or privacy policy).</p>
<p>Learn more about the all new <a href="https://shopify.dev/docs/admin-api/graphql/reference/mutation/shoppolicyupdate?api%5Bversion%5D=2020-10" target="_blank" class="body-link">Legal Policy API</a> in our developer docs.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Oct 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/legal-policy-api-now-available</link>
  </item>
  <item>
    <title>Use product statuses to filter and manage products</title>
    <description><![CDATA[ <div class=""><p>In the 2020-10 version release, the status field was added to the product resource in both the <a href="https://shopify.dev/docs/admin-api/rest/reference/products/product?api%5Bversion%5D=2020-10" target="_blank" class="body-link">REST Admin API</a>  and <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/product?api%5Bversion%5D=2020-10" target="_blank" class="body-link">GraphQL Admin API</a>. Merchants can use the field to identify, filter, and manage products based on their current status: draft, active, or archived. </p>
<p>Merchants can save new products as a draft and work on them iteratively until they’re complete and ready to be made available to selected sales channels with an active status. Merchants can also archive products they’re no longer selling to keep their product list organized, free of clutter, while retaining all product information.</p>
<p>To learn more about product status changes, refer to our <a href="https://shopify.dev/tutorials/use-statuses-to-identify-filter-and-manage-products" target="_blank" class="body-link">product status API guide</a> and <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-10" target="_blank" class="body-link">2020-10 release notes</a>. </p>
</div> ]]></description>
    <pubDate>Thu, 01 Oct 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/use-product-statuses-to-filter-and-manage-products</link>
  </item>
  <item>
    <title>GraphQL Admin API Refunds: Deprecated fields clean up</title>
    <description><![CDATA[ <div class=""><p>The following fields were previously deprecated, and have now been fully removed as of <code>2020-10</code>.</p>
<ul>
<li><code>Refund.restocked</code></li>
<li><code>RefundLineItem.refundType</code></li>
</ul>
<p>These fields were deprecated by <code>RefundLineItem.restockType</code>.</p>
<p>For more information, see the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/refundlineitem?api%5Bversion%5D=2020-10" target="_blank" class="body-link">RefundLineItem object</a> in our documentation.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Oct 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/graphql-admin-api-refunds-deprecated-fields-clean-up</link>
  </item>
  <item>
    <title>New shippingPolicy field on Shop object</title>
    <description><![CDATA[ <div class=""><p>As of the 2020-10 API version, you can query a shop's shipping policy using the <code>shippingPolicy</code> field on the Shop object.</p>
<p>To learn more about the <code>shippingPolicy</code> field, refer to our <a href="https://shopify.dev/docs/storefront-api/reference/object/shop#fields-2020-10?api%5Bversion%5D=2020-10" target="_blank" class="body-link">developer reference documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Oct 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-shippingpolicy-field-on-shop-object</link>
  </item>
  <item>
    <title>App store ads - Bid suggestions update</title>
    <description><![CDATA[ <div class=""><p>We've updated bid suggestions to give advertisers a more accurate view into what bid is required for their app to be competitive for any given keyword. Bid suggestions take into account your current relevance score when surfacing a suggested bid range.</p>
<ul>
<li>For exact match keywords, the likelihood that your ad will show up on the first page of search results increases. </li>
<li>For broad match keywords, the competitiveness against other advertisers who bid on that keyword is measured.</li>
</ul>
<p>To learn more about creating ads in the Shopify App Store, refer to our <a href="/concepts/app-store/advertising/creating-ads" target="_blank" class="body-link">documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Oct 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-store-ads-bid-suggestions-update</link>
  </item>
  <item>
    <title>AdRoll is no longer supported on Shopify App Store listings </title>
    <description><![CDATA[ <div class=""><p>Due to low usage, as of September 30th we no longer support AdRoll on Shopify App Store listings. For remarketing, we offer alternatives such as Google and Facebook Pixel support.</p>
<p>Learn more about <a href="https://shopify.dev/concepts/app-store/being-successful-in-the-app-store/marketing-internally/tracking-your-listing-traffic" target="_blank" class="body-link">setting up app listing tracking and retargeting</a> from the Shopify Developer documentation.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Oct 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/adroll-is-no-longer-supported-on-shopify-app-store-listings</link>
  </item>
  <item>
    <title>Customer Privacy API now available</title>
    <description><![CDATA[ <div class=""><p>The customer privacy API is a browser-based, Javascript API that enables developers to read and write cookies related to a buyer's privacy preferences. As of 2020-10, the API is available to all Shopify online stores as a property on the global <code>window.Shopify</code> object.</p>
<p>For more information on the new Customer Privacy API, visit our <a href="https://shopify.dev/docs/themes/consent-tracking-api" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 30 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/customer-privacy-api-now-available</link>
  </item>
  <item>
    <title>Rich text editor update</title>
    <description><![CDATA[ <div class=""><p>We've made improvements to the rich text editor for Blogs posts, Pages, Products and  Collections. You can now manually add RGB/HEX codes into the rich text editor with the new color picker, making it easier to precisely match text and background color to your brand and style.</p>
<p>Learn more about using the <a href="https://help.shopify.com/en/manual/shopify-admin/productivity-tools/rich-text-editor#change-text-colors-with-the-rich-text-editor-desktop-specific" target="_blank" class="body-link">rich text editor</a> from the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Wed, 30 Sep 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/rich-text-editor-update</link>
  </item>
  <item>
    <title>Apply discounts to items added while editing an order</title>
    <description><![CDATA[ <div class=""><p>As of 2020-10, apps can now add manual or percentage-based discounts to any item that is added while editing an order with the GraphQL Admin API.</p>
<p>For more information about using discounts with order edits, including the specific mutations to add discounts, visit the tutorial on <a href="https://shopify.dev/tutorials/edit-an-existing-order-with-admin-api#add-a-discount-to-the-variant" target="_blank" class="body-link">editing an existing order with the Admin API</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 23 Sep 2020 14:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/apply-discounts-to-items-added-while-editing-an-order</link>
  </item>
  <item>
    <title>Redesign of Shopify theme editor built in React</title>
    <description><![CDATA[ <div class=""><p>The theme editor has been rebuilt in React and includes an updated mobile theme editing experience and many UI enhancements. The rebuild also decreases load times for large themes, making it easier and faster for merchants to set up and customize their online store, while also laying a new foundation for future improvements to the theme editing experience.  </p>
<p><strong>Update 9/25/2020:</strong> If you provide an app that detects usage in the Theme Editor, then please ensure that you’re using the official JavaScript API, <em>Shopify.designMode</em>, to detect the Theme Editor. Other implementations involving detection of the URL could cause broken experiences for merchants. For more information please review the <a href="https://community.shopify.com/c/Shopify-Design/New-redesigned-Shopify-Theme-Editor-built-in-React/td-p/888617" target="_blank" class="body-link">community forum</a> or the <a href="https://community.shopify.com/c/Partners-Discussion/Action-Required-Theme-Editor-apps-using-the-Shopify-designMode/m-p/893660" target="_blank" class="body-link">partner discussion area</a>. </p>
<p>To learn more about the new theme editor, please visit the <a href="https://help.shopify.com/en/manual/online-store/os/using-themes" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 22 Sep 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/redesign-of-shopify-theme-editor-built-in-react</link>
  </item>
  <item>
    <title>New variant media editing methods and mime type field</title>
    <description><![CDATA[ <div class=""><p>As of the 2020-10 API version, apps can add an array of media objects to product variants. Currently the array is limited to only one media object of type image.</p>
<p>For more information on how to work with product variants and media using the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/productvariant?api%5Bversion%5D=2020-10" target="_blank" class="body-link">GraphQL API</a>, refer to our <a href="https://shopify.dev/tutorials/manage-variant-media-with-graphql-admin-api" target="_blank" class="body-link">variant media tutorial</a>.</p>
<p>Additionally, we've added a new mime type field to the MediaImage object in the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/mediaimage?api%5Bversion%5D=2020-10" target="_blank" class="body-link">GraphQL API</a>.</p>
</div> ]]></description>
    <pubDate>Sun, 20 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-variant-media-editing-methods-and-mime-type-field</link>
  </item>
  <item>
    <title>Checksums added to assets</title>
    <description><![CDATA[ <div class=""><p>As of the 2020-10 REST API, checksums will be provided on assets that were recently updated.</p>
<p>If you use a client that supports checksums (ie Theme Kit 1.1 or newer), then the time it will take to sync your local files and the bandwidth used will be drastically reduced.</p>
<p>For more information, please see the checksum field in the <a href="https://shopify.dev/docs/admin-api/rest/reference/online-store/asset?api%5Bversion%5D=2020-10" target="_blank" class="body-link">REST API</a>.</p>
<p>Please also see the blog post: <a href="https://www.shopify.com/partners/blog/checksums" target="_blank" class="body-link">How We Improved Theme Development Tooling Using Checksums</a></p>
</div> ]]></description>
    <pubDate>Wed, 16 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/checksums-added-to-assets</link>
  </item>
  <item>
    <title>Changes to order and payment testing on all development stores</title>
    <description><![CDATA[ <div class=""><p>Beginning today, partners who want to test orders in development stores can only process payments using the following methods: </p>
<ul>
<li>Shopify's test payment provider (Bogus Gateway).</li>
<li>A payment provider set to test mode.</li>
</ul>
<p>If you want to test your development store using real transactions, then you can select and purchase a Shopify plan in the account settings of your development store.</p>
<p>This change was applied to all newly created development stores on March 30, 2020, as mentioned in our changelog update <a href="https://shopify.dev/changelog/changes-to-order-and-payment-testing-on-newly-created-development-stores" target="_blank" class="body-link">here</a>. Beginning September 14, 2020, this change will be applicable across all development stores.</p>
<p>Learn more about <a href="https://help.shopify.com/en/partners/dashboard/test-orders-in-dev-stores" target="_blank" class="body-link">test orders</a> in the Shopify Help Center. </p>
</div> ]]></description>
    <pubDate>Mon, 14 Sep 2020 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-order-and-payment-testing-on-all-development-stores</link>
  </item>
  <item>
    <title>New webhook topic: disputes</title>
    <description><![CDATA[ <div class=""><p>You can now subscribe to Shopify Payments dispute events with webhooks. The <code>disputes/create</code> and <code>disputes/update</code> topics are now available in all supported API versions.</p>
<p>For more information, visit the <a href="https://shopify.dev/docs/admin-api/rest/reference/events/webhook" target="_blank" class="body-link">webhooks topic documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 11 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-webhook-topic-disputes</link>
  </item>
  <item>
    <title>Refunds now include the associated order</title>
    <description><![CDATA[ <div class=""><p>Version 2020-10 of the GraphQL API will now allow you to directly query an order that is associated with a given refund.</p>
<p>For more information about the Refund object, visit our <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/refund?api%5Bversion%5D=2020-10." target="_blank" class="body-link">developer documentation</a></p>
</div> ]]></description>
    <pubDate>Thu, 10 Sep 2020 15:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/refunds-now-include-the-associated-order</link>
  </item>
  <item>
    <title>Refund duties with REST API</title>
    <description><![CDATA[ <div class=""><p>Earlier in the year we released the ability to <a href="https://shopify.dev/tutorials/refund-shipping-duties" target="_blank" class="body-link">refund duties using the GraphQL API</a>. Now, as of version 2020-10, we are releasing the same functionality on the REST API.</p>
<p>For more information, please see the refund_duties property in the <a href="https://shopify.dev/docs/admin-api/rest/reference/orders/refund?api%5Bversion%5D=2020-10" target="_blank" class="body-link">REST API</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 10 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/refund-duties-with-rest-api</link>
  </item>
  <item>
    <title>International domains eligibility boolean</title>
    <description><![CDATA[ <div class=""><p>With the release of <a href="https://help.shopify.com/en/manual/online-store/os/domains/managing-domains/international-domains" target="_blank" class="body-link">international domains</a>, shops can now assign a country and language to individual domains. As of 2020-10, a shops eligibility for international domains can be determined via the internationalDomains field.</p>
<p>For more information, please see the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/shop/shopfeatures?api%5Bversion%5D=2020-10" target="_blank" class="body-link">GraphQL API</a> documentation.</p>
<p>Please note that before you redirect a shop to an enabled language you should first check <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/shop/shopfeatures?api%5Bversion%5D=2020-10" target="_blank" class="body-link">internationalDomains</a> and <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/domain/domainlocalization" target="_blank" class="body-link">domain localization</a> to confirm which languages are available on which domains. </p>
<p>Failing to do so and redirecting to a domain which doesn't support the language would result in a 404.</p>
</div> ]]></description>
    <pubDate>Thu, 10 Sep 2020 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/international-domains-eligibility-boolean</link>
  </item>
  <item>
    <title>Discounts GraphQL Admin API feature update</title>
    <description><![CDATA[ <div class=""><p>We've added some new features to <strong>Discounts</strong> on the GraphQL Admin API, including:</p>
<ul>
<li>Usage counts for automatic discounts.</li>
<li>New ways to search through discounts.</li>
<li>Speed up the management of discounts with bulk mutations!</li>
</ul>
<p>We've also deprecated the <strong>type</strong> filter parameter on <strong>CodeDiscountQuery</strong>. 
Use <strong>discount_type</strong> instead. </p>
<p>For the full list of changes, see the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-10" target="_blank" class="body-link">2020-10 release notes</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 09 Sep 2020 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/discounts-graphql-admin-api-feature-update</link>
  </item>
  <item>
    <title>New error logging for batch discount code creation</title>
    <description><![CDATA[ <div class=""><p>Apps can now get additional context about batch discount code creation errors by looking into the new logs field. This field will return any error the system reported when trying to create the discount codes based on the price rule definition.</p>
<p>To learn more about this new field, visit the <a href="https://shopify.dev/docs/admin-api/rest/reference/discounts/pricerule" target="_blank" class="body-link">reference documentation.</a></p>
</div> ]]></description>
    <pubDate>Wed, 09 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-error-logging-for-batch-discount-code-creation</link>
  </item>
  <item>
    <title>Minimum purchase prerequisites added to REST Admin API Price Rules</title>
    <description><![CDATA[ <div class=""><p>Apps can now create BXGY discounts with a minimum purchase amount prerequisite via the REST Admin API. </p>
<p>A new <code>prerequisite_to_entitlement_purchase</code> field was added that defines the minimum purchase amount required to qualify for the discount.</p>
<p>For more information, visit the <a href="https://shopify.dev/docs/admin-api/rest/reference/discounts/pricerule" target="_blank" class="body-link">Price Rules API reference.</a></p>
</div> ]]></description>
    <pubDate>Wed, 09 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/minimum-purchase-prerequisites-added-to-rest-admin-api-price-rules</link>
  </item>
  <item>
    <title>Online store speed report and scores now accessible through the partner dashboard </title>
    <description><![CDATA[ <div class=""><p>You can now access the online store speed report data from the <strong>Stores</strong> page in the partner dashboard, so you can quickly identify which clients might need your help making their online store faster. You can <a href="https://partners.shopify.com/current/stores/performance" target="_blank" class="body-link">view store performance data</a> for all of your managed stores and sort stores by speed score.</p>
<p>Learn more about the <a href="https://help.shopify.com/manual/online-store/os/store-speed/speed-report" target="_blank" class="body-link">online store speed report</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Sep 2020 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/online-store-speed-report-and-scores-now-accessible-through-the-partner-dashboard</link>
  </item>
  <item>
    <title>POS Product Recommendations App Extension is Generally Available</title>
    <description><![CDATA[ <div class=""><p>Available today through the Partner Dashboard, the POS product recommendations app extension allows app developers who build product recommendations, and cross-sell and up-sell apps, to extend their app functionality to Shopify POS. </p>
<p>Product recommendations are a valuable feature for merchants with both online and physical store locations, who are looking to surface just-in-time product recommendations that are consistent across all storefronts, and make it easier for store staff to make more data-driven and informed purchase recommendations to buyers. This app extension allows app developers to provide this surface, while in turn making their app available to a whole new customer base. </p>
<p>To learn more about the <a href="https://shopify.dev/docs/pos/pos-product-recommendations-extension" target="_blank" class="body-link">POS product recommendations app extension</a>, please visit the Shopify Help Centre.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Sep 2020 13:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/pos-product-recommendations-app-extension-is-generally-available</link>
  </item>
  <item>
    <title>Removing the ability to change the tax field data</title>
    <description><![CDATA[ <div class=""><p>As of API version 2020-10, we are removing the ability to change any tax field data using the <a href="https://shopify.dev/docs/admin-api/rest/reference/store-properties/country?api%5Bversion%5D=2020-10" target="_blank" class="body-link">Country</a> and <a href="https://shopify.dev/docs/admin-api/rest/reference/store-properties/province?api%5Bversion%5D=2020-10" target="_blank" class="body-link">Province</a> resources. </p>
<p>Please see the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-10#breaking-changes" target="_blank" class="body-link">2020-10 release notes</a> for more information.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/removing-the-ability-to-change-the-tax-field-data</link>
  </item>
  <item>
    <title>New webhook topic: profiles</title>
    <description><![CDATA[ <div class=""><p>You can now subscribe to events related to delivery profiles with webhooks.</p>
<p>In the past, changes to a shop’s shipping zones triggered the shop/update webhook, but didn’t include any information about the new zone configuration. To stay current, apps would then have to send a follow up request to the <code>shipping_zones</code> endpoint and compare the results with their local copies of the data.</p>
<p>With the release of delivery profiles, we wanted to provide a proper webhook topic for apps that would allow them to avoid these frequent callbacks. As of today, you can now subscribe to the <code>profile_create</code>, <code>profile_update</code>, and <code>profile_delete</code> webhooks.</p>
<p>For more information, see the webhooks topic documentation, our updated delivery profiles guide, and the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-10" target="_blank" class="body-link">2020-10 release notes</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Sep 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-webhook-topic-profiles</link>
  </item>
  <item>
    <title>Fulfillment Order delivery method available using Admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>As of the 2020-10 version, we have added information to fulfillment orders that allow API clients to understand the delivery method of any fulfillment order.</p>
<p>A fulfillment order delivery method can help you figure out how the line items represented by the fulfillment order should be delivered, or if they need to be picked up in-store.</p>
<p>Learn more about Fulfillment Orders and their associated delivery methods <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/fulfillmentorder?api%5Bversion%5D=2020-10" target="_blank" class="body-link">in our documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 27 Aug 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/fulfillment-order-delivery-method-available-using-admin-graphql-api</link>
  </item>
  <item>
    <title>Private app permissions disabled by default</title>
    <description><![CDATA[ <div class=""><p>Starting in the next few weeks, private app permissions will be set to <strong>Off</strong> by default in all non-Plus stores. This ensures that merchants opt in to all private apps and understand the permissions they’re giving to developers. All current private apps will continue to function, but cannot be modified until merchants <a href="https://help.shopify.com/manual/apps/private-apps#enable-private-app-development-from-the-shopify-admin" target="_blank" class="body-link">re-enable private apps in the Shopify admin</a>.</p>
<p>If you are looking for an alternative to private apps when building bespoke apps for merchants, consider using <a href="https://help.shopify.com/en/manual/apps/app-types#custom-apps" target="_blank" class="body-link">custom apps</a>. </p>
<p>To learn more about private app permissions, please visit the <a href="https://shopify.dev/tutorials/authenticate-a-private-app-with-shopify-admin#enable-private-app-development" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 26 Aug 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/private-app-permissions-disabled-by-default</link>
  </item>
  <item>
    <title>Apps can now edit orders they created</title>
    <description><![CDATA[ <div class=""><p>Previously apps could only edit orders created through a Shopify channel (for example, POS, online store, or draft orders). Going forward, apps can now edit orders they created. To determine if your app can edit an order on Shopify, you can query the <strong>merchantEditable</strong> field on the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/order" target="_blank" class="body-link">Order</a> object. If the return value of this field is <strong>true</strong>, your app can edit the order.</p>
</div> ]]></description>
    <pubDate>Wed, 12 Aug 2020 15:08:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/apps-can-now-edit-orders-they-created</link>
  </item>
  <item>
    <title>Shopify App Store Ads - Recommended Keywords</title>
    <description><![CDATA[ <div class=""><p>A new feature has been added to make it easier to manage and optimize your ads on the Shopify App Store - Recommended Keywords.</p>
<p><a href="https://shopify.dev/concepts/app-store/advertising/creating-ads#choosing-keywords" target="_blank" class="body-link">Recommended keywords</a> - Keyword recommendations are now provided when partners add keywords. These recommendations are generated based on organic search performance, app category and other factors.</p>
<p>Learn more about Shopify App Store Ads in the <a href="https://shopify.dev/concepts/app-store/advertising/getting-started" target="_blank" class="body-link">Help Centre</a></p>
</div> ]]></description>
    <pubDate>Tue, 11 Aug 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-app-store-ads-recommended-keywords</link>
  </item>
  <item>
    <title>The first online store design experience beta phase is ending</title>
    <description><![CDATA[ <div class=""><p>We're closing our first online store design experience beta period to address feedback and add functionality. While we prepare for the next phase, we'll be removing the <strong>Online store design experience</strong> developer preview, effective August 4, 2020.</p>
<p>Development stores using this developer preview will be removed. If you're currently using this developer preview to build a sections-compatible app or theme, then you need to back up your work before the developer preview ends. </p>
<p>We'll continue to update our <a href="https://shopify.dev/tutorials/develop-theme-support-online-store-design-experience" target="_blank" class="body-link">developer documentation</a> so you can stay up to date while we build our next iteration. We’ll also share an updated developer preview closer to the release of this feature. All updates we make will be compatible with what you have built so far.</p>
<p>To learn more or to ask questions about the online store design experience developer preview, visit our <a href="https://community.shopify.com/c/New-Online-Store-Design/bd-p/storedesign" target="_blank" class="body-link">Shopify Community discussion board</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Aug 2020 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-first-online-store-design-experience-beta-phase-is-ending</link>
  </item>
  <item>
    <title>Resuming activity requirement for Partners</title>
    <description><![CDATA[ <div class=""><p>On August 4, 2020, we resumed the <a href="https://help.shopify.com/en/partners/getting-started/getting-paid#activity-requirement-for-payouts" target="_blank" class="body-link">activity requirement</a> to continue receiving recurring commission payments for referrals and Plus upgrades. If you are a Partner that receives recurring commission payments for referrals or Plus upgrades, please check the <a href="https://partners.shopify.com/current/referrals" target="_blank" class="body-link">Referrals page</a> in your Partner Dashboard to understand how much time you have until you need to complete another activity. The activity requirement does not apply to ongoing earnings from app sales, theme sales, or any Partner activity other than referrals and Plus upgrades.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Aug 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/resuming-activity-requirement-for-partners</link>
  </item>
  <item>
    <title>Storefront API checkout throttle</title>
    <description><![CDATA[ <div class=""><p>Shopify will now limit the amount of checkouts that can be created on the Storefront per minute. If an API client exceeds this throttle, then a 200 Throttled error response is returned.</p>
<p>For more information, see <a href="https://shopify.dev/concepts/about-apis/rate-limits" target="_blank" class="body-link">API rate limits</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 04 Aug 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/storefront-api-checkout-throttle</link>
  </item>
  <item>
    <title>Cookieless App Bridge auth beta now available</title>
    <description><![CDATA[ <div class=""><p>Our new App Bridge authentication beta introduces session tokens to empower developers to create faster apps that are compatible with all modern browsers. Session token-based authentication does not depend on cookies, but instead relies on a Shopify-generated token that your app needs to send with every request.</p>
<p>To learn how you can participate in the beta and get started with App Bridge authentication and session tokens, refer to our <a href="http://shopify.dev/tools/app-bridge/authentication" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 29 Jul 2020 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/cookieless-app-bridge-auth-beta-now-available</link>
  </item>
  <item>
    <title>Measure storefront performance with new Online store speed report </title>
    <description><![CDATA[ <div class=""><p>We've added a new report to the Shopify admin that will help merchants and Partners gauge and measure online store speed. </p>
<p>The new <strong>Online store speed</strong> report runs speed tests for merchants' home page and highest-traffic collection and product pages, and then combines each page’s <a href="https://developers.google.com/web/tools/lighthouse/" target="_blank" class="body-link">Google Lighthouse</a> speed score into an overall score. It also provides a comparison of how a merchants store’s speed compares to similar online stores. </p>
<p>The Online store speed report will roll out to all merchants over the coming weeks. You can learn about <a href="https://help.shopify.com/en/manual/online-store/legacy/store-speed/speed-report/" target="_blank" class="body-link">how the speed score and ranking are calculated</a> and how you can help merchants improve their speed in the <a href="https://help.shopify.com/en/manual/online-store/legacy/store-speed/" target="_blank" class="body-link">Shopify Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 28 Jul 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/measure-storefront-performance-with-new-online-store-speed-report</link>
  </item>
  <item>
    <title>ReCAPTCHA v3 on storefront contact forms &amp; blog comments</title>
    <description><![CDATA[ <div class=""><p>Google’s reCAPTCHA v3 has been added to online store contact forms and blog comments to reduce incoming spam. reCAPTCHA v3 analyzes visitor behavior to block spam from bots, and reduces friction for real users by eliminating CAPTCHA challenges. This feature is enabled by on all stores by default, but can be disabled in the online store preferences. </p>
<p>Learn more about <a href="http://shopify.dev/docs/themes/recaptcha-v3" target="_blank" class="body-link">reCAPTCHA v3 and how it interacts with themes</a> on Shopify.dev.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Jul 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/recaptcha-v3-on-storefront-contact-forms-blog-comments</link>
  </item>
  <item>
    <title>Apps can now offer annual subscriptions through the Billing API </title>
    <description><![CDATA[ <div class=""><p>To support more business models on the Shopify App Store, we’re introducing annual subscriptions through the Billing API. Merchants can choose a yearly subscription for your app, and you can track annual revenue from the Partner Dashboard. </p>
<p>We’ve also made it simple for merchants to upgrade an existing app subscription from a monthly to a yearly plan. Price differences will be prorated when merchants change plan intervals.</p>
<p>Learn more about [enabling annual subscriptions for apps] (<a href="https://shopify.dev/tutorials/create-an-annual-subscription" target="_blank" class="body-link">https://shopify.dev/tutorials/create-an-annual-subscription</a>) on Shopify Developers.</p>
</div> ]]></description>
    <pubDate>Tue, 07 Jul 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/apps-can-now-offer-annual-subscriptions-through-the-billing-api</link>
  </item>
  <item>
    <title>API Versions 2019-04 and 2019-10: Upcoming end of support</title>
    <description><![CDATA[ <div class=""><p>Last April, we released API versioning to improve the stability and predictability of Shopify's APIs. </p>
<p>2019-04 was scheduled for deprecation on April 1st, 2020. Support was extended for three months to reduce pressure on our developer community during COVID-19. This extension means that on July 2nd, our first and second supported versions, 2019-04 and 2019-07, will both become unsupported.</p>
<p>On July 2nd, 2020, the following API changes come into effect:</p>
<ul>
<li>The 2019-04 and 2019-07 versions become unsupported.</li>
<li>Requests with no API version specified serve the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2019-10" target="_blank" class="body-link">2019-10 API version</a>.</li>
<li>Requests for the 2019-04 or 2019-07 versions will no longer receive them. Instead, these requests receive version 2019-10.</li>
<li>Webhooks set to 2019-04 or 2019-07 receive version 2019-10.</li>
<li>The 2020-07 version becomes stable and ready for general usage.</li>
</ul>
<p>For a full list of breaking changes, please visit our <strong>Breaking Changes</strong> sections in the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2019-07" target="_blank" class="body-link">2019-07 release notes</a> and the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2019-10" target="_blank" class="body-link">2019-10 release notes</a></p>
</div> ]]></description>
    <pubDate>Thu, 02 Jul 2020 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/api-versions-2019-04-and-2019-10-upcoming-end-of-support</link>
  </item>
  <item>
    <title>Domain data available using Admin GraphQL API and webhooks</title>
    <description><![CDATA[ <div class=""><p>With the release of the 2020-07 version of the Admin GraphQL API, you can now access <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/shop?api%5Bversion%5D=2020-07" target="_blank" class="body-link">additional data on domains</a> associated with a given shop using the new <code>shop.domains</code> field and webhook events.</p>
<p>Along with this new field you will be able to use the <code>Domain</code> object to determine if a shop has SSL enabled and surface <a href="https://help.shopify.com/en/manual/domains/add-a-domain/cross-border-domains" target="_blank" class="body-link">cross border domain</a> data including the country, default and alternate locales for each given domain.</p>
</div> ]]></description>
    <pubDate>Thu, 02 Jul 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/domain-data-available-using-admin-graphql-api-and-webhooks</link>
  </item>
  <item>
    <title>API version 2020-07 is now stable and ready for general usage</title>
    <description><![CDATA[ <div class=""><p>The 2020-07 release adds <a href="https://shopify.dev/tutorials/manage-webhook-events-with-eventbridge" target="_blank" class="body-link">Amazon EventBridge support</a>, enabling you to receive Shopify webhooks using an event bus. Version 2020-07 also adds <a href="https://shopify.dev/tutorials/create-an-annual-subscription" target="_blank" class="body-link">annual billing support</a> to the Shopify Billing API, Tax ID support for Brazilian merchants using <a href="https://shopify.dev/tutorials/get-a-tax-id-using-localization-extensions" target="_blank" class="body-link">localization extensions</a>, and additional data on <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/domain?api%5Bversion%5D=2020-07" target="_blank" class="body-link">domains</a> associated with a given shop.</p>
<p>This release also improves access errors in GraphQL by adding an error code and a message that includes the name of the restricted resource.</p>
<p>Explore all the API changes included in this release in the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-07" target="_blank" class="body-link">2020-07 release notes</a>.</p>
<p>You can also read more about API versioning in the <a href="https://help.shopify.com/en/api/versioning" target="_blank" class="body-link">versioning guide</a> and on the <a href="https://www.shopify.ca/partners/blog/api-versioning-at-shopify" target="_blank" class="body-link">partner blog</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 02 Jul 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/api-version-2020-07-is-now-stable-and-ready-for-general-usage</link>
  </item>
  <item>
    <title>Add a Facebook pixel to your app listing</title>
    <description><![CDATA[ <div class=""><p>You can now add a Facebook pixel to your app listing.  A Facebook pixel can help you to track your app listing traffic and increase your reach through Facebook. <a href="https://shopify.dev/concepts/app-store/getting-your-app-approved/app-requirements#e-tracking" target="_blank" class="body-link">Learn more about tracking</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 30 Jun 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/add-a-facebook-pixel-to-your-app-listing</link>
  </item>
  <item>
    <title>New liquid page_image global object</title>
    <description><![CDATA[ <div class=""><p>You can now use the <code>page_image</code> global object to output a store's <a href="https://help.shopify.com/en/manual/online-store/legacy/using-themes/change-the-layout/theme-settings/showing-social-media-thumbnail-images" target="_blank" class="body-link">social sharing image</a> preview. This is the image that is displayed when Shopify store URLs are shared on social channels.</p>
<p>Learn more about the global <code>page_image</code> object in our <a href="https://shopify.dev/docs/themes/liquid/reference/objects/page-image" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 26 Jun 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-liquid-page_image-global-object</link>
  </item>
  <item>
    <title>Currency API `rate_updated_at` field now reflects manual FX rates</title>
    <description><![CDATA[ <div class=""><p>The currency API <code>rate_updated_at</code> field now returns the date the manual currency exchange rate was updated, if applicable. If no manual rate was set, the date the automatic rate was updated is returned. This change was made to support the new manual exchange rates feature.</p>
<p>Previously, the currency API returned the date the automatic rate was last updated in this field.</p>
<p>Learn more about the <a href="https://shopify.dev/docs/admin-api/rest/reference/store-properties/currency?api%5Bversion%5D=2020-04" target="_blank" class="body-link">currency API</a>
Learn more about <a href="https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/conversions#manual-exchange-rate-conversions" target="_blank" class="body-link">manual exchange rates</a>
Learn more about <a href="https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/conversions#automatic-exchange-rate-conversions" target="_blank" class="body-link">automatic exchange rates</a></p>
</div> ]]></description>
    <pubDate>Thu, 25 Jun 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/currency-api-rate_updated_at-field-now-reflects-manual-fx-rates</link>
  </item>
  <item>
    <title>New error messages for GraphQL operations without necessary access scopes</title>
    <description><![CDATA[ <div class=""><p>As of 2020-07, we are refining the error messages for GraphQL documents if the app does not have the required access scope(s). Currently, if an app does not have the required access scope, the error message returned is <code>“access denied”</code>. From 2020-07, the message returned will be <code>“Access denied for &lt;field-name&gt;. Required access: &lt;access scope required&gt; access scope”.</code></p>
<p>Responses will now also include Extensions, which consist of an error code, link to necessary documentation, and the name of the required access scope.
Learn more about access scopes <a href="https://shopify.dev/docs/admin-api/access-scopes" target="_blank" class="body-link">here</a></p>
</div> ]]></description>
    <pubDate>Mon, 15 Jun 2020 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-error-messages-for-graphql-operations-without-necessary-access-scopes</link>
  </item>
  <item>
    <title>The Shopify App Store is now available in 4 additional languages </title>
    <description><![CDATA[ <div class=""><p>The Shopify App Store is now available in Czech, Polish, Portuguese (Portugal), and Turkish. You can now create a listing in these languages that will be shown to merchants. <a href="https://shopify.dev/concepts/app-store/getting-your-app-approved/app-requirements#translate-your-app-listing" target="_blank" class="body-link">Learn more about translated listings</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 04 Jun 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-shopify-app-store-is-now-available-in-4-additional-languages</link>
  </item>
  <item>
    <title>Removing discount allocation method &quot;one&quot;</title>
    <description><![CDATA[ <div class=""><p>This is a possibly breaking call, where there's no way for Shopify to know if your app is using the 'one' value. As a result, we will not delist any app that continues to get this warning.</p>
<p>As of API version 2020-07, we're updating the allocation method for discounts that have set the <code>target_selection</code> as <code>explicit</code>. Currently, Shopify applies these discounts to a single line item, which corresponds to an allocation method of <code>one</code>. With this change, the allocation methods will instead include &quot;each&quot; and &quot;across&quot;.</p>
<p>We're making this change to add &quot;each&quot; functionality, and simplify the discount syntax, as &quot;one&quot; and &quot;across&quot; functionally both discount the final price by a set amount. </p>
<p>This change also affects <code>discount_applications</code> on the following webhook payloads :</p>
<p><code>orders/cancelled</code> </p>
<p><code>orders/create</code> </p>
<p><code>orders/fulfilled</code> </p>
<p><code>orders/paid</code></p>
<p><code>orders/partially_fulfilled</code></p>
<p><code>orders/updated</code></p>
<p>For more information, please visit the <a href="https://community.shopify.com/c/shopify-apis-sdks/Removing-discount-allocation-method-quot-one-quot/m-p/727361?&utm_source=devchangelog&utm_medium=web&utm_campaign=allocationone" target="_blank" class="body-link">community forum post</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 03 Jun 2020 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/removing-discount-allocation-method-one-2</link>
  </item>
  <item>
    <title>Effective June 1, 2020 - Partner Program Agreement billing and taxes updates</title>
    <description><![CDATA[ <div class=""><p>The Shopify Partner Program Agreement (PPA) updates previously announced on March 3, 2020, go into effect today. </p>
<p>These updates clarify our role as a billing agent, which means we’re the party responsible for facilitating payment transactions between partners and merchants of apps, themes, and services. Product changes that reflect these billing and tax updates will be live in the coming weeks.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jun 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/effective-june-1-2020-partner-program-agreement-billing-and-taxes-updates</link>
  </item>
  <item>
    <title>Multipass dentifier available in GraphQL</title>
    <description><![CDATA[ <div class=""><p>A customer's multipass identifier is now available in the GraphQL Admin API 2020-07 release candidate using <code>Customer.multipassIdentifer</code>.</p>
<p>See the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/customer?api%5Bversion%5D=2020-07" target="_blank" class="body-link">2020-07 release candidate reference docs</a> for details.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jun 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/multipass-dentifier-available-in-graphql</link>
  </item>
  <item>
    <title>Shopify theme inspector for Chrome now supports collaborator account access</title>
    <description><![CDATA[ <div class=""><p>You can now use the <a href="https://chrome.google.com/webstore/detail/shopify-theme-inspector-f/fndnankcflemoafdeboboehphmiijkgp" target="_blank" class="body-link">Shopify theme inspector for Chrome</a> to debug Liquid render performance on shops you have <a href="https://help.shopify.com/en/partners/dashboard/managing-stores/request-access" target="_blank" class="body-link">collaborator account</a> access to.</p>
<p>If you'd like to learn more, contribute a feature, open an issue, or make a feature request, then check out the <a href="https://github.com/Shopify/shopify-theme-inspector" target="_blank" class="body-link">Shopify theme inspector Github repository</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 28 May 2020 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-theme-inspector-for-chrome-now-supports-collaborator-account-access</link>
  </item>
  <item>
    <title>Localization extensions developer preview</title>
    <description><![CDATA[ <div class=""><p>The Localization Extensions developer preview is currently available. Localization extensions allow partners and app developers to access the tax id that is collected during checkout and use this information to augment shipping apps (expedite customs clearance) and invoicing apps (issue goverment invoices).</p>
<p>Starting in the 2020-07 release candidate, orders made through checkout in countries that require a tax id for customs clearance or government invoicing will have this information available through the GraphQL API. </p>
<p>You can try these APIs by using a <a href="https://help.shopify.com/partners/dashboard/development-stores#create-a-development-store" target="_blank" class="body-link">development store</a> with the 'Localization Extensions' developer preview enabled.</p>
<p>For more information on how to apply tax IDs on checkout and view them through the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/order?api%5Bversion%5D=2020-07" target="_blank" class="body-link">GraphQL API</a>, read to our <a href="https://shopify.dev/tutorials/get-a-tax-id-using-localization-extensions" target="_blank" class="body-link">localization extenson tutorial</a>.</p>
<p>For any questions and discussion regarding the Localization Extensions developer preview, visit our <a href="https://community.shopify.com/c/shopify-apis-sdks/Localization-extensions-developer-preview/m-p/749235?&utm_source=devchangelog&utm_medium=web&utm_campaign=localizationextensions" target="_blank" class="body-link">forum post</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 28 May 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/localization-extensions-developer-preview</link>
  </item>
  <item>
    <title>Page picker available for Online Store Design Experience developer preview</title>
    <description><![CDATA[ <div class=""><p>Navigating to individual pages on the Online Store Editor is now supported for the <a href="https://shopify.dev/concepts/about-apis/versioning#online-store-design-experience-developer-preview" target="_blank" class="body-link">Online Store Design Experience developer preview</a> with a new page picker feature on the Online Store Editor.</p>
<p>The page picker option in the top bar of the <a href="https://shopify.dev/tutorials/develop-theme-edit-store-with-online-store-design#ui-changes" target="_blank" class="body-link">Online Store Editor</a> allows users to search for specific pages, or navigate to a page using a drop-down selector filtered by page types. This will enable merchants and developers to quickly access a specific page when customizing the storefront using the Online Store Editor. </p>
</div> ]]></description>
    <pubDate>Tue, 26 May 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/page-picker-available-for-online-store-design-experience-developer-preview</link>
  </item>
  <item>
    <title>Total tip received available in GraphQL</title>
    <description><![CDATA[ <div class=""><p>The total tip amount received on an order is now available in the GraphQL Admin API 2020-07 release candidate via <code>Order.totalTipReceived</code>. </p>
<p>See the <a href="https://shopify.dev/docs/admin-api/graphql/reference/object/order?api%5Bversion%5D=2020-07" target="_blank" class="body-link">2020-07 release candidate reference docs</a> for details.</p>
</div> ]]></description>
    <pubDate>Mon, 25 May 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/total-tip-received-available-in-graphql</link>
  </item>
  <item>
    <title>Amazon’s EventBridge integration now available</title>
    <description><![CDATA[ <div class=""><p>You can now integrate your app with Amazon EventBridge to receive Shopify webhooks using an event bus. EventBridge's serverless, event-driven architecture can help you reduce infrastructure costs while providing a scalable system. </p>
<p>Visit our developer documentation to learn <a href="https://shopify.dev/tutorials/manage-webhook-events-with-eventbridge" target="_blank" class="body-link">how to set up an event source and manage events with EventBridge</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 14 May 2020 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/amazon-s-eventbridge-integration-now-available</link>
  </item>
  <item>
    <title>New Liquid multiline tags</title>
    <description><![CDATA[ <div class=""><p>We’ve added two new Liquid theme tags. </p>
<p><code>liquid</code></p>
<p>The <code>liquid</code> theme tag simplifies theme code. Developers can now write multi-line tags and output expressions within one set of delimiters. This reduces the requirement to open and close multiple sets of delimiters when creating variables and conditions, or executing blocks of code. Learn more about the <code>liquid</code> tag in our <a href="https://shopify.dev/docs/themes/liquid/reference/tags/theme-tags#liquid" target="_blank" class="body-link">developer documentation</a>.</p>
<p><code>echo</code></p>
<p>The <code>echo</code> theme tag works inside the new <code>liquid</code> tag to output an expression, or Liquid object, in the rendered HTML. Filters can also be applied to expressions using the <code>echo</code> tag. Learn more about the <code>echo</code> tag in our <a href="https://shopify.dev/docs/themes/liquid/reference/tags/theme-tags#echo" target="_blank" class="body-link">developer documentation</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 14 May 2020 04:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-liquid-multiline-tags</link>
  </item>
  <item>
    <title>Change to merchant billing</title>
    <description><![CDATA[ <div class=""><p>We’re adding more flexibility to merchant billing, making it easier for your users to keep running their businesses during COVID-19 and avoid store shutdowns. The change means that you might see delayed payouts from some of your referred stores.</p>
<p>Learn more about <a href="https://help.shopify.com/en/partners/getting-started/getting-paid#how-your-earnings-are-calculated" target="_blank" class="body-link">how merchant payments impact your payouts</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Tue, 12 May 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/change-to-merchant-billing</link>
  </item>
  <item>
    <title>Improved reporting for app store ads</title>
    <description><![CDATA[ <div class=""><p>We’ve improved the reporting for ads so that advertisers can more accurately tell where their ads are showing up. Specifically, we are adding the following two new reporting columns: </p>
<ul>
<li>Average position will report on the position that their ad displays as. Learn more <a href="https://shopify.dev/concepts/app-store/advertising/reporting#average-position" target="_blank" class="body-link">here</a>.</li>
<li>Visibility will report (as a percentage of first page auctions you participate in) what percentage of your impressions are served on the first page. Visibility will only apply to impressions served March 11, 2020 onward. Learn more <a href="https://shopify.dev/concepts/app-store/advertising/reporting#report-metrics-for-search-ads" target="_blank" class="body-link">here</a>.</li>
</ul>
</div> ]]></description>
    <pubDate>Mon, 04 May 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/improved-reporting-for-app-store-ads</link>
  </item>
  <item>
    <title>All-new Shopify POS is now available</title>
    <description><![CDATA[ <div class=""><p>Shopify POS 6.0 has been rebuilt and redesigned. Omnichannel features and essential upgrades to Shopify’s point of sale, including a new smart grid interface, global search, analytics, curbside pickup, and more, have been added. </p>
<p>Apps built to integrate with Shopify POS using the POS SDK or App Bridge will continue to function in POS 6.0 (all-new POS), and the app interface will automatically adjust to work within the new smart-grid design. </p>
<p>Discover new opportunities to build integrations and features for brick and mortar merchants today.</p>
<p>Lean more about <a href="https://shopify.dev/docs/pos" target="_blank" class="body-link">building apps for POS</a></p>
</div> ]]></description>
    <pubDate>Mon, 04 May 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/all-new-shopify-pos-is-now-available</link>
  </item>
  <item>
    <title>Pause plan introduced - app access and billings restricted during pause</title>
    <description><![CDATA[ <div class=""><p>Shopify has introduced a new <a href="https://help.shopify.com/en/manual/your-account/pause-close-store" target="_blank" class="body-link">Pause plan</a> for stores. The new <strong>Pause</strong> plan allows merchants to pause their store for up to three months. </p>
<p>While merchants take a pause from running their store on Shopify, all apps will remain installed on the paused store, but app billings will be frozen and merchants will not abe able to access or use the apps. This means that merchants do not need to reinstall and reconfigure their apps when they resume running their business. </p>
<p>This update helps app developers to retain users in the long term by allowing a simple and seamless pause in the short term. No action is required from app developers. </p>
<p>Stores in this state have a plan display name of <code>Full Pause</code> in the <code>shop/update</code> webhook. Recurring charges for these stores appear as as <strong>Recurring charge frozen</strong> in the Partner Dashboard.</p>
</div> ]]></description>
    <pubDate>Wed, 22 Apr 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/pause-plan-introduced-app-access-and-billings-restricted-during-pause</link>
  </item>
  <item>
    <title>Amount no longer required on DraftOrderAppliedDiscountInput</title>
    <description><![CDATA[ <div class=""><p>The <code>amount</code> field is no longer a required field on <code>DraftOrderAppliedDiscountInput</code>. If omitted, then the <code>amount</code> is automatically calculated based on the <code>value</code> and <code>valueType</code>. This avoids unnecessary calculations by API clients that can otherwise be done by Shopify. </p>
<p>For more information, refer to <a href="https://shopify.dev/docs/admin-api/graphql/reference/mutation/input-object/draftorderapplieddiscountinput" target="_blank" class="body-link">DraftOrderAppliedDiscountInput in our GraphQL reference</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 17 Apr 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/amount-no-longer-required-on-draftorderapplieddiscountinput</link>
  </item>
  <item>
    <title>Updates to the Online Store Design Experience partner beta</title>
    <description><![CDATA[ <div class=""><p>This month we have released new features for developers participating in the Online Store Design Experience partner beta. The following features are now available for testing for new and existing development stores using the &quot;online store design experience&quot; developer preview. You can find info on how to create a developer preview store in <a href="https://help.shopify.com/en/partners/dashboard/managing-stores/development-stores#developer-previews" target="_blank" class="body-link">our Help Center</a>. </p>
<p>The Sections theme architecture is now supported on the Cart, Password, and 404 pages. Sections can be enabled on these pages using the Online Store Editor with a sections-compatible theme. More info on how to enable sections on a page can be found in <a href="https://shopify.dev/tutorials/develop-theme-edit-store-with-online-store-design" target="_blank" class="body-link">our Developer Documentation</a>. </p>
<p>The Section Rendering API can be used to request the HTML markup of frame, page, content, and app sections through an AJAX request. This improves storefront performance by allowing you to update page content by fetching only partial elements of a page, instead of reloading it entirely. More info on this new API can be found in <a href="https://shopify.dev/docs/themes/sections/section-rendering-api" target="_blank" class="body-link">our Developer Documentation</a>.</p>
<p>HTML tags can be inserted around theme frame sections using the <code>wrapper</code> property. This allows developers to optionally use containers and other tags around the three segments of a page. More info on the <code>wrapper</code> property can be found in <a href="https://shopify.dev/docs/themes/sections/theme-frames#the-wrapper-property" target="_blank" class="body-link">our Developer Documentation</a>. </p>
<p>Sections can now contain a text input and a URL picker on a single setting with the <code>link</code> setting type. The <code>link</code> setting type can only be used in sections (including the additional settings of content sections). </p>
<p>For any questions regarding the online store design experience developer preview visit <a href="https://community.shopify.com/c/New-Online-Store-Design/bd-p/storedesign" target="_blank" class="body-link">our dedicated forum</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 14 Apr 2020 17:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/updates-to-the-online-store-design-experience-partner-beta</link>
  </item>
  <item>
    <title>Update to how app ratings are calculated</title>
    <description><![CDATA[ <div class=""><p>As of today, we've changed how we calculate and display an app’s overall star rating, from a historical average to a weighted average that favours recent reviews. As apps change over time, we want to ensure that merchants see a rating that’s more reflective of the current capabilities of your app. </p>
<p>Please note that there shouldn't be a noticeable impact on your search and category ranking.</p>
<p>If you’re concerned that the volume of reviews you’ve received hasn’t grown inline with your app improvements, take note around <a href="https://shopify.dev/concepts/app-store/being-successful-in-the-app-store/managing-app-reviews" target="_blank" class="body-link">best practices for asking for reviews</a>. We also recommend <a href="https://www.shopify.ca/partners/blog/reply-to-reviews" target="_blank" class="body-link">replying to reviews</a> as we’ve seen a positive correlation in review replies and updated star ratings. </p>
</div> ]]></description>
    <pubDate>Thu, 09 Apr 2020 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/update-to-how-app-ratings-are-calculated</link>
  </item>
  <item>
    <title>Length of the Shopify access token is increasing</title>
    <description><![CDATA[ <div class=""><p>The length of newly generated Shopify access tokens will increase from 32 to 38 characters, adding a static prefix of <code>shpat_</code> (for public apps), <code>shpca_</code> (for custom apps), or <code>shppa_</code> (for legacy private apps). This change will take effect on April 1st, and will impact all access tokens generated after this date. </p>
<p>This is a breaking change only if your application makes assumptions regarding the length of Shopify access tokens. For example, if your app store Shopify access tokens in a 32-character database field or validates that they are exactly 32 characters, then you should adjust your application or database so it can accept longer access tokens prior to April 1st. Existing access tokens will continue to function in their 32-character form until they expire or are re-requested.</p>
<p>Learn more about <a href="https://help.shopify.com/en/api/getting-started/authentication/oauth" target="_blank" class="body-link">authenticating your Shopify app</a> from the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/length-of-the-shopify-access-token-is-increasing</link>
  </item>
  <item>
    <title>Order duties released in developer preview</title>
    <description><![CDATA[ <div class=""><p>Today we are releasing a new developer preview to allow merchants the ability to charge duties <em>calculated by Shopify</em> during checkout and avoid surprise charges for their customers upon delivery.</p>
<p>As of the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-04" target="_blank" class="body-link">2020-04 release</a>, duties and taxes charged on international orders through checkout can be viewed through the REST and GraphQL API, and refunded through the GraphQL API. </p>
<p>You can try these changes using a <a href="https://help.shopify.com/partners/dashboard/development-stores#create-a-development-store" target="_blank" class="body-link">development store</a> with the 'Duties and Taxes' developer preview enabled. </p>
<p>For more information on how to apply duties on checkout and refund them through the GraphQL API, refer to our <a href="https://shopify.dev/tutorials/refund-shipping-duties" target="_blank" class="body-link">tutorial</a>.</p>
<p>For any questions and discussion regarding the Duties and Taxes developer preview, visit our <a href="https://community.shopify.com/c/Shopify-APIs-SDKs/Duties-and-taxes-developer-preview/m-p/689390?&utm_source=devchangelog&utm_medium=web&utm_campaign=dutiespreview" target="_blank" class="body-link">forum post</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/order-duties-released-in-developer-preview</link>
  </item>
  <item>
    <title>API version 2020-04 is now stable and ready for general usage</title>
    <description><![CDATA[ <div class=""><p>The 2020-04 release adds parameters to better represent <a href="https://shopify.dev/docs/storefront-api/reference/object/orderlineitem?api%5Bversion%5D=2020-04" target="_blank" class="body-link">edited orders to the Storefront API</a> and exposes new information about <a href="https://shopify.dev/tutorials/refund-shipping-duties" target="_blank" class="body-link">duties and taxes on international orders</a> . Version 2020-04 also adds more information about media that has been embedded on product pages with additional fields for <a href="https://shopify.dev/tutorials/manage-product-media-with-admin-api" target="_blank" class="body-link">Product Media</a>.</p>
<p>Explore all the API changes included in this release in the <a href="https://shopify.dev/concepts/about-apis/versioning/release-notes/2020-04" target="_blank" class="body-link">2020-04 release notes</a>.</p>
<p>You can also read more about API versioning in the <a href="https://help.shopify.com/en/api/versioning" target="_blank" class="body-link">versioning guide</a> and on the <a href="https://www.shopify.ca/partners/blog/api-versioning-at-shopify" target="_blank" class="body-link">partner blog</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Apr 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/api-version-2020-04-is-now-stable-and-ready-for-general-usage</link>
  </item>
  <item>
    <title>Changes to order and payment testing on newly created development stores</title>
    <description><![CDATA[ <div class=""><p>Beginning today, partners who want to test orders in development stores can only process payments using the following methods: </p>
<ul>
<li>Shopify's test payment provider (Bogus Gateway).</li>
<li>A payment provider set to test mode.</li>
</ul>
<p>If you need to test your development store using real transactions, then you need to transfer your store to a paid plan.</p>
<p>Orders and payments in existing development stores will not change immediately. Updates to existing development stores will be announced in the developer changelog.</p>
<p>Learn more about <a href="https://help.shopify.com/en/partners/dashboard/test-orders-in-dev-stores" target="_blank" class="body-link">test orders</a> on the Shopify Help Center.</p>
<p>If you have further questions about testing payments and orders in newly created development stores, get answers in our dedicated <a href="https://community.shopify.com/c/Partners-Discussion/bd-p/partners-discussion" target="_blank" class="body-link">discussion area</a> for developers, or reach out to partner support through your <a href="https://partners.shopify.com/current/support/form" target="_blank" class="body-link">Partner Dashboard</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 30 Mar 2020 04:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/changes-to-order-and-payment-testing-on-newly-created-development-stores</link>
  </item>
  <item>
    <title>Changes to 2019-04 version timeline</title>
    <description><![CDATA[ <div class=""><p>With the evolving concerns around COVID-19’s impact on communities around the world, we know that partners and merchants are making adjustments to continue running their businesses smoothly. That’s why we’ve decided to postpone the April 1 version removal from <strong>April 1, 2020</strong> to <strong>July 1, 2020</strong>. </p>
<p>This change in the timeline means that you have until July 1 to update your apps to account for changes in both 2019-07 and 2019-10 API versions. The move from page to cursor-based pagination comes into effect for <strong>all</strong> endpoints on July 1. This simplifies the migration process for apps that need to update their pagination strategies.</p>
<p>To see the deprecated API calls your apps are making, check out the <a href="https://shopify.dev/concepts/about-apis/versioning/api-health" target="_blank" class="body-link">API Health report</a> on the Partner Dashboard.</p>
</div> ]]></description>
    <pubDate>Fri, 20 Mar 2020 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/changes-to-2019-04-version-timeline</link>
  </item>
  <item>
    <title>New password errors for customer mutations</title>
    <description><![CDATA[ <div class=""><p>The <code>customerActivate</code>, <code>customerActivateByUrl</code>, <code>customerReset</code>, and <code>customerResetByUrl</code> mutations now return more specific error codes when users enter a password input that is invalid. These errors were previously returned as generic invalid customer or token errors.</p>
<p>Check out the <a href="https://shopify.dev/docs/storefront-api/reference/mutation/customererrorcode" target="_blank" class="body-link">full list of possible error codes</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Mar 2020 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-password-errors-for-customer-mutations</link>
  </item>
  <item>
    <title>New Storefront API fields on the Order and OrderLineItem objects</title>
    <description><![CDATA[ <div class=""><p>We’ve added the following Storefront API fields to the <a href="https://shopify.dev/docs/storefront-api/reference/object/order" target="_blank" class="body-link">Order</a> and <a href="https://shopify.dev/docs/storefront-api/reference/object/orderlineitem" target="_blank" class="body-link">OrderLineItem</a> objects. These new fields can be used to gain additional visibility into an order's state after an edit.</p>
<ul>
<li><code>Order.fulfillment_status</code></li>
<li><code>Order.cancelled_at</code></li>
<li><code>Order.financial_status</code></li>
<li><code>Order.cancel_reason</code> </li>
<li><code>LineItem.current_quantity</code></li>
<li><code>LineItem.original_total_price</code></li>
<li><code>LineItem.discounted_total_price</code></li>
<li><code>Order.original_total_price</code></li>
<li><code>Order.current_total_price</code></li>
<li><code>Order.edited</code></li>
<li><code>Order.current_subtotal_price</code></li>
<li><code>Order.current_total_tax</code></li>
</ul>
</div> ]]></description>
    <pubDate>Tue, 03 Mar 2020 19:30:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-storefront-api-fields-on-the-order-and-orderlineitem-objects</link>
  </item>
  <item>
    <title>Partner Program Agreement updates - Shopify as a billing agent, custom and public apps</title>
    <description><![CDATA[ <div class=""><p>We’ve updated our <a href="https://www.shopify.com/partners/terms" target="_blank" class="body-link">Partner Program Agreement</a> (PPA) to include new definitions of public and custom apps, and to clarify our role as a billing agent. Being a billing agent means we’re the party responsible for facilitating payment transactions between partners and merchants of apps, themes, and services.</p>
<p>PPA updates regarding <a href="https://www.shopify.com/partners/blog/shopify-public-apps" target="_blank" class="body-link">public and custom apps</a> are effective immediately, as communicated on our partner blog.</p>
<p>For PPA updates regarding the <a href="https://help.shopify.com/en/partners/how-to-earn#taxes-on-earnings" target="_blank" class="body-link">billing and tax status</a> of some Shopify partners, we’ve made sure to provide partners with 90 days notice to assess the potential impact on how they run their businesses. As a result, the billing and tax updates to our PPA will come into effect on June 1st, 2020. Partners will begin to see product changes that reflect these billing and tax updates starting June 2020.</p>
<p>Partners who are impacted by these PPA updates have been directly notified by email and their Partner Dashboard.</p>
</div> ]]></description>
    <pubDate>Tue, 03 Mar 2020 05:00:00 +0000</pubDate>
    <category>Platform</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/partner-program-agreement-updates-shopify-as-a-billing-agent-custom-and-public-apps</link>
  </item>
  <item>
    <title>Get insights into API updates that affect your apps with our new API Health report</title>
    <description><![CDATA[ <div class=""><p>The new API Health report on the Partner dashboard shows the deprecated API calls your apps are making, along with documentation and timelines that help keep your apps up to date with Shopify’s API versions. This tool shows details of each deprecated call including the affected endpoint and the last time a call was detected.</p>
<p>Learn more about the <a href="https://shopify.dev/concepts/about-apis/versioning/api-health" target="_blank" class="body-link">API Health report</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Thu, 27 Feb 2020 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/get-insights-into-api-updates-that-affect-your-apps-with-our-new-api-health-report</link>
  </item>
  <item>
    <title>New customerActivateByUrl mutation</title>
    <description><![CDATA[ <div class=""><p>Use the <code>customerActivateByUrl</code> mutation to activate customer accounts without parsing the activation URL for the customer ID and token. Just send the full URL and a new password to activate the customer.</p>
<p>Learn more about <a href="https://help.shopify.com/en/api/storefront-api/guides/updating-customers" target="_blank" class="body-link">updating customers using the Storefront API</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Tue, 18 Feb 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-customeractivatebyurl-mutation</link>
  </item>
  <item>
    <title>New customerAccessTokenCreateWithMultipass mutation</title>
    <description><![CDATA[ <div class=""><p>Use the <code>customerAccessTokenCreateWithMultipass</code> mutation to log a customer in without the email and password inputs. Send the multipass token to enable a customer and log the customer in. If a customer record does not exist in the shop, then it will be automatically created. </p>
<p>Learn more about how to <a href="https://help.shopify.com/en/api/reference/plus/multipass" target="_blank" class="body-link">implement a multipass token</a> and <a href="https://help.shopify.com/en/api/storefront-api/guides/updating-customers" target="_blank" class="body-link">create a customer access token using multipass</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Feb 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-customeraccesstokencreatewithmultipass-mutation</link>
  </item>
  <item>
    <title>Store-specific status now available on Shopify’s updated status page</title>
    <description><![CDATA[ <div class=""><p>With over a million stores on Shopify, it’s rare that an incident impacts every store or every service. In order to help merchants understand if their store has been affected by an incident, we’re moving <a href="https://shopifystatus.com" target="_blank" class="body-link">Shopify's status page</a> to a dashboard that's specific to their <a href="https://help.shopify.com/en/manual/your-account/logging-in/sso-migration-guide" target="_blank" class="body-link">Shopify single sign on account</a>. </p>
<p>As part of this move to store-specific status updates, subscriptions to updates (SMS alerts and RSS feed) have been deprecated. Overall status and major outages will continue to be posted to the public shopifystatus.com page. </p>
<p>If you are a partner or an app developer who is working with merchants on projects that require status information, such as launching ads for their store or troubleshooting an app, please have your clients or app users check their store-specific status page first as part of the process. Our team is currently working on ways to enable Partners to see status information for stores where they have collaboration login access from the merchant.</p>
</div> ]]></description>
    <pubDate>Tue, 11 Feb 2020 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/store-specific-status-now-available-on-shopify-s-updated-status-page</link>
  </item>
  <item>
    <title>Search ads on the Shopify App Store are rolling-out to all qualified partners</title>
    <description><![CDATA[ <div class=""><p>All qualified partners with apps listed on the Shopify App Store will soon be able to create search ads to help merchants discover their apps in the Shopify App Store. </p>
<p>Ads will be shown to merchants on app store search result pages, above the organic search results. You can associate your ads to specific search terms so that your ads are shown when a merchant searches for those specific terms.</p>
<p>Learn more about <a href="https://help.shopify.com/en/api/app-store/advertising/" target="_blank" class="body-link">advertising in the Shopify App Store</a>,  in the Shopify Help Center. </p>
</div> ]]></description>
    <pubDate>Tue, 11 Feb 2020 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/search-ads-on-the-shopify-app-store-are-rolling-out-to-all-qualified-partners</link>
  </item>
  <item>
    <title>Shopify POS supports iOS 11.2 or higher</title>
    <description><![CDATA[ <div class=""><p>Beginning February 10th 2020, merchants who are using an iOS device to operate Shopify POS must be on iOS 11.2 or higher to receive updates. Merchants who are using iOS 10 or below will no longer be able to receive bug fixes or feature improvements.</p>
<p>If you develop embedded apps for POS Classic or the all-new Shopify POS, you should target iOS 11.2 as your minimum version to ensure that merchants get the best experience. </p>
<p><a href="https://help.shopify.com/en/manual/sell-in-person/pos-classic/faq#what-versions-does-shopify-pos-work-with" target="_blank" class="body-link">Shopify POS Faq - iOS and Android version support</a></p>
</div> ]]></description>
    <pubDate>Mon, 10 Feb 2020 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/shopify-pos-supports-ios-11-2-or-higher</link>
  </item>
  <item>
    <title>New article.updated_at Liquid property and updated behavior for cart </title>
    <description><![CDATA[ <div class=""><p>We’ve added a new property for the <code>article</code> object as well as updated the behaviour of <code>cart.attributes</code> and the <code>/cart/add.js</code> endpoint. </p>
<p><code>article.updated_at</code></p>
<p>The <code>article.updated_at</code> property returns a timestamp defining when a blog article was updated. This allows themes to include the <code>dateModified</code> field within their Structured Data for SEO purposes. The <code>date</code> filter can be applied to format the timestamp. Learn more about the <code>article.updated_at</code> property in <a href="https://help.shopify.com/en/themes/liquid/objects/article#article-updated_at" target="_blank" class="body-link">the Help Center.</a></p>
<p><code>cart.attributes</code></p>
<p>This existing property has been updated to hide keys with a double underscore <code>(__)</code> prefix from Liquid and AJAX API. Learn more about the <code>cart.attributes</code> property in the <a href="https://help.shopify.com/en/themes/liquid/objects/cart#cart-attributes" target="_blank" class="body-link">Help Center</a>.</p>
<p><code>/cart/add.js</code></p>
<p>The <code>/cart/add.js</code> endpoint (add to cart) of the AJAX API has been updated to support adding multiple items to the cart in a single request. This previously required a complex queuing system to send multiple requests. The previous payload format is still supported, but the &quot;multiple items&quot; payload format is now the recommended approach. Learn more about the Ajax API in the <a href="https://help.shopify.com/en/themes/development/getting-started/using-ajax-api#add-to-cart" target="_blank" class="body-link">Help Center</a>. </p>
</div> ]]></description>
    <pubDate>Wed, 05 Feb 2020 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-article-updated_at-liquid-property-and-updated-behavior-for-cart</link>
  </item>
  <item>
    <title>App secret key length has increased</title>
    <description><![CDATA[ <div class=""><p>The length of all newly generated Shopify app secret keys has increased from 32 to 38, adding a static prefix of <code>shpss_</code>, to make the secret keys easier to identify. </p>
<p>Existing API secrets will continue to function in their 32 character form until Shopify Partners manually regenerate them. This is the secret passed in as <code>client_secret</code> to https://{shop}.myshopify.com/admin/oauth/access_token to obtain an access token.</p>
<p>Learn more <a href="https://help.shopify.com/en/api/getting-started/authentication/oauth" target="_blank" class="body-link">authenticating your Shopify app</a> from the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Tue, 28 Jan 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/app-secret-key-length-has-increased</link>
  </item>
  <item>
    <title>Sections theme architecture released in developer preview</title>
    <description><![CDATA[ <div class=""><p>We are proud to announce a developer preview of our new sections theme architecture. As part of this developer preview you'll be able to:</p>
<ul>
<li>Define <a href="https://help.shopify.com/en/themes/development/sections-architecture/theme-frames" target="_blank" class="body-link">new theme frames</a> to customize store headers and footers on different pages</li>
<li>Customize <a href="https://help.shopify.com/en/themes/development/sections-architecture/page-sections" target="_blank" class="body-link">page sections</a> to create unique displays and formatting </li>
<li>Create custom <a href="https://help.shopify.com/en/themes/development/sections-architecture/content-sections" target="_blank" class="body-link">content sections</a> that can be added to and removed from pages through the Shopify Admin</li>
<li>Edit pages individually or globally, as <a href="https://help.shopify.com/en/themes/development/sections-architecture/master-pages" target="_blank" class="body-link">master pages</a>, with multi-page editing</li>
</ul>
<p>This developer preview is limited to adding sections to product pages, but upcoming iterations will extend this functionality to all storefront pages. You can learn more about working with the <a href="https://help.shopify.com/en/themes/development/sections-architecture" target="_blank" class="body-link">new section architecture</a> by visiting our Help Centre guides.</p>
<p>This developer preview is being released as part of our <a href="https://shopify.dev/tutorials/develop-theme-support-online-store-design-experience" target="_blank" class="body-link">new online store design experience partner beta</a>. In order to implement sections on product pages, you will need to edit your theme to conform to the new theme architecture. To see an example of this implementation, you can <a href="https://help.shopify.com/en/themes/development/online-store-editor/index" target="_blank" class="body-link">download our sections-compatible Debut theme</a>. </p>
<p>For any questions regarding the online store design experience partner beta visit our <a href="https://community.shopify.com/c/New-Online-Store-Design/bd-p/storedesign" target="_blank" class="body-link">dedicated forum</a>. </p>
</div> ]]></description>
    <pubDate>Thu, 23 Jan 2020 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/sections-theme-architecture-released-in-developer-preview</link>
  </item>
  <item>
    <title>New app snippets and app sections extensions released in developer preview</title>
    <description><![CDATA[ <div class=""><p>You can now leverage <a href="https://www.shopify.com/partners/blog/theme-app-extensions" target="_blank" class="body-link">two new app extensions</a> to securely surface your app’s functionality on a merchant's store:</p>
<ul>
<li><strong>App sections</strong> empower you to create new <a href="https://help.shopify.com/en/themes/development/sections-architecture/content-sections" target="_blank" class="body-link">content sections</a> that can be added, removed and configured right from the new online store editor</li>
<li><strong>App snippets</strong> help safely inject liquid code into a merchant’s online storefront.</li>
</ul>
<p>You can learn more about creating both types of online store app extensions in our Help Centre.</p>
<p>This developer preview is being released as part of our <a href="https://developers.shopify.com/changelog/the-new-online-store-design-experience-is-now-available-in-developer-preview-and-here-s-what-you-need-to-know" target="_blank" class="body-link">new online store design experience partner beta</a>. By participating in this beta you will be able to explore and test a number of new theming features, provide feedback and prepare and update your own custom themes with the new sections architecture.</p>
<p>For any questions regarding the online store design experience partner beta visit our <a href="https://community.shopify.com/c/New-Online-Store-Design/bd-p/storedesign" target="_blank" class="body-link">dedicated forum</a>. </p>
</div> ]]></description>
    <pubDate>Thu, 23 Jan 2020 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-app-snippets-and-app-sections-extensions-released-in-developer-preview</link>
  </item>
  <item>
    <title>New online store design experience beta available in developer preview</title>
    <description><![CDATA[ <div class=""><p>You can now preview our new online store design experience. Through this preview you will be able to:</p>
<ul>
<li><a href="https://help.shopify.com/en/themes/development/online-store-editor/online-store-editor-set-up" target="_blank" class="body-link">Install our sections-compatible Debut theme</a> and test new sections on product pages (all page types will be supported in the near future). </li>
<li><a href="https://help.shopify.com/en/themes/development/sections-architecture" target="_blank" class="body-link">Add, remove, and configure sections on product pages</a> through the new online store editor. </li>
<li><a href="https://help.shopify.com/en/themes/development/online-store-editor/online-store-editor-ui" target="_blank" class="body-link">Explore our new online store editor</a> to customize pages and sections within the Shopify Admin.</li>
</ul>
<p>You can learn more about the online store design experience partner beta by reading our <a href="https://community.shopify.com/c/New-Online-Store-Design/bd-p/storedesign" target="_blank" class="body-link">forum announcement</a>.</p>
<p>If you have any questions or feedback about supporting this new online store design experience in your apps or themes, feel free to reach out to us in our <a href="https://community.shopify.com/c/New-Online-Store-Design/bd-p/storedesign" target="_blank" class="body-link">dedicated discussion thread</a> or through your <a href="https://partners.shopify.com/current/support/form" target="_blank" class="body-link">partner dashboard</a>.</p>
</div> ]]></description>
    <pubDate>Thu, 23 Jan 2020 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-online-store-design-experience-beta-available-in-developer-preview</link>
  </item>
  <item>
    <title>shopify_app Ruby gem and koa-shopify-auth for Node.js updated to work with Chrome 80</title>
    <description><![CDATA[ <div class=""><p>We've update the <code>shopify_app</code> Ruby gem and <code>koa-shopify-auth</code> for Node.js (used by the Shopify App CLI) to declare <code>Samesite=none; Secure</code> in cookies used in third-party context. Updating your embedded apps to the newest version of these tools will prevent cookie issues after the release of Chrome 80 on February 4th, 2020. </p>
<p>You can learn more about Chrome's new cookie requirements and (how to update your app's cookies)[<a href="https://help.shopify.com/en/api/guides/samesite-cookies%5D" target="_blank" class="body-link">https://help.shopify.com/en/api/guides/samesite-cookies]</a> using our guide.</p>
</div> ]]></description>
    <pubDate>Thu, 23 Jan 2020 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify_app-ruby-gem-and-koa-shopify-auth-for-node-js-updated-to-work-with-chrome-80</link>
  </item>
  <item>
    <title>Inventory Quantity available on Storefront GraphQL API </title>
    <description><![CDATA[ <div class=""><p>With the release of the 2020-04 version of the Storefront GraphQL API, you can now access your inventory quantity if needed to build your shopping experience. </p>
<p>This information is hidden by default, but if you want to enable it, simply navigate to the private app and select the new checkbox for “inventory quantity” under the Storefront API section. </p>
</div> ]]></description>
    <pubDate>Tue, 21 Jan 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/inventory-quantity-available-on-storefront-graphql-api</link>
  </item>
  <item>
    <title>Debug your Liquid render performance using Shopify Theme Inspector for Chrome</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://chrome.google.com/webstore/detail/shopify-theme-inspector-f/fndnankcflemoafdeboboehphmiijkgp" target="_blank" class="body-link">Shopify Theme Inspector for Chrome</a> is a Chrome DevTool plugin that lets you benchmark your Online Store’s Liquid performance, pinpoint Liquid performance issues in your theme, and test improvements for faster server response times. </p>
<ul>
<li>This tool helps you visualize results as a flame graph which is readable and easy to understand.</li>
<li>You can examine the flame graph nodes to localize performance issues down to the exact file and line.</li>
<li>A code snippet link will open up to the exact line of Liquid in your admin code editor so you can view and edit the code in context.</li>
</ul>
<p>If you'd like to learn more, contribute a feature, open an issue, or make a feature request, check out the <a href="https://github.com/Shopify/shopify-theme-inspector" target="_blank" class="body-link">Shopify Theme Inspector Github repository</a>. </p>
</div> ]]></description>
    <pubDate>Tue, 14 Jan 2020 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/debug-your-liquid-render-performance-using-shopify-theme-inspector-for-chrome</link>
  </item>
  <item>
    <title>Collections added to the predictive search API</title>
    <description><![CDATA[ <div class=""><p>Searchable resources for our predictive search API now include collections.</p>
<p>Read more about the <a href="https://help.shopify.com/en/themes/development/search/predictive-search" target="_blank" class="body-link">predictive search API</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Tue, 14 Jan 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/collections-added-to-the-predictive-search-api</link>
  </item>
  <item>
    <title>API version 2020-01 is now stable and ready for general usage</title>
    <description><![CDATA[ <div class=""><p>The 2020-01 release contains many of the features we previewed at <a href="https://www.shopify.ca/partners/blog/shopify-unite-announcements-2019" target="_blank" class="body-link">Unite 2019</a>. The <a href="https://help.shopify.com/en/api/guides/media" target="_blank" class="body-link">product media</a>, <a href="https://help.shopify.com/en/api/guides/editing-orders" target="_blank" class="body-link">order editing</a>, and <a href="https://help.shopify.com/en/api/guides/managing-fulfillments-with-fulfillmentorders" target="_blank" class="body-link">fulfillment orders</a> features are now stable and available on merchant stores. You’ll also find new additions to how you can manage <a href="https://help.shopify.com/en/api/reference/products/collection?api%5Bversion%5D=2020-01" target="_blank" class="body-link">smart collections</a> and <a href="https://help.shopify.com/en/api/guides/discounts#buy-x-get-y-or-spend-x-get-y-automatic-discount" target="_blank" class="body-link">discount codes</a>.</p>
<p>Explore all the API changes included in this release in the <a href="https://help.shopify.com/en/api/versioning/release-notes/2020-01" target="_blank" class="body-link">2020-01 release notes</a>.</p>
<p>You can also read more about API versioning in the <a href="https://help.shopify.com/en/api/versioning" target="_blank" class="body-link">versioning guide</a> and on the <a href="https://www.shopify.ca/partners/blog/api-versioning-at-shopify" target="_blank" class="body-link">partner blog</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Jan 2020 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/api-version-2020-01-is-now-stable-and-ready-for-general-usage</link>
  </item>
  <item>
    <title>Collects API now returns only collects associated with custom collections. </title>
    <description><![CDATA[ <div class=""><p>With the release of the 2020-01 version of the REST Admin API, the Collects API will no longer return products associated with Smart Collections. A new API for returning products inside a collection was released along with a new API for returning a collection by its ID.</p>
<p>Learn more about the <a href="https://help.shopify.com/en/api/reference/products/collect?api%5Bversion%5D=2020-01" target="_blank" class="body-link">changes</a> and <a href="https://help.shopify.com/en/api/guides/collects-api" target="_blank" class="body-link">how to migrate to the new API</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Fri, 20 Dec 2019 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/collects-api-now-returns-only-collects-associated-with-custom-collections</link>
  </item>
  <item>
    <title>New Collection REST Admin API</title>
    <description><![CDATA[ <div class=""><p>With the release of the 2020-01 version of the REST Admin API, a new Collection API is available with the following features: </p>
<ul>
<li>Get the products in a collection </li>
<li>Get a collection by its ID</li>
</ul>
<p>Learn more about <a href="https://help.shopify.com/en/api/reference/products/collection" target="_blank" class="body-link">the Collection REST Admin API</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Fri, 20 Dec 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-collection-rest-admin-api</link>
  </item>
  <item>
    <title>Additional image details added to predictive search API</title>
    <description><![CDATA[ <div class=""><p>The Predictive Search response has been updated to include additional image details. These are all grouped under <code>featured_image</code> and include the following fields:</p>
<ul>
<li><code>featured_image[:alt]</code>: the image alt tag</li>
<li><code>featured_image[:width]</code>: the image width</li>
<li><code>featured_image[:height]</code>: the image height</li>
<li><code>featured_image[:aspect_ratio]</code>: the image aspect ratio</li>
<li><code>featured_image[:url]</code>: the image url</li>
</ul>
<p>Read more about the <a href="https://help.shopify.com/en/themes/development/search/predictive-search" target="_blank" class="body-link">predictive search API in our Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 18 Dec 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/additional-image-details-added-to-predictive-search-api</link>
  </item>
  <item>
    <title>GraphQL input objects limited to 250 items</title>
    <description><![CDATA[ <div class=""><p>As of API version 2020-01, Storefront and Admin GraphQL requests return errors if any input array is supplied with more than 250 objects. We’re bringing input limits in-line with connection limits to protect Shopify and your app against timeouts.</p>
<p>For example, the following query would need to reduce the number of input objects.</p>
<pre><code>{
  nodes(ids: [“id1”, “id2”, “id3”, ... , “id251”, “id252”]) {
   … on Order {
      id
   }
}
</code></pre>
</div> ]]></description>
    <pubDate>Fri, 13 Dec 2019 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/graphql-input-objects-limited-to-250-items</link>
  </item>
  <item>
    <title>New order/edited webhook and order editing API capabilities</title>
    <description><![CDATA[ <div class=""><p>Order editing is <a href="https://changelog.shopify.com/posts/edit-existing-orders-in-shopify" target="_blank" class="body-link">now available</a> to select Shopify merchants. To help you extend this feature, we’ve published a set of order editing APIs to the release candidate of <a href="https://help.shopify.com/en/api/versioning/release-notes/2020-01" target="_blank" class="body-link">version 2020-01</a>. </p>
<p><strong>What’s included?</strong></p>
<ul>
<li>GraphQL mutations that allow you to add and remove line items, as well as adjust line item quantities.</li>
<li>An <code>order/edited</code> webhook that describes what's changed during an order edit.</li>
</ul>
<p>Learn more about <a href="https://help.shopify.com/en/api/guides/editing-orders" target="_blank" class="body-link">how to edit orders using GraphQL</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Wed, 11 Dec 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-order-edited-webhook-and-order-editing-api-capabilities</link>
  </item>
  <item>
    <title>Update to public apps and introducing custom apps </title>
    <description><![CDATA[ <div class=""><p>We’re putting safeguards in place for future Shopify public apps and introducing a new type of custom app. </p>
<p>No existing apps will be affected by this release. </p>
<p>Read more on the <a href="https://www.shopify.com/partners/blog/shopify-public-apps" target="_blank" class="body-link">Shopify Web Design and Development blog</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Dec 2019 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/update-to-public-apps-and-introducing-custom-apps</link>
  </item>
  <item>
    <title>Unit pricing information now available through Storefront API</title>
    <description><![CDATA[ <div class=""><p>Unit prices and the measurement information related to their generation is now available through the Storefront API as part of the release candidate (2020-01). The unit price feature associated with these fields is currently available to select Shopify merchants. </p>
<p>The following new fields were added to the product variant object:</p>
<ul>
<li>presentmentUnitPrices</li>
<li>unitPrice</li>
<li>unitPriceMeasurement</li>
</ul>
<p>Learn more about <a href="https://help.shopify.com/en/api/storefront-api/reference/object/productvariant?api%5Bversion%5D=2020-01" target="_blank" class="body-link">these fields</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Fri, 06 Dec 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/unit-pricing-information-now-available-through-storefront-api</link>
  </item>
  <item>
    <title>New Liquid global object and property</title>
    <description><![CDATA[ <div class=""><p>We’ve added a new global object and some new properties to Liquid, which are currently in production for all stores. </p>
<h4><code>request.page_type</code></h4>
<p>The <code>request.page_type</code> property returns the type of the current page, for example,  <code>product</code>, <code>article</code>, and <code>index</code>. </p>
<p>Learn more about the <code>request.page_type</code> property in the <a href="https://help.shopify.com/en/themes/liquid/objects/request#request-page_type" target="_blank" class="body-link">Help Center</a>. </p>
<h4><code>routes</code></h4>
<p>Generates URLs to your storefront. By using <code>routes</code>  instead of hardcoded links, you can make sure your theme supports any changes to the URL format.</p>
<p>Learn more about the <code>routes</code> global object in the <a href="https://help.shopify.com/en/themes/liquid/objects/routes" target="_blank" class="body-link">Help Center</a>. </p>
<h4><code>product.options_by_name</code></h4>
<p>Gives direct access to a product' option values by using the option name.</p>
<p>Learn more about <code>product.options_by_name</code> property in the <a href="https://help.shopify.com/en/themes/liquid/objects/product#product-options_by_name" target="_blank" class="body-link">Help Center</a>. </p>
<h4><code>allow_false</code></h4>
<p>The <code>default</code> filter now accepts an <code>allow_false</code> argument. You can use <code>allow_false</code> to set a default value for any variable with no assigned value. This can be used with strings, arrays, and hashes. </p>
<p>Learn more about this filter in the <a href="https://help.shopify.com/en/themes/liquid/filters/additional-filters#default" target="_blank" class="body-link">Help Center</a>. </p>
</div> ]]></description>
    <pubDate>Mon, 02 Dec 2019 05:00:00 +0000</pubDate>
    <category>Themes</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/new-liquid-global-object-and-property</link>
  </item>
  <item>
    <title>Buy Button JS now defers checkout creation until a variant is added to cart</title>
    <description><![CDATA[ <div class=""><p>The Buy Button cart component’s model is no longer initiated to an empty checkout. Instead, the model is null until a variant is added to cart. This is expected to have a positive impact on the performance on your Buy Buttons! </p>
<p>If you have leveraged the cart’s model in any custom code written using Buy Button JS, it is recommended that you verify your Buy Button still functions as expected. </p>
<p>Learn more about these changes by reviewing the <a href="https://github.com/Shopify/buy-button-js/pull/657" target="_blank" class="body-link">pull request</a> on Github.</p>
</div> ]]></description>
    <pubDate>Tue, 19 Nov 2019 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/buy-button-js-now-defers-checkout-creation-until-a-variant-is-added-to-cart</link>
  </item>
  <item>
    <title>Deprecating the include liquid tag and introducing the render tag</title>
    <description><![CDATA[ <div class=""><p>We are deprecating the <a href="https://help.shopify.com/en/themes/liquid/tags/deprecated-tags#include" target="_blank" class="body-link"><code>include</code></a> liquid tag in favor of using the new <a href="https://help.shopify.com/en/themes/liquid/tags/theme-tags#render" target="_blank" class="body-link"><code>render</code></a> tag to output code from the snippets folder. The <code>render</code> tag isolates the variables that are used in the snippet that is being rendered. Using the <code>render</code> tag increases the performance of the storefront on themes and makes theme code easier to understand and maintain. While <code>include</code> will be deprecated, it will not be removed from the platform and its behavior remains unchanged.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Nov 2019 05:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Themes</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/deprecating-the-include-liquid-tag-and-introducing-the-render-tag</link>
  </item>
  <item>
    <title>Improved GraphQL errors</title>
    <description><![CDATA[ <div class=""><p>Errors in GraphQL responses now contain extra metadata under the <code>extensions</code> key. The error format follows the <a href="https://graphql.github.io/graphql-spec/June2018/#example-fce18" target="_blank" class="body-link">GraphQL specification</a>. </p>
<p>The most notable metadata is the <code>code</code> property which returns the error code. This feature allows you to more easily match on the types of errors without having to match on the full error <code>message</code>.</p>
<p>For example:</p>
<pre><code class="language-graphql">{
  &quot;errors&quot;: [
    {
      &quot;message&quot;: &quot;Internal error. Looks like something went wrong on our end.&quot;,
      &quot;extensions&quot;: {
        &quot;code&quot;: &quot;INTERNAL_SERVER_ERROR&quot;,
        &quot;requestId&quot;: &quot;d2f47302-8559-4961-9a5b-3de60172aa29&quot;
      }
    }
  ]
}
</code></pre>
</div> ]]></description>
    <pubDate>Thu, 31 Oct 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/improved-graphql-errors</link>
  </item>
  <item>
    <title>New searchable resources added to the predictive search API</title>
    <description><![CDATA[ <div class=""><p>Searchable resources for predictive search APIs now include pages and articles.  Author, body, tag, variant SKU &amp; barcode attributes have also been added to searchable fields for products. </p>
<p>Parameters are getting an update (the old parameters remain valid): </p>
<ul>
<li><ul>
<li>the <code>s</code> query parameter is renamed to <code>q</code></li>
</ul>
</li>
<li><ul>
<li>the <code>bury</code> option of the <code>unavailable_products</code> parameter is renamed to <code>last</code></li>
</ul>
</li>
<li><ul>
<li><code>types</code> is renamed to <code>type</code> and accepts a comma-separated list instead of an array</li>
</ul>
</li>
<li><ul>
<li>a <code>fields</code> parameter was added</li>
</ul>
</li>
</ul>
<p>By default, <code>unavailable_products</code> is set to <code>last</code>. This means that out of stock products will now be shown last in the results list. There are options to hide out of stock products completely, or show them together with available products. </p>
<p>Learn more about the <a href="https://help.shopify.com/en/themes/development/predictive-search" target="_blank" class="body-link">predictive search API</a> in the Shopify Help Center. </p>
</div> ]]></description>
    <pubDate>Tue, 22 Oct 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-searchable-resources-added-to-the-predictive-search-api</link>
  </item>
  <item>
    <title>Discounts API - New Buy X Get Y option</title>
    <description><![CDATA[ <div class=""><p>Buy X Get Y discounts now support setting a minimum purchase amount to qualify for the discount. This option can be used instead of requiring a specific quantity of items a customer must buy. Use this new option to create promotions such as “Spend $100, get a free gift,” or “Spend $200 on skincare, get 50% off a water bottle.” </p>
<p>This option is available as both an automatic discount or a discount code using the Discounts GraphQL API. </p>
<p>You can learn more about this new option in our <a href="https://help.shopify.com/en/api/guides/discounts" target="_blank" class="body-link">Discounts API Guide</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Sun, 06 Oct 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/discounts-api-new-buy-x-get-y-option</link>
  </item>
  <item>
    <title>Bulk operations added to the Admin GraphQL API</title>
    <description><![CDATA[ <div class=""><p>You can now retrieve large amounts of data from our Admin GraphQL API using bulk operations. Provide a standard GraphQL query to the <a href="https://help.shopify.com/en/api/graphql-admin-api/reference/mutation/bulkoperationrunquery?api%5Bversion%5D=2019-10" target="_blank" class="body-link">bulk mutation</a> and you receive a link to a file that contains all of your data after the operation has finished running.</p>
<p>Find out more in the <a href="https://help.shopify.com/en/api/guides/bulk-operations" target="_blank" class="body-link">bulk operation guide</a>.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/bulk-operations-added-to-the-admin-graphql-api</link>
  </item>
  <item>
    <title>API version 2019-10 is now available</title>
    <description><![CDATA[ <div class=""><p>Version 2019-10 is stable and ready for general usage.</p>
</div> ]]></description>
    <pubDate>Tue, 01 Oct 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/api-version-2019-10-is-now-available</link>
  </item>
  <item>
    <title>Performance improvements for the Storefront API product collections</title>
    <description><![CDATA[ <div class=""><p>Querying a product's collections is now faster because we've optimized how we build the connection between a product and its collections. </p>
<p>Since this is a new way of building out connections and their associated cursors, you won't be able to use a cursor from a previous version of the API. Use the same workflow as today with the <code>2020-01</code> API version to unlock these performance gains.</p>
</div> ]]></description>
    <pubDate>Thu, 26 Sep 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/performance-improvements-for-the-storefront-api-product-collections</link>
  </item>
  <item>
    <title>The Checkout API and Storefront API have been updated to support the Revised Payment Service Directive (PSD2)</title>
    <description><![CDATA[ <div class=""><p>As of September 14, 2019, the Revised Payment Service Directive, also known as PSD2, will be implemented in all countries in the European Economic Area (EEA). PSD2 requires most online transactions within the EEA to have customer authentication. To be compliant, Shopify will process credit card transactions in the EEA by using 3D Secure, which is a payment authentication method. </p>
<p>If your app or sales channel implements either the Checkout API or the Storefront API, consider updating it to the 2019-10 release candidate API version of the Checkout API or Storefront API so that it can fully support payment authentication using 3D Secure.</p>
<p>To learn more about changes that you can make to support 3D Secure, refer to <a href="https://help.shopify.com/en/api/guides/3d-secure" target="_blank" class="body-link"><em>Authenticating payments with 3D Secure</em></a>.</p>
</div> ]]></description>
    <pubDate>Thu, 12 Sep 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-checkout-api-and-storefront-api-have-been-updated-to-support-the-revised-payment-service-directive-psd2</link>
  </item>
  <item>
    <title>Buy Button carts now support automatic discounts</title>
    <description><![CDATA[ <div class=""><!-- Enter a breif summary of the change here. This will be displayed on the changelog index view. 
   Content after the triple dash break will not be visible on the index.
   Do not use h1(#) or h2(##) tags. 
-->

<p>We’ve added support for <a href="https://help.shopify.com/en/manual/promoting-marketing/discount-codes/automatic-discounts" target="_blank" class="body-link">automatic discounts</a> to Buy Button carts, which has been enabled by default in the latest version of <a href="https://github.com/Shopify/buy-button-js" target="_blank" class="body-link">Buy Button JS</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Sep 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/buy-button-carts-now-support-automatic-discounts</link>
  </item>
  <item>
    <title>Selecting a primary language for your listings</title>
    <description><![CDATA[ <div class=""><p>You can now create a listing in any language that your app supports, and you can also select any language to be your primary.</p>
</div> ]]></description>
    <pubDate>Fri, 06 Sep 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/selecting-a-primary-language-for-your-listings</link>
  </item>
  <item>
    <title>Privacy policy required</title>
    <description><![CDATA[ <div class=""><p>The privacy policy is now a required field in the app submission form for newly submitted or updated listings of apps in the Shopify App Store. </p>
</div> ]]></description>
    <pubDate>Mon, 19 Aug 2019 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/privacy-policy-required</link>
  </item>
  <item>
    <title>Page-based pagination replaced by cursor-based pagination across multiple REST endpoints</title>
    <description><![CDATA[ <div class=""><p>Being able to communicate quickly and reliably with the Shopify APIs is of the utmost importance to our development community.  To aid in these areas we've added cursor-based pagination and removed page-based pagination on many REST API resources.</p>
</div> ]]></description>
    <pubDate>Wed, 14 Aug 2019 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/page-based-pagination-replaced-by-cursor-based-pagination-across-multiple-rest-endpoints</link>
  </item>
  <item>
    <title>Notifications in the Partner Dashboard - Keep track of relevant news and updates</title>
    <description><![CDATA[ <div class=""><!-- Enter a breif summary of the change here. This will be displayed on the changelog index view. 
   Content after the triple dash break will not be visible on the index.
   Do not use h1(#) or h2(##) tags. 
-->
<p>We understand the importance of staying up to date with the many changes to Shopify and the Partner Program. To make sure updates are visible while not getting in the way, we’ve added a notification section to the Partner Dashboard. Over the next while, we’ll start transitioning relevant notifications from emails and banners to this section of the dashboard.</p>
</div> ]]></description>
    <pubDate>Mon, 22 Jul 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/notifications-in-the-partner-dashboard-keep-track-of-relevant-news-and-updates</link>
  </item>
  <item>
    <title>Category sorting updates</title>
    <description><![CDATA[ <div class=""><p>The default sorting for category pages have been updated to be ‘Most relevant’ for merchants, similar to search. </p>
</div> ]]></description>
    <pubDate>Fri, 19 Jul 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/category-sorting-updates</link>
  </item>
  <item>
    <title>Shopify App Store is now available in 8 additional languages </title>
    <description><![CDATA[ <div class=""><p>The Shopify App Store is now available in Malay Hindi, Danish, Finnish, Swedish, Thai, Korean. You can now create a listing in these languages that will be shown to merchants. <a href="https://https://help.shopify.com/en/api/app-store/listing-in-the-app-store/app-requirements#translate-your-app-listing" target="_blank" class="body-link">Learn more about translated listings</a></p>
</div> ]]></description>
    <pubDate>Fri, 12 Jul 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-app-store-is-now-available-in-8-additional-languages</link>
  </item>
  <item>
    <title>Additional cart item properties available in Shopify's AJAX API response</title>
    <description><![CDATA[ <div class=""><p>We've added new properties on cart items listed in the JSON response of <a href="https://help.shopify.com/en/themes/development/getting-started/using-ajax-api" target="_blank" class="body-link">Shopify's AJAX API</a>. Each cart item listed in the <code>items</code> array has the following additional properties.</p>
<ul>
<li><code>featured_image</code>: an object with the varaint image's <code>alt text</code>, <code>aspect_ratio</code> and <code>url</code>.</li>
<li><code>options_with_values</code>: an array of objects with each product option's <code>name</code> and <code>value</code>.</li>
<li><code>product_has_only_default_variant</code>: a boolean describing if the product only has a default variant.</li>
</ul>
<p>This gives theme developers more information about cart items when working with the AJAX API to build storefront designs.</p>
<p>To learn more about interacting with the cart through AJAX calls, read about the <a href="https://help.shopify.com/en/themes/development/getting-started/using-ajax-api" target="_blank" class="body-link">Shopify's AJAX API</a> in the Shopify Help Center.</p>
<p>You can also read about these new properties' Liquid equivalent in the <a href="https://help.shopify.com/en/themes/liquid/objects/line_item" target="_blank" class="body-link"><code>line_item</code> object</a> in the Shopify Help Center.</p>
</div> ]]></description>
    <pubDate>Mon, 08 Jul 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/additional-cart-item-properties-available-in-shopify-s-ajax-api-response</link>
  </item>
  <item>
    <title>Version 2019-07 is now generally available for our Admin and Storefront APIs </title>
    <description><![CDATA[ <div class=""><p>In April 2019, we <a href="https://developers.shopify.com/changelog/introducing-admin-api-versioning-and-developer-preview" target="_blank" class="body-link">introduced versioning</a> to the GraphQL and REST Admin APIs. Today, stable version 2019-07 is now generally available. The Storefront API has also been added to our versioning scheme.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/version-2019-07-is-now-generally-available-for-our-admin-and-storefront-apis</link>
  </item>
  <item>
    <title>Removed &quot;featured&quot; from Collects</title>
    <description><![CDATA[ <div class=""><p>We have removed the <code>featured</code> field from Collects. This field will no longer be available in <a href="https://shopify.dev/docs/admin-api/rest/reference" target="_blank" class="body-link">Admin REST API</a> queries returning collects. </p>
<p>See <a href="https://shopify.dev/docs/admin-api/rest/reference/products/collect" target="_blank" class="body-link">the collects API</a> for a list of affected endpoints.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/removed-featured-from-collects</link>
  </item>
  <item>
    <title>GraphQL Admin ID added to webhooks</title>
    <description><![CDATA[ <div class=""><p>We've added the <code>admin_graphql_api_id</code> property to webhook payloads for many resources to improve the interoperability between our <a href="https://shopify.dev/docs/admin-api/graphql/reference" target="_blank" class="body-link">Admin GraphQL API</a> and the <a href="https://shopify.dev/docs/admin-api/rest/reference" target="_blank" class="body-link">Admin REST API</a>.</p>
<p>In addition to webhook payloads returning the <code>id</code> property, they'll also return the <code>admin_graphql_api_id</code>.</p>
<p>This is a breaking change for apps that use a version of the shopify_app gem before than 10.0.0 and Rails versions before 5.2.1.1. If you don't use Rails, then this breaking change is not applicable to your application.</p>
<p>For more information, see the <a href="https://github.com/Shopify/shopify_app/blob/09abee73ec1067703e1c03e8b7421a3d478531a6/CHANGELOG.md#1000" target="_blank" class="body-link">shopify_app gem changelog</a> on GitHub.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Jul 2019 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/graphql-admin-id-added-to-webhooks</link>
  </item>
  <item>
    <title>Liquid cheat sheet update</title>
    <description><![CDATA[ <div class=""><p>The Liquid cheat sheet is updated to reflect the content of the <a href="https://help.shopify.com/en/themes/liquid" target="_blank" class="body-link">Liquid reference</a>.</p>
<p>The major update has been to the filters and objects, with 38 and 133 items being added respectively.</p>
<ul>
<li>176 items have been added in total.</li>
<li>22 items have been edited or updated.</li>
<li>9 deprecated items have been removed.</li>
</ul>
<p>This represents a 43% increase in content; with the filters, objects, and tags increasing from 485 items to 695.</p>
<p>Check out the <a href="https://www.shopify.ca/partners/shopify-cheat-sheet" target="_blank" class="body-link">Liquid cheat sheet</a> in the Help Center. </p>
</div> ]]></description>
    <pubDate>Thu, 20 Jun 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/liquid-cheat-sheet-update</link>
  </item>
  <item>
    <title>Enable your users to sell in multiple languages with our new Translation APIs</title>
    <description><![CDATA[ <div class=""><p>We’re excited to announce that Shopify now supports the ability to seamlessly sell in multiple languages using apps. This feature will allow merchants to sell with the same consistent shopping experience for international buyers in multiple languages. In order to help partners offer a fully multi-language experience and localize their apps workflows, Shopify is launching a set of new platform capabilities.  </p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/enable-your-users-to-sell-in-multiple-languages-with-our-new-translation-apis</link>
  </item>
  <item>
    <title>Manage 3D and video on products with our new Media APIs</title>
    <description><![CDATA[ <div class=""><p>We're excited to announce the developer preview and API for managing 3D and video on products is now available to partners for testing and development. Likewise, additions to the GraphQL Admin API allow developers to create, retrieve, update, and delete 3D and video on products. </p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/manage-3d-and-video-on-products-with-our-new-media-apis</link>
  </item>
  <item>
    <title>Limit visibility of your metafield data with our new Private Metafields API</title>
    <description><![CDATA[ <div class=""><p>We’re excited to announce the launch of private metafields. Private metafields are a new type of metafield that enables you to restrict metafield data visibility exclusively to you own apps. </p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/limit-visibility-of-your-metafield-data-with-our-new-private-metafields-api</link>
  </item>
  <item>
    <title>Storefront search now supports product suggestions with the Predictive Search API</title>
    <description><![CDATA[ <div class=""><p>You can now add product suggestions to storefront search by using the Predictive Search API. This shows matching products to customers immediately as they start entering search queries, and lets them easily view the related product pages by selecting items from the search menu.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/storefront-search-now-supports-product-suggestions-with-the-predictive-search-api</link>
  </item>
  <item>
    <title>The new online store design experience is now available in developer preview and here’s what you need to know</title>
    <description><![CDATA[ <div class=""><p>The new online store design experience will equip merchants with better tools to build and edit their online stores. This update is expected to launch to both new and existing merchants later this year but we’re sharing it early with you now so you can prepare for any updates to your apps, themes and services to support this new experience. </p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-new-online-store-design-experience-is-now-available-in-developer-preview-and-here-s-what-you-need-to-know</link>
  </item>
  <item>
    <title>Our Billing API is now supported in GraphQL</title>
    <description><![CDATA[ <div class=""><p>You can now leverage the GraphQL Admin API to implement billing for your app.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/our-billing-api-is-now-supported-in-graphql</link>
  </item>
  <item>
    <title>Create per product shipping rules with our new Delivery Profiles API</title>
    <description><![CDATA[ <div class=""><p>Per product shipping has come to Shopify. Through Shipping Profiles, merchants can group products together to specify custom shipping rates for them. Apps can leverage the Delivery Profiles API to read and modify these profiles.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/create-per-product-shipping-rules-with-our-new-delivery-profiles-api</link>
  </item>
  <item>
    <title>Multi-currency for Shopify Payments is coming to all plans</title>
    <description><![CDATA[ <div class=""><p>We are excited to announce that after its success for Plus merchants, Multi-Currency for Shopify Payments is coming to all plans.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/multi-currency-for-shopify-payments-is-coming-to-all-plans</link>
  </item>
  <item>
    <title>Customer resource now includes tax exemptions</title>
    <description><![CDATA[ <div class=""><p>The new tax exemptions property is available on the customer resource in the <code>2019-07</code> release candidate. This allows app developers to specify which taxes a customer is exempt from paying on their orders. Tax exemption related UI changes to the admin are also exposed in the Unite developer preview on development stores.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/customer-resource-now-includes-tax-exemptions</link>
  </item>
  <item>
    <title>Manage fulfillments with greater control using our new Fulfillment Orders API</title>
    <description><![CDATA[ <div class=""><p>The Fulfillment Orders API is now available. Fulfillment applications can opt into using this new API to gain new capabilities in managing fulfillments via the API. Fulfillment Orders related UI changes to the admin are also now available in the Unite developer preview on development stores.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/manage-fulfillments-with-greater-control-using-our-new-fulfillment-orders-api</link>
  </item>
  <item>
    <title>Create automatic and code discounts in GraphQL with our new Discounts API</title>
    <description><![CDATA[ <div class=""><p>We’re releasing a new Discounts API that has the ability to create and manage automatic and code discounts in the Shopify GraphQL Admin API.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/create-automatic-and-code-discounts-in-graphql-with-our-new-discounts-api</link>
  </item>
  <item>
    <title>Edit orders with our new Order Editing APIs</title>
    <description><![CDATA[ <div class=""><p>We are excited to announce the developer preview and API for one of our most requested features, editing orders. This feature will allow merchants to add and remove line items, as well as adjust line item quantities. Here’s what developers need to know about this new feature.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Jun 2019 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/edit-orders-with-our-new-order-editing-apis</link>
  </item>
  <item>
    <title>Create translated listings</title>
    <description><![CDATA[ <div class=""><p>You can now create a translated app listing for all languages the Shopify App Store is available in. Merchants will see the listing based on the language they are browsing, if available.</p>
</div> ]]></description>
    <pubDate>Tue, 18 Jun 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/create-translated-listings</link>
  </item>
  <item>
    <title>Integrate to Shopify Marketing with the new marketing activities API</title>
    <description><![CDATA[ <div class=""><p>We've opened up the ability for any published Shopify marketing app to be embedded directly into the Shopify admin through the <a href="https://help.shopify.com/en/api/embedded-apps/app-extensions/shopify-admin/marketing-activities/" target="_blank" class="body-link">marketing activities API</a>. </p>
<p>You can build your own app extension today to be on the list of marketing integrations.
<img src="https://user-images.githubusercontent.com/9100243/67824656-68688300-fa9d-11e9-81c6-bcba3c59df34.png" alt="Marketing integrations list"></p>
<p>You can find more information about creating an app extension using the marketing activities API in the [Shopify Help Center] (<a href="https://help.shopify.com/en/api/embedded-apps/app-extensions/shopify-admin/marketing-activities" target="_blank" class="body-link">https://help.shopify.com/en/api/embedded-apps/app-extensions/shopify-admin/marketing-activities</a>)
At a high level, the implementation requires the following steps.</p>
<p>If you have any questions about this update, then contact support through your <a href="https://partners.shopify.com/current/support/form" target="_blank" class="body-link">partner dashboard</a> or request support in our <a href="https://community.shopify.com/c/Shopify-APIs-SDKs/bd-p/shopify-apis-and-technology" target="_blank" class="body-link">Shopify APIs and SDKs discussion board</a>.</p>
</div> ]]></description>
    <pubDate>Fri, 14 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/integrate-to-shopify-marketing-with-the-new-marketing-activities-api</link>
  </item>
  <item>
    <title>Install requirement for Shopify Point of Sale</title>
    <description><![CDATA[ <div class=""><p>You can now specify Shopify Point of Sale as an install requirement for your app, to ensure that merchants can only install your app if they use that sales channel.</p>
</div> ]]></description>
    <pubDate>Wed, 12 Jun 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/install-requirement-for-shopify-point-of-sale</link>
  </item>
  <item>
    <title>Shopify supports shared web credentials on iOS</title>
    <description><![CDATA[ <div class=""><p>Shopify now supports <a href="https://developer.apple.com/documentation/security/shared_web_credentials" target="_blank" class="body-link">shared web creditials</a> between iOS apps and their website counterparts. </p>
<p>Shared web credentials let iOS users access a native app after logging into the respective website in Safari without re-entering their username and password. Now your customers can move between your mobile website and native app more seamlessly!</p>
<p>Learn how to get started in the <a href="https://help.shopify.com/en/api/reference/mobileplatformapplication" target="_blank" class="body-link">Help Center</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 10 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-supports-shared-web-credentials-on-ios</link>
  </item>
  <item>
    <title>We're making changes to how variants are matched with options when products are updated.</title>
    <description><![CDATA[ <div class=""><p>We're making a change to how variants are matched based on any given options when you update products. Although we don't expect this change to impact existing apps, please review the following information to make sure that your own apps don't include any use cases that might be affected.</p>
</div> ]]></description>
    <pubDate>Mon, 03 Jun 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/we-re-making-changes-to-how-variants-are-matched-with-options-when-products-are-updated</link>
  </item>
  <item>
    <title>Updated the Stores section of the Partner Dashboard </title>
    <description><![CDATA[ <div class=""><p>We've updated the Stores section on the Partner Dashboard to make it easier for you to manage all the stores you work on in one place</p>
</div> ]]></description>
    <pubDate>Fri, 31 May 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-the-stores-section-of-the-partner-dashboard</link>
  </item>
  <item>
    <title>New section schema options for themes</title>
    <description><![CDATA[ <div class=""><p>Theme section schemas now accept a <code>tag</code> attribute, which customizes the HTML tag that wraps theme sections. Existing theme sections continue to use <code>&lt;div&gt;</code> by default.</p>
<p>Learn more about <a href="https://help.shopify.com/en/themes/development/sections#tag" target="_blank" class="body-link">section schema tags</a> in the Help Center.</p>
</div> ]]></description>
    <pubDate>Wed, 29 May 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/new-section-schema-options-for-themes</link>
  </item>
  <item>
    <title>Storefront API updates: metafields, scripts, and more!</title>
    <description><![CDATA[ <div class=""><p>We’re excited to share a number of exciting improvements that we've made to the Storefront API to enable you to build <a href="https://help.shopify.com/en/api/custom-storefronts" target="_blank" class="body-link">custom storefronts</a> on Shopify’s platform. These changes affect metafields, Shopify Scripts, and checkout with Apple Pay. </p>
</div> ]]></description>
    <pubDate>Thu, 16 May 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/storefront-api-updates-metafields-scripts-and-more</link>
  </item>
  <item>
    <title>Product Recommendations APIs: Now available on all plan types with added support in Liquid and Storefront APIs. </title>
    <description><![CDATA[ <div class=""><!-- Enter a breif summary of the change here. This will be displayed on the changelog index view. 
   Content after the triple dash break will not be visible on the index.
   Do not use h1(#) or h2(##) tags. 
-->
<p>Earlier this year, <a href="https://developers.shopify.com/changelog/product-recommendation-api-available-to-plus-merchants" target="_blank" class="body-link">we announced</a> our new Product Recommendations APIs available exclusively to Shopify Plus plans. Today, we're excited to share that these APIs are available on all plan types. We've also added Liquid and Storefront API support so you can have more touch points to create better product discovery and customized buying experiences for your users customers.</p>
</div> ]]></description>
    <pubDate>Thu, 16 May 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/product-recommendations-apis-now-available-on-all-plan-types-with-added-support-in-liquid-and-storefront-apis</link>
  </item>
  <item>
    <title>Highlighting Install Requirements in Search and Categories</title>
    <description><![CDATA[ <div class=""><p>Merchants will be shown a “Not Compatible” badge on the search results, category and collection pages if their app does not meet install requirements. </p>
</div> ]]></description>
    <pubDate>Mon, 13 May 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/highlighting-install-requirements-in-search-and-categories</link>
  </item>
  <item>
    <title>Shopify App Store is now available in 3 additional languages </title>
    <description><![CDATA[ <div class=""><p>The Shopify App Store is now available in Dutch, Simplified and Traditional Chinese. You can now create a listing in these languages that will be shown to merchants. <a href="https://https://help.shopify.com/en/api/app-store/listing-in-the-app-store/app-requirements#translate-your-app-listing" target="_blank" class="body-link">Learn more about translated listings</a></p>
</div> ]]></description>
    <pubDate>Fri, 10 May 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-app-store-is-now-available-in-3-additional-languages</link>
  </item>
  <item>
    <title>Shopify Flow connectors now support Shopify properties</title>
    <description><![CDATA[ <div class=""><p><a href="https://help.shopify.com/en/api/embedded-apps/app-extensions/flow" target="_blank" class="body-link">Shopify Flow connectors</a> can now include Shopify properties in workflow triggers. You can add an order, product, or customer property, which passes all Shopify data related to that resource to the workflow.</p>
</div> ]]></description>
    <pubDate>Mon, 22 Apr 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-flow-connectors-now-support-shopify-properties</link>
  </item>
  <item>
    <title>Non-HTTPS webhooks will no longer be supported</title>
    <description><![CDATA[ <div class=""><p><strong>UPDATED APRIL 15TH</strong></p>
<p>In 2018, HTTP is a thing of the past, and over ~95% of you agree.  We're looking to reach 100% HTTPS by 2019.  Therefore we're going to start the deprecation of non-HTTPS webhooks completely.  </p>
</div> ]]></description>
    <pubDate>Mon, 15 Apr 2019 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/non-https-webhooks-will-no-longer-be-supported</link>
  </item>
  <item>
    <title>Introducing Admin API versioning and developer preview</title>
    <description><![CDATA[ <div class=""><p>As of April 9th 2019 we have introduced versioning of our GraphQL and REST Admin APIs and a new developer preview feature for partners.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Apr 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/introducing-admin-api-versioning-and-developer-preview</link>
  </item>
  <item>
    <title>AJAX API now supports multi-currency</title>
    <description><![CDATA[ <div class=""><p>The AJAX API has been updated to support multi-currency for Shopify Payments. This means that monetary values are now returned in the customer's cart currency.</p>
</div> ]]></description>
    <pubDate>Tue, 09 Apr 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/ajax-api-now-supports-multi-currency</link>
  </item>
  <item>
    <title>Local collections and staff picks in the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Local collections and staff picks have started to roll out to merchants from regions around the world. Merchants visiting the Shopify App Store will see a local collection and staff picks more relevant to their region.</p>
</div> ]]></description>
    <pubDate>Fri, 05 Apr 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/local-collections-and-staff-picks-in-the-shopify-app-store</link>
  </item>
  <item>
    <title>Enabling Install Requirements in the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Merchants whose stores don't fit the install requirements you've set in your app submission form will be blocked from installing your app.</p>
</div> ]]></description>
    <pubDate>Tue, 02 Apr 2019 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/enabling-install-requirements-in-the-shopify-app-store</link>
  </item>
  <item>
    <title>POS embedded apps are no longer supported on iOS 9 or earlier</title>
    <description><![CDATA[ <div class=""><p>Shopify is deprecating support for Shopify POS on iOS 9, and part of that deprecation involves apps embedded in Shopify POS.</p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2019 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/pos-embedded-apps-are-no-longer-supported-on-ios-9-or-earlier</link>
  </item>
  <item>
    <title>Paginated requests may now be subject to additional API throttling</title>
    <description><![CDATA[ <div class=""><p>We have introduced a new limit on page-based pagination requests when the resource offset generated by a request is greater than 100,000. </p>
</div> ]]></description>
    <pubDate>Mon, 01 Apr 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/paginated-requests-may-now-be-subject-to-additional-api-throttling</link>
  </item>
  <item>
    <title>API call limits will be applied to variant creation </title>
    <description><![CDATA[ <div class=""><p>We’re adding call limits that restrict the number of variants that can be created by the API after a shop reaches a certain threshold.</p>
</div> ]]></description>
    <pubDate>Thu, 14 Mar 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/api-call-limits-will-be-applied-to-variant-creation</link>
  </item>
  <item>
    <title>[UPDATED] Updates to our API License and Terms of Use and Partner Program Agreement</title>
    <description><![CDATA[ <div class=""><p>We recently made some updates to the Shopify Partner Program Agreement (PPA) and the Shopify API License and Terms of Use (API Terms). These changes encourage the best possible merchant experience within our partner ecosystem and protect the integrity of the Shopify platform.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Mar 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-updates-to-our-api-license-and-terms-of-use-and-partner-program-agreement</link>
  </item>
  <item>
    <title>The Customer resource now includes two new properties to save customer subscription states</title>
    <description><![CDATA[ <div class=""><p>We’ve introduced two new properties to the Customer REST resource to allow you to save the marketing subscription data you have about a merchant's customers to Shopify. </p>
</div> ]]></description>
    <pubDate>Tue, 12 Mar 2019 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-customer-resource-now-includes-two-new-properties-to-save-customer-subscription-states</link>
  </item>
  <item>
    <title>Product Recommendation API available to Plus merchants</title>
    <description><![CDATA[ <div class=""><p>We’re thrilled to share the new <a href="https://help.shopify.com/en/themes/development/getting-started/using-ajax-api#recommended-products" target="_blank" class="body-link">product recommendations API</a> that returns smart recommendations for the product page. This will initially be released as part of the AJAX JSON API for our Plus merchants and Plus Partners, bundled with reporting for the performance of this feature.</p>
</div> ]]></description>
    <pubDate>Wed, 06 Mar 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/product-recommendation-api-available-to-plus-merchants</link>
  </item>
  <item>
    <title>Updated App Listing Submission Form</title>
    <description><![CDATA[ <div class=""><p>The Shopify App Store listing submission form has been modernized to make it easier to submit a new app listing, or update an existing one.  </p>
</div> ]]></description>
    <pubDate>Tue, 05 Mar 2019 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/updated-app-listing-submission-form</link>
  </item>
  <item>
    <title>Product tags now have a limit of 250 per product</title>
    <description><![CDATA[ <div class=""><p>Products can no longer have more than 250 tags, whether they're created by an app using the API or created manually by merchants in the Shopify admin. This limit currently applies to stores on the Advanced Shopify plan and below.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Mar 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/product-tags-now-have-a-limit-of-250-per-product</link>
  </item>
  <item>
    <title>Reply to Reviews in the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>You can directly engage with the merchants who’ve posted a review of your app by replying to a review.  <a href="https://help.shopify.com/en/api/app-store/being-successful-in-the-app-store/managing-app-reviews#responding-to-app-reviews" target="_blank" class="body-link">Learn how to reply to reviews </a></p>
</div> ]]></description>
    <pubDate>Thu, 28 Feb 2019 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/reply-to-reviews-in-the-shopify-app-store</link>
  </item>
  <item>
    <title>The InventoryItem resource now includes HS codes, country codes, and province codes</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://help.shopify.com/en/api/reference/inventory/inventoryitem" target="_blank" class="body-link">InventoryItem</a> resource now includes fields for the 6-digit Harmonized System code (HS code), the country code of origin, the province code of origin, and a list of country-specific HS codes.</p>
</div> ]]></description>
    <pubDate>Fri, 15 Feb 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-inventoryitem-resource-now-includes-hs-codes-country-codes-and-province-codes</link>
  </item>
  <item>
    <title>We're making improvements to Shopify Flow app extensions</title>
    <description><![CDATA[ <div class=""><p>Our most recent updates include more efficient triggers with usage webhooks, improved security, and asynchronous actions. Triggers and actions for Shopify Flow can be added to any listed or unlisted app by using <a href="https://help.shopify.com/en/api/embedded-apps/app-extensions" target="_blank" class="body-link">app extensions</a> and following <a href="https://help.shopify.com/en/api/embedded-apps/app-extensions/flow" target="_blank" class="body-link">this step-by-step tutorial</a>.</p>
</div> ]]></description>
    <pubDate>Wed, 13 Feb 2019 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/we-re-making-improvements-to-shopify-flow-app-extensions</link>
  </item>
  <item>
    <title>The InventoryItem resource now indicates whether it requires shipping instead of the Product Variant</title>
    <description><![CDATA[ <div class=""><p>The <a href="https://help.shopify.com/en/api/reference/inventory/inventoryitem" target="_blank" class="body-link">InventoryItem</a> resource now includes a field <code>requires_shipping</code> to indicate whether the item requires shipping, deprecating the corresponding field on the <a href="https://help.shopify.com/en/api/reference/products/product-variant" target="_blank" class="body-link">ProductVariant</a> resource.</p>
</div> ]]></description>
    <pubDate>Tue, 12 Feb 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/the-inventoryitem-resource-now-indicates-whether-it-requires-shipping-instead-of-the-product-variant</link>
  </item>
  <item>
    <title>Buy Button JS now offers support for checkout-level notes</title>
    <description><![CDATA[ <div class=""><p>New configuration options are available in the Buy Button JS library which allow you to expose an input field in the cart to collect checkout-level notes from the buyer.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Feb 2019 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/buy-button-js-now-offers-support-for-checkout-level-notes</link>
  </item>
  <item>
    <title>Fulfillment payloads on order creation now require a location ID</title>
    <description><![CDATA[ <div class=""><p>Fulfillment payloads on the order creation endpoint have been updated to require a location ID (a unique identifier of the location where the fulfillment should be processed). This means that if an app includes a fulfillment payload during order creation, then that payload must include a <code>location_id</code>. </p>
</div> ]]></description>
    <pubDate>Mon, 07 Jan 2019 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/fulfillment-payloads-on-order-creation-now-require-a-location-id</link>
  </item>
  <item>
    <title>The JS Buy SDK now matches the updated schema for the Storefront API</title>
    <description><![CDATA[ <div class=""><p>We're updating the <a href="https://github.com/Shopify/js-buy-sdk/" target="_blank" class="body-link">JS Buy SDK</a> so that it matches the new Storefront API schema.</p>
</div> ]]></description>
    <pubDate>Thu, 03 Jan 2019 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-js-buy-sdk-now-matches-the-updated-schema-for-the-storefront-api</link>
  </item>
  <item>
    <title>Some nested fields have been moved out of the Shop object and onto the QueryRoot in the Storefront API</title>
    <description><![CDATA[ <div class=""><p>As part of our efforts to improve the quality of the <a href="https://help.shopify.com/en/api/custom-storefronts/storefront-api" target="_blank" class="body-link">Storefront API</a>, we've moved some nested fields out of the Shop object and onto the QueryRoot.</p>
</div> ]]></description>
    <pubDate>Wed, 19 Dec 2018 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/some-nested-fields-have-been-moved-out-of-the-shop-object-and-onto-the-queryroot-in-the-storefront-api</link>
  </item>
  <item>
    <title>Shopify App Store is now available in 6 additional languages</title>
    <description><![CDATA[ <div class=""><p>The Shopify App Store is now available in French, Spanish, Japanese, German, Portuguese (Brazilian) and Italian. You can now create a listing in these languages that will be shown to merchants.  <a href="https://https://help.shopify.com/en/api/app-store/listing-in-the-app-store/app-requirements#translate-your-app-listing" target="_blank" class="body-link">Learn more about translated listings</a></p>
</div> ]]></description>
    <pubDate>Wed, 05 Dec 2018 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/shopify-app-store-is-now-available-in-6-additional-languages</link>
  </item>
  <item>
    <title>Declined app charge redirects will be handled by Shopify</title>
    <description><![CDATA[ <div class=""><p>Currently, when a merchant declines an app charge after being prompted to confirm it, they are redirected to the <code>confirmation_url</code> provided by the app developer. As of Monday, December 3, 2018, Shopify will be handling all redirects whenever an app charge is declined. </p>
</div> ]]></description>
    <pubDate>Mon, 03 Dec 2018 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/declined-app-charge-redirects-will-be-handled-by-shopify</link>
  </item>
  <item>
    <title>We're making improvements to the Storefront API</title>
    <description><![CDATA[ <div class=""><p>Over the last few months, we’ve been hard at work improving the Storefront API to enable you to build <a href="https://help.shopify.com/en/api/custom-storefronts" target="_blank" class="body-link">custom storefronts</a> on Shopify’s platform. The following changes are all available in the Storefront API, and we are continuously updating the JS Buy SDK and Mobile Buy SDKs to include these new changes. </p>
</div> ]]></description>
    <pubDate>Thu, 29 Nov 2018 14:17:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/we-re-making-improvements-to-the-storefront-api</link>
  </item>
  <item>
    <title>We’re experimenting with allowing app developers to run ads in the Shopify App Store</title>
    <description><![CDATA[ <div class=""><p>Shopify is always looking for new and better ways to connect merchants with apps that will help them meet their needs. To help developers get their app noticed by merchants, we’re experimenting with allowing app developers to run ads in the Shopify App Store on category pages. We intend to experiment with search result pages at another time.</p>
</div> ]]></description>
    <pubDate>Thu, 29 Nov 2018 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/we-re-experimenting-with-allowing-app-developers-to-run-ads-in-the-shopify-app-store</link>
  </item>
  <item>
    <title>The Shopify POS App SDK now supports applying discount codes</title>
    <description><![CDATA[ <div class=""><p>With the latest update, you can call <code>setDiscount</code> as an Edit Cart action with a discount code that was created in on the <strong>Discounts</strong> page in the Shopify admin. </p>
</div> ]]></description>
    <pubDate>Tue, 20 Nov 2018 21:19:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-shopify-pos-app-sdk-now-supports-applying-discount-codes</link>
  </item>
  <item>
    <title>Embedded apps can now integrate with Shopify by using Shopify App Bridge</title>
    <description><![CDATA[ <div class=""><p>We’re excited to announce that we're launching a new way for apps and channels to be embedded directly into the Shopify admin, including Shopify mobile and POS. This new library is called Shopify App Bridge. This consolidated tooling brings together the functionality previously provided by the Embedded App SDK and the POS App SDK.</p>
</div> ]]></description>
    <pubDate>Thu, 08 Nov 2018 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/embedded-apps-can-now-integrate-with-shopify-by-using-shopify-app-bridge</link>
  </item>
  <item>
    <title>The InventoryItem resource now includes a cost property</title>
    <description><![CDATA[ <div class=""><p>Product cost lets merchants record the unit cost of their variants, track margin, and report on product performance within Shopify. This feature will roll out to all stores over the next few days. </p>
</div> ]]></description>
    <pubDate>Thu, 25 Oct 2018 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-inventoryitem-resource-now-includes-a-cost-property</link>
  </item>
  <item>
    <title>The Order resource now validates the quantity of line items</title>
    <description><![CDATA[ <div class=""><p>We're adding validation for line item quantities, which prevents the creation of line items with a quantity of 0. This means that orders created via the Order resource must have a line item quantity greater than or equal to 1.</p>
</div> ]]></description>
    <pubDate>Thu, 25 Oct 2018 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-order-resource-now-validates-the-quantity-of-line-items</link>
  </item>
  <item>
    <title>We're launching multi-currency with Shopify Payments, which lets merchants offer prices in their customers' local currencies</title>
    <description><![CDATA[ <div class=""><p>Today, we’re excited to announce a new partner beta: <a href="https://www.shopify.com/partners/blog/multi-currency-app-developers" target="_blank" class="body-link">Selling in multiple currencies with Shopify Payments</a>. This update will enable merchants to offer product prices in their customer’s local currency, an experience that will carry on through checkout.</p>
</div> ]]></description>
    <pubDate>Wed, 24 Oct 2018 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/we-re-launching-multi-currency-with-shopify-payments-which-lets-merchants-offer-prices-in-their-customers-local-currencies</link>
  </item>
  <item>
    <title>The Product Variant resource has new defaults for inventory_quantity and inventory_management</title>
    <description><![CDATA[ <div class=""><p>When you create a new product variant, there are two new default values applied to the <code>inventory_quantity</code> and <code>inventory_management</code> properties.</p>
</div> ]]></description>
    <pubDate>Wed, 10 Oct 2018 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-product-variant-resource-has-new-defaults-for-inventory_quantity-and-inventory_management</link>
  </item>
  <item>
    <title>The Metafield resource now stores JSON strings</title>
    <description><![CDATA[ <div class=""><p>You can now create a metafield with a value type of <code>json_string</code>, which allows you to store structured data and access it using Liquid. When retrieving the value of a <code>json_string</code> type Metafield, the data is deserialized to an iterable hash or array.</p>
</div> ]]></description>
    <pubDate>Tue, 18 Sep 2018 16:45:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-metafield-resource-now-stores-json-strings</link>
  </item>
  <item>
    <title>The Order Risk resource will return a single recommendation from Shopify </title>
    <description><![CDATA[ <div class=""><p>On September 17, 2018, we'll be changing how we display fraud risk information on the order page in the Shopify admin. This will also impact how risk information is exposed in the Order Risk resource.</p>
</div> ]]></description>
    <pubDate>Mon, 17 Sep 2018 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-order-risk-resource-will-return-a-single-recommendation-from-shopify</link>
  </item>
  <item>
    <title>The checkoutCreate mutation no longer uses inventory validation</title>
    <description><![CDATA[ <div class=""><p>We've shipped a change that removes inventory validation from the <code>checkoutCreate</code> mutation in the Storefront API. This is part of our effort to remove the risk of bots and crawlers getting access to inventory information on stores.</p>
</div> ]]></description>
    <pubDate>Mon, 10 Sep 2018 18:15:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-checkoutcreate-mutation-no-longer-uses-inventory-validation</link>
  </item>
  <item>
    <title>The PriceRule resource now supports an allocation limit</title>
    <description><![CDATA[ <div class=""><p>We're adding a highly requested new parameter to the PriceRule API: <code>allocation_limit</code>. This new parameter represents the number of times a discount can be applied to the cart, if eligible. This additional parameter will only be available for Buy X Get Y discount types.  </p>
</div> ]]></description>
    <pubDate>Mon, 10 Sep 2018 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-pricerule-resource-now-supports-an-allocation-limit</link>
  </item>
  <item>
    <title>Apps will no longer be able to create HTTP proxies</title>
    <description><![CDATA[ <div class=""><p>We've started removing all HTTP proxies on the platform. You should transition your app to create HTTPS proxies instead. </p>
</div> ]]></description>
    <pubDate>Sat, 01 Sep 2018 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/apps-will-no-longer-be-able-to-create-http-proxies</link>
  </item>
  <item>
    <title>Admin API requests to locked stores will return a 423 status code instead of 420</title>
    <description><![CDATA[ <div class=""><p>Currently, Admin API requests to locked stores return a 420 status code. As of Thursday, August 30th, this response will change to 423. We're pushing this change to reduce ambiguity around the 420 response code and make sure our responses are as accurate as possible.</p>
</div> ]]></description>
    <pubDate>Thu, 30 Aug 2018 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/admin-api-requests-to-locked-stores-will-return-a-423-status-code-instead-of-420</link>
  </item>
  <item>
    <title>Apps now need to use a new GDPR webhook</title>
    <description><![CDATA[ <div class=""><p>In May, we shared communications regarding the European Union’s new General Data Protection Regulation (“GDPR”) and what it means for merchants and developers on our platform.</p>
</div> ]]></description>
    <pubDate>Sat, 25 Aug 2018 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/apps-now-need-to-use-a-new-gdpr-webhook</link>
  </item>
  <item>
    <title>Merchants will be able to use your POS SDK apps</title>
    <description><![CDATA[ <div class=""><p>On July 19, 2018, Shopify will be releasing v2.5 POS Android and v4.8 POS iOS, which means that all merchants will be able to view your POS apps on their iOS and Android phones and tablets. Make sure to test the design and functionality of your POS apps on iOS and Android phones and tablets prior to the public release of v2.5 POS Android and v4.8 POS iOS.</p>
</div> ]]></description>
    <pubDate>Thu, 19 Jul 2018 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/merchants-will-be-able-to-use-your-pos-sdk-apps</link>
  </item>
  <item>
    <title>Apps now need Shopify approval to read orders older than 60 days</title>
    <description><![CDATA[ <div class=""><p>Shopify is introducing an important change to the Order resource to help preserve the trust that merchants have when using third-party apps.</p>
</div> ]]></description>
    <pubDate>Mon, 09 Jul 2018 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/apps-now-need-shopify-approval-to-read-orders-older-than-60-days</link>
  </item>
  <item>
    <title>Apps will no longer be able to create fulfillments without specifying a location or be able to set inventory using the Product and Product Variant resources</title>
    <description><![CDATA[ <div class=""><p>Shopify is preparing to let merchants track inventory across multiple locations. As part of this change, on July 1, 2018, apps will no longer be able to create fulfillments without specifying a location, or be able to set inventory on the <a href="https://help.shopify.com/en/api/reference/products/product" target="_blank" class="body-link">Product</a> and <a href="https://help.shopify.com/en/api/reference/products/product-variant" target="_blank" class="body-link">Product Variant</a> resources. All apps that create fulfillments or manage inventory will need to be updated by July 1 to remain functional on shops that track inventory across multiple locations.</p>
</div> ]]></description>
    <pubDate>Sun, 01 Jul 2018 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/apps-will-no-longer-be-able-to-create-fulfillments-without-specifying-a-location-or-be-able-to-set-inventory-using-the-product-and-product-variant-resources</link>
  </item>
  <item>
    <title>The Fulfillment resource now includes a name property</title>
    <description><![CDATA[ <div class=""><p>To help you better identify multiple fulfillments for a single order, responses from the Fulfillment resource endpoint will now include a <code>name</code> property.</p>
</div> ]]></description>
    <pubDate>Thu, 21 Jun 2018 18:17:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-fulfillment-resource-now-includes-a-name-property</link>
  </item>
  <item>
    <title>Shopify will no longer support TLS 1.0 and 1.1</title>
    <description><![CDATA[ <div class=""><p>As part of our commitment to providing a safe and secure platform, as of June 20, 2018, Shopify no longer support the outdated TLS 1.0 and 1.1 security protocols. Your apps will have to connect to our APIs using TLS 1.2.</p>
</div> ]]></description>
    <pubDate>Wed, 20 Jun 2018 04:00:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/shopify-will-no-longer-support-tls-1-0-and-1-1</link>
  </item>
  <item>
    <title>The Order resource now includes a discount applications property</title>
    <description><![CDATA[ <div class=""><p>If you <a href="https://www.youtube.com/watch?v=MfzVq8PxAn4&list=PLvQF73bM4-5Vxu_b8ofskvvRuitNOHnM_" target="_blank" class="body-link">missed it at Unite this year</a>, we've exposed line-level discount information on the Order API through a new <code>discount_applications</code> property. You can use this property to account more accurately for when discounts are added to orders.</p>
</div> ]]></description>
    <pubDate>Mon, 11 Jun 2018 18:18:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-order-resource-now-includes-a-discount-applications-property</link>
  </item>
  <item>
    <title>Errors returned in REST now include the attribute name</title>
    <description><![CDATA[ <div class=""><p>We've changed the error messages returned in REST responses to include the attribute name, which matches what we currently return in GraphQL.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Jun 2018 18:08:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/errors-returned-in-rest-now-include-the-attribute-name</link>
  </item>
  <item>
    <title>The POS SDK now supports beta testing on iOS and Android</title>
    <description><![CDATA[ <div class=""><p>Partners with POS Android v2.4.8 and POS iOS v4.6 can now beta test their POS apps on Shopify development stores. </p>
</div> ]]></description>
    <pubDate>Mon, 28 May 2018 18:21:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-pos-sdk-now-supports-beta-testing-on-ios-and-android</link>
  </item>
  <item>
    <title>Apps now need to use GDPR webhooks</title>
    <description><![CDATA[ <div class=""><p>In response to the General Data Protection Regulation (GDPR), we've introduced some important changes to our platform to help you properly handle the privacy and security of customers’ personal information.</p>
</div> ]]></description>
    <pubDate>Fri, 25 May 2018 21:46:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/apps-now-need-to-use-gdpr-webhooks</link>
  </item>
  <item>
    <title>Shopify Plus Partners can now create Shopify Plus sandbox stores</title>
    <description><![CDATA[ <div class=""><p><a href="https://www.shopify.ca/plus/partners" target="_blank" class="body-link">Shopify Plus Partners</a> can now create Shopify Plus sandbox stores. Sandbox stores includes most of the features that are available on the Shopify Plus plan so you can learn how to build on Shopify Plus and create demos for prospective merchants.</p>
</div> ]]></description>
    <pubDate>Wed, 16 May 2018 21:58:00 +0000</pubDate>
    <category>Tools</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/shopify-plus-partners-can-now-create-shopify-plus-sandbox-stores</link>
  </item>
  <item>
    <title>Shop IDs now exceed 32-bit integer values</title>
    <description><![CDATA[ <div class=""><p>In <a href="https://ecommerce.shopify.com/c/shopify-apis-and-technology/t/major-change-shopify-is-growing-and-so-are-it-s-ints-141044" target="_blank" class="body-link">2013</a>, we started to transition ID columns from 32-bit to 64-bit in order to handle the large amount of data we process. Shop IDs have now exceeded the 32-bit threshold. If your app processes the shop ID from an API call, you need to make sure that your data type can handle 64-bit integers.</p>
</div> ]]></description>
    <pubDate>Tue, 10 Apr 2018 16:51:00 +0000</pubDate>
    <category>Action Required</category>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/shop-ids-now-exceed-32-bit-integer-values</link>
  </item>
  <item>
    <title>The PriceRule resource now includes the prerequisite_quantity_range property</title>
    <description><![CDATA[ <div class=""><p>We're introducing a new <code>prerequisite_quantity_range</code> property on PriceRule! You can use this to let merchants selll products with discounts that require a minimum quantity of items. </p>
</div> ]]></description>
    <pubDate>Thu, 05 Apr 2018 13:09:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-pricerule-resource-now-includes-the-prerequisite_quantity_range-property</link>
  </item>
  <item>
    <title>We’re releasing pre-launch pages, which let merchants publish interactive landing pages before they launch their online store</title>
    <description><![CDATA[ <div class=""><p>In the coming weeks, Shopify will release a new feature: pre-launch pages. This feature is a static “coming soon” style page that acts as an interactive placeholder while a merchant works on their store and prepares it for launch.  </p>
</div> ]]></description>
    <pubDate>Fri, 09 Mar 2018 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/we-re-releasing-pre-launch-pages-which-let-merchants-publish-interactive-landing-pages-before-they-launch-their-online-store</link>
  </item>
  <item>
    <title>Fulfilled and partially-fulfilled orders can no longer be canceled by using the Order resource</title>
    <description><![CDATA[ <div class=""><p>On March 1, 2018, Shopify will prevent cancellations of fulfilled or partially-fulfilled orders. Post-fulfillment order cancellations are rare and can lead to confusing fulfillment states and discrepancies in reporting. Thus, attempting to cancel a fulfilled or partially fulfilled order using the <a href="https://help.shopify.com/en/api/reference/orders/order#cancel" target="_blank" class="body-link">cancel endpoint of the Order resource</a> will return an error.</p>
</div> ]]></description>
    <pubDate>Thu, 01 Mar 2018 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/fulfilled-and-partially-fulfilled-orders-can-no-longer-be-canceled-by-using-the-order-resource</link>
  </item>
  <item>
    <title>We're launching the AccessScope resource, which lets you query shops for your app's permissions</title>
    <description><![CDATA[ <div class=""><p>Today we're launching the new AccessScope resource, which allows you to query a merchant's shop for the list of permissions associated to your app. Using this functionality you can easily manage scopes across your various users' shops.</p>
</div> ]]></description>
    <pubDate>Mon, 26 Feb 2018 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/we-re-launching-the-accessscope-resource-which-lets-you-query-shops-for-your-app-s-permissions</link>
  </item>
  <item>
    <title>You can now let Shopify employees use your apps for free or at a discount</title>
    <description><![CDATA[ <div class=""><p>We’re introducing a new plan type to help you identify Shopify employees installing your apps, giving you the option to allow them to use the app for free or at a discounted fee. This helps them better understand the value your app can bring to merchants.</p>
</div> ]]></description>
    <pubDate>Fri, 09 Feb 2018 05:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/you-can-now-let-shopify-employees-use-your-apps-for-free-or-at-a-discount</link>
  </item>
  <item>
    <title>The PriceRule resource now includes the prerequisite_customer_ids property</title>
    <description><![CDATA[ <div class=""><p>The PriceRule resource now includes the <code>prerequisite_customer_ids</code> property, which can be used to create discounts for specific customers. See the <a href="https://help.shopify.com/en/api/reference/discounts/pricerule" target="_blank" class="body-link">PriceRule reference documentation</a> for more details on how to use it. </p>
</div> ]]></description>
    <pubDate>Fri, 02 Feb 2018 15:21:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-pricerule-resource-now-includes-the-prerequisite_customer_ids-property</link>
  </item>
  <item>
    <title>Buy Button and Mobile App sales channel tokens are being migrated to private apps</title>
    <description><![CDATA[ <div class=""><p>When we launched our <a href="https://help.shopify.com/en/api/custom-storefronts" target="_blank" class="body-link">JS Buy and Mobile Buy SDKs</a> a couple of years ago, we designed the system so that developers would manage their access tokens and any mobile settings through the Buy Button and Mobile App sales channels. As use of these SDKs has grown, we wanted to make it easier for partners and developers to track which products were being sold through each storefront, and have access to reports that more accurately communicate the performance of each.</p>
</div> ]]></description>
    <pubDate>Wed, 31 Jan 2018 05:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/buy-button-and-mobile-app-sales-channel-tokens-are-being-migrated-to-private-apps</link>
  </item>
  <item>
    <title>Webhooks delivered from Shopify are being improved to send payloads more efficiently</title>
    <description><![CDATA[ <div class=""><p>We are introducing a number of improvements to how Shopify delivers webhooks.</p>
</div> ]]></description>
    <pubDate>Mon, 08 Jan 2018 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/webhooks-delivered-from-shopify-are-being-improved-to-send-payloads-more-efficiently</link>
  </item>
  <item>
    <title>The JSON Liquid filter will no longer output the inventory_quantity and inventory_policy fields</title>
    <description><![CDATA[ <div class=""><p>As of December 5, 2017, <code>inventory_quantity</code> and <code>inventory_policy</code> fields accessed through a JSON Liquid filter are deprecated. The JSON filter will not output those fields for shops created after that date.</p>
</div> ]]></description>
    <pubDate>Tue, 05 Dec 2017 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/the-json-liquid-filter-will-no-longer-output-the-inventory_quantity-and-inventory_policy-fields</link>
  </item>
  <item>
    <title>The Checkout resource will no longer include the web_processing_url parameter</title>
    <description><![CDATA[ <div class=""><p>On December 4, 2017, we will be removing the <code>web_processing_url</code> parameter from the <a href="https://help.shopify.com/en/api/reference/sales-channels/checkout" target="_blank" class="body-link">Checkout</a> resource. The <code>web_processing_url</code> was never documented and never intended to be consumed by Shopify applications. This does not remove any functionality from the API, since the <code>web_url</code> parameter remains and continues to provide the same functionality.</p>
</div> ]]></description>
    <pubDate>Mon, 04 Dec 2017 05:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-checkout-resource-will-no-longer-include-the-web_processing_url-parameter</link>
  </item>
  <item>
    <title>The Bulk Discounts app will be sunsetted on November 1, 2017</title>
    <description><![CDATA[ <div class=""><p>On November 1, Shopify will be sunsetting the Bulk Discounts app. Merchants can continue to use it without any interruptions until then and their existing discounts remain active in Shopify.</p>
</div> ]]></description>
    <pubDate>Wed, 01 Nov 2017 04:00:00 +0000</pubDate>
    <category>Shopify App Store</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/the-bulk-discounts-app-will-be-sunsetted-on-november-1-2017</link>
  </item>
  <item>
    <title>Themes in the Shopify Theme Store no longer include a page setting type on the homepage</title>
    <description><![CDATA[ <div class=""><p>Themes in the Shopify Theme Store no longer include a <a href="https://help.shopify.com/themes/development/theme-editor/settings-schema#page" target="_blank" class="body-link">page setting type</a> on the homepage by default. The <a href="https://help.shopify.com/themes/development/theme-editor/settings-schema#richtext" target="_blank" class="body-link">richtext setting type</a> will be the main method to add content to the homepage. Any apps that require merchants to install code to display content on the homepage need to update their docs and setup to provide an easier installation. The page setting type is still available for custom development.</p>
</div> ]]></description>
    <pubDate>Mon, 23 Oct 2017 04:00:00 +0000</pubDate>
    <category>Tools</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/themes-in-the-shopify-theme-store-no-longer-include-a-page-setting-type-on-the-homepage</link>
  </item>
  <item>
    <title>The PriceRule resource now supports bulk discount code creation</title>
    <description><![CDATA[ <div class=""><p>The Shopify Admin API now supports bulk discount code creation. With the introduction of bulk discounts, we will allow a single price rule to be associated with multiple discount codes. Therefore, an app that wishes to create multiple discount codes for a single price rule can perform additional independent API calls for each discount code they wish to create.</p>
</div> ]]></description>
    <pubDate>Thu, 28 Sep 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/the-pricerule-resource-now-supports-bulk-discount-code-creation</link>
  </item>
  <item>
    <title>Orders with the since_id parameter are now sorted by order ID</title>
    <description><![CDATA[ <div class=""><p>Prior to September 18, 2017, requests to GET /admin/orders.json including the <code>since_id</code> parameter would return a list of orders sorted by <code>created_at</code>. This would present problems when multiple orders were created within the same second, as results wouldn't dependably return in the same order on subsequent requests. Going forward, orders with the <code>since_id</code> parameter will correctly be sorted by order ID, even if the orders were processed at identical <code>created_at</code> times.</p>
</div> ]]></description>
    <pubDate>Mon, 18 Sep 2017 13:57:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/orders-with-the-since_id-parameter-are-now-sorted-by-order-id</link>
  </item>
  <item>
    <title>SSL certificates will be verified for webhook payloads to HTTPS webhook addresses</title>
    <description><![CDATA[ <div class=""><p>As of September 1, 2017, Shopify will begin verifying SSL certificates when delivering webhook payloads to HTTPS webhook addresses. After this date, webhooks that fail the SSL certificate verification will not successfully deliver to their hosts.</p>
</div> ]]></description>
    <pubDate>Fri, 01 Sep 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/ssl-certificates-will-be-verified-for-webhook-payloads-to-https-webhook-addresses</link>
  </item>
  <item>
    <title>The ScriptTag resource now prevents apps from creating more than 100 tags for a shop</title>
    <description><![CDATA[ <div class=""><p>We've added some validation today to the <a href="https://help.shopify.com/en/api/reference/online_store/scripttag" target="_blank" class="body-link">ScriptTag</a> resource that prevents an application from creating more than 100 script tags for a particular shop. We feel that a limit of 100 per application is more than fair, and any limit higher than this can cause significant performance issues on storefront.</p>
</div> ]]></description>
    <pubDate>Wed, 16 Aug 2017 13:49:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-scripttag-resource-now-prevents-apps-from-creating-more-than-100-tags-for-a-shop</link>
  </item>
  <item>
    <title>The Discounts page will display price_rule.title instead of discount_code.code</title>
    <description><![CDATA[ <div class=""><p>Currently, the <strong>Discounts</strong> page in the Shopify admin displays discount codes based on the value of <code>discount_code.code</code>. However, as of August 7th, 2017, Shopify will display the <code>price_rule.title</code> value instead. Please take this change into consideration if you have an app that creates or modifies price rules. </p>
</div> ]]></description>
    <pubDate>Mon, 07 Aug 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-discounts-page-will-display-price_rule-title-instead-of-discount_code-code</link>
  </item>
  <item>
    <title>Certain properties are changing to support a full UTF-8 character set </title>
    <description><![CDATA[ <div class=""><p>Starting on Monday, July 24th, there will be some changes to how certain properties such as tags and handles are encoded. Currently, Shopify only supports ASCII characters for these properties. Going forward, Shopify will support a full UTF-8 character set for these properties, and you can expect the values of these properties to contain non-ASCII characters.</p>
</div> ]]></description>
    <pubDate>Mon, 24 Jul 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/certain-properties-are-changing-to-support-a-full-utf-8-character-set</link>
  </item>
  <item>
    <title>Checkouts will occur at the shop domain instead of checkout.shopify.com</title>
    <description><![CDATA[ <div class=""><p>We're making changes to checkout domains for all Shopify stores. Rather than the checkout domain being <code>checkout.shopify.com</code>, checkout will occur on the shop domain that the customer is shopping on. </p>
</div> ]]></description>
    <pubDate>Thu, 20 Jul 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/checkouts-will-occur-at-the-shop-domain-instead-of-checkout-shopify-com</link>
  </item>
  <item>
    <title>Carrier service rate requests now include a locale parameter</title>
    <description><![CDATA[ <div class=""><p>As of Thursday, July 20th, 2017, a new parameter will be added to Carrier Service rate requests sent by Shopify – a <code>locale</code> parameter that represents the language of the customer browsing the storefront.</p>
</div> ]]></description>
    <pubDate>Thu, 20 Jul 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>New</category>
    <link>https://shopify.dev/changelog/carrier-service-rate-requests-now-include-a-locale-parameter</link>
  </item>
  <item>
    <title>The Discounts resource has been deprecated</title>
    <description><![CDATA[ <div class=""><p>As of today, the Discounts resource has been fully deprecated in favour of the new <a href="https://help.shopify.com/api/price-rules" target="_blank" class="body-link">Price Rules resource</a>. If you have any questions or concerns, then email our support directly at <a href="mailto:discountsmigration@shopify.com" target="_blank" class="body-link">discountsmigration@shopify.com</a>.</p>
</div> ]]></description>
    <pubDate>Mon, 10 Jul 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Deprecation Announcement</category>
    <link>https://shopify.dev/changelog/the-discounts-resource-has-been-deprecated</link>
  </item>
  <item>
    <title>Hosted Payment SDK requests will include a new key-value pair for locale</title>
    <description><![CDATA[ <div class=""><p>As of June 12th, 2017, we will be including a new “locale” key-value pair in Hosted Payment SDK requests. When signing the request, you will need to ensure your integration does not rely on specific fields. Instead, the message being signed should be a string of all key-value pairs that start with <code>x_ prefix</code>, sorted alphabetically, and concatenated without separators.</p>
</div> ]]></description>
    <pubDate>Mon, 12 Jun 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/hosted-payment-sdk-requests-will-include-a-new-key-value-pair-for-locale</link>
  </item>
  <item>
    <title>The Order resource now validates key properties for the shipping and billing addresses </title>
    <description><![CDATA[ <div class=""><p>We're making some changes to how addresses are validated when you import orders through the Order resource. </p>
</div> ]]></description>
    <pubDate>Mon, 05 Jun 2017 04:00:00 +0000</pubDate>
    <category>API</category>
    <category>Update</category>
    <link>https://shopify.dev/changelog/the-order-resource-now-validates-key-properties-for-the-shipping-and-billing-addresses</link>
  </item>
  </channel>
</rss>