Emilio Faraoni
A B2B catalogue and ordering system for a Spanish leather-goods manufacturer, built because wholesale buying is not consumer ecommerce: public product discovery, verified business access, protected pricing and structured order requests in one controlled workflow.
Client work B2B SYSTEMS 2026
Context
Emilio Faraoni is a family-run manufacturer based in Elche, producing belts, bags and fashion accessories for professional buyers. Its commercial operation depends on product references, colours, sizes and business-to-business relationships: buyers consult a catalogue of references, while commercial conditions and prices are handled per company rather than through consumer retail. That boundary — public product information on one side, private commercial terms on the other — is the centre of the project.
- Emilio Faraoni
- Leather goods / wholesale
- Wholesale catalogue and ordering system
- Client work
- In development
- 2026
Problem & objective
Wholesale buying behaves differently from consumer ecommerce. A manufacturer cannot publish confidential prices to anonymous visitors, yet buyers still need to browse a real catalogue before any commercial conversation. Business verification, private prices, product variants with references, colours and sizes, and order preparation must work together without exposing commercial information or forcing a retail checkout that does not match how the manufacturer sells.
- Public browsing without disclosing wholesale prices
- Explicit professional approval before pricing access
- Real product references, colours and sizes in a consistent hierarchy
- Order requests without online payment or consumer checkout
- Server-side authorisation and row-level data access controls
Build a digital foundation for professional catalogue consultation and order requests — one controlled workflow for verified companies — reducing reliance on fragmented manual commercial processes without misrepresenting the business as consumer retail.
(03) Plates
Solution & decisions
A custom Astro and Supabase platform with a structured product catalogue, company registration and approval, role-based access for professional accounts, protected pricing and a request-based basket. Open catalogues remain useful to anonymous visitors; confidential terms are introduced only after a company is approved, and orders are submitted for business processing rather than paid online.
Architecture
Astro serves the public editorial surfaces and the catalogue. Supabase provides PostgreSQL, authentication, storage, row-level security and controlled database procedures. Business permissions are checked server-side and enforced in the data layer: company accounts, roles and pricing are separate records from the public catalogue, so the same product can be read publicly while its commercial terms remain restricted to approved accounts.
Design
A restrained, premium editorial presentation reflects leather craft and the manufacturer's origins. Product categories, references and image perspectives remain the primary content structure rather than decorative framing, and the ordering flow stays legible for a professional buyer working through a real reference list.
-
Normalised data in PostgreSQL
Products, variants, references and prices are modelled as related records so catalogue data stays consistent as the reference list grows, instead of duplicating commercial data across pages.
-
Authorisation at the data layer
Access is enforced with Supabase row-level security and server-side checks rather than hidden frontend elements, so protected prices cannot be recovered by inspecting the public page.
-
Public and protected information separated
The catalogue has standalone value for anonymous visitors; restricted terms are introduced only after a buyer is approved, which keeps discovery open without weakening the commercial boundary.
-
No consumer checkout
The workflow reflects how a wholesaler reviews and handles an order instead of forcing a retail payment flow, keeping the system aligned with the manufacturer's real process.
Astro and TypeScript power the presentation and the server-rendered authenticated surfaces. Supabase Auth, PostgreSQL, RPC, RLS and private Storage support professional accounts, catalogue data, access control and order-request records. Company, role and pricing data are stored as their own entities so authorisation can be reasoned about independently of what the interface chooses to display.
Implemented scope
- Public catalogue with hierarchical categories and product variants
- Company registration, account and approval workflow
- Professional roles and permissions for approved accounts
- Restricted wholesale prices for approved accounts
- Persistent basket and B2B order requests
- Administrative review and request management
- Product data and image organisation
Verification & outcomes
The implementation brings catalogue browsing, professional verification, restricted prices and order requests into one controlled B2B workflow, so public discovery and private commercial terms can coexist without exposing confidential prices. Catalogue reconciliation and final operational validation remain in progress, so this case is published as work in development rather than a completed release.
- The manufacturer site is publicly reachable at emiliofaraoni.es
- The homepage presents the public catalogue and a professional-access route
- Catalogue, product detail and professional-access views are implemented in the application
- Astro
- TypeScript
- Supabase
- PostgreSQL
- Vercel