Skip to main content
POST

Authorizations

Authorization
string
header
required

Bearer token authentication. Accepts company-admin tokens with storefront.view for read operations and storefront.update for writes and scan triggers (legacy per-resource grants like categories.update / products.view / etc. are still accepted during the migration), required on every company operation. Storefront public operations under /api/v202604/{resource} and /api/v202604/{resource}/{slug} are unauthenticated (security: []).

Query Parameters

lang
string

Response locale. ISO code (e.g. fr, de). When omitted, responds in the company's default locale. On the public surface, falls back to en for any translated field missing in the requested locale.

Example:

"fr"

country
string

ISO-2 country code that selects COUNTRY-RELATIVE Product pricing. Product-only — Categories and other storefront resources use filter[country] as an access-list visibility filter instead.

For Products, country drives the pricing block and each variant's variant_countries: it picks which per-country variant price and currency are rendered. On the catalog it also drops products with no active variant in the requested country. When omitted, falls back to the company's default country.

Example:

"GB"

Body

application/json
product
object
required

Company write contract for a Product. Keeps the ActiveRecord accepts_nested_attributes_for key names (*_attributes) so the existing Retail::ProductManager / VariantManager write orchestration consumes the payload unchanged. status is the RAW Product enum key (active/draft/archived) — the canonical published/scheduled split is presentation-only on read. NOTE: dynamic bundle-group writes (product_bundle_groups_attributes) are NOT accepted on this surface; static bundle-component links (product_bundles_attributes) ARE.

Response

The created Product.

Shared success envelope for list / show / create / update responses: the resource payload is returned alongside a top-level integer status and meta. Composed onto each resource response via allOf.

status
integer
required
Example:

200

meta
object
required

Response metadata included on every successful response body. request_id and timestamp are always present; list endpoints also add pagination.

product
object
required

Authenticated (company-surface) Product read shape: the public ProductBase plus custom_slug, admin metadata never rendered on the public surface.