Software AI Business Management System Custom ERP Software Custom CRM Software Manufacturing ERP Software Jewellery Software Diamond Software Replace Excel & Tally Yukti AI CRM (product) Automation & AI AI Automation Agency in Surat WhatsApp Automation WhatsApp AI Chatbot AI Agents Voice AI Agents Workflow & n8n Automation GeM Tender Automation AI Consulting Web & Apps Web & Mobile Apps Shopify Store Development Industries Diamond & Jewellery Manufacturing Textile & Apparel Retail & E-commerce Logistics & Transport Travel & Tourism Real Estate Healthcare & Pharma All industries Company Work / Case Studies About Blog AI Automation Cost Free SEO Audit Contact
Case study · Multi-marketplace inventory & dispatch

One stock truth across Amazon, Flipkart and Shopify — a ledger-based inventory system

How Yukti AI replaced Excel with a real inventory and dispatch system for Backdrop India, a manufacturer selling 2,200+ product variants across three marketplaces — automated order-file ingestion, a mapping layer for messy marketplace SKUs, a stock model where every change is an auditable ledger entry, and one Ready to Dispatch queue.

Backdrop India manufactures photography backdrops and sells them on Amazon, Flipkart and Shopify with over 2,200 variants. Stock lived in Excel, each marketplace used different, often misspelled SKUs, and orders were reconciled by hand. Yukti AI built a system with one internal variant catalogue, a channel-SKU-map that translates each marketplace's messy identifiers, n8n workflows that parse the order files each channel exports, a combined dispatch queue, and a ledger-based stock model — stock is never edited directly; it is derived from every dispatch, return and adjustment.

Executive summary

Quick facts

ClientBackdrop India
IndustryManufacturing + e-commerce — photography backdrops
Scale2,200+ product variants (774 products), sold on Amazon, Flipkart and Shopify
Core challengeStock in Excel; three marketplaces with inconsistent, misspelled SKUs; orders reconciled by hand; no audit trail on stock
SolutionCustom ledger-based inventory & dispatch system with automated marketplace order ingestion
Key componentsInternal variant catalogue, channel-SKU-map, per-marketplace n8n parsers, Ready to Dispatch queue, stock ledger, returns handling, hold / priority states, analytics
Stock modelStock is never edited directly — every dispatch, return and adjustment is a ledger row; the count is derived
SKU handlingNo assumed matches — every marketplace line resolved via the channel-SKU-map; unmatched lines go to a manual queue, never dropped
StackStatic HTML / CSS / JS frontend, ApexCharts, Supabase (PostgreSQL, triggers), n8n
ResultOne stock truth across three channels; orders ingested automatically; a fully auditable inventory; a single dispatch queue
The business

Selling the same product in three places, none of which agree

Backdrop India makes photography backdrops — fabric-printed, in many sizes and designs — 774 products and over 2,200 sellable variants. The same physical piece is listed on Amazon, on Flipkart and on the company's own Shopify store. Each of those platforms has its own idea of what that piece is called.

Amazon's SKU for a design might be spelled one way; Flipkart's another; Shopify might not carry a SKU at all, just a title. So when an order comes in from each channel, someone has to work out which of the 2,200+ internal variants it actually refers to, deduct that from a stock figure in a spreadsheet, and hope nothing was missed. Multiply that by three channels and hundreds of orders, and the spreadsheet is always slightly wrong — which means overselling, cancelled orders and marketplace penalties.

Why this matters for the software

A multi-marketplace inventory system's whole job is to be one stock truth that every channel draws from — and to translate each channel's messy language into that one truth without a human doing the lookup every time.

The challenge

What Excel could not do

  • "Every marketplace calls the product something different." Misspellings, different formats per channel, and Shopify sometimes with no SKU at all.
  • "Orders are matched to stock by hand." A person deciding which internal variant each marketplace line means, hundreds of times a day.
  • "When the stock number is wrong, there's no way to know why." A spreadsheet cell has no history.
  • "Held orders get lost." Orders with a payment or address problem sat in limbo with nothing to bring them back.
  • "There's no combined view." "What do we need to pack today" meant checking three places.
Before → after

