‹every-shop

every-shop

all docs

Every shop, one system — the merchant coverage model

How Zero brings every shop and establishment in an Indian market online without writing a class

per shop. This is the reuse-first mandate applied to merchants: the *engines* are fixed and shared;

a *shop* is DATA. Read commerce/DOMAIN.md, practice/DOMAIN.md and optician/DOMAIN.md first — this

doc ties them into one story and shows the whole India map. The machine-readable catalog of kinds is

[docs/shop-kinds.jsonl](shop-kinds.jsonl).

1. The claim this doc proves

Nothing you pass in a market — kirana, chemist, dentist, tailor, optician, salon, coaching class,

electrician, sweet shop, garage, CA, florist, mobile-repair, gym — is outside Zero's purview, and

covering them does not mean a class each. Three shipped structures cover the entire spectrum:

Structure

Role

It is

Already shipped as

commerce

the goods engine — storefront, catalog, cart, order ledger, fulfilment, delivery

parent = thing

grocery, pharmacy, eatery, shop (bright store), eyewear

practice

the services engine — service catalog, intake, engagement ledger, AI drafts, a licensed human certifies

parent = company

ca, cs, legal, vcfo, optometry

company (umbrella)

composes a commerce unit + a practice unit for a hybrid business

parent = thing

optician (eyewear store + eye-exam clinic)

Plus the doctrine that stops the market fragmenting: thing.market — one provider per business kind

(the monopoly map). A demand routes to a single incumbent per kind, never a duplicate.

2. The golden rule — reuse the ENGINE, describe the SHOP as DATA

A shop is its identity + a catalog (goods) or a service list (services) + a knowledge

base. All three are data. The engine — the cart, the order lifecycle, the AI assistant, the

engagement/sign-off flow, the delivery hand-off — never changes. A "medical store", a "hardware store"

and a "sweet shop" are the *same* commerce engine with different catalog.jsonl + persona + identity.

If you find yourself copying an engine action to make a new shop, stop — you are duplicating. The shop

is the data on top; the engine is reused verbatim.

3. Three ways to bring a shop online — cheapest first

Pick the lightest that fits. Most shops never need a class.

1. Instance — no class, no folder (the default). For *one* shop: create an object whose

object.data sets class = commerce (or class = practice) plus the identity overrides, and drop

its own catalog.jsonl / services.jsonl into the object's data dir. commerce/_cat_src and the

practice loaders read the object's own file first (see the REUSE note in commerce/defaults.data:11

and practice/defaults.data:12). Zero new code, zero new folders. This is how the long tail of shops

comes online.

2. Data subclass — one folder (only for a reusable KIND). When a *kind* recurs — you will stamp many

groceries, many pharmacies, many opticians — and a curated shared catalog + kb genuinely helps, make

a folder: parent = <engine> + catalog.jsonl/services.jsonl + kb.md + identity. That is exactly

what grocery / pharmacy / eyewear / optometry are. No engine code, ever.

3. Umbrella composition — one company (only for a hybrid). When a business sells goods and

delivers services under one roof, make a company folder whose found seeds a commerce unit + a

practice unit, born unclaimed and org-linked. The mold is optician (optician/DOMAIN.md); copy it.

4. The decision rule

graph TD

A[A shop / establishment] --> B{Sells physical products?}

B -- yes, only --> C{One shop or a whole kind?}

C -- one shop --> C1[Instance: class = commerce + its catalog]

C -- a kind --> C2[Data subclass: parent = commerce]

B -- no, it delivers a booked / certified service --> D{One firm or a whole kind?}

D -- one firm --> D1[Instance: class = practice + its services]

D -- a kind --> D2[Data subclass: parent = practice]

B -- both goods AND services --> E[Umbrella company: found seeds a commerce unit + a practice unit -- optician pattern]

• Goods, no appointment/certification → commerce.

• A booked / scheduled / regulated service, where a licensed human signs off (a prescription, a

treatment record, a filing, an inspection) → practice.

• Both under one roof → company umbrella (the optician mold).

• One shop → instance. A kind you will repeat → data subclass.

5. Legal form is metadata, never a class

Proprietorship, partnership, firm, LLP, Pvt Ltd, OPC, HUF, co-operative, trust/society — all

the *same* class. They differ only in the per-object fields legal_form / gstin / reg_no (the

company engine already carries the entity model; see optician/defaults.data). Never fork a class

per legal form — an LLP optician and a proprietorship optician are both optician, one field apart.

6. Claim-first onboarding — how a real shopkeeper gets on

The go-to-market funnel needs no per-shop code:

1. A real shop is pre-seeded as an unclaimed draft (thing/_seed_actor → unclaimed = 1).

2. The owner downloads zero, finds their shop, and taps Claim (thing.claim) — the twin binds to the

real entity; the landing flips ✎ Unclaimed draft → 🔗 real.

3. They manage everything from the cockpit they inherit for free (chief-of-staff, orders/engagements,

catalog, care, money).

