# Store Management
> **One canonical product catalogue per store, linked to payments — so every quote, chat, and invoice uses the same numbers.** > **TL;DR** > > * **What it is —** a storefront and product-catalogue admin inside your workspace. Define your stores, build catalogues with pricing, tax codes, inventory, and images, and link each store to a payment account. > * **Who it's for —** account owners and admins who sell products or services through chat conversations. > * **Top outcome —** when a team member quotes a price on WhatsApp, it's the same price the guest pays at checkout — no drift, no typos, no refund loops. ## At a glance | | | | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Plan tier** | All paid tiers. | | **Who can configure stores** | Account Owner and Admin. | | **Scope** | Workspace-wide. Each store stands on its own; products live inside a store. | | **Integrations** | Links to [Razorpay Submerchants](razorpay.md) for payment collection. Image uploads are hosted securely in the cloud. Tax codes are auto-matched to current rates for Indian GST. | | **Top limits** | Store URL slug up to 20 characters, unique across all of Lodgestory. Up to 40 images per product, 10 MB per image. Product SKU unique within a store. | | **API** | Yes — available under the partner API. | ## How to find it **Breadcrumb:** Settings → Store Management. **Direct URL:** `https://app.lodgestory.com/crm/settings/stores` \[SCREENSHOT: store-management-nav.png — Settings sidebar with Store Management highlighted] ## What is Store Management? ### The problem it solves If you sell products or services and run customer conversations on Lodgestory, you need a product catalogue on the same platform. Keeping the list in a separate point-of-sale or e-commerce tool and copy-pasting names and prices into chats leads to drift, typos, and the inevitable refund conversation where the price a team member quoted doesn't match what the checkout actually charged. Store Management keeps that catalogue in Lodgestory itself — versioned, tax-coded, inventory-tracked. Every chat, every payment link, every invoice references the same canonical entry. When you update a rate, every future quote uses the new number automatically. ### What you get * **Multiple stores per workspace.** A hospitality operator might run one store per villa; an F\&B operator one per restaurant branch. Each store carries its own address, contact info, operating hours, and assigned manager. * **Rich product records.** Every product carries a name, description, SKU, external ID, price, discount, currency, tax code (HSN/SAC for Indian GST with rate auto-looked-up), inventory count, category and sub-category, tags, weight, dimensions, and optional delivery and payment metadata. * **Up to 40 images per product.** One image flagged as the featured thumbnail; the rest form a gallery. 10 MB per image. * **Live availability.** When a product's inventory hits zero, Lodgestory flips it to *Out of stock* automatically — and the product is suppressed in public surfaces. You can override manually for pre-orders. * **Two-level categorisation.** Pick a predefined category and sub-category, or add your own. Categories are reusable across products inside a store. * **A payment account per store.** Point each store at its own Razorpay submerchant so every payment link generated against that store settles into the right account — helpful for multi-outlet and multi-brand operations. * **A public store URL.** Every store gets a short, readable URL slug — for example `stores.lodgestory.com/villa-bliss` — so you can share a browsable storefront directly with guests. ### How it's different * **Commerce is a first-class CRM feature, not a separate app.** Most CRMs defer product data to an external point-of-sale tool. Lodgestory keeps everything in one place, so bot journeys, campaigns, and the inbox composer can all reference your SKUs with no integration work. * **Indian GST is built in.** Enter an HSN or SAC code on a product and the tax rate is looked up automatically, matching how Indian operators actually track compliance. No hunting for the current rate. * **Inventory-driven availability.** Stock reaches zero, the product auto-hides. No separate "publish" toggle to remember. * **Multi-store, multi-brand friendly.** Each store has its own payment account, its own manager, its own URL slug. Brand A and Brand B run side by side cleanly. ### Customer scenarios * **A villa operator's pricing book.** One store per villa. Products are the pricing variants — *Standard room*, *Garden view*, *Pool villa*. Team members quoting on WhatsApp pull fresh prices from the store. When the operator changes a rate at the end of the month, every future quote uses the new number without anyone remembering to update a note. * **An F\&B multi-outlet setup.** One store per outlet. Products are menu items with their own HSN codes and tax rates. Order-taking team members in the inbox reference the right SKU; payment links land in the right Razorpay submerchant per outlet; the end-of-day totals roll up cleanly. * **Retail with live inventory.** Each product has a live stock count. A bulk update (from a spreadsheet or a script) keeps counts fresh as stock arrives and leaves. Out-of-stock products hide themselves; team members never quote something you can't actually deliver. ### How it fits with the rest of Lodgestory * **[Razorpay Submerchants](razorpay.md)** — each store links to one submerchant account. Payment links generated against that store settle into the linked account. * **[Bot Journeys](bot-journeys.md)** — a journey can fetch product data from your catalogue and show guests a list or card message with SKUs, prices, and images. * **[Campaigns](../workspace/campaigns.md)** — campaigns can reference product fields in their messages (with a little setup), so "limited-time offer on the Garden View room" goes out with the correct live price. * **[Home / Unified Inbox](../workspace/home-unified-inbox.md)** — the composer has easy access to your catalogue when your team member needs to reference a product in a reply. ## Core concepts | Term | What it means | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | | **Store** | One shop, restaurant, villa, or outlet. Has a name, address, operating hours, a manager, and a public URL slug. | | **Product** | An item in a store's catalogue with price, tax code, inventory, category, and images. | | **SKU** | A unique code for a product inside its store. You define the format. | | **External ID** | An optional code unique across your workspace, typically used when you sync products with another system. | | **HSN/SAC code** | The Indian GST classification code. Enter it and the tax rate is looked up automatically. | | **Featured image** | One image per product marked as the primary thumbnail in lists. | | **Payment account link** | The connection between a store and a Razorpay submerchant. Payments collected for the store's products flow into this account. | ## Quick Start — your first store and product in ten minutes ### Step 1 — Open Store Management Settings → Store Management. \[SCREENSHOT: stores-qs-1-list.png] ### Step 2 — Click **+ New Store** Fill in: name, description, physical address (or mark it as digital), phone, email, operating hours on a weekly grid, the manager (picked from your [Team Members](team-members.md)), and an optional store image. You can also link a payment account here — we'll come back to that if you haven't set one up yet. Lodgestory creates a URL slug from your store name; you'll see it on the form so you can bookmark or share the storefront URL. \[SCREENSHOT: stores-qs-2-new-store.png] ### Step 3 — Save the store The new store appears in your list with the URL slug underneath. ### Step 4 — Open the store and add a product Click the store to open it. Go to the **Products** tab and click **+ Add Product**. The form is split into sections: basic info (name, SKU, external ID), pricing (price, discount, currency), tax (HSN or SAC code with auto-rate), inventory (count, available-or-not), categorisation, dimensions, and delivery metadata. \[SCREENSHOT: stores-qs-4-new-product.png] ### Step 5 — Upload product images Drag-and-drop up to 40 images. Star one as the featured thumbnail. Images upload straight from your browser to secure cloud storage — no waiting on the server. ### Step 6 — Save the product The product appears in the store's catalogue. Toggle *Available* off to hide it from public surfaces without deleting. ### What's next * If you haven't already, link the store to a payment account — see [Razorpay Submerchants](razorpay.md). * Wire products into a chat flow with [Bot Journeys](bot-journeys.md) so guests can browse your catalogue inside WhatsApp. ## How it works Each store is a self-contained catalogue with its own settings, products, and payment account link. Workspaces can hold as many stores as you need. 1. An admin creates a store with its core details — name, address, hours, manager, image, optional payment account. 2. Lodgestory generates a short URL slug from the store name. If the slug collides with an existing one, a number suffix is appended automatically. 3. Inside the store, admins add products one by one — or import them via the API for bulk setups. 4. Product tax rates are looked up from the HSN or SAC code as the admin enters it. Inventory counts drive the *Available* flag automatically. 5. Images upload directly from the browser to secure cloud storage. The server never touches the file — your uploads stay fast even when images are large. 6. Downstream modules (bot journeys, campaigns, the inbox composer) reference this catalogue. When you change a price, the next quote anywhere uses the new number. 7. Payment links generated against the store settle into the store's linked payment account. ## Features in depth ### The store list Each store shows up as a card with its name, store type (physical or digital), product count, payment-linked status, and image. Search by name or URL slug; filter by active or inactive; sort by name or creation date. ### The store settings form Divided into sections: basic info, address, operating hours as a weekly grid, payment account, analytics shortcuts, and metadata. The URL slug is editable only at creation time — once set, it's stable so any shared storefront links keep working. ### The product form A twelve-section form covering: * **Basic info** — name, SKU, external ID. * **Description** — rich text. * **Pricing** — price, discount (for example *10.00%*), currency. * **Tax** — HSN or SAC code with auto-looked-up rate for Indian GST. * **Inventory** — count, plus a toggle to force *Available* manually if needed. * **Categorisation** — primary category, sub-category, tags. * **Dimensions** — width, height, depth. * **Weight** — in grams. * **Payment metadata** — any structured data your payment flow needs. * **Delivery metadata** — any structured data your delivery flow needs. * **Media** — your image gallery. * **Variants** — coming soon. Each section is collapsible. Validation runs per section so you know exactly what's incomplete. ### The media manager Drag and drop images into the grid. Reorder by dragging. Click the star to set a featured thumbnail. Click the trash can to remove. Up to 40 images per product, 10 MB each. The first image you upload is automatically marked as featured if you haven't picked one. ### Categories Two-level — category and sub-category. You can pick from predefined values or add your own at product-create time. New values you add are saved for reuse across every product in your workspace. ### Active and inactive Every store has an active toggle. Inactive stores disappear from public storefront URLs and bot-journey lookups; existing products keep their data. Use this to retire a store cleanly without deleting your history. ### The public storefront URL Every store gets a short, shareable URL at `stores.lodgestory.com/{your-slug}`. Share it with guests directly, or link to it from a bot journey. The slug is unique across all of Lodgestory, so it's safe to share outside the app. ## Roles and permissions | Action | Account Owner | Admin | User | | --------------------------------- | :-----------: | :---: | :-------------: | | View stores and products | Yes | Yes | Yes (read only) | | Create, edit, delete a store | Yes | Yes | No | | Create, edit, delete a product | Yes | Yes | No | | Upload and manage product images | Yes | Yes | No | | Link a store to a payment account | Yes | Yes | No | ## Connections * **[Razorpay Submerchants](razorpay.md)** — each store can link to one payment account. Payment links for that store's products settle into this account. * **[Bot Journeys](bot-journeys.md)** — journeys can fetch products and present them as lists, cards, or carousels inside chats. * **[Campaigns](../workspace/campaigns.md)** — campaigns can reference product fields in their outbound messages. * **[Home / Unified Inbox](../workspace/home-unified-inbox.md)** — the composer has access to your catalogue when a team member is quoting in a conversation. * **[Contacts](../workspace/contacts.md)** — no direct link today, though a future extension lets you tag contacts by their store of interest. ## Limits a user will run into | Limit | Value | | ------------------------------------------------- | ---------------------------------------------------- | | Store URL slug length | Up to 20 characters, unique across all of Lodgestory | | Images per product | Up to 40 | | Size per image | Up to 10 MB | | SKU uniqueness | Within a store | | External ID uniqueness | Across your workspace | | Payment link minimum (via linked payment account) | 100 paise (₹1) | ## Errors and FAQ ### You might see * **"Store URL already taken"** — the slug generated from your store name is in use. Lodgestory retries with a number suffix automatically; if you want a specific slug, tweak the store name slightly. * **"SKU already exists in this store"** — pick a different SKU within this store. * **"External ID already exists in this workspace"** — pick a different external ID or reuse the product that already has it. * **"Image is over 10 MB"** — compress and re-upload. * **"Image format not supported"** — use JPEG, PNG, or WebP. * **"HSN/SAC code not recognised"** — double-check the code you entered; the auto-lookup doesn't have a match. ### FAQ **Can I sync my product catalogue with WhatsApp Commerce?** Not today. Lodgestory's catalogue is a data source within the product — it feeds bot journeys, campaigns, and the inbox. Pushing the catalogue out to Meta's WhatsApp Commerce surface is on the roadmap. **Why is discount stored as a string like **`"10.00%"`** rather than a number?** To preserve authoring intent — `"10%"` and `"10.00%"` look different to a human. Lodgestory normalises internally when it does arithmetic. **How does inventory auto-availability work if I want to accept pre-orders with zero stock?** Set the inventory count to zero, then toggle *Available* back on manually. The manual override stays in effect until the next inventory save. **Can I have products that don't belong to any store?** No — every product sits inside a store. If you want a workspace-wide catalogue, create one "master" store and keep everything there. **Is image upload going through the server?** No — uploads go directly from your browser to secure cloud storage. This keeps large-image uploads fast and doesn't wait on the server. **Can I set different prices for the same product in different stores?** Yes. Each product lives inside exactly one store. If the same physical item is sold by two outlets with different pricing, create it in each store's catalogue with the price specific to that outlet. **Does the store's public URL change if I rename the store?** No — the URL slug is generated from the original name and stays stable. Rename freely; the slug stays put so existing links don't break. If you need a different slug, delete the store and re-create it. **Can I export my catalogue?** The partner API lets you fetch your full catalogue programmatically. A file-based export from the UI is on the roadmap. ## API Store Management is available via the Lodgestory partner API for organisations that want to manage stores and catalogues programmatically. Ask your Lodgestory point of contact for credentials and the current reference; endpoints cover store and product creation, listing with search, updates, product image uploads, category management, and inventory adjustments. ## ## Related modules and next steps * [Razorpay Submerchants](razorpay.md) — link each store to its own payment account. * [Bot Journeys](bot-journeys.md) — show products inside chats and let guests browse. * [Campaigns](../workspace/campaigns.md) — run product-referencing broadcasts. * [Home / Unified Inbox](../workspace/home-unified-inbox.md) — quote products directly from live conversations.