How To Use — Pronto Quotation App
Complete step-by-step guide for the full workflow — from setup to generating a client invoice.
★ App Overview
Pronto is a fulfillment quotation and invoicing tool. The core workflow is: set up your catalog → quote clients → import ShipStation shipment data → generate invoices automatically based on what was actually shipped and at what agreed price.
- Clients — the companies you fulfill for
- Formulas / Products — your SKUs with weight and pricing tiers
- Pricing Tiers — volume-based discount schedules per client class
- Shipping Rates — domestic and international rate tables by weight
- Quotes — agreed pricing for a client covering specific products and a shipping tier
- ShipStation Import — monthly CSV upload of what was actually shipped
- Invoices — auto-generated from the import using accepted quote prices
1 Initial Setup — done once
Before quoting or invoicing, you need your catalog, pricing, and shipping rates configured.
A
Go to Formulas. Add every product you fulfill. Each formula needs a SKU, name, weight in ounces (used for shipping cost calculation), and pricing for up to 5 tiers (Tier 1 = standard, Tier 5 = best/highest volume). Use Bulk Add to import many at once.
B
Go to Fulfillment & Shipping → Domestic and International. Upload your rate tables. Domestic rates have 5 tier columns (matching your pricing tiers). International rates have two zones: CA/UK/AU and Rest of World. Weight ranges are in ounces.
C
Go to Clients. Add each client company with their contact info, address, and assigned pricing tier. You can also manage their SKU mappings from this view.
2 Client SKU Mapping
Each client identifies your products by their own SKU codes (e.g. "TIB-BS-001") rather than your internal formula IDs. This mapping tells the system how to translate ShipStation shipment lines into your products.
1
Open a client from Clients, then click Manage SKUs. A modal opens showing all formulas.
2
For each formula the client orders, type their SKU code in the input field. Leave blank for formulas they don't use. Click Save SKUs.
3
Each client SKU must be globally unique — two clients cannot share the same SKU code. The system will show an error if a conflict is detected, naming the client that already holds that SKU.
Tip: SKU mapping also works inline — if you upload a ShipStation CSV and some SKUs are unmatched, you can assign them to a formula directly in the import detail view without re-uploading.
3 Creating & Managing Quotes
A quote is an agreed price list for a specific client covering a set of products and a shipping arrangement. Invoices use the Accepted quote price for each product.
1
Go to Quotes → New Quote. Select the client, shipping type (Domestic or International), and the shipping tier. Add the formulas they're ordering — pricing is set per formula in the product catalog, and the account manager selects which tier to apply per line when building the quote.
2
Save the quote. It starts as Draft. Share it with the client. When they confirm, change the status to Accepted. Only Accepted quotes are used for invoice pricing.
3
A client can have multiple Accepted quotes (e.g. different quotes for different products, or a renegotiated price). If two Accepted quotes cover the same product at different prices, the system will ask you to choose which price to use before generating an invoice.
Quote statuses: Draft → Sent → Accepted or Rejected. Only Accepted quotes feed into invoice generation.
4 ShipStation Data Import
At the end of each billing period, export the shipment CSV from ShipStation and upload it here. The system matches each shipment line to a client and product using the SKU mapping, then validates everything before letting you generate invoices.
1
Go to Invoicing → ShipStation data import. Select the Billing Period (month/year) and the Client this CSV is for. Then click Upload CSV and choose your ShipStation export file.
2
The system immediately parses the file and shows a summary: total rows, matched (green), unmatched (red). You'll be taken to the import detail automatically.
3
If there are unmatched SKUs: a red section appears at the top of the Unmatched card. For each unknown SKU, select the correct formula from the dropdown and click Save Mapping. The rows are re-matched instantly — no re-upload needed. Invoices cannot be generated until all SKUs are matched.
3b
SKU already claimed by another client: If the SKU you're trying to map is already assigned to a different client, an amber warning strip appears naming that client. Click Reassign to this client → to move the mapping over. The previous client's mapping for that SKU is removed. Use this when a SKU code has been reused or transferred between accounts.
4
Once all rows are matched (unmatched = 0), a green bar appears: click Generate Invoices.
Required CSV columns: Order Number, Order Date, Ship Date, Recipient Name, SKU, Item Name, Quantity. Include a Ship Country column (2-letter country code, e.g. US, CA, GB, AU) for correct domestic vs. international shipping classification. Rows without a country code default to domestic.
One import per client per period. Upload a separate CSV for each client. The system filters SKU matching to only that client's mappings, so mixing clients in one file will result in unmatched rows.
5 Generating Invoices
Once an import has no unmatched SKUs, click Generate Invoices in the import detail. The system groups all shipment rows by product, finds the applicable Accepted quote price, and creates an invoice automatically.
1
Normal case: One Accepted quote per product → invoice created immediately. You'll see a toast "Generated 1 invoice" and be taken to the Invoices list.
2
Price conflict: If two Accepted quotes cover the same product at different prices, a modal appears. For each conflict, select which quote's price to apply, then click Generate with Selected Prices.
3
No quote found: Products with no matching Accepted quote are invoiced at $0.00 with a "No quote" flag. You can still generate and then manually adjust the notes field, or create an Accepted quote first and delete/regenerate the invoice.
4
Duplicate prevention: Clicking Generate a second time for the same import returns an error naming the existing invoice. Delete the existing invoice first if you need to regenerate.
6 Managing Invoices
Go to Invoicing → Invoices to see all invoices. Each invoice has a product line-items section and a Shipping & Fulfillment section that auto-calculates shipping cost per order based on product weights and your rate tables.
1
Status workflow: Invoices start as Draft. Change to Sent after you email it to the client. Change to Paid when payment is received. Status can be changed directly in the invoices list (no need to open the detail).
2
Click View to open the full invoice detail: client address, line items with quote reference, shipping cost per order, and a grand total (products + shipping).
3
Use the Print / PDF button in the invoice detail to open a print-ready version in a new window. Use your browser's print dialog (Ctrl+P / Cmd+P) to save as PDF.
4
Click Delete (in the list or detail view) to permanently remove an invoice and its line items. This also frees that import to be re-generated if needed.
Shipping calculation: Requires (a) product weights set in Formulas, (b) domestic and/or international rate tables loaded under Fulfillment & Shipping, and (c) the applicable quote having a shipping type and tier set. The Shipping & Fulfillment section on each invoice shows a row per order with a 🏠 Dom or ✈ Intl badge, the order weight, and its shipping cost. Domestic and International subtotals are shown separately at the bottom. If rates are not configured, the shipping section shows $0.00.
✦ Recent Updates
↕
Column sorting — Click any underlined column header in Clients, Formulas, or Invoices to sort ascending or descending. Click again to reverse.
⧉
Clone a quote — In the Quotes list, click Clone on any row to instantly duplicate it as a new Draft with today's date. Useful for repeat orders or similar clients.
⬤
Invoice filters — The Invoices page now has All / Draft / Sent / Paid pills at the top to quickly narrow the list by status.
⚠
Needs Attention widget — The Dashboard shows an amber alert card whenever there are unmatched SS imports, unsent Draft invoices, or Sent quotes with no response after 7 days. Disappears automatically when resolved.
$
Client lifetime value — Open any client to see four stats at a glance: total lifetime billed (Paid invoices only), number of paid invoices, total quotes, and quote acceptance rate.
7 Analytics
Go to Analytics to see revenue, volume, and quote performance data across any date range, client, or formula.
📅
Filter by date range: Choose This Month, Last Month, This Quarter, This Year, or Custom to pick exact dates. Leave all filters blank to see lifetime stats.
📊
Six summary cards show: Total Invoiced, Total Paid, Outstanding (sent but unpaid), Units Shipped, Draft Invoices, and Quote Acceptance Rate — all recalculated live when you apply filters.
📈
Monthly Revenue chart shows invoiced amounts per month as bars. Hover each bar for the exact total and invoice count for that month.
🚚
Shipments by Method table breaks down all shipments into Domestic and International rows, showing units, total weight, and the shipping cost charged for each. The classification uses the Ship Country from each ShipStation row, respecting the quote's shipping type setting. Totals are shown in a summary row at the bottom.
🏆
Top Formulas by Volume ranks formulas by units shipped with product revenue and a Total row. Top Clients by Revenue ranks clients by total invoiced — this table is automatically hidden when you filter by a specific client, since you're already looking at just that one.
Scale note: Analytics are computed server-side using SQL aggregation — the page handles hundreds of clients and thousands of invoices without slowdown.
8 Settings
Go to Settings to configure how quote and invoice IDs are formatted.
⚙
Prefix — Set any short label (e.g. Q, QT, INV, BILL) that appears before the hyphen in every new document ID.
#
Digits — Set how many zero-padded digits follow the prefix (2–8). For example, 4 digits produces Q-0001, while 6 digits produces Q-000001.
👁
A live Preview panel shows what the next ID will look like as you type. Click Save Settings — changes take effect immediately for all new documents.
Admin only. Only users with the Admin role can change settings. Non-admins can view the current configuration but cannot save changes.
→ Monthly Billing Workflow
Do this every billing period:
1
Export shipment CSV from ShipStation for the billing period, filtered per client.
2
Go to ShipStation data import → select period + client → Upload CSV.
3
If unmatched SKUs appear, assign them to formulas inline. Repeat for each client.
4
Click Generate Invoices. Resolve any price conflicts if prompted.
5
Open each invoice → Print / PDF → send to client → change status to Sent.
6
When payment comes in, change status to Paid.