Order form
A bulk-ordering table for trade buyers β search by SKU, set quantities across many lines, add everything to the cart at once.
The order form is a single page where a buyer can search your catalog, set quantities against many products at once, and add the lot to their cart. It is how wholesale buyers actually want to order β nobody reordering 40 SKUs wants to visit 40 product pages.
Prices shown are the buyer's own, resolved from their customer tag exactly as everywhere else.
Before you start
Configure your pricing first. The order form displays pricing; it does not create any.
Adding it
In Shopify admin, create a page: Online Store β Pages β Add page. Call it something like Order form.
Online Store β Themes β Customize.
Navigate to that page, and create or select a template for it.
Add block β Apps β Order Form.
Configure, then Save.
Link the page from your main navigation, or from your wholesale customers' account area.
Settings
Show products if customer is not logged in
Whether logged-out visitors see the catalog at all.
on
Show non-discounted products
On, buyers see your whole catalog. Off, only products with pricing for their tag appear.
on
Show compare at price
Show the compare-at price alongside.
off
Show volume tiers column
A column exposing the tier ladder, so buyers can see the next break.
on
Enable import/export buttons
Let buyers export the form as CSV and re-import a filled-in one.
on
Image header
Column heading.
Image
SKU header
Column heading.
SKU
Product name header
Column heading.
Product name
Price header
Column heading.
Price per carton
Single unit header
Heading for the loose-unit column.
Single Unit
Volume tiers header
Heading for the tiers column.
Volume Tiers
Customer not eligible message
Shown when the visitor has no pricing available.
β
CSS
Your own CSS.
β
The default price heading is Price per carton, which suits case-based selling. If you do not sell by the case, change it β buyers do read the column headings.
Two decisions worth thinking about
Show products to logged-out visitors? Off means the order form is trade-only and a retail visitor sees nothing. On means it doubles as a catalog browser. If you gate prices with Hide price without login on the product page block, keep this consistent β a form listing everything while the product page hides prices reads as broken.
Show non-discounted products? Off gives buyers a tight, purposeful list of exactly what they are entitled to. On lets them order anything, at retail where no wholesale price exists. Distributors with a defined range usually want it off; general trade accounts usually want it on.
Buyer import/export
With import/export enabled, buyers can export the form as a CSV, fill in quantities offline, and re-import it.
This is the feature that wins over buyers who work from their own stock lists β they keep their spreadsheet, and it becomes an order. Leave it on unless you have a reason not to.
Case quantities and tiers
The order form respects case multiples and loose unit pricing. Where loose pricing is configured, the Single Unit column shows that price alongside the case price.
The volume tiers column lets a buyer see they are one step from a better price β which is the entire point of tiers, and it is worth leaving on.
Common problems
The form is empty. No pricing is configured, or Show non-discounted products is off and this customer's tag has no prices.
A logged-out visitor sees nothing. Show products if customer is not logged in is off. That is the intended behaviour for a trade-only form.
Prices differ from the product page. They should not. Confirm you are signed in as the same customer on both β this is usually two different browser sessions.
Last updated