What you will learn
On this pageContentsCloseOpen
Merchants move to Shopify B2B expecting a quote object. They find company accounts, catalogs, price lists, net terms, and PO numbers — and then discover there is no place in the admin where a buyer requests a quote, a rep prices it, the buyer counters, and the quote becomes an order. That workflow does not exist natively. It has never existed natively.
The nearest thing Shopify gives you is the draft order. A draft order is a real, useful object: you can set custom prices per line item, add items that aren't in your catalog, attach shipping and tax, and email a payable checkout link. For a lot of wholesale businesses that is genuinely enough. But it is a merchant-authored order, not a negotiation. The buyer cannot open it, edit it, or send it back with a different number.
The second thing merchants get wrong is the plan question. "B2B is Plus-only" is an outdated claim that still circulates in 2026 blog posts. It isn't true anymore, and the specific list of what remains Plus-gated matters a lot for whether you need an app.
The third thing — the one almost nobody checks before installing — is where the quote physically lives. Some apps create a native Shopify draft order and hand the buyer a real checkout link. One of the most popular B2B apps on the store explicitly does not create a draft order at all. And most quote apps have no idea your B2B catalog price lists exist, which means the quoting layer and the wholesale-pricing layer will disagree about price, silently.
Research date: September 2, 2026. All pricing is USD as listed on the English (US) Shopify App Store, and all ratings and review counts were read from the listing headers on that date.
The short version
- Shopify has no native RFQ object. The draft order is the closest thing, and it is merchant-authored only.
- Draft orders do support custom line-item prices and custom items. The Help Center: "You can set a custom price on any line item in a draft order to charge more or less than the product's listed price."
- Draft orders do produce a payable link. "By default, the invoice contains a link to a checkout, where your customer can pay for their order." After payment, the draft becomes a paid order.
- Draft orders do not reserve inventory by default. Reservation is a manual, opt-in action with an expiry you set.
- There is no buyer counter-offer, no buyer-side edit, and no published invoice expiry date. The only documented lifecycle rule: drafts created on or after April 1, 2025 are auto-deleted after 1 year of inactivity.
- B2B is not Plus-only in 2026. The Help Center states you can use Shopify B2B on Basic, Grow, Advanced, and Plus. Plus-gated: unlimited catalogs, direct company catalogs, deposit requirements, partial payments, payment requests per fulfillment. Advanced-and-up: contextual checkout and contextual storefront.
- Draft orders are fully B2B-aware — but only when a B2B customer and a company location are assigned.
- Where the quote lives is the whole ballgame. SparkLayer B2B & Wholesale's Quoting Engine does not create a Shopify draft order. Most RFQ apps do. Only one of the five apps below states B2B company and catalog support on its listing.
- Converting a quote to an order is a paid plan in every RFQ app checked — $7.99/month at the cheapest, $36.99/month at the most expensive dedicated app, $299/month (or a $49/month add-on) at SparkLayer.
What a draft order actually does, line by line
Every claim below comes from help.shopify.com, checked September 2, 2026.
| Question | Answer | Detail |
|---|---|---|
| Custom prices per line item? | Yes | "A custom price applies only to the line item on this draft order. The product's price isn't changed." |
| Custom line items not in the catalog? | Yes, with real costs | Custom items "aren't tracked as inventory and don't affect your stock levels," don't appear in product sales reports, and "You can't use custom items with automated fulfillment or shipping apps." |
| Payable invoice link to the buyer? | Yes | "After the customer completes the checkout process using the link, the draft order becomes an order in the Orders page and is automatically marked as Paid." |
| Does it reserve inventory? | No, unless you opt in | "If you don't reserve items, then the quantities stay in the Available inventory state and can be purchased by other customers." Reserving requires inventory tracking and an expiry date you choose. |
| Can the buyer counter-offer or edit? | No | The buyer's only documented actions are paying, and — if you enable it — applying a discount code. There is no counter-offer path. |
| Does the invoice expire? | Not published | Shopify publishes no expiry for the invoice or checkout link. The only lifecycle rule: drafts created on or after April 1, 2025 are "automatically deleted after 1 year of inactivity." |
| Is there an approval chain? | Merchant-side only | With "Submit all orders as drafts for review" enabled per company location, buyers see a Submit for approval button at checkout. There is no multi-step buyer-side approval. |
| Works with B2B companies and catalog pricing? | Yes | "If a draft order has a B2B customer and a company location assigned to it, then the prices, payment terms, and checkout options automatically reflect the settings for that company." |
| Supports B2B payment terms? | Yes | Net 7/15/30/45/60/90, due on receipt, due on fulfillment, and fixed term. Percentage deposits are Plus-only. |
Two details deserve emphasis because they change how a draft order behaves as a quote.
Price lock is the quote-honoring mechanism. A draft order's prices are unlocked by default, but "When sending an invoice or sharing a checkout link, the pricing is set to lock by default unless you manually set it to be unlocked." That is what makes a quoted price hold if you later change the product price. It also cuts both ways: a lock "prevents prices from being raised, but they also prevent prices from being automatically lowered."
Unreserved inventory is the failure mode. If you send an invoice for items you never reserved and they sell out, "customers trying to check out are notified that the item is out of stock and can't complete the sale." Your quote is live, the buyer clicks, and the checkout rejects them.
What is actually Plus-gated in 2026
Stop repeating "B2B is Plus-only." As of September 2, 2026, the Shopify Help Center states plainly: "You can use Shopify B2B on the Basic, Grow, Advanced, and Shopify Plus plans." And on the features overview page: "Shopify B2B is available on all plans."
| Feature | Basic | Grow | Advanced | Plus |
|---|---|---|---|---|
| Companies, company locations, location-level permissions | Yes | Yes | Yes | Yes |
| B2B catalogs assignable to B2B markets | 3 | 3 | 3 | Unlimited |
| Direct company catalogs (assigned to a company/location) | No | No | No | Yes |
| Quantity rules and quantity price breaks | Yes | Yes | Yes | Yes |
| Net terms, payment reminders, vaulted cards, ACH (US only) | Yes | Yes | Yes | Yes |
| Deposit requirements (companies and draft orders) | No | No | No | Yes |
| Partial payments, payment requests per fulfillment | No | No | No | Yes |
| Draft order to invoice, checkout to draft, PO numbers, easy reorders | Yes | Yes | Yes | Yes |
| Contextual checkout and contextual storefront (via Markets) | No | No | Yes | Yes |
| Trade theme, quick order list, Shopify Flow with B2B objects | Yes | Yes | Yes | Yes |
One catch that trips people up: "To use B2B catalog features on the Basic, Grow, or Advanced plans, your store must be using new Shopify Markets."
Read the table against your actual quoting problem. If you need per-customer negotiated price lists rather than three market-level catalogs, that is the Plus line. If you need a deposit before you build the order, that is the Plus line. Everything else in the draft-order quote flow works on Basic.
The question that decides the outcome: where does the quote live?
Every RFQ app puts the quote in one of two places. Either it becomes a native Shopify draft order — visible under Orders > Drafts, editable by your team, invoiceable through Shopify's own checkout, and subject to every rule above — or it stays as an object inside the app, with its own statuses, its own emails, and its own idea of price.
Neither is wrong. But the second one has a specific consequence: a draft order inherits catalog pricing only when a B2B customer and a company location are assigned to it. An app that creates a draft order without assigning the company location will produce D2C prices, and your rep will re-key the wholesale numbers by hand — which is precisely the manual work you bought the app to remove.
SparkLayer is the clearest case, because it documents its own answer. Its Quoting Engine page asks whether the engine creates a Shopify draft order, and answers no: quotes are managed entirely within SparkLayer, no draft order is created, and once the customer confirms, the quote converts into a regular Shopify order. That is a coherent design — SparkLayer runs its own price lists, its own customer groups, and its own buyer portal — and the trade-off is stated elsewhere in its docs: SparkLayer and Shopify's native B2B "can't currently run side by side for the same customer session."
| App | Rating (reviews) | Built for Shopify | Entry price | Where the quote lives | Buyer pays from it | B2B companies / catalogs stated | Hide price |
|---|---|---|---|---|---|---|---|
| SA Request a Quote, Hide Price (Samita) | 4.9 (619) | Yes | Free; $16.99; $36.99 | App quote to Shopify draft order + invoice | Yes, via Shopify checkout link | Yes — listing states it "works with B2B companies and catalogs"; requests the Companies and payment-terms scopes | $16.99 tier |
| Q:Request a Quote & Hide Price (Quotify, AppHive) | 4.9 (103) | Yes | $17; $34; $700 lifetime | App proposal to auto draft order | Yes, via draft-order invoice | Partly — "B2B Catalogs" listed on the $17 tier; the app's own "Price lists" are a separate $34-tier layer | $17 tier |
| SB Request a Quote, Hide Price (SetuBridge) | 4.7 (191) | Yes | Free; $7.99; $12.99; $19.99 | App quote to draft order | Yes, after converting | Not stated on the listing | Free tier |
| SparkLayer B2B & Wholesale | 4.9 (362) | No | Free; $49; $149; $299 | Inside SparkLayer — no Shopify draft order | Yes, buyer confirms and completes through SparkLayer's B2B checkout; the quote converts to a Shopify order | Own price lists; associates orders to Shopify companies, but can't run alongside native B2B in the same session | Own B2B layer |
| Quotilio - Quote Manager (Skylitech) | 3.4 (14) | No | $7.99; $10.99; $13.99 | App draft quote to checkout link | Yes, via checkout link | Not stated | Yes |

