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...
Also shipped Dec 17, 2025Shopify in December 2025 →
Gemini 3 Flash Preview now available in AI Gateway
Google’s Gemini 3 Flash Preview is now available through AI Gateway. You can call this model from Netlify Functions without configuring API keys; the AI Gateway provides the connection to Google for you.
Forms - Flows Auth0 Send Email Action
We’re excited to announce that we added __Flows Auth0 Send Email Action__! This new feature allows you to send emails from Flows using the customized Email Provider at your Auth0 Tenant.
- MotherDuck MCP Server: Your favorite AI assistant can now talk directly to your data
- MotherDuck MCP Server: Your favorite AI assistant can now talk directly to your data. Connect Claude, ChatGPT, Cursor, or any MCP-compatible client to MotherDuck using the MotherDuck remote MCP Server at https://api.motherduck.com/mcp .
Added support for parallel tool calling, allowing models to request multiple tool invocations simultaneously...
Added support for parallel tool calling, allowing models to request multiple tool invocations simultaneously in a single response. This reduces latency when handling queries that require multiple independent operations. Learn more in our Tool Calling guide.
Prisma ORM 7.2.0 Released: CLI Improvements, Bug Fixes & Better Configs
Prisma ORM 7.2.0 includes CLI improvements such as the return of the --url flag, smarter initialization configurations for Node and Bun, and various bug fixes.
Gateway, Cloudflare One - Shadow IT - domain level SaaS analytics
Zero Trust has again upgraded its Shadow IT analytics , providing you with unprecedented visibility into your organizations use of SaaS tools. With this dashboard, you can review who is using an application and volumes of data transfer to the application.
More from Shopify developer platformEvery Shopify developer platform release →
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...
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.
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 .
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 .