Customer marketing URL fields now require write access
Effective immediately : The following customer-related fields now require the write_customers scope and the create_and_edit_customers permission: Customer.emailOpenTrackingUrl (deprecated) Customer.unsubscribeUrl (deprecated) CustomerEmailAddress.openTrackingUrl CustomerEmailAddress.marketingUnsubscribeUrl CustomerPhoneNumber.marketingUnsubscribeUrl Reason...
Also shipped Dec 18, 2025Shopify in December 2025 →
Response Healing: Reduce JSON Defects by 80%+
Response Healing is a new feature that automatically corrects malformed JSON responses from LLMs before they reach the application.
WAF Release - 2025-12-18
This week's release focuses on improvements to existing detections to enhance coverage. Key Findings Existing rule enhancements have been deployed to improve detection resilience against broad classes of web attacks and strengthen behavioral coverage.
Process large-scale inference workloads asynchronously with the new Batch API and Files API
Process large-scale inference workloads asynchronously with the new Batch API and Files API. Submit up to 50,000 requests in a single batch job and get 50% cost savings. Learn more in our Batch guide.
December Release Spotlight
OpenRouter released updates including Response Healing for structured outputs, chatroom notifications, and long-context model rankings.
AI Crawl Control - New AI Crawl Control Overview tab
The Overview tab is now the default view in AI Crawl Control. The previous default view with controls for individual AI crawlers is available in the Crawlers tab. What's new Executive summary , Monitor total requests, volume change, most common status code, most popular path, and high-volume activity Operator grouping , Track crawlers by their operating...
More from Shopify developer platformEvery Shopify developer platform release →
Removing `permitsSkuSharing` field from fulfillment service
As of API version 2026-04, we've removed the permitsSkuSharing field from the FulfillmentService object and from the fulfillmentServiceCreate and fulfillmentServiceUpdate mutations. SKU sharing will be enabled by default for all fulfillment services.
Conversion tracking fields added to MarketingEngagementCreate
To improve the integration of marketing platforms that track conversions beyond traditional sales metrics, we have added new fields to the MarketingEngagementCreateInput and MarketingEngagement objects on the MarketingEngagementCreate mutation. These enhancements enable more comprehensive data integration into Shopify's marketing reports.
Storefront API now returns errors when adding a gift card to a cart with missing or invalid recipient details
As of API version 2026-01 , the Storefront API returns a GIFT_CARD_RECIPIENT_INVALID error when adding a gift card to a cart with missing or invalid recipient details, such as in this example .
Discount Function support for rejecting discount codes
The Discount Function API now supports discount code rejection, allowing apps to conditionally reject discount codes with a custom message. With discount rejection for the Discount Function API, merchants can: Prevent double discounting on sale prices Manage fine-grained combinations of discount codes Disqualify certain products from discounts For more...
Set and retrieve `processedAt` in the `refundCreate` mutation
We have introduced a new processedAt input field to the refundCreate mutation . With this field, you can manage refund timestamps in your records more effectively. If you don't provide a processedAt value, then the current timestamp is used by default. This ensures that existing integrations continue to function without modification.
Venmo and PayPal are now treated as separate payment methods
Starting in API version 2026-01 , 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.
Faster bulk operations
We've updated bulk operations in the GraphQL Admin API to process large datasets faster. What's new: Here's what we've done: Support for all mutations : Previously bulk mutations only supported a limited set of actions. Now, you can execute any mutation using bulk operations across all API versions.
Deprecation of `Shop.billingAddress` in favor of `Shop.shopAddress`
As of API version 2026-01, the shopAddress field will be introduced to the Shop object in the GraphQL Admin API. This new field replaces the now-deprecated billingAddress field, which will be removed in a future version. shopAddress will have identical structure and values as billingAddress .