Solution 1
Online sales through the dealer network
The manufacturer's online store does not compete with dealers. It brings buyers to them. On the product page, a retail buyer sees the dealers near them and each dealer's price, and then places an order in one click with pickup at the chosen location at that dealer's price. For the dealers themselves, the same platform works as a wholesale account with their own prices, minimum quantities, delivery and payment, while a retail buyer sees only retail terms.
For the buyer
- A list of dealers right on the product page: address, phone and price at each location. After the buyer enters a ZIP code, the list is sorted by distance.
- The dealer price updates when the buyer picks a product variant, and it is recalculated for bundles.
- The Buy button on a dealer's card adds the product to the cart at that dealer's price, and pickup at that location is already selected at checkout.
- The location can be changed right at checkout, and the price is recalculated for the new dealer. If the buyer chooses delivery, the regular store price applies, and the site warns about this in advance.
- The payment method depends on how the order is received: delivery is paid online, and with pickup the buyer pays the dealer on collection.
For the store team
- A company becomes a dealer with one switch, and map locations are linked to it from a list in a modal window.
- A dealer manages its own locations in its account: address, contacts, coordinates and status. Changes go live on the storefront right away.
- Dealer prices are uploaded as a CSV file through the standard Magento import, with SKU and company validation, and are then available in a separate registry.
- Wholesale prices are calculated automatically: eight discount levels, a separate base price for almost 3,000 products, and about 37,000 group prices recalculated when a product is saved and after every import.
- Shipping and catalog rules tell a dealer from a retail buyer: a minimum order quantity for dealers, delivery under the manufacturer's freight policy with the cost settled in the final invoice, and products that only dealers can see.
How it works
- The dealer price is calculated in the cart as a separate totals step and depends on the selected pickup location. It is stored in the order together with the dealer and the location, and the price model already supports quantity tiers.
- The third-party store locator module is extended without changes to its code: the link between a dealer and a location is kept in a separate table with integrity constraints, and dealer data is added to the location information through plugins.
- The storefront is built on Knockout: a single REST request returns the prices of all dealers for a product or the selected variant, the result is cached, and the distance is calculated in the browser from coordinates.
- Prices are imported through a custom entity of the standard Magento import: data validation, batch writes and a delete mode.
- The customer type is checked by one condition, "customer is a company", built into shipping, restriction, catalog and group rules. A shared company resolver decoupled the logic from a specific B2B module.
