addio-admin-sdk 1.6.13 → 1.6.14

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 (499) 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 +362 -353
  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 +145 -145
  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 +311 -311
  205. package/dist/Interfaces/Space/index.js +77 -77
  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 +63 -63
  257. package/dist/lib/Booking/index.js +813 -813
  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 +3653 -3653
  262. package/dist/lib/Catalogue/index.d.ts +9 -9
  263. package/dist/lib/Catalogue/index.js +208 -208
  264. package/dist/lib/Category/index.d.ts +26 -26
  265. package/dist/lib/Category/index.js +361 -361
  266. package/dist/lib/Class/index.d.ts +12 -12
  267. package/dist/lib/Class/index.js +159 -159
  268. package/dist/lib/Consent/index.d.ts +4 -4
  269. package/dist/lib/Consent/index.js +79 -79
  270. package/dist/lib/Customer/index.d.ts +10 -10
  271. package/dist/lib/Customer/index.js +140 -140
  272. package/dist/lib/Declination/index.d.ts +10 -10
  273. package/dist/lib/Declination/index.js +85 -85
  274. package/dist/lib/Discount/index.d.ts +18 -18
  275. package/dist/lib/Discount/index.js +759 -759
  276. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  277. package/dist/lib/ElasticSearch/index.js +101 -101
  278. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  279. package/dist/lib/Email/AbandonedCartEmail.js +78 -78
  280. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  281. package/dist/lib/Email/AccountConfirmationEmail.js +95 -95
  282. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  283. package/dist/lib/Email/AdminOrderConfirmationEmail.js +78 -78
  284. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  285. package/dist/lib/Email/ApplicationEmail.js +78 -78
  286. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  287. package/dist/lib/Email/BackInStockEmail.js +78 -78
  288. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  289. package/dist/lib/Email/ContactEmail.js +78 -78
  290. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  291. package/dist/lib/Email/CustomerBookingAdminEmail.js +78 -78
  292. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  293. package/dist/lib/Email/CustomerBookingEmail.js +78 -78
  294. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  295. package/dist/lib/Email/OrderConfirmationEmail.js +78 -78
  296. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  297. package/dist/lib/Email/OrderDenounciationEmail.js +78 -78
  298. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  299. package/dist/lib/Email/OrderSampleEmail.js +78 -78
  300. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  301. package/dist/lib/Email/OtherTypeEmails.js +90 -90
  302. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  303. package/dist/lib/Email/PasswordResetEmail.js +78 -78
  304. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  305. package/dist/lib/Email/PhotoShootEmail.js +78 -78
  306. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  307. package/dist/lib/Email/PickUpConfirmation.js +78 -78
  308. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  309. package/dist/lib/Email/ShippingConfirmation.js +78 -78
  310. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  311. package/dist/lib/Email/WelcomeEmail.js +78 -78
  312. package/dist/lib/Email/index.d.ts +8 -8
  313. package/dist/lib/Email/index.js +82 -82
  314. package/dist/lib/ExternalService/Ebay.d.ts +63 -63
  315. package/dist/lib/ExternalService/Ebay.js +185 -185
  316. package/dist/lib/ExternalService/index.d.ts +5 -5
  317. package/dist/lib/ExternalService/index.js +28 -28
  318. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  319. package/dist/lib/Indexed/IndexedCart.js +194 -194
  320. package/dist/lib/Indexed/Product.d.ts +17 -17
  321. package/dist/lib/Indexed/Product.js +116 -116
  322. package/dist/lib/Inventory/index.d.ts +31 -31
  323. package/dist/lib/Inventory/index.js +560 -560
  324. package/dist/lib/Invoice/index.d.ts +5 -5
  325. package/dist/lib/Invoice/index.js +28 -28
  326. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  327. package/dist/lib/MarketplacePublication/index.js +221 -221
  328. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  329. package/dist/lib/MongoDB/BaseAPI.js +308 -308
  330. package/dist/lib/Order/index.d.ts +7 -7
  331. package/dist/lib/Order/index.js +62 -62
  332. package/dist/lib/Org/index.d.ts +26 -26
  333. package/dist/lib/Org/index.js +286 -286
  334. package/dist/lib/PandaPay/index.d.ts +16 -16
  335. package/dist/lib/PandaPay/index.js +219 -219
  336. package/dist/lib/Paysafe/index.d.ts +11 -11
  337. package/dist/lib/Paysafe/index.js +100 -100
  338. package/dist/lib/Product/index.d.ts +143 -143
  339. package/dist/lib/Product/index.js +1326 -1326
  340. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  341. package/dist/lib/ProductAttribute/index.js +114 -114
  342. package/dist/lib/PromiseToPurchase/index.d.ts +35 -35
  343. package/dist/lib/PromiseToPurchase/index.js +474 -474
  344. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  345. package/dist/lib/PurchaseOrder/index.js +72 -72
  346. package/dist/lib/Queue/index.d.ts +40 -40
  347. package/dist/lib/Queue/index.js +254 -254
  348. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  349. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  350. package/dist/lib/Service/index.d.ts +5 -5
  351. package/dist/lib/Service/index.js +57 -57
  352. package/dist/lib/Shipment/index.d.ts +28 -28
  353. package/dist/lib/Shipment/index.js +559 -559
  354. package/dist/lib/Slider/index.d.ts +16 -16
  355. package/dist/lib/Slider/index.js +235 -235
  356. package/dist/lib/Space/index.d.ts +769 -769
  357. package/dist/lib/Space/index.js +6688 -6688
  358. package/dist/lib/StockNotification/index.d.ts +4 -4
  359. package/dist/lib/StockNotification/index.js +26 -26
  360. package/dist/lib/Store/index.d.ts +5 -5
  361. package/dist/lib/Store/index.js +30 -30
  362. package/dist/lib/Supplier/Command.d.ts +5 -5
  363. package/dist/lib/Supplier/Command.js +28 -28
  364. package/dist/lib/Supplier/index.d.ts +25 -25
  365. package/dist/lib/Supplier/index.js +92 -92
  366. package/dist/lib/Tags/index.d.ts +6 -6
  367. package/dist/lib/Tags/index.js +84 -84
  368. package/dist/lib/Tax/index.d.ts +8 -8
  369. package/dist/lib/Tax/index.js +136 -136
  370. package/dist/lib/TransferRequest/index.d.ts +21 -21
  371. package/dist/lib/TransferRequest/index.js +302 -302
  372. package/dist/lib/Update/index.d.ts +10 -10
  373. package/dist/lib/Update/index.js +71 -71
  374. package/dist/lib/User/index.d.ts +33 -33
  375. package/dist/lib/User/index.js +360 -360
  376. package/dist/lib/Wishlist/index.d.ts +5 -5
  377. package/dist/lib/Wishlist/index.js +28 -28
  378. package/dist/lib/base.d.ts +14 -14
  379. package/dist/lib/base.js +135 -135
  380. package/dist/lib/baseService.d.ts +17 -17
  381. package/dist/lib/baseService.js +113 -113
  382. package/dist/rules/GR/constants/data.d.ts +28 -28
  383. package/dist/rules/GR/constants/data.js +57 -57
  384. package/dist/rules/GR/constants/products.d.ts +8 -8
  385. package/dist/rules/GR/constants/products.js +234 -234
  386. package/dist/rules/GR/interfaces/cart.d.ts +68 -68
  387. package/dist/rules/GR/interfaces/cart.js +49 -49
  388. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  389. package/dist/rules/GR/interfaces/data.js +104 -104
  390. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  391. package/dist/rules/GR/interfaces/products.js +10 -10
  392. package/dist/rules/GR/utils/cart.d.ts +39 -39
  393. package/dist/rules/GR/utils/cart.js +644 -644
  394. package/dist/rules/GR/utils/data.d.ts +3 -3
  395. package/dist/rules/GR/utils/data.js +25 -25
  396. package/dist/rules/GR/utils/expedition.d.ts +70 -70
  397. package/dist/rules/GR/utils/expedition.js +1584 -1584
  398. package/dist/rules/GR/utils/expedition.js.map +1 -1
  399. package/dist/rules/GR/utils/g2.d.ts +153 -153
  400. package/dist/rules/GR/utils/g2.js +914 -914
  401. package/dist/rules/GR/utils/invoices.d.ts +5 -5
  402. package/dist/rules/GR/utils/invoices.js +140 -140
  403. package/dist/rules/GR/utils/products.d.ts +105 -105
  404. package/dist/rules/GR/utils/products.js +1013 -1013
  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 +41 -41
  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 +300 -300
  417. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  418. package/dist/services/database/NotFirebaseProvider.js +367 -367
  419. package/dist/utils/algolia.d.ts +6 -6
  420. package/dist/utils/algolia.js +22 -22
  421. package/dist/utils/anonymisation.d.ts +30 -30
  422. package/dist/utils/anonymisation.js +269 -269
  423. package/dist/utils/array.d.ts +5 -5
  424. package/dist/utils/array.js +36 -36
  425. package/dist/utils/aws.d.ts +14 -14
  426. package/dist/utils/aws.js +220 -220
  427. package/dist/utils/booking.d.ts +22 -22
  428. package/dist/utils/booking.js +175 -175
  429. package/dist/utils/cart.d.ts +511 -511
  430. package/dist/utils/cart.js +503 -503
  431. package/dist/utils/cmv.d.ts +10 -10
  432. package/dist/utils/cmv.js +107 -107
  433. package/dist/utils/console.d.ts +6 -6
  434. package/dist/utils/console.js +121 -121
  435. package/dist/utils/context.d.ts +19 -19
  436. package/dist/utils/context.js +41 -41
  437. package/dist/utils/currency.d.ts +6 -6
  438. package/dist/utils/currency.js +62 -62
  439. package/dist/utils/data.d.ts +40 -40
  440. package/dist/utils/data.js +226 -226
  441. package/dist/utils/date.d.ts +1 -1
  442. package/dist/utils/date.js +16 -16
  443. package/dist/utils/dimensions.d.ts +3 -3
  444. package/dist/utils/dimensions.js +18 -18
  445. package/dist/utils/discount.d.ts +33 -33
  446. package/dist/utils/discount.js +906 -906
  447. package/dist/utils/errors.d.ts +113 -113
  448. package/dist/utils/errors.js +113 -113
  449. package/dist/utils/file-admin.d.ts +8 -8
  450. package/dist/utils/file-admin.js +94 -94
  451. package/dist/utils/file.d.ts +38 -38
  452. package/dist/utils/file.js +318 -318
  453. package/dist/utils/firebase-admin.d.ts +2 -2
  454. package/dist/utils/firebase-admin.js +118 -118
  455. package/dist/utils/firebase.d.ts +41 -41
  456. package/dist/utils/firebase.js +220 -220
  457. package/dist/utils/import.d.ts +1 -1
  458. package/dist/utils/import.js +81 -81
  459. package/dist/utils/inventories.d.ts +26 -26
  460. package/dist/utils/inventories.js +355 -355
  461. package/dist/utils/locale.d.ts +13 -13
  462. package/dist/utils/locale.js +67 -67
  463. package/dist/utils/mailchimp.d.ts +57 -57
  464. package/dist/utils/mailchimp.js +735 -735
  465. package/dist/utils/mongodb.d.ts +1 -1
  466. package/dist/utils/mongodb.js +68 -68
  467. package/dist/utils/object.d.ts +6 -6
  468. package/dist/utils/object.js +124 -124
  469. package/dist/utils/payment.d.ts +10 -10
  470. package/dist/utils/payment.js +25 -25
  471. package/dist/utils/products.d.ts +26 -26
  472. package/dist/utils/products.js +301 -301
  473. package/dist/utils/promiseToPurchase.d.ts +56 -56
  474. package/dist/utils/promiseToPurchase.js +228 -228
  475. package/dist/utils/prosprsearch.d.ts +21 -21
  476. package/dist/utils/prosprsearch.js +276 -276
  477. package/dist/utils/sdc.d.ts +10 -10
  478. package/dist/utils/sdc.js +1308 -1308
  479. package/dist/utils/searchIndexes.d.ts +20 -20
  480. package/dist/utils/searchIndexes.js +273 -273
  481. package/dist/utils/services.d.ts +38 -38
  482. package/dist/utils/services.js +394 -394
  483. package/dist/utils/shipment.d.ts +110 -110
  484. package/dist/utils/shipment.js +410 -410
  485. package/dist/utils/simpletexting.d.ts +2 -2
  486. package/dist/utils/simpletexting.js +88 -88
  487. package/dist/utils/sliders.d.ts +4 -4
  488. package/dist/utils/sliders.js +70 -70
  489. package/dist/utils/string.d.ts +16 -16
  490. package/dist/utils/string.js +194 -194
  491. package/dist/utils/update.d.ts +7 -7
  492. package/dist/utils/update.js +244 -244
  493. package/dist/utils/weight.d.ts +3 -3
  494. package/dist/utils/weight.js +18 -18
  495. package/dist/utils/zones.d.ts +10 -10
  496. package/dist/utils/zones.js +287 -287
  497. package/package.json +106 -106
  498. package/publish.sh +143 -143
  499. package/readme.md +182 -182
@@ -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