Customer Quoting

Turn a customer's wish list into a margin-optimized quote — in minutes.

View Pricing

Key Capabilities

From uploaded demand list to customer-ready export, with smart pricing built in.

Demand List Import

Customers send you a list of what they want. Upload it — the engine matches products by EAN code or by customer-specific product codes via saved mappings. Extra columns preserved automatically.

Smart Offer Pricing

Configurable pricing rules: undercut the best market price by a set amount, enforce a minimum margin floor above your last buying price, and require minimum supplier count and stock-on-hand thresholds.

Customer Code Mapping

Customers use their own product codes. Map them to your EANs once — every future upload auto-resolves. Per-customer mapping tables with import support.

Custom Export Templates

Each customer gets their own Excel template. Upload their blank format, map your data fields to their columns, and export quotes that match their exact layout — ready to send.

How It Works

1
Import the Wish List

Upload the customer's demand file (Excel). Select the customer for code mapping. The engine detects headers, matches products by EAN or customer code, and loads the list with extra columns preserved.

2
Review & Price

The system calculates offer prices using market data from your Price Monitor: best price across suppliers, comparison supplier price, your last buying cost, stock on hand, and configurable margin rules.

3
Export the Quote

Export using the customer's own Excel template — your data fills into their format automatically. Or export as a standard report. Per-customer excluded suppliers ensure quotes reflect only relevant market data.


Pricing criteria configuration screenshot

Configurable Pricing Engine

WishlistCriteria defines the rules per company: maximum pricelist age, minimum supplier count, undercut amount, minimum margin, and stock threshold. The engine applies these rules to every product to calculate the optimal offer price.

  • C1 — Max Price List Age: only consider supplier prices from lists uploaded within N days (default 15)
  • C2 — Min Supplier Count: require at least N suppliers offering the product before generating an offer (default 3)
  • C3 — Undercut Value: decrease the best market price by a fixed amount to stay competitive (default $0.15)
  • C4 — Min Margin: ensure the offer price is at least $X above your last buying price (default $0.50)
  • C5 — Min Qty on Hand: only show an offer price if your stock exceeds N units (default 3)
  • Comparison Supplier: optionally designate a specific supplier whose price serves as the pricing baseline

Customer code mapping screenshot

Customer Code Mapping & Import

Customers rarely use your EAN codes. CustomerProductMapping stores a customer-code-to-EAN translation table per customer. When a file is uploaded with customer codes instead of EANs, the engine resolves them automatically.

  • CustomerProductMapping: customer + customer_code + product — unique constraint per combination
  • Two import modes: EAN-based (direct match) or customer-code-based (resolved via mapping table)
  • Auto-detection: the engine tries EAN headers first, then falls back to customer_code headers
  • Unmatched codes flagged for review — build mappings incrementally as new codes appear
  • Per-customer excluded suppliers — filter out irrelevant vendors from that customer's market view
  • Extra columns from the original file preserved in extra_data JSON field for round-trip fidelity

Export template configuration screenshot

Customer-Specific Export Templates

Each customer can have their own Excel template. Upload their blank file, configure which data fields map to which columns, set the data start row, and generate exports that match their exact format.

  • CustomerExportTemplate: stores the uploaded .xlsx template file, data_start_row, and column_mapping JSON
  • Column mapping: flexible source_field → column_letter pairs (e.g., ean_code→A, offer_price→D, quantity→C)
  • Available source fields: EAN, product name, customer code, offer price, last cost, best market price, stock on hand, decoding status, and all custom fields
  • Multiple templates per customer — different formats for different purposes (PO format, catalog format, etc.)
  • Exported file preserves the customer's original formatting, headers, and styling — only data rows are filled
  • Price fields auto-formatted as USD currency in the output — consistent professional presentation
Works Seamlessly With
Market Price Monitor Inventory Customers

Quote Smarter, Not Harder

Import a customer's wish list, let the engine calculate competitive prices, and export in their exact format — all in minutes.

See Pricing