Shopify just rolled out a major upgrade to its flat‑rate shipping offering, extending guaranteed, duty‑inclusive rates to every market managed through Managed Markets. This change means merchants can now present a single, predictable shipping price at checkout for international orders, while Shopify automatically updates rates to protect against unexpected label‑cost adjustments. In this post we’ll break down exactly what’s new, who it affects, and the steps you need to take to make the most of this feature.
What’s Changing?
Managed Markets now controls your international flat‑rate shipping rates and makes them duty‑inclusive. The “guaranteed flat‑rate” label is no longer something you set manually; Shopify calculates and updates the rates based on real‑time duties and carrier costs. You can still turn the feature off for individual markets if you prefer to use custom rates, but doing so removes the label‑cost guarantee.
Who Needs to Pay Attention?
Merchants: If you sell internationally and use Managed Markets, this update directly impacts the shipping experience you offer your buyers. You’ll see a new “Managed Markets” section inside each market’s settings where you can enable or disable the guaranteed flat‑rate option.
Developers: Any app or custom integration that reads or writes shipping rates, duty calculations, or checkout price adjustments needs to be aware that those values may now be overridden by Shopify’s Managed Markets engine. API calls that previously returned your custom flat‑rate values will now return the system‑generated, duty‑inclusive amounts when the feature is active.
How to Enable and Configure in the Shopify Admin
When the toggle is on, Shopify automatically calculates a duty‑inclusive flat‑rate and locks the rate so you can’t edit it manually. If you need a custom rate for a specific market, flip the toggle off and configure your own shipping zones as usual.
API & Code Example: Turning the Feature On via GraphQL
If you manage markets programmatically, you can enable the guaranteed flat‑rate using the GraphQL Admin API. Here’s a minimal mutation example:
graphql
mutation {
marketUpdate(id: "gid://shopify/Market/1234567890", input: { managedMarketsEnabled: true }) {
market {
id
name
managedMarketsEnabled
}
userErrors {
field
message
}
}
}
Replace the id with the GID of the market you’re updating. After the mutation succeeds, the market will automatically use Shopify‑generated duty‑inclusive flat‑rate shipping.
Impact on Apps and Custom Shipping Logic
Any third‑party app that injects custom shipping rates (e.g., advanced rate calculators, carrier‑specific plugins) should check the managedMarketsEnabled flag before applying its own logic. If the flag is true, the app should defer to Shopify’s rates to avoid conflicts and potential refunds.
For developers using the Shipping Rates API, the response payload will now include a guaranteed_flat_rate object with fields such as price, duty_included, and guaranteed_until. Adjust your parsing logic accordingly.
Example snippet (Node.js):
js
if (market.managedMarketsEnabled) {
// Use Shopify‑generated rate
const rate = shippingResponse.guaranteed_flat_rate;
console.log(Using guaranteed rate: ${rate.price} (duty‑included));
} else {
// Apply custom logic
const customRate = calculateCustomRate(order);
console.log(Custom rate applied: ${customRate});
}
Best Practices & Quick Checklist
managedMarketsEnabled flag.Conclusion & Next Steps
The addition of guaranteed flat‑rate shipping to Managed Markets simplifies international fulfillment and gives merchants confidence that shipping costs won’t surprise them—or their customers. By turning the feature on, reviewing the previewed totals, and ensuring your apps honor the new flag, you can deliver a smoother, more transparent checkout experience worldwide.
Ready to activate the feature? Head to Settings > Markets today, and start testing the new rates. Have questions or need help updating your custom shipping integrations? Drop a comment below or reach out to our Shopify Partner support team.