The verified-ownership ceremony (the real entity cryptographically proving itself on the mesh/identity

rails before the link is trusted) is the deliberate next step; thing.claim records the link the owner

asserts and is the seam those rails plug into.

7. One provider per kind — no duplication in the market

thing.market is the monopoly map: each business kind has exactly ONE provider in the system, so a

buyer's demand routes to a single incumbent and matchmaking (thing.match / discover) never fans a

request to duplicates. The shop-kinds registry below IS the set of kinds a provider can claim.

8. The India coverage map

Every sector of an Indian high street, mandi, market complex or service economy, mapped to an engine.

Rows marked with a class use the shipped curated class; all others are an instance of the named

engine (no folder needed). The exhaustive, machine-readable list — with starter categories/services per

kind — is [docs/shop-kinds.jsonl](shop-kinds.jsonl).

Goods retail → commerce

Kirana/general store (grocery) · supermarket · department store · wholesale / cash-&-carry · dairy &

milk booth · paan shop · bakery & confectionery · sweet shop (mithai) · namkeen & snacks · dry fruits ·

spice shop · butcher / meat · fish & seafood · fruit & vegetables (sabzi) · organic store · clothing &

apparel · saree shop · footwear · bags & luggage · jewellery · imitation jewellery · watches · cosmetics

& beauty · perfume · mobile phone shop · electronics · computers & laptops · home appliances · electrical

goods · hardware & sanitary · paint shop · building materials · furniture · home furnishings & décor ·

kitchenware & utensils · glass & aluminium · books · stationery · gift shop · toys · sports goods ·

musical instruments · auto parts & spares · tyre shop · vehicle accessories · seeds / fertiliser / agri

inputs · nursery & plants · florist · pet shop & supplies · optical (eyewear) · chemist / pharmacy

(pharmacy) · surgical & medical supplies · ayurvedic / herbal store · nutrition & supplements · LPG /

gas agency · pooja & religious items · handicrafts · fabric & textiles.

Food service → commerce (eatery) / restaurant

Restaurant (restaurant/eatery) · dhaba · café · cloud kitchen · tiffin / mess service · juice bar ·

food truck · sweet-&-snacks counter · bakery-café · ice-cream parlour.

Health services → practice

Dental clinic · doctor / GP clinic · eye clinic (optometry) · diagnostic lab & pathology ·

physiotherapy · ENT / specialist clinic · dermatology / skin clinic · veterinary clinic · dietician /

nutrition counselling · mental-health / counselling · dental lab · vaccination / immunisation clinic.

Personal care (by appointment) → practice

Salon & beauty parlour · barber / men's grooming · spa & wellness · makeup artist · tattoo & piercing ·

mehndi artist · nail studio.

Professional firms → practice

Chartered accountant (ca) · company secretary (cs) · law firm (legal) · virtual CFO (vcfo) · tax

& GST consultant · architect · interior designer · structural / chartered engineer · insurance advisor ·

real-estate agent · financial advisor / wealth · notary · patent & trademark agent · surveyor / valuer ·

recruitment / manpower agency.

Trades & repair services → practice

Electrician · plumber · carpenter · painter · AC & refrigeration · appliance repair · mobile repair ·

computer repair · watch repair · cobbler · tailoring & alteration · RO / water-purifier service · pest

control · packers & movers · car service / garage · two-wheeler service · welding & fabrication ·

CCTV & security installation · borewell / motor repair.

Education & coaching → practice

Tuition / coaching centre · music school · dance school · driving school · computer training · language

classes · art & craft classes · yoga studio · gym & fitness (often hybrid — see below) · preschool &

daycare · abacus / vedic-maths · sports academy.

Events & hospitality services → practice

Photographer & videographer · event management · caterer · decorator · DJ & sound · wedding planner ·

travel agent · tour operator · priest / pandit services · tent & furniture rental.

Everyday services → practice

Laundry & dry cleaning · courier / parcel agent · printing / photocopy / DTP · cyber café & CSC (online

government services) · photo studio · key maker & locksmith · astrologer · scrap & recycling dealer.

Hybrid — goods and services → company umbrella (optician mold)

Optician (optician) · dental clinic + dental supplies · salon + retail products · gym + supplements ·

vet clinic + pet shop · mobile shop + repair · computer shop + repair · watch shop + repair · cycle shop

• service · auto shop + garage · tailoring shop + fabric retail · ayurvedic clinic + herbal store ·

physiotherapy + orthopaedic supplies · photo studio + camera retail · music shop + classes.

Larger establishments → company / conglomerate

Supermarket chain · hospital (departments as units) · hotel · school / institute · petrol pump ·

bank / NBFC branch · clinic chain · franchise HQ · mall / market association. Each is a company (or

conglomerate) that composes the shop engines above as units — the quickcommerce.found pattern.

9. What we deliberately did NOT do

We did not create ~150 classes. The registry is data; any kind is instantiated on demand as an

instance of commerce / practice, or via the optician-style umbrella for a hybrid. New curated

classes are added only when a kind recurs often enough that a shared catalog/kb earns its keep — the

reuse-first mandate, applied to the whole market.