Wholesale
Wholesale & B2B Settings
TackQuote's B2B engine lets you price differently per customer, enforce ordering rules, extend credit on net terms, and route large deals through approvals. Everything here lives under Settings in the seller portal.
On this page
Pricing
Price books
A price book is a named, currency-scoped set of per-product prices. Assign a book to specific buyers or to a buyer tier, and those customers see their contracted prices automatically when you build a quote. Manage them under Settings → Pricing.
- Each book has a
name, optionalcode, and acurrencyCode(defaults to USD). - Entries set a
unitPriceperskuor product, with an optionalminQty/maxQtyrange. - Books can be time-bounded with
validFrom/validUntiland linked to a contract. - Assign via
assignedBuyerIds(specific buyers) orassignedTiers(a buyer tier such asgold). - Mark one book as the
isDefaultto use as a fallback.
/v1/pricing/price-books/v1/pricing/price-books/v1/pricing/price-books/:id/v1/pricing/price-books/:id/v1/pricing/price-books/:idPricing
Pricing rules
Pricing rules apply dynamic discounts based on conditions — buyer tier, quantity, channel, or territory — rather than fixed per-SKU prices. Each rule carries a discount and an optional margin floor so automated discounts never dip below your cost threshold. Configure them under Settings → Pricing Rules.
| Field | Meaning |
|---|---|
discountType | Either percent or fixed. |
discountValue | The discount amount or percentage applied. |
conditions | Match criteria: buyer_tier, min_quantity, max_quantity, channel, territory. |
minMarginPercent | Optional margin floor — the rule will not discount below this margin. |
priority | Order in which rules are evaluated (higher wins). |
/v1/pricing-rules/v1/pricing-rules/v1/pricing-rules/apply/v1/pricing-rules/:id/v1/pricing-rules/:idPricing
Volume tiers (quantity breaks)
Volume tiers give a discount that scales with quantity. Define a quantity range for a SKU and the discount percentage that applies within it — for example, buy 100–499 units for 10% off, 500+ for 15% off.
- Each tier has a
tierLabel, aminQty–maxQtyrange, and adiscountPct. - An optional
marginFloorper SKU group protects margin as discounts stack. - Tiers can be scoped to a specific
skuor left general.
/v1/pricing/volume-tiers/v1/pricing/volume-tiers/v1/pricing/volume-tiers/:id/margin-floor/v1/pricing/volume-tiers/:idCustomers
Buyer tiers & groups
Every buyer carries a tier that pricing rules and price books key off. Tiers are the primary way to group customers for pricing.
| Tier | Typical use |
|---|---|
standard | Default tier for new buyers. |
silver | Entry-level wholesale pricing. |
gold | Preferred / higher-volume accounts. |
platinum | Top-tier strategic accounts. |
For larger organizations, buyers can also be arranged into an org hierarchy — parent_org, child_org, department, business_unit, and region— so you can model corporate structures and reporting relationships. Set a buyer's tier when creating or editing them under Buyers.
rep, self_registered, widget, import), company details, tax-exemption certificates, and default addresses.Rules
Order limits
Order limit rules (min/max rules) enforce ordering constraints — minimum order values, maximum quantities, and item-count rules — before a quote or cart can proceed. Manage them under Settings → Order Limits.
| Setting | Values |
|---|---|
scope | all, company, or buyer |
limitType | order_total, order_item_count, product_qty, unique_items, per_product_qty |
minValue / maxValue | The floor/ceiling for the chosen limit type. |
message | Message shown when a limit is violated. |
/v1/order-limits/v1/order-limits/validate/v1/order-limits/v1/order-limits/:id/v1/order-limits/:idFinance
Net terms & credit
Extend credit to trusted buyers and let them pay on net terms. Each credit account tracks a limit, the amount used, and a net-terms window. When a buyer checks out on terms, TackQuote runs a credit check against their available balance.
| Field | Meaning |
|---|---|
creditLimit | Total credit extended to the buyer. |
creditUsed | Outstanding balance drawn against the limit. |
netTermsDays | Payment window in days — e.g. 30 for Net-30 (default). |
status | active, hold, or suspended |
provider | Underwriter: manual (default), resolve, or kriya |
Which terms are offered at checkout is controlled under Settings → Wholesale: enable netTermsEnabled and choose from net15, net30, net45, net60, net90. You can also enable PO-number payment for B2B checkout there.
/v1/credit/accounts/v1/credit/accounts/v1/credit/accounts/:buyerId/v1/credit/check/v1/credit/deposit-scheduleGovernance
Approvals
Route quotes through internal sign-off before they reach a buyer. Approval workflows hold a send until designated approvers clear it; approval rules decide when a workflow triggers based on quote attributes. Build both in the Approval Matrix under Settings → Approvals.
Workflows
- Trigger on
minAmount/maxAmount,discountThreshold,marginThreshold, or product category. - Define ordered
steps, each with an approver role or specific user. - Escalate automatically after
escalationAfterHours(default 48), with optional auto-approve on no response.
Rules
Rules evaluate conditions on fields like total, discountPercent, buyerTier, marginPercent, and riskScore using operators gt, gte, lt, lte, eq. A quote in pending_approval stays there until every step clears.
Price override approvals
When a rep manually overrides a system price beyond your tenant threshold, TackQuote raises a separate price override request that a manager or admin must approve before the quote can be sent.
/v1/approvals/workflows/v1/approvals/workflows/v1/approvals/pending/v1/approvals/:id/decide/v1/approvals/matrix/preview/v1/price-approvalsPOST /v1/approvals/matrix/preview to test how a hypothetical quote would route through your rules without creating any records — handy when tuning thresholds.