Wholesale catalogues: how a B2B portal is built in Uzbekistan
Wholesale buyers do not shop by photographs. They know the SKUs, work from their own price list, and want a hundred-line order assembled in five minutes.
The core difference: price depends on who is looking
Wholesale has no single price per product. There is a base list, dealer tiers, negotiated terms for individual accounts and volume breaks. All of it must resolve at render time.
Technically it is cleaner to store rules rather than computed prices: base price, plus customer-tier coefficient, plus an individual override. Fix the precedence once and never vary it by section.
Decide up front what anonymous visitors see: base prices, no prices, or no catalogue at all. Closing it entirely kills SEO, so an open catalogue with prices behind login is the usual compromise.
The customer account area
Minimum set: order history with reorder, current balance and outstanding debt, shipping documents, a personal price list exportable to Excel, and named account managers.
B2B registration should not be self-service: an access request is reviewed by a manager, then the account is linked to the counterparty in the accounting system. Otherwise you accumulate junk accounts with no contract.
Client companies often have several people: a buyer assembles the order and a manager approves it. Roles with approval rights inside one account are a standard requirement, cheaper to build in than to bolt on.
Fast ordering instead of browsing
Wholesale buyers need list entry by SKU: paste a column of codes with quantities from their own file and get a ready cart. That is the dominant scenario, not paging through product cards.
Add Excel and CSV order upload with a clear error report: which SKUs were not found, where quantity is not a multiple of the pack. Silently dropping rows is a reliable source of disputes.
Pack multiples and minimum order quantities must validate in the cart, not at invoicing. A product boxed in twelves cannot be ordered as five, and the buyer should learn that immediately.
Stock, reservations and lead times
Wholesalers need quantity and location, not a binary in-stock flag: available in Tashkent, out in the region, shipment expected. Show the per-warehouse breakdown where several exist.
Sync stock with 1C every 10–15 minutes and reserve on order confirmation. On large orders a discrepancy between site and warehouse costs far more than in retail — a whole truckload fails to ship.
For made-to-order lines, show the expected lead time. Its absence forces a call to the manager, defeating the portal's purpose of unloading the sales team.
Payment, documents and credit terms
Wholesale pays by invoice and bank transfer; card gateways like Payme or Click serve small orders and deposits. The portal should generate a payment invoice immediately after order confirmation.
Deferred payment and credit limits are standard practice. The portal shows the available limit and can block new orders when overdue, but that block must stay configurable rather than hardcoded.
Publish documents — invoices, delivery notes, reconciliation statements — into the account automatically from the accounting system. That usually saves the finance team more time than online ordering itself.
Performance, SEO and budget
Catalogues with tens of thousands of items need server-side pagination, database indexes tuned for filters and cached results. Personalised prices cannot be cached — split the cache into a shared part and a price part.
Keep public product pages indexable with Product structured data: a significant share of B2B customers arrive by searching a part number or model name.
A B2B portal with accounts, personalised pricing and 1C exchange typically runs 40,000,000 to 120,000,000 UZS depending on integration depth and role count. The main schedule risk is the state of reference data in the accounting system.