Skip to main content

Add Sku

POST 

/api/skus/createsku

Tier: Public — stable, supported for third-party integration.

Creates a new SKU, and raises a SkuCreated system event.

Validation includes: Name, SkuNumber, SkuType, and ItemTemplateId are required; InnerQuantity is required for outer SKUs; BarcodeNumber is required for outer SKUs when AddSkuDto.SkuEncodingType is Sgtin. Encoding-prefix rules: CustomPrefix encoding requires CustomPrefix; Sgtin requires a numeric CompanyPrefix (6–12 digits) whose combined length with ItemReference is 7, 11, or 12 (GTIN-8/12/13), plus a single-digit Indicator (defaults to "0"); Grai requires a combined CompanyPrefix+ItemReference length of 12. UnitCost is required when IsSkuLevelCost is true. Uniqueness (scoped to non-deleted SKUs in the organisation) is enforced on the barcode number (including additional barcodes), on CompanyPrefix+ItemReference for Sgtin/Grai encoding, and on CustomPrefix for CustomPrefix encoding. SkuType.Kanban cannot be an outer SKU; Kanban and SkuType.VariablePercent both require UpperBound and LowerBound with LowerBound ≤ UpperBound. Extended properties must belong to the item template referenced by ItemTemplateId (which must itself be an Item-type template), and required properties must have a value. Prices, when supplied, must be ≥ 0, and SalePrice/MemberPrice must each be ≤ RetailPrice when both are set; supplying any price sets PriceEffectiveFrom to the current time. LifecycleState and Gender, when supplied, must parse to Enums.SkuLifecycleState / Enums.Gender respectively (both are optional). Reference-data dim fields follow the resolution rules documented on Skus.AddSkuDto. InnerSku supports only one level of nesting — a second level of nesting is rejected — and the inner SKU is validated with the same rules as the outer SKU.

Request

Responses

Returns the newly created Skus.SkuDetailDto.