Whiplash · Schema
Product Variant
Product variant
Fulfillment3PLLogisticsEcommerceOrdersInventoryShipmentsReturnsWarehousing
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique system-generated identifier for this entity (read-only) |
| externalId | string | ID of the entity in the client's system. Must be unique within the tenant. |
| createdAt | string | ISO 8601 timestamp when the entity was created (read-only) |
| updatedAt | string | ISO 8601 timestamp when the entity was last updated (read-only) |
| tenantId | string | Unique identifier for the tenant that owns this entity (read-only) |
| productId | string | ID of the parent product |
| externalProductId | string | External product identifier when provided alongside a distinct variant externalId |
| sku | string | Variant SKU or stock keeping unit |
| barcode | string | General barcode or GTIN value; use `upc` when a UPC-format code is available |
| upc | string | UPC-format code; when present it overrides any product-level default for this variant |
| title | string | Variant display name |
| selectedOptions | array | Selected option values describing this variant |
| price | number | Current selling price for the variant |
| currency | string | ISO currency code for the price |
| compareAtPrice | number | List or compare-at price, if available |
| cost | number | Unit cost attributed to this variant |
| costCurrency | string | Currency for the unit cost |
| inventoryNotTracked | boolean | |
| weight | object | |
| dimensions | object | |
| imageURLs | array | Publicly accessible HTTP URLs for images of the variant. First image should be the primary image. |
| taxable | boolean | |
| tags | array | Tags for categorization and filtering. Useful for organizing entities with custom labels (e.g., "priority", "wholesale", "gift") |
| customFields | array | Custom Fields - allows for arbitrary key-value pairs to be added to an entity. Useful for storing any custom data that is not covered by the other fields. |
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Product Variant",
"description": "Product variant",
"type": "object",
"properties": {
"id": {
"description": "Unique system-generated identifier for this entity (read-only)",
"type": "string"
},
"externalId": {
"description": "ID of the entity in the client's system. Must be unique within the tenant.",
"type": "string"
},
"createdAt": {
"description": "ISO 8601 timestamp when the entity was created (read-only)",
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
"updatedAt": {
"description": "ISO 8601 timestamp when the entity was last updated (read-only)",
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
"tenantId": {
"description": "Unique identifier for the tenant that owns this entity (read-only)",
"type": "string"
},
"productId": {
"description": "ID of the parent product",
"type": "string"
},
"externalProductId": {
"description": "External product identifier when provided alongside a distinct variant externalId",
"type": "string"
},
"sku": {
"description": "Variant SKU or stock keeping unit",
"type": "string"
},
"barcode": {
"description": "General barcode or GTIN value; use `upc` when a UPC-format code is available",
"type": "string"
},
"upc": {
"description": "UPC-format code; when present it overrides any product-level default for this variant",
"type": "string"
},
"title": {
"description": "Variant display name",
"type": "string"
},
"selectedOptions": {
"description": "Selected option values describing this variant",
"type": "array",
"items": {
"description": "Specific option selections for a product variant",
"type": "object",
"properties": {
"name": {
"description": "Name of the option dimension selected by this variant, e.g. Size",
"type": "string"
},
"value": {
"description": "Value for the option dimension, e.g. Medium",
"type": "string"
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
}
},
"price": {
"description": "Current selling price for the variant",
"type": "number"
},
"currency": {
"description": "ISO currency code for the price",
"type": "string"
},
"compareAtPrice": {
"description": "List or compare-at price, if available",
"type": "number"
},
"cost": {
"description": "Unit cost attributed to this variant",
"type": "number"
},
"costCurrency": {
"description": "Currency for the unit cost",
"type": "string"
},
"inventoryNotTracked": {
"type": "boolean"
},
"weight": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"lb",
"oz",
"kg",
"g"
]
}
},
"required": [
"value",
"unit"
],
"additionalProperties": false
},
"dimensions": {
"type": "object",
"properties": {
"length": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"cm",
"in",
"ft"
]
}
},
"required": [
"length",
"width",
"height",
"unit"
],
"additionalProperties": false
},
"imageURLs": {
"description": "Publicly accessible HTTP URLs for images of the variant. First image should be the primary image.",
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"taxable": {
"type": "boolean"
},
"tags": {
"description": "Tags for categorization and filtering. Useful for organizing entities with custom labels (e.g., \"priority\", \"wholesale\", \"gift\")",
"type": "array",
"items": {
"type": "string"
}
},
"customFields": {
"description": "Custom Fields - allows for arbitrary key-value pairs to be added to an entity. Useful for storing any custom data that is not covered by the other fields.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"createdAt",
"updatedAt",
"tenantId",
"productId",
"sku"
],
"additionalProperties": false
}