Connect shared pricing
The quote dashboard and admin panel are included in this ZIP. To share permanent updates across all staff computers, connect one Cloudflare D1 database before uploading the ZIP.
In Cloudflare, open Storage & databases → D1. Create a database named barrys-pricing.
Open your existing Workers & Pages → Pages project → Settings → Bindings. Add a D1 database binding in the Production environment. Set the variable name exactly to PRICING_DB and select barrys-pricing.
In that same Pages project, choose Create a new deployment → Production. Upload this entire ZIP and deploy. The database tables are created automatically; no SQL commands or build step are needed.
Open the site’s normal production address, select Admin panel and sign in with the password supplied with the ZIP. Publish a price change and use Refresh prices on a second computer to confirm it.
If you add or change the binding after deploying, deploy the same ZIP once more so the new binding is applied.
Keep the same bookmarks
Keep using the same Pages project and its permanent project-name.pages.dev address or custom domain. A deployment preview address can point to an older version. You do not need to create a new project or replace staff bookmarks for routine price updates.
Keep this D1 binding on future deployments. The database, published changes and admin password persist independently of the ZIP.
Cloudflare D1 binding instructions · Cloudflare ZIP upload instructions
Refresh prices and page reload
Refresh prices checks published model and price records, recalculates the current quote and shows whether anything changed. It keeps your selected models, promo prices and miscellaneous items. A page reload loads the app version deployed to this same Pages project; it does not install a different ZIP. After uploading an app update, reload the page once to load the new controls. Admin opens at /admin.
QUOTE-ONLY EXTRAS
Promo price & miscellaneous
Promo price: open the + control under SALE / unit, enter a positive price, then press Enter or leave the field. It becomes the customer selling price for that equipment line. If it is below the applicable fleet price, confirm the displayed comparison first. Clear the amount or press × to restore the catalog sale and normal price-mode calculation. Collapsing the control keeps an applied price active.
Rebate rules: a manual promo does not create a new manufacturer rebate or certify expired pricing. The existing program limits still apply. A price that misses a required fleet discount can be quoted with a warning and without the affected fleet rebate. The displayed FLEET price stays the reference price.
Miscellaneous: use + Add miscellaneous below Quantity to open the first row. As you enter an item, one empty row opens below it without moving your typing focus. The + button returns to the available empty row; press Enter from a completed price field to move to it. Each row has its own quantity, description and unit price; the row total is quantity × unit price, independently of the mower quantity. Up to 20 entered miscellaneous rows can be attached to each equipment line. The empty row is ignored; an incomplete typed row needs confirmation before quote totals are available.
Tax & financing: miscellaneous amounts use the quote’s current sales tax rate. Their amounts and tax are included in that equipment line’s Sheffield / Synchrony financing estimate. No extra contract fee is created for an accessory row. Miscellaneous does not add fleet units, fleet points or manufacturer rebates.
Dealer profit: open Cost on a miscellaneous row to enter its unit cost. Use $0 for a charge with no direct cost. If the cost is unknown, customer prices and payment estimates remain available, while total dealer profit stays unconfirmed. Equipment cost, rebate and profit per unit remain equipment-only; line profit includes confirmed miscellaneous costs.
For this quote: promo prices and miscellaneous rows stay in the current quote. They do not change shared admin pricing. New Quote clears them; removing an equipment line removes its attached miscellaneous rows. A shared price update preserves these quote inputs and asks for a fresh below-fleet confirmation if the fleet price changes.
DAILY USE
Update models & prices
Models & prices: search a model, edit its details, check the live quote preview, then Review & publish.
New models: select the brand and a fleet / finance profile from the same product family. Enter the new model’s own MSRP, sale price, cost and description. Profile prices and fixed rebates are cleared; new models start as retail. Enable fleet only when its eligibility, points and any published prices / rebate amounts are confirmed. Formula-based programs reuse the chosen profile’s rules.
Wright / STIHL: new fleet models need their published Wright tier 1 price and rebate, or both STIHL maximum credits. Enter additional tiers before using them. Blank advanced fields can mean an original formula or an unavailable amount; they do not imply a zero rebate.
Bulk update: download current prices as CSV, edit the rows you need, and validate before publishing. Up to 250 rows are saved together. Existing blank cells are left unchanged. A new CSV model needs brand, sku, name, description, msrp, sale and cost. New CSV models start as retail; review their fleet settings afterward.
Archive: hides a model from staff search without erasing its prices. A quote already containing it is blocked until the model is restored or replaced.
Shared updates: dashboards check for updates every 15 seconds while visible, when returning to the window and when Refresh prices is pressed. Open quotes recalculate using the new prices. A connection warning means the latest prices could not be verified.
Conflicting edits: if another admin publishes first, your save is stopped. Close the review dialog, click Reload latest, and review again. Your edited fields remain in the draft; other fields load the latest saved values.
Change history: records the confirmed update, admin name and note. Undo restores an update only if the affected models have not been edited again.
Backups: download a JSON backup after important changes. Restore is reviewed, version checked and recorded in history. Backups exclude passwords and sessions and must match this dashboard’s original price-list version.
Password: the supplied password works immediately. You can change it in the panel; changing it signs out every admin session.
Scope
This panel manages models, MSRP, sale price, dealer cost, published fleet amounts, rebates and model validity dates. The existing tax, fleet qualification and Sheffield / Synchrony program rules remain the dashboard’s pricing authority. Lender promotion changes require a program update to the app.