Source: Shopify App Store, SA Request a Quote, Hide Price listing (English). Captured September 2, 2026.

Source: Shopify App Store, SparkLayer B2B & Wholesale listing (English). Captured September 2, 2026.

Source: Shopify App Store, Q:Request a Quote & Hide Price listing (English). Captured September 2, 2026.
Three things fall out of that table that the marketing copy will not tell you.
Converting a quote into an order is almost always the paid tier. SA gates "Convert to order" and B2B customer/company auto-fill to its $36.99/month Pro plan — and its Pro plan carries a separate $69/month price for Shopify Plus stores. SetuBridge gates "Convert Quote to Order" to its $12.99/month Growth plan. Quotify includes auto draft order at $17/month but puts its own price lists, PDFs, and CRM syncs at $34/month. SparkLayer's App Store listing puts quoting on the $299/month Pro plan; its documentation adds that the Quoting Engine is also available as an add-on for $49 per month on any plan — a materially cheaper route the listing does not mention.
Only SA states B2B company and catalog support on its listing. It is also the only app in this set whose published data-access section lists the Companies scope alongside payment-terms access, which is the mechanical prerequisite for attaching a draft order to a company location — and therefore for the quote to inherit your catalog price rather than your D2C price.
SparkLayer's quoting is a fuller negotiation than anything else here. Its documentation describes a message timeline between buyer and rep, internal notes, quote statuses that control whether the customer may edit or complete, per-quote expiry dates, custom line items, custom shipping, and price-on-application products. It also documents real limits: discounts cannot currently be added to a quote, and limited company users cannot request quotes.
Two apps that come up in searches were checked and excluded for lack of evidence, not lack of features: GP Request Quote, Hide Price (gp-request-quote, free plan with 20 quotes/month, then $9.99/$24.99/$49.99) and B2B Request Quote & Hide Price (b2b-request-quote, $7.99/month) both showed 0.0 (0 reviews) on September 2, 2026. Quotilio is included above because it was on the shortlist, but note the real numbers: 3.4 stars across 14 reviews, with a one-star review from March 2026 reporting a five-day outage, which the developer answered in June 2026 by explaining an ownership transfer that locked them out of their support platforms.
When a draft order is genuinely enough
Do not buy an app if all of the following are true.
- Quotes arrive through a channel you already own. Phone, email, a trade-show form, a rep's inbox. The App Store apps mostly sell you the intake — a storefront button and a form. If your buyers already email you, you are paying for a form.
- Your volume is low enough to key by hand. Ten to twenty quotes a month is roughly the line. Creating a draft order for a B2B customer takes under two minutes once the company exists, and the catalog price fills itself in.
- You quote from catalog prices with occasional exceptions. Assign the company location, let the catalog price load, override the one line that needs overriding, lock the price, send the invoice. That is a complete quote-to-cash loop with zero apps.
- You don't need price hiding for logged-out visitors. This is the single most common reason to buy an app. Shopify has no native per-product price hiding; the Trade theme hides prices for non-logged-in customers in a dedicated B2B store, but that is a whole-store decision, not a per-product rule.
- You don't need a buyer-visible quote history. If your buyers are fine receiving a PDF or an email, you don't need an app-hosted quote portal.
Buy an app when the intake volume is real, when you need conditional price hiding across a mixed D2C/B2B catalog, or when the back-and-forth genuinely is a negotiation with multiple revisions that someone has to audit later.
Bottom line
Shopify B2B in 2026 is a wholesale pricing and account system, not a selling system. Catalogs, net terms, company locations, PO numbers, and checkout-to-draft all work on Basic. What is missing is the negotiation loop, and Shopify has not shipped one.
If your quoting is low-volume and catalog-priced, use draft orders and skip the app. Assign the company location, lock the price, reserve the inventory, send the invoice. Four steps, no subscription.
If you need storefront intake plus conditional price hiding and you are running native Shopify B2B, SA Request a Quote, Hide Price is the one to start with: it is the only app in this comparison that states B2B company and catalog support on its listing and requests the scopes to back it up, and it converts to a native draft order. Budget the $36.99/month Pro tier, because conversion and B2B auto-fill live there — $69/month if you are on Plus.
If your buyers need a real portal with negotiation, revisions, and audit history, SparkLayer is a different category of product and priced like one. Verify the $49/month Quoting Engine add-on before you commit to the $299/month Pro plan, and go in knowing the quote never becomes a Shopify draft order and that SparkLayer replaces the native B2B ordering experience rather than sitting beside it.
Whatever you pick, ask the vendor one question before you install: does your quote attach a company location to the draft order it creates? If the answer is no or unclear, your quotes will be priced at retail and someone on your team will fix that by hand, forever.
Sources
- Draft orders and invoices — Shopify Help Center
- Creating draft orders — Shopify Help Center
- Sending invoices for draft orders — Shopify Help Center
- Creating B2B orders using draft orders — Shopify Help Center
- Shopify B2B — Shopify Help Center
- Overview of B2B features on Shopify — Shopify Help Center
- Shopify B2B features by plan — Shopify Help Center
- SA Request a Quote, Hide Price — Shopify App Store
- Request a Quote by Samita — getting started documentation
- Q:Request a Quote & Hide Price (Quotify) — Shopify App Store
- Quotify support documentation — AppHive
- SB Request a Quote, Hide Price — Shopify App Store
- SparkLayer B2B & Wholesale — Shopify App Store
- Quoting Engine — SparkLayer Docs
- Shopify FAQs — SparkLayer Docs
- Quotilio - Quote Manager — Shopify App Store
- GP Request Quote, Hide Price — Shopify App Store
- B2B Request Quote & Hide Price — Shopify App Store
Shop Pay Installments is free to activate, needs no app, and Shopify never publishes what it costs you — the rate is visible only inside your own admin. It also refuses Capital One and Chase credit cards, restricts monthly plans to debit cards only, excludes gift cards and subscriptions, and can't be turned off for individual products. Affirm can suspend your account for being password-protected, for having a non-English storefront, or for being primarily B2B. And Shopify's Getting paid page says disputes appear in your admin while its FAQ says they don't. If you fail the eligibility gates, the alternative is on-site messaging apps from Klarna, Afterpay, Sezzle, Zip, and PayPal — a category rated between 1.0 and 3.2 stars. Researched September 2, 2026.