


















BGV Mayorista
B2B Wholesale E-Commerce with an AI Assistant
Cordoba, Argentina
Visit live site- Role
- Full-stack Engineer
- Engagement
- Client work
- Industry
- Wholesale distribution • B2B E-commerce
- Timeline
- 6 weeks
- Year
- 2026
Overview
BGV Mayorista is the online store of a household-goods distributor that sells to retailers by the closed pack. The catalog is public, but prices and purchasing are reserved for businesses with an approved wholesale account, so the site works both as a showcase that attracts new retailers and as the ordering channel for existing ones. It runs on the rules of the trade: a minimum order, pack multiples, optional per-item single-unit sales and per-customer discounts.
Any visitor can browse the catalog by category and search by product code. A retailer that signs up (user and company are created together, with tax ID and tax status) starts seeing prices with its own discount, builds a cart by pack or by single unit, and pays with Mercado Pago or by bank transfer with a 5% discount, then follows its orders from the profile. An AI assistant answers questions about the catalog and the purchase conditions, and saves interested retailers as leads.
The BGV team runs everything from an admin panel: products with photos whose background is removed on upload, drag-and-drop category ordering, orders with fulfilment and shipping status, coupons, bank details and statistics. They also edit the site's copy and images without a deploy, and manage the assistant's conversations, leads, knowledge base and settings. The project is a monorepo with two apps, Next.js and Express, connected through npm workspaces.
The challenge
A wholesaler cannot publish open prices like a retail store. The price list is for businesses, each customer can have its own terms, and orders follow rules a standard e-commerce does not cover: a minimum purchase, closed-pack sales and a surcharge for single units. At the same time, the catalog has to stay visible to bring in new retailers.
The system solves it with a single price-visibility rule applied when products are serialized. A viewer middleware that never rejects a request resolves who is looking, so an anonymous visitor or a revoked token sees the catalog without values, while purchasing goes through a separate middleware that requires an approved company. Commercial rules such as the minimum order and approval requirements live in a configuration table and change without a deploy. Pack multiples, single-unit prices and each company's discount are stored in the model and recalculated on the server, and order lines keep the price and sale mode at the moment of purchase.
The data model explains why it was built custom: the company is separate from the user, the sale mode is an attribute of each cart line, discounts are per company, and the AI assistant must never reveal prices. Those rules are hard to build on top of a generic e-commerce platform.
Links
GitHub Repository
Private — client project