
Catalog > Listings
Definition
Listing vs. SKU vs. Stock Item
attribute:bike_size = M”. The rule resolves to matching Stock Items at order time, which is why one Listing can pull from many SKUs and many SKUs can power many Listings.
See also: SKU, Stock Item.
Where do I use it?
- Catalog management — Create, organise and publish the products customers can order
- Online Store — Anything published to the online channel renders from a Listing
- Order creation — Admin order draft and storefront checkout start from a Listing
- Pricing — Attach one or more Price Tables to control rental, sale and subscription rates
- Variants — Offer size, colour, or other axes within a single Listing
- Availability — Compute real-time ATS by intersecting fulfilment rules with Stock Items
- Collections — Group Listings for storefront navigation and merchandising
- Sales channels — Control whether a Listing is visible in Admin and the Online Store
- Add-ons — Mark a Listing as add-on only or attach add-ons to other Listings
- SEO and marketing — URL handle, page title, meta description, OpenGraph image,
noindex
Key Properties
Identity and content
Status and visibility
active) and Draft (draft). The template value is reserved for system templates and is not a user-facing publishing state. There is no “Archived” status — to remove a Listing from sale, set it to Draft or delete it.Pricing and tax
Limits and booking behaviour
unit is one of seconds, minutes, hours, days, weeks, months.
Inventory and fulfilment
Variants
Media, documents, and SEO
Add-ons and related listings
Checkout requirements
Relationships
Belongs to a Catalog
Belongs to a Catalog
Resolves to SKUs and Stock Items via fulfilment rules
Resolves to SKUs and Stock Items via fulfilment rules
Appears in Collections
Appears in Collections
Published to Sales Channels
Published to Sales Channels
Linked to Service Locations
Linked to Service Locations
CatalogItemServiceLocationLink declares a location from which the Listing can be fulfilled. Used by storefront availability filters and by the order router.Priced through Price Tables
Priced through Price Tables
Listing detail tabs
When you open a Listing in the admin, the resource page exposes the following tabs:Availability calculation
Availability (ATS, Available-To-Sell) is never stored on the Listing. It is computed on demand by the catalog availability endpoints:GET /catalog/:id/quantity— total units available for the Listing across a date range and selected service locationsGET /catalog/:id/available-by-variant-value-groups— breakdown by variant value combinations
conditions against Stock Items, and subtracts existing reservations in the requested window. A Listing with inventoryTrackingEnabled = false is treated as infinitely available.
Lifecycle
Create
POST /catalog/from-article/:articleId).What information is required at minimum?
What information is required at minimum?
name is strictly required. To make a Listing buyable you also need at least one fulfilment rule (or inventoryTrackingEnabled = false), one Price Table, and at least one enabled sales channel.What is the initial state?
What is the initial state?
status = 'draft'. They are invisible to customers until you switch to Public.Can creation be automated?
Can creation be automated?
POST /catalog/ for direct creation, POST /catalog/many for bulk import, or POST /catalog/from-article/:articleId to seed a Listing from an existing SKU.Publish
status to active and enable the sales channels you want the Listing to appear on.Where does a Public Listing appear?
Where does a Public Listing appear?
salesChannelOnline = true, and in admin order draft if salesChannelAdmin = true.What blocks publishing in practice?
What blocks publishing in practice?
inventoryTrackingEnabled = true will show 0 availability. A Listing with no Price Table cannot be priced at checkout.Update
PUT /catalog/:id. Rules, variants, pricing tables and barcodes have dedicated nested endpoints.What changes are safe on a Public Listing?
What changes are safe on a Public Listing?
What about price changes?
What about price changes?
Retire
status = 'draft' to take the Listing offline while keeping its history, or DELETE /catalog/:id to remove it. Listings referenced by orders are kept for historical reporting even after deletion.Frequently Asked Questions
What's the difference between a Listing and a SKU?
What's the difference between a Listing and a SKU?
Can I sell the same physical item at different prices?
Can I sell the same physical item at different prices?
availabilityRange windows.How does availability work with serialized inventory?
How does availability work with serialized inventory?
What does `template` status mean?
What does `template` status mean?
template is an internal status used by the system templates feature. It is not exposed in the admin status selector and is not a user-facing publishing state.Can a Listing be both a rental and a sale?
Can a Listing be both a rental and a sale?
bookingPricingRows, salesPricingRows and subscriptionPricingRows. Toggle bookingsEnabled, salesEnabled and subscriptionsEnabled on the table to control which purchase modes are offered.Why doesn't a Listing have a `price` field?
Why doesn't a Listing have a `price` field?
Developer Reference
Listings are exposed ascatalog items in the API.