How dispatch day changed

Before

  • Stock figures maintained in Excel
  • Marketplace SKUs matched to variants by a person
  • Orders checked across three platforms separately
  • Stock edited directly — no history when it went wrong
  • Held orders had no path back into the flow

After

  • One internal variant catalogue; one derived stock count
  • Channel-SKU-map resolves every marketplace line automatically
  • One Ready to Dispatch queue across all channels
  • Every stock change is a ledger row — full audit trail
  • Released held orders flagged priority, surface to the top
The decision

Why a custom build, not an off-the-shelf inventory app

There are multi-channel inventory tools. They tend to assume tidy, matching SKUs, charge per order or per channel, and give you their dashboard and their stock model. Backdrop's reality — hundreds of variants, three channels that each name products differently, Shopify orders with no SKU at all — is exactly where a generic tool needs constant manual correction. A custom build made the messy-SKU handling and the auditable ledger the core of the system, not a workaround.

What a multi-marketplace manufacturer needsOff-the-shelf inventory appThe system we built
Handle misspelled / missing marketplace SKUsAssumes clean matches; mismatches error outchannel-SKU-map + manual queue, nothing dropped
Auditable history of every stock changeUsually a single editable numberLedger-based — count is derived, never edited
Parse each marketplace's own order fileGeneric import, breaks on format quirksA dedicated n8n parser per channel
One dispatch queue across channelsOften per-channel viewsOne combined Ready to Dispatch list
Held-order recoveryManualHold state + priority flag on release
CostPer order / per channel, monthlyOne-time build, then a small annual charge

Want a system like this for your business?Tell us how your business runs today and we’ll show you what one system would replace. Free workflow audit, reply the same day.

Get a free workflow audit
Solution architecture

From a marketplace file to an updated stock count

Marketplace order files
Amazon & Flipkart spreadsheets, Shopify CSV
n8n parser (per marketplace)
Reads the file, extracts each order line
channel-SKU-map lookup
Messy marketplace SKU / title → internal variant — unmatched go to a manual queue
Orders + order items
Inserted into the database, with hold / priority states
Ready to Dispatch queue
One combined list; dispatch click → database trigger
Stock ledger → inventory
Dispatch / return / adjustment rows; the count is derived, never edited
What we built

The components

The internal variant catalogue

One record per real sellable variant, with a consistent internal SKU format ([PREFIX]-[PRODUCT]-[SIZE], e.g. BI-RHA-5x6). This is the single catalogue every channel maps back to. Benefit: there is exactly one answer to "what is this product", regardless of which marketplace an order came from.

The channel-SKU-map

A mapping table from each marketplace's SKU or title to the internal variant. The system never assumes a direct match — every marketplace order line is resolved through this map. Anything that doesn't match goes to a manual-mapping queue, where a person maps it once and every future order for that SKU flows automatically. Benefit: no order is ever silently dropped because a marketplace spelled something wrong.

Per-marketplace order ingestion (n8n)

An n8n workflow per channel reads the order file that channel exports — Amazon and Flipkart as spreadsheets, Shopify as CSV — maps each line through the channel-SKU-map, and inserts the orders and order items into the database. Benefit: orders arrive in the system without anyone typing them in.

The Ready to Dispatch queue

One combined list of everything ready to pack, across all three channels. Orders with a payment or address problem sit in a hold state; when a held order is released, it is flagged priority so it surfaces to the top of the queue and triggers a notification. Benefit: the packing team works one list, and nothing that was held is forgotten.

The stock ledger

The heart of the system: stock is never changed directly. Every movement — a dispatch, a return, a manual adjustment, a production addition — is a row in the stock ledger, and the current inventory count is derived from that ledger. All stock-affecting writes go through a database function, never ad-hoc updates from the frontend or from n8n. Benefit: when a number looks wrong, the exact history of what changed it is right there — and it usually isn't wrong.

Dispatch & returns

Clicking dispatch on an order fires a database trigger that writes a dispatch entry to the ledger, updating the derived count. A received return writes a return entry the same way. Benefit: stock moves as a consequence of a real action, not a separate bookkeeping step.

Analytics

