addio-admin-sdk 1.7.86 → 1.7.87

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 (560) hide show
  1. package/.babelrc +17 -17
  2. package/.env +14 -0
  3. package/.env.dev +14 -14
  4. package/.github/workflows/publish_coverage.yam_ +69 -69
  5. package/addio-sdk-doc.md +1473 -1473
  6. package/changelog.md +537 -537
  7. package/dist/Interfaces/Address/index.d.ts +21 -21
  8. package/dist/Interfaces/Address/index.js +16 -16
  9. package/dist/Interfaces/Algolia/index.d.ts +164 -164
  10. package/dist/Interfaces/Algolia/index.js +2 -2
  11. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  12. package/dist/Interfaces/Attachement/index.js +2 -2
  13. package/dist/Interfaces/Attribute/index.d.ts +52 -52
  14. package/dist/Interfaces/Attribute/index.js +10 -10
  15. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  16. package/dist/Interfaces/BGJob/index.js +25 -25
  17. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  18. package/dist/Interfaces/BaseClass/index.js +2 -2
  19. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  20. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  21. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  22. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  23. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  24. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  25. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  26. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  27. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  28. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  29. package/dist/Interfaces/Booking/index.d.ts +74 -74
  30. package/dist/Interfaces/Booking/index.js +17 -17
  31. package/dist/Interfaces/Brand/index.d.ts +15 -15
  32. package/dist/Interfaces/Brand/index.js +2 -2
  33. package/dist/Interfaces/CMS/index.d.ts +25 -25
  34. package/dist/Interfaces/CMS/index.js +2 -2
  35. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  36. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  37. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  38. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  39. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  40. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  41. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  42. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  43. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  44. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  45. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  46. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  47. package/dist/Interfaces/Cart/index.d.ts +424 -424
  48. package/dist/Interfaces/Cart/index.js +192 -192
  49. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  50. package/dist/Interfaces/Catalogue/index.js +37 -37
  51. package/dist/Interfaces/Category/index.d.ts +33 -33
  52. package/dist/Interfaces/Category/index.js +2 -2
  53. package/dist/Interfaces/Chart/index.d.ts +11 -11
  54. package/dist/Interfaces/Chart/index.js +2 -2
  55. package/dist/Interfaces/Class/index.d.ts +8 -8
  56. package/dist/Interfaces/Class/index.js +2 -2
  57. package/dist/Interfaces/Consent/index.d.ts +6 -6
  58. package/dist/Interfaces/Consent/index.js +2 -2
  59. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  60. package/dist/Interfaces/Context/IContextProps.js +2 -2
  61. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  62. package/dist/Interfaces/Context/IContextState.js +2 -2
  63. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  64. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  65. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  66. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  67. package/dist/Interfaces/Customer/IStoreCredit.d.ts +12 -12
  68. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  69. package/dist/Interfaces/Customer/index.d.ts +97 -97
  70. package/dist/Interfaces/Customer/index.js +141 -141
  71. package/dist/Interfaces/Declination/index.d.ts +114 -114
  72. package/dist/Interfaces/Declination/index.js +60 -60
  73. package/dist/Interfaces/Document/index.d.ts +8 -8
  74. package/dist/Interfaces/Document/index.js +2 -2
  75. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  76. package/dist/Interfaces/Elastic/index.js +2 -2
  77. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  78. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  79. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  80. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  81. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  82. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  83. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  84. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  85. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  86. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  87. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  88. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  89. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  90. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  91. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  92. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  93. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  94. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  95. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  96. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  97. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  98. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  99. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  100. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  101. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  102. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  103. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  104. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  105. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  106. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  107. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  108. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  109. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  110. package/dist/Interfaces/Email/IEmail.js +56 -56
  111. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  112. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  113. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  114. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  115. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  116. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  117. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  118. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  119. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  120. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  121. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  122. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  123. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  124. package/dist/Interfaces/ExportSchema/index.js +2 -2
  125. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  126. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  127. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  128. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  129. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  130. package/dist/Interfaces/ExternalService/index.js +2 -2
  131. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  132. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  133. package/dist/Interfaces/G2/index.d.ts +556 -556
  134. package/dist/Interfaces/G2/index.js +36 -36
  135. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  136. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  137. package/dist/Interfaces/Indexed/Product/index.d.ts +97 -97
  138. package/dist/Interfaces/Indexed/Product/index.js +212 -212
  139. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  140. package/dist/Interfaces/Inventory/index.js +8 -8
  141. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  142. package/dist/Interfaces/Invoice/index.js +2 -2
  143. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  144. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  145. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  146. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  147. package/dist/Interfaces/Menu/index.d.ts +23 -23
  148. package/dist/Interfaces/Menu/index.js +10 -10
  149. package/dist/Interfaces/Note/index.d.ts +10 -0
  150. package/dist/Interfaces/Note/index.js +8 -0
  151. package/dist/Interfaces/Note/index.js.map +1 -0
  152. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  153. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  154. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  155. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  156. package/dist/Interfaces/Order/index.d.ts +4 -4
  157. package/dist/Interfaces/Order/index.js +2 -2
  158. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  159. package/dist/Interfaces/Org/IRelUser.js +2 -2
  160. package/dist/Interfaces/Org/index.d.ts +29 -29
  161. package/dist/Interfaces/Org/index.js +12 -12
  162. package/dist/Interfaces/Payment/index.d.ts +13 -13
  163. package/dist/Interfaces/Payment/index.js +2 -2
  164. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  165. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  166. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  167. package/dist/Interfaces/Product/IImportProduct.js +791 -791
  168. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  169. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  170. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  171. package/dist/Interfaces/Product/IPricing.js +174 -174
  172. package/dist/Interfaces/Product/index.d.ts +127 -127
  173. package/dist/Interfaces/Product/index.js +56 -56
  174. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  175. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  176. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  177. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  178. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  179. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  180. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  181. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  182. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  183. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  184. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  185. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  186. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  187. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  188. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  189. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  190. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  191. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  192. package/dist/Interfaces/Quote/index.d.ts +5 -5
  193. package/dist/Interfaces/Quote/index.js +2 -2
  194. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  195. package/dist/Interfaces/Refunds/index.js +2 -2
  196. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  197. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  198. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  199. package/dist/Interfaces/Schedule/index.js +2 -2
  200. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  201. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  202. package/dist/Interfaces/Services/IService.d.ts +12 -12
  203. package/dist/Interfaces/Services/IService.js +2 -2
  204. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  205. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  206. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  207. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  208. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  209. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  210. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  211. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  212. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  213. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  214. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  215. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  216. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  217. package/dist/Interfaces/Slider/GR.js +271 -271
  218. package/dist/Interfaces/Slider/index.d.ts +30 -30
  219. package/dist/Interfaces/Slider/index.js +2 -2
  220. package/dist/Interfaces/Space/IExternalService.d.ts +52 -52
  221. package/dist/Interfaces/Space/IExternalService.js +43 -43
  222. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  223. package/dist/Interfaces/Space/IMember.js +9 -9
  224. package/dist/Interfaces/Space/index.d.ts +385 -385
  225. package/dist/Interfaces/Space/index.js +159 -159
  226. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  227. package/dist/Interfaces/Specials/gr.js +2 -2
  228. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  229. package/dist/Interfaces/StockNotification/index.js +2 -2
  230. package/dist/Interfaces/Store/index.d.ts +62 -62
  231. package/dist/Interfaces/Store/index.js +27 -27
  232. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  233. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  234. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  235. package/dist/Interfaces/Supplier/index.js +24 -24
  236. package/dist/Interfaces/TCG/index.d.ts +110 -110
  237. package/dist/Interfaces/TCG/index.js +27 -27
  238. package/dist/Interfaces/Tag/index.d.ts +18 -18
  239. package/dist/Interfaces/Tag/index.js +2 -2
  240. package/dist/Interfaces/Tax/index.d.ts +13 -13
  241. package/dist/Interfaces/Tax/index.js +2 -2
  242. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  243. package/dist/Interfaces/TransferRequest/index.js +43 -43
  244. package/dist/Interfaces/Translation/index.d.ts +8 -8
  245. package/dist/Interfaces/Translation/index.js +5 -5
  246. package/dist/Interfaces/Update/index.d.ts +10 -10
  247. package/dist/Interfaces/Update/index.js +2 -2
  248. package/dist/Interfaces/User/IUser.d.ts +65 -65
  249. package/dist/Interfaces/User/IUser.js +8 -8
  250. package/dist/Interfaces/Version/index.d.ts +11 -11
  251. package/dist/Interfaces/Version/index.js +2 -2
  252. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  253. package/dist/Interfaces/Wishlist/index.js +2 -2
  254. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  255. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  256. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  257. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  258. package/dist/constants/enums.d.ts +6 -6
  259. package/dist/constants/enums.js +10 -10
  260. package/dist/constants/services.d.ts +2 -2
  261. package/dist/constants/services.js +111 -111
  262. package/dist/constants/version.d.ts +2 -2
  263. package/dist/constants/version.js +5 -5
  264. package/dist/index.d.ts +32 -32
  265. package/dist/index.js +242 -242
  266. package/dist/lib/Attribute/index.d.ts +14 -14
  267. package/dist/lib/Attribute/index.js +143 -143
  268. package/dist/lib/BGJob/index.d.ts +9 -9
  269. package/dist/lib/BGJob/index.js +212 -212
  270. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  271. package/dist/lib/BackgroundWorker/index.js +59 -59
  272. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  273. package/dist/lib/Blog/BlogArticle.js +10 -10
  274. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  275. package/dist/lib/Blog/BlogAuthor.js +10 -10
  276. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  277. package/dist/lib/Blog/BlogCategory.js +10 -10
  278. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  279. package/dist/lib/Blog/BlogKeyword.js +10 -10
  280. package/dist/lib/Booking/index.d.ts +70 -70
  281. package/dist/lib/Booking/index.js +576 -576
  282. package/dist/lib/Brand/index.d.ts +17 -17
  283. package/dist/lib/Brand/index.js +113 -113
  284. package/dist/lib/Cart/index.d.ts +206 -206
  285. package/dist/lib/Cart/index.js +3164 -3164
  286. package/dist/lib/Catalogue/index.d.ts +9 -9
  287. package/dist/lib/Catalogue/index.js +69 -69
  288. package/dist/lib/Category/index.d.ts +27 -27
  289. package/dist/lib/Category/index.js +190 -190
  290. package/dist/lib/Class/index.d.ts +12 -12
  291. package/dist/lib/Class/index.js +58 -58
  292. package/dist/lib/Consent/index.d.ts +4 -4
  293. package/dist/lib/Consent/index.js +29 -29
  294. package/dist/lib/Customer/index.d.ts +11 -11
  295. package/dist/lib/Customer/index.js +68 -68
  296. package/dist/lib/Declination/index.d.ts +9 -9
  297. package/dist/lib/Declination/index.js +24 -24
  298. package/dist/lib/Discount/index.d.ts +18 -18
  299. package/dist/lib/Discount/index.js +470 -470
  300. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  301. package/dist/lib/ElasticSearch/index.js +45 -45
  302. package/dist/lib/Elavon/index.d.ts +18 -18
  303. package/dist/lib/Elavon/index.js +130 -130
  304. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  305. package/dist/lib/Email/AbandonedCartEmail.js +16 -16
  306. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  307. package/dist/lib/Email/AccountConfirmationEmail.js +22 -22
  308. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  309. package/dist/lib/Email/AdminOrderConfirmationEmail.js +16 -16
  310. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  311. package/dist/lib/Email/ApplicationEmail.js +16 -16
  312. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  313. package/dist/lib/Email/BackInStockEmail.js +16 -16
  314. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  315. package/dist/lib/Email/ContactEmail.js +16 -16
  316. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  317. package/dist/lib/Email/CustomerBookingAdminEmail.js +16 -16
  318. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  319. package/dist/lib/Email/CustomerBookingEmail.js +16 -16
  320. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  321. package/dist/lib/Email/OrderConfirmationEmail.js +16 -16
  322. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  323. package/dist/lib/Email/OrderDenounciationEmail.js +16 -16
  324. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  325. package/dist/lib/Email/OrderSampleEmail.js +16 -16
  326. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  327. package/dist/lib/Email/OtherTypeEmails.js +19 -19
  328. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  329. package/dist/lib/Email/PasswordResetEmail.js +16 -16
  330. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  331. package/dist/lib/Email/PhotoShootEmail.js +16 -16
  332. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  333. package/dist/lib/Email/PickUpConfirmation.js +16 -16
  334. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  335. package/dist/lib/Email/ShippingConfirmation.js +16 -16
  336. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  337. package/dist/lib/Email/WelcomeEmail.js +16 -16
  338. package/dist/lib/Email/index.d.ts +8 -8
  339. package/dist/lib/Email/index.js +23 -23
  340. package/dist/lib/ExternalService/Ebay.d.ts +62 -62
  341. package/dist/lib/ExternalService/Ebay.js +102 -102
  342. package/dist/lib/ExternalService/index.d.ts +5 -5
  343. package/dist/lib/ExternalService/index.js +10 -10
  344. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  345. package/dist/lib/FirstOrderTracking/index.js +10 -10
  346. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  347. package/dist/lib/Indexed/IndexedCart.js +86 -86
  348. package/dist/lib/Indexed/Product.d.ts +17 -17
  349. package/dist/lib/Indexed/Product.js +48 -48
  350. package/dist/lib/Inventory/index.d.ts +49 -49
  351. package/dist/lib/Inventory/index.js +314 -314
  352. package/dist/lib/Invoice/index.d.ts +5 -5
  353. package/dist/lib/Invoice/index.js +10 -10
  354. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  355. package/dist/lib/MarketplacePublication/index.js +118 -118
  356. package/dist/lib/Menu/index.d.ts +11 -11
  357. package/dist/lib/Menu/index.js +103 -103
  358. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  359. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  360. package/dist/lib/Note/index.d.ts +4 -0
  361. package/dist/lib/Note/index.js +7 -0
  362. package/dist/lib/Note/index.js.map +1 -0
  363. package/dist/lib/Order/index.d.ts +7 -7
  364. package/dist/lib/Order/index.js +33 -33
  365. package/dist/lib/Org/index.d.ts +27 -27
  366. package/dist/lib/Org/index.js +175 -175
  367. package/dist/lib/PandaPay/index.d.ts +16 -16
  368. package/dist/lib/PandaPay/index.js +170 -170
  369. package/dist/lib/Paysafe/index.d.ts +11 -11
  370. package/dist/lib/Paysafe/index.js +40 -40
  371. package/dist/lib/Product/index.d.ts +154 -154
  372. package/dist/lib/Product/index.js +793 -793
  373. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  374. package/dist/lib/ProductAttribute/index.js +45 -45
  375. package/dist/lib/PromiseToPurchase/index.d.ts +37 -37
  376. package/dist/lib/PromiseToPurchase/index.js +264 -264
  377. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  378. package/dist/lib/PurchaseOrder/index.js +16 -16
  379. package/dist/lib/Schedule/index.d.ts +5 -5
  380. package/dist/lib/Schedule/index.js +12 -12
  381. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  382. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  383. package/dist/lib/Service/index.d.ts +5 -5
  384. package/dist/lib/Service/index.js +13 -13
  385. package/dist/lib/Shipment/index.d.ts +28 -28
  386. package/dist/lib/Shipment/index.js +357 -357
  387. package/dist/lib/Slider/index.d.ts +16 -16
  388. package/dist/lib/Slider/index.js +113 -113
  389. package/dist/lib/Space/index.d.ts +873 -873
  390. package/dist/lib/Space/index.js +5094 -5094
  391. package/dist/lib/StockNotification/index.d.ts +4 -4
  392. package/dist/lib/StockNotification/index.js +6 -6
  393. package/dist/lib/Store/index.d.ts +5 -5
  394. package/dist/lib/Store/index.js +12 -12
  395. package/dist/lib/Supplier/Command.d.ts +5 -5
  396. package/dist/lib/Supplier/Command.js +10 -10
  397. package/dist/lib/Supplier/index.d.ts +25 -25
  398. package/dist/lib/Supplier/index.js +22 -22
  399. package/dist/lib/Tags/index.d.ts +6 -6
  400. package/dist/lib/Tags/index.js +21 -21
  401. package/dist/lib/Tax/index.d.ts +8 -8
  402. package/dist/lib/Tax/index.js +54 -54
  403. package/dist/lib/TransferRequest/index.d.ts +112 -112
  404. package/dist/lib/TransferRequest/index.js +794 -794
  405. package/dist/lib/Update/index.d.ts +10 -10
  406. package/dist/lib/Update/index.js +22 -22
  407. package/dist/lib/User/index.d.ts +35 -35
  408. package/dist/lib/User/index.js +248 -248
  409. package/dist/lib/Wishlist/index.d.ts +5 -5
  410. package/dist/lib/Wishlist/index.js +10 -10
  411. package/dist/lib/base.d.ts +14 -14
  412. package/dist/lib/base.js +62 -62
  413. package/dist/lib/baseService.d.ts +17 -17
  414. package/dist/lib/baseService.js +43 -43
  415. package/dist/rules/GR/constants/data.d.ts +26 -26
  416. package/dist/rules/GR/constants/data.js +55 -55
  417. package/dist/rules/GR/constants/products.d.ts +8 -8
  418. package/dist/rules/GR/constants/products.js +234 -234
  419. package/dist/rules/GR/interfaces/cart.d.ts +84 -83
  420. package/dist/rules/GR/interfaces/cart.js +41 -40
  421. package/dist/rules/GR/interfaces/cart.js.map +1 -1
  422. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  423. package/dist/rules/GR/interfaces/data.js +104 -104
  424. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  425. package/dist/rules/GR/interfaces/products.js +10 -10
  426. package/dist/rules/GR/utils/cart.d.ts +53 -53
  427. package/dist/rules/GR/utils/cart.js +637 -631
  428. package/dist/rules/GR/utils/cart.js.map +1 -1
  429. package/dist/rules/GR/utils/data.d.ts +3 -3
  430. package/dist/rules/GR/utils/data.js +25 -25
  431. package/dist/rules/GR/utils/expedition.d.ts +71 -71
  432. package/dist/rules/GR/utils/expedition.js +1542 -1542
  433. package/dist/rules/GR/utils/g2.d.ts +176 -176
  434. package/dist/rules/GR/utils/g2.js +845 -845
  435. package/dist/rules/GR/utils/invoices.d.ts +24 -24
  436. package/dist/rules/GR/utils/invoices.js +174 -171
  437. package/dist/rules/GR/utils/invoices.js.map +1 -1
  438. package/dist/rules/GR/utils/products.d.ts +104 -104
  439. package/dist/rules/GR/utils/products.js +984 -984
  440. package/dist/rules/GR/utils/upsells.d.ts +79 -79
  441. package/dist/rules/GR/utils/upsells.js +183 -183
  442. package/dist/services/database/BaseProvider.d.ts +29 -29
  443. package/dist/services/database/BaseProvider.js +28 -28
  444. package/dist/services/database/BatchUtils.d.ts +14 -14
  445. package/dist/services/database/BatchUtils.js +43 -43
  446. package/dist/services/database/Config.d.ts +2 -2
  447. package/dist/services/database/Config.js +5 -5
  448. package/dist/services/database/DatabaseService.d.ts +41 -41
  449. package/dist/services/database/DatabaseService.js +152 -152
  450. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  451. package/dist/services/database/FirebaseProvider.js +218 -218
  452. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  453. package/dist/services/database/NotFirebaseProvider.js +243 -243
  454. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  455. package/dist/services/g2/G2OrderSlip.js +210 -210
  456. package/dist/services/g2/utils.d.ts +9 -9
  457. package/dist/services/g2/utils.js +703 -695
  458. package/dist/services/g2/utils.js.map +1 -1
  459. package/dist/services/logs/index.d.ts +20 -20
  460. package/dist/services/logs/index.js +61 -61
  461. package/dist/services/products/BaseClass.d.ts +50 -50
  462. package/dist/services/products/BaseClass.js +64 -64
  463. package/dist/services/products/TCGService.d.ts +29 -29
  464. package/dist/services/products/TCGService.js +499 -499
  465. package/dist/services/products/utils.d.ts +9 -9
  466. package/dist/services/products/utils.js +94 -94
  467. package/dist/utils/algolia.d.ts +6 -6
  468. package/dist/utils/algolia.js +21 -21
  469. package/dist/utils/anonymisation.d.ts +30 -30
  470. package/dist/utils/anonymisation.js +250 -250
  471. package/dist/utils/array.d.ts +5 -5
  472. package/dist/utils/array.js +14 -14
  473. package/dist/utils/aws.d.ts +14 -14
  474. package/dist/utils/aws.js +126 -126
  475. package/dist/utils/booking.d.ts +22 -22
  476. package/dist/utils/booking.js +118 -118
  477. package/dist/utils/cart.d.ts +103 -102
  478. package/dist/utils/cart.js +690 -652
  479. package/dist/utils/cart.js.map +1 -1
  480. package/dist/utils/categories.d.ts +2 -2
  481. package/dist/utils/categories.js +54 -54
  482. package/dist/utils/cmv.d.ts +10 -10
  483. package/dist/utils/cmv.js +107 -107
  484. package/dist/utils/console.d.ts +6 -6
  485. package/dist/utils/console.js +59 -59
  486. package/dist/utils/context.d.ts +20 -20
  487. package/dist/utils/context.js +61 -61
  488. package/dist/utils/currency.d.ts +6 -6
  489. package/dist/utils/currency.js +61 -61
  490. package/dist/utils/data.d.ts +31 -31
  491. package/dist/utils/data.js +293 -293
  492. package/dist/utils/date.d.ts +1 -1
  493. package/dist/utils/date.js +16 -16
  494. package/dist/utils/dimensions.d.ts +3 -3
  495. package/dist/utils/dimensions.js +16 -16
  496. package/dist/utils/discount.d.ts +46 -46
  497. package/dist/utils/discount.js +934 -934
  498. package/dist/utils/errors.d.ts +113 -113
  499. package/dist/utils/errors.js +113 -113
  500. package/dist/utils/file-admin.d.ts +8 -8
  501. package/dist/utils/file-admin.js +38 -38
  502. package/dist/utils/file.d.ts +38 -38
  503. package/dist/utils/file.js +200 -200
  504. package/dist/utils/firebase-admin.d.ts +2 -2
  505. package/dist/utils/firebase-admin.js +61 -61
  506. package/dist/utils/firebase.d.ts +41 -41
  507. package/dist/utils/firebase.js +131 -131
  508. package/dist/utils/import.d.ts +1 -1
  509. package/dist/utils/import.js +21 -21
  510. package/dist/utils/inventories.d.ts +49 -49
  511. package/dist/utils/inventories.js +392 -392
  512. package/dist/utils/locale.d.ts +15 -15
  513. package/dist/utils/locale.js +78 -78
  514. package/dist/utils/mailchimp.d.ts +58 -58
  515. package/dist/utils/mailchimp.js +495 -495
  516. package/dist/utils/mathUtils.d.ts +17 -17
  517. package/dist/utils/mathUtils.js +315 -315
  518. package/dist/utils/mongodb.d.ts +1 -1
  519. package/dist/utils/mongodb.js +22 -22
  520. package/dist/utils/object.d.ts +13 -13
  521. package/dist/utils/object.js +115 -115
  522. package/dist/utils/payment.d.ts +10 -10
  523. package/dist/utils/payment.js +23 -23
  524. package/dist/utils/products.d.ts +32 -32
  525. package/dist/utils/products.js +186 -186
  526. package/dist/utils/promiseToPurchase.d.ts +56 -56
  527. package/dist/utils/promiseToPurchase.js +195 -195
  528. package/dist/utils/prosprsearch.d.ts +26 -26
  529. package/dist/utils/prosprsearch.js +182 -182
  530. package/dist/utils/refunds.d.ts +2 -2
  531. package/dist/utils/refunds.js +21 -21
  532. package/dist/utils/sdc.d.ts +10 -10
  533. package/dist/utils/sdc.js +1302 -1302
  534. package/dist/utils/searchIndexes.d.ts +21 -21
  535. package/dist/utils/searchIndexes.js +210 -210
  536. package/dist/utils/services.d.ts +42 -42
  537. package/dist/utils/services.js +409 -409
  538. package/dist/utils/shipment.d.ts +110 -110
  539. package/dist/utils/shipment.js +345 -345
  540. package/dist/utils/simpletexting.d.ts +2 -2
  541. package/dist/utils/simpletexting.js +45 -45
  542. package/dist/utils/sliders.d.ts +4 -4
  543. package/dist/utils/sliders.js +24 -24
  544. package/dist/utils/string.d.ts +16 -16
  545. package/dist/utils/string.js +191 -191
  546. package/dist/utils/tcgService.d.ts +2 -2
  547. package/dist/utils/tcgService.js +8 -8
  548. package/dist/utils/tools.d.ts +1 -1
  549. package/dist/utils/tools.js +9 -9
  550. package/dist/utils/transferRequests.d.ts +19 -19
  551. package/dist/utils/transferRequests.js +43 -43
  552. package/dist/utils/update.d.ts +7 -7
  553. package/dist/utils/update.js +125 -125
  554. package/dist/utils/weight.d.ts +3 -3
  555. package/dist/utils/weight.js +16 -16
  556. package/dist/utils/zones.d.ts +11 -11
  557. package/dist/utils/zones.js +218 -218
  558. package/package.json +110 -110
  559. package/publish.sh +143 -143
  560. package/readme.md +182 -182
