Products

SKUU reads the catalogue from the store's API, every 12 hours by default, and uses it to link the store's products to the network, to show availability and to route orders. Each read is a complete snapshot. Only a snapshot that validates from the first page to the last counts.

SKUU calls GET /products

GET {your_api_root}/products?limit=100
GET {your_api_root}/products?limit=100&cursor=<the next_cursor from the previous page>
  • limit is required and SKUU sends 100 per page; support any value from 1 to 250 and never return more items than asked.
  • Return next_cursor while there are more pages. Return null on the last page. A cursor is opaque; SKUU sends it back as a string.
  • Keep the snapshot stable while SKUU pages through it.
  • Returning null early ends the snapshot early. Every variant missing from a completed snapshot is retired and its network stock set to zero. To remove a product, stop returning it.

The full page shape, with an example, is on Read products.

What a product looks like

A product holds what its variants share. A variant is one sellable choice with its own identifier, price and stock per location.

All product fields
Product fieldRequiredWhat it means
product_idRequiredThe store's stable product identifier, unique across the whole catalogue.
titleRequiredShown to reviewers and in the dashboard; part of the fallback route to link an article.
brandRequiredSKUU links articles within a brand and shows it everywhere.
imagesRequired, at least onePublic HTTPS URLs, primary image first. A person at SKUU opens the image in a browser when two articles look alike, so it must load without an IP allowlist. SKUU stores the first four URLs and never downloads the files.
categoryOptionalStored and shown; not used to link articles.
descriptionOptionalStored and shown.
tagsOptionalTwo tags change behaviour, see below. Other tags are stored and ignored.
optionsOptionalThe names the store's variants vary by, for example ["size", "colour"].
variantsRequired, at least oneEvery sellable variant of this product.
All variant fields
Variant fieldRequiredWhat it means
variant_idRequiredThe identifier SKUU uses in stock events, shipping orders and tracking. Unique across the whole catalogue.
sizeRequiredPart of the fallback route to link an article, and shown to reviewers. Use exactly One size for an article without a size; SKUU compares sizes literally, so keep the spelling identical across products.
priceRequiredThe consumer price per unit, VAT included. Used for price protection when routing and for the payout.
currencyRequiredISO 4217 code. Must be the currency on the environment sheet; a different value rejects the whole snapshot.
inventoryRequiredAbsolute stock per location: one entry for every agreed physical location and one for SKUU_Network, zeros included. SKUU_Network stays 0 until SKUU writes it. Location ids are whole numbers written as strings.
barcodeOptional, strongly recommendedEAN or GTIN. The one field that links an article with certainty. Send it wherever it exists and never invent one.
skuOptionalThe store's internal article code. Second route to link an article when there is no barcode.
colourOptionalStored and shown to reviewers; not used to link articles.
material, weight_gramsOptionalStored and shown.
tax_rate, taxableOptionalWhether VAT applies. The VAT rate on a network order comes from the delivery country, not from these fields.

How SKUU links the store's products

SKUU links each of the store's variants to the same article at other shops. It tries the barcode first, then the SKU, then the title and size within the same brand. A catalogue with barcodes links almost completely; a catalogue without barcodes links only where title and size are identical across shops.

Two tags a store can use

  • SKUU_Exclude on a product keeps its physical stock out of the network.
  • SKUU_Stop on a product keeps network stock from being added to it.

Tags are matched after trimming, case-insensitively.

What makes SKUU reject a snapshot

A missing brand, image or size, a currency that differs from the store's, a duplicate product_id or variant_id, a product without variants, a variant without a barcode, SKU or title and size, a variant missing an agreed location or listing an unknown one, a location id that is not a plain whole number, or a number sent as a string. A rejected snapshot changes nothing; the previous one stays in force. Run the catalogue check with SKUU before the first sync and after every catalogue change.

The next page is Inventory. The exact contract is on Read products.


Did this page help you?