Sometimes one customer gets a price nobody else does: a long-standing account, a large one-off order, or a deal you negotiated by email. Shopify gives you a few ways to do it. Which one fits depends on whether the price is for one order or for every order, and on your plan.
Decide: one order or every order
Start here, because it picks the tool. A price for a single order is simple on any setup. A standing price for one account needs Shopify's B2B features and may depend on your plan.
| Need | Tool to look at |
|---|---|
| Special price on one order | Draft order with a custom line item price |
| Standing price list for one account | B2B catalog |
| A set amount off this order | Custom discount on the draft order |
One order: use a draft order
A draft order is an order you create for the customer in your Shopify admin. Shopify's documentation says you can set a custom price on any line item to charge more or less than the listed price, and that the custom price applies only to that draft order.
- Custom price: Edit the unit price on the line item
- Custom discount: Add an amount off to a line item or to the whole order
- Custom item: Add a product, service or fee that is not in your catalog
- Invoice: Email the customer an invoice with a checkout link
Your store prices stay untouched, so other customers see nothing different.
Every order: use a B2B catalog
For a standing arrangement, set the customer up as a company and give them a catalog with their prices. A catalog can apply an overall percentage adjustment, fixed prices per product or variant, or both. Fixed prices override the percentage.
- Plus: Shopify lists direct catalog assignment to a specific company or location
- Basic, Grow and Advanced: Shopify says catalogs are assigned to B2B markets, with up to 3 active catalogs across all B2B markets
- Several catalogs: If a product has more than one price, the lowest price displays to the customer
Check your plan before you promise a buyer their own logged-in price list. On a plan with 3 active catalogs, a catalog per customer runs out quickly.
When a catalog per customer is not available
If your plan does not support a direct catalog for that account, combine the two approaches. Put the customer in the closest standard price level, then handle the negotiated difference by draft order.
- ✅ Keep the agreed prices written down in one place, with the date agreed
- ✅ Quote from that record every time, not from memory
- ❌ Do not change your store price to suit one buyer
Record what you agreed
Custom pricing causes disputes when nobody can find the original deal. Write down the price, the products it covers, any minimum quantity, and when it ends. Put the expiry date in the quote itself. For the order flow, see turning a wholesale quote into a draft order.
Doing this at scale
QuoteWeaver reads a buyer's free-text request, matches each line to a real catalog SKU with a confidence score, and prices it against your B2B list. It builds the Shopify draft order and a drafted reply for you to review, and it never invents a SKU or price. See QuoteWeaver.