addio-admin-sdk 1.7.144 → 1.7.145

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 (575) hide show
  1. package/.babelrc +17 -17
  2. package/.claude/settings.local.json +7 -0
  3. package/.env +14 -0
  4. package/.env.dev +14 -14
  5. package/.github/workflows/run_unit_test.yaml +48 -48
  6. package/addio-sdk-doc.md +1473 -1473
  7. package/changelog.md +564 -564
  8. package/dist/Interfaces/Address/index.d.ts +21 -21
  9. package/dist/Interfaces/Address/index.js +16 -16
  10. package/dist/Interfaces/Algolia/index.d.ts +177 -177
  11. package/dist/Interfaces/Algolia/index.js +2 -2
  12. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  13. package/dist/Interfaces/Attachement/index.js +2 -2
  14. package/dist/Interfaces/Attribute/index.d.ts +53 -53
  15. package/dist/Interfaces/Attribute/index.js +10 -10
  16. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  17. package/dist/Interfaces/BGJob/index.js +25 -25
  18. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  19. package/dist/Interfaces/BaseClass/index.js +2 -2
  20. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  21. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  22. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  23. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  24. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  25. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  26. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  27. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  28. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  29. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  30. package/dist/Interfaces/Booking/index.d.ts +74 -74
  31. package/dist/Interfaces/Booking/index.js +17 -17
  32. package/dist/Interfaces/Brand/index.d.ts +15 -15
  33. package/dist/Interfaces/Brand/index.js +2 -2
  34. package/dist/Interfaces/CMS/index.d.ts +28 -28
  35. package/dist/Interfaces/CMS/index.js +5 -5
  36. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  37. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  38. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  39. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  40. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  41. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  42. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  43. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  44. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  45. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  46. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  47. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  48. package/dist/Interfaces/Cart/index.d.ts +444 -444
  49. package/dist/Interfaces/Cart/index.js +197 -197
  50. package/dist/Interfaces/CartReservedQuantities/index.d.ts +10 -10
  51. package/dist/Interfaces/CartReservedQuantities/index.js +2 -2
  52. package/dist/Interfaces/CashDrawers/index.d.ts +37 -37
  53. package/dist/Interfaces/CashDrawers/index.js +19 -19
  54. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  55. package/dist/Interfaces/Catalogue/index.js +37 -37
  56. package/dist/Interfaces/Category/index.d.ts +33 -33
  57. package/dist/Interfaces/Category/index.js +2 -2
  58. package/dist/Interfaces/Chart/index.d.ts +11 -11
  59. package/dist/Interfaces/Chart/index.js +2 -2
  60. package/dist/Interfaces/Class/index.d.ts +8 -8
  61. package/dist/Interfaces/Class/index.js +2 -2
  62. package/dist/Interfaces/Consent/index.d.ts +6 -6
  63. package/dist/Interfaces/Consent/index.js +2 -2
  64. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  65. package/dist/Interfaces/Context/IContextProps.js +2 -2
  66. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  67. package/dist/Interfaces/Context/IContextState.js +2 -2
  68. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  69. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  70. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  71. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  72. package/dist/Interfaces/Customer/IStoreCredit.d.ts +13 -13
  73. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  74. package/dist/Interfaces/Customer/index.d.ts +104 -104
  75. package/dist/Interfaces/Customer/index.js +148 -148
  76. package/dist/Interfaces/Declination/index.d.ts +117 -117
  77. package/dist/Interfaces/Declination/index.js +66 -66
  78. package/dist/Interfaces/Document/index.d.ts +8 -8
  79. package/dist/Interfaces/Document/index.js +2 -2
  80. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  81. package/dist/Interfaces/Elastic/index.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  83. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  85. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  87. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  89. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  90. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  91. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  92. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  93. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  94. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  95. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  96. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  97. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  98. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  99. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  100. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  101. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  102. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  103. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  104. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  105. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  106. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  107. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  108. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  109. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  110. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  111. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  112. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  113. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  114. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  115. package/dist/Interfaces/Email/IEmail.js +60 -60
  116. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  117. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  118. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  119. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  120. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  121. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  122. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  123. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  124. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  125. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  126. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  127. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  128. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  129. package/dist/Interfaces/ExportSchema/index.js +2 -2
  130. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  131. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  132. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  133. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  134. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  135. package/dist/Interfaces/ExternalService/index.js +2 -2
  136. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  137. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  138. package/dist/Interfaces/G2/index.d.ts +556 -556
  139. package/dist/Interfaces/G2/index.js +38 -38
  140. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  141. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  142. package/dist/Interfaces/Indexed/Product/index.d.ts +105 -105
  143. package/dist/Interfaces/Indexed/Product/index.js +253 -253
  144. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  145. package/dist/Interfaces/Inventory/index.js +8 -8
  146. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  147. package/dist/Interfaces/Invoice/index.js +2 -2
  148. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  149. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  150. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  151. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  152. package/dist/Interfaces/Menu/index.d.ts +40 -40
  153. package/dist/Interfaces/Menu/index.js +16 -16
  154. package/dist/Interfaces/Note/index.d.ts +10 -10
  155. package/dist/Interfaces/Note/index.js +7 -7
  156. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  157. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  158. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  159. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  160. package/dist/Interfaces/Order/index.d.ts +4 -4
  161. package/dist/Interfaces/Order/index.js +2 -2
  162. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  163. package/dist/Interfaces/Org/IRelUser.js +2 -2
  164. package/dist/Interfaces/Org/index.d.ts +29 -29
  165. package/dist/Interfaces/Org/index.js +12 -12
  166. package/dist/Interfaces/Payment/index.d.ts +26 -26
  167. package/dist/Interfaces/Payment/index.js +14 -14
  168. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  169. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  170. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  171. package/dist/Interfaces/Product/IImportProduct.js +882 -882
  172. package/dist/Interfaces/Product/IInventoryItem.d.ts +74 -74
  173. package/dist/Interfaces/Product/IInventoryItem.js +38 -38
  174. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  175. package/dist/Interfaces/Product/IPricing.js +180 -180
  176. package/dist/Interfaces/Product/index.d.ts +138 -138
  177. package/dist/Interfaces/Product/index.js +64 -64
  178. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  179. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  180. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  181. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  182. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  183. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  184. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  185. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  186. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  187. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  188. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  189. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  190. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  191. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  192. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  193. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  194. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  195. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  196. package/dist/Interfaces/Quote/index.d.ts +5 -5
  197. package/dist/Interfaces/Quote/index.js +2 -2
  198. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  199. package/dist/Interfaces/Refunds/index.js +2 -2
  200. package/dist/Interfaces/Rules/IDiscountRule.d.ts +155 -155
  201. package/dist/Interfaces/Rules/IDiscountRule.js +114 -114
  202. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  203. package/dist/Interfaces/Schedule/index.js +2 -2
  204. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  205. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  206. package/dist/Interfaces/Services/IService.d.ts +16 -16
  207. package/dist/Interfaces/Services/IService.js +2 -2
  208. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  209. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  210. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  211. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  212. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  213. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  214. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  215. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  216. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  217. package/dist/Interfaces/Shipping/Shiptime/order.js +71 -71
  218. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  219. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  220. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  221. package/dist/Interfaces/Slider/GR.js +271 -271
  222. package/dist/Interfaces/Slider/index.d.ts +30 -30
  223. package/dist/Interfaces/Slider/index.js +2 -2
  224. package/dist/Interfaces/Space/IExternalService.d.ts +53 -53
  225. package/dist/Interfaces/Space/IExternalService.js +44 -44
  226. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  227. package/dist/Interfaces/Space/IMember.js +9 -9
  228. package/dist/Interfaces/Space/index.d.ts +407 -405
  229. package/dist/Interfaces/Space/index.js +174 -174
  230. package/dist/Interfaces/Space/index.js.map +1 -1
  231. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  232. package/dist/Interfaces/Specials/gr.js +2 -2
  233. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  234. package/dist/Interfaces/StockNotification/index.js +2 -2
  235. package/dist/Interfaces/Store/index.d.ts +63 -63
  236. package/dist/Interfaces/Store/index.js +27 -27
  237. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  238. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  239. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  240. package/dist/Interfaces/Supplier/index.js +24 -24
  241. package/dist/Interfaces/TCG/index.d.ts +161 -161
  242. package/dist/Interfaces/TCG/index.js +54 -54
  243. package/dist/Interfaces/Tag/index.d.ts +18 -18
  244. package/dist/Interfaces/Tag/index.js +2 -2
  245. package/dist/Interfaces/Tax/index.d.ts +13 -13
  246. package/dist/Interfaces/Tax/index.js +2 -2
  247. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  248. package/dist/Interfaces/TransferRequest/index.js +46 -46
  249. package/dist/Interfaces/Translation/index.d.ts +8 -8
  250. package/dist/Interfaces/Translation/index.js +5 -5
  251. package/dist/Interfaces/Update/index.d.ts +10 -10
  252. package/dist/Interfaces/Update/index.js +2 -2
  253. package/dist/Interfaces/User/IUser.d.ts +65 -65
  254. package/dist/Interfaces/User/IUser.js +8 -8
  255. package/dist/Interfaces/Version/index.d.ts +11 -11
  256. package/dist/Interfaces/Version/index.js +2 -2
  257. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  258. package/dist/Interfaces/Wishlist/index.js +2 -2
  259. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  260. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  261. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  262. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  263. package/dist/constants/enums.d.ts +6 -6
  264. package/dist/constants/enums.js +10 -10
  265. package/dist/constants/services.d.ts +2 -2
  266. package/dist/constants/services.js +117 -117
  267. package/dist/constants/version.d.ts +2 -2
  268. package/dist/constants/version.js +5 -5
  269. package/dist/index.d.ts +50 -50
  270. package/dist/index.js +266 -266
  271. package/dist/lib/Attribute/index.d.ts +14 -14
  272. package/dist/lib/Attribute/index.js +186 -186
  273. package/dist/lib/BGJob/index.d.ts +9 -9
  274. package/dist/lib/BGJob/index.js +216 -216
  275. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  276. package/dist/lib/BackgroundWorker/index.js +59 -59
  277. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  278. package/dist/lib/Blog/BlogArticle.js +10 -10
  279. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  280. package/dist/lib/Blog/BlogAuthor.js +10 -10
  281. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  282. package/dist/lib/Blog/BlogCategory.js +10 -10
  283. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  284. package/dist/lib/Blog/BlogKeyword.js +10 -10
  285. package/dist/lib/Booking/index.d.ts +85 -85
  286. package/dist/lib/Booking/index.js +596 -596
  287. package/dist/lib/Brand/index.d.ts +26 -26
  288. package/dist/lib/Brand/index.js +131 -131
  289. package/dist/lib/Cart/index.d.ts +335 -335
  290. package/dist/lib/Cart/index.js +3977 -3977
  291. package/dist/lib/CartReservedQuantities/index.d.ts +49 -49
  292. package/dist/lib/CartReservedQuantities/index.js +159 -159
  293. package/dist/lib/CashDrawerShift/index.d.ts +83 -83
  294. package/dist/lib/CashDrawerShift/index.js +205 -205
  295. package/dist/lib/Catalogue/index.d.ts +15 -15
  296. package/dist/lib/Catalogue/index.js +78 -78
  297. package/dist/lib/Category/index.d.ts +34 -34
  298. package/dist/lib/Category/index.js +230 -230
  299. package/dist/lib/Class/index.d.ts +16 -16
  300. package/dist/lib/Class/index.js +66 -66
  301. package/dist/lib/Consent/index.d.ts +4 -4
  302. package/dist/lib/Consent/index.js +29 -29
  303. package/dist/lib/Customer/index.d.ts +30 -30
  304. package/dist/lib/Customer/index.js +92 -92
  305. package/dist/lib/Declination/index.d.ts +9 -9
  306. package/dist/lib/Declination/index.js +26 -26
  307. package/dist/lib/Discount/index.d.ts +27 -27
  308. package/dist/lib/Discount/index.js +493 -493
  309. package/dist/lib/ElasticSearch/index.d.ts +13 -13
  310. package/dist/lib/ElasticSearch/index.js +50 -50
  311. package/dist/lib/Elavon/index.d.ts +18 -18
  312. package/dist/lib/Elavon/index.js +135 -135
  313. package/dist/lib/Email/AbandonedCartEmail.d.ts +16 -16
  314. package/dist/lib/Email/AbandonedCartEmail.js +24 -24
  315. package/dist/lib/Email/AccountConfirmationEmail.d.ts +19 -19
  316. package/dist/lib/Email/AccountConfirmationEmail.js +30 -30
  317. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +16 -16
  318. package/dist/lib/Email/AdminOrderConfirmationEmail.js +24 -24
  319. package/dist/lib/Email/ApplicationEmail.d.ts +16 -16
  320. package/dist/lib/Email/ApplicationEmail.js +24 -24
  321. package/dist/lib/Email/BackInStockEmail.d.ts +16 -16
  322. package/dist/lib/Email/BackInStockEmail.js +24 -24
  323. package/dist/lib/Email/ContactEmail.d.ts +16 -16
  324. package/dist/lib/Email/ContactEmail.js +24 -24
  325. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +16 -16
  326. package/dist/lib/Email/CustomerBookingAdminEmail.js +24 -24
  327. package/dist/lib/Email/CustomerBookingEmail.d.ts +16 -16
  328. package/dist/lib/Email/CustomerBookingEmail.js +24 -24
  329. package/dist/lib/Email/OrderConfirmationEmail.d.ts +16 -16
  330. package/dist/lib/Email/OrderConfirmationEmail.js +24 -24
  331. package/dist/lib/Email/OrderDenounciationEmail.d.ts +16 -16
  332. package/dist/lib/Email/OrderDenounciationEmail.js +24 -24
  333. package/dist/lib/Email/OrderSampleEmail.d.ts +16 -16
  334. package/dist/lib/Email/OrderSampleEmail.js +24 -24
  335. package/dist/lib/Email/OtherTypeEmails.d.ts +16 -16
  336. package/dist/lib/Email/OtherTypeEmails.js +27 -27
  337. package/dist/lib/Email/PasswordResetEmail.d.ts +16 -16
  338. package/dist/lib/Email/PasswordResetEmail.js +24 -24
  339. package/dist/lib/Email/PhotoShootEmail.d.ts +16 -16
  340. package/dist/lib/Email/PhotoShootEmail.js +24 -24
  341. package/dist/lib/Email/PickUpConfirmation.d.ts +16 -16
  342. package/dist/lib/Email/PickUpConfirmation.js +24 -24
  343. package/dist/lib/Email/ShippingConfirmation.d.ts +16 -16
  344. package/dist/lib/Email/ShippingConfirmation.js +24 -24
  345. package/dist/lib/Email/WelcomeEmail.d.ts +16 -16
  346. package/dist/lib/Email/WelcomeEmail.js +24 -24
  347. package/dist/lib/Email/index.d.ts +16 -16
  348. package/dist/lib/Email/index.js +31 -31
  349. package/dist/lib/ExternalService/Ebay.d.ts +74 -74
  350. package/dist/lib/ExternalService/Ebay.js +124 -124
  351. package/dist/lib/ExternalService/index.d.ts +5 -5
  352. package/dist/lib/ExternalService/index.js +10 -10
  353. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  354. package/dist/lib/FirstOrderTracking/index.js +10 -10
  355. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  356. package/dist/lib/Indexed/IndexedCart.js +91 -91
  357. package/dist/lib/Indexed/Product.d.ts +17 -17
  358. package/dist/lib/Indexed/Product.js +98 -98
  359. package/dist/lib/Inventory/index.d.ts +112 -112
  360. package/dist/lib/Inventory/index.js +492 -492
  361. package/dist/lib/Invoice/index.d.ts +16 -16
  362. package/dist/lib/Invoice/index.js +21 -21
  363. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  364. package/dist/lib/MarketplacePublication/index.js +426 -426
  365. package/dist/lib/Menu/index.d.ts +11 -11
  366. package/dist/lib/Menu/index.js +107 -107
  367. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  368. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  369. package/dist/lib/Note/index.d.ts +4 -4
  370. package/dist/lib/Note/index.js +6 -6
  371. package/dist/lib/Order/index.d.ts +27 -27
  372. package/dist/lib/Order/index.js +56 -56
  373. package/dist/lib/Org/index.d.ts +68 -68
  374. package/dist/lib/Org/index.js +216 -216
  375. package/dist/lib/PandaPay/index.d.ts +16 -16
  376. package/dist/lib/PandaPay/index.js +176 -176
  377. package/dist/lib/Paysafe/index.d.ts +11 -11
  378. package/dist/lib/Paysafe/index.js +41 -41
  379. package/dist/lib/Product/index.d.ts +182 -182
  380. package/dist/lib/Product/index.js +847 -847
  381. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  382. package/dist/lib/ProductAttribute/index.js +45 -45
  383. package/dist/lib/PromiseToPurchase/index.d.ts +109 -109
  384. package/dist/lib/PromiseToPurchase/index.js +343 -343
  385. package/dist/lib/PurchaseOrder/index.d.ts +20 -20
  386. package/dist/lib/PurchaseOrder/index.js +28 -28
  387. package/dist/lib/Schedule/index.d.ts +5 -5
  388. package/dist/lib/Schedule/index.js +12 -12
  389. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  390. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  391. package/dist/lib/Service/index.d.ts +13 -13
  392. package/dist/lib/Service/index.js +21 -21
  393. package/dist/lib/Shipment/index.d.ts +28 -28
  394. package/dist/lib/Shipment/index.js +370 -370
  395. package/dist/lib/Slider/index.d.ts +22 -22
  396. package/dist/lib/Slider/index.js +119 -119
  397. package/dist/lib/Space/index.d.ts +1150 -1150
  398. package/dist/lib/Space/index.js +5792 -5792
  399. package/dist/lib/StockNotification/index.d.ts +4 -4
  400. package/dist/lib/StockNotification/index.js +6 -6
  401. package/dist/lib/Store/index.d.ts +5 -5
  402. package/dist/lib/Store/index.js +12 -12
  403. package/dist/lib/Supplier/Command.d.ts +5 -5
  404. package/dist/lib/Supplier/Command.js +10 -10
  405. package/dist/lib/Supplier/index.d.ts +25 -25
  406. package/dist/lib/Supplier/index.js +27 -27
  407. package/dist/lib/Tags/index.d.ts +6 -6
  408. package/dist/lib/Tags/index.js +26 -26
  409. package/dist/lib/Tax/index.d.ts +8 -8
  410. package/dist/lib/Tax/index.js +54 -54
  411. package/dist/lib/TransferRequest/index.d.ts +290 -290
  412. package/dist/lib/TransferRequest/index.js +1026 -1026
  413. package/dist/lib/Update/index.d.ts +10 -10
  414. package/dist/lib/Update/index.js +22 -22
  415. package/dist/lib/User/index.d.ts +89 -89
  416. package/dist/lib/User/index.js +328 -328
  417. package/dist/lib/Wishlist/index.d.ts +5 -5
  418. package/dist/lib/Wishlist/index.js +10 -10
  419. package/dist/lib/base.d.ts +14 -14
  420. package/dist/lib/base.js +62 -62
  421. package/dist/lib/baseService.d.ts +17 -17
  422. package/dist/lib/baseService.js +69 -69
  423. package/dist/rules/GR/constants/data.d.ts +26 -26
  424. package/dist/rules/GR/constants/data.js +81 -81
  425. package/dist/rules/GR/constants/expedition.d.ts +4 -4
  426. package/dist/rules/GR/constants/expedition.js +9 -9
  427. package/dist/rules/GR/constants/products.d.ts +22 -22
  428. package/dist/rules/GR/constants/products.js +263 -263
  429. package/dist/rules/GR/interfaces/cart.d.ts +84 -84
  430. package/dist/rules/GR/interfaces/cart.js +41 -41
  431. package/dist/rules/GR/interfaces/data.d.ts +101 -101
  432. package/dist/rules/GR/interfaces/data.js +114 -114
  433. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  434. package/dist/rules/GR/interfaces/products.js +10 -10
  435. package/dist/rules/GR/utils/cart.d.ts +95 -95
  436. package/dist/rules/GR/utils/cart.js +839 -836
  437. package/dist/rules/GR/utils/cart.js.map +1 -1
  438. package/dist/rules/GR/utils/data.d.ts +3 -3
  439. package/dist/rules/GR/utils/data.js +28 -28
  440. package/dist/rules/GR/utils/expedition.d.ts +140 -140
  441. package/dist/rules/GR/utils/expedition.js +2016 -2016
  442. package/dist/rules/GR/utils/g2.d.ts +209 -209
  443. package/dist/rules/GR/utils/g2.js +999 -999
  444. package/dist/rules/GR/utils/invoices.d.ts +51 -51
  445. package/dist/rules/GR/utils/invoices.js +215 -215
  446. package/dist/rules/GR/utils/products.d.ts +277 -277
  447. package/dist/rules/GR/utils/products.js +1350 -1350
  448. package/dist/rules/GR/utils/upsells.d.ts +111 -111
  449. package/dist/rules/GR/utils/upsells.js +215 -215
  450. package/dist/services/database/BaseProvider.d.ts +29 -29
  451. package/dist/services/database/BaseProvider.js +28 -28
  452. package/dist/services/database/BatchUtils.d.ts +14 -14
  453. package/dist/services/database/BatchUtils.js +43 -43
  454. package/dist/services/database/Config.d.ts +2 -2
  455. package/dist/services/database/Config.js +5 -5
  456. package/dist/services/database/DatabaseService.d.ts +125 -125
  457. package/dist/services/database/DatabaseService.js +237 -237
  458. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  459. package/dist/services/database/FirebaseProvider.js +235 -235
  460. package/dist/services/database/NotFirebaseProvider.d.ts +49 -49
  461. package/dist/services/database/NotFirebaseProvider.js +262 -262
  462. package/dist/services/g2/G2OrderSlip.d.ts +49 -49
  463. package/dist/services/g2/G2OrderSlip.js +228 -228
  464. package/dist/services/g2/utils.d.ts +19 -19
  465. package/dist/services/g2/utils.js +953 -953
  466. package/dist/services/logs/index.d.ts +23 -23
  467. package/dist/services/logs/index.js +66 -66
  468. package/dist/services/marketplace/BaseMarketServiceClass.d.ts +52 -52
  469. package/dist/services/marketplace/BaseMarketServiceClass.js +111 -111
  470. package/dist/services/marketplace/CardtraderServiceClass.d.ts +17 -17
  471. package/dist/services/marketplace/CardtraderServiceClass.js +139 -139
  472. package/dist/services/marketplace/utils.d.ts +14 -14
  473. package/dist/services/marketplace/utils.js +29 -29
  474. package/dist/services/products/BaseClass.d.ts +50 -50
  475. package/dist/services/products/BaseClass.js +66 -66
  476. package/dist/services/products/TCGService.d.ts +32 -32
  477. package/dist/services/products/TCGService.js +555 -555
  478. package/dist/services/products/utils.d.ts +31 -31
  479. package/dist/services/products/utils.js +144 -144
  480. package/dist/utils/algolia.d.ts +46 -46
  481. package/dist/utils/algolia.js +21 -21
  482. package/dist/utils/anonymisation.d.ts +54 -54
  483. package/dist/utils/anonymisation.js +280 -280
  484. package/dist/utils/array.d.ts +5 -5
  485. package/dist/utils/array.js +14 -14
  486. package/dist/utils/aws.d.ts +36 -36
  487. package/dist/utils/aws.js +154 -154
  488. package/dist/utils/booking.d.ts +30 -30
  489. package/dist/utils/booking.js +127 -127
  490. package/dist/utils/cart.d.ts +259 -259
  491. package/dist/utils/cart.js +1145 -1145
  492. package/dist/utils/categories.d.ts +2 -2
  493. package/dist/utils/categories.js +54 -54
  494. package/dist/utils/cmv.d.ts +10 -10
  495. package/dist/utils/cmv.js +107 -107
  496. package/dist/utils/console.d.ts +6 -6
  497. package/dist/utils/console.js +59 -59
  498. package/dist/utils/context.d.ts +20 -20
  499. package/dist/utils/context.js +61 -61
  500. package/dist/utils/currency.d.ts +6 -6
  501. package/dist/utils/currency.js +91 -91
  502. package/dist/utils/data.d.ts +31 -31
  503. package/dist/utils/data.js +296 -296
  504. package/dist/utils/date.d.ts +1 -1
  505. package/dist/utils/date.js +16 -16
  506. package/dist/utils/dimensions.d.ts +3 -3
  507. package/dist/utils/dimensions.js +16 -16
  508. package/dist/utils/discount.d.ts +164 -164
  509. package/dist/utils/discount.js +1111 -1111
  510. package/dist/utils/errors.d.ts +113 -113
  511. package/dist/utils/errors.js +113 -113
  512. package/dist/utils/file-admin.d.ts +8 -8
  513. package/dist/utils/file-admin.js +39 -39
  514. package/dist/utils/file.d.ts +39 -39
  515. package/dist/utils/file.js +208 -208
  516. package/dist/utils/firebase-admin.d.ts +11 -11
  517. package/dist/utils/firebase-admin.js +73 -73
  518. package/dist/utils/firebase.d.ts +58 -58
  519. package/dist/utils/firebase.js +148 -148
  520. package/dist/utils/import.d.ts +1 -1
  521. package/dist/utils/import.js +21 -21
  522. package/dist/utils/inventories.d.ts +101 -101
  523. package/dist/utils/inventories.js +467 -467
  524. package/dist/utils/locale.d.ts +24 -24
  525. package/dist/utils/locale.js +89 -89
  526. package/dist/utils/mailchimp.d.ts +58 -58
  527. package/dist/utils/mailchimp.js +531 -531
  528. package/dist/utils/mathUtils.d.ts +17 -17
  529. package/dist/utils/mathUtils.js +324 -324
  530. package/dist/utils/mongodb.d.ts +1 -1
  531. package/dist/utils/mongodb.js +22 -22
  532. package/dist/utils/object.d.ts +32 -32
  533. package/dist/utils/object.js +133 -133
  534. package/dist/utils/payment.d.ts +10 -10
  535. package/dist/utils/payment.js +23 -23
  536. package/dist/utils/products.d.ts +39 -39
  537. package/dist/utils/products.js +195 -195
  538. package/dist/utils/promiseToPurchase.d.ts +88 -88
  539. package/dist/utils/promiseToPurchase.js +229 -229
  540. package/dist/utils/prosprsearch.d.ts +42 -42
  541. package/dist/utils/prosprsearch.js +216 -216
  542. package/dist/utils/refunds.d.ts +2 -2
  543. package/dist/utils/refunds.js +21 -21
  544. package/dist/utils/sdc.d.ts +10 -10
  545. package/dist/utils/sdc.js +1309 -1309
  546. package/dist/utils/searchIndexes.d.ts +58 -58
  547. package/dist/utils/searchIndexes.js +247 -247
  548. package/dist/utils/services.d.ts +42 -42
  549. package/dist/utils/services.js +409 -409
  550. package/dist/utils/shipment.d.ts +110 -110
  551. package/dist/utils/shipment.js +345 -345
  552. package/dist/utils/simpletexting.d.ts +2 -2
  553. package/dist/utils/simpletexting.js +45 -45
  554. package/dist/utils/sliders.d.ts +4 -4
  555. package/dist/utils/sliders.js +24 -24
  556. package/dist/utils/string.d.ts +16 -16
  557. package/dist/utils/string.js +192 -192
  558. package/dist/utils/tcgService.d.ts +74 -74
  559. package/dist/utils/tcgService.js +308 -308
  560. package/dist/utils/tools.d.ts +5 -5
  561. package/dist/utils/tools.js +13 -13
  562. package/dist/utils/transferRequests.d.ts +43 -43
  563. package/dist/utils/transferRequests.js +67 -67
  564. package/dist/utils/update.d.ts +7 -7
  565. package/dist/utils/update.js +137 -137
  566. package/dist/utils/weight.d.ts +3 -3
  567. package/dist/utils/weight.js +16 -16
  568. package/dist/utils/zones.d.ts +11 -11
  569. package/dist/utils/zones.js +218 -218
  570. package/package.json +107 -107
  571. package/publish.sh +143 -143
  572. package/readme.md +182 -182
  573. package/dist/lib/Queue/index.d.ts +0 -40
  574. package/dist/lib/Queue/index.js +0 -255
  575. package/dist/lib/Queue/index.js.map +0 -1
@@ -1,883 +1,883 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createImage = exports.parseAllProducts = void 0;
7
- const console_1 = require("../../utils/console");
8
- const locale_1 = require("../../utils/locale");
9
- const forEach_1 = __importDefault(require("lodash/forEach"));
10
- const groupBy_1 = __importDefault(require("lodash/groupBy"));
11
- const map_1 = __importDefault(require("lodash/map"));
12
- const maxBy_1 = __importDefault(require("lodash/maxBy"));
13
- const toNumber_1 = __importDefault(require("lodash/toNumber"));
14
- const toString_1 = __importDefault(require("lodash/toString"));
15
- const isomorphic_unfetch_1 = __importDefault(require("isomorphic-unfetch"));
16
- const file_1 = require("../../utils/file");
17
- const string_1 = require("../../utils/string");
18
- const parseAllProducts = async (items, options, org, space, spaceObj) => {
19
- const itemsWithParent = (0, groupBy_1.default)(items.filter((i) => !!i.parent_slug), (g) => g.parent_slug);
20
- const parentItems = items.filter((i) => !!!i.parent_slug);
21
- return await createDeclinations(itemsWithParent, parentItems, options, org, space, spaceObj);
22
- };
23
- exports.parseAllProducts = parseAllProducts;
24
- const putToLang = (lang = ['fr', 'en'], value) => {
25
- return lang.map((l, lKey) => ({
26
- lang: l,
27
- value: Array.isArray(value) ? value[lKey] : value
28
- }));
29
- };
30
- const createParent = async (i, options, org, space, spaceObj, _children) => {
31
- return {
32
- id: i.id,
33
- // draft: !!i.draft && i.draft.includes('1'),
34
- draft: false,
35
- image_files: [
36
- ...(!!!i.parent_images
37
- ? []
38
- : await Promise.all(i.parent_images.split(',').map(async (img_path) => ({
39
- img_alt: putToLang(['fr', 'en'], !!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name),
40
- // img_path,
41
- img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${i.parent_slug}`),
42
- img_title: putToLang(['fr', 'en'], !!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name)
43
- }))))
44
- ],
45
- name: putToLang(['fr', 'en'], !!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name),
46
- slug: (0, string_1.string_to_slug)(i.parent_slug),
47
- description: putToLang(['fr', 'en'], i.parent_description),
48
- category: getCategory(options, i, spaceObj),
49
- brand: '',
50
- classes: [],
51
- declinations: [],
52
- suppliers: [],
53
- product_attributes: getProductAttributes(options, i, spaceObj),
54
- seo_info: {
55
- seoDescription: putToLang(['fr', 'en'], i.seo_description || (!!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name)),
56
- seoTitle: putToLang(['fr', 'en'], i.seo_title || (!!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name))
57
- },
58
- is_multiple: (0, toString_1.default)(i.is_multiple).toUpperCase() === '1'
59
- };
60
- };
61
- const getProductAttributesForDeclination = (options, importProduct, spaceObj) => {
62
- if (!!!options.attribute)
63
- return [];
64
- if (!!!options.attribute.attributes.length)
65
- return [];
66
- if (!!!options.attribute.attribute_rules.length)
67
- return [];
68
- if (
69
- // If there is more than one attributes column (max 4)
70
- (Array.isArray(options.attribute.attribute_is_in) && !!!options.attribute.attribute_is_in.length) ||
71
- // If there is only one attribute and is not in a array
72
- (typeof options.attribute.attribute_is_in === 'string' &&
73
- !!!importProduct[options.attribute.attribute_is_in]))
74
- return [];
75
- if (typeof options.attribute.attribute_is_in === 'string' &&
76
- importProduct[options.attribute.attribute_is_in] === options.attribute.attribute_rules[0])
77
- return [];
78
- if (typeof options.attribute.attribute_is_in === 'string')
79
- options.attribute.attribute_is_in = [options.attribute.attribute_is_in];
80
- let result = [];
81
- for (const toCheckAttribute of options.attribute.attribute_is_in) {
82
- try {
83
- let [attributeId, values] = importProduct[toCheckAttribute].split(options.attribute.attribute_rules[0]);
84
- values = values.split(',').filter((f) => !!f);
85
- if (!!!attributeId) {
86
- result = [
87
- ...result,
88
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
89
- ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
90
- : [])
91
- ];
92
- continue;
93
- }
94
- const attr = options.attribute.attributes.find((a) => a.id === attributeId);
95
- if (!!!attr) {
96
- result = [
97
- ...result,
98
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
99
- ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
100
- : [])
101
- ];
102
- continue;
103
- }
104
- result = [
105
- ...result,
106
- {
107
- attribute_id: attributeId,
108
- values: values.map((slug) => ({
109
- slug,
110
- value: (attr.values.find((a) => a.slug === slug) || { value: [] }).value
111
- }))
112
- },
113
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
114
- ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
115
- : [])
116
- ];
117
- }
118
- catch (error) {
119
- result = [
120
- ...result,
121
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
122
- ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
123
- : [])
124
- ];
125
- }
126
- }
127
- return result;
128
- };
129
- const getAttributeInName = (name, searchFor, attribute) => {
130
- try {
131
- if (!!!name)
132
- return [];
133
- if (!!!searchFor)
134
- return [];
135
- if (!!!attribute)
136
- return [];
137
- if (!!!name.toLowerCase().trim().includes(searchFor.toLowerCase().trim()))
138
- return [];
139
- return [
140
- {
141
- attribute_id: attribute.id,
142
- attribute_name: attribute.name,
143
- values: [],
144
- is_multiple: attribute.is_multiple
145
- }
146
- ];
147
- }
148
- catch (error) {
149
- return [];
150
- }
151
- };
152
- const getDeclinationAttributeInName = (name, searchFor, attribute, spaceObj) => {
153
- try {
154
- if (!!!name)
155
- return [];
156
- if (!!!searchFor)
157
- return [];
158
- if (!!!attribute)
159
- return [];
160
- if (!!!name.toLowerCase().trim().includes(searchFor.toLowerCase().trim()))
161
- return [];
162
- const [_, val] = name.toLowerCase().trim().split(searchFor.toLowerCase().trim());
163
- const value = val.split(')')[0];
164
- if (!!spaceObj) {
165
- return [
166
- {
167
- attribute_id: attribute.id,
168
- values: [
169
- {
170
- value: (0, locale_1.getLanguageDictFromString)(value, spaceObj.preferences.languages()),
171
- slug: value
172
- }
173
- ],
174
- slug: value
175
- }
176
- ];
177
- }
178
- return [];
179
- }
180
- catch (error) {
181
- return [];
182
- }
183
- };
184
- const getProductAttributes = (options, importProduct, _spaceObj) => {
185
- if (!!!options.attribute)
186
- return [];
187
- if (!!!options.attribute.attributes.length)
188
- return [];
189
- if (!!!options.attribute.attribute_rules.length)
190
- return [];
191
- if ((Array.isArray(options.attribute.attribute_is_in) && !!!options.attribute.attribute_is_in.length) ||
192
- (typeof options.attribute.attribute_is_in === 'string' &&
193
- !!!importProduct[options.attribute.attribute_is_in]))
194
- return [];
195
- if (typeof options.attribute.attribute_is_in === 'string' &&
196
- importProduct[options.attribute.attribute_is_in] === options.attribute.attribute_rules[0])
197
- return [];
198
- if (typeof options.attribute.attribute_is_in === 'string')
199
- options.attribute.attribute_is_in = [options.attribute.attribute_is_in];
200
- let result = [];
201
- for (const toCheckAttribute of options.attribute.attribute_is_in) {
202
- try {
203
- const [attributeId, _value] = importProduct[toCheckAttribute].split(options.attribute.attribute_rules[0]);
204
- if (!!!attributeId) {
205
- result = [
206
- ...result,
207
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
208
- ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
209
- : [])
210
- ];
211
- continue;
212
- }
213
- const attr = options.attribute.attributes.find((a) => a.id === attributeId);
214
- if (!!!attr) {
215
- result = [
216
- ...result,
217
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
218
- ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
219
- : [])
220
- ];
221
- continue;
222
- }
223
- const possibleAttributeSlug = _value.split(',').filter((d) => !!d);
224
- result = [
225
- ...result,
226
- {
227
- attribute_id: attributeId,
228
- attribute_name: attr.name,
229
- values: attr.values.filter((a) => possibleAttributeSlug.includes(a.slug)),
230
- is_multiple: !!attr.is_multiple,
231
- default_value: attr.values.filter((a) => possibleAttributeSlug.includes(a.slug))[0] || false
232
- },
233
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
234
- ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
235
- : [])
236
- ];
237
- }
238
- catch (error) {
239
- result = [
240
- ...result,
241
- ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
242
- ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
243
- : [])
244
- ];
245
- }
246
- }
247
- return result;
248
- };
249
- const getCategory = (options, importProduct, spaceObj) => {
250
- if (!!!options.category)
251
- return '';
252
- if (!!!options.category.categories.length)
253
- return '';
254
- if (!!!options.category.category_rules.length)
255
- return '';
256
- if (!!!importProduct[options.category.category_is_in])
257
- return '';
258
- try {
259
- const [, categoryNameToFindWithSuff] = !!options.category.category_rules[0]
260
- ? importProduct[options.category.category_is_in].split(options.category.category_rules[0])
261
- : ['', importProduct[options.category.category_is_in]];
262
- let categoryNameToFind = '';
263
- if (!!!options.category.category_rules[1]) {
264
- categoryNameToFind = categoryNameToFindWithSuff;
265
- }
266
- else {
267
- categoryNameToFind = categoryNameToFindWithSuff.split(options.category.category_rules[1])[0];
268
- }
269
- if (!!!categoryNameToFind)
270
- return '';
271
- let category = options.category.categories.find((cat) => (0, locale_1.getPrincipalWord)(cat.name, spaceObj).trim().toLowerCase() === categoryNameToFind.trim().toLowerCase() &&
272
- !!cat.parent);
273
- if (!!!category)
274
- category = options.category.categories.find((cat) => (0, locale_1.getPrincipalWord)(cat.name, spaceObj).trim().toLowerCase() === categoryNameToFind.trim().toLowerCase());
275
- if (!!!category)
276
- return '';
277
- if (!!!category.id)
278
- return '';
279
- return category.id;
280
- }
281
- catch (error) {
282
- (0, console_1.errorMessage)(`Error while parsing category: ${error} - ${JSON.stringify(error)}`);
283
- return '';
284
- }
285
- };
286
- // const getBrand = (options: any, importProduct: any) => {
287
- // if (!!!options.brand) return ''
288
- // if (!!!options.brand.brands.length) return ''
289
- // if (!!!options.brand.brand_rules.length) return ''
290
- // if (!!!(importProduct as any)[options.brand.brand_is_in]) return ''
291
- // try {
292
- // const [ , brandNameToFindWithSuff ] = (importProduct as any)[options.brand.brand_is_in].split(
293
- // options.brand.brand_rules[0]
294
- // )
295
- // let brandNameToFind = ''
296
- // if (!!!options.brand.brand_rules[1]) {
297
- // brandNameToFind = brandNameToFindWithSuff
298
- // } else {
299
- // brandNameToFind = brandNameToFindWithSuff.split(options.brand.brand_rules[1])[0]
300
- // }
301
- // if (!!!brandNameToFind) return ''
302
- // // Mapper sur le brand name pour trouver la langue
303
- // const brand = options.brand.brands.find(
304
- // (cat: any) => getPrincipalWord(cat.name).toLowerCase().trim() === brandNameToFind.toLowerCase().trim()
305
- // )
306
- // if (!!!brand || !!!brand.id) return ''
307
- // return brand.id
308
- // } catch (error) {
309
- // errorMessage(`Error while parsing brand: ${error} - ${JSON.stringify(error)}`)
310
- // return ''
311
- // }
312
- // }
313
- const alterDeclinations = (declinations) => {
314
- const alteredDeclinations = [];
315
- const grouped = (0, groupBy_1.default)(declinations, (declination) => declination.attributes.map((_a) => _a.values.map((_v) => _v.slug).join('&&')).join('|'));
316
- (0, forEach_1.default)(grouped, (g) => {
317
- // const totalInventory = sumBy(
318
- // g,
319
- // (_g) =>
320
- // (_g.stock_level.store_warehouse_availability.find((a) => !!a.web) || { available: 0 }).available || 0
321
- // )
322
- const maxPrice = (0, maxBy_1.default)(g, (_g) => _g.price.regular.amount);
323
- alteredDeclinations.push(Object.assign(Object.assign({}, g[0]), { price: !!maxPrice ? maxPrice.price : g[0].price }));
324
- });
325
- return alteredDeclinations;
326
- };
327
- const createDeclinations = async (children, parents, options, org, space, spaceObj) => {
328
- // const _fullParents: any[] = []
329
- // const bSize = 500
330
- // for (let i = 0; i < Math.ceil(parents.length / bSize); i++) {
331
- // await new Promise((resolve) => {
332
- // setTimeout(() => {
333
- // resolve(true)
334
- // }, 50000)
335
- // })
336
- // }
337
- const fullParents = [
338
- ...parents.map((p) => async () => {
339
- const parent = await createParent(p, options, org, space, spaceObj);
340
- // const isNeedle = typeof p.sku === 'string' && p.sku.toLowerCase()[0] === 'a'
341
- const isNeedle = false;
342
- const isOtherTier = false;
343
- // const isOtherTier =
344
- // !isNeedle && !!toNumber(p.web.replace(/,/g, '.')) && !!toNumber(p.pref.replace(/,/g, '.'))
345
- const declinations = [
346
- {
347
- disabled: !!p.disabled && p.disabled.includes('1'),
348
- attributes: getProductAttributesForDeclination(options, p, spaceObj),
349
- //#region DR
350
- discount_rules: !isNeedle && !isOtherTier
351
- ? [
352
- // No discount rules
353
- ]
354
- : isNeedle
355
- ? [
356
- // Needle discount rule (5000/10000)}
357
- {
358
- draft: false,
359
- appliesTo: {
360
- label: 'product',
361
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
362
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
363
- value: p.sku
364
- },
365
- id: `aiguile-1-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
366
- ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)}`,
367
- description: [],
368
- discountRule_type: 'tier-pricing',
369
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
370
- result: {
371
- action: 'amount',
372
- action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
373
- ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)
374
- },
375
- rules: [
376
- {
377
- field: 'slug',
378
- ruleDetails: [
379
- {
380
- operator: '==',
381
- value: [p.sku],
382
- condition: 'AND'
383
- }
384
- ],
385
- condition: 'AND'
386
- },
387
- {
388
- condition: 'AND',
389
- field: 'quantity',
390
- ruleDetails: [
391
- {
392
- condition: 'AND',
393
- operator: 'between',
394
- value: [5000, 9999]
395
- }
396
- ]
397
- }
398
- ],
399
- noExtraRules: false,
400
- is_stackable: true
401
- },
402
- {
403
- draft: false,
404
- appliesTo: {
405
- label: 'product',
406
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
407
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
408
- value: p.sku
409
- },
410
- id: `aiguile-2-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
411
- ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)}`,
412
- description: [],
413
- discountRule_type: 'tier-pricing',
414
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
415
- result: {
416
- action: 'amount',
417
- action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
418
- ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)
419
- },
420
- rules: [
421
- {
422
- field: 'slug',
423
- ruleDetails: [
424
- {
425
- operator: '==',
426
- value: [p.sku],
427
- condition: 'AND'
428
- }
429
- ],
430
- condition: 'AND'
431
- },
432
- {
433
- condition: 'AND',
434
- field: 'quantity',
435
- ruleDetails: [
436
- {
437
- condition: 'AND',
438
- operator: 'between',
439
- value: [9999, 999999]
440
- }
441
- ]
442
- }
443
- ],
444
- noExtraRules: false,
445
- is_stackable: true
446
- }
447
- ]
448
- : [
449
- // Other discount rule (6/12)}
450
- {
451
- draft: false,
452
- appliesTo: {
453
- label: 'product',
454
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
455
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
456
- value: p.sku
457
- },
458
- id: `other-1-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
459
- ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)}`,
460
- description: [],
461
- discountRule_type: 'tier-pricing',
462
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
463
- result: {
464
- action: 'amount',
465
- action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
466
- ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)
467
- },
468
- rules: [
469
- {
470
- field: 'slug',
471
- ruleDetails: [
472
- {
473
- operator: '==',
474
- value: [p.sku],
475
- condition: 'AND'
476
- }
477
- ],
478
- condition: 'AND'
479
- },
480
- {
481
- condition: 'AND',
482
- field: 'quantity',
483
- ruleDetails: [
484
- {
485
- condition: 'AND',
486
- operator: 'between',
487
- value: [6, 11]
488
- }
489
- ]
490
- }
491
- ],
492
- noExtraRules: false,
493
- is_stackable: true
494
- },
495
- {
496
- draft: false,
497
- appliesTo: {
498
- label: 'product',
499
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
500
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
501
- value: p.sku
502
- },
503
- id: `other-2-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
504
- ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)}`,
505
- description: [],
506
- discountRule_type: 'tier-pricing',
507
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
508
- result: {
509
- action: 'amount',
510
- action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
511
- ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)
512
- },
513
- rules: [
514
- {
515
- field: 'slug',
516
- ruleDetails: [
517
- {
518
- operator: '==',
519
- value: [p.sku],
520
- condition: 'AND'
521
- }
522
- ],
523
- condition: 'AND'
524
- },
525
- {
526
- condition: 'AND',
527
- field: 'quantity',
528
- ruleDetails: [
529
- {
530
- condition: 'AND',
531
- operator: 'between',
532
- value: [12, 999999]
533
- }
534
- ]
535
- }
536
- ],
537
- noExtraRules: false,
538
- is_stackable: true
539
- }
540
- ],
541
- //#endregion
542
- image_files: !!!p.images || (Array.isArray(p.images) && !!!p.images.length) || !!!p.is_multiple
543
- ? !!!p.parent_images
544
- ? await Promise.all(p.parent_images
545
- .split(',')
546
- .slice(0, !!p.is_multiple ? 1 : undefined)
547
- .map(async (img_path) => ({
548
- img_alt: putToLang(['fr', 'en'], p.name),
549
- // img_path,
550
- img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${p.parent_slug}`),
551
- // img_path: '',
552
- img_title: putToLang(['fr', 'en'], p.name)
553
- })))
554
- : []
555
- : await Promise.all(p.images.split(',').map(async (img_path) => ({
556
- img_alt: putToLang(['fr', 'en'], p.name),
557
- // img_path,
558
- img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${p.parent_slug}`),
559
- // img_path: '',
560
- img_title: putToLang(['fr', 'en'], p.name)
561
- }))),
562
- name: putToLang(['fr', 'en'], p.name),
563
- price: {
564
- regular: {
565
- amount: (0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0
566
- },
567
- pdsf: {
568
- amount: (0, toNumber_1.default)(!!!p.pdsf ? 0 : p.pdsf.replace(/,/g, '.')) || 0
569
- },
570
- cost: {
571
- amount: (0, toNumber_1.default)(!!!p.cost ? 0 : p.cost.replace(/,/g, '.')) || 0
572
- }
573
- },
574
- shipping_info: {
575
- unit_measurments: 'centimeters',
576
- unit_weight: 'kilograms',
577
- height: (0, toNumber_1.default)(!!!p.height ? 0 : p.height.replace(/,/g, '.')) || 0,
578
- width: (0, toNumber_1.default)(!!!p.width ? 0 : p.width.replace(/,/g, '.')) || 0,
579
- length: (0, toNumber_1.default)(!!!p.length ? 0 : p.length.replace(/,/g, '.')) || 0,
580
- weight: (0, toNumber_1.default)(!!!p.weight ? 0 : p.weight.replace(/,/g, '.')) || 0
581
- },
582
- sku: p.sku,
583
- slug: p.sku,
584
- // stock_level: {
585
- // store_warehouse_availability: [
586
- // {
587
- // warehouse_id: !!spaceObj ? spaceObj.getWebStoreOrWarehouseId() : 'default',
588
- // web: true,
589
- // on_hand: toNumber(p.stock_level),
590
- // available: toNumber(p.stock_level)
591
- // }
592
- // ],
593
- // to_be_receptioned: 0
594
- // },
595
- description: putToLang(['fr', 'en'], !!p.description ? p.description : !!p.parent_description ? p.parent_description : '')
596
- }
597
- ];
598
- return Object.assign(Object.assign({}, parent), { draft: !!p.draft && p.draft.includes('1'), declinations: (0, toString_1.default)(p.is_multiple).toUpperCase() === '1' ? declinations : alterDeclinations(declinations) });
599
- }),
600
- ...(0, map_1.default)(children, (p) => async () => {
601
- const parent = await createParent(p[0], options, org, space, spaceObj, p);
602
- const isNeedle = typeof p[0].sku === 'string' && p[0].sku.toLowerCase()[0] === 'a';
603
- const isOtherTier = !isNeedle &&
604
- !!(0, toNumber_1.default)(!!!p[0].web ? 0 : p[0].web.replace(/,/g, '.')) &&
605
- !!(0, toNumber_1.default)(!!!p[0].pref ? 0 : p[0].pref.replace(/,/g, '.'));
606
- const declinations = await Promise.all((0, map_1.default)(p, async (_p) => {
607
- return {
608
- attributes: getProductAttributesForDeclination(options, _p, spaceObj),
609
- disabled: !!_p.disabled && _p.disabled.includes('1'),
610
- //#region DR
611
- discount_rules: !isNeedle && !isOtherTier
612
- ? [
613
- // No discount rules
614
- ]
615
- : isNeedle
616
- ? [
617
- // Needle discount rule (5000/10000)}
618
- {
619
- draft: false,
620
- appliesTo: {
621
- label: 'product',
622
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
623
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
624
- value: _p.sku
625
- },
626
- id: `aiguile-1-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
627
- ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)}`,
628
- description: [],
629
- discountRule_type: 'tier-pricing',
630
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
631
- result: {
632
- action: 'amount',
633
- action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
634
- ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)
635
- },
636
- rules: [
637
- {
638
- field: 'slug',
639
- ruleDetails: [
640
- {
641
- operator: '==',
642
- value: [_p.sku],
643
- condition: 'AND'
644
- }
645
- ],
646
- condition: 'AND'
647
- },
648
- {
649
- condition: 'AND',
650
- field: 'quantity',
651
- ruleDetails: [
652
- {
653
- condition: 'AND',
654
- operator: 'between',
655
- value: [5000, 9999]
656
- }
657
- ]
658
- }
659
- ],
660
- noExtraRules: false,
661
- is_stackable: true
662
- },
663
- {
664
- draft: false,
665
- appliesTo: {
666
- label: 'product',
667
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
668
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
669
- value: _p.sku
670
- },
671
- id: `aiguile-2-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
672
- ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)}`,
673
- description: [],
674
- discountRule_type: 'tier-pricing',
675
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
676
- result: {
677
- action: 'amount',
678
- action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
679
- ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)
680
- },
681
- rules: [
682
- {
683
- field: 'slug',
684
- ruleDetails: [
685
- {
686
- operator: '==',
687
- value: [_p.sku],
688
- condition: 'AND'
689
- }
690
- ],
691
- condition: 'AND'
692
- },
693
- {
694
- condition: 'AND',
695
- field: 'quantity',
696
- ruleDetails: [
697
- {
698
- condition: 'AND',
699
- operator: 'between',
700
- value: [9999, 999999]
701
- }
702
- ]
703
- }
704
- ],
705
- noExtraRules: false,
706
- is_stackable: true
707
- }
708
- ]
709
- : [
710
- // Other discount rule (6/12)}
711
- {
712
- draft: false,
713
- appliesTo: {
714
- label: 'product',
715
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
716
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
717
- value: _p.sku
718
- },
719
- id: `other-1-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
720
- ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)}`,
721
- description: [],
722
- discountRule_type: 'tier-pricing',
723
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
724
- result: {
725
- action: 'amount',
726
- action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
727
- ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)
728
- },
729
- rules: [
730
- {
731
- field: 'slug',
732
- ruleDetails: [
733
- {
734
- operator: '==',
735
- value: [_p.sku],
736
- condition: 'AND'
737
- }
738
- ],
739
- condition: 'AND'
740
- },
741
- {
742
- condition: 'AND',
743
- field: 'quantity',
744
- ruleDetails: [
745
- {
746
- condition: 'AND',
747
- operator: 'between',
748
- value: [6, 11]
749
- }
750
- ]
751
- }
752
- ],
753
- noExtraRules: false,
754
- is_stackable: true
755
- },
756
- {
757
- draft: false,
758
- appliesTo: {
759
- label: 'product',
760
- check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
761
- check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
762
- value: _p.sku
763
- },
764
- id: `other-2-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
765
- ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)}`,
766
- description: [],
767
- discountRule_type: 'tier-pricing',
768
- name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
769
- result: {
770
- action: 'amount',
771
- action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
772
- ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)
773
- },
774
- rules: [
775
- {
776
- field: 'slug',
777
- ruleDetails: [
778
- {
779
- operator: '==',
780
- value: [_p.sku],
781
- condition: 'AND'
782
- }
783
- ],
784
- condition: 'AND'
785
- },
786
- {
787
- condition: 'AND',
788
- field: 'quantity',
789
- ruleDetails: [
790
- {
791
- condition: 'AND',
792
- operator: 'between',
793
- value: [12, 999999]
794
- }
795
- ]
796
- }
797
- ],
798
- noExtraRules: false,
799
- is_stackable: true
800
- }
801
- ],
802
- //#endregion
803
- image_files: !!!_p.images || (Array.isArray(_p.images) && !!!_p.images.length) || !!!_p.is_multiple
804
- ? !!!_p.parent_images
805
- ? await Promise.all(_p.parent_images
806
- .split(',')
807
- .slice(0, !!_p.is_multiple ? 1 : undefined)
808
- .map(async (img_path) => ({
809
- img_alt: putToLang(['fr', 'en'], _p.name),
810
- // img_path,
811
- img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${_p.parent_slug}`),
812
- // img_path: '',
813
- img_title: putToLang(['fr', 'en'], _p.name)
814
- })))
815
- : []
816
- : await Promise.all(_p.images.split(',').map(async (img_path) => ({
817
- img_alt: putToLang(['fr', 'en'], _p.name),
818
- // img_path,
819
- img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${_p.parent_slug}`),
820
- // img_path: '',
821
- img_title: putToLang(['fr', 'en'], _p.name)
822
- }))),
823
- name: putToLang(['fr', 'en'], _p.name),
824
- price: {
825
- regular: {
826
- amount: (0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0
827
- },
828
- pdsf: {
829
- amount: (0, toNumber_1.default)(!!!_p.pdsf ? 0 : _p.pdsf.replace(/,/g, '.')) || 0
830
- },
831
- cost: {
832
- amount: (0, toNumber_1.default)(!!!_p.cost ? 0 : _p.cost.replace(/,/g, '.')) || 0
833
- }
834
- },
835
- shipping_info: {
836
- unit_measurments: 'centimeters',
837
- unit_weight: 'kilograms',
838
- height: (0, toNumber_1.default)(!!!_p.height ? 0 : _p.height.replace(/,/g, '.')) || 0,
839
- width: (0, toNumber_1.default)(!!!_p.width ? 0 : _p.width.replace(/,/g, '.')) || 0,
840
- length: (0, toNumber_1.default)(!!!_p.length ? 0 : _p.length.replace(/,/g, '.')) || 0,
841
- weight: (0, toNumber_1.default)(!!!_p.weight ? 0 : _p.weight.replace(/,/g, '.')) || 0
842
- },
843
- sku: _p.sku,
844
- slug: _p.sku,
845
- // stock_level: {
846
- // store_warehouse_availability: [
847
- // {
848
- // warehouse_id: !!spaceObj ? spaceObj.getWebStoreOrWarehouseId() : 'default',
849
- // web: true,
850
- // on_hand: toNumber(_p.stock_level),
851
- // available: toNumber(_p.stock_level)
852
- // }
853
- // ],
854
- // to_be_receptioned: 0
855
- // },
856
- description: putToLang(['fr', 'en'], !!_p.description ? _p.description : !!_p.parent_description ? _p.parent_description : '')
857
- };
858
- }));
859
- return Object.assign(Object.assign({}, parent), { draft: !!!p.find((_p) => !!_p.draft && _p.draft.includes('0')), declinations: (0, toString_1.default)(p[0].is_multiple).toUpperCase() === '1' ? declinations : alterDeclinations(declinations) });
860
- })
861
- ];
862
- return fullParents;
863
- };
864
- const createImage = async (path, pathToStore) => {
865
- try {
866
- const imgCors = await (0, isomorphic_unfetch_1.default)('/api/services/cors', {
867
- headers: { 'content-type': 'application/json' },
868
- method: 'POST',
869
- body: JSON.stringify({
870
- props: { method: 'GET', body: {}, headers: { contentType: 'base64' } },
871
- url: path.replace(/ /gi, '').trim()
872
- })
873
- });
874
- const content = await imgCors.json();
875
- const data = content.data;
876
- return await (0, file_1.uploadStringToPath)(data, pathToStore, path.split('.')[path.split('.').length - 2].split('/')[path.split('.')[path.split('.').length - 2].split('/').length - 1], path.split('.')[path.split('.').length - 1]);
877
- }
878
- catch (error) {
879
- return path;
880
- }
881
- };
882
- exports.createImage = createImage;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createImage = exports.parseAllProducts = void 0;
7
+ const console_1 = require("../../utils/console");
8
+ const locale_1 = require("../../utils/locale");
9
+ const forEach_1 = __importDefault(require("lodash/forEach"));
10
+ const groupBy_1 = __importDefault(require("lodash/groupBy"));
11
+ const map_1 = __importDefault(require("lodash/map"));
12
+ const maxBy_1 = __importDefault(require("lodash/maxBy"));
13
+ const toNumber_1 = __importDefault(require("lodash/toNumber"));
14
+ const toString_1 = __importDefault(require("lodash/toString"));
15
+ const isomorphic_unfetch_1 = __importDefault(require("isomorphic-unfetch"));
16
+ const file_1 = require("../../utils/file");
17
+ const string_1 = require("../../utils/string");
18
+ const parseAllProducts = async (items, options, org, space, spaceObj) => {
19
+ const itemsWithParent = (0, groupBy_1.default)(items.filter((i) => !!i.parent_slug), (g) => g.parent_slug);
20
+ const parentItems = items.filter((i) => !!!i.parent_slug);
21
+ return await createDeclinations(itemsWithParent, parentItems, options, org, space, spaceObj);
22
+ };
23
+ exports.parseAllProducts = parseAllProducts;
24
+ const putToLang = (lang = ['fr', 'en'], value) => {
25
+ return lang.map((l, lKey) => ({
26
+ lang: l,
27
+ value: Array.isArray(value) ? value[lKey] : value
28
+ }));
29
+ };
30
+ const createParent = async (i, options, org, space, spaceObj, _children) => {
31
+ return {
32
+ id: i.id,
33
+ // draft: !!i.draft && i.draft.includes('1'),
34
+ draft: false,
35
+ image_files: [
36
+ ...(!!!i.parent_images
37
+ ? []
38
+ : await Promise.all(i.parent_images.split(',').map(async (img_path) => ({
39
+ img_alt: putToLang(['fr', 'en'], !!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name),
40
+ // img_path,
41
+ img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${i.parent_slug}`),
42
+ img_title: putToLang(['fr', 'en'], !!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name)
43
+ }))))
44
+ ],
45
+ name: putToLang(['fr', 'en'], !!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name),
46
+ slug: (0, string_1.string_to_slug)(i.parent_slug),
47
+ description: putToLang(['fr', 'en'], i.parent_description),
48
+ category: getCategory(options, i, spaceObj),
49
+ brand: '',
50
+ classes: [],
51
+ declinations: [],
52
+ suppliers: [],
53
+ product_attributes: getProductAttributes(options, i, spaceObj),
54
+ seo_info: {
55
+ seoDescription: putToLang(['fr', 'en'], i.seo_description || (!!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name)),
56
+ seoTitle: putToLang(['fr', 'en'], i.seo_title || (!!i.parent_name_en ? [i.parent_name, i.parent_name_en] : i.parent_name))
57
+ },
58
+ is_multiple: (0, toString_1.default)(i.is_multiple).toUpperCase() === '1'
59
+ };
60
+ };
61
+ const getProductAttributesForDeclination = (options, importProduct, spaceObj) => {
62
+ if (!!!options.attribute)
63
+ return [];
64
+ if (!!!options.attribute.attributes.length)
65
+ return [];
66
+ if (!!!options.attribute.attribute_rules.length)
67
+ return [];
68
+ if (
69
+ // If there is more than one attributes column (max 4)
70
+ (Array.isArray(options.attribute.attribute_is_in) && !!!options.attribute.attribute_is_in.length) ||
71
+ // If there is only one attribute and is not in a array
72
+ (typeof options.attribute.attribute_is_in === 'string' &&
73
+ !!!importProduct[options.attribute.attribute_is_in]))
74
+ return [];
75
+ if (typeof options.attribute.attribute_is_in === 'string' &&
76
+ importProduct[options.attribute.attribute_is_in] === options.attribute.attribute_rules[0])
77
+ return [];
78
+ if (typeof options.attribute.attribute_is_in === 'string')
79
+ options.attribute.attribute_is_in = [options.attribute.attribute_is_in];
80
+ let result = [];
81
+ for (const toCheckAttribute of options.attribute.attribute_is_in) {
82
+ try {
83
+ let [attributeId, values] = importProduct[toCheckAttribute].split(options.attribute.attribute_rules[0]);
84
+ values = values.split(',').filter((f) => !!f);
85
+ if (!!!attributeId) {
86
+ result = [
87
+ ...result,
88
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
89
+ ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
90
+ : [])
91
+ ];
92
+ continue;
93
+ }
94
+ const attr = options.attribute.attributes.find((a) => a.id === attributeId);
95
+ if (!!!attr) {
96
+ result = [
97
+ ...result,
98
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
99
+ ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
100
+ : [])
101
+ ];
102
+ continue;
103
+ }
104
+ result = [
105
+ ...result,
106
+ {
107
+ attribute_id: attributeId,
108
+ values: values.map((slug) => ({
109
+ slug,
110
+ value: (attr.values.find((a) => a.slug === slug) || { value: [] }).value
111
+ }))
112
+ },
113
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
114
+ ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
115
+ : [])
116
+ ];
117
+ }
118
+ catch (error) {
119
+ result = [
120
+ ...result,
121
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
122
+ ? getDeclinationAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]), spaceObj)
123
+ : [])
124
+ ];
125
+ }
126
+ }
127
+ return result;
128
+ };
129
+ const getAttributeInName = (name, searchFor, attribute) => {
130
+ try {
131
+ if (!!!name)
132
+ return [];
133
+ if (!!!searchFor)
134
+ return [];
135
+ if (!!!attribute)
136
+ return [];
137
+ if (!!!name.toLowerCase().trim().includes(searchFor.toLowerCase().trim()))
138
+ return [];
139
+ return [
140
+ {
141
+ attribute_id: attribute.id,
142
+ attribute_name: attribute.name,
143
+ values: [],
144
+ is_multiple: attribute.is_multiple
145
+ }
146
+ ];
147
+ }
148
+ catch (error) {
149
+ return [];
150
+ }
151
+ };
152
+ const getDeclinationAttributeInName = (name, searchFor, attribute, spaceObj) => {
153
+ try {
154
+ if (!!!name)
155
+ return [];
156
+ if (!!!searchFor)
157
+ return [];
158
+ if (!!!attribute)
159
+ return [];
160
+ if (!!!name.toLowerCase().trim().includes(searchFor.toLowerCase().trim()))
161
+ return [];
162
+ const [_, val] = name.toLowerCase().trim().split(searchFor.toLowerCase().trim());
163
+ const value = val.split(')')[0];
164
+ if (!!spaceObj) {
165
+ return [
166
+ {
167
+ attribute_id: attribute.id,
168
+ values: [
169
+ {
170
+ value: (0, locale_1.getLanguageDictFromString)(value, spaceObj.preferences.languages()),
171
+ slug: value
172
+ }
173
+ ],
174
+ slug: value
175
+ }
176
+ ];
177
+ }
178
+ return [];
179
+ }
180
+ catch (error) {
181
+ return [];
182
+ }
183
+ };
184
+ const getProductAttributes = (options, importProduct, _spaceObj) => {
185
+ if (!!!options.attribute)
186
+ return [];
187
+ if (!!!options.attribute.attributes.length)
188
+ return [];
189
+ if (!!!options.attribute.attribute_rules.length)
190
+ return [];
191
+ if ((Array.isArray(options.attribute.attribute_is_in) && !!!options.attribute.attribute_is_in.length) ||
192
+ (typeof options.attribute.attribute_is_in === 'string' &&
193
+ !!!importProduct[options.attribute.attribute_is_in]))
194
+ return [];
195
+ if (typeof options.attribute.attribute_is_in === 'string' &&
196
+ importProduct[options.attribute.attribute_is_in] === options.attribute.attribute_rules[0])
197
+ return [];
198
+ if (typeof options.attribute.attribute_is_in === 'string')
199
+ options.attribute.attribute_is_in = [options.attribute.attribute_is_in];
200
+ let result = [];
201
+ for (const toCheckAttribute of options.attribute.attribute_is_in) {
202
+ try {
203
+ const [attributeId, _value] = importProduct[toCheckAttribute].split(options.attribute.attribute_rules[0]);
204
+ if (!!!attributeId) {
205
+ result = [
206
+ ...result,
207
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
208
+ ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
209
+ : [])
210
+ ];
211
+ continue;
212
+ }
213
+ const attr = options.attribute.attributes.find((a) => a.id === attributeId);
214
+ if (!!!attr) {
215
+ result = [
216
+ ...result,
217
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
218
+ ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
219
+ : [])
220
+ ];
221
+ continue;
222
+ }
223
+ const possibleAttributeSlug = _value.split(',').filter((d) => !!d);
224
+ result = [
225
+ ...result,
226
+ {
227
+ attribute_id: attributeId,
228
+ attribute_name: attr.name,
229
+ values: attr.values.filter((a) => possibleAttributeSlug.includes(a.slug)),
230
+ is_multiple: !!attr.is_multiple,
231
+ default_value: attr.values.filter((a) => possibleAttributeSlug.includes(a.slug))[0] || false
232
+ },
233
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
234
+ ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
235
+ : [])
236
+ ];
237
+ }
238
+ catch (error) {
239
+ result = [
240
+ ...result,
241
+ ...(!!options.attribute.attribute_rules[2] && !!importProduct.attributes_in_string
242
+ ? getAttributeInName(importProduct.attributes_in_string, options.attribute.attribute_rules[1], options.attribute.attributes.find((a) => a.id === options.attribute.attribute_rules[2]))
243
+ : [])
244
+ ];
245
+ }
246
+ }
247
+ return result;
248
+ };
249
+ const getCategory = (options, importProduct, spaceObj) => {
250
+ if (!!!options.category)
251
+ return '';
252
+ if (!!!options.category.categories.length)
253
+ return '';
254
+ if (!!!options.category.category_rules.length)
255
+ return '';
256
+ if (!!!importProduct[options.category.category_is_in])
257
+ return '';
258
+ try {
259
+ const [, categoryNameToFindWithSuff] = !!options.category.category_rules[0]
260
+ ? importProduct[options.category.category_is_in].split(options.category.category_rules[0])
261
+ : ['', importProduct[options.category.category_is_in]];
262
+ let categoryNameToFind = '';
263
+ if (!!!options.category.category_rules[1]) {
264
+ categoryNameToFind = categoryNameToFindWithSuff;
265
+ }
266
+ else {
267
+ categoryNameToFind = categoryNameToFindWithSuff.split(options.category.category_rules[1])[0];
268
+ }
269
+ if (!!!categoryNameToFind)
270
+ return '';
271
+ let category = options.category.categories.find((cat) => (0, locale_1.getPrincipalWord)(cat.name, spaceObj).trim().toLowerCase() === categoryNameToFind.trim().toLowerCase() &&
272
+ !!cat.parent);
273
+ if (!!!category)
274
+ category = options.category.categories.find((cat) => (0, locale_1.getPrincipalWord)(cat.name, spaceObj).trim().toLowerCase() === categoryNameToFind.trim().toLowerCase());
275
+ if (!!!category)
276
+ return '';
277
+ if (!!!category.id)
278
+ return '';
279
+ return category.id;
280
+ }
281
+ catch (error) {
282
+ (0, console_1.errorMessage)(`Error while parsing category: ${error} - ${JSON.stringify(error)}`);
283
+ return '';
284
+ }
285
+ };
286
+ // const getBrand = (options: any, importProduct: any) => {
287
+ // if (!!!options.brand) return ''
288
+ // if (!!!options.brand.brands.length) return ''
289
+ // if (!!!options.brand.brand_rules.length) return ''
290
+ // if (!!!(importProduct as any)[options.brand.brand_is_in]) return ''
291
+ // try {
292
+ // const [ , brandNameToFindWithSuff ] = (importProduct as any)[options.brand.brand_is_in].split(
293
+ // options.brand.brand_rules[0]
294
+ // )
295
+ // let brandNameToFind = ''
296
+ // if (!!!options.brand.brand_rules[1]) {
297
+ // brandNameToFind = brandNameToFindWithSuff
298
+ // } else {
299
+ // brandNameToFind = brandNameToFindWithSuff.split(options.brand.brand_rules[1])[0]
300
+ // }
301
+ // if (!!!brandNameToFind) return ''
302
+ // // Mapper sur le brand name pour trouver la langue
303
+ // const brand = options.brand.brands.find(
304
+ // (cat: any) => getPrincipalWord(cat.name).toLowerCase().trim() === brandNameToFind.toLowerCase().trim()
305
+ // )
306
+ // if (!!!brand || !!!brand.id) return ''
307
+ // return brand.id
308
+ // } catch (error) {
309
+ // errorMessage(`Error while parsing brand: ${error} - ${JSON.stringify(error)}`)
310
+ // return ''
311
+ // }
312
+ // }
313
+ const alterDeclinations = (declinations) => {
314
+ const alteredDeclinations = [];
315
+ const grouped = (0, groupBy_1.default)(declinations, (declination) => declination.attributes.map((_a) => _a.values.map((_v) => _v.slug).join('&&')).join('|'));
316
+ (0, forEach_1.default)(grouped, (g) => {
317
+ // const totalInventory = sumBy(
318
+ // g,
319
+ // (_g) =>
320
+ // (_g.stock_level.store_warehouse_availability.find((a) => !!a.web) || { available: 0 }).available || 0
321
+ // )
322
+ const maxPrice = (0, maxBy_1.default)(g, (_g) => _g.price.regular.amount);
323
+ alteredDeclinations.push(Object.assign(Object.assign({}, g[0]), { price: !!maxPrice ? maxPrice.price : g[0].price }));
324
+ });
325
+ return alteredDeclinations;
326
+ };
327
+ const createDeclinations = async (children, parents, options, org, space, spaceObj) => {
328
+ // const _fullParents: any[] = []
329
+ // const bSize = 500
330
+ // for (let i = 0; i < Math.ceil(parents.length / bSize); i++) {
331
+ // await new Promise((resolve) => {
332
+ // setTimeout(() => {
333
+ // resolve(true)
334
+ // }, 50000)
335
+ // })
336
+ // }
337
+ const fullParents = [
338
+ ...parents.map((p) => async () => {
339
+ const parent = await createParent(p, options, org, space, spaceObj);
340
+ // const isNeedle = typeof p.sku === 'string' && p.sku.toLowerCase()[0] === 'a'
341
+ const isNeedle = false;
342
+ const isOtherTier = false;
343
+ // const isOtherTier =
344
+ // !isNeedle && !!toNumber(p.web.replace(/,/g, '.')) && !!toNumber(p.pref.replace(/,/g, '.'))
345
+ const declinations = [
346
+ {
347
+ disabled: !!p.disabled && p.disabled.includes('1'),
348
+ attributes: getProductAttributesForDeclination(options, p, spaceObj),
349
+ //#region DR
350
+ discount_rules: !isNeedle && !isOtherTier
351
+ ? [
352
+ // No discount rules
353
+ ]
354
+ : isNeedle
355
+ ? [
356
+ // Needle discount rule (5000/10000)}
357
+ {
358
+ draft: false,
359
+ appliesTo: {
360
+ label: 'product',
361
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
362
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
363
+ value: p.sku
364
+ },
365
+ id: `aiguile-1-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
366
+ ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)}`,
367
+ description: [],
368
+ discountRule_type: 'tier-pricing',
369
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
370
+ result: {
371
+ action: 'amount',
372
+ action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
373
+ ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)
374
+ },
375
+ rules: [
376
+ {
377
+ field: 'slug',
378
+ ruleDetails: [
379
+ {
380
+ operator: '==',
381
+ value: [p.sku],
382
+ condition: 'AND'
383
+ }
384
+ ],
385
+ condition: 'AND'
386
+ },
387
+ {
388
+ condition: 'AND',
389
+ field: 'quantity',
390
+ ruleDetails: [
391
+ {
392
+ condition: 'AND',
393
+ operator: 'between',
394
+ value: [5000, 9999]
395
+ }
396
+ ]
397
+ }
398
+ ],
399
+ noExtraRules: false,
400
+ is_stackable: true
401
+ },
402
+ {
403
+ draft: false,
404
+ appliesTo: {
405
+ label: 'product',
406
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
407
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
408
+ value: p.sku
409
+ },
410
+ id: `aiguile-2-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
411
+ ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)}`,
412
+ description: [],
413
+ discountRule_type: 'tier-pricing',
414
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
415
+ result: {
416
+ action: 'amount',
417
+ action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
418
+ ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)
419
+ },
420
+ rules: [
421
+ {
422
+ field: 'slug',
423
+ ruleDetails: [
424
+ {
425
+ operator: '==',
426
+ value: [p.sku],
427
+ condition: 'AND'
428
+ }
429
+ ],
430
+ condition: 'AND'
431
+ },
432
+ {
433
+ condition: 'AND',
434
+ field: 'quantity',
435
+ ruleDetails: [
436
+ {
437
+ condition: 'AND',
438
+ operator: 'between',
439
+ value: [9999, 999999]
440
+ }
441
+ ]
442
+ }
443
+ ],
444
+ noExtraRules: false,
445
+ is_stackable: true
446
+ }
447
+ ]
448
+ : [
449
+ // Other discount rule (6/12)}
450
+ {
451
+ draft: false,
452
+ appliesTo: {
453
+ label: 'product',
454
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
455
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
456
+ value: p.sku
457
+ },
458
+ id: `other-1-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
459
+ ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)}`,
460
+ description: [],
461
+ discountRule_type: 'tier-pricing',
462
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
463
+ result: {
464
+ action: 'amount',
465
+ action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
466
+ ((0, toNumber_1.default)(!!!p.pref ? 0 : p.pref.replace(/,/g, '.')) || 0)
467
+ },
468
+ rules: [
469
+ {
470
+ field: 'slug',
471
+ ruleDetails: [
472
+ {
473
+ operator: '==',
474
+ value: [p.sku],
475
+ condition: 'AND'
476
+ }
477
+ ],
478
+ condition: 'AND'
479
+ },
480
+ {
481
+ condition: 'AND',
482
+ field: 'quantity',
483
+ ruleDetails: [
484
+ {
485
+ condition: 'AND',
486
+ operator: 'between',
487
+ value: [6, 11]
488
+ }
489
+ ]
490
+ }
491
+ ],
492
+ noExtraRules: false,
493
+ is_stackable: true
494
+ },
495
+ {
496
+ draft: false,
497
+ appliesTo: {
498
+ label: 'product',
499
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
500
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
501
+ value: p.sku
502
+ },
503
+ id: `other-2-${((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
504
+ ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)}`,
505
+ description: [],
506
+ discountRule_type: 'tier-pricing',
507
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
508
+ result: {
509
+ action: 'amount',
510
+ action_value: ((0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0) -
511
+ ((0, toNumber_1.default)(!!!p.web ? 0 : p.web.replace(/,/g, '.')) || 0)
512
+ },
513
+ rules: [
514
+ {
515
+ field: 'slug',
516
+ ruleDetails: [
517
+ {
518
+ operator: '==',
519
+ value: [p.sku],
520
+ condition: 'AND'
521
+ }
522
+ ],
523
+ condition: 'AND'
524
+ },
525
+ {
526
+ condition: 'AND',
527
+ field: 'quantity',
528
+ ruleDetails: [
529
+ {
530
+ condition: 'AND',
531
+ operator: 'between',
532
+ value: [12, 999999]
533
+ }
534
+ ]
535
+ }
536
+ ],
537
+ noExtraRules: false,
538
+ is_stackable: true
539
+ }
540
+ ],
541
+ //#endregion
542
+ image_files: !!!p.images || (Array.isArray(p.images) && !!!p.images.length) || !!!p.is_multiple
543
+ ? !!!p.parent_images
544
+ ? await Promise.all(p.parent_images
545
+ .split(',')
546
+ .slice(0, !!p.is_multiple ? 1 : undefined)
547
+ .map(async (img_path) => ({
548
+ img_alt: putToLang(['fr', 'en'], p.name),
549
+ // img_path,
550
+ img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${p.parent_slug}`),
551
+ // img_path: '',
552
+ img_title: putToLang(['fr', 'en'], p.name)
553
+ })))
554
+ : []
555
+ : await Promise.all(p.images.split(',').map(async (img_path) => ({
556
+ img_alt: putToLang(['fr', 'en'], p.name),
557
+ // img_path,
558
+ img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${p.parent_slug}`),
559
+ // img_path: '',
560
+ img_title: putToLang(['fr', 'en'], p.name)
561
+ }))),
562
+ name: putToLang(['fr', 'en'], p.name),
563
+ price: {
564
+ regular: {
565
+ amount: (0, toNumber_1.default)(!!!p.courant ? 0 : p.courant.replace(/,/g, '.')) || 0
566
+ },
567
+ pdsf: {
568
+ amount: (0, toNumber_1.default)(!!!p.pdsf ? 0 : p.pdsf.replace(/,/g, '.')) || 0
569
+ },
570
+ cost: {
571
+ amount: (0, toNumber_1.default)(!!!p.cost ? 0 : p.cost.replace(/,/g, '.')) || 0
572
+ }
573
+ },
574
+ shipping_info: {
575
+ unit_measurments: 'centimeters',
576
+ unit_weight: 'kilograms',
577
+ height: (0, toNumber_1.default)(!!!p.height ? 0 : p.height.replace(/,/g, '.')) || 0,
578
+ width: (0, toNumber_1.default)(!!!p.width ? 0 : p.width.replace(/,/g, '.')) || 0,
579
+ length: (0, toNumber_1.default)(!!!p.length ? 0 : p.length.replace(/,/g, '.')) || 0,
580
+ weight: (0, toNumber_1.default)(!!!p.weight ? 0 : p.weight.replace(/,/g, '.')) || 0
581
+ },
582
+ sku: p.sku,
583
+ slug: p.sku,
584
+ // stock_level: {
585
+ // store_warehouse_availability: [
586
+ // {
587
+ // warehouse_id: !!spaceObj ? spaceObj.getWebStoreOrWarehouseId() : 'default',
588
+ // web: true,
589
+ // on_hand: toNumber(p.stock_level),
590
+ // available: toNumber(p.stock_level)
591
+ // }
592
+ // ],
593
+ // to_be_receptioned: 0
594
+ // },
595
+ description: putToLang(['fr', 'en'], !!p.description ? p.description : !!p.parent_description ? p.parent_description : '')
596
+ }
597
+ ];
598
+ return Object.assign(Object.assign({}, parent), { draft: !!p.draft && p.draft.includes('1'), declinations: (0, toString_1.default)(p.is_multiple).toUpperCase() === '1' ? declinations : alterDeclinations(declinations) });
599
+ }),
600
+ ...(0, map_1.default)(children, (p) => async () => {
601
+ const parent = await createParent(p[0], options, org, space, spaceObj, p);
602
+ const isNeedle = typeof p[0].sku === 'string' && p[0].sku.toLowerCase()[0] === 'a';
603
+ const isOtherTier = !isNeedle &&
604
+ !!(0, toNumber_1.default)(!!!p[0].web ? 0 : p[0].web.replace(/,/g, '.')) &&
605
+ !!(0, toNumber_1.default)(!!!p[0].pref ? 0 : p[0].pref.replace(/,/g, '.'));
606
+ const declinations = await Promise.all((0, map_1.default)(p, async (_p) => {
607
+ return {
608
+ attributes: getProductAttributesForDeclination(options, _p, spaceObj),
609
+ disabled: !!_p.disabled && _p.disabled.includes('1'),
610
+ //#region DR
611
+ discount_rules: !isNeedle && !isOtherTier
612
+ ? [
613
+ // No discount rules
614
+ ]
615
+ : isNeedle
616
+ ? [
617
+ // Needle discount rule (5000/10000)}
618
+ {
619
+ draft: false,
620
+ appliesTo: {
621
+ label: 'product',
622
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
623
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
624
+ value: _p.sku
625
+ },
626
+ id: `aiguile-1-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
627
+ ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)}`,
628
+ description: [],
629
+ discountRule_type: 'tier-pricing',
630
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
631
+ result: {
632
+ action: 'amount',
633
+ action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
634
+ ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)
635
+ },
636
+ rules: [
637
+ {
638
+ field: 'slug',
639
+ ruleDetails: [
640
+ {
641
+ operator: '==',
642
+ value: [_p.sku],
643
+ condition: 'AND'
644
+ }
645
+ ],
646
+ condition: 'AND'
647
+ },
648
+ {
649
+ condition: 'AND',
650
+ field: 'quantity',
651
+ ruleDetails: [
652
+ {
653
+ condition: 'AND',
654
+ operator: 'between',
655
+ value: [5000, 9999]
656
+ }
657
+ ]
658
+ }
659
+ ],
660
+ noExtraRules: false,
661
+ is_stackable: true
662
+ },
663
+ {
664
+ draft: false,
665
+ appliesTo: {
666
+ label: 'product',
667
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
668
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
669
+ value: _p.sku
670
+ },
671
+ id: `aiguile-2-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
672
+ ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)}`,
673
+ description: [],
674
+ discountRule_type: 'tier-pricing',
675
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
676
+ result: {
677
+ action: 'amount',
678
+ action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
679
+ ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)
680
+ },
681
+ rules: [
682
+ {
683
+ field: 'slug',
684
+ ruleDetails: [
685
+ {
686
+ operator: '==',
687
+ value: [_p.sku],
688
+ condition: 'AND'
689
+ }
690
+ ],
691
+ condition: 'AND'
692
+ },
693
+ {
694
+ condition: 'AND',
695
+ field: 'quantity',
696
+ ruleDetails: [
697
+ {
698
+ condition: 'AND',
699
+ operator: 'between',
700
+ value: [9999, 999999]
701
+ }
702
+ ]
703
+ }
704
+ ],
705
+ noExtraRules: false,
706
+ is_stackable: true
707
+ }
708
+ ]
709
+ : [
710
+ // Other discount rule (6/12)}
711
+ {
712
+ draft: false,
713
+ appliesTo: {
714
+ label: 'product',
715
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
716
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
717
+ value: _p.sku
718
+ },
719
+ id: `other-1-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
720
+ ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)}`,
721
+ description: [],
722
+ discountRule_type: 'tier-pricing',
723
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
724
+ result: {
725
+ action: 'amount',
726
+ action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
727
+ ((0, toNumber_1.default)(!!!_p.pref ? 0 : _p.pref.replace(/,/g, '.')) || 0)
728
+ },
729
+ rules: [
730
+ {
731
+ field: 'slug',
732
+ ruleDetails: [
733
+ {
734
+ operator: '==',
735
+ value: [_p.sku],
736
+ condition: 'AND'
737
+ }
738
+ ],
739
+ condition: 'AND'
740
+ },
741
+ {
742
+ condition: 'AND',
743
+ field: 'quantity',
744
+ ruleDetails: [
745
+ {
746
+ condition: 'AND',
747
+ operator: 'between',
748
+ value: [6, 11]
749
+ }
750
+ ]
751
+ }
752
+ ],
753
+ noExtraRules: false,
754
+ is_stackable: true
755
+ },
756
+ {
757
+ draft: false,
758
+ appliesTo: {
759
+ label: 'product',
760
+ check_attribute_value: '8OUv9qj0aDbiLOovd4dp',
761
+ check_other_items_category: 'hfx8p8hNekNvX6ExN9jR',
762
+ value: _p.sku
763
+ },
764
+ id: `other-2-${((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
765
+ ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)}`,
766
+ description: [],
767
+ discountRule_type: 'tier-pricing',
768
+ name: putToLang(['fr', 'en'], 'Tier-pricing automatique'),
769
+ result: {
770
+ action: 'amount',
771
+ action_value: ((0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0) -
772
+ ((0, toNumber_1.default)(!!!_p.web ? 0 : _p.web.replace(/,/g, '.')) || 0)
773
+ },
774
+ rules: [
775
+ {
776
+ field: 'slug',
777
+ ruleDetails: [
778
+ {
779
+ operator: '==',
780
+ value: [_p.sku],
781
+ condition: 'AND'
782
+ }
783
+ ],
784
+ condition: 'AND'
785
+ },
786
+ {
787
+ condition: 'AND',
788
+ field: 'quantity',
789
+ ruleDetails: [
790
+ {
791
+ condition: 'AND',
792
+ operator: 'between',
793
+ value: [12, 999999]
794
+ }
795
+ ]
796
+ }
797
+ ],
798
+ noExtraRules: false,
799
+ is_stackable: true
800
+ }
801
+ ],
802
+ //#endregion
803
+ image_files: !!!_p.images || (Array.isArray(_p.images) && !!!_p.images.length) || !!!_p.is_multiple
804
+ ? !!!_p.parent_images
805
+ ? await Promise.all(_p.parent_images
806
+ .split(',')
807
+ .slice(0, !!_p.is_multiple ? 1 : undefined)
808
+ .map(async (img_path) => ({
809
+ img_alt: putToLang(['fr', 'en'], _p.name),
810
+ // img_path,
811
+ img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${_p.parent_slug}`),
812
+ // img_path: '',
813
+ img_title: putToLang(['fr', 'en'], _p.name)
814
+ })))
815
+ : []
816
+ : await Promise.all(_p.images.split(',').map(async (img_path) => ({
817
+ img_alt: putToLang(['fr', 'en'], _p.name),
818
+ // img_path,
819
+ img_path: await (0, exports.createImage)(img_path, `/the_beast/1.0.0/orgs/${org}/spaces/${space}/products/${_p.parent_slug}`),
820
+ // img_path: '',
821
+ img_title: putToLang(['fr', 'en'], _p.name)
822
+ }))),
823
+ name: putToLang(['fr', 'en'], _p.name),
824
+ price: {
825
+ regular: {
826
+ amount: (0, toNumber_1.default)(!!!_p.courant ? 0 : _p.courant.replace(/,/g, '.')) || 0
827
+ },
828
+ pdsf: {
829
+ amount: (0, toNumber_1.default)(!!!_p.pdsf ? 0 : _p.pdsf.replace(/,/g, '.')) || 0
830
+ },
831
+ cost: {
832
+ amount: (0, toNumber_1.default)(!!!_p.cost ? 0 : _p.cost.replace(/,/g, '.')) || 0
833
+ }
834
+ },
835
+ shipping_info: {
836
+ unit_measurments: 'centimeters',
837
+ unit_weight: 'kilograms',
838
+ height: (0, toNumber_1.default)(!!!_p.height ? 0 : _p.height.replace(/,/g, '.')) || 0,
839
+ width: (0, toNumber_1.default)(!!!_p.width ? 0 : _p.width.replace(/,/g, '.')) || 0,
840
+ length: (0, toNumber_1.default)(!!!_p.length ? 0 : _p.length.replace(/,/g, '.')) || 0,
841
+ weight: (0, toNumber_1.default)(!!!_p.weight ? 0 : _p.weight.replace(/,/g, '.')) || 0
842
+ },
843
+ sku: _p.sku,
844
+ slug: _p.sku,
845
+ // stock_level: {
846
+ // store_warehouse_availability: [
847
+ // {
848
+ // warehouse_id: !!spaceObj ? spaceObj.getWebStoreOrWarehouseId() : 'default',
849
+ // web: true,
850
+ // on_hand: toNumber(_p.stock_level),
851
+ // available: toNumber(_p.stock_level)
852
+ // }
853
+ // ],
854
+ // to_be_receptioned: 0
855
+ // },
856
+ description: putToLang(['fr', 'en'], !!_p.description ? _p.description : !!_p.parent_description ? _p.parent_description : '')
857
+ };
858
+ }));
859
+ return Object.assign(Object.assign({}, parent), { draft: !!!p.find((_p) => !!_p.draft && _p.draft.includes('0')), declinations: (0, toString_1.default)(p[0].is_multiple).toUpperCase() === '1' ? declinations : alterDeclinations(declinations) });
860
+ })
861
+ ];
862
+ return fullParents;
863
+ };
864
+ const createImage = async (path, pathToStore) => {
865
+ try {
866
+ const imgCors = await (0, isomorphic_unfetch_1.default)('/api/services/cors', {
867
+ headers: { 'content-type': 'application/json' },
868
+ method: 'POST',
869
+ body: JSON.stringify({
870
+ props: { method: 'GET', body: {}, headers: { contentType: 'base64' } },
871
+ url: path.replace(/ /gi, '').trim()
872
+ })
873
+ });
874
+ const content = await imgCors.json();
875
+ const data = content.data;
876
+ return await (0, file_1.uploadStringToPath)(data, pathToStore, path.split('.')[path.split('.').length - 2].split('/')[path.split('.')[path.split('.').length - 2].split('/').length - 1], path.split('.')[path.split('.').length - 1]);
877
+ }
878
+ catch (error) {
879
+ return path;
880
+ }
881
+ };
882
+ exports.createImage = createImage;
883
883
  //# sourceMappingURL=IImportProduct.js.map