Reporting on stock levels, dispatch volume and channel performance, with ApexCharts. Benefit: the picture across all three marketplaces on one screen.

The AI & automation layer

Where AI extends a multi-marketplace inventory system

Backdrop's build is automation-first — the marketplace ingestion and the trigger-driven ledger already remove most of the manual work. An AI layer, added on top, works from the same clean data:

  • SKU-match suggestions — for the manual-mapping queue, the AI proposes the most likely internal variant for an unmatched marketplace SKU or title, so a person confirms rather than searches.
  • Reorder / production alerts — which variants will run out based on the sales rate across all channels, before they do.
  • Anomaly detection — a sudden spike in returns on one design, a channel whose order pattern changed, a variant selling far above its norm.
  • Plain-language questions — "which designs are overstocked", "what's our dispatch backlog by channel", "which variants had the most returns last month".
Automation workflows

What runs without anyone pressing a button

Marketplace order file → orders in the system

Amazon / Flipkart / Shopify order file
n8n parser reads it (per channel)
channel-SKU-map → internal variant
Orders + items inserted
Ready to Dispatch queue

Dispatch click → auditable stock change

Pack team clicks dispatch
Database trigger fires
Dispatch row written to stock ledger
Derived inventory count updates

Held order released → jumps the queue

Payment / address issue resolved
Order un-held
Flagged priority
Surfaces to top of dispatch queue + notification

Unknown marketplace SKU → nothing lost

Order line has no map entry
Sent to the manual-mapping queue
Mapped once by a person
All future orders for that SKU flow automatically
Implementation process

How it was built

STEP 1

Model the catalogue & the ledger

One internal variant catalogue with a consistent SKU format, and a stock-ledger schema with the rule that no stock value is ever written directly.

STEP 2

Wire the frontend to real data

The approved static frontend connected to Supabase — edited in place, not rebuilt — with all stock writes routed through a database function.

STEP 3

Build the SKU-map & ingestion

The channel-SKU-map, then an n8n parser per marketplace that reads the order file, maps each line, and inserts orders — with unmatched lines to a manual queue.

STEP 4

Dispatch, holds & triggers

The Ready to Dispatch queue, hold and priority states, and the database triggers that turn a dispatch or a return into a ledger entry.

STEP 5

Iterate

Three-plus rounds of refinement against real order files and real edge cases — the messy-SKU reality only fully shows itself in production data.

Want a system like this for your business?Tell us how your business runs today and we’ll show you what one system would replace. Free workflow audit, reply the same day.

Get a free workflow audit
Results

What changed

Factual — no invented numbers.

1 stock truth
One internal catalogue and one derived count across Amazon, Flipkart and Shopify
Auto-ingested
Marketplace order files parsed and mapped into the system by n8n, per channel
Fully auditable
Every stock movement is a ledger row; the count is derived, never edited
Nothing dropped
Unmatched marketplace SKUs go to a manual queue instead of being lost
One queue
A single Ready to Dispatch list across all channels, with held-order priority
Under the hood

Technology & data architecture

  • Static HTML / CSS / JavaScript frontend — lightweight, no build step, edited in place against the approved design.
  • Supabase (PostgreSQL) — the database, with stock logic enforced by database functions and triggers so the frontend and n8n can never write stock directly.
  • n8n — self-hosted, one order-file parser workflow per marketplace.
  • ApexCharts — reporting; Lucide icons.

Data integrity rules

  • Stock never changes directly — every change is a stock_ledger entry, and that ledger is the audit trail
  • All stock-affecting writes go through a database function, never ad-hoc updates
  • Marketplace SKUs are never assumed to match — always resolved via the channel-SKU-map
  • Unmatched order lines go to a manual queue, never silently dropped
  • Backdrop owns all data; Supabase keys are environment variables, never committed
For other marketplace sellers & manufacturers

If you sell the same stock in several places, this is buildable for you

A ledger-based stock model, a marketplace-SKU mapping layer and automated order-file ingestion fit any manufacturer or brand selling across multiple channels:

  • D2C brands on Amazon, Flipkart, Meesho, Myntra and their own store
  • Manufacturers who wholesale and sell direct
  • Businesses with many size / colour / design variants of the same product
  • Any operation where "how much do we actually have" is currently a spreadsheet

