InsightsProduct data

B2B stores and buying agents: volume prices, minimum orders and quotes an agent can read

Business buyers ask agents for a price at a quantity, not a price per item. If your volume tiers sit behind a login and your minimum order is a sentence in the footer, the agent can't compare you. How to state tiers, minimums and who can buy in text and in schema.org.

A purchasing manager asks an agent: "Find me 500 nitrile gloves in size M, delivered within a week, cheapest per box at that quantity." A consumer shopper asks what something costs. A business buyer asks what it costs at a quantity, from someone who will sell to a business, by a date.

Most B2B web stores answer that question badly for a machine. Volume prices sit behind a login, the minimum order is a line in the footer, and "request a quote" is the only path for larger amounts. In this article, we look at why this matters now, which parts of a B2B offer an agent needs to read, and how to state them in plain text and in schema.org.

Why B2B is next

Gartner predicts that by 2028, 90% of B2B buying will be AI agent intermediated, pushing over $15 trillion of B2B spend through AI agent exchanges. That is a forecast, not a measurement, and B2B buying is slow to change. But procurement is repetitive, rule-based and comparison-heavy, which is exactly the kind of work buyers will hand to agents first.

What a business buyer's agent needs to read

  • Price at a quantity. Not just the unit price, but the price for 50, 500 or 5,000 units.
  • Minimum order. In units, in pack sizes or as a minimum order value.
  • Who can buy. Businesses only, resellers, or anyone.
  • Prices with or without tax. Business buyers usually compare net prices; say which one you show.
  • Lead time at quantity. Delivery time for 500 units can differ from delivery time for one.
  • How to get more. A quote path for quantities above your listed tiers.

If any of these is missing, the agent either skips you or has to guess, and an agent that guesses a price wrong is one a buyer stops trusting.

Say it in text first

Before any markup, put the terms on the product page in words and numbers:

  • A tier table in HTML: quantity ranges in one column, unit price in the next.
  • A minimum order line next to the price: "Minimum order: 10 boxes" or "Minimum order value: ₺2,500 excluding VAT".
  • A tax line: "Prices exclude VAT" or "Prices include VAT", next to the price.
  • An eligibility line if you only sell to businesses: "For business customers with a tax number".
  • A lead time for larger quantities, if it differs.

An agent that reads the HTML can use this even if it understands no structured data at all.

Then say it in schema.org

Schema.org has the vocabulary for these terms, inherited from the GoodRelations e-commerce vocabulary:

  • eligibleQuantity on an Offer or a PriceSpecification: the interval and unit of ordering quantities for which the offer or price is valid. A QuantitativeValue with minValue and maxValue expresses a tier or a minimum quantity.
  • priceSpecification with several UnitPriceSpecification entries: one per tier, each with its own price, priceCurrency and eligibleQuantity. referenceQuantity covers prices per pack, such as a price per box of 100.
  • eligibleTransactionVolume: the order value for which an offer is valid, for example a minimum purchasing volume or free shipping above a certain amount.
  • eligibleCustomerType: who the offer is for. Schema.org lists Business, Enduser, PublicInstitution and Reseller as commonly used values.
  • valueAddedTaxIncluded on a price specification: whether the price includes VAT.

A two-tier offer with a minimum of ten boxes would carry:

  • an Offer with eligibleCustomerType set to Business (http://purl.org/goodrelations/v1#Business) and an eligibleQuantity with minValue 10 and the unit "box";
  • a first UnitPriceSpecification: price 189.00 TRY, valueAddedTaxIncluded false, eligibleQuantity from 10 to 49 boxes;
  • a second UnitPriceSpecification: price 169.00 TRY, valueAddedTaxIncluded false, eligibleQuantity from 50 boxes.

A caution: these properties are defined in schema.org, but which agents read them isn't documented. Treat the markup as a second statement of the terms you already show in text, not as a replacement.

Common mistakes

  • "Call for price" as the only price. An agent can't call, and it won't put an unknown price on a comparison list.
  • Tiers only in an image or a PDF. A price list that exists only as a downloadable PDF or a picture of a table is hard for any agent to read reliably.
  • A minimum order that appears only in the cart. The buyer's agent finds out at the last step and has to start again elsewhere.
  • Mixed tax display. Net prices on the product page and gross prices in the feed look like two different prices.
  • Pack size hidden in the title. "Gloves (100)" leaves the agent to guess whether the price is per glove or per box. State the unit and use referenceQuantity.

Logins and quote forms

Many B2B stores hide prices until a buyer signs in. That protects negotiated prices, but it also makes the store invisible to any agent comparing offers. A middle path works for most:

  1. Publish list prices and standard tiers openly, and keep negotiated contract prices behind the login.
  2. Make the quote form reachable without JavaScript tricks, with plain fields for product, quantity and delivery date.
  3. State the response time for quotes, so an agent can tell a buyer when to expect an answer.

The bottom line

A business buyer's agent asks a different question from a consumer's: what does it cost at this quantity, from a seller who will sell to me, and by when? Put tiers, minimums, tax status and eligibility on the page in text, repeat them with eligibleQuantity, priceSpecification and eligibleCustomerType, and keep only negotiated prices behind the login.

Specoria's checks look at whether price, currency and availability are readable, whether the taxes-included wording is clear and whether prices agree between your page, markup and feed. Start with a free readiness test.


Sources