OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. Retail product catalogue record validation for merchandising, replenishment, and e-commerce pipelines. Enforces GS1 GTIN barcode format (8, 12, 13, or 14-digit numeric identifiers used across UK retail EDI), product lifecycle status classification, department taxonomy for planogram and space management systems, ISO 4217 currency codes, and product name length constraints for POS system compatibility. Prevents uncategorised products, invalid barcodes, and products without lifecycle status from entering EPoS, WMS, and retailer catalogue exchange pipelines.
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| sku_required | sku | error | sku is required |
| product_name_required | product_name | error | product_name is required |
| product_name_max_length | product_name | warning | product_name exceeds 100 characters — will be truncated in POS systems and retailer catalogue APIs |
| category_required | category | error | category is required |
| category_values | category | warning | category should be a standard retail department — use one of the defined GS1 UK taxonomy values for space planning and category reporting |
| price_min | price | error | price must be >= 0 |
| currency_format | currency | error | currency must be a valid ISO 4217 three-letter code (e.g. GBP, EUR, USD) |
| stock_quantity_min | stock_quantity | error | stock_quantity must be >= 0 |
| barcode_required | barcode | error | barcode is required |
| barcode_gtin_format | barcode | error | barcode must be a valid GS1 GTIN: 8, 12, 13, or 14 numeric digits (EAN-8, UPC-A, EAN-13, or ITF-14). e.g. 9521234567899 (GS1 demonstration prefix 952) |
| barcode_gtin_valid | barcode | error | barcode has an invalid GS1 check digit (e.g. valid: 9521234567899, GS1 demonstration prefix 952) — full check-digit verification (was: shape-only format check) |
| product_status_values | product_status | warning | product_status must be one of: active, out_of_stock, discontinued, end_of_life, recalled, pending_launch, delisted |
| supplier_id_required | supplier_id | error | supplier_id is required |
| last_updated_format | last_updated | error | last_updated must be a valid date (YYYY-MM-DD) |
Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →