addio-admin-sdk 1.6.39 → 1.6.41

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 (502) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/publish_coverage.yaml +69 -69
  4. package/addio-sdk-doc.md +1380 -1380
  5. package/changelog.md +390 -390
  6. package/dist/Interfaces/Address/index.d.ts +21 -21
  7. package/dist/Interfaces/Address/index.js +16 -16
  8. package/dist/Interfaces/Algolia/index.d.ts +147 -147
  9. package/dist/Interfaces/Algolia/index.js +2 -2
  10. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  11. package/dist/Interfaces/Attachement/index.js +2 -2
  12. package/dist/Interfaces/Attribute/index.d.ts +47 -47
  13. package/dist/Interfaces/Attribute/index.js +10 -10
  14. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  15. package/dist/Interfaces/BGJob/index.js +36 -36
  16. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  17. package/dist/Interfaces/BaseClass/index.js +2 -2
  18. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  19. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  20. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  21. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  22. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  23. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  24. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  25. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  26. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  27. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  28. package/dist/Interfaces/Booking/index.d.ts +68 -68
  29. package/dist/Interfaces/Booking/index.js +17 -17
  30. package/dist/Interfaces/Brand/index.d.ts +13 -13
  31. package/dist/Interfaces/Brand/index.js +2 -2
  32. package/dist/Interfaces/CMS/index.d.ts +25 -25
  33. package/dist/Interfaces/CMS/index.js +2 -2
  34. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  35. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  36. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  37. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  38. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  39. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  40. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  41. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  42. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  43. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  44. package/dist/Interfaces/Cart/index.d.ts +397 -397
  45. package/dist/Interfaces/Cart/index.js +181 -181
  46. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  47. package/dist/Interfaces/Catalogue/index.js +37 -37
  48. package/dist/Interfaces/Category/index.d.ts +26 -26
  49. package/dist/Interfaces/Category/index.js +2 -2
  50. package/dist/Interfaces/Chart/index.d.ts +11 -11
  51. package/dist/Interfaces/Chart/index.js +2 -2
  52. package/dist/Interfaces/Class/index.d.ts +8 -8
  53. package/dist/Interfaces/Class/index.js +2 -2
  54. package/dist/Interfaces/Consent/index.d.ts +6 -6
  55. package/dist/Interfaces/Consent/index.js +2 -2
  56. package/dist/Interfaces/Context/IContextProps.d.ts +5 -5
  57. package/dist/Interfaces/Context/IContextProps.js +2 -2
  58. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  59. package/dist/Interfaces/Context/IContextState.js +2 -2
  60. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  61. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  62. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  63. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  64. package/dist/Interfaces/Customer/index.d.ts +92 -92
  65. package/dist/Interfaces/Customer/index.js +158 -158
  66. package/dist/Interfaces/Declination/index.d.ts +106 -106
  67. package/dist/Interfaces/Declination/index.js +64 -64
  68. package/dist/Interfaces/Document/index.d.ts +8 -8
  69. package/dist/Interfaces/Document/index.js +2 -2
  70. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  71. package/dist/Interfaces/Elastic/index.js +2 -2
  72. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  73. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  74. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  75. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  76. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  77. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  78. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  79. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  80. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  81. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  83. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  85. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  87. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  89. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  90. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  91. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  92. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  93. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  94. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  95. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  96. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  97. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  98. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  99. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  100. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  101. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  102. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  103. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  104. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  105. package/dist/Interfaces/Email/IEmail.js +69 -69
  106. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  107. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  108. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  109. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  110. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  111. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  112. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  113. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  114. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  115. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  116. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  117. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  118. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  119. package/dist/Interfaces/ExportSchema/index.js +2 -2
  120. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  121. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  122. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  123. package/dist/Interfaces/ExternalService/index.js +2 -2
  124. package/dist/Interfaces/G2/index.d.ts +286 -286
  125. package/dist/Interfaces/G2/index.js +31 -31
  126. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  127. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  128. package/dist/Interfaces/Indexed/Product/index.d.ts +91 -91
  129. package/dist/Interfaces/Indexed/Product/index.js +315 -315
  130. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  131. package/dist/Interfaces/Inventory/index.js +8 -8
  132. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  133. package/dist/Interfaces/Invoice/index.js +2 -2
  134. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  135. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  136. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  137. package/dist/Interfaces/MarketplacePublication/index.js +33 -33
  138. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  139. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  140. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  141. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  142. package/dist/Interfaces/Order/index.d.ts +4 -4
  143. package/dist/Interfaces/Order/index.js +2 -2
  144. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  145. package/dist/Interfaces/Org/IRelUser.js +2 -2
  146. package/dist/Interfaces/Org/index.d.ts +29 -29
  147. package/dist/Interfaces/Org/index.js +12 -12
  148. package/dist/Interfaces/Payment/index.d.ts +11 -11
  149. package/dist/Interfaces/Payment/index.js +2 -2
  150. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  151. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  152. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  153. package/dist/Interfaces/Product/IImportProduct.js +966 -966
  154. package/dist/Interfaces/Product/IInventoryItem.d.ts +81 -81
  155. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  156. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  157. package/dist/Interfaces/Product/IPricing.js +174 -174
  158. package/dist/Interfaces/Product/index.d.ts +121 -121
  159. package/dist/Interfaces/Product/index.js +56 -56
  160. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  161. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  162. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  163. package/dist/Interfaces/PromiseToPurchase/BankType.js +42 -42
  164. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  165. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  166. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  167. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  168. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  169. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  170. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  171. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  172. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  173. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  174. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  175. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  176. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +15 -15
  177. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  178. package/dist/Interfaces/Quote/index.d.ts +5 -5
  179. package/dist/Interfaces/Quote/index.js +2 -2
  180. package/dist/Interfaces/Rules/IDiscountRule.d.ts +131 -131
  181. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  182. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  183. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  184. package/dist/Interfaces/Services/IService.d.ts +12 -12
  185. package/dist/Interfaces/Services/IService.js +2 -2
  186. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  187. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  188. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  189. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  190. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  191. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  192. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  193. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  194. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  195. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  196. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  197. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  198. package/dist/Interfaces/Slider/GR.d.ts +130 -130
  199. package/dist/Interfaces/Slider/GR.js +271 -271
  200. package/dist/Interfaces/Slider/index.d.ts +14 -14
  201. package/dist/Interfaces/Slider/index.js +2 -2
  202. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  203. package/dist/Interfaces/Space/IMember.js +9 -9
  204. package/dist/Interfaces/Space/index.d.ts +313 -313
  205. package/dist/Interfaces/Space/index.js +78 -78
  206. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  207. package/dist/Interfaces/Specials/gr.js +2 -2
  208. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  209. package/dist/Interfaces/StockNotification/index.js +2 -2
  210. package/dist/Interfaces/Store/index.d.ts +60 -60
  211. package/dist/Interfaces/Store/index.js +27 -27
  212. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  213. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  214. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  215. package/dist/Interfaces/Supplier/index.js +24 -24
  216. package/dist/Interfaces/Tag/index.d.ts +18 -18
  217. package/dist/Interfaces/Tag/index.js +2 -2
  218. package/dist/Interfaces/Tax/index.d.ts +12 -12
  219. package/dist/Interfaces/Tax/index.js +2 -2
  220. package/dist/Interfaces/TransferRequest/index.d.ts +32 -32
  221. package/dist/Interfaces/TransferRequest/index.js +26 -26
  222. package/dist/Interfaces/Translation/index.d.ts +4 -4
  223. package/dist/Interfaces/Translation/index.js +2 -2
  224. package/dist/Interfaces/Update/index.d.ts +10 -10
  225. package/dist/Interfaces/Update/index.js +2 -2
  226. package/dist/Interfaces/User/IUser.d.ts +29 -29
  227. package/dist/Interfaces/User/IUser.js +8 -8
  228. package/dist/Interfaces/Version/index.d.ts +11 -11
  229. package/dist/Interfaces/Version/index.js +2 -2
  230. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  231. package/dist/Interfaces/Wishlist/index.js +2 -2
  232. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  233. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  234. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  235. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  236. package/dist/constants/enums.d.ts +6 -6
  237. package/dist/constants/enums.js +10 -10
  238. package/dist/constants/version.d.ts +2 -2
  239. package/dist/constants/version.js +5 -5
  240. package/dist/index.d.ts +32 -32
  241. package/dist/index.js +416 -416
  242. package/dist/lib/Attribute/index.d.ts +14 -14
  243. package/dist/lib/Attribute/index.js +249 -249
  244. package/dist/lib/BGJob/index.d.ts +9 -9
  245. package/dist/lib/BGJob/index.js +376 -376
  246. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  247. package/dist/lib/BackgroundWorker/index.js +72 -72
  248. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  249. package/dist/lib/Blog/BlogArticle.js +28 -28
  250. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  251. package/dist/lib/Blog/BlogAuthor.js +28 -28
  252. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  253. package/dist/lib/Blog/BlogCategory.js +28 -28
  254. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  255. package/dist/lib/Blog/BlogKeyword.js +28 -28
  256. package/dist/lib/Booking/index.d.ts +65 -65
  257. package/dist/lib/Booking/index.js +835 -835
  258. package/dist/lib/Brand/index.d.ts +17 -17
  259. package/dist/lib/Brand/index.js +276 -276
  260. package/dist/lib/Cart/index.d.ts +184 -184
  261. package/dist/lib/Cart/index.js +3766 -3722
  262. package/dist/lib/Cart/index.js.map +1 -1
  263. package/dist/lib/Catalogue/index.d.ts +9 -9
  264. package/dist/lib/Catalogue/index.js +208 -208
  265. package/dist/lib/Category/index.d.ts +26 -26
  266. package/dist/lib/Category/index.js +361 -361
  267. package/dist/lib/Class/index.d.ts +12 -12
  268. package/dist/lib/Class/index.js +159 -159
  269. package/dist/lib/Consent/index.d.ts +4 -4
  270. package/dist/lib/Consent/index.js +79 -79
  271. package/dist/lib/Customer/index.d.ts +10 -10
  272. package/dist/lib/Customer/index.js +147 -147
  273. package/dist/lib/Declination/index.d.ts +10 -10
  274. package/dist/lib/Declination/index.js +85 -85
  275. package/dist/lib/Discount/index.d.ts +18 -18
  276. package/dist/lib/Discount/index.js +759 -759
  277. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  278. package/dist/lib/ElasticSearch/index.js +101 -101
  279. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  280. package/dist/lib/Email/AbandonedCartEmail.js +78 -78
  281. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  282. package/dist/lib/Email/AccountConfirmationEmail.js +95 -95
  283. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  284. package/dist/lib/Email/AdminOrderConfirmationEmail.js +78 -78
  285. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  286. package/dist/lib/Email/ApplicationEmail.js +78 -78
  287. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  288. package/dist/lib/Email/BackInStockEmail.js +78 -78
  289. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  290. package/dist/lib/Email/ContactEmail.js +78 -78
  291. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  292. package/dist/lib/Email/CustomerBookingAdminEmail.js +78 -78
  293. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  294. package/dist/lib/Email/CustomerBookingEmail.js +78 -78
  295. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  296. package/dist/lib/Email/OrderConfirmationEmail.js +78 -78
  297. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  298. package/dist/lib/Email/OrderDenounciationEmail.js +78 -78
  299. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  300. package/dist/lib/Email/OrderSampleEmail.js +78 -78
  301. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  302. package/dist/lib/Email/OtherTypeEmails.js +90 -90
  303. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  304. package/dist/lib/Email/PasswordResetEmail.js +78 -78
  305. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  306. package/dist/lib/Email/PhotoShootEmail.js +78 -78
  307. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  308. package/dist/lib/Email/PickUpConfirmation.js +78 -78
  309. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  310. package/dist/lib/Email/ShippingConfirmation.js +78 -78
  311. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  312. package/dist/lib/Email/WelcomeEmail.js +78 -78
  313. package/dist/lib/Email/index.d.ts +8 -8
  314. package/dist/lib/Email/index.js +82 -82
  315. package/dist/lib/ExternalService/Ebay.d.ts +63 -63
  316. package/dist/lib/ExternalService/Ebay.js +185 -185
  317. package/dist/lib/ExternalService/index.d.ts +5 -5
  318. package/dist/lib/ExternalService/index.js +28 -28
  319. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  320. package/dist/lib/Indexed/IndexedCart.js +194 -194
  321. package/dist/lib/Indexed/Product.d.ts +17 -17
  322. package/dist/lib/Indexed/Product.js +116 -116
  323. package/dist/lib/Inventory/index.d.ts +31 -31
  324. package/dist/lib/Inventory/index.js +560 -560
  325. package/dist/lib/Invoice/index.d.ts +5 -5
  326. package/dist/lib/Invoice/index.js +28 -28
  327. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  328. package/dist/lib/MarketplacePublication/index.js +221 -221
  329. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  330. package/dist/lib/MongoDB/BaseAPI.js +308 -308
  331. package/dist/lib/Order/index.d.ts +7 -7
  332. package/dist/lib/Order/index.js +62 -62
  333. package/dist/lib/Org/index.d.ts +26 -26
  334. package/dist/lib/Org/index.js +283 -283
  335. package/dist/lib/PandaPay/index.d.ts +16 -16
  336. package/dist/lib/PandaPay/index.js +219 -219
  337. package/dist/lib/Paysafe/index.d.ts +11 -11
  338. package/dist/lib/Paysafe/index.js +100 -100
  339. package/dist/lib/Product/index.d.ts +143 -143
  340. package/dist/lib/Product/index.js +1326 -1326
  341. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  342. package/dist/lib/ProductAttribute/index.js +114 -114
  343. package/dist/lib/PromiseToPurchase/index.d.ts +35 -35
  344. package/dist/lib/PromiseToPurchase/index.js +474 -474
  345. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  346. package/dist/lib/PurchaseOrder/index.js +72 -72
  347. package/dist/lib/Queue/index.d.ts +40 -40
  348. package/dist/lib/Queue/index.js +254 -254
  349. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  350. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  351. package/dist/lib/Service/index.d.ts +5 -5
  352. package/dist/lib/Service/index.js +57 -57
  353. package/dist/lib/Shipment/index.d.ts +28 -28
  354. package/dist/lib/Shipment/index.js +559 -559
  355. package/dist/lib/Slider/index.d.ts +16 -16
  356. package/dist/lib/Slider/index.js +235 -235
  357. package/dist/lib/Space/index.d.ts +769 -769
  358. package/dist/lib/Space/index.js +6689 -6689
  359. package/dist/lib/StockNotification/index.d.ts +4 -4
  360. package/dist/lib/StockNotification/index.js +26 -26
  361. package/dist/lib/Store/index.d.ts +5 -5
  362. package/dist/lib/Store/index.js +30 -30
  363. package/dist/lib/Supplier/Command.d.ts +5 -5
  364. package/dist/lib/Supplier/Command.js +28 -28
  365. package/dist/lib/Supplier/index.d.ts +25 -25
  366. package/dist/lib/Supplier/index.js +92 -92
  367. package/dist/lib/Tags/index.d.ts +6 -6
  368. package/dist/lib/Tags/index.js +84 -84
  369. package/dist/lib/Tax/index.d.ts +8 -8
  370. package/dist/lib/Tax/index.js +136 -136
  371. package/dist/lib/TransferRequest/index.d.ts +21 -21
  372. package/dist/lib/TransferRequest/index.js +302 -302
  373. package/dist/lib/Update/index.d.ts +10 -10
  374. package/dist/lib/Update/index.js +71 -71
  375. package/dist/lib/User/index.d.ts +33 -33
  376. package/dist/lib/User/index.js +360 -360
  377. package/dist/lib/Wishlist/index.d.ts +5 -5
  378. package/dist/lib/Wishlist/index.js +28 -28
  379. package/dist/lib/base.d.ts +14 -14
  380. package/dist/lib/base.js +135 -135
  381. package/dist/lib/baseService.d.ts +17 -17
  382. package/dist/lib/baseService.js +114 -114
  383. package/dist/rules/GR/constants/data.d.ts +28 -28
  384. package/dist/rules/GR/constants/data.js +57 -57
  385. package/dist/rules/GR/constants/products.d.ts +8 -8
  386. package/dist/rules/GR/constants/products.js +234 -234
  387. package/dist/rules/GR/interfaces/cart.d.ts +68 -68
  388. package/dist/rules/GR/interfaces/cart.js +49 -49
  389. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  390. package/dist/rules/GR/interfaces/data.js +104 -104
  391. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  392. package/dist/rules/GR/interfaces/products.js +10 -10
  393. package/dist/rules/GR/utils/cart.d.ts +39 -39
  394. package/dist/rules/GR/utils/cart.js +661 -661
  395. package/dist/rules/GR/utils/data.d.ts +3 -3
  396. package/dist/rules/GR/utils/data.js +25 -25
  397. package/dist/rules/GR/utils/expedition.d.ts +70 -70
  398. package/dist/rules/GR/utils/expedition.js +1584 -1584
  399. package/dist/rules/GR/utils/g2.d.ts +153 -153
  400. package/dist/rules/GR/utils/g2.js +920 -920
  401. package/dist/rules/GR/utils/invoices.d.ts +5 -5
  402. package/dist/rules/GR/utils/invoices.js +123 -123
  403. package/dist/rules/GR/utils/products.d.ts +105 -105
  404. package/dist/rules/GR/utils/products.js +1025 -1025
  405. package/dist/rules/GR/utils/upsells.d.ts +75 -75
  406. package/dist/rules/GR/utils/upsells.js +278 -278
  407. package/dist/services/database/BaseProvider.d.ts +28 -28
  408. package/dist/services/database/BaseProvider.js +77 -77
  409. package/dist/services/database/BatchUtils.d.ts +14 -14
  410. package/dist/services/database/BatchUtils.js +88 -88
  411. package/dist/services/database/Config.d.ts +2 -2
  412. package/dist/services/database/Config.js +5 -5
  413. package/dist/services/database/DatabaseService.d.ts +42 -42
  414. package/dist/services/database/DatabaseService.js +311 -311
  415. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  416. package/dist/services/database/FirebaseProvider.js +312 -312
  417. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  418. package/dist/services/database/NotFirebaseProvider.js +367 -367
  419. package/dist/services/logs/index.d.ts +11 -11
  420. package/dist/services/logs/index.js +85 -85
  421. package/dist/utils/algolia.d.ts +6 -6
  422. package/dist/utils/algolia.js +22 -22
  423. package/dist/utils/anonymisation.d.ts +30 -30
  424. package/dist/utils/anonymisation.js +269 -269
  425. package/dist/utils/array.d.ts +5 -5
  426. package/dist/utils/array.js +36 -36
  427. package/dist/utils/aws.d.ts +14 -14
  428. package/dist/utils/aws.js +220 -220
  429. package/dist/utils/booking.d.ts +22 -22
  430. package/dist/utils/booking.js +175 -175
  431. package/dist/utils/cart.d.ts +519 -519
  432. package/dist/utils/cart.js +508 -508
  433. package/dist/utils/cmv.d.ts +10 -10
  434. package/dist/utils/cmv.js +107 -107
  435. package/dist/utils/console.d.ts +6 -6
  436. package/dist/utils/console.js +121 -121
  437. package/dist/utils/context.d.ts +19 -19
  438. package/dist/utils/context.js +41 -41
  439. package/dist/utils/currency.d.ts +6 -6
  440. package/dist/utils/currency.js +62 -62
  441. package/dist/utils/data.d.ts +40 -40
  442. package/dist/utils/data.js +233 -233
  443. package/dist/utils/date.d.ts +1 -1
  444. package/dist/utils/date.js +16 -16
  445. package/dist/utils/dimensions.d.ts +3 -3
  446. package/dist/utils/dimensions.js +18 -18
  447. package/dist/utils/discount.d.ts +33 -33
  448. package/dist/utils/discount.js +919 -919
  449. package/dist/utils/errors.d.ts +113 -113
  450. package/dist/utils/errors.js +113 -113
  451. package/dist/utils/file-admin.d.ts +8 -8
  452. package/dist/utils/file-admin.js +94 -94
  453. package/dist/utils/file.d.ts +38 -38
  454. package/dist/utils/file.js +318 -318
  455. package/dist/utils/firebase-admin.d.ts +2 -2
  456. package/dist/utils/firebase-admin.js +118 -118
  457. package/dist/utils/firebase.d.ts +41 -41
  458. package/dist/utils/firebase.js +220 -220
  459. package/dist/utils/import.d.ts +1 -1
  460. package/dist/utils/import.js +81 -81
  461. package/dist/utils/inventories.d.ts +26 -26
  462. package/dist/utils/inventories.js +368 -368
  463. package/dist/utils/locale.d.ts +13 -13
  464. package/dist/utils/locale.js +67 -67
  465. package/dist/utils/mailchimp.d.ts +57 -57
  466. package/dist/utils/mailchimp.js +735 -735
  467. package/dist/utils/mongodb.d.ts +1 -1
  468. package/dist/utils/mongodb.js +68 -68
  469. package/dist/utils/object.d.ts +12 -12
  470. package/dist/utils/object.js +129 -129
  471. package/dist/utils/payment.d.ts +10 -10
  472. package/dist/utils/payment.js +25 -25
  473. package/dist/utils/products.d.ts +26 -26
  474. package/dist/utils/products.js +301 -301
  475. package/dist/utils/promiseToPurchase.d.ts +56 -56
  476. package/dist/utils/promiseToPurchase.js +228 -228
  477. package/dist/utils/prosprsearch.d.ts +21 -21
  478. package/dist/utils/prosprsearch.js +276 -276
  479. package/dist/utils/sdc.d.ts +10 -10
  480. package/dist/utils/sdc.js +1308 -1308
  481. package/dist/utils/searchIndexes.d.ts +20 -20
  482. package/dist/utils/searchIndexes.js +273 -273
  483. package/dist/utils/services.d.ts +40 -40
  484. package/dist/utils/services.js +407 -407
  485. package/dist/utils/shipment.d.ts +110 -110
  486. package/dist/utils/shipment.js +410 -410
  487. package/dist/utils/simpletexting.d.ts +2 -2
  488. package/dist/utils/simpletexting.js +88 -88
  489. package/dist/utils/sliders.d.ts +4 -4
  490. package/dist/utils/sliders.js +70 -70
  491. package/dist/utils/string.d.ts +16 -16
  492. package/dist/utils/string.js +194 -194
  493. package/dist/utils/update.d.ts +7 -7
  494. package/dist/utils/update.js +244 -244
  495. package/dist/utils/weight.d.ts +3 -3
  496. package/dist/utils/weight.js +18 -18
  497. package/dist/utils/zones.d.ts +10 -10
  498. package/dist/utils/zones.js +287 -287
  499. package/package.json +106 -106
  500. package/publish.sh +143 -143
  501. package/readme.md +182 -182
  502. package/.env +0 -17
@@ -1,736 +1,736 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
- if (ar || !(i in from)) {
52
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
- ar[i] = from[i];
54
- }
55
- }
56
- return to.concat(ar || Array.prototype.slice.call(from));
57
- };
58
- var __importDefault = (this && this.__importDefault) || function (mod) {
59
- return (mod && mod.__esModule) ? mod : { "default": mod };
60
- };
61
- Object.defineProperty(exports, "__esModule", { value: true });
62
- exports.mailchimpActions = exports.getInventories = exports.createProdVariants = exports.getInventoryForDecli = exports.getTypeAttribute = exports.getCustomerAddress = exports.fetchMailchimpService = exports.onCartPaymentAddToMailchimp = exports.callMailchimp = void 0;
63
- var isomorphic_unfetch_1 = __importDefault(require("isomorphic-unfetch"));
64
- var Customer_1 = require("../Interfaces/Customer");
65
- var data_1 = require("../utils/data");
66
- var locale_1 = require("../utils/locale");
67
- var lodash_1 = require("lodash");
68
- var moment_1 = __importDefault(require("moment"));
69
- var uuid_1 = require("uuid");
70
- var invoices_1 = require("../rules/GR/utils/invoices");
71
- var data_2 = require("../rules/GR/interfaces/data");
72
- var callMailchimp = function (space, isTest, endpoint, method, body) { return __awaiter(void 0, void 0, void 0, function () {
73
- var correspondingServices, mailchimp, apiKey, serverName, url, response, e_1;
74
- return __generator(this, function (_a) {
75
- switch (_a.label) {
76
- case 0:
77
- correspondingServices = space.services({
78
- field: 'external_service_name',
79
- value: 'mailchimp'
80
- });
81
- if (!!!correspondingServices || !!!correspondingServices.length)
82
- return [2];
83
- mailchimp = correspondingServices[0];
84
- if (!!!mailchimp || !!!mailchimp.external_service_infos.api)
85
- return [2];
86
- apiKey = mailchimp.external_service_infos.api;
87
- serverName = !!isTest ? 'us9' : mailchimp.external_service_infos.api.split('-')[1];
88
- url = "https://".concat(serverName, ".api.mailchimp.com/3.0");
89
- if (!!endpoint.includes('/customers/') && method === 'GET') {
90
- console.log('-------------');
91
- console.log('going to check if customer exists in mailchimp');
92
- console.log('url called: ', "".concat(url).concat(endpoint));
93
- }
94
- _a.label = 1;
95
- case 1:
96
- _a.trys.push([1, 3, , 4]);
97
- return [4, (0, isomorphic_unfetch_1.default)("".concat(url).concat(endpoint), __assign({ method: method, headers: {
98
- Authorization: "Basic ".concat(apiKey),
99
- 'Content-Type': 'application/json'
100
- } }, (!!body ? { body: JSON.stringify(body) } : {})))];
101
- case 2:
102
- response = _a.sent();
103
- return [2, response];
104
- case 3:
105
- e_1 = _a.sent();
106
- console.log('error on mailchimp call: ', e_1);
107
- throw new Error(e_1.toString());
108
- case 4: return [2];
109
- }
110
- });
111
- }); };
112
- exports.callMailchimp = callMailchimp;
113
- var onCartPaymentAddToMailchimp = function (cartData, space) { return __awaiter(void 0, void 0, void 0, function () {
114
- var isTest, customerEmail, userEmail, isPro, customerBillingName, customerBillingPhone, userMailchimpBody, currentCustomerInfos, currentCustomerResponse, json, e_2, response, reponseJson, e_3, cartType, billingAddress, responseMember, reponseMemberJson, e_4, responseTags, reponseTagsJson, e_5;
115
- return __generator(this, function (_a) {
116
- switch (_a.label) {
117
- case 0:
118
- console.log('---------------------');
119
- console.log('in onCartPaymentAddToMailchimp for cart ' + cartData.ref);
120
- isTest = process.env.GCLOUD_PROJECT !== 'gng-ecr' || process.env.NODE_ENV !== 'production';
121
- customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
122
- userEmail = !!cartData.user_email ? cartData.user_email : '';
123
- isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title && !!cartData.customer_info.pro_proof_doc;
124
- console.log('customer is pro: ', !!isPro);
125
- customerBillingName = !!cartData.billing_address && cartData.billing_address.expedition_recipient_name
126
- ? cartData.billing_address.expedition_recipient_name
127
- : '';
128
- customerBillingPhone = !!cartData.billing_address && cartData.billing_address.expedition_recipient_phone
129
- ? cartData.billing_address.expedition_recipient_phone
130
- : '';
131
- userMailchimpBody = {
132
- email_address: userEmail,
133
- status_if_new: 'subscribed',
134
- merge_fields: {
135
- FNAME: !!customerBillingName ? customerBillingName.split('%')[0] : '',
136
- LNAME: !!customerBillingName && customerBillingName.split('%').length > 1 ? customerBillingName.split('%')[1] : '',
137
- PHONE: !!customerBillingPhone ? customerBillingPhone : ''
138
- }
139
- };
140
- if (!!!isPro) return [3, 10];
141
- console.log('user isPro');
142
- if (!(customerEmail !== userEmail)) return [3, 10];
143
- currentCustomerInfos = undefined;
144
- _a.label = 1;
145
- case 1:
146
- _a.trys.push([1, 5, , 6]);
147
- return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO, "/members/").concat(customerEmail), 'GET')];
148
- case 2:
149
- currentCustomerResponse = _a.sent();
150
- if (!(!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200)) return [3, 4];
151
- return [4, currentCustomerResponse.json()];
152
- case 3:
153
- json = _a.sent();
154
- if (!!json) {
155
- currentCustomerInfos = json;
156
- }
157
- _a.label = 4;
158
- case 4: return [3, 6];
159
- case 5:
160
- e_2 = _a.sent();
161
- console.log('error on fetching current customer: ', e_2);
162
- return [3, 6];
163
- case 6:
164
- _a.trys.push([6, 9, , 10]);
165
- return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO, "/members/").concat(userEmail), 'PUT', __assign(__assign({}, userMailchimpBody), { merge_fields: __assign(__assign({}, (!!currentCustomerInfos && !!currentCustomerInfos.merge_fields
166
- ? currentCustomerInfos.merge_fields
167
- : {})), userMailchimpBody.merge_fields) }))];
168
- case 7:
169
- response = _a.sent();
170
- if (!!!response) {
171
- throw new Error('Mailchimp response undefined');
172
- }
173
- return [4, response.json()];
174
- case 8:
175
- reponseJson = _a.sent();
176
- if (!!response && !!response.status && response.status !== 200) {
177
- if (!!reponseJson) {
178
- throw new Error("".concat(reponseJson.title, " - ").concat(reponseJson.detail));
179
- }
180
- }
181
- return [2, true];
182
- case 9:
183
- e_3 = _a.sent();
184
- console.log('error on saving to mailchimp: ', e_3.toString());
185
- return [2, false];
186
- case 10:
187
- if (!!!!isPro) return [3, 20];
188
- console.log('user is not Pro');
189
- cartType = (0, invoices_1.getOrderTypeString)(cartData, true);
190
- if (!!!userEmail) {
191
- return [2, false];
192
- }
193
- billingAddress = cartData.billing_address;
194
- _a.label = 11;
195
- case 11:
196
- _a.trys.push([11, 14, , 15]);
197
- console.log('calling mailchimp to add customer');
198
- return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER, "/members/").concat(userEmail), 'PUT', __assign(__assign({}, userMailchimpBody), { merge_fields: __assign(__assign({}, userMailchimpBody.merge_fields), (!!billingAddress
199
- ? {
200
- ADDRESS: {
201
- addr1: billingAddress.address.line1,
202
- addr2: billingAddress.address.line2
203
- ? billingAddress.address.line2
204
- : !!billingAddress.address.app
205
- ? billingAddress.address.app
206
- : '',
207
- city: billingAddress.address.city,
208
- state: billingAddress.address.state,
209
- zip: billingAddress.address.postal_code,
210
- country: billingAddress.address.country
211
- }
212
- }
213
- : {})) }))];
214
- case 12:
215
- responseMember = _a.sent();
216
- if (!!!responseMember) {
217
- throw new Error('Mailchimp response undefined');
218
- }
219
- return [4, responseMember.json()];
220
- case 13:
221
- reponseMemberJson = _a.sent();
222
- if (!!responseMember && !!responseMember.status && responseMember.status !== 200) {
223
- if (!!reponseMemberJson) {
224
- throw new Error("".concat(reponseMemberJson.title, " - ").concat(reponseMemberJson.detail));
225
- }
226
- }
227
- return [3, 15];
228
- case 14:
229
- e_4 = _a.sent();
230
- console.log('error on saving customer to mailchimp after cart paid: ', e_4.toString());
231
- return [2, false];
232
- case 15:
233
- _a.trys.push([15, 18, , 19]);
234
- console.log('calling mailchimp to add tags to cart');
235
- return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER, "/members/").concat(userEmail, "/tags"), 'POST', {
236
- tags: __spreadArray([
237
- { name: cartType, status: 'active' }
238
- ], (!!cartData.customer_id || (!!cartData.customer_info && !!cartData.customer_info.pro_proof_doc)
239
- ? [{ name: 'Compte client', status: 'active' }]
240
- : []), true)
241
- })];
242
- case 16:
243
- responseTags = _a.sent();
244
- if (!!!responseTags)
245
- throw new Error('Mailchimp response undefined');
246
- return [4, responseTags.json()];
247
- case 17:
248
- reponseTagsJson = _a.sent();
249
- if (!!responseTags && !!responseTags.status && responseTags.status !== 200) {
250
- if (!!reponseTagsJson) {
251
- throw new Error("".concat(reponseTagsJson.title, " - ").concat(reponseTagsJson.detail));
252
- }
253
- }
254
- return [3, 19];
255
- case 18:
256
- e_5 = _a.sent();
257
- console.log('error on saving tags to list member in mailchimp: ', e_5.toString());
258
- return [2, false];
259
- case 19: return [2, true];
260
- case 20: return [2, true];
261
- }
262
- });
263
- }); };
264
- exports.onCartPaymentAddToMailchimp = onCartPaymentAddToMailchimp;
265
- var _deleteCartFromMailchimp = function (storeID, cartID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
266
- var response, e_6;
267
- return __generator(this, function (_a) {
268
- switch (_a.label) {
269
- case 0:
270
- _a.trys.push([0, 2, , 3]);
271
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/carts/").concat(cartID), 'DELETE')];
272
- case 1:
273
- response = _a.sent();
274
- if (!!response && !!response.status && response.status === 200) {
275
- console.log('Mailchimp cart with id ' + cartID + ' deleted');
276
- return [2];
277
- }
278
- return [3, 3];
279
- case 2:
280
- e_6 = _a.sent();
281
- throw new Error(e_6.toString());
282
- case 3: return [2];
283
- }
284
- });
285
- }); };
286
- var _addOrUpdateCartToMailchimp = function (cartData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
287
- var response, reponseJson, e_7;
288
- return __generator(this, function (_a) {
289
- switch (_a.label) {
290
- case 0:
291
- console.log('** adding or updating cart to mailchimp ** ');
292
- _a.label = 1;
293
- case 1:
294
- _a.trys.push([1, 4, , 5]);
295
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/carts"), 'POST', {
296
- id: cartData.id,
297
- currency_code: cartData.currency || 'CAD',
298
- customer: { id: cartData.id },
299
- order_total: cartData.total,
300
- lines: !!!cartData.items || !!!cartData.items.length
301
- ? []
302
- : cartData.items.map(function (item) { return ({
303
- id: "".concat(item.parent_product_id, "-").concat(item.sku),
304
- product_id: item.parent_product_id,
305
- product_variant_id: item.sku,
306
- quantity: (0, lodash_1.toNumber)(item.qte),
307
- price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
308
- }); })
309
- })];
310
- case 2:
311
- response = _a.sent();
312
- if (!!!response)
313
- throw new Error('Mailchimp response is undefined');
314
- console.log('response.status: ', response.status);
315
- return [4, response.json()];
316
- case 3:
317
- reponseJson = _a.sent();
318
- if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
319
- if (!!reponseJson) {
320
- console.log('respose: ', JSON.stringify(reponseJson));
321
- throw new Error("".concat(reponseJson.title, " - ").concat(reponseJson.detail));
322
- }
323
- }
324
- return [2, true];
325
- case 4:
326
- e_7 = _a.sent();
327
- console.log('error on saving to mailchimp: ', e_7.toString());
328
- return [2, false];
329
- case 5: return [2];
330
- }
331
- });
332
- }); };
333
- var _addOrderToMailchimp = function (cartData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
334
- var response, reponseJson, e_8;
335
- return __generator(this, function (_a) {
336
- switch (_a.label) {
337
- case 0:
338
- _a.trys.push([0, 3, , 4]);
339
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/orders"), 'POST', __assign(__assign(__assign(__assign(__assign(__assign({ id: cartData.ref, currency_code: cartData.currency || 'CAD', customer: { id: cartData.id }, order_total: cartData.total, lines: !!!cartData.items.length
340
- ? []
341
- : cartData.items.map(function (item) { return ({
342
- id: "".concat(item.parent_product_id, "-").concat(item.sku),
343
- product_id: item.parent_product_id,
344
- product_variant_id: item.sku,
345
- quantity: (0, lodash_1.toNumber)(item.qte),
346
- price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
347
- }); }) }, (!!cartData.paid_at
348
- ? {
349
- processed_at_foreign: (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YYYY-MM-DD')
350
- }
351
- : {})), (!!cartData.subtotalWithoutPromotions
352
- ? {
353
- discount_total: cartData.subtotal - cartData.subtotalWithoutPromotions
354
- }
355
- : {})), (!!cartData.total_taxes ? { tax_total: cartData.total_taxes } : {})), (!!cartData.shipping ? { shipping_total: cartData.shipping } : {})), (!!cartData.shipping_address ? { shipping_address: (0, exports.getCustomerAddress)(cartData.shipping_address) } : {})), (!!cartData.billing_address ? { billing_address: (0, exports.getCustomerAddress)(cartData.billing_address) } : {})))];
356
- case 1:
357
- response = _a.sent();
358
- if (!!!response)
359
- throw new Error('Mailchimp response is undefined');
360
- return [4, response.json()];
361
- case 2:
362
- reponseJson = _a.sent();
363
- if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
364
- if (!!reponseJson) {
365
- throw new Error("".concat(reponseJson.title, " - ").concat(reponseJson.detail));
366
- }
367
- }
368
- return [2, true];
369
- case 3:
370
- e_8 = _a.sent();
371
- console.log('error on saving to mailchimp: ', e_8.toString());
372
- return [2, false];
373
- case 4: return [2];
374
- }
375
- });
376
- }); };
377
- var _deleteCustomerFromMailchimp = function (storeID, customerID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
378
- var response, e_9;
379
- return __generator(this, function (_a) {
380
- switch (_a.label) {
381
- case 0:
382
- _a.trys.push([0, 2, , 3]);
383
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/customers/").concat(customerID), 'DELETE')];
384
- case 1:
385
- response = _a.sent();
386
- if (!!response && !!response.status && response.status === 200) {
387
- console.log('Mailchimp customer with id ' + customerID + ' deleted');
388
- return [2];
389
- }
390
- return [3, 3];
391
- case 2:
392
- e_9 = _a.sent();
393
- throw new Error(e_9.toString());
394
- case 3: return [2];
395
- }
396
- });
397
- }); };
398
- var _addUpdateCustomerToStoreMailchimp = function (storeID, space, isTest, body) { return __awaiter(void 0, void 0, void 0, function () {
399
- var currentCustomerResponse, e_10;
400
- return __generator(this, function (_a) {
401
- switch (_a.label) {
402
- case 0:
403
- _a.trys.push([0, 2, , 3]);
404
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/customers/").concat(body.id), 'PUT', body)];
405
- case 1:
406
- currentCustomerResponse = _a.sent();
407
- if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
408
- console.log('customer successfully added to mailchimp with id: ', body.id);
409
- }
410
- return [3, 3];
411
- case 2:
412
- e_10 = _a.sent();
413
- console.log('error on fetching current customer: ', e_10);
414
- return [3, 3];
415
- case 3: return [2];
416
- }
417
- });
418
- }); };
419
- var _addOrUpdateCustomer = function (cartData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
420
- var customerID, customerQuery, e_11, customer, body, e_12;
421
- return __generator(this, function (_a) {
422
- switch (_a.label) {
423
- case 0:
424
- customerID = !!cartData.customer_id ? cartData.customer_id : cartData.user_email || '';
425
- console.log(' ** in _addOrUpdateCustomer, customerID: ', customerID);
426
- _a.label = 1;
427
- case 1:
428
- _a.trys.push([1, 7, , 8]);
429
- customerQuery = void 0;
430
- if (!!!cartData.customer_id) return [3, 5];
431
- _a.label = 2;
432
- case 2:
433
- _a.trys.push([2, 4, , 5]);
434
- return [4, space.customers.get({
435
- query: [{ field: 'id', operator: '==', value: customerID }]
436
- })];
437
- case 3:
438
- customerQuery = _a.sent();
439
- return [3, 5];
440
- case 4:
441
- e_11 = _a.sent();
442
- console.log('could not fetch customer: ', e_11);
443
- return [3, 5];
444
- case 5:
445
- customer = !!customerQuery && !!customerQuery.length ? customerQuery[0].data() : null;
446
- console.log('customer was found: ', !!customer);
447
- body = __assign({ id: cartData.id, email_address: !!cartData.customer_info && !!cartData.customer_info.customer_default_email
448
- ? cartData.customer_info.customer_default_email
449
- : cartData.user_email || '', opt_in_status: true }, (!!customer
450
- ? __assign(__assign(__assign(__assign({}, (!!customer.company_info &&
451
- customer.company_info.invoice_info &&
452
- !!customer.company_info.invoice_info.legal_name
453
- ? { company: customer.company_info.invoice_info.legal_name }
454
- : {})), (!!customer.basic_info.customer_firstname ? { first_name: customer.basic_info.customer_firstname } : {})), (!!customer.basic_info.customer_lastname ? { last_name: customer.basic_info.customer_lastname } : {})), (!!customer.expedition_info &&
455
- !!customer.expedition_info.length &&
456
- customer.expedition_info.find(function (exp) { return !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); })
457
- ? {
458
- address: (0, exports.getCustomerAddress)(customer.expedition_info.find(function (exp) { return !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); }))
459
- }
460
- : {})) : {}));
461
- console.log('body: ', JSON.stringify(body));
462
- return [4, _addUpdateCustomerToStoreMailchimp(storeID, space, isTest, body)];
463
- case 6:
464
- _a.sent();
465
- return [3, 8];
466
- case 7:
467
- e_12 = _a.sent();
468
- console.log('error on fetching current customer: ', e_12);
469
- return [3, 8];
470
- case 8: return [2];
471
- }
472
- });
473
- }); };
474
- var _checkIfCustomerExists = function (customerID, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
475
- var currentCustomerResponse, e_13;
476
- return __generator(this, function (_a) {
477
- switch (_a.label) {
478
- case 0:
479
- _a.trys.push([0, 2, , 3]);
480
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/customers/").concat(customerID), 'GET')];
481
- case 1:
482
- currentCustomerResponse = _a.sent();
483
- if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
484
- return [2, true];
485
- }
486
- return [2, false];
487
- case 2:
488
- e_13 = _a.sent();
489
- console.log('error on fetching current customer: ', e_13);
490
- return [2, false];
491
- case 3: return [2];
492
- }
493
- });
494
- }); };
495
- var _updateCustomerWithData = function (listID, space, isTest, customerID, tags, fields) { return __awaiter(void 0, void 0, void 0, function () {
496
- var e_14, e_15;
497
- return __generator(this, function (_a) {
498
- switch (_a.label) {
499
- case 0:
500
- _a.trys.push([0, 2, , 3]);
501
- return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(listID, "/members/").concat(customerID), 'PUT', {
502
- merge_fields: fields
503
- })];
504
- case 1:
505
- _a.sent();
506
- return [3, 3];
507
- case 2:
508
- e_14 = _a.sent();
509
- console.log('error on adding merge fields: ', e_14);
510
- return [3, 3];
511
- case 3:
512
- _a.trys.push([3, 5, , 6]);
513
- return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(listID, "/members/").concat(customerID, "/tags"), 'POST', {
514
- tags: tags
515
- })];
516
- case 4:
517
- _a.sent();
518
- return [3, 6];
519
- case 5:
520
- e_15 = _a.sent();
521
- console.log('error on adding merge fields: ', e_15);
522
- return [3, 6];
523
- case 6: return [2];
524
- }
525
- });
526
- }); };
527
- var _deleteProductFromMailchimp = function (storeID, productID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
528
- var response, e_16;
529
- return __generator(this, function (_a) {
530
- switch (_a.label) {
531
- case 0:
532
- _a.trys.push([0, 2, , 3]);
533
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products/").concat(productID), 'DELETE')];
534
- case 1:
535
- response = _a.sent();
536
- if (!!response && !!response.status && response.status === 200) {
537
- console.log('Mailchimp product with id ' + productID + ' deleted');
538
- return [2];
539
- }
540
- return [3, 3];
541
- case 2:
542
- e_16 = _a.sent();
543
- throw new Error(e_16.toString());
544
- case 3: return [2];
545
- }
546
- });
547
- }); };
548
- var _addProductToMailchimp = function (productData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
549
- var spaceData, inventories, body, response, e_17;
550
- return __generator(this, function (_a) {
551
- switch (_a.label) {
552
- case 0:
553
- spaceData = space.data();
554
- return [4, (0, exports.getInventories)(productData.declinations, space)];
555
- case 1:
556
- inventories = _a.sent();
557
- body = __assign(__assign(__assign({ id: productData.id, title: (0, locale_1.getPrincipalWord)(productData.name, space), variants: (0, exports.createProdVariants)(productData, space, inventories), handle: productData.slug }, (!!spaceData.url ? { url: "https://".concat(spaceData.url, "/produits/").concat(productData.slug) } : {})), (0, exports.getTypeAttribute)(productData)), { image_url: !!productData.image_files && !!productData.image_files.length ? productData.image_files[0].img_path : '', images: !!productData.image_files && !!productData.image_files.length
558
- ? productData.image_files.map(function (img) { return ({
559
- id: (0, uuid_1.v4)(),
560
- url: img.img_path
561
- }); })
562
- : [], published_at_foreign: !!productData.created_at
563
- ? (0, moment_1.default)((0, data_1.formatDate)(productData.created_at)).format('YYYY-MM-DD')
564
- : (0, moment_1.default)().format('YYYY-MM-DD') });
565
- _a.label = 2;
566
- case 2:
567
- _a.trys.push([2, 4, , 5]);
568
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products"), 'POST', body)];
569
- case 3:
570
- response = _a.sent();
571
- if (!!response && !!response.status && response.status === 200) {
572
- console.log('Mailchimp product added successfully with id ' + productData.id + ' and slug ' + productData.slug);
573
- return [2];
574
- }
575
- return [3, 5];
576
- case 4:
577
- e_17 = _a.sent();
578
- throw new Error(e_17.toString());
579
- case 5: return [2];
580
- }
581
- });
582
- }); };
583
- var _updateProductInMailchimp = function (data, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
584
- var inventories, updatedProd, e_18;
585
- return __generator(this, function (_a) {
586
- switch (_a.label) {
587
- case 0: return [4, (0, exports.getInventories)(data.declinations, space)];
588
- case 1:
589
- inventories = _a.sent();
590
- updatedProd = __assign(__assign({ title: (0, locale_1.getPrincipalWord)(data.name, space) }, (0, exports.getTypeAttribute)(data)), { image_url: data.image_files[0] ? data.image_files[0].img_path : '', variants: (0, exports.createProdVariants)(data, space, inventories), images: !!data.image_files && !!data.image_files.length
591
- ? data.image_files.map(function (img) { return ({ id: (0, uuid_1.v4)(), url: img.img_path }); })
592
- : [] });
593
- _a.label = 2;
594
- case 2:
595
- _a.trys.push([2, 4, , 5]);
596
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products/").concat(data.id), 'PATCH', updatedProd)];
597
- case 3:
598
- _a.sent();
599
- return [3, 5];
600
- case 4:
601
- e_18 = _a.sent();
602
- throw new Error(e_18.toString());
603
- case 5: return [2];
604
- }
605
- });
606
- }); };
607
- var _updateProductVariantInMailchimp = function (body, storeID, productID, variantID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
608
- var e_19;
609
- return __generator(this, function (_a) {
610
- switch (_a.label) {
611
- case 0:
612
- _a.trys.push([0, 2, , 3]);
613
- return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products/").concat(productID, "/variants/").concat(variantID), 'PATCH', body)];
614
- case 1:
615
- _a.sent();
616
- return [3, 3];
617
- case 2:
618
- e_19 = _a.sent();
619
- console.log('error on updating product variant in mailchimp: ', e_19.toString());
620
- return [3, 3];
621
- case 3: return [2];
622
- }
623
- });
624
- }); };
625
- var fetchMailchimpService = function (space, isEcommInstance) {
626
- var services = undefined;
627
- try {
628
- services = space.services({
629
- field: 'external_service_name',
630
- value: 'mailchimp'
631
- });
632
- }
633
- catch (e) {
634
- console.log('error on fetching mailchimp service: ', e);
635
- }
636
- if (!!!services || !!!services.length) {
637
- console.log('service not found');
638
- return;
639
- }
640
- var mailchimp = services[0];
641
- if (!!!mailchimp ||
642
- !!!mailchimp.external_service_infos.api ||
643
- (!!isEcommInstance &&
644
- (!!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id))) {
645
- console.log('no mailchimp: ', !!!mailchimp);
646
- console.log('no api: ', !!!mailchimp.external_service_infos.api);
647
- console.log('isEcommInstance: ', !!isEcommInstance);
648
- console.log('no store_id of list_id:', !!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id);
649
- return;
650
- }
651
- return mailchimp;
652
- };
653
- exports.fetchMailchimpService = fetchMailchimpService;
654
- var getCustomerAddress = function (expeditionInfo) { return (__assign(__assign({ address1: expeditionInfo.address.line1 }, (!!expeditionInfo.address.line2
655
- ? { address2: expeditionInfo.address.line2 }
656
- : !!expeditionInfo.address.app
657
- ? { address2: expeditionInfo.address.app }
658
- : {})), { city: expeditionInfo.address.city, province: expeditionInfo.address.state, postal_code: expeditionInfo.address.postal_code })); };
659
- exports.getCustomerAddress = getCustomerAddress;
660
- var getTypeAttribute = function (data) {
661
- if (!!!data.attributes)
662
- return {};
663
- var typeAttr = data.attributes[data_2.AttributesIdEnumGR.TYPE];
664
- if (!!!typeAttr)
665
- return {};
666
- return { type: typeAttr[0] };
667
- };
668
- exports.getTypeAttribute = getTypeAttribute;
669
- var getInventoryForDecli = function (decli, inventories) {
670
- if (!!decli.is_service || !!decli.is_service || decli.disabled)
671
- return 0;
672
- var sameSku = inventories.find(function (i) { return !!i && i.sku === decli.sku; });
673
- if (!!!sameSku)
674
- return 0;
675
- if (!!!sameSku.web_inventory)
676
- return 0;
677
- return sameSku.web_inventory.available;
678
- };
679
- exports.getInventoryForDecli = getInventoryForDecli;
680
- var createProdVariants = function (prod, space, inventories) {
681
- return prod.declinations
682
- .filter(function (d) { return !!!d.is_sample; })
683
- .map(function (decli) { return (__assign(__assign(__assign({ id: decli.sku, title: "".concat((0, locale_1.getPrincipalWord)(decli.name, space)), sku: decli.sku, price: decli.regular_price.amount }, (!!inventories ? { inventory_quantity: (0, lodash_1.ceil)((0, exports.getInventoryForDecli)(decli, inventories)) } : {})), { image_url: !!decli.images_path && !!decli.images_path.length ? decli.images_path[0].img_path : '' }), (!!decli.disabled ? { visibility: 'hidden' } : {}))); });
684
- };
685
- exports.createProdVariants = createProdVariants;
686
- var getInventories = function (declis, space) { return __awaiter(void 0, void 0, void 0, function () {
687
- var inventories, e_20;
688
- return __generator(this, function (_a) {
689
- switch (_a.label) {
690
- case 0:
691
- inventories = [];
692
- _a.label = 1;
693
- case 1:
694
- _a.trys.push([1, 3, , 4]);
695
- return [4, Promise.all(declis.map(function (decli) { return __awaiter(void 0, void 0, void 0, function () {
696
- return __generator(this, function (_a) {
697
- switch (_a.label) {
698
- case 0: return [4, space.inventoryItems.getOne(decli.sku)];
699
- case 1: return [2, _a.sent()];
700
- }
701
- });
702
- }); }))];
703
- case 2:
704
- inventories = (_a.sent()).filter(function (i) { return !!i; });
705
- return [3, 4];
706
- case 3:
707
- e_20 = _a.sent();
708
- console.log('error on fetcing inventories: ', e_20);
709
- return [3, 4];
710
- case 4: return [2, inventories];
711
- }
712
- });
713
- }); };
714
- exports.getInventories = getInventories;
715
- exports.mailchimpActions = {
716
- products: {
717
- delete: _deleteProductFromMailchimp,
718
- add: _addProductToMailchimp,
719
- update: _updateProductInMailchimp,
720
- updateVariant: _updateProductVariantInMailchimp
721
- },
722
- customers: {
723
- add: _addOrUpdateCustomer,
724
- update: _updateCustomerWithData,
725
- delete: _deleteCustomerFromMailchimp,
726
- exists: _checkIfCustomerExists
727
- },
728
- orders: {
729
- add: _addOrderToMailchimp
730
- },
731
- carts: {
732
- delete: _deleteCartFromMailchimp,
733
- add: _addOrUpdateCartToMailchimp
734
- }
735
- };
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ var __importDefault = (this && this.__importDefault) || function (mod) {
59
+ return (mod && mod.__esModule) ? mod : { "default": mod };
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.mailchimpActions = exports.getInventories = exports.createProdVariants = exports.getInventoryForDecli = exports.getTypeAttribute = exports.getCustomerAddress = exports.fetchMailchimpService = exports.onCartPaymentAddToMailchimp = exports.callMailchimp = void 0;
63
+ var isomorphic_unfetch_1 = __importDefault(require("isomorphic-unfetch"));
64
+ var Customer_1 = require("../Interfaces/Customer");
65
+ var data_1 = require("../utils/data");
66
+ var locale_1 = require("../utils/locale");
67
+ var lodash_1 = require("lodash");
68
+ var moment_1 = __importDefault(require("moment"));
69
+ var uuid_1 = require("uuid");
70
+ var invoices_1 = require("../rules/GR/utils/invoices");
71
+ var data_2 = require("../rules/GR/interfaces/data");
72
+ var callMailchimp = function (space, isTest, endpoint, method, body) { return __awaiter(void 0, void 0, void 0, function () {
73
+ var correspondingServices, mailchimp, apiKey, serverName, url, response, e_1;
74
+ return __generator(this, function (_a) {
75
+ switch (_a.label) {
76
+ case 0:
77
+ correspondingServices = space.services({
78
+ field: 'external_service_name',
79
+ value: 'mailchimp'
80
+ });
81
+ if (!!!correspondingServices || !!!correspondingServices.length)
82
+ return [2];
83
+ mailchimp = correspondingServices[0];
84
+ if (!!!mailchimp || !!!mailchimp.external_service_infos.api)
85
+ return [2];
86
+ apiKey = mailchimp.external_service_infos.api;
87
+ serverName = !!isTest ? 'us9' : mailchimp.external_service_infos.api.split('-')[1];
88
+ url = "https://".concat(serverName, ".api.mailchimp.com/3.0");
89
+ if (!!endpoint.includes('/customers/') && method === 'GET') {
90
+ console.log('-------------');
91
+ console.log('going to check if customer exists in mailchimp');
92
+ console.log('url called: ', "".concat(url).concat(endpoint));
93
+ }
94
+ _a.label = 1;
95
+ case 1:
96
+ _a.trys.push([1, 3, , 4]);
97
+ return [4, (0, isomorphic_unfetch_1.default)("".concat(url).concat(endpoint), __assign({ method: method, headers: {
98
+ Authorization: "Basic ".concat(apiKey),
99
+ 'Content-Type': 'application/json'
100
+ } }, (!!body ? { body: JSON.stringify(body) } : {})))];
101
+ case 2:
102
+ response = _a.sent();
103
+ return [2, response];
104
+ case 3:
105
+ e_1 = _a.sent();
106
+ console.log('error on mailchimp call: ', e_1);
107
+ throw new Error(e_1.toString());
108
+ case 4: return [2];
109
+ }
110
+ });
111
+ }); };
112
+ exports.callMailchimp = callMailchimp;
113
+ var onCartPaymentAddToMailchimp = function (cartData, space) { return __awaiter(void 0, void 0, void 0, function () {
114
+ var isTest, customerEmail, userEmail, isPro, customerBillingName, customerBillingPhone, userMailchimpBody, currentCustomerInfos, currentCustomerResponse, json, e_2, response, reponseJson, e_3, cartType, billingAddress, responseMember, reponseMemberJson, e_4, responseTags, reponseTagsJson, e_5;
115
+ return __generator(this, function (_a) {
116
+ switch (_a.label) {
117
+ case 0:
118
+ console.log('---------------------');
119
+ console.log('in onCartPaymentAddToMailchimp for cart ' + cartData.ref);
120
+ isTest = process.env.GCLOUD_PROJECT !== 'gng-ecr' || process.env.NODE_ENV !== 'production';
121
+ customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
122
+ userEmail = !!cartData.user_email ? cartData.user_email : '';
123
+ isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title && !!cartData.customer_info.pro_proof_doc;
124
+ console.log('customer is pro: ', !!isPro);
125
+ customerBillingName = !!cartData.billing_address && cartData.billing_address.expedition_recipient_name
126
+ ? cartData.billing_address.expedition_recipient_name
127
+ : '';
128
+ customerBillingPhone = !!cartData.billing_address && cartData.billing_address.expedition_recipient_phone
129
+ ? cartData.billing_address.expedition_recipient_phone
130
+ : '';
131
+ userMailchimpBody = {
132
+ email_address: userEmail,
133
+ status_if_new: 'subscribed',
134
+ merge_fields: {
135
+ FNAME: !!customerBillingName ? customerBillingName.split('%')[0] : '',
136
+ LNAME: !!customerBillingName && customerBillingName.split('%').length > 1 ? customerBillingName.split('%')[1] : '',
137
+ PHONE: !!customerBillingPhone ? customerBillingPhone : ''
138
+ }
139
+ };
140
+ if (!!!isPro) return [3, 10];
141
+ console.log('user isPro');
142
+ if (!(customerEmail !== userEmail)) return [3, 10];
143
+ currentCustomerInfos = undefined;
144
+ _a.label = 1;
145
+ case 1:
146
+ _a.trys.push([1, 5, , 6]);
147
+ return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO, "/members/").concat(customerEmail), 'GET')];
148
+ case 2:
149
+ currentCustomerResponse = _a.sent();
150
+ if (!(!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200)) return [3, 4];
151
+ return [4, currentCustomerResponse.json()];
152
+ case 3:
153
+ json = _a.sent();
154
+ if (!!json) {
155
+ currentCustomerInfos = json;
156
+ }
157
+ _a.label = 4;
158
+ case 4: return [3, 6];
159
+ case 5:
160
+ e_2 = _a.sent();
161
+ console.log('error on fetching current customer: ', e_2);
162
+ return [3, 6];
163
+ case 6:
164
+ _a.trys.push([6, 9, , 10]);
165
+ return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO, "/members/").concat(userEmail), 'PUT', __assign(__assign({}, userMailchimpBody), { merge_fields: __assign(__assign({}, (!!currentCustomerInfos && !!currentCustomerInfos.merge_fields
166
+ ? currentCustomerInfos.merge_fields
167
+ : {})), userMailchimpBody.merge_fields) }))];
168
+ case 7:
169
+ response = _a.sent();
170
+ if (!!!response) {
171
+ throw new Error('Mailchimp response undefined');
172
+ }
173
+ return [4, response.json()];
174
+ case 8:
175
+ reponseJson = _a.sent();
176
+ if (!!response && !!response.status && response.status !== 200) {
177
+ if (!!reponseJson) {
178
+ throw new Error("".concat(reponseJson.title, " - ").concat(reponseJson.detail));
179
+ }
180
+ }
181
+ return [2, true];
182
+ case 9:
183
+ e_3 = _a.sent();
184
+ console.log('error on saving to mailchimp: ', e_3.toString());
185
+ return [2, false];
186
+ case 10:
187
+ if (!!!!isPro) return [3, 20];
188
+ console.log('user is not Pro');
189
+ cartType = (0, invoices_1.getOrderTypeString)(cartData, true);
190
+ if (!!!userEmail) {
191
+ return [2, false];
192
+ }
193
+ billingAddress = cartData.billing_address;
194
+ _a.label = 11;
195
+ case 11:
196
+ _a.trys.push([11, 14, , 15]);
197
+ console.log('calling mailchimp to add customer');
198
+ return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER, "/members/").concat(userEmail), 'PUT', __assign(__assign({}, userMailchimpBody), { merge_fields: __assign(__assign({}, userMailchimpBody.merge_fields), (!!billingAddress
199
+ ? {
200
+ ADDRESS: {
201
+ addr1: billingAddress.address.line1,
202
+ addr2: billingAddress.address.line2
203
+ ? billingAddress.address.line2
204
+ : !!billingAddress.address.app
205
+ ? billingAddress.address.app
206
+ : '',
207
+ city: billingAddress.address.city,
208
+ state: billingAddress.address.state,
209
+ zip: billingAddress.address.postal_code,
210
+ country: billingAddress.address.country
211
+ }
212
+ }
213
+ : {})) }))];
214
+ case 12:
215
+ responseMember = _a.sent();
216
+ if (!!!responseMember) {
217
+ throw new Error('Mailchimp response undefined');
218
+ }
219
+ return [4, responseMember.json()];
220
+ case 13:
221
+ reponseMemberJson = _a.sent();
222
+ if (!!responseMember && !!responseMember.status && responseMember.status !== 200) {
223
+ if (!!reponseMemberJson) {
224
+ throw new Error("".concat(reponseMemberJson.title, " - ").concat(reponseMemberJson.detail));
225
+ }
226
+ }
227
+ return [3, 15];
228
+ case 14:
229
+ e_4 = _a.sent();
230
+ console.log('error on saving customer to mailchimp after cart paid: ', e_4.toString());
231
+ return [2, false];
232
+ case 15:
233
+ _a.trys.push([15, 18, , 19]);
234
+ console.log('calling mailchimp to add tags to cart');
235
+ return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER, "/members/").concat(userEmail, "/tags"), 'POST', {
236
+ tags: __spreadArray([
237
+ { name: cartType, status: 'active' }
238
+ ], (!!cartData.customer_id || (!!cartData.customer_info && !!cartData.customer_info.pro_proof_doc)
239
+ ? [{ name: 'Compte client', status: 'active' }]
240
+ : []), true)
241
+ })];
242
+ case 16:
243
+ responseTags = _a.sent();
244
+ if (!!!responseTags)
245
+ throw new Error('Mailchimp response undefined');
246
+ return [4, responseTags.json()];
247
+ case 17:
248
+ reponseTagsJson = _a.sent();
249
+ if (!!responseTags && !!responseTags.status && responseTags.status !== 200) {
250
+ if (!!reponseTagsJson) {
251
+ throw new Error("".concat(reponseTagsJson.title, " - ").concat(reponseTagsJson.detail));
252
+ }
253
+ }
254
+ return [3, 19];
255
+ case 18:
256
+ e_5 = _a.sent();
257
+ console.log('error on saving tags to list member in mailchimp: ', e_5.toString());
258
+ return [2, false];
259
+ case 19: return [2, true];
260
+ case 20: return [2, true];
261
+ }
262
+ });
263
+ }); };
264
+ exports.onCartPaymentAddToMailchimp = onCartPaymentAddToMailchimp;
265
+ var _deleteCartFromMailchimp = function (storeID, cartID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
266
+ var response, e_6;
267
+ return __generator(this, function (_a) {
268
+ switch (_a.label) {
269
+ case 0:
270
+ _a.trys.push([0, 2, , 3]);
271
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/carts/").concat(cartID), 'DELETE')];
272
+ case 1:
273
+ response = _a.sent();
274
+ if (!!response && !!response.status && response.status === 200) {
275
+ console.log('Mailchimp cart with id ' + cartID + ' deleted');
276
+ return [2];
277
+ }
278
+ return [3, 3];
279
+ case 2:
280
+ e_6 = _a.sent();
281
+ throw new Error(e_6.toString());
282
+ case 3: return [2];
283
+ }
284
+ });
285
+ }); };
286
+ var _addOrUpdateCartToMailchimp = function (cartData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
287
+ var response, reponseJson, e_7;
288
+ return __generator(this, function (_a) {
289
+ switch (_a.label) {
290
+ case 0:
291
+ console.log('** adding or updating cart to mailchimp ** ');
292
+ _a.label = 1;
293
+ case 1:
294
+ _a.trys.push([1, 4, , 5]);
295
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/carts"), 'POST', {
296
+ id: cartData.id,
297
+ currency_code: cartData.currency || 'CAD',
298
+ customer: { id: cartData.id },
299
+ order_total: cartData.total,
300
+ lines: !!!cartData.items || !!!cartData.items.length
301
+ ? []
302
+ : cartData.items.map(function (item) { return ({
303
+ id: "".concat(item.parent_product_id, "-").concat(item.sku),
304
+ product_id: item.parent_product_id,
305
+ product_variant_id: item.sku,
306
+ quantity: (0, lodash_1.toNumber)(item.qte),
307
+ price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
308
+ }); })
309
+ })];
310
+ case 2:
311
+ response = _a.sent();
312
+ if (!!!response)
313
+ throw new Error('Mailchimp response is undefined');
314
+ console.log('response.status: ', response.status);
315
+ return [4, response.json()];
316
+ case 3:
317
+ reponseJson = _a.sent();
318
+ if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
319
+ if (!!reponseJson) {
320
+ console.log('respose: ', JSON.stringify(reponseJson));
321
+ throw new Error("".concat(reponseJson.title, " - ").concat(reponseJson.detail));
322
+ }
323
+ }
324
+ return [2, true];
325
+ case 4:
326
+ e_7 = _a.sent();
327
+ console.log('error on saving to mailchimp: ', e_7.toString());
328
+ return [2, false];
329
+ case 5: return [2];
330
+ }
331
+ });
332
+ }); };
333
+ var _addOrderToMailchimp = function (cartData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
334
+ var response, reponseJson, e_8;
335
+ return __generator(this, function (_a) {
336
+ switch (_a.label) {
337
+ case 0:
338
+ _a.trys.push([0, 3, , 4]);
339
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/orders"), 'POST', __assign(__assign(__assign(__assign(__assign(__assign({ id: cartData.ref, currency_code: cartData.currency || 'CAD', customer: { id: cartData.id }, order_total: cartData.total, lines: !!!cartData.items.length
340
+ ? []
341
+ : cartData.items.map(function (item) { return ({
342
+ id: "".concat(item.parent_product_id, "-").concat(item.sku),
343
+ product_id: item.parent_product_id,
344
+ product_variant_id: item.sku,
345
+ quantity: (0, lodash_1.toNumber)(item.qte),
346
+ price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
347
+ }); }) }, (!!cartData.paid_at
348
+ ? {
349
+ processed_at_foreign: (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YYYY-MM-DD')
350
+ }
351
+ : {})), (!!cartData.subtotalWithoutPromotions
352
+ ? {
353
+ discount_total: cartData.subtotal - cartData.subtotalWithoutPromotions
354
+ }
355
+ : {})), (!!cartData.total_taxes ? { tax_total: cartData.total_taxes } : {})), (!!cartData.shipping ? { shipping_total: cartData.shipping } : {})), (!!cartData.shipping_address ? { shipping_address: (0, exports.getCustomerAddress)(cartData.shipping_address) } : {})), (!!cartData.billing_address ? { billing_address: (0, exports.getCustomerAddress)(cartData.billing_address) } : {})))];
356
+ case 1:
357
+ response = _a.sent();
358
+ if (!!!response)
359
+ throw new Error('Mailchimp response is undefined');
360
+ return [4, response.json()];
361
+ case 2:
362
+ reponseJson = _a.sent();
363
+ if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
364
+ if (!!reponseJson) {
365
+ throw new Error("".concat(reponseJson.title, " - ").concat(reponseJson.detail));
366
+ }
367
+ }
368
+ return [2, true];
369
+ case 3:
370
+ e_8 = _a.sent();
371
+ console.log('error on saving to mailchimp: ', e_8.toString());
372
+ return [2, false];
373
+ case 4: return [2];
374
+ }
375
+ });
376
+ }); };
377
+ var _deleteCustomerFromMailchimp = function (storeID, customerID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
378
+ var response, e_9;
379
+ return __generator(this, function (_a) {
380
+ switch (_a.label) {
381
+ case 0:
382
+ _a.trys.push([0, 2, , 3]);
383
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/customers/").concat(customerID), 'DELETE')];
384
+ case 1:
385
+ response = _a.sent();
386
+ if (!!response && !!response.status && response.status === 200) {
387
+ console.log('Mailchimp customer with id ' + customerID + ' deleted');
388
+ return [2];
389
+ }
390
+ return [3, 3];
391
+ case 2:
392
+ e_9 = _a.sent();
393
+ throw new Error(e_9.toString());
394
+ case 3: return [2];
395
+ }
396
+ });
397
+ }); };
398
+ var _addUpdateCustomerToStoreMailchimp = function (storeID, space, isTest, body) { return __awaiter(void 0, void 0, void 0, function () {
399
+ var currentCustomerResponse, e_10;
400
+ return __generator(this, function (_a) {
401
+ switch (_a.label) {
402
+ case 0:
403
+ _a.trys.push([0, 2, , 3]);
404
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/customers/").concat(body.id), 'PUT', body)];
405
+ case 1:
406
+ currentCustomerResponse = _a.sent();
407
+ if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
408
+ console.log('customer successfully added to mailchimp with id: ', body.id);
409
+ }
410
+ return [3, 3];
411
+ case 2:
412
+ e_10 = _a.sent();
413
+ console.log('error on fetching current customer: ', e_10);
414
+ return [3, 3];
415
+ case 3: return [2];
416
+ }
417
+ });
418
+ }); };
419
+ var _addOrUpdateCustomer = function (cartData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
420
+ var customerID, customerQuery, e_11, customer, body, e_12;
421
+ return __generator(this, function (_a) {
422
+ switch (_a.label) {
423
+ case 0:
424
+ customerID = !!cartData.customer_id ? cartData.customer_id : cartData.user_email || '';
425
+ console.log(' ** in _addOrUpdateCustomer, customerID: ', customerID);
426
+ _a.label = 1;
427
+ case 1:
428
+ _a.trys.push([1, 7, , 8]);
429
+ customerQuery = void 0;
430
+ if (!!!cartData.customer_id) return [3, 5];
431
+ _a.label = 2;
432
+ case 2:
433
+ _a.trys.push([2, 4, , 5]);
434
+ return [4, space.customers.get({
435
+ query: [{ field: 'id', operator: '==', value: customerID }]
436
+ })];
437
+ case 3:
438
+ customerQuery = _a.sent();
439
+ return [3, 5];
440
+ case 4:
441
+ e_11 = _a.sent();
442
+ console.log('could not fetch customer: ', e_11);
443
+ return [3, 5];
444
+ case 5:
445
+ customer = !!customerQuery && !!customerQuery.length ? customerQuery[0].data() : null;
446
+ console.log('customer was found: ', !!customer);
447
+ body = __assign({ id: cartData.id, email_address: !!cartData.customer_info && !!cartData.customer_info.customer_default_email
448
+ ? cartData.customer_info.customer_default_email
449
+ : cartData.user_email || '', opt_in_status: true }, (!!customer
450
+ ? __assign(__assign(__assign(__assign({}, (!!customer.company_info &&
451
+ customer.company_info.invoice_info &&
452
+ !!customer.company_info.invoice_info.legal_name
453
+ ? { company: customer.company_info.invoice_info.legal_name }
454
+ : {})), (!!customer.basic_info.customer_firstname ? { first_name: customer.basic_info.customer_firstname } : {})), (!!customer.basic_info.customer_lastname ? { last_name: customer.basic_info.customer_lastname } : {})), (!!customer.expedition_info &&
455
+ !!customer.expedition_info.length &&
456
+ customer.expedition_info.find(function (exp) { return !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); })
457
+ ? {
458
+ address: (0, exports.getCustomerAddress)(customer.expedition_info.find(function (exp) { return !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); }))
459
+ }
460
+ : {})) : {}));
461
+ console.log('body: ', JSON.stringify(body));
462
+ return [4, _addUpdateCustomerToStoreMailchimp(storeID, space, isTest, body)];
463
+ case 6:
464
+ _a.sent();
465
+ return [3, 8];
466
+ case 7:
467
+ e_12 = _a.sent();
468
+ console.log('error on fetching current customer: ', e_12);
469
+ return [3, 8];
470
+ case 8: return [2];
471
+ }
472
+ });
473
+ }); };
474
+ var _checkIfCustomerExists = function (customerID, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
475
+ var currentCustomerResponse, e_13;
476
+ return __generator(this, function (_a) {
477
+ switch (_a.label) {
478
+ case 0:
479
+ _a.trys.push([0, 2, , 3]);
480
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/customers/").concat(customerID), 'GET')];
481
+ case 1:
482
+ currentCustomerResponse = _a.sent();
483
+ if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
484
+ return [2, true];
485
+ }
486
+ return [2, false];
487
+ case 2:
488
+ e_13 = _a.sent();
489
+ console.log('error on fetching current customer: ', e_13);
490
+ return [2, false];
491
+ case 3: return [2];
492
+ }
493
+ });
494
+ }); };
495
+ var _updateCustomerWithData = function (listID, space, isTest, customerID, tags, fields) { return __awaiter(void 0, void 0, void 0, function () {
496
+ var e_14, e_15;
497
+ return __generator(this, function (_a) {
498
+ switch (_a.label) {
499
+ case 0:
500
+ _a.trys.push([0, 2, , 3]);
501
+ return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(listID, "/members/").concat(customerID), 'PUT', {
502
+ merge_fields: fields
503
+ })];
504
+ case 1:
505
+ _a.sent();
506
+ return [3, 3];
507
+ case 2:
508
+ e_14 = _a.sent();
509
+ console.log('error on adding merge fields: ', e_14);
510
+ return [3, 3];
511
+ case 3:
512
+ _a.trys.push([3, 5, , 6]);
513
+ return [4, (0, exports.callMailchimp)(space, isTest, "/lists/".concat(listID, "/members/").concat(customerID, "/tags"), 'POST', {
514
+ tags: tags
515
+ })];
516
+ case 4:
517
+ _a.sent();
518
+ return [3, 6];
519
+ case 5:
520
+ e_15 = _a.sent();
521
+ console.log('error on adding merge fields: ', e_15);
522
+ return [3, 6];
523
+ case 6: return [2];
524
+ }
525
+ });
526
+ }); };
527
+ var _deleteProductFromMailchimp = function (storeID, productID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
528
+ var response, e_16;
529
+ return __generator(this, function (_a) {
530
+ switch (_a.label) {
531
+ case 0:
532
+ _a.trys.push([0, 2, , 3]);
533
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products/").concat(productID), 'DELETE')];
534
+ case 1:
535
+ response = _a.sent();
536
+ if (!!response && !!response.status && response.status === 200) {
537
+ console.log('Mailchimp product with id ' + productID + ' deleted');
538
+ return [2];
539
+ }
540
+ return [3, 3];
541
+ case 2:
542
+ e_16 = _a.sent();
543
+ throw new Error(e_16.toString());
544
+ case 3: return [2];
545
+ }
546
+ });
547
+ }); };
548
+ var _addProductToMailchimp = function (productData, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
549
+ var spaceData, inventories, body, response, e_17;
550
+ return __generator(this, function (_a) {
551
+ switch (_a.label) {
552
+ case 0:
553
+ spaceData = space.data();
554
+ return [4, (0, exports.getInventories)(productData.declinations, space)];
555
+ case 1:
556
+ inventories = _a.sent();
557
+ body = __assign(__assign(__assign({ id: productData.id, title: (0, locale_1.getPrincipalWord)(productData.name, space), variants: (0, exports.createProdVariants)(productData, space, inventories), handle: productData.slug }, (!!spaceData.url ? { url: "https://".concat(spaceData.url, "/produits/").concat(productData.slug) } : {})), (0, exports.getTypeAttribute)(productData)), { image_url: !!productData.image_files && !!productData.image_files.length ? productData.image_files[0].img_path : '', images: !!productData.image_files && !!productData.image_files.length
558
+ ? productData.image_files.map(function (img) { return ({
559
+ id: (0, uuid_1.v4)(),
560
+ url: img.img_path
561
+ }); })
562
+ : [], published_at_foreign: !!productData.created_at
563
+ ? (0, moment_1.default)((0, data_1.formatDate)(productData.created_at)).format('YYYY-MM-DD')
564
+ : (0, moment_1.default)().format('YYYY-MM-DD') });
565
+ _a.label = 2;
566
+ case 2:
567
+ _a.trys.push([2, 4, , 5]);
568
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products"), 'POST', body)];
569
+ case 3:
570
+ response = _a.sent();
571
+ if (!!response && !!response.status && response.status === 200) {
572
+ console.log('Mailchimp product added successfully with id ' + productData.id + ' and slug ' + productData.slug);
573
+ return [2];
574
+ }
575
+ return [3, 5];
576
+ case 4:
577
+ e_17 = _a.sent();
578
+ throw new Error(e_17.toString());
579
+ case 5: return [2];
580
+ }
581
+ });
582
+ }); };
583
+ var _updateProductInMailchimp = function (data, storeID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
584
+ var inventories, updatedProd, e_18;
585
+ return __generator(this, function (_a) {
586
+ switch (_a.label) {
587
+ case 0: return [4, (0, exports.getInventories)(data.declinations, space)];
588
+ case 1:
589
+ inventories = _a.sent();
590
+ updatedProd = __assign(__assign({ title: (0, locale_1.getPrincipalWord)(data.name, space) }, (0, exports.getTypeAttribute)(data)), { image_url: data.image_files[0] ? data.image_files[0].img_path : '', variants: (0, exports.createProdVariants)(data, space, inventories), images: !!data.image_files && !!data.image_files.length
591
+ ? data.image_files.map(function (img) { return ({ id: (0, uuid_1.v4)(), url: img.img_path }); })
592
+ : [] });
593
+ _a.label = 2;
594
+ case 2:
595
+ _a.trys.push([2, 4, , 5]);
596
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products/").concat(data.id), 'PATCH', updatedProd)];
597
+ case 3:
598
+ _a.sent();
599
+ return [3, 5];
600
+ case 4:
601
+ e_18 = _a.sent();
602
+ throw new Error(e_18.toString());
603
+ case 5: return [2];
604
+ }
605
+ });
606
+ }); };
607
+ var _updateProductVariantInMailchimp = function (body, storeID, productID, variantID, space, isTest) { return __awaiter(void 0, void 0, void 0, function () {
608
+ var e_19;
609
+ return __generator(this, function (_a) {
610
+ switch (_a.label) {
611
+ case 0:
612
+ _a.trys.push([0, 2, , 3]);
613
+ return [4, (0, exports.callMailchimp)(space, isTest, "/ecommerce/stores/".concat(storeID, "/products/").concat(productID, "/variants/").concat(variantID), 'PATCH', body)];
614
+ case 1:
615
+ _a.sent();
616
+ return [3, 3];
617
+ case 2:
618
+ e_19 = _a.sent();
619
+ console.log('error on updating product variant in mailchimp: ', e_19.toString());
620
+ return [3, 3];
621
+ case 3: return [2];
622
+ }
623
+ });
624
+ }); };
625
+ var fetchMailchimpService = function (space, isEcommInstance) {
626
+ var services = undefined;
627
+ try {
628
+ services = space.services({
629
+ field: 'external_service_name',
630
+ value: 'mailchimp'
631
+ });
632
+ }
633
+ catch (e) {
634
+ console.log('error on fetching mailchimp service: ', e);
635
+ }
636
+ if (!!!services || !!!services.length) {
637
+ console.log('service not found');
638
+ return;
639
+ }
640
+ var mailchimp = services[0];
641
+ if (!!!mailchimp ||
642
+ !!!mailchimp.external_service_infos.api ||
643
+ (!!isEcommInstance &&
644
+ (!!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id))) {
645
+ console.log('no mailchimp: ', !!!mailchimp);
646
+ console.log('no api: ', !!!mailchimp.external_service_infos.api);
647
+ console.log('isEcommInstance: ', !!isEcommInstance);
648
+ console.log('no store_id of list_id:', !!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id);
649
+ return;
650
+ }
651
+ return mailchimp;
652
+ };
653
+ exports.fetchMailchimpService = fetchMailchimpService;
654
+ var getCustomerAddress = function (expeditionInfo) { return (__assign(__assign({ address1: expeditionInfo.address.line1 }, (!!expeditionInfo.address.line2
655
+ ? { address2: expeditionInfo.address.line2 }
656
+ : !!expeditionInfo.address.app
657
+ ? { address2: expeditionInfo.address.app }
658
+ : {})), { city: expeditionInfo.address.city, province: expeditionInfo.address.state, postal_code: expeditionInfo.address.postal_code })); };
659
+ exports.getCustomerAddress = getCustomerAddress;
660
+ var getTypeAttribute = function (data) {
661
+ if (!!!data.attributes)
662
+ return {};
663
+ var typeAttr = data.attributes[data_2.AttributesIdEnumGR.TYPE];
664
+ if (!!!typeAttr)
665
+ return {};
666
+ return { type: typeAttr[0] };
667
+ };
668
+ exports.getTypeAttribute = getTypeAttribute;
669
+ var getInventoryForDecli = function (decli, inventories) {
670
+ if (!!decli.is_service || !!decli.is_service || decli.disabled)
671
+ return 0;
672
+ var sameSku = inventories.find(function (i) { return !!i && i.sku === decli.sku; });
673
+ if (!!!sameSku)
674
+ return 0;
675
+ if (!!!sameSku.web_inventory)
676
+ return 0;
677
+ return sameSku.web_inventory.available;
678
+ };
679
+ exports.getInventoryForDecli = getInventoryForDecli;
680
+ var createProdVariants = function (prod, space, inventories) {
681
+ return prod.declinations
682
+ .filter(function (d) { return !!!d.is_sample; })
683
+ .map(function (decli) { return (__assign(__assign(__assign({ id: decli.sku, title: "".concat((0, locale_1.getPrincipalWord)(decli.name, space)), sku: decli.sku, price: decli.regular_price.amount }, (!!inventories ? { inventory_quantity: (0, lodash_1.ceil)((0, exports.getInventoryForDecli)(decli, inventories)) } : {})), { image_url: !!decli.images_path && !!decli.images_path.length ? decli.images_path[0].img_path : '' }), (!!decli.disabled ? { visibility: 'hidden' } : {}))); });
684
+ };
685
+ exports.createProdVariants = createProdVariants;
686
+ var getInventories = function (declis, space) { return __awaiter(void 0, void 0, void 0, function () {
687
+ var inventories, e_20;
688
+ return __generator(this, function (_a) {
689
+ switch (_a.label) {
690
+ case 0:
691
+ inventories = [];
692
+ _a.label = 1;
693
+ case 1:
694
+ _a.trys.push([1, 3, , 4]);
695
+ return [4, Promise.all(declis.map(function (decli) { return __awaiter(void 0, void 0, void 0, function () {
696
+ return __generator(this, function (_a) {
697
+ switch (_a.label) {
698
+ case 0: return [4, space.inventoryItems.getOne(decli.sku)];
699
+ case 1: return [2, _a.sent()];
700
+ }
701
+ });
702
+ }); }))];
703
+ case 2:
704
+ inventories = (_a.sent()).filter(function (i) { return !!i; });
705
+ return [3, 4];
706
+ case 3:
707
+ e_20 = _a.sent();
708
+ console.log('error on fetcing inventories: ', e_20);
709
+ return [3, 4];
710
+ case 4: return [2, inventories];
711
+ }
712
+ });
713
+ }); };
714
+ exports.getInventories = getInventories;
715
+ exports.mailchimpActions = {
716
+ products: {
717
+ delete: _deleteProductFromMailchimp,
718
+ add: _addProductToMailchimp,
719
+ update: _updateProductInMailchimp,
720
+ updateVariant: _updateProductVariantInMailchimp
721
+ },
722
+ customers: {
723
+ add: _addOrUpdateCustomer,
724
+ update: _updateCustomerWithData,
725
+ delete: _deleteCustomerFromMailchimp,
726
+ exists: _checkIfCustomerExists
727
+ },
728
+ orders: {
729
+ add: _addOrderToMailchimp
730
+ },
731
+ carts: {
732
+ delete: _deleteCartFromMailchimp,
733
+ add: _addOrUpdateCartToMailchimp
734
+ }
735
+ };
736
736
  //# sourceMappingURL=mailchimp.js.map