October 25, 2026 · Ahmed · More by Ahmed
Shopify's New Batch Fulfillment Has No API Yet
Shopify's new batch fulfillment groups up to 250 orders in the Admin UI, but there's no documented API for it. Here's what that means for automation.
On October 16, 2026, Shopify shipped batch fulfillment: an Admin feature that groups up to 250 orders by criteria like product type or shipping destination into a single pick-print-pack workflow. For any team that has already automated pick-pack-ship through the Admin GraphQL API — a 3PL integration, a custom fulfillment app, an ERP-driven workflow — it's worth working out exactly what this feature touches before assuming it plugs into what you've already built.
What batch fulfillment actually does
The default workflow has three steps. Pick prints a pick list showing every product across every order in the batch. Print buys shipping labels for all orders in the batch at once, then prints packing slips, shipping labels, and customs forms together. Pack uses scan-to-verify, playing a tone and showing a green check for a correct item, or an error tone and a red icon for a wrong or extra one. The workflow is customizable — steps and actions can be added, deleted, reordered, or assigned to specific staff members — and a batch is created either by selecting orders on the Orders page and clicking Create batch, or by batching a store's most recent unfulfilled orders automatically.
There's no documented API surface for it
Here's the detail that matters for integrators: nothing in Shopify's changelog or Help Center documentation describes a GraphQL or REST object, mutation, or webhook for a "batch." The fulfillmentCreate mutation — the Admin GraphQL API's core fulfillment primitive — is unchanged. It still requires one of the write_assigned_fulfillment_orders, write_merchant_managed_fulfillment_orders, or write_third_party_fulfillment_orders scopes plus the fulfill_and_ship_orders permission, and it still creates a fulfillment for FulfillmentOrder objects tied to a single Order and a single Location. Its documented arguments and payload contain no batch ID or grouping concept at all. An app automating fulfillment via the API currently has no documented way to see that a merchant has grouped orders into a batch, join that grouping, or react to it. What happens if an app calls fulfillmentCreate on an order sitting inside an open batch isn't described in the documentation either — it's an open, untested interaction, not a confirmed one in either direction.
Don't conflate it with bulk actions
Shopify is explicit that batch fulfillment and bulk fulfillment actions are different features: bulk actions change fulfillment status — marking orders fulfilled, changing fulfillment location — while only batch fulfillment runs the full label-buying, document-printing, pack workflow. Automation logic that treats a merchant selecting "bulk fulfill" and a merchant running a batch as the same event will misread what's actually happening on the account.
Eligibility and the 14-day window
Batches aren't universally available. A store needs an active, self-managed location in a country where Shopify admin can buy shipping labels; a location that a fulfillment service manages on the merchant's behalf does not make the store eligible at all. And the "batch recent orders" shortcut only pulls unfulfilled orders from the last 14 days — anything older has to be added to a batch manually, which matters for any automation that intentionally defers some fulfillment past that window.