View FAQ →

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.

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, optional code, and a currencyCode (defaults to USD).
  • Entries set a unitPrice per sku or product, with an optional minQty/maxQty range.
  • Books can be time-bounded with validFrom / validUntil and linked to a contract.
  • Assign via assignedBuyerIds (specific buyers) or assignedTiers (a buyer tier such as gold).
  • Mark one book as the isDefault to use as a fallback.
GET/v1/pricing/price-books
POST/v1/pricing/price-books
GET/v1/pricing/price-books/:id
PATCH/v1/pricing/price-books/:id
DELETE/v1/pricing/price-books/:id

Pricing

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.

FieldMeaning
discountTypeEither percent or fixed.
discountValueThe discount amount or percentage applied.
conditionsMatch criteria: buyer_tier, min_quantity, max_quantity, channel, territory.
minMarginPercentOptional margin floor — the rule will not discount below this margin.
priorityOrder in which rules are evaluated (higher wins).
GET/v1/pricing-rules
POST/v1/pricing-rules
POST/v1/pricing-rules/apply
PATCH/v1/pricing-rules/:id
DELETE/v1/pricing-rules/:id

Pricing

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, a minQtymaxQty range, and a discountPct.
  • An optional marginFloor per SKU group protects margin as discounts stack.
  • Tiers can be scoped to a specific sku or left general.
GET/v1/pricing/volume-tiers
POST/v1/pricing/volume-tiers
PATCH/v1/pricing/volume-tiers/:id/margin-floor
DELETE/v1/pricing/volume-tiers/:id

Customers

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.

TierTypical use
standardDefault tier for new buyers.
silverEntry-level wholesale pricing.
goldPreferred / higher-volume accounts.
platinumTop-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.

Buyers also record their source (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.

SettingValues
scopeall, company, or buyer
limitTypeorder_total, order_item_count, product_qty, unique_items, per_product_qty
minValue / maxValueThe floor/ceiling for the chosen limit type.
messageMessage shown when a limit is violated.
GET/v1/order-limits
POST/v1/order-limits/validate
POST/v1/order-limits
PATCH/v1/order-limits/:id
DELETE/v1/order-limits/:id

Finance

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.

FieldMeaning
creditLimitTotal credit extended to the buyer.
creditUsedOutstanding balance drawn against the limit.
netTermsDaysPayment window in days — e.g. 30 for Net-30 (default).
statusactive, hold, or suspended
providerUnderwriter: 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.

GET/v1/credit/accounts
POST/v1/credit/accounts
PATCH/v1/credit/accounts/:buyerId
POST/v1/credit/check
POST/v1/credit/deposit-schedule

Governance

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.

GET/v1/approvals/workflows
POST/v1/approvals/workflows
GET/v1/approvals/pending
POST/v1/approvals/:id/decide
POST/v1/approvals/matrix/preview
POST/v1/price-approvals
Use POST /v1/approvals/matrix/preview to test how a hypothetical quote would route through your rules without creating any records — handy when tuning thresholds.