WooCommerce logo

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.

When this happens

New Submission on your wholesale order request form

Do this

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. 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. 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. 3

    In Zapier, set formformform as the trigger app, choose New Submission, and select the wholesale request form.

  4. 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. 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. 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. 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. 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 fieldWooCommerce
Buyer Contact NameBilling first and last name on the order
Business NameBilling company
Email AddressBilling email
Business AddressBilling address, city and postcode
Product Selection and QuantitiesOrder line items, matched to products by SKU
Ship-To Address (if different)Shipping address on the order

Variations worth knowing

Hold back buyers with no reseller number

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.

Separate the deliveries that cannot wait

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

The order is created but no products appear on it.

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.

Buyers receive a processing email the moment they submit.

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

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