Navigating Shopify Draft Orders: B2B Inventory & Packing Slip Workflows
Hey there, fellow store owners! Let's dive into a topic that's often a bit of a head-scratcher, especially for those of us running wholesale or B2B operations on Shopify: managing inventory with draft orders and getting those crucial packing slips just right. I recently stumbled upon a really insightful discussion in the Shopify community that perfectly encapsulates some of these challenges, and I wanted to share what we learned.
The conversation, sparked by a merchant named KanefireX, highlighted a perceived "unacceptable gap" in how Shopify handles draft order inventory reservation, particularly when dealing with net terms or hand-delivered goods. The core issue? A concern that reserving items on a draft order doesn't actually prevent those items from being sold on the storefront, leading to potential overselling. Plus, the struggle for a clean, price-free packing slip for staff.
Untangling Inventory Reservation for Draft Orders
This is where things can get a little confusing. KanefireX pointed out that the "Reserve items" feature seemed to only affect the "Committed" count, not actively block storefront purchases. This is a legitimate concern for any merchant who relies on accurate inventory.
However, another community member, tim_1, brought up a crucial point by referencing Shopify's own documentation on inventory states. According to the docs:
Inventory state Definition Available Available inventory refers to inventory that you can sell. Available inventory isn’t committed to any orders or reserved for any draft orders. It also doesn’t include inventory that’s considered Incoming. Committed Committed inventory refers to the number of units that are part of an order but not yet fulfilled. When units are part of a draft order, they can’t be purchased by customers and won’t count as Committed inventory until the draft becomes an order. Unavailable Unavailable inventory refers to the number of units reserved for draft orders, set aside by apps, or other inventory hold reasons, such as damaged, quality control, or safety stock. Unavailable inventory is stocked at your location but it’s not available to sell.
That last part, especially about "Unavailable inventory" for draft orders, is key. It states that reserved items in a draft order are not available to sell. So, if you're experiencing overselling, it might be that the "Reserve items" option wasn't checked, or there's a specific workflow nuance at play.
Manually Reserving and Committing Inventory
When you create a draft order, you'll see an option to "Reserve items." Make sure this is checked! While KanefireX noted it might feel like an extra step, it's essential for the inventory to be marked as unavailable.
To fully commit the inventory and move the draft order closer to a standard order state, especially for net terms or when you need to hand-deliver, you don't necessarily have to wait for full payment. tim_1 highlighted a great option: converting the draft order to an order with a "Payment pending" status.
Here's how you can do it manually:
- From your Shopify admin, navigate to Orders > Drafts.
- Select the draft order you want to convert.
- Click the Mark as paid dropdown menu.
- Choose Mark as pending. This will convert your draft order into a full order, reserving the inventory as "Committed."
You can also use the "Payment pending" option when creating an Order out of a Draft order directly, as shown in the community:
Automating Inventory Reservation with Shopify Flow
Now, if manually checking boxes and converting feels like too many steps (and let's be honest, for high-volume B2B, it often is!), Shopify Flow is your best friend. It's a free app for eligible plans that can automate a ton of your workflow.
tim_1 wisely suggested using Flow to ensure inventory is reserved automatically. You can set up a Flow that triggers every time a "Draft order created" event happens. Then, an action can be set to update that draft order to ensure inventory is reserved, or even to automatically convert it to a "Payment pending" order.
Setting up a basic Flow for inventory reservation:
- Install the free Shopify Flow app from the App Store.
- In Flow, click Create workflow.
- Choose the trigger: Draft order created.
- Add an action: Update order. Within this action, you'd specify that the inventory should be reserved. (Note: The exact configuration might vary slightly depending on your specific needs, but Flow's interface is quite intuitive for this.)
This way, you're not relying on a manual click, and your inventory will be protected right from the get-go.
Solving the Price-Free Packing Slip Puzzle
KanefireX also brought up the challenge of generating packing slips without pricing information for employees. This is a common requirement in wholesale where you don't want pricing details visible to everyone handling the goods.
By default, Shopify doesn't offer packing slips for draft orders because they aren't considered "final" until paid. The workaround KanefireX mentioned—printing the order page and manually blocking prices—is definitely tedious and prone to errors.
But guess what? Shopify Flow comes to the rescue again! tim_1 suggested using Flow to automatically send an email to your store staff that contains all the necessary packing slip information (items, quantities, shipping address) but without any prices. Your staff can then simply print this email.
Here's a simplified Flow idea for packing slips:
- In Shopify Flow, create a new workflow.
- Choose the trigger: Draft order created (or Order created if you've converted it).
- Add an action: Send internal email.
- Customize the email content: You can pull in dynamic variables like line item names, quantities, customer name, shipping address, etc., but deliberately omit any variables related to price or cost.
- Specify the recipient: Your fulfillment team's email address.
This automation turns a manual, error-prone task into a seamless part of your workflow, ensuring your team has exactly what they need without the sensitive pricing data.
So, while the initial community discussion highlighted some very real pain points and perceived gaps in Shopify's draft order functionality for B2B, it also showed us that with a bit of digging and the smart application of tools like Shopify Flow, many of these challenges can be effectively addressed. It's all about understanding the platform's capabilities and how to leverage them for your specific business needs. Keep exploring, keep asking questions in the community, and you'll often find clever solutions!
