The sections at the foot of the product form — E-commerce — Media through E-commerce — Channels — are the product's E-commerce tab: everything a storefront needs beyond the basic record. BlossomERP is the source of truth for your catalogue, so the listing is written here, once, and pushed to the channels; it is never maintained separately in each store.
The tab appears when your company sells online — the E-commerce feature switch is on (§0.6), or a store is connected. A company that does neither never sees it, on the product form, the product page or the product family form; a family still groups its variants exactly the same either way.
The tab has two layers. The shared profile (Media, Content, Discovery, Merchandising, Fulfilment attributes, Publication) is written once and serves every channel — Shopify, WooCommerce, Amazon, and a future Blossom storefront read the same words, the same images and the same prices. The Channels section beneath it carries one block per channel for what genuinely differs: whether the product sells there, which warehouse its stock comes from, and a price override when that channel needs its own price.
Media is the image set: add images, drag them into order, mark one primary, and give each its alt text. The files are stored as Documents attachments on the product (§2.14's storage rules apply), and the set — order, primary and alt text — is pushed to the channel exactly as you arranged it.
Content holds the storefront title (blank means the product name), a short and a full description, and the vendor or brand. Discovery holds the URL slug, the storefront category, free tags, and the SEO title and description. Merchandising holds the compare-at price — the struck-through "was" price; the selling price itself stays the product's own sale price (§6.7), or a per-channel override in the Channels section. Costs are never touched here: pricing and costing stay decoupled, as everywhere in this book.
Fulfilment attributes say what a channel needs to ship the product: taxable, requires shipping, sell-when-out-of-stock, and the weight and dimensions — always with their units. A weight is kilograms or pounds, never a bare number; the unit travels with the value to the channel. Publication is one status for the listing: Draft (prepared here, not live) or Active.
Channels differ by type, and the type decides the warehouse law:
- Merchant-fulfilled channels (Shopify, WooCommerce) draw on a real warehouse of yours and may share one. Delivery happens from BlossomERP, and the channel's stock depletes as you ship.
- Channel-held stock (Amazon FBA) sits physically with the channel, so it is tracked in a mirror warehouse: mark a warehouse as a mirror on its own record ("Mirror warehouse — stock held by a channel"), replenish it with an ordinary stock transfer from a real warehouse, and Amazon's sales deplete the mirror. Amazon's block offers only mirror warehouses; the merchant blocks offer only real ones. If a block somehow holds a warehouse of the wrong kind, the picker keeps it visible and labels it, rather than silently dropping the saved fact.
A channel's warehouse resolves in one order everywhere: the product's override in its channel block, then the channel default on the company record (Integrations tab; Amazon's default is the warehouse mapping already in its section), then none. A channel cannot be switched on while no warehouse resolves — the form refuses and names the missing step, because an enabled channel with no warehouse would push stock levels it cannot stand behind.
What is live today: for Shopify, the catalogue push (hourly, changed products only) and the inventory push both run from this tab, and the Shopify block shows the store's product and variant IDs, the last sync time, and the last error by name. The WooCommerce and Amazon blocks are data-only for now — their syncs are later builds — and they say so on their faces; what you enter is stored and ready. Amazon's ASIN and fulfilment mode live in its block.
The profile is also readable without opening the form: the product's View page carries an E-commerce tab beside Details, showing the image set, the profile and each channel's resolved warehouse and sync state — read-only, so anyone who can view the product can see exactly what its storefronts carry.