Draft a wholesale order from a bulk buying enquiry
Each wholesale request lands as a pending WooCommerce order with the requested line items and the buyer's billing details attached.
New Submission on your wholesale order request form
Create a draft order in WooCommerce with the selected products and quantities
One-directional. A submission triggers the action — nothing is written back into your form.
Trade buyers rarely order through the public cart. Prices are negotiated, quantities are large, and stock rules get in the way. The request stays on a form, and this flow still produces a real WooCommerce order for staff to work from.
Suppliers and small manufacturers use it to stop retyping purchase orders. The order arrives pending or on-hold with the requested lines already on it, so pricing, adjusting quantities and sending the invoice happen in wp-admin alongside every retail order.
Setting it up
- 1
Publish the wholesale request form and turn Product Selection and Quantities into a list of your trade SKUs rather than a free-text box. Zapier can only build line items from values it recognises.
- 2
Check that each SKU offered on the form matches the SKU on the product in WooCommerce character for character. A mismatch is the usual reason an order arrives with no lines on it.
- 3
In Zapier, set formformform as the trigger app, choose New Submission, and select the wholesale request form.
- 4
Add the WooCommerce Create Order action, connect the store with its API keys, and set the order status to pending payment or on-hold so nothing is ever treated as paid.
- 5
Map Buyer Contact Name to the billing first and last name inputs and Business Name to billing company, so the order reads as a trade account rather than a private shopper.
- 6
Build the line items from Product Selection and Quantities, matching each entry to a product by SKU, and leave prices at catalogue value for staff to overwrite with the agreed trade price.
- 7
Send Payment Terms, PO Number (optional) and Requested Delivery Date into the customer note or order meta, so an invoice can be raised without reopening the submission.
- 8
Test one request, confirm the order sits in pending under WooCommerce, Orders with the right lines and billing block, then turn the Zap on.
What maps where
Using the Wholesale Order Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | WooCommerce |
|---|---|
| Buyer Contact Name | Billing first and last name on the order |
| Business Name | Billing company |
| Email Address | Billing email |
| Business Address | Billing address, city and postcode |
| Product Selection and Quantities | Order line items, matched to products by SKU |
| Ship-To Address (if different) | Shipping address on the order |
Variations worth knowing
Add a Zapier filter requiring Reseller or Tax ID Number before the order is created. Requests without one branch to a Create Customer action and an email to your sales inbox instead, so an unverified account never lands in the order queue looking ready to ship.
Run a second Zap on the same form with a filter on Requested Delivery Date. When the date falls inside your production lead time, write an order note flagging it, so the warehouse sees the constraint on the order itself rather than in a reply to the enquiry.
If something isn't arriving
WooCommerce matches line items on product ID or SKU, and it fails silently when neither matches. Open a failed run in Zapier, compare the SKU that was sent with the SKU on the product page, and correct the option text on the form so the two agree exactly.
The Create Order action defaults to a status that WooCommerce treats as a live order, which fires customer emails. Set the status explicitly to pending payment or on-hold in the action, and re-test with your own address to confirm nothing goes out.
Frequently asked questions
Can the buyer pay for the wholesale order on the form?
Yes. Add products and priced options to the form, then collect payment through secure hosted checkout with Stripe, PayPal, or Square. Payment status is tracked alongside the response.
What happens when we change the prices on the drafted order?
Edit it in wp-admin like any other order. The Zap has already finished by then, and nothing it created is kept in step with the submission afterwards, so your priced order is the version that counts from that point on.
Does the buyer need a WooCommerce account before ordering?
Not necessarily. Create Order accepts billing details on their own, which produces a guest order. If you would rather keep a trade account, add a Find Customer step on Email Address first and attach the order to the record it returns.
Related automations
- Add a made-to-order build to the catalogue as a draft
Every build request creates a draft WooCommerce product carrying the item name, its part number as SKU and the full specification.
- Hold pre-orders as on-hold orders before a launch
Every reservation becomes an on-hold WooCommerce order with the chosen variation and quantity, so launch day starts with a real queue.
- Issue a single-use discount code to survey entrants
A completed feedback survey generates a unique WooCommerce coupon with a fixed discount and a one-use limit, tied to the shopper's email.
- Log a return request against the customer's record
Each return request finds or creates the customer in WooCommerce and records the reason and order number as a note staff can act on.
- Turn a loyalty signup into a store customer account
Each loyalty signup creates a WooCommerce customer with billing name, email, phone and mailing address already filled in.
- Add a wholesale lead to your Shopify customers
Each wholesale application creates a Shopify customer with the business name, buyer contact and address already filled in.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free