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
- 200
- 400
- 401
- 403
Returns the newly created Skus.SkuDetailDto.
Validation failed (error array) — see remarks.
The caller is not authenticated.
The caller lacks Sku Create permission.