Browse documentation

Products

Every field on a product and what it drives in the storefront — pricing, discounts, size options, stock and the popular rail.

A product is the unit shoppers actually buy. This is the longest form in the console, so here's what each field does — and which ones matter more than they look.

Add products from the Products page.

Core fields

FieldNotes
NameWhat shoppers see and search. Also the match key when importing without an id.
ImagesA gallery — the first photo is the card, the rest show on the product page. Uploaded and hosted for you, or public https URLs on import.
BrandOptional. Blank means unbranded.
CategoriesA product can belong to several.
DescriptionShown on the product details screen.
DetailsFacts shown as a list on the product page — Material: Cotton, Prep time: 10 mins, Origin: India. They never affect price or stock.
SKU / Barcode / External IDOptional codes. The external ID is what a re-import from Shopify, WooCommerce or your own system matches on, so a rename updates the product instead of duplicating it.

Price and original price

Two fields, and the relationship between them is the whole discount system:

  • Price — what the shopper pays. Must be above 0.
  • Original price — the pre-discount price. Leave it equal to price (or blank on import) for no discount.

When original price is higher than price, the storefront renders the strike-through, and the discount percentage is computed for you and shown as a badge. There is no separate "discount" field to keep in sync.

An original price below the price is rejected — a discount can't be negative. If you meant to raise a price, change price.

Package size

Unit value plus unit type describe what one unit is: 500 + g, 1 + pcs, 750 + ml.

Only three unit types exist: g, ml, pcs. There is no kg or litre — convert. 1 kg is 1000 + g; 2 litres is 2000 + ml.

This is deliberate. One base unit per dimension means every template can render a weight consistently, and two products can be compared without parsing units.

Options and variants

A product that comes in choices — pack sizes, Size × Colour, storage tiers — gets options (up to three, e.g. Size and Colour) and one variant per combination, each with its own price, stock, SKU and barcode:

text
Size: 250 g   →  ₹60   (was ₹70)   · 12 in stock
Size: 500 g   →  ₹110  (was ₹130)  · 4 in stock
Size: 1000 g  →  ₹200  (was ₹240)  · sold out

The storefront shows one picker row per option on the product details screen; the price, the stock message and the add button all follow the selected variant, and the cart line records exactly which one was bought. A combination that's sold out shows struck through.

With variants, the product's own price and stock become derived: the card shows the cheapest variant's price, and stock is the sum. Leave options empty and the product is a single unit — which is most grocery products.

Shopify and WooCommerce imports create options and variants automatically from the export — see the AI assistants & API guides.

Stock

A whole number, 0 or more.

  • Stock decrements when an order is placed and increments back when an order is cancelled. You don't manage that; it's transactional.
  • Two shoppers racing for the last unit get one order and one refusal, never two orders.

Setting stock to 0 does not hide a product. A sold-out product still appears in the grid — faded, marked Out of Stock, with its add button disabled — and can't be added to a cart. A cart line that holds more than you have left says so on the row and blocks checkout until it's changed.

So 0 takes something off sale without hiding it, which is what you want when it's coming back. To remove a product for good, delete it.

Below five units, the storefront starts saying so — "Only 3 left" on the card, on the product page, and in the cart, and a quantity picker that stops at what you actually have. Nothing to configure; it follows the number you set.

The console's product list filters by In stock / Out of stock, which is the fastest way to find what needs restocking.

For a product with variants, stock is per variant — each size or colour runs out on its own, and "Only 3 left" means 3 of the selected one.

Deleted something by mistake?

Deleting a product moves it to the store's trash for 30 days — the Recently deleted button on the Products page lists everything and puts a product back exactly as it was, with one tap. After 30 days it's gone for good. The same safety net covers categories, brands, coupons and banners, and deletions made by a connected AI assistant or the API.

A checkbox. It feeds the storefront's popular products rail on the home screen — a curated shelf, not a computed one. Nothing is popular until you say it is.

Tick it for eight to fifteen products. Tick it for everything and the rail becomes a second, worse product grid.

Ratings

Not editable. Rating and Review count are rolled up from real shopper reviews and move in the same transaction as every review write. They appear on product cards throughout the storefront. See Product reviews.

What you can't sell

Alcohol and tobacco are off the platform, whatever your local licence says. That covers alcoholic drinks, and cigarettes, cigars, bidis, chewing tobacco, gutkha, hookah and shisha supplies, vapes and e-cigarettes.

The reason is the shopping app rather than the law: it is rated for a general audience on the App Store and Google Play on the basis that its stores don't carry these, and one store listing them puts every store's app at risk.

Saving or importing a product whose name or description looks like one of these is refused, and a store can't be submitted for review while its catalog contains any. Alcohol-free and nicotine-free versions are fine, and so are ordinary goods that merely share a word — wine vinegar, root beer, ginger ale, a cigarette lighter. If something legitimate is refused, rename it or email support@cordeliaapps.com.

Working with a large catalog

The Products page sorts on every column header and filters by category, brand and stock. Combining them is how you do bulk work:

  • Filter to a brand, sort by stock ascending → what to reorder from one supplier.
  • Filter to a category, sort by price → spot the mispriced outlier.

Next