Skip to main content
Version: 1.0.0

SKU Management API

Overview

The SKU Management API enables sellers to create and manage SKUs — the core sellable units on the marketplace. A SKU (Stock Keeping Unit) represents a priced and fulfillable unit derived from a catalog Product. It carries all commercial attributes: pricing, fulfillment configuration, and shipping details.

SKU vs Inventory

A SKU is location-independent. It captures what you are selling and at what price — not where the stock is. Inventory is the physical stock at a specific fulfillment location and is managed separately via PATCH /skus/{skuId}.

This means a SKU can be created without any inventory. Stock can be assigned to one or more locations at any point after creation.

Key Relationships

  • A Product must exist in the catalog before a SKU can be created against it (productId).
  • A SKU belongs to one Seller. Cross-seller transfers are not supported.
  • skuId is unique at the seller level — two different sellers may hold the same skuId value, but within a single seller's account it must be unique. The platform generates a listingId (e.g., LSTCKSH5HYVPX2WXFXHBE2NYD) as a globally unique internal identifier per SKU.
  • Inventory is tied to Locations. A location referenced in SKU inventory must be of type PICKUP (not INVOICE) and have status ACTIVE. When updating stock, the id field on each location entry is mandatory and must already be registered to the SKU. Referencing an unknown location returns a LOCATION_NOT_FOUND error.

SKU Lifecycle

CREATED ──► PENDING_APPROVAL ──► ACTIVE


REJECTED (editable, re-submittable)

ACTIVE ◄──► INACTIVE (seller-controlled via PATCH /skus/{skuId})
ACTIVE ──► BLOCKED (platform admin only)
BLOCKED ──► ACTIVE (platform admin only)

When the approval workflow is enabled, a newly created SKU moves to PENDING_APPROVAL before going live. If approval is not configured, SKUs become ACTIVE immediately on creation. Sellers can toggle visibility between ACTIVE and INACTIVE using PATCH /skus/{skuId}.

Contact

API Platform Team: