@shushed/helpers 0.0.202-bug-erp-770-20251203154745 → 0.0.202-main-20251208111718

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/dist/cjs/contracts/asset.schema.json +78 -0
  2. package/dist/cjs/contracts/category.schema.json +86 -0
  3. package/dist/cjs/contracts/country.schema.json +258 -0
  4. package/dist/cjs/contracts/currency.schema.json +177 -0
  5. package/dist/cjs/contracts/customer-segment.schema.json +32 -0
  6. package/dist/cjs/contracts/development-colour.schema.json +97 -0
  7. package/dist/cjs/contracts/index.js +48 -0
  8. package/dist/cjs/contracts/marketing-preferences.schema.json +41 -0
  9. package/dist/cjs/contracts/messages/ean-change.schema.json +22 -0
  10. package/dist/cjs/contracts/messages/index.js +29 -0
  11. package/dist/cjs/contracts/messages/order/delivered.schema.json +26 -0
  12. package/dist/cjs/contracts/messages/order/index.js +18 -0
  13. package/dist/cjs/contracts/messages/order/new.schema.json +32 -0
  14. package/dist/cjs/contracts/messages/order/processed.schema.json +15 -0
  15. package/dist/cjs/contracts/messages/order/return-initiated.schema.json +26 -0
  16. package/dist/cjs/contracts/messages/order/returned.schema.json +25 -0
  17. package/dist/cjs/contracts/messages/order/shipped.schema.json +26 -0
  18. package/dist/cjs/contracts/messages/product-category.schema.json +21 -0
  19. package/dist/cjs/contracts/messages/product-draft.schema.json +66 -0
  20. package/dist/cjs/contracts/messages/product.schema.json +29 -0
  21. package/dist/cjs/contracts/money.schema.json +54 -0
  22. package/dist/cjs/contracts/order/address.schema.json +127 -0
  23. package/dist/cjs/contracts/order/customer.schema.json +149 -0
  24. package/dist/cjs/contracts/order/index.js +31 -0
  25. package/dist/cjs/contracts/order/item.schema.json +98 -0
  26. package/dist/cjs/contracts/order/payment.schema.json +115 -0
  27. package/dist/cjs/contracts/order/shipment/index.js +29 -0
  28. package/dist/cjs/contracts/order/shipment/item/index.js +8 -0
  29. package/dist/cjs/contracts/order/shipment/item/returned.schema.json +30 -0
  30. package/dist/cjs/contracts/order/shipment/item.schema.json +22 -0
  31. package/dist/cjs/contracts/order/shipment/pos/index.js +10 -0
  32. package/dist/cjs/contracts/order/shipment/pos/outbound.schema.json +37 -0
  33. package/dist/cjs/contracts/order/shipment/pos/return.schema.json +31 -0
  34. package/dist/cjs/contracts/order/shipment/pos.schema.json +48 -0
  35. package/dist/cjs/contracts/order/shipment/shipped/index.js +10 -0
  36. package/dist/cjs/contracts/order/shipment/shipped/outbound.schema.json +34 -0
  37. package/dist/cjs/contracts/order/shipment/shipped/return.schema.json +43 -0
  38. package/dist/cjs/contracts/order/shipment/shipped.schema.json +52 -0
  39. package/dist/cjs/contracts/order/shipment.schema.json +58 -0
  40. package/dist/cjs/contracts/order.schema.json +231 -0
  41. package/dist/cjs/contracts/product-category.schema.json +34 -0
  42. package/dist/cjs/contracts/product-draft.schema.json +782 -0
  43. package/dist/cjs/contracts/product.schema.json +816 -0
  44. package/dist/cjs/contracts/total.schema.json +41 -0
  45. package/dist/cjs/dist-dereferenced/asset.js +4 -0
  46. package/dist/cjs/dist-dereferenced/category.js +4 -0
  47. package/dist/cjs/dist-dereferenced/country.js +4 -0
  48. package/dist/cjs/dist-dereferenced/currency.js +4 -0
  49. package/dist/cjs/dist-dereferenced/customer-segment.js +4 -0
  50. package/dist/cjs/dist-dereferenced/development-colour.js +4 -0
  51. package/dist/cjs/dist-dereferenced/index.js +69 -0
  52. package/dist/cjs/dist-dereferenced/marketing-preferences.js +4 -0
  53. package/dist/cjs/dist-dereferenced/messages/ean-change.js +4 -0
  54. package/dist/cjs/dist-dereferenced/messages/index.js +50 -0
  55. package/dist/cjs/dist-dereferenced/messages/order/delivered.js +4 -0
  56. package/dist/cjs/dist-dereferenced/messages/order/index.js +18 -0
  57. package/dist/cjs/dist-dereferenced/messages/order/new.js +4 -0
  58. package/dist/cjs/dist-dereferenced/messages/order/processed.js +4 -0
  59. package/dist/cjs/dist-dereferenced/messages/order/return-initiated.js +4 -0
  60. package/dist/cjs/dist-dereferenced/messages/order/returned.js +4 -0
  61. package/dist/cjs/dist-dereferenced/messages/order/shipped.js +4 -0
  62. package/dist/cjs/dist-dereferenced/messages/price-change.js +4 -0
  63. package/dist/cjs/dist-dereferenced/messages/product-category.js +4 -0
  64. package/dist/cjs/dist-dereferenced/messages/product-draft.js +4 -0
  65. package/dist/cjs/dist-dereferenced/messages/product.js +4 -0
  66. package/dist/cjs/dist-dereferenced/money.js +4 -0
  67. package/dist/cjs/dist-dereferenced/order/address.js +4 -0
  68. package/dist/cjs/dist-dereferenced/order/customer.js +4 -0
  69. package/dist/cjs/dist-dereferenced/order/index.js +51 -0
  70. package/dist/cjs/dist-dereferenced/order/item.js +4 -0
  71. package/dist/cjs/dist-dereferenced/order/orderMain.js +4 -0
  72. package/dist/cjs/dist-dereferenced/order/payment.js +4 -0
  73. package/dist/cjs/dist-dereferenced/order/shipment/index.js +45 -0
  74. package/dist/cjs/dist-dereferenced/order/shipment/item/index.js +11 -0
  75. package/dist/cjs/dist-dereferenced/order/shipment/item/itemMain.js +4 -0
  76. package/dist/cjs/dist-dereferenced/order/shipment/item/returned.js +4 -0
  77. package/dist/cjs/dist-dereferenced/order/shipment/pos/index.js +13 -0
  78. package/dist/cjs/dist-dereferenced/order/shipment/pos/outbound.js +4 -0
  79. package/dist/cjs/dist-dereferenced/order/shipment/pos/posMain.js +4 -0
  80. package/dist/cjs/dist-dereferenced/order/shipment/pos/return.js +4 -0
  81. package/dist/cjs/dist-dereferenced/order/shipment/shipmentMain.js +4 -0
  82. package/dist/cjs/dist-dereferenced/order/shipment/shipped/index.js +13 -0
  83. package/dist/cjs/dist-dereferenced/order/shipment/shipped/outbound.js +4 -0
  84. package/dist/cjs/dist-dereferenced/order/shipment/shipped/return.js +4 -0
  85. package/dist/cjs/dist-dereferenced/order/shipment/shipped/shippedMain.js +4 -0
  86. package/dist/cjs/dist-dereferenced/price.js +4 -0
  87. package/dist/cjs/dist-dereferenced/product-category.js +4 -0
  88. package/dist/cjs/dist-dereferenced/product-draft.js +4 -0
  89. package/dist/cjs/dist-dereferenced/product.js +4 -0
  90. package/dist/cjs/dist-dereferenced/stock.js +4 -0
  91. package/dist/cjs/dist-dereferenced/total.js +4 -0
  92. package/dist/cjs/dist-types/asset.js +2 -0
  93. package/dist/cjs/dist-types/category.js +2 -0
  94. package/dist/cjs/dist-types/country.js +2 -0
  95. package/dist/cjs/dist-types/currency.js +2 -0
  96. package/dist/cjs/dist-types/customer-segment.js +2 -0
  97. package/dist/cjs/dist-types/development-colour.js +2 -0
  98. package/dist/cjs/dist-types/index.js +38 -0
  99. package/dist/cjs/dist-types/marketing-preferences.js +2 -0
  100. package/dist/cjs/dist-types/messages/ean-change.js +2 -0
  101. package/dist/cjs/dist-types/messages/index.js +37 -0
  102. package/dist/cjs/dist-types/messages/order/delivered.js +2 -0
  103. package/dist/cjs/dist-types/messages/order/index.js +2 -0
  104. package/dist/cjs/dist-types/messages/order/new.js +2 -0
  105. package/dist/cjs/dist-types/messages/order/processed.js +2 -0
  106. package/dist/cjs/dist-types/messages/order/return-initiated.js +2 -0
  107. package/dist/cjs/dist-types/messages/order/returned.js +2 -0
  108. package/dist/cjs/dist-types/messages/order/shipped.js +2 -0
  109. package/dist/cjs/dist-types/messages/price-change.js +2 -0
  110. package/dist/cjs/dist-types/messages/product-category.js +2 -0
  111. package/dist/cjs/dist-types/messages/product-draft.js +2 -0
  112. package/dist/cjs/dist-types/messages/product.js +2 -0
  113. package/dist/cjs/dist-types/money.js +2 -0
  114. package/dist/cjs/dist-types/order/address.js +2 -0
  115. package/dist/cjs/dist-types/order/customer.js +2 -0
  116. package/dist/cjs/dist-types/order/index.js +37 -0
  117. package/dist/cjs/dist-types/order/item.js +2 -0
  118. package/dist/cjs/dist-types/order/orderMain.js +2 -0
  119. package/dist/cjs/dist-types/order/payment.js +2 -0
  120. package/dist/cjs/dist-types/order/shipment/index.js +39 -0
  121. package/dist/cjs/dist-types/order/shipment/item/index.js +2 -0
  122. package/dist/cjs/dist-types/order/shipment/item/itemMain.js +2 -0
  123. package/dist/cjs/dist-types/order/shipment/item/returned.js +2 -0
  124. package/dist/cjs/dist-types/order/shipment/pos/index.js +2 -0
  125. package/dist/cjs/dist-types/order/shipment/pos/outbound.js +2 -0
  126. package/dist/cjs/dist-types/order/shipment/pos/posMain.js +2 -0
  127. package/dist/cjs/dist-types/order/shipment/pos/return.js +2 -0
  128. package/dist/cjs/dist-types/order/shipment/shipmentMain.js +2 -0
  129. package/dist/cjs/dist-types/order/shipment/shipped/index.js +2 -0
  130. package/dist/cjs/dist-types/order/shipment/shipped/outbound.js +2 -0
  131. package/dist/cjs/dist-types/order/shipment/shipped/return.js +2 -0
  132. package/dist/cjs/dist-types/order/shipment/shipped/shippedMain.js +2 -0
  133. package/dist/cjs/dist-types/price.js +2 -0
  134. package/dist/cjs/dist-types/product-category.js +2 -0
  135. package/dist/cjs/dist-types/product-draft.js +2 -0
  136. package/dist/cjs/dist-types/product.js +2 -0
  137. package/dist/cjs/dist-types/stock.js +2 -0
  138. package/dist/cjs/dist-types/total.js +2 -0
  139. package/dist/cjs/index.js +39 -0
  140. package/dist/cjs/src-public/airtable.js +625 -0
  141. package/dist/cjs/src-public/bcOrder.js +943 -0
  142. package/dist/cjs/src-public/bigquery.js +59 -0
  143. package/dist/cjs/src-public/centra.js +1053 -0
  144. package/dist/cjs/src-public/cloudtasks.js +207 -0
  145. package/dist/cjs/src-public/dato.js +637 -0
  146. package/dist/cjs/src-public/env.js +900 -0
  147. package/dist/cjs/src-public/getEventTime.js +28 -0
  148. package/dist/cjs/src-public/index.js +54 -0
  149. package/dist/cjs/src-public/ipValidation.js +167 -0
  150. package/dist/cjs/src-public/jwks.js +108 -0
  151. package/dist/cjs/src-public/pubsub.js +423 -0
  152. package/dist/cjs/src-public/rateLimit.js +140 -0
  153. package/dist/cjs/src-public/redisClient.js +44 -0
  154. package/dist/cjs/src-public/runtime.js +145 -0
  155. package/dist/cjs/src-public/sanitize.js +25 -0
  156. package/dist/cjs/src-public/scheduler.js +247 -0
  157. package/dist/cjs/src-public/secret.js +16 -0
  158. package/dist/cjs/src-public/setHeaders.js +16 -0
  159. package/dist/cjs/src-public/types.js +2 -0
  160. package/dist/cjs/src-public/utils.js +457 -0
  161. package/dist/cjs/src-public/validate.js +74 -0
  162. package/dist/package.json +6 -3
  163. package/dist/types/contracts/index.d.ts +15 -0
  164. package/dist/types/contracts/messages/index.d.ts +5 -0
  165. package/dist/types/contracts/messages/order/index.d.ts +6 -0
  166. package/dist/types/contracts/order/index.d.ts +6 -0
  167. package/dist/types/contracts/order/shipment/index.d.ts +6 -0
  168. package/dist/types/contracts/order/shipment/item/index.d.ts +1 -0
  169. package/dist/types/contracts/order/shipment/pos/index.d.ts +2 -0
  170. package/dist/types/contracts/order/shipment/shipped/index.d.ts +2 -0
  171. package/dist/types/dist-dereferenced/asset.d.ts +51 -0
  172. package/dist/types/dist-dereferenced/category.d.ts +58 -0
  173. package/dist/types/dist-dereferenced/country.d.ts +8 -0
  174. package/dist/types/dist-dereferenced/currency.d.ts +8 -0
  175. package/dist/types/dist-dereferenced/customer-segment.d.ts +26 -0
  176. package/dist/types/dist-dereferenced/development-colour.d.ts +114 -0
  177. package/dist/types/dist-dereferenced/index.d.ts +16 -0
  178. package/dist/types/dist-dereferenced/marketing-preferences.d.ts +31 -0
  179. package/dist/types/dist-dereferenced/messages/ean-change.d.ts +17 -0
  180. package/dist/types/dist-dereferenced/messages/index.d.ts +6 -0
  181. package/dist/types/dist-dereferenced/messages/order/delivered.d.ts +3438 -0
  182. package/dist/types/dist-dereferenced/messages/order/index.d.ts +6 -0
  183. package/dist/types/dist-dereferenced/messages/order/new.d.ts +3438 -0
  184. package/dist/types/dist-dereferenced/messages/order/processed.d.ts +3432 -0
  185. package/dist/types/dist-dereferenced/messages/order/return-initiated.d.ts +3438 -0
  186. package/dist/types/dist-dereferenced/messages/order/returned.d.ts +3437 -0
  187. package/dist/types/dist-dereferenced/messages/order/shipped.d.ts +3436 -0
  188. package/dist/types/dist-dereferenced/messages/price-change.d.ts +67 -0
  189. package/dist/types/dist-dereferenced/messages/product-category.d.ts +33 -0
  190. package/dist/types/dist-dereferenced/messages/product-draft.d.ts +589 -0
  191. package/dist/types/dist-dereferenced/messages/product.d.ts +628 -0
  192. package/dist/types/dist-dereferenced/money.d.ts +41 -0
  193. package/dist/types/dist-dereferenced/order/address.d.ts +98 -0
  194. package/dist/types/dist-dereferenced/order/customer.d.ts +312 -0
  195. package/dist/types/dist-dereferenced/order/index.d.ts +3428 -0
  196. package/dist/types/dist-dereferenced/order/item.d.ts +339 -0
  197. package/dist/types/dist-dereferenced/order/orderMain.d.ts +3423 -0
  198. package/dist/types/dist-dereferenced/order/payment.d.ts +110 -0
  199. package/dist/types/dist-dereferenced/order/shipment/index.d.ts +253 -0
  200. package/dist/types/dist-dereferenced/order/shipment/item/index.d.ts +19 -0
  201. package/dist/types/dist-dereferenced/order/shipment/item/itemMain.d.ts +18 -0
  202. package/dist/types/dist-dereferenced/order/shipment/item/returned.d.ts +34 -0
  203. package/dist/types/dist-dereferenced/order/shipment/pos/index.d.ts +282 -0
  204. package/dist/types/dist-dereferenced/order/shipment/pos/outbound.d.ts +319 -0
  205. package/dist/types/dist-dereferenced/order/shipment/pos/posMain.d.ts +280 -0
  206. package/dist/types/dist-dereferenced/order/shipment/pos/return.d.ts +330 -0
  207. package/dist/types/dist-dereferenced/order/shipment/shipmentMain.d.ts +250 -0
  208. package/dist/types/dist-dereferenced/order/shipment/shipped/index.d.ts +288 -0
  209. package/dist/types/dist-dereferenced/order/shipment/shipped/outbound.d.ts +286 -0
  210. package/dist/types/dist-dereferenced/order/shipment/shipped/return.d.ts +287 -0
  211. package/dist/types/dist-dereferenced/order/shipment/shipped/shippedMain.d.ts +286 -0
  212. package/dist/types/dist-dereferenced/price.d.ts +58 -0
  213. package/dist/types/dist-dereferenced/product-category.d.ts +24 -0
  214. package/dist/types/dist-dereferenced/product-draft.d.ts +580 -0
  215. package/dist/types/dist-dereferenced/product.d.ts +619 -0
  216. package/dist/types/dist-dereferenced/stock.d.ts +74 -0
  217. package/dist/types/dist-dereferenced/total.d.ts +172 -0
  218. package/dist/types/dist-types/asset.d.ts +16 -0
  219. package/dist/types/dist-types/category.d.ts +20 -0
  220. package/dist/types/dist-types/country.d.ts +2 -0
  221. package/dist/types/dist-types/currency.d.ts +2 -0
  222. package/dist/types/dist-types/customer-segment.d.ts +6 -0
  223. package/dist/types/dist-types/development-colour.d.ts +31 -0
  224. package/dist/types/dist-types/index.d.ts +16 -0
  225. package/dist/types/dist-types/marketing-preferences.d.ts +9 -0
  226. package/dist/types/dist-types/messages/ean-change.d.ts +5 -0
  227. package/dist/types/dist-types/messages/index.d.ts +6 -0
  228. package/dist/types/dist-types/messages/order/delivered.d.ts +300 -0
  229. package/dist/types/dist-types/messages/order/index.d.ts +6 -0
  230. package/dist/types/dist-types/messages/order/new.d.ts +300 -0
  231. package/dist/types/dist-types/messages/order/processed.d.ts +300 -0
  232. package/dist/types/dist-types/messages/order/return-initiated.d.ts +300 -0
  233. package/dist/types/dist-types/messages/order/returned.d.ts +301 -0
  234. package/dist/types/dist-types/messages/order/shipped.d.ts +301 -0
  235. package/dist/types/dist-types/messages/price-change.d.ts +16 -0
  236. package/dist/types/dist-types/messages/product-category.d.ts +7 -0
  237. package/dist/types/dist-types/messages/product-draft.d.ts +136 -0
  238. package/dist/types/dist-types/messages/product.d.ts +144 -0
  239. package/dist/types/dist-types/money.d.ts +11 -0
  240. package/dist/types/dist-types/order/address.d.ts +27 -0
  241. package/dist/types/dist-types/order/customer.d.ts +82 -0
  242. package/dist/types/dist-types/order/index.d.ts +8 -0
  243. package/dist/types/dist-types/order/item.d.ts +86 -0
  244. package/dist/types/dist-types/order/orderMain.d.ts +297 -0
  245. package/dist/types/dist-types/order/payment.d.ts +30 -0
  246. package/dist/types/dist-types/order/shipment/index.d.ts +6 -0
  247. package/dist/types/dist-types/order/shipment/item/index.d.ts +4 -0
  248. package/dist/types/dist-types/order/shipment/item/itemMain.d.ts +6 -0
  249. package/dist/types/dist-types/order/shipment/item/returned.d.ts +11 -0
  250. package/dist/types/dist-types/order/shipment/pos/index.d.ts +5 -0
  251. package/dist/types/dist-types/order/shipment/pos/outbound.d.ts +76 -0
  252. package/dist/types/dist-types/order/shipment/pos/posMain.d.ts +71 -0
  253. package/dist/types/dist-types/order/shipment/pos/return.d.ts +75 -0
  254. package/dist/types/dist-types/order/shipment/shipmentMain.d.ts +62 -0
  255. package/dist/types/dist-types/order/shipment/shipped/index.d.ts +5 -0
  256. package/dist/types/dist-types/order/shipment/shipped/outbound.d.ts +68 -0
  257. package/dist/types/dist-types/order/shipment/shipped/return.d.ts +68 -0
  258. package/dist/types/dist-types/order/shipment/shipped/shippedMain.d.ts +69 -0
  259. package/dist/types/dist-types/price.d.ts +15 -0
  260. package/dist/types/dist-types/product-category.d.ts +6 -0
  261. package/dist/types/dist-types/product-draft.d.ts +135 -0
  262. package/dist/types/dist-types/product.d.ts +143 -0
  263. package/dist/types/dist-types/stock.d.ts +19 -0
  264. package/dist/types/dist-types/total.d.ts +44 -0
  265. package/dist/types/index.d.ts +3 -0
  266. package/dist/types/src-public/airtable.d.ts +227 -0
  267. package/dist/types/src-public/bcOrder.d.ts +84 -0
  268. package/dist/types/src-public/bigquery.d.ts +17 -0
  269. package/dist/types/src-public/centra.d.ts +176 -0
  270. package/dist/types/src-public/cloudtasks.d.ts +74 -0
  271. package/dist/types/src-public/dato.d.ts +88 -0
  272. package/dist/types/src-public/env.d.ts +144 -0
  273. package/dist/types/src-public/getEventTime.d.ts +1 -0
  274. package/dist/types/src-public/index.d.ts +19 -0
  275. package/dist/types/src-public/ipValidation.d.ts +15 -0
  276. package/dist/types/src-public/jwks.d.ts +15 -0
  277. package/dist/types/src-public/pubsub.d.ts +95 -0
  278. package/dist/types/src-public/rateLimit.d.ts +21 -0
  279. package/dist/types/src-public/redisClient.d.ts +6 -0
  280. package/dist/types/src-public/runtime.d.ts +58 -0
  281. package/dist/types/src-public/sanitize.d.ts +4 -0
  282. package/dist/types/src-public/scheduler.d.ts +71 -0
  283. package/dist/types/src-public/secret.d.ts +6 -0
  284. package/dist/types/src-public/setHeaders.d.ts +13 -0
  285. package/dist/types/src-public/types.d.ts +264 -0
  286. package/dist/types/src-public/utils.d.ts +101 -0
  287. package/dist/types/src-public/validate.d.ts +9 -0
  288. package/package.json +7 -4
  289. package/dist/index.d.ts +0 -34970
  290. package/dist/index.js +0 -113296
@@ -0,0 +1,816 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Product",
4
+ "$id": "https://shushed.example.com/product.schema.json",
5
+ "additionalProperties": false,
6
+ "type": "object",
7
+ "properties": {
8
+ "product_id": {
9
+ "type": "string",
10
+ "description": "Colour & Style ID combination seperated by a dash - Example: 000004-2763 "
11
+ },
12
+ "slug": {
13
+ "type": [
14
+ "string"
15
+ ],
16
+ "description": "URI of the product eg. leather-jack-barrel-trousers-chocolate-brown/013464-0533.html"
17
+ },
18
+ "style_slug": {
19
+ "type": [
20
+ "string"
21
+ ],
22
+ "description": "URI of the style eg. leather-jack-barrel-trousers/013464.html"
23
+ },
24
+ "style_id": {
25
+ "type": [
26
+ "string"
27
+ ],
28
+ "faker": {
29
+ "custom.style": []
30
+ },
31
+ "description": "Parent style_id - Example: 000697"
32
+ },
33
+ "colour_id": {
34
+ "type": "string",
35
+ "description": "ID of the colour inside the colour library. Part of the product ID (for the 000697-3203 it would be 3203). Warning! The id dos not link to a single generally-understood colour. I.e. leopard print has ~40 different colour ids. Instead it links to SPECIFIC leopard print ordered for this specific material (specific shared of Navy Dusk Blue etc.)"
36
+ },
37
+ "style_name": {
38
+ "type": "string",
39
+ "description": "Style Name - Example: Puff Sleeve Sweatshirt"
40
+ },
41
+ "product_name": {
42
+ "type": "string",
43
+ "description": "Product Name - Example: Puff Sleeve Sweatshirt (Blue)"
44
+ },
45
+ "display_name": {
46
+ "type": [
47
+ "string",
48
+ "null"
49
+ ],
50
+ "description": "Centra Name - Example: Brown Puff Shirt"
51
+ },
52
+ "buffer_quantity": {
53
+ "type": "integer",
54
+ "minimum": 0,
55
+ "description": "Quantity of product we keep on hand to guard against unforseen fluctuations in demand/supply"
56
+ },
57
+ "display_type": {
58
+ "description": "Change of how product is represented in the website. Example [{ channel: \"DIRECT-UK\", display_type: \"Out-of-stock\" }]. By default all products will have default display_type available",
59
+ "type": "string",
60
+ "enum": [
61
+ "Out-of-stock",
62
+ "Permanently-unavailable"
63
+ ]
64
+ },
65
+ "available_to_sell_from": {
66
+ "type": [
67
+ "string",
68
+ "null"
69
+ ],
70
+ "format": "date",
71
+ "description": "The Date (inclusive) from which the product should be available to sell. The string should be used for pre-orders, or product release dates. For the latter, the date should be coordinated with online_from"
72
+ },
73
+ "online_from": {
74
+ "type": [
75
+ "string",
76
+ "null"
77
+ ],
78
+ "format": "date-time",
79
+ "description": "The DateTime (inclusive) from which the product should be shown (in any way / design / display type) on the website (direct channel). Every online product should have a date, default to 1970-01-01T00:00:00.000Z"
80
+ },
81
+ "online_to": {
82
+ "type": [
83
+ "string",
84
+ "null"
85
+ ],
86
+ "format": "date-time",
87
+ "description": "The DateTime (inclusive) until which product should be shown (in any way / design / display type) on the website."
88
+ },
89
+ "first_online_at": {
90
+ "type": [
91
+ "string",
92
+ "null"
93
+ ],
94
+ "format": "date-time",
95
+ "description": "The DateTime of product last online in the direct channel"
96
+ },
97
+ "last_online_at": {
98
+ "type": [
99
+ "string",
100
+ "null"
101
+ ],
102
+ "format": "date-time",
103
+ "description": "The DateTime of product last online in the direct channel"
104
+ },
105
+ "first_purchased_at": {
106
+ "type": "string",
107
+ "format": "date-time",
108
+ "faker": {
109
+ "date.between": [
110
+ "2024-01-01T00:00:00.000Z",
111
+ "2025-04-30T00:00:00.000Z"
112
+ ]
113
+ }
114
+ },
115
+ "first_markdown_at": {
116
+ "type": [
117
+ "string",
118
+ "null"
119
+ ],
120
+ "format": "date-time",
121
+ "faker": {
122
+ "date.between": [
123
+ "2024-01-01T00:00:00.000Z",
124
+ "2025-04-30T00:00:00.000Z"
125
+ ]
126
+ }
127
+ },
128
+ "created_at": {
129
+ "type": "string",
130
+ "format": "date-time",
131
+ "faker": {
132
+ "date.between": [
133
+ "2024-01-01T00:00:00.000Z",
134
+ "2025-04-30T00:00:00.000Z"
135
+ ]
136
+ }
137
+ },
138
+ "last_modified_at": {
139
+ "type": "string",
140
+ "format": "date-time",
141
+ "faker": {
142
+ "date.between": [
143
+ "2024-01-01T00:00:00.000Z",
144
+ "2025-04-30T00:00:00.000Z"
145
+ ]
146
+ }
147
+ },
148
+ "colour_family_name": {
149
+ "type": "string",
150
+ "faker": {
151
+ "color.human": []
152
+ },
153
+ "description": "New Tags To Add - Example: yellow"
154
+ },
155
+ "colour_code": {
156
+ "type": "string",
157
+ "description": "Colours as Text - Example: buttercup-yellow from initial input of Buttercup Yellow"
158
+ },
159
+ "colour_name": {
160
+ "type": "string",
161
+ "description": "Toffee Brown"
162
+ },
163
+ "display_tags": {
164
+ "type": "array",
165
+ "items": {
166
+ "type": "string"
167
+ },
168
+ "description": "Example - [20% Off, Summer Sale])"
169
+ },
170
+ "sizerange_code": {
171
+ "type": "string",
172
+ "description": "Size range assigned to this product. Defines sizes to be created"
173
+ },
174
+ "sizerange_name": {
175
+ "type": "string",
176
+ "description": "Size range name for this product"
177
+ },
178
+ "variants": {
179
+ "type": "array",
180
+ "items": {
181
+ "type": "object",
182
+ "properties": {
183
+ "code": {
184
+ "type": "string",
185
+ "description": "Size code - Example: 10"
186
+ },
187
+ "name": {
188
+ "type": [
189
+ "string"
190
+ ],
191
+ "faker": {
192
+ "custom.size": []
193
+ },
194
+ "description": "Size label - Example: 10 becomes M"
195
+ }
196
+ },
197
+ "required": [
198
+ "code",
199
+ "name"
200
+ ]
201
+ }
202
+ },
203
+ "images": {
204
+ "type": "array",
205
+ "items": {
206
+ "type": "object",
207
+ "properties": {
208
+ "type": {
209
+ "type": "string",
210
+ "enum": [
211
+ "Campaign",
212
+ "Ecom",
213
+ "Flatlay",
214
+ "UGC",
215
+ "AI"
216
+ ],
217
+ "description": "Image type for product - Example: Campaign"
218
+ },
219
+ "url": {
220
+ "type": "string",
221
+ "format": "uri",
222
+ "description": "Image URl for product"
223
+ },
224
+ "description": {
225
+ "type": "string",
226
+ "description": "Style Title - Example: Puff Sleeve Sweatshirt"
227
+ }
228
+ },
229
+ "required": [
230
+ "type",
231
+ "url"
232
+ ]
233
+ }
234
+ },
235
+ "vat_rate_uk": {
236
+ "type": [
237
+ "number",
238
+ "null"
239
+ ],
240
+ "minimum": 0,
241
+ "description": "VAT represented as integer (percentage), 0.2 becomes 20 (as 20%)"
242
+ },
243
+ "supply_chain": {
244
+ "type": "object",
245
+ "properties": {
246
+ "hs_code": {
247
+ "type": [
248
+ "string",
249
+ "null"
250
+ ],
251
+ "description": "HS Code"
252
+ },
253
+ "commodity_code_ref": {
254
+ "type": "string",
255
+ "description": "Harmonized Commodity Code - Example: C0/101888|DutyRate"
256
+ },
257
+ "country_of_origin": {
258
+ "$ref": "https://shushed.example.com/country.schema.json",
259
+ "description": "Country Of Origin - Example: RO"
260
+ },
261
+ "port_of_origin": {
262
+ "type": "string",
263
+ "description": "Port Of Origin - Example: MUMBAI"
264
+ },
265
+ "supplier_id": {
266
+ "type": "string",
267
+ "pattern": "^SUP\\d{5}$",
268
+ "description": "Supplier ID in the format 'SUP00099', where 'SUP' is followed by exactly five digits - Example: SUP00045"
269
+ },
270
+ "supplier_name": {
271
+ "type": "string",
272
+ "description": "Supplier Name - Example: Binh Dinh Footwear Joint Stock Company"
273
+ },
274
+ "factory_id": {
275
+ "type": "string",
276
+ "pattern": "^FAC\\d{5}$",
277
+ "description": "Factory ID in the format 'FAC00074', where 'FAC' is followed by exactly five digits"
278
+ },
279
+ "packing_method": {
280
+ "type": [
281
+ "string",
282
+ "null"
283
+ ],
284
+ "enum": [
285
+ "Standard",
286
+ "Hanging"
287
+ ],
288
+ "description": "Packing Method; must be 'Standard', 'Hanging' or null"
289
+ },
290
+ "is_bought_in_product": {
291
+ "type": "boolean",
292
+ "description": "Bought In Product - Example: true or false"
293
+ }
294
+ },
295
+ "required": []
296
+ },
297
+ "merch": {
298
+ "type": "object",
299
+ "properties": {
300
+ "strategy_type": {
301
+ "type": "string",
302
+ "description": "Strategy Type - Example: Seasonal New"
303
+ },
304
+ "product_type": {
305
+ "type": "string",
306
+ "description": "Product Type - Example: Knit"
307
+ },
308
+ "stock_type": {
309
+ "type": "string",
310
+ "description": "Stock Type - Example: Knit"
311
+ },
312
+ "category": {
313
+ "type": "string",
314
+ "faker": {
315
+ "commerce.department": []
316
+ },
317
+ "description": "Category - Example: Knitwear"
318
+ },
319
+ "subcategory": {
320
+ "type": "string",
321
+ "faker": {
322
+ "commerce.product": []
323
+ },
324
+ "description": "Subcategory - Example: Parka Coat"
325
+ },
326
+ "range": {
327
+ "type": [
328
+ "string",
329
+ "null"
330
+ ],
331
+ "enum": [
332
+ "Main Collection",
333
+ "Seasonal"
334
+ ],
335
+ "description": "Range - Example: Main Collection"
336
+ },
337
+ "channels_availability": {
338
+ "type": [
339
+ "array"
340
+ ],
341
+ "items": {
342
+ "type": "string",
343
+ "enum": [
344
+ "DIRECT-UK",
345
+ "DIRECT-INT",
346
+ "DIRECT-US",
347
+ "JL-STORES",
348
+ "JL-WEB",
349
+ "NEXT",
350
+ "MS",
351
+ "FENWICK",
352
+ "MORLEYS"
353
+ ]
354
+ },
355
+ "description": "List of channels the product is exclusive to - Example: [MS]"
356
+ },
357
+ "collections": {
358
+ "type": [
359
+ "string"
360
+ ],
361
+ "description": "Collections [Centra] - Example: Spring 2025"
362
+ },
363
+ "seasons": {
364
+ "type": [
365
+ "array"
366
+ ],
367
+ "items": {
368
+ "type": "string"
369
+ },
370
+ "description": "Seasons ordered in cronological order - Example: [AW20, SS25]"
371
+ },
372
+ "drops": {
373
+ "type": [
374
+ "array"
375
+ ],
376
+ "items": {
377
+ "type": "string"
378
+ },
379
+ "description": "Drop - Example: [SS26 - December, SS25 - April]"
380
+ },
381
+ "fashionability": {
382
+ "type": [
383
+ "string",
384
+ "null"
385
+ ],
386
+ "description": "Fashionability - Example: Core"
387
+ }
388
+ },
389
+ "required": []
390
+ },
391
+ "attributes": {
392
+ "type": "object",
393
+ "properties": {
394
+ "seo_url_name": {
395
+ "type": "string",
396
+ "pattern": "^[a-z-]+$",
397
+ "description": "Part of the URL with the SEO-friendly product name (/${url_name}/${product_id}.html) - Example: for url_name: \"square-neck-texture-bikini-top-sage-green\" the final url will be /square-neck-texture-bikini-top-sage-green/013234-2274.html . Remember that this field will be filled in even before the product is published"
398
+ },
399
+ "embellishment": {
400
+ "type": [
401
+ "string",
402
+ "null"
403
+ ]
404
+ },
405
+ "seo_title": {
406
+ "type": [
407
+ "string",
408
+ "null"
409
+ ],
410
+ "description": "SEO Title - Example: Puff Sleeve Sweatshirt. null if the root.product_name should be used"
411
+ },
412
+ "seo_description": {
413
+ "type": [
414
+ "string",
415
+ "null"
416
+ ],
417
+ "description": "SEO Description - Example: Puff Sleeve Sweatshirt. null if root.description should be used"
418
+ },
419
+ "fit_description": {
420
+ "type": [
421
+ "string",
422
+ "null"
423
+ ],
424
+ "description": "Accordion product fit"
425
+ },
426
+ "description": {
427
+ "type": [
428
+ "string",
429
+ "null"
430
+ ],
431
+ "description": "Product description"
432
+ },
433
+ "fabric_care": {
434
+ "type": [
435
+ "string",
436
+ "null"
437
+ ],
438
+ "description": "Fabric and care accordion on the website"
439
+ },
440
+ "delivery_returns": {
441
+ "type": [
442
+ "string",
443
+ "null"
444
+ ],
445
+ "description": "Delivery & Returns accordion on the website"
446
+ },
447
+ "weight": {
448
+ "type": [
449
+ "number",
450
+ "null"
451
+ ],
452
+ "description": "The average weight of the garmet (across sizes)"
453
+ },
454
+ "weight_statement": {
455
+ "type": [
456
+ "string",
457
+ "null"
458
+ ],
459
+ "description": "The weight statement"
460
+ },
461
+ "main_fibre": {
462
+ "type": [
463
+ "string",
464
+ "null"
465
+ ],
466
+ "description": "Main Fibre - Applicable to garmets - Example: Cotton"
467
+ },
468
+ "main_metal": {
469
+ "type": [
470
+ "string",
471
+ "null"
472
+ ],
473
+ "description": "Main Metal - Applicable to jewellery - Example: Silver"
474
+ },
475
+ "extra_selling_points": {
476
+ "type": "array",
477
+ "items": {
478
+ "type": "string"
479
+ },
480
+ "description": "Extra Selling Points - Example: [Lovely Print, Recyclable Fabric]"
481
+ },
482
+ "length_measurement": {
483
+ "type": [
484
+ "string",
485
+ "null"
486
+ ],
487
+ "description": "Length Measurement - Example: Sole height: 1.5 cm"
488
+ },
489
+ "measurement_table_code": {
490
+ "type": [
491
+ "string"
492
+ ],
493
+ "description": "Measurement Table Code"
494
+ },
495
+ "fit": {
496
+ "type": [
497
+ "string",
498
+ "null"
499
+ ],
500
+ "description": "Fit of the garmet"
501
+ },
502
+ "pockets": {
503
+ "type": [
504
+ "string",
505
+ "null"
506
+ ],
507
+ "description": "Pockets details"
508
+ },
509
+ "pleats_gathers": {
510
+ "type": [
511
+ "string",
512
+ "null"
513
+ ],
514
+ "description": "Pleats & Gathers details"
515
+ },
516
+ "lining": {
517
+ "type": [
518
+ "string",
519
+ "null"
520
+ ],
521
+ "description": "Lining details"
522
+ },
523
+ "bias_cut": {
524
+ "type": [
525
+ "string",
526
+ "null"
527
+ ],
528
+ "description": "Bias cut details"
529
+ },
530
+ "designer": {
531
+ "type": [
532
+ "string",
533
+ "null"
534
+ ],
535
+ "description": "Designer of the garmet"
536
+ },
537
+ "fabric": {
538
+ "type": [
539
+ "string",
540
+ "null"
541
+ ],
542
+ "description": "Main fabric of the garmet"
543
+ },
544
+ "fabric_composition": {
545
+ "type": [
546
+ "string",
547
+ "null"
548
+ ],
549
+ "description": "Composition details"
550
+ },
551
+ "certificate_code": {
552
+ "type": [
553
+ "string",
554
+ "null"
555
+ ],
556
+ "description": "Certificate of the fabric"
557
+ },
558
+ "shape": {
559
+ "type": [
560
+ "string",
561
+ "null"
562
+ ],
563
+ "description": "Shape of the garmet"
564
+ },
565
+ "development_type": {
566
+ "type": "string",
567
+ "description": "Development Type - Example: Update"
568
+ },
569
+ "occasion": {
570
+ "type": [
571
+ "string",
572
+ "null"
573
+ ],
574
+ "description": "Occasion - Example: Party"
575
+ },
576
+ "design": {
577
+ "type": [
578
+ "string",
579
+ "null"
580
+ ],
581
+ "description": "Design type"
582
+ },
583
+ "block": {
584
+ "type": [
585
+ "string",
586
+ "null"
587
+ ],
588
+ "description": "Block"
589
+ },
590
+ "pattern_name": {
591
+ "type": [
592
+ "string",
593
+ "null"
594
+ ],
595
+ "description": "Pattern Name - Example: Interest"
596
+ },
597
+ "fit_type": {
598
+ "type": [
599
+ "string",
600
+ "null"
601
+ ],
602
+ "description": "Fit Styling Description(ESP) - Example: Oversized"
603
+ },
604
+ "neckline": {
605
+ "type": [
606
+ "string",
607
+ "null"
608
+ ],
609
+ "description": "Neckline - Example: Crew"
610
+ },
611
+ "sleeve_length": {
612
+ "type": [
613
+ "string",
614
+ "null"
615
+ ],
616
+ "nullable": true,
617
+ "description": "Sleeve Length - Example: Sleeveless"
618
+ },
619
+ "sleeve_type": {
620
+ "type": [
621
+ "string",
622
+ "null"
623
+ ],
624
+ "nullable": true,
625
+ "description": "Type of Sleeve i.e. "
626
+ },
627
+ "heel_height": {
628
+ "type": [
629
+ "string",
630
+ "null"
631
+ ],
632
+ "description": "Heel Height - Example: 0.5CM"
633
+ },
634
+ "heel_shape": {
635
+ "type": [
636
+ "string",
637
+ "null"
638
+ ],
639
+ "description": "Heel Shape - Example: Flat"
640
+ },
641
+ "toe_shape": {
642
+ "type": [
643
+ "string",
644
+ "null"
645
+ ],
646
+ "description": "Toe Shape - Example: Round"
647
+ },
648
+ "trouser_fit": {
649
+ "type": [
650
+ "string",
651
+ "null"
652
+ ],
653
+ "nullable": true
654
+ },
655
+ "leg_length": {
656
+ "type": [
657
+ "string",
658
+ "null"
659
+ ],
660
+ "description": "Leg Length - Example: Long"
661
+ },
662
+ "handle_straps": {
663
+ "type": [
664
+ "string",
665
+ "null"
666
+ ],
667
+ "description": "Handle Straps - Example: XBody Strap"
668
+ },
669
+ "straps_features": {
670
+ "type": [
671
+ "string",
672
+ "null"
673
+ ],
674
+ "description": "Features of the straps i.e. \"Detachable staps\""
675
+ },
676
+ "fastening": {
677
+ "anyOf": [
678
+ {
679
+ "type": [
680
+ "array",
681
+ "null"
682
+ ],
683
+ "items": {
684
+ "type": "string"
685
+ }
686
+ },
687
+ {
688
+ "type": "null"
689
+ }
690
+ ],
691
+ "description": "Fastening - Example: Zip Front"
692
+ },
693
+ "sole_material": {
694
+ "type": [
695
+ "string",
696
+ "null"
697
+ ],
698
+ "description": "Sole Material - Example: Rubber"
699
+ },
700
+ "care_instructions": {
701
+ "type": "array",
702
+ "items": {
703
+ "type": "string"
704
+ },
705
+ "description": " - Example: Fabric unlined / do not tumble dry"
706
+ }
707
+ },
708
+ "required": []
709
+ },
710
+ "presentations": {
711
+ "type": "object",
712
+ "description": "Presentation-specific overrides by key (e.g., default, website, email, website-US). Each key maps to an object containing a locale and presentation_type plus optional overrides of selected root fields.",
713
+ "additionalProperties": false,
714
+ "patternProperties": {
715
+ ".*": {
716
+ "type": "object",
717
+ "additionalProperties": false,
718
+ "properties": {
719
+ "locale": {
720
+ "type": "string",
721
+ "pattern": "^[a-z]{2}-[A-Z]{2}$",
722
+ "description": "Locale for this presentation (e.g., en-GB, en-US)."
723
+ },
724
+ "presentation_type": {
725
+ "type": "string",
726
+ "description": "Presentation type, e.g. website, email, default, website-US.",
727
+ "examples": [
728
+ "default",
729
+ "website",
730
+ "email",
731
+ "website-US"
732
+ ]
733
+ },
734
+ "slug": {
735
+ "$ref": "#/properties/slug"
736
+ },
737
+ "style_slug": {
738
+ "$ref": "#/properties/style_slug"
739
+ },
740
+ "style_name": {
741
+ "$ref": "#/properties/style_name"
742
+ },
743
+ "display_name": {
744
+ "$ref": "#/properties/display_name"
745
+ },
746
+ "display_type": {
747
+ "$ref": "#/properties/display_type"
748
+ },
749
+ "available_to_sell_from": {
750
+ "$ref": "#/properties/available_to_sell_from"
751
+ },
752
+ "online_from": {
753
+ "$ref": "#/properties/online_from"
754
+ },
755
+ "online_to": {
756
+ "$ref": "#/properties/online_to"
757
+ },
758
+ "last_online_at": {
759
+ "$ref": "#/properties/last_online_at"
760
+ },
761
+ "first_purchased_at": {
762
+ "$ref": "#/properties/first_purchased_at"
763
+ },
764
+ "first_markdown_at": {
765
+ "$ref": "#/properties/first_markdown_at"
766
+ },
767
+ "colour_family_name": {
768
+ "$ref": "#/properties/colour_family_name"
769
+ },
770
+ "colour_name": {
771
+ "$ref": "#/properties/colour_name"
772
+ },
773
+ "display_tags": {
774
+ "$ref": "#/properties/display_tags"
775
+ },
776
+ "sizerange_name": {
777
+ "$ref": "#/properties/sizerange_name"
778
+ },
779
+ "variants": {
780
+ "type": "array",
781
+ "items": {
782
+ "type": "object",
783
+ "properties": {
784
+ "code": {
785
+ "$ref": "#/properties/variants/items/properties/code"
786
+ },
787
+ "name": {
788
+ "$ref": "#/properties/variants/items/properties/name"
789
+ }
790
+ },
791
+ "required": [
792
+ "code",
793
+ "name"
794
+ ]
795
+ },
796
+ "description": "Per-variant display overrides. Include entries only for variants that differ."
797
+ },
798
+ "attributes": {
799
+ "$ref": "#/properties/attributes"
800
+ }
801
+ },
802
+ "required": [
803
+ "locale",
804
+ "presentation_type"
805
+ ]
806
+ }
807
+ }
808
+ }
809
+ },
810
+ "required": [
811
+ "product_id",
812
+ "style_id",
813
+ "product_name",
814
+ "online_from"
815
+ ]
816
+ }