Start with a free workflow audit. See Replace Excel & Tally, Custom ERP Software or AI Business Management System.

The second build · Shopify catalogue storefront

What Shopify catalogue storefront did Yukti AI build for Backdrop India?

Alongside the inventory system, Yukti AI built Backdrop India an app-style catalogue storefront that runs inside its existing Shopify store, live at backdropindia.in/pages/store-catalogue. On a phone it behaves like a mobile app; on a desktop it switches to a separate layout with a collections sidebar. It reads the product catalogue from a Google Sheet and runs its own Razorpay payment and Shiprocket shipping pipeline.

Backdrop India sells fabric-printed photography backdrops for studios, salons, boutiques, maternity and newborn shoots, weddings and festive decor, organised around Indian festivals and shoot types. Designs come in many printed sizes, such as 5W x 5H, 8W x 8H, 10W x 10H and 8W x 12H, plus 3-side and 5-side panel sets. The catalogue is built for that way of buying: pick a design, set a quantity for each size, check out in one pass. Yukti AI built this catalogue page, not the store: the main Shopify theme is another agency's work and was left untouched.

A catalogue website inside one Shopify page, with the theme left alone

The catalogue lives on its own Shopify page and draws its own app-style interface, so the theme, product pages and menu did not have to change. The final build's page template opts out of the store layout ({% layout none %}) and renders a full-screen app from one file with two layouts. On phones it is a stack of screens — collections, products, product detail, cart, invoice and checkout — with back buttons and a bottom tab bar for browsing, search and the cart. On desktop it becomes three panes: a collections sidebar, a product list with search and a size filter, and a right pane for the product, cart, invoice and delivery form.

Backdrop India Shopify catalogue storefront on mobile, built by Yukti AI — Browse Catalogue screen with a product search box, Festival Themes and Studio Backdrop category cards with product counts, and a bottom tab bar
On a phone — the live catalogue at /pages/store-catalogue inside Backdrop India's Shopify store: a product search box, category cards with product counts and a bottom tab bar.

Why a Google Sheet runs the catalogue

Backdrop India's master catalogue already lived in a Google Sheet, so the storefront uses that sheet as its CMS instead of moving thousands of rows into a new system. Google Apps Script serves it as a JSON feed, and the team keeps editing a spreadsheet it already knows. Each row is one design in one size, with its price, up to 8 image URLs and its tags. After an edit, the team can clear the script's cache from the Apps Script editor so the change shows straight away; otherwise the cached feed refreshes within 6 hours.

Live catalogue feed, September 2026Scale
Variant rows (one per design and size)2,746
Unique designsAbout 957
Size labels36, including panel sets and 110 / 250 GSM options
Product tags357
Columns per row22 — category, product, size, price, 8 image slots, tags and channel identifiers
Images per productUp to 8

Tag-based collections, search and a size filter

The sheet's own categories did not match the store's main menu, so instead of restructuring the client's sheet, the final build regroups products by their tags into the menu's 5 collections — Festival Themes, Studios, Boutique / Salon, 3D Theme and Wedding Backdrop — and 27 sub-collections, from Independence Day, Ganesh Chaturthi and Holi to New Born, Maternity, Mehandi and Haldi. Counts are worked out per collection with duplicates removed, and the Independence Day, Janmashtami, Ganesh Chaturthi and New Born sub-collections open with a banner. Search covers every product's name and description, and the size filter is built from every distinct size in the sheet, so a new size appears without a code change.

Two builds, one Surat client

The storefront is Backdrop India's sales front end; the ledger-based inventory and dispatch system above is its operations back end. The catalogue sheet already carries internal, Amazon, Flipkart and Shopify identifiers for every variant — the same three channels the inventory system reconciles.

Want a system like this for your business?Tell us how your business runs today and we’ll show you what one system would replace. Free workflow audit, reply the same day.

Get a free workflow audit
Ordering & checkout

How does a buyer go from one design in three sizes to a paid, shipped order?

On one screen, the buyer sets a quantity for each size of a design, and the cart applies quantity discounts and festival bulk bundles automatically. The buyer reviews a GST invoice, fills a delivery form that completes itself from the pincode, and pays through Razorpay. Google Apps Script then books a Shiprocket shipment, logs the order in a Google Sheet and hands back the AWB tracking number.

Quantity for each size
Discounts apply automatically
GST invoice preview
Pincode autofill
Razorpay payment
Shiprocket shipment + AWB
Order sheet + invoice PDF

Several sizes of one design, and discounts nobody has to calculate

Each product has an image slider of up to 8 photos and a row for every size with its own −/+ quantity stepper, so a studio that needs one design in three sizes adds all three at once. A tiered quantity discount applies automatically, with a promo card showing how many more pieces unlock the next tier. On Festival Themes designs, bulk bundles apply per size, and pieces that do not fill a bundle fall back into the normal quantity discount. The cart is kept in the browser, so it survives a reload, and the order summary shows the MRP total, the saving, the base price and the 5% GST included in the price.

Invoice first, then an India-ready delivery form

Before paying, the buyer sees an invoice with the company's GSTIN, an invoice number and a line for each item — a proforma-style step that suits business buyers. A 6-digit pincode fills City/Area, District and State from the India Post pincode service, the phone field checks for a valid 10-digit Indian mobile number, and an optional GST number field lets studios, salons and decorators order under their own GSTIN.

Razorpay and Shiprocket through Google Apps Script

The catalogue does not use Shopify's checkout. An Apps Script web app creates the Razorpay order on the server, and Razorpay Checkout opens with the buyer's details already filled. Once payment succeeds, the same script books a prepaid Shiprocket shipment, collects the AWB number and appends the order to an auto-created 18-column Orders sheet. The success screen shows the payment ID, the AWB and a button that downloads an A4 invoice PDF.

Engineered for speed on a spreadsheet backend

Early versions read the sheet on every request, and Apps Script can be slow to wake. The final build works around both: a warm-up ping wakes the script first; the server caches the catalogue for 6 hours in 90 KB chunks, under Apps Script's 100 KB-per-key limit; each browser keeps a 20-minute copy, shows it instantly and refreshes silently. Skeleton loaders fill the gaps, thumbnails come from Shopify's CDN at 200 × 200, and the payment and PDF libraries load only when needed.

How long did the catalogue storefront take?

About 7 days of build work, delivered as dated versions between June and July 2026, each adding a layer: the desktop invoice view, the speed pass, deals and GST, festival bundles and banners. Work like this is quoted as a fixed price after a free workflow audit, and it is a one-time build. Yukti AI builds it from its Surat office — see Shopify store development in Surat and app and web app development. For other catalogue builds, read the La Yellow Berry case study, another catalogue app built inside a Shopify store, or the Shinelabb case study, a shareable client-catalogue system for a diamond wholesaler.

FAQ

Questions marketplace sellers ask

A single internal catalogue of real variants, a mapping layer that translates each marketplace's messy SKUs and titles to those internal variants, automated ingestion of the order files each marketplace exports, one combined Ready to Dispatch queue across all channels, and a stock model where every change is a ledger entry so the count is always auditable. Yukti AI built exactly this for Backdrop India.
A plain stock number can be edited by anyone and gives no history — when it is wrong, there is no way to find out why. In Backdrop's system stock is never edited directly; every movement (dispatch, return, manual adjustment, production) is a row in a stock ledger, and the current count is derived from that ledger. If a number looks wrong, the full trail of what changed it is right there.
Marketplace SKUs are misspelled, formatted differently per channel, and sometimes missing entirely on Shopify. The system never assumes a direct match — every marketplace order line goes through a channel-SKU-map lookup to find the internal variant. Anything that doesn't match goes to a manual-mapping queue rather than being silently dropped, so no order is lost.
Each marketplace exports an order file — Amazon and Flipkart as spreadsheets, Shopify as CSV. An n8n workflow with a parser per marketplace reads the file, maps each line to an internal variant through the channel-SKU-map, and inserts the orders and order items into the database. The dashboard's Ready to Dispatch queue then shows everything ready to pack, across all channels, in one list.
Clicking dispatch on an order fires a database trigger that writes a dispatch entry to the stock ledger, which updates the derived inventory count. A received return writes a return entry the same way. Held orders (payment or address issues) sit in a hold state and, when released, are flagged priority so they surface to the top of the dispatch queue.
A lightweight static HTML, CSS and JavaScript frontend with ApexCharts for reporting, Supabase (PostgreSQL) for data with stock logic enforced by database triggers, and n8n for the marketplace order-file parsing workflows. All stock-affecting writes go through a database function, never ad-hoc updates from the frontend or n8n.
Yes. A ledger-based stock model, a marketplace-SKU mapping layer and automated order-file ingestion fit any manufacturer or brand selling across Amazon, Flipkart, Shopify, Meesho or their own store. Yukti AI builds these as custom inventory and operations systems across Surat, Gujarat and India, starting with a free workflow audit.
Yes. Backdrop India's catalogue runs on its own page inside its existing Shopify store, at /pages/store-catalogue, and draws its own app-style interface, so the main theme, product pages and menu did not have to change. The final build's page template opts out of the store layout and renders a full-screen app: a screen stack with a bottom tab bar on phones and a three-pane layout on desktop. Yukti AI built the catalogue page; the store's main theme is another agency's work.
Yes. Backdrop India's storefront reads its catalogue from a Google Sheet through Google Apps Script: 2,746 variant rows covering about 957 designs, each row with its price, up to 8 image URLs and tags. The team edits the sheet instead of an admin panel. To keep it fast, a warm-up ping wakes the script, the server caches the catalogue for 6 hours, each browser keeps a 20-minute copy that refreshes in the background, and thumbnails come from Shopify's CDN.
Yes. Each design lists every size with its own quantity stepper, so a buyer adds several sizes in one step, and quantity discounts and festival bulk bundles apply automatically in the cart. The buyer sees a GST invoice, fills a delivery form that autofills from the pincode, and pays through Razorpay. Google Apps Script then creates a Shiprocket shipment, shows the AWB tracking number, logs the order in a Google Sheet and offers a PDF invoice. Shopify's own checkout is not used.
Case study at a glance

Summary

Knowledge summary

Yukti AI replaced Excel with a custom ledger-based inventory and dispatch system for Backdrop India, a photography-backdrop manufacturer selling over 2,200 product variants on Amazon, Flipkart and Shopify. The system centres on one internal variant catalogue with a consistent SKU format, a channel-SKU-map that resolves each marketplace's inconsistent and sometimes missing SKUs to internal variants (unmatched lines go to a manual queue, never dropped), and n8n workflows with a parser per marketplace that ingest the order files each channel exports. Orders flow into one combined Ready to Dispatch queue with hold and priority states; clicking dispatch fires a database trigger that writes to a stock ledger, from which the current inventory count is derived — stock is never edited directly, giving a full audit trail. Built on a static HTML/CSS/JS frontend, Supabase with database triggers, ApexCharts and n8n. Yukti AI builds comparable multi-marketplace inventory systems for D2C brands and manufacturers across India.

Yukti AI also built Backdrop India an app-style catalogue storefront inside its existing Shopify store, live at /pages/store-catalogue: a mobile screen stack with a bottom tab bar and a three-pane desktop layout, a Google Sheets catalogue of 2,746 variant rows served through Google Apps Script with server and browser caching, tag-based collections, search and a size filter, multi-size ordering with automatic quantity and festival bundle discounts, a GST invoice preview and PDF, pincode autofill, and Razorpay payments with Shiprocket shipments booked through Apps Script, in about 7 days of build work. Yukti AI did not build the store's main theme.

Diamond ERP case studies

Diamond ERP case studies

For lot-wise diamond inventory, see the P. Hitesh & Co. diamond assorting ERP and the Arham Exports diamond trading ERP. Both pages list the features, benefits and AI options for diamond inventory management, with what is built and what can be added.

One stock truth
across every channel?

Tell us which marketplaces you sell on and how you track stock today. We'll show you what one ledger-based system would replace.

Free audit · No commitment required · Surat, Gujarat