@@ -1,496 +1,496 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.mailchimpActions = exports.getInventories = exports.createProdVariants = exports.getInventoryForDecli = exports.getTypeAttribute = exports.getCustomerAddress = exports.fetchMailchimpService = exports.onCartPaymentAddToMailchimp = exports.callMailchimp = void 0;
7
- const isomorphic_unfetch_1 = __importDefault(require("isomorphic-unfetch"));
8
- const Customer_1 = require("../Interfaces/Customer");
9
- const data_1 = require("../utils/data");
10
- const locale_1 = require("../utils/locale");
11
- const lodash_1 = require("lodash");
12
- const moment_1 = __importDefault(require("moment"));
13
- const uuid_1 = require("uuid");
14
- const invoices_1 = require("../rules/GR/utils/invoices");
15
- const data_2 = require("../rules/GR/interfaces/data");
16
- const callMailchimp = async (space, isTest, endpoint, method, body) => {
17
- const correspondingServices = space.services({
18
- field: 'external_service_name',
19
- value: 'mailchimp'
20
- });
21
- if (!!!correspondingServices || !!!correspondingServices.length)
22
- return;
23
- const mailchimp = correspondingServices[0];
24
- if (!!!mailchimp || !!!mailchimp.external_service_infos.api)
25
- return;
26
- const apiKey = mailchimp.external_service_infos.api;
27
- const serverName = !!isTest ? 'us9' : mailchimp.external_service_infos.api.split('-')[1];
28
- const url = `https://${serverName}.api.mailchimp.com/3.0`;
29
- if (!!endpoint.includes('/customers/') && method === 'GET') {
30
- console.log('-------------');
31
- console.log('going to check if customer exists in mailchimp');
32
- console.log('url called: ', `${url}${endpoint}`);
33
- }
34
- try {
35
- const response = await (0, isomorphic_unfetch_1.default)(`${url}${endpoint}`, Object.assign({ method, headers: {
36
- Authorization: `Basic ${apiKey}`,
37
- 'Content-Type': 'application/json'
38
- } }, (!!body ? { body: JSON.stringify(body) } : {})));
39
- return response;
40
- }
41
- catch (e) {
42
- console.log('error on mailchimp call: ', e);
43
- throw new Error(e.toString());
44
- }
45
- };
46
- exports.callMailchimp = callMailchimp;
47
- const onCartPaymentAddToMailchimp = async (cartData, space) => {
48
- console.log('---------------------');
49
- console.log('in onCartPaymentAddToMailchimp for cart ' + cartData.ref);
50
- const isTest = process.env.GCLOUD_PROJECT !== 'gng-ecr' || process.env.NODE_ENV !== 'production';
51
- const customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
52
- const userEmail = !!cartData.user_email ? cartData.user_email : '';
53
- const isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title && !!cartData.customer_info.pro_proof_doc;
54
- console.log('customer is pro: ', !!isPro);
55
- const customerBillingName = !!cartData.billing_address && cartData.billing_address.expedition_recipient_name
56
- ? cartData.billing_address.expedition_recipient_name
57
- : '';
58
- const customerBillingPhone = !!cartData.billing_address && cartData.billing_address.expedition_recipient_phone
59
- ? cartData.billing_address.expedition_recipient_phone
60
- : '';
61
- const userMailchimpBody = {
62
- email_address: userEmail,
63
- status_if_new: 'subscribed',
64
- merge_fields: {
65
- FNAME: !!customerBillingName ? customerBillingName.split('%')[0] : '',
66
- LNAME: !!customerBillingName && customerBillingName.split('%').length > 1 ? customerBillingName.split('%')[1] : '',
67
- PHONE: !!customerBillingPhone ? customerBillingPhone : ''
68
- }
69
- };
70
- if (!!isPro) {
71
- console.log('user isPro');
72
- if (customerEmail !== userEmail) {
73
- let currentCustomerInfos = undefined;
74
- try {
75
- const currentCustomerResponse = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO}/members/${customerEmail}`, 'GET');
76
- if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
77
- const json = await currentCustomerResponse.json();
78
- if (!!json) {
79
- currentCustomerInfos = json;
80
- }
81
- }
82
- }
83
- catch (e) {
84
- console.log('error on fetching current customer: ', e);
85
- }
86
- try {
87
- const response = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO}/members/${userEmail}`, 'PUT', Object.assign(Object.assign({}, userMailchimpBody), { merge_fields: Object.assign(Object.assign({}, (!!currentCustomerInfos && !!currentCustomerInfos.merge_fields
88
- ? currentCustomerInfos.merge_fields
89
- : {})), userMailchimpBody.merge_fields) }));
90
- if (!!!response) {
91
- throw new Error('Mailchimp response undefined');
92
- }
93
- const reponseJson = await response.json();
94
- if (!!response && !!response.status && response.status !== 200) {
95
- if (!!reponseJson) {
96
- throw new Error(`${reponseJson.title} - ${reponseJson.detail}`);
97
- }
98
- }
99
- return true;
100
- }
101
- catch (e) {
102
- console.log('error on saving to mailchimp: ', e.toString());
103
- return false;
104
- }
105
- }
106
- }
107
- if (!!!isPro) {
108
- console.log('user is not Pro');
109
- const cartType = (0, invoices_1.getOrderTypeString)(cartData, { frOnly: true });
110
- if (!!!userEmail) {
111
- return false;
112
- }
113
- const billingAddress = cartData.billing_address;
114
- try {
115
- console.log('calling mailchimp to add customer');
116
- const responseMember = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER}/members/${userEmail}`, 'PUT', Object.assign(Object.assign({}, userMailchimpBody), { merge_fields: Object.assign(Object.assign({}, userMailchimpBody.merge_fields), (!!billingAddress
117
- ? {
118
- ADDRESS: {
119
- addr1: billingAddress.address.line1,
120
- addr2: billingAddress.address.line2
121
- ? billingAddress.address.line2
122
- : !!billingAddress.address.app
123
- ? billingAddress.address.app
124
- : '',
125
- city: billingAddress.address.city,
126
- state: billingAddress.address.state,
127
- zip: billingAddress.address.postal_code,
128
- country: billingAddress.address.country
129
- }
130
- }
131
- : {})) }));
132
- if (!!!responseMember) {
133
- throw new Error('Mailchimp response undefined');
134
- }
135
- const reponseMemberJson = await responseMember.json();
136
- if (!!responseMember && !!responseMember.status && responseMember.status !== 200) {
137
- if (!!reponseMemberJson) {
138
- throw new Error(`${reponseMemberJson.title} - ${reponseMemberJson.detail}`);
139
- }
140
- }
141
- }
142
- catch (e) {
143
- console.log('error on saving customer to mailchimp after cart paid: ', e.toString());
144
- return false;
145
- }
146
- try {
147
- console.log('calling mailchimp to add tags to cart');
148
- const responseTags = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER}/members/${userEmail}/tags`, 'POST', {
149
- tags: [
150
- { name: cartType, status: 'active' },
151
- ...(!!cartData.customer_id || (!!cartData.customer_info && !!cartData.customer_info.pro_proof_doc)
152
- ? [{ name: 'Compte client', status: 'active' }]
153
- : [])
154
- ]
155
- });
156
- if (!!!responseTags)
157
- throw new Error('Mailchimp response undefined');
158
- const reponseTagsJson = await responseTags.json();
159
- if (!!responseTags && !!responseTags.status && responseTags.status !== 200) {
160
- if (!!reponseTagsJson) {
161
- throw new Error(`${reponseTagsJson.title} - ${reponseTagsJson.detail}`);
162
- }
163
- }
164
- }
165
- catch (e) {
166
- console.log('error on saving tags to list member in mailchimp: ', e.toString());
167
- return false;
168
- }
169
- return true;
170
- }
171
- return true;
172
- };
173
- exports.onCartPaymentAddToMailchimp = onCartPaymentAddToMailchimp;
174
- const _deleteCartFromMailchimp = async (storeID, cartID, space, isTest) => {
175
- try {
176
- const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/carts/${cartID}`, 'DELETE');
177
- if (!!response && !!response.status && response.status === 200) {
178
- console.log('Mailchimp cart with id ' + cartID + ' deleted');
179
- return;
180
- }
181
- }
182
- catch (e) {
183
- throw new Error(e.toString());
184
- }
185
- };
186
- const _addOrUpdateCartToMailchimp = async (cartData, storeID, space, isTest) => {
187
- console.log('** adding or updating cart to mailchimp ** ');
188
- try {
189
- const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/carts`, 'POST', {
190
- id: cartData.id,
191
- currency_code: cartData.currency || 'CAD',
192
- customer: { id: cartData.id },
193
- order_total: cartData.total,
194
- lines: !!!cartData.items || !!!cartData.items.length
195
- ? []
196
- : cartData.items.map((item) => ({
197
- id: `${item.parent_product_id}-${item.sku}`,
198
- product_id: item.parent_product_id,
199
- product_variant_id: item.sku,
200
- quantity: (0, lodash_1.toNumber)(item.qte),
201
- price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
202
- }))
203
- });
204
- if (!!!response)
205
- throw new Error('Mailchimp response is undefined');
206
- console.log('response.status: ', response.status);
207
- const reponseJson = await response.json();
208
- if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
209
- if (!!reponseJson) {
210
- console.log('respose: ', JSON.stringify(reponseJson));
211
- throw new Error(`${reponseJson.title} - ${reponseJson.detail}`);
212
- }
213
- }
214
- return true;
215
- }
216
- catch (e) {
217
- console.log('error on saving to mailchimp: ', e.toString());
218
- return false;
219
- }
220
- };
221
- const _addOrderToMailchimp = async (cartData, storeID, space, isTest) => {
222
- try {
223
- const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/orders`, 'POST', Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ id: cartData.ref, currency_code: cartData.currency || 'CAD', customer: { id: cartData.id }, order_total: cartData.total, lines: !!!cartData.items.length
224
- ? []
225
- : cartData.items.map((item) => ({
226
- id: `${item.parent_product_id}-${item.sku}`,
227
- product_id: item.parent_product_id,
228
- product_variant_id: item.sku,
229
- quantity: (0, lodash_1.toNumber)(item.qte),
230
- price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
231
- })) }, (!!cartData.paid_at
232
- ? {
233
- processed_at_foreign: (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YYYY-MM-DD')
234
- }
235
- : {})), (!!cartData.subtotalWithoutPromotions
236
- ? {
237
- discount_total: cartData.subtotal - cartData.subtotalWithoutPromotions
238
- }
239
- : {})), (!!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) } : {})));
240
- if (!!!response)
241
- throw new Error('Mailchimp response is undefined');
242
- const reponseJson = await response.json();
243
- if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
244
- if (!!reponseJson) {
245
- throw new Error(`${reponseJson.title} - ${reponseJson.detail}`);
246
- }
247
- }
248
- return true;
249
- }
250
- catch (e) {
251
- console.log('error on saving to mailchimp: ', e.toString());
252
- return false;
253
- }
254
- };
255
- const _deleteCustomerFromMailchimp = async (storeID, customerID, space, isTest) => {
256
- try {
257
- const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/customers/${customerID}`, 'DELETE');
258
- if (!!response && !!response.status && response.status === 200) {
259
- console.log('Mailchimp customer with id ' + customerID + ' deleted');
260
- return;
261
- }
262
- }
263
- catch (e) {
264
- throw new Error(e.toString());
265
- }
266
- };
267
- const _addUpdateCustomerToStoreMailchimp = async (storeID, space, isTest, body) => {
268
- try {
269
- const currentCustomerResponse = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/customers/${body.id}`, 'PUT', body);
270
- if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
271
- console.log('customer successfully added to mailchimp with id: ', body.id);
272
- }
273
- }
274
- catch (e) {
275
- console.log('error on fetching current customer: ', e);
276
- }
277
- };
278
- const _addOrUpdateCustomer = async (cartData, storeID, space, isTest) => {
279
- const customerID = !!cartData.customer_id ? cartData.customer_id : cartData.user_email || '';
280
- console.log(' ** in _addOrUpdateCustomer, customerID: ', customerID);
281
- try {
282
- let customerQuery;
283
- if (!!cartData.customer_id) {
284
- try {
285
- customerQuery = await space.customers.get({
286
- query: [{ field: 'id', operator: '==', value: customerID }]
287
- });
288
- }
289
- catch (e) {
290
- console.log('could not fetch customer: ', e);
291
- }
292
- }
293
- const customer = !!customerQuery && !!customerQuery.length ? customerQuery[0].data() : null;
294
- console.log('customer was found: ', !!customer);
295
- const body = Object.assign({ id: cartData.id, email_address: !!cartData.customer_info && !!cartData.customer_info.customer_default_email
296
- ? cartData.customer_info.customer_default_email
297
- : cartData.user_email || '', opt_in_status: true }, (!!customer
298
- ? Object.assign(Object.assign(Object.assign(Object.assign({}, (!!customer.company_info &&
299
- customer.company_info.invoice_info &&
300
- !!customer.company_info.invoice_info.legal_name
301
- ? { company: customer.company_info.invoice_info.legal_name }
302
- : {})), (!!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 &&
303
- !!customer.expedition_info.length &&
304
- customer.expedition_info.find((exp) => !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING))
305
- ? {
306
- address: (0, exports.getCustomerAddress)(customer.expedition_info.find((exp) => !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING)))
307
- }
308
- : {})) : {}));
309
- console.log('body: ', JSON.stringify(body));
310
- await _addUpdateCustomerToStoreMailchimp(storeID, space, isTest, body);
311
- }
312
- catch (e) {
313
- console.log('error on fetching current customer: ', e);
314
- }
315
- };
316
- const _checkIfCustomerExists = async (customerID, storeID, space, isTest) => {
317
- try {
318
- const currentCustomerResponse = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/customers/${customerID}`, 'GET');
319
- if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
320
- return true;
321
- }
322
- return false;
323
- }
324
- catch (e) {
325
- console.log('error on fetching current customer: ', e);
326
- return false;
327
- }
328
- };
329
- const _updateCustomerWithData = async (listID, space, isTest, customerID, tags, fields) => {
330
- try {
331
- await (0, exports.callMailchimp)(space, isTest, `/lists/${listID}/members/${customerID}`, 'PUT', {
332
- merge_fields: fields
333
- });
334
- }
335
- catch (e) {
336
- console.log('error on adding merge fields: ', e);
337
- }
338
- try {
339
- await (0, exports.callMailchimp)(space, isTest, `/lists/${listID}/members/${customerID}/tags`, 'POST', {
340
- tags
341
- });
342
- }
343
- catch (e) {
344
- console.log('error on adding merge fields: ', e);
345
- }
346
- };
347
- const _deleteProductFromMailchimp = async (storeID, productID, space, isTest) => {
348
- try {
349
- const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products/${productID}`, 'DELETE');
350
- if (!!response && !!response.status && response.status === 200) {
351
- console.log('Mailchimp product with id ' + productID + ' deleted');
352
- return;
353
- }
354
- }
355
- catch (e) {
356
- throw new Error(e.toString());
357
- }
358
- };
359
- const _addProductToMailchimp = async (productData, storeID, space, isTest) => {
360
- const spaceData = space.data();
361
- const inventories = await (0, exports.getInventories)(productData.declinations, space);
362
- const body = Object.assign(Object.assign(Object.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://${spaceData.url}/produits/${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
363
- ? productData.image_files.map((img) => ({
364
- id: (0, uuid_1.v4)(),
365
- url: img.img_path
366
- }))
367
- : [], published_at_foreign: !!productData.created_at
368
- ? (0, moment_1.default)((0, data_1.formatDate)(productData.created_at)).format('YYYY-MM-DD')
369
- : (0, moment_1.default)().format('YYYY-MM-DD') });
370
- try {
371
- const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products`, 'POST', body);
372
- if (!!response && !!response.status && response.status === 200) {
373
- console.log('Mailchimp product added successfully with id ' + productData.id + ' and slug ' + productData.slug);
374
- return;
375
- }
376
- }
377
- catch (e) {
378
- throw new Error(e.toString());
379
- }
380
- };
381
- const _updateProductInMailchimp = async (data, storeID, space, isTest) => {
382
- const inventories = await (0, exports.getInventories)(data.declinations, space);
383
- const updatedProd = Object.assign(Object.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
384
- ? data.image_files.map((img) => ({ id: (0, uuid_1.v4)(), url: img.img_path }))
385
- : [] });
386
- try {
387
- await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products/${data.id}`, 'PATCH', updatedProd);
388
- }
389
- catch (e) {
390
- throw new Error(e.toString());
391
- }
392
- };
393
- const _updateProductVariantInMailchimp = async (body, storeID, productID, variantID, space, isTest) => {
394
- try {
395
- await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products/${productID}/variants/${variantID}`, 'PATCH', body);
396
- }
397
- catch (e) {
398
- console.log('error on updating product variant in mailchimp: ', e.toString());
399
- }
400
- };
401
- const fetchMailchimpService = (space, isEcommInstance) => {
402
- let services = undefined;
403
- try {
404
- services = space.services({
405
- field: 'external_service_name',
406
- value: 'mailchimp'
407
- });
408
- }
409
- catch (e) {
410
- console.log('error on fetching mailchimp service: ', e);
411
- }
412
- if (!!!services || !!!services.length) {
413
- console.log('service not found');
414
- return;
415
- }
416
- const mailchimp = services[0];
417
- if (!!!mailchimp ||
418
- !!!mailchimp.external_service_infos.api ||
419
- (!!isEcommInstance &&
420
- (!!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id))) {
421
- console.log('no mailchimp: ', !!!mailchimp);
422
- console.log('no api: ', !!!mailchimp.external_service_infos.api);
423
- console.log('isEcommInstance: ', !!isEcommInstance);
424
- console.log('no store_id of list_id:', !!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id);
425
- return;
426
- }
427
- return mailchimp;
428
- };
429
- exports.fetchMailchimpService = fetchMailchimpService;
430
- const getCustomerAddress = (expeditionInfo) => (Object.assign(Object.assign({ address1: expeditionInfo.address.line1 }, (!!expeditionInfo.address.line2
431
- ? { address2: expeditionInfo.address.line2 }
432
- : !!expeditionInfo.address.app
433
- ? { address2: expeditionInfo.address.app }
434
- : {})), { city: expeditionInfo.address.city, province: expeditionInfo.address.state, postal_code: expeditionInfo.address.postal_code, country: expeditionInfo.address.country || 'CA' }));
435
- exports.getCustomerAddress = getCustomerAddress;
436
- const getTypeAttribute = (data) => {
437
- if (!!!data.attributes)
438
- return {};
439
- const typeAttr = data.attributes[data_2.AttributesIdEnumGR.TYPE];
440
- if (!!!typeAttr)
441
- return {};
442
- return { type: typeAttr[0] };
443
- };
444
- exports.getTypeAttribute = getTypeAttribute;
445
- const getInventoryForDecli = (decli, inventories) => {
446
- if (!!decli.is_service || !!decli.is_service || decli.disabled)
447
- return 0;
448
- const sameSku = inventories.find((i) => !!i && i.sku === decli.sku);
449
- if (!!!sameSku)
450
- return 0;
451
- if (!!!sameSku.web_inventory)
452
- return 0;
453
- return sameSku.web_inventory.available;
454
- };
455
- exports.getInventoryForDecli = getInventoryForDecli;
456
- const createProdVariants = (prod, space, inventories) => {
457
- return prod.declinations
458
- .filter((d) => !!!d.is_sample)
459
- .map((decli) => (Object.assign(Object.assign(Object.assign({ id: decli.sku, title: `${(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' } : {}))));
460
- };
461
- exports.createProdVariants = createProdVariants;
462
- const getInventories = async (declis, space) => {
463
- let inventories = [];
464
- try {
465
- inventories = (await Promise.all(declis.map(async (decli) => {
466
- return await space.inventoryItems.getOne(decli.sku);
467
- }))).filter((i) => !!i);
468
- }
469
- catch (e) {
470
- console.log('error on fetcing inventories: ', e);
471
- }
472
- return inventories;
473
- };
474
- exports.getInventories = getInventories;
475
- exports.mailchimpActions = {
476
- products: {
477
- delete: _deleteProductFromMailchimp,
478
- add: _addProductToMailchimp,
479
- update: _updateProductInMailchimp,
480
- updateVariant: _updateProductVariantInMailchimp
481
- },
482
- customers: {
483
- add: _addOrUpdateCustomer,
484
- update: _updateCustomerWithData,
485
- delete: _deleteCustomerFromMailchimp,
486
- exists: _checkIfCustomerExists
487
- },
488
- orders: {
489
- add: _addOrderToMailchimp
490
- },
491
- carts: {
492
- delete: _deleteCartFromMailchimp,
493
- add: _addOrUpdateCartToMailchimp
494
- }
495
- };
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.mailchimpActions = exports.getInventories = exports.createProdVariants = exports.getInventoryForDecli = exports.getTypeAttribute = exports.getCustomerAddress = exports.fetchMailchimpService = exports.onCartPaymentAddToMailchimp = exports.callMailchimp = void 0;
7
+ const isomorphic_unfetch_1 = __importDefault(require("isomorphic-unfetch"));
8
+ const Customer_1 = require("../Interfaces/Customer");
9
+ const data_1 = require("../utils/data");
10
+ const locale_1 = require("../utils/locale");
11
+ const lodash_1 = require("lodash");
12
+ const moment_1 = __importDefault(require("moment"));
13
+ const uuid_1 = require("uuid");
14
+ const invoices_1 = require("../rules/GR/utils/invoices");
15
+ const data_2 = require("../rules/GR/interfaces/data");
16
+ const callMailchimp = async (space, isTest, endpoint, method, body) => {
17
+ const correspondingServices = space.services({
18
+ field: 'external_service_name',
19
+ value: 'mailchimp'
20
+ });
21
+ if (!!!correspondingServices || !!!correspondingServices.length)
22
+ return;
23
+ const mailchimp = correspondingServices[0];
24
+ if (!!!mailchimp || !!!mailchimp.external_service_infos.api)
25
+ return;
26
+ const apiKey = mailchimp.external_service_infos.api;
27
+ const serverName = !!isTest ? 'us9' : mailchimp.external_service_infos.api.split('-')[1];
28
+ const url = `https://${serverName}.api.mailchimp.com/3.0`;
29
+ if (!!endpoint.includes('/customers/') && method === 'GET') {
30
+ console.log('-------------');
31
+ console.log('going to check if customer exists in mailchimp');
32
+ console.log('url called: ', `${url}${endpoint}`);
33
+ }
34
+ try {
35
+ const response = await (0, isomorphic_unfetch_1.default)(`${url}${endpoint}`, Object.assign({ method, headers: {
36
+ Authorization: `Basic ${apiKey}`,
37
+ 'Content-Type': 'application/json'
38
+ } }, (!!body ? { body: JSON.stringify(body) } : {})));
39
+ return response;
40
+ }
41
+ catch (e) {
42
+ console.log('error on mailchimp call: ', e);
43
+ throw new Error(e.toString());
44
+ }
45
+ };
46
+ exports.callMailchimp = callMailchimp;
47
+ const onCartPaymentAddToMailchimp = async (cartData, space) => {
48
+ console.log('---------------------');
49
+ console.log('in onCartPaymentAddToMailchimp for cart ' + cartData.ref);
50
+ const isTest = process.env.GCLOUD_PROJECT !== 'gng-ecr' || process.env.NODE_ENV !== 'production';
51
+ const customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
52
+ const userEmail = !!cartData.user_email ? cartData.user_email : '';
53
+ const isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title && !!cartData.customer_info.pro_proof_doc;
54
+ console.log('customer is pro: ', !!isPro);
55
+ const customerBillingName = !!cartData.billing_address && cartData.billing_address.expedition_recipient_name
56
+ ? cartData.billing_address.expedition_recipient_name
57
+ : '';
58
+ const customerBillingPhone = !!cartData.billing_address && cartData.billing_address.expedition_recipient_phone
59
+ ? cartData.billing_address.expedition_recipient_phone
60
+ : '';
61
+ const userMailchimpBody = {
62
+ email_address: userEmail,
63
+ status_if_new: 'subscribed',
64
+ merge_fields: {
65
+ FNAME: !!customerBillingName ? customerBillingName.split('%')[0] : '',
66
+ LNAME: !!customerBillingName && customerBillingName.split('%').length > 1 ? customerBillingName.split('%')[1] : '',
67
+ PHONE: !!customerBillingPhone ? customerBillingPhone : ''
68
+ }
69
+ };
70
+ if (!!isPro) {
71
+ console.log('user isPro');
72
+ if (customerEmail !== userEmail) {
73
+ let currentCustomerInfos = undefined;
74
+ try {
75
+ const currentCustomerResponse = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO}/members/${customerEmail}`, 'GET');
76
+ if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
77
+ const json = await currentCustomerResponse.json();
78
+ if (!!json) {
79
+ currentCustomerInfos = json;
80
+ }
81
+ }
82
+ }
83
+ catch (e) {
84
+ console.log('error on fetching current customer: ', e);
85
+ }
86
+ try {
87
+ const response = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'da793a762b' : data_2.MailchimpListIds.CLIENTS_PRO}/members/${userEmail}`, 'PUT', Object.assign(Object.assign({}, userMailchimpBody), { merge_fields: Object.assign(Object.assign({}, (!!currentCustomerInfos && !!currentCustomerInfos.merge_fields
88
+ ? currentCustomerInfos.merge_fields
89
+ : {})), userMailchimpBody.merge_fields) }));
90
+ if (!!!response) {
91
+ throw new Error('Mailchimp response undefined');
92
+ }
93
+ const reponseJson = await response.json();
94
+ if (!!response && !!response.status && response.status !== 200) {
95
+ if (!!reponseJson) {
96
+ throw new Error(`${reponseJson.title} - ${reponseJson.detail}`);
97
+ }
98
+ }
99
+ return true;
100
+ }
101
+ catch (e) {
102
+ console.log('error on saving to mailchimp: ', e.toString());
103
+ return false;
104
+ }
105
+ }
106
+ }
107
+ if (!!!isPro) {
108
+ console.log('user is not Pro');
109
+ const cartType = (0, invoices_1.getOrderTypeString)(cartData, { frOnly: true });
110
+ if (!!!userEmail) {
111
+ return false;
112
+ }
113
+ const billingAddress = cartData.billing_address;
114
+ try {
115
+ console.log('calling mailchimp to add customer');
116
+ const responseMember = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER}/members/${userEmail}`, 'PUT', Object.assign(Object.assign({}, userMailchimpBody), { merge_fields: Object.assign(Object.assign({}, userMailchimpBody.merge_fields), (!!billingAddress
117
+ ? {
118
+ ADDRESS: {
119
+ addr1: billingAddress.address.line1,
120
+ addr2: billingAddress.address.line2
121
+ ? billingAddress.address.line2
122
+ : !!billingAddress.address.app
123
+ ? billingAddress.address.app
124
+ : '',
125
+ city: billingAddress.address.city,
126
+ state: billingAddress.address.state,
127
+ zip: billingAddress.address.postal_code,
128
+ country: billingAddress.address.country
129
+ }
130
+ }
131
+ : {})) }));
132
+ if (!!!responseMember) {
133
+ throw new Error('Mailchimp response undefined');
134
+ }
135
+ const reponseMemberJson = await responseMember.json();
136
+ if (!!responseMember && !!responseMember.status && responseMember.status !== 200) {
137
+ if (!!reponseMemberJson) {
138
+ throw new Error(`${reponseMemberJson.title} - ${reponseMemberJson.detail}`);
139
+ }
140
+ }
141
+ }
142
+ catch (e) {
143
+ console.log('error on saving customer to mailchimp after cart paid: ', e.toString());
144
+ return false;
145
+ }
146
+ try {
147
+ console.log('calling mailchimp to add tags to cart');
148
+ const responseTags = await (0, exports.callMailchimp)(space, isTest, `/lists/${!!isTest ? 'ddda2c2323' : data_2.MailchimpListIds.CLIENTS_PARTICULIER}/members/${userEmail}/tags`, 'POST', {
149
+ tags: [
150
+ { name: cartType, status: 'active' },
151
+ ...(!!cartData.customer_id || (!!cartData.customer_info && !!cartData.customer_info.pro_proof_doc)
152
+ ? [{ name: 'Compte client', status: 'active' }]
153
+ : [])
154
+ ]
155
+ });
156
+ if (!!!responseTags)
157
+ throw new Error('Mailchimp response undefined');
158
+ const reponseTagsJson = await responseTags.json();
159
+ if (!!responseTags && !!responseTags.status && responseTags.status !== 200) {
160
+ if (!!reponseTagsJson) {
161
+ throw new Error(`${reponseTagsJson.title} - ${reponseTagsJson.detail}`);
162
+ }
163
+ }
164
+ }
165
+ catch (e) {
166
+ console.log('error on saving tags to list member in mailchimp: ', e.toString());
167
+ return false;
168
+ }
169
+ return true;
170
+ }
171
+ return true;
172
+ };
173
+ exports.onCartPaymentAddToMailchimp = onCartPaymentAddToMailchimp;
174
+ const _deleteCartFromMailchimp = async (storeID, cartID, space, isTest) => {
175
+ try {
176
+ const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/carts/${cartID}`, 'DELETE');
177
+ if (!!response && !!response.status && response.status === 200) {
178
+ console.log('Mailchimp cart with id ' + cartID + ' deleted');
179
+ return;
180
+ }
181
+ }
182
+ catch (e) {
183
+ throw new Error(e.toString());
184
+ }
185
+ };
186
+ const _addOrUpdateCartToMailchimp = async (cartData, storeID, space, isTest) => {
187
+ console.log('** adding or updating cart to mailchimp ** ');
188
+ try {
189
+ const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/carts`, 'POST', {
190
+ id: cartData.id,
191
+ currency_code: cartData.currency || 'CAD',
192
+ customer: { id: cartData.id },
193
+ order_total: cartData.total,
194
+ lines: !!!cartData.items || !!!cartData.items.length
195
+ ? []
196
+ : cartData.items.map((item) => ({
197
+ id: `${item.parent_product_id}-${item.sku}`,
198
+ product_id: item.parent_product_id,
199
+ product_variant_id: item.sku,
200
+ quantity: (0, lodash_1.toNumber)(item.qte),
201
+ price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
202
+ }))
203
+ });
204
+ if (!!!response)
205
+ throw new Error('Mailchimp response is undefined');
206
+ console.log('response.status: ', response.status);
207
+ const reponseJson = await response.json();
208
+ if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
209
+ if (!!reponseJson) {
210
+ console.log('respose: ', JSON.stringify(reponseJson));
211
+ throw new Error(`${reponseJson.title} - ${reponseJson.detail}`);
212
+ }
213
+ }
214
+ return true;
215
+ }
216
+ catch (e) {
217
+ console.log('error on saving to mailchimp: ', e.toString());
218
+ return false;
219
+ }
220
+ };
221
+ const _addOrderToMailchimp = async (cartData, storeID, space, isTest) => {
222
+ try {
223
+ const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/orders`, 'POST', Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ id: cartData.ref, currency_code: cartData.currency || 'CAD', customer: { id: cartData.id }, order_total: cartData.total, lines: !!!cartData.items.length
224
+ ? []
225
+ : cartData.items.map((item) => ({
226
+ id: `${item.parent_product_id}-${item.sku}`,
227
+ product_id: item.parent_product_id,
228
+ product_variant_id: item.sku,
229
+ quantity: (0, lodash_1.toNumber)(item.qte),
230
+ price: (0, lodash_1.toNumber)((0, data_1.getPrice)(item, space, 'CAD').price)
231
+ })) }, (!!cartData.paid_at
232
+ ? {
233
+ processed_at_foreign: (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YYYY-MM-DD')
234
+ }
235
+ : {})), (!!cartData.subtotalWithoutPromotions
236
+ ? {
237
+ discount_total: cartData.subtotal - cartData.subtotalWithoutPromotions
238
+ }
239
+ : {})), (!!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) } : {})));
240
+ if (!!!response)
241
+ throw new Error('Mailchimp response is undefined');
242
+ const reponseJson = await response.json();
243
+ if (!!response && !!response.status && typeof response.status === 'number' && response.status !== 200) {
244
+ if (!!reponseJson) {
245
+ throw new Error(`${reponseJson.title} - ${reponseJson.detail}`);
246
+ }
247
+ }
248
+ return true;
249
+ }
250
+ catch (e) {
251
+ console.log('error on saving to mailchimp: ', e.toString());
252
+ return false;
253
+ }
254
+ };
255
+ const _deleteCustomerFromMailchimp = async (storeID, customerID, space, isTest) => {
256
+ try {
257
+ const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/customers/${customerID}`, 'DELETE');
258
+ if (!!response && !!response.status && response.status === 200) {
259
+ console.log('Mailchimp customer with id ' + customerID + ' deleted');
260
+ return;
261
+ }
262
+ }
263
+ catch (e) {
264
+ throw new Error(e.toString());
265
+ }
266
+ };
267
+ const _addUpdateCustomerToStoreMailchimp = async (storeID, space, isTest, body) => {
268
+ try {
269
+ const currentCustomerResponse = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/customers/${body.id}`, 'PUT', body);
270
+ if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
271
+ console.log('customer successfully added to mailchimp with id: ', body.id);
272
+ }
273
+ }
274
+ catch (e) {
275
+ console.log('error on fetching current customer: ', e);
276
+ }
277
+ };
278
+ const _addOrUpdateCustomer = async (cartData, storeID, space, isTest) => {
279
+ const customerID = !!cartData.customer_id ? cartData.customer_id : cartData.user_email || '';
280
+ console.log(' ** in _addOrUpdateCustomer, customerID: ', customerID);
281
+ try {
282
+ let customerQuery;
283
+ if (!!cartData.customer_id) {
284
+ try {
285
+ customerQuery = await space.customers.get({
286
+ query: [{ field: 'id', operator: '==', value: customerID }]
287
+ });
288
+ }
289
+ catch (e) {
290
+ console.log('could not fetch customer: ', e);
291
+ }
292
+ }
293
+ const customer = !!customerQuery && !!customerQuery.length ? customerQuery[0].data() : null;
294
+ console.log('customer was found: ', !!customer);
295
+ const body = Object.assign({ id: cartData.id, email_address: !!cartData.customer_info && !!cartData.customer_info.customer_default_email
296
+ ? cartData.customer_info.customer_default_email
297
+ : cartData.user_email || '', opt_in_status: true }, (!!customer
298
+ ? Object.assign(Object.assign(Object.assign(Object.assign({}, (!!customer.company_info &&
299
+ customer.company_info.invoice_info &&
300
+ !!customer.company_info.invoice_info.legal_name
301
+ ? { company: customer.company_info.invoice_info.legal_name }
302
+ : {})), (!!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 &&
303
+ !!customer.expedition_info.length &&
304
+ customer.expedition_info.find((exp) => !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING))
305
+ ? {
306
+ address: (0, exports.getCustomerAddress)(customer.expedition_info.find((exp) => !!exp.is_default && exp.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING)))
307
+ }
308
+ : {})) : {}));
309
+ console.log('body: ', JSON.stringify(body));
310
+ await _addUpdateCustomerToStoreMailchimp(storeID, space, isTest, body);
311
+ }
312
+ catch (e) {
313
+ console.log('error on fetching current customer: ', e);
314
+ }
315
+ };
316
+ const _checkIfCustomerExists = async (customerID, storeID, space, isTest) => {
317
+ try {
318
+ const currentCustomerResponse = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/customers/${customerID}`, 'GET');
319
+ if (!!currentCustomerResponse && !!currentCustomerResponse.status && currentCustomerResponse.status === 200) {
320
+ return true;
321
+ }
322
+ return false;
323
+ }
324
+ catch (e) {
325
+ console.log('error on fetching current customer: ', e);
326
+ return false;
327
+ }
328
+ };
329
+ const _updateCustomerWithData = async (listID, space, isTest, customerID, tags, fields) => {
330
+ try {
331
+ await (0, exports.callMailchimp)(space, isTest, `/lists/${listID}/members/${customerID}`, 'PUT', {
332
+ merge_fields: fields
333
+ });
334
+ }
335
+ catch (e) {
336
+ console.log('error on adding merge fields: ', e);
337
+ }
338
+ try {
339
+ await (0, exports.callMailchimp)(space, isTest, `/lists/${listID}/members/${customerID}/tags`, 'POST', {
340
+ tags
341
+ });
342
+ }
343
+ catch (e) {
344
+ console.log('error on adding merge fields: ', e);
345
+ }
346
+ };
347
+ const _deleteProductFromMailchimp = async (storeID, productID, space, isTest) => {
348
+ try {
349
+ const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products/${productID}`, 'DELETE');
350
+ if (!!response && !!response.status && response.status === 200) {
351
+ console.log('Mailchimp product with id ' + productID + ' deleted');
352
+ return;
353
+ }
354
+ }
355
+ catch (e) {
356
+ throw new Error(e.toString());
357
+ }
358
+ };
359
+ const _addProductToMailchimp = async (productData, storeID, space, isTest) => {
360
+ const spaceData = space.data();
361
+ const inventories = await (0, exports.getInventories)(productData.declinations, space);
362
+ const body = Object.assign(Object.assign(Object.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://${spaceData.url}/produits/${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
363
+ ? productData.image_files.map((img) => ({
364
+ id: (0, uuid_1.v4)(),
365
+ url: img.img_path
366
+ }))
367
+ : [], published_at_foreign: !!productData.created_at
368
+ ? (0, moment_1.default)((0, data_1.formatDate)(productData.created_at)).format('YYYY-MM-DD')
369
+ : (0, moment_1.default)().format('YYYY-MM-DD') });
370
+ try {
371
+ const response = await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products`, 'POST', body);
372
+ if (!!response && !!response.status && response.status === 200) {
373
+ console.log('Mailchimp product added successfully with id ' + productData.id + ' and slug ' + productData.slug);
374
+ return;
375
+ }
376
+ }
377
+ catch (e) {
378
+ throw new Error(e.toString());
379
+ }
380
+ };
381
+ const _updateProductInMailchimp = async (data, storeID, space, isTest) => {
382
+ const inventories = await (0, exports.getInventories)(data.declinations, space);
383
+ const updatedProd = Object.assign(Object.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
384
+ ? data.image_files.map((img) => ({ id: (0, uuid_1.v4)(), url: img.img_path }))
385
+ : [] });
386
+ try {
387
+ await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products/${data.id}`, 'PATCH', updatedProd);
388
+ }
389
+ catch (e) {
390
+ throw new Error(e.toString());
391
+ }
392
+ };
393
+ const _updateProductVariantInMailchimp = async (body, storeID, productID, variantID, space, isTest) => {
394
+ try {
395
+ await (0, exports.callMailchimp)(space, isTest, `/ecommerce/stores/${storeID}/products/${productID}/variants/${variantID}`, 'PATCH', body);
396
+ }
397
+ catch (e) {
398
+ console.log('error on updating product variant in mailchimp: ', e.toString());
399
+ }
400
+ };
401
+ const fetchMailchimpService = (space, isEcommInstance) => {
402
+ let services = undefined;
403
+ try {
404
+ services = space.services({
405
+ field: 'external_service_name',
406
+ value: 'mailchimp'
407
+ });
408
+ }
409
+ catch (e) {
410
+ console.log('error on fetching mailchimp service: ', e);
411
+ }
412
+ if (!!!services || !!!services.length) {
413
+ console.log('service not found');
414
+ return;
415
+ }
416
+ const mailchimp = services[0];
417
+ if (!!!mailchimp ||
418
+ !!!mailchimp.external_service_infos.api ||
419
+ (!!isEcommInstance &&
420
+ (!!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id))) {
421
+ console.log('no mailchimp: ', !!!mailchimp);
422
+ console.log('no api: ', !!!mailchimp.external_service_infos.api);
423
+ console.log('isEcommInstance: ', !!isEcommInstance);
424
+ console.log('no store_id of list_id:', !!!mailchimp.external_service_infos.ecomm_store_id || !!!mailchimp.external_service_infos.ecomm_list_id);
425
+ return;
426
+ }
427
+ return mailchimp;
428
+ };
429
+ exports.fetchMailchimpService = fetchMailchimpService;
430
+ const getCustomerAddress = (expeditionInfo) => (Object.assign(Object.assign({ address1: expeditionInfo.address.line1 }, (!!expeditionInfo.address.line2
431
+ ? { address2: expeditionInfo.address.line2 }
432
+ : !!expeditionInfo.address.app
433
+ ? { address2: expeditionInfo.address.app }
434
+ : {})), { city: expeditionInfo.address.city, province: expeditionInfo.address.state, postal_code: expeditionInfo.address.postal_code, country: expeditionInfo.address.country || 'CA' }));
435
+ exports.getCustomerAddress = getCustomerAddress;
436
+ const getTypeAttribute = (data) => {
437
+ if (!!!data.attributes)
438
+ return {};
439
+ const typeAttr = data.attributes[data_2.AttributesIdEnumGR.TYPE];
440
+ if (!!!typeAttr)
441
+ return {};
442
+ return { type: typeAttr[0] };
443
+ };
444
+ exports.getTypeAttribute = getTypeAttribute;
445
+ const getInventoryForDecli = (decli, inventories) => {
446
+ if (!!decli.is_service || !!decli.is_service || decli.disabled)
447
+ return 0;
448
+ const sameSku = inventories.find((i) => !!i && i.sku === decli.sku);
449
+ if (!!!sameSku)
450
+ return 0;
451
+ if (!!!sameSku.web_inventory)
452
+ return 0;
453
+ return sameSku.web_inventory.available;
454
+ };
455
+ exports.getInventoryForDecli = getInventoryForDecli;
456
+ const createProdVariants = (prod, space, inventories) => {
457
+ return prod.declinations
458
+ .filter((d) => !!!d.is_sample)
459
+ .map((decli) => (Object.assign(Object.assign(Object.assign({ id: decli.sku, title: `${(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' } : {}))));
460
+ };
461
+ exports.createProdVariants = createProdVariants;
462
+ const getInventories = async (declis, space) => {
463
+ let inventories = [];
464
+ try {
465
+ inventories = (await Promise.all(declis.map(async (decli) => {
466
+ return await space.inventoryItems.getOne(decli.sku);
467
+ }))).filter((i) => !!i);
468
+ }
469
+ catch (e) {
470
+ console.log('error on fetcing inventories: ', e);
471
+ }
472
+ return inventories;
473
+ };
474
+ exports.getInventories = getInventories;
475
+ exports.mailchimpActions = {
476
+ products: {
477
+ delete: _deleteProductFromMailchimp,
478
+ add: _addProductToMailchimp,
479
+ update: _updateProductInMailchimp,
480
+ updateVariant: _updateProductVariantInMailchimp
481
+ },
482
+ customers: {
483
+ add: _addOrUpdateCustomer,
484
+ update: _updateCustomerWithData,
485
+ delete: _deleteCustomerFromMailchimp,
486
+ exists: _checkIfCustomerExists
487
+ },
488
+ orders: {
489
+ add: _addOrderToMailchimp
490
+ },
491
+ carts: {
492
+ delete: _deleteCartFromMailchimp,
493
+ add: _addOrUpdateCartToMailchimp
494
+ }
495
+ };
496
496
  //# sourceMappingURL=mailchimp.js.map