@meeovi/layer-commerce 1.0.6 → 1.0.7

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 (323) hide show
  1. package/package.json +8 -2
  2. package/app/components/catalog/product/ProductAccordion/ProductAccordion.vue +0 -39
  3. package/app/components/catalog/product/ProductAccordion/__tests__/ProductAccordion.spec.ts +0 -15
  4. package/app/components/catalog/product/ProductAccordion/types.ts +0 -5
  5. package/app/components/catalog/product/ProductProperties/ProductProperties.vue +0 -50
  6. package/app/components/catalog/product/ProductProperties/__tests__/ProductProperties.spec.ts +0 -15
  7. package/app/components/catalog/product/ProductProperties/types.ts +0 -5
  8. package/app/components/catalog/product/ProductSlider/ProductSlider.vue +0 -28
  9. package/app/components/catalog/product/ProductSlider/__tests__/ProductSlider.spec.ts +0 -14
  10. package/app/components/catalog/product/ProductSlider/types.ts +0 -7
  11. package/app/components/catalog/product/RecommendedProducts/RecommendedProducts.vue +0 -12
  12. package/app/components/catalog/product/RecommendedProducts/types.ts +0 -5
  13. package/app/components/catalog/product/RenderContentProductSlider/RenderContentProductSlider.vue +0 -11
  14. package/app/components/catalog/product/add-attribute.vue +0 -54
  15. package/app/components/catalog/product/add-product-type.vue +0 -54
  16. package/app/components/catalog/product/add-product.vue +0 -53
  17. package/app/components/catalog/product/add-showcase.vue +0 -52
  18. package/app/components/catalog/product/add-station.vue +0 -54
  19. package/app/components/catalog/product/bestsellers.vue +0 -57
  20. package/app/components/catalog/product/bidding.vue +0 -93
  21. package/app/components/catalog/product/colorOptions.vue +0 -58
  22. package/app/components/catalog/product/deals.vue +0 -46
  23. package/app/components/catalog/product/exclusives.vue +0 -56
  24. package/app/components/catalog/product/featuredproducts.vue +0 -57
  25. package/app/components/catalog/product/giftCard.vue +0 -63
  26. package/app/components/catalog/product/latestproducts.vue +0 -46
  27. package/app/components/catalog/product/productCard.vue +0 -105
  28. package/app/components/catalog/product/productCompare.vue +0 -60
  29. package/app/components/catalog/product/productCompareTable.vue +0 -441
  30. package/app/components/catalog/product/productDetails.vue +0 -126
  31. package/app/components/catalog/product/productFaqs.vue +0 -17
  32. package/app/components/catalog/product/productGallery.vue +0 -16
  33. package/app/components/catalog/product/productQty.vue +0 -54
  34. package/app/components/catalog/product/productReviews.vue +0 -56
  35. package/app/components/catalog/product/productSpecs.vue +0 -116
  36. package/app/components/catalog/product/radiostation.vue +0 -36
  37. package/app/components/catalog/product/recentlyviewed.vue +0 -43
  38. package/app/components/catalog/product/relatedbrands.vue +0 -54
  39. package/app/components/catalog/product/relatedproducts.vue +0 -43
  40. package/app/components/catalog/product/relatedstations.vue +0 -40
  41. package/app/components/catalog/product/shippingOptions.vue +0 -41
  42. package/app/components/catalog/product/sizeOptions.vue +0 -42
  43. package/app/components/catalog/product/update-attribute-set.vue +0 -209
  44. package/app/components/catalog/product/update-attribute.vue +0 -118
  45. package/app/components/catalog/product/update-product.vue +0 -372
  46. package/app/components/catalog/product/update-showcase.vue +0 -153
  47. package/app/components/catalog/shops/relatedstores.vue +0 -37
  48. package/app/components/catalog/shops/restaurant.vue +0 -66
  49. package/app/components/catalog/shops/stores.vue +0 -44
  50. package/app/components/catalog/vendor/README.md +0 -3
  51. package/app/components/catalog/vendor/blocks/biggestcustomers.vue +0 -33
  52. package/app/components/catalog/vendor/blocks/lowestselling.vue +0 -33
  53. package/app/components/catalog/vendor/blocks/topcategories.vue +0 -33
  54. package/app/components/catalog/vendor/blocks/topproducts.vue +0 -27
  55. package/app/components/catalog/vendor/pages/attributes.vue +0 -43
  56. package/app/components/catalog/vendor/pages/commissions.vue +0 -43
  57. package/app/components/catalog/vendor/pages/crm.vue +0 -67
  58. package/app/components/catalog/vendor/pages/dashboard.vue +0 -46
  59. package/app/components/catalog/vendor/pages/emails.vue +0 -43
  60. package/app/components/catalog/vendor/pages/enquiries.vue +0 -43
  61. package/app/components/catalog/vendor/pages/invoices.vue +0 -43
  62. package/app/components/catalog/vendor/pages/orders.vue +0 -68
  63. package/app/components/catalog/vendor/pages/products.vue +0 -55
  64. package/app/components/catalog/vendor/pages/reviews.vue +0 -48
  65. package/app/components/catalog/vendor/pages/shipments.vue +0 -43
  66. package/app/components/catalog/vendor/pages/stores.vue +0 -43
  67. package/app/components/categories/chart/[id].vue +0 -200
  68. package/app/components/categories/chart/add-chart.vue +0 -142
  69. package/app/components/categories/chart/chart.vue +0 -82
  70. package/app/components/categories/chart/monthlyChart.vue +0 -46
  71. package/app/components/categories/chart/weeklyChart.vue +0 -46
  72. package/app/components/categories/chart/yearlyChart.vue +0 -46
  73. package/app/components/categories/charts.vue +0 -118
  74. package/app/components/categories/deals.vue +0 -101
  75. package/app/components/categories/eats.vue +0 -49
  76. package/app/components/categories/restaurants.vue +0 -26
  77. package/app/components/categories/station/[id].vue +0 -72
  78. package/app/components/categories/stations.vue +0 -124
  79. package/app/components/categories/time/time.vue +0 -63
  80. package/app/components/categories/travel.vue +0 -75
  81. package/app/components/categories/weather/weather.vue +0 -44
  82. package/app/components/content/blocks/breadcrumbs.vue +0 -0
  83. package/app/components/content/blocks/currencySwitcher.vue +0 -0
  84. package/app/components/content/blocks/languageSwitcher.vue +0 -0
  85. package/app/components/content/blocks/videoproduct.vue +0 -9
  86. package/app/components/content/pages/checkout.vue +0 -118
  87. package/app/components/content/pages/meeoviGlobal.vue +0 -68
  88. package/app/components/content/pages/pickup-locations.vue +0 -238
  89. package/app/components/content/pages/showcases.vue +0 -90
  90. package/app/components/content/pages/success.vue +0 -60
  91. package/app/components/marketing/add-brand.vue +0 -54
  92. package/app/components/marketing/add-incentive.vue +0 -54
  93. package/app/components/marketing/promotions/giftcards.vue +0 -102
  94. package/app/components/marketing/promotions/subscriptions.vue +0 -121
  95. package/app/components/marketing/update-incentive.vue +0 -326
  96. package/app/components/menus/lowernav.vue +0 -78
  97. package/app/components/partials/LocaleSelector.vue +0 -24
  98. package/app/components/partials/ShoppingCart.vue +0 -128
  99. package/app/components/partials/StripePayment.vue +0 -149
  100. package/app/components/partials/addToCartBtn.vue +0 -40
  101. package/app/components/partials/cartItem.vue +0 -124
  102. package/app/components/partials/checkoutButton.vue +0 -44
  103. package/app/components/partials/compareBtn.vue +0 -68
  104. package/app/components/partials/ratings.vue +0 -13
  105. package/app/components/partials/store/CurrencySelector.vue +0 -133
  106. package/app/components/partials/store/StoreSwitcher.vue +0 -13
  107. package/app/components/placeholders/Comments.vue +0 -15
  108. package/app/components/placeholders/CreateListBtn.vue +0 -7
  109. package/app/components/placeholders/Event.vue +0 -9
  110. package/app/components/placeholders/ListShowcases.vue +0 -9
  111. package/app/components/placeholders/Short.vue +0 -9
  112. package/app/components/placeholders/Space.vue +0 -9
  113. package/app/components/placeholders/Tag.vue +0 -7
  114. package/app/components/related/brandCard.vue +0 -41
  115. package/app/components/related/incentiveCard.vue +0 -44
  116. package/app/components/related/invoiceCard.vue +0 -43
  117. package/app/components/related/orderCard.vue +0 -43
  118. package/app/components/related/relatedproducts.vue +0 -17
  119. package/app/components/sales/CartPageContent/CartPageContent.vue +0 -37
  120. package/app/components/sales/CheckoutAddress/CheckoutAddress.vue +0 -50
  121. package/app/components/sales/CheckoutAddress/__tests__/CheckoutAddress.spec.ts +0 -16
  122. package/app/components/sales/CheckoutAddress/types.ts +0 -16
  123. package/app/components/sales/CheckoutPayment/CheckoutPayment.vue +0 -68
  124. package/app/components/sales/CheckoutPayment/__tests__/CheckoutPayment.spec.ts +0 -14
  125. package/app/components/sales/CheckoutPayment/types.ts +0 -12
  126. package/app/components/sales/OrderSummary/OrderSummary.vue +0 -57
  127. package/app/components/sales/OrderSummary/__tests__/ContactInformation.spec.ts +0 -52
  128. package/app/components/sales/OrderSummary/types.ts +0 -5
  129. package/app/components/sales/incentives.vue +0 -223
  130. package/app/components/sales/invoices.vue +0 -107
  131. package/app/components/sales/orders.vue +0 -378
  132. package/app/components/sales/shipments.vue +0 -65
  133. package/app/components/sales/transactions.vue +0 -109
  134. package/app/components/shop/add-shop.vue +0 -54
  135. package/app/components/shop/cart/cartItem.vue +0 -182
  136. package/app/components/shop/cart/checkout.vue +0 -415
  137. package/app/components/shop/checkout/StripeCardElement.vue +0 -206
  138. package/app/components/shop/checkout/StripeCheckout.vue +0 -49
  139. package/app/components/shop/checkout/addressBilling.vue +0 -263
  140. package/app/components/shop/checkout/addressShipping.vue +0 -175
  141. package/app/components/shop/checkout/cart/ProductItem.vue +0 -56
  142. package/app/components/shop/checkout/cart/PromotionItem.vue +0 -53
  143. package/app/composables/_types.ts +0 -18
  144. package/app/composables/adapters/abstract/cartAdapter.ts +0 -0
  145. package/app/composables/adapters/abstract/categoryAdapter.ts +0 -0
  146. package/app/composables/adapters/abstract/customerAdapter.ts +0 -0
  147. package/app/composables/adapters/abstract/inventoryAdapter.ts +0 -0
  148. package/app/composables/adapters/abstract/orderAdapter.ts +0 -0
  149. package/app/composables/adapters/abstract/productAdapter.ts +0 -7
  150. package/app/composables/cart/registry.ts +0 -20
  151. package/app/composables/cart/types.ts +0 -18
  152. package/app/composables/cart/useCart.ts +0 -15
  153. package/app/composables/config.ts +0 -19
  154. package/app/composables/defs/apiDefinitions.ts +0 -55
  155. package/app/composables/defs/extension.feature +0 -40
  156. package/app/composables/defs/extension.mocks.ts +0 -39
  157. package/app/composables/defs/extension.test.ts +0 -280
  158. package/app/composables/defs/extension.ts +0 -236
  159. package/app/composables/defs/index.ts +0 -3
  160. package/app/composables/defs/types.ts +0 -136
  161. package/app/composables/domain/cart.ts +0 -0
  162. package/app/composables/domain/category.ts +0 -0
  163. package/app/composables/domain/order.ts +0 -0
  164. package/app/composables/domain/price.ts +0 -0
  165. package/app/composables/domain/product.ts +0 -8
  166. package/app/composables/domain/reward.ts +0 -0
  167. package/app/composables/domain/transactions.ts +0 -0
  168. package/app/composables/helpers/contextualizedNormalizers.feature +0 -14
  169. package/app/composables/helpers/contextualizedNormalizers.test.ts +0 -85
  170. package/app/composables/helpers/contextualizedNormalizers.ts +0 -20
  171. package/app/composables/helpers/index.ts +0 -1
  172. package/app/composables/index.ts +0 -6
  173. package/app/composables/methods/auth.ts +0 -83
  174. package/app/composables/methods/cart.ts +0 -119
  175. package/app/composables/methods/category.ts +0 -27
  176. package/app/composables/methods/checkout.ts +0 -54
  177. package/app/composables/methods/customer.ts +0 -52
  178. package/app/composables/methods/helpers.ts +0 -5
  179. package/app/composables/methods/index.ts +0 -75
  180. package/app/composables/methods/order.ts +0 -39
  181. package/app/composables/methods/product.ts +0 -95
  182. package/app/composables/methods/settings.ts +0 -16
  183. package/app/composables/models/cart.ts +0 -95
  184. package/app/composables/models/category.ts +0 -13
  185. package/app/composables/models/checkout.ts +0 -17
  186. package/app/composables/models/customer.ts +0 -16
  187. package/app/composables/models/facets.ts +0 -25
  188. package/app/composables/models/index.ts +0 -94
  189. package/app/composables/models/order.ts +0 -43
  190. package/app/composables/models/product.ts +0 -73
  191. package/app/composables/models/shared.ts +0 -75
  192. package/app/composables/products/registry.ts +0 -20
  193. package/app/composables/products/types.ts +0 -13
  194. package/app/composables/products/useEvents.ts +0 -0
  195. package/app/composables/products/useGiftCards.ts +0 -0
  196. package/app/composables/products/useProducts.ts +0 -12
  197. package/app/composables/products/useSubscriptions.ts +0 -0
  198. package/app/composables/registry.ts +0 -21
  199. package/app/composables/stores/cart.ts +0 -218
  200. package/app/composables/stores/cartStore.ts +0 -300
  201. package/app/composables/stores/checkout.ts +0 -19
  202. package/app/composables/stores/compare.ts +0 -65
  203. package/app/composables/stores/currency.js +0 -29
  204. package/app/composables/stores/digital-products.js +0 -11
  205. package/app/composables/stores/index.js +0 -0
  206. package/app/composables/stores/orders.ts +0 -161
  207. package/app/composables/stores/product.ts +0 -26
  208. package/app/composables/stores/productList.ts +0 -0
  209. package/app/composables/stores/productListInfo.ts +0 -0
  210. package/app/composables/stores/products.ts +0 -112
  211. package/app/composables/stores/recentlyViewedProducts.ts +0 -0
  212. package/app/composables/stores/review.ts +0 -25
  213. package/app/composables/stores/storeInPickUp.ts +0 -22
  214. package/app/composables/stores/user.ts +0 -20
  215. package/app/composables/stores/wishlist.ts +0 -19
  216. package/app/composables/types/Order.type.ts +0 -181
  217. package/app/composables/types/index.ts +0 -285
  218. package/app/composables/types/product.ts +0 -14
  219. package/app/composables/useBreakpoints/index.ts +0 -1
  220. package/app/composables/useBreakpoints/useBreakpoints.ts +0 -28
  221. package/app/composables/useCart/__tests__/useCart.spec.ts +0 -11
  222. package/app/composables/useCart/index.ts +0 -1
  223. package/app/composables/useCart/types.ts +0 -17
  224. package/app/composables/useCart/useCart.ts +0 -46
  225. package/app/composables/useCartShippingMethods/__tests__/useCartShippingMethods.spec.ts +0 -11
  226. package/app/composables/useCartShippingMethods/index.ts +0 -1
  227. package/app/composables/useCartShippingMethods/types.ts +0 -17
  228. package/app/composables/useCartShippingMethods/useCartShippingMethods.ts +0 -47
  229. package/app/composables/useCatalog.ts +0 -64
  230. package/app/composables/useContent/index.ts +0 -1
  231. package/app/composables/useContent/types.ts +0 -44
  232. package/app/composables/useContent/useContent.ts +0 -45
  233. package/app/composables/useContent.ts +0 -57
  234. package/app/composables/useCustomer/__tests__/useCustomer.spec.ts +0 -25
  235. package/app/composables/useCustomer/index.ts +0 -2
  236. package/app/composables/useCustomer/types.ts +0 -17
  237. package/app/composables/useCustomer/useCustomer.ts +0 -40
  238. package/app/composables/useCustomerAddress/__tests__/useCustomerAddress.spec.ts +0 -11
  239. package/app/composables/useCustomerAddress/index.ts +0 -2
  240. package/app/composables/useCustomerAddress/types.ts +0 -17
  241. package/app/composables/useCustomerAddress/useCustomerAddress.ts +0 -55
  242. package/app/composables/useCustomerOrder/__tests__/useCustomerOrder.spec.ts +0 -11
  243. package/app/composables/useCustomerOrder/adress.ts +0 -10
  244. package/app/composables/useCustomerOrder/index.ts +0 -2
  245. package/app/composables/useCustomerOrder/product.ts +0 -37
  246. package/app/composables/useCustomerOrder/types.ts +0 -40
  247. package/app/composables/useCustomerOrder/useCustomerOrder.ts +0 -63
  248. package/app/composables/useCustomerOrders/__tests__/useCustomerOrders.spec.ts +0 -11
  249. package/app/composables/useCustomerOrders/index.ts +0 -2
  250. package/app/composables/useCustomerOrders/types.ts +0 -20
  251. package/app/composables/useCustomerOrders/useCustomerOrders.ts +0 -56
  252. package/app/composables/useCustomerReturns/__tests__/useCustomerReturns.spec.ts +0 -11
  253. package/app/composables/useCustomerReturns/index.ts +0 -2
  254. package/app/composables/useCustomerReturns/types.ts +0 -17
  255. package/app/composables/useCustomerReturns/useCustomerReturns.ts +0 -41
  256. package/app/composables/useHandleError/index.ts +0 -1
  257. package/app/composables/useHandleError/types.ts +0 -11
  258. package/app/composables/useHandleError/useHandleError.ts +0 -27
  259. package/app/composables/usePageTitle.ts +0 -16
  260. package/app/composables/useProduct/index.ts +0 -2
  261. package/app/composables/useProduct/types.ts +0 -17
  262. package/app/composables/useProduct/useProduct.ts +0 -42
  263. package/app/composables/useProductAttribute/__tests__/useProduct.mock.ts +0 -31
  264. package/app/composables/useProductAttribute/__tests__/useProductAttribute.spec.ts +0 -14
  265. package/app/composables/useProductAttribute/index.ts +0 -1
  266. package/app/composables/useProductAttribute/useProductAttribute.ts +0 -37
  267. package/app/composables/useProductRecommended/__tests__/useProductRecommended.spec.ts +0 -12
  268. package/app/composables/useProductRecommended/index.ts +0 -1
  269. package/app/composables/useProductRecommended/types.ts +0 -17
  270. package/app/composables/useProductRecommended/useProductRecommended.ts +0 -43
  271. package/app/composables/useProductReviews/__tests__/productReviews.mock.ts +0 -20
  272. package/app/composables/useProductReviews/__tests__/useProductReviews.spec.ts +0 -22
  273. package/app/composables/useProductReviews/index.ts +0 -2
  274. package/app/composables/useProductReviews/types.ts +0 -17
  275. package/app/composables/useProductReviews/useProductReviews.ts +0 -46
  276. package/app/composables/useProducts/__tests__/useProducts.spec.ts +0 -11
  277. package/app/composables/useProducts/types.ts +0 -22
  278. package/app/composables/useProducts/useProducts.ts +0 -41
  279. package/app/composables/utils/countryList.ts +0 -14
  280. package/app/composables/utils/currency.js +0 -56
  281. package/app/composables/utils/glossary.ts +0 -0
  282. package/app/composables/utils/importExport.ts +0 -0
  283. package/app/composables/utils/index.js +0 -0
  284. package/app/composables/utils/print.ts +0 -0
  285. package/app/composables/utils/shopThemes.ts +0 -0
  286. package/app/composables/utils/statistics.ts +0 -0
  287. package/app/composables/utils/stock.ts +0 -0
  288. package/app/composables/utils/stripe.ts +0 -16
  289. package/app/composables/utils/taxation.ts +0 -0
  290. package/app/composables/utils/tellFriends.ts +0 -0
  291. package/app/composables/validationRules/index.ts +0 -1
  292. package/app/composables/validationRules/password.feature +0 -67
  293. package/app/composables/validationRules/password.test.ts +0 -89
  294. package/app/composables/validationRules/password.ts +0 -25
  295. package/app/composables/vendors/index.ts +0 -0
  296. package/app/composables/vendors/registry.ts +0 -0
  297. package/app/composables/vendors/useAffiliates.ts +0 -0
  298. package/app/composables/vendors/useCommission.ts +0 -0
  299. package/app/modules/vue-head/composables/useHead.ts +0 -3
  300. package/app/pages/brand/[...slug].vue +0 -92
  301. package/app/pages/brands.vue +0 -90
  302. package/app/pages/cart.vue +0 -142
  303. package/app/pages/compare.vue +0 -166
  304. package/app/pages/departments/[...slug].vue +0 -385
  305. package/app/pages/departments/category/[...slug].vue +0 -135
  306. package/app/pages/incentive/[...id].vue +0 -66
  307. package/app/pages/invoice/[id].vue +0 -309
  308. package/app/pages/order/[id].vue +0 -327
  309. package/app/pages/product/[...id].vue +0 -309
  310. package/app/pages/product/showcases/index.vue +0 -86
  311. package/app/pages/shipment/[...id].vue +0 -176
  312. package/app/pages/shop/[...slug].vue +0 -158
  313. package/app/pages/shops.vue +0 -76
  314. package/app/pages/subscription/[...id].vue +0 -147
  315. package/app/pages/transaction/[...id].vue +0 -74
  316. package/app/types/shims-imports.d.ts +0 -13
  317. package/app/utils/client.ts +0 -26
  318. package/app/utils/index.ts +0 -53
  319. package/app/utils/normalizer.ts +0 -23
  320. package/app/utils/normalizers/magento.ts +0 -29
  321. package/app/utils/normalizers/shopify.ts +0 -29
  322. package/global.d.ts +0 -149
  323. package/tsconfig.json +0 -31
@@ -1,142 +0,0 @@
1
- <!-- pages/cart.vue -->
2
- <template>
3
- <div class="cartPage">
4
- <h2>Shopping Cart</h2>
5
-
6
- <div v-if="cart.items.length === 0" class="empty-cart">
7
- Your cart is empty
8
- </div>
9
-
10
- <div v-else>
11
- <div v-for="item in cart.items" :key="item.id" class="cart-item">
12
- <div class="item-details">
13
- <h3>{{ item.name }}</h3>
14
- <p>Price: ${{ item.price }}</p>
15
- <p>Quantity: {{ item.quantity }}</p>
16
- </div>
17
- <v-btn @click="cart.removeItem(item.id)" color="error">
18
- Remove
19
- </v-btn>
20
- </div>
21
-
22
- <div class="cart-total">
23
- <h3>Total: ${{ cart.total }}</h3>
24
- </div>
25
-
26
- <!-- Shipping selection -->
27
- <div class="cart-shipping my-4">
28
- <ShippingOptions v-model="selectedShipping" />
29
- </div>
30
-
31
- <div class="cart-actions mt-4">
32
- <v-btn
33
- color="primary"
34
- :disabled="cart.items.length === 0 || loading"
35
- @click="startCheckout"
36
- >
37
- <span v-if="!loading">Checkout</span>
38
- <span v-else>Preparing...</span>
39
- </v-btn>
40
-
41
- <PayPalButtons
42
- @payment-success="handlePaymentSuccess"
43
- @payment-error="handlePaymentError"
44
- />
45
- </div>
46
- </div>
47
- </div>
48
- </template>
49
-
50
- <script setup>
51
- import { useCartStore } from '~/stores/cart'
52
-
53
- import ShippingOptions from '../components/catalog/product/shippingOptions.vue'
54
- import { ref, computed } from 'vue'
55
-
56
- const cart = useCartStore()
57
- const loading = ref(false)
58
-
59
- const selectedShipping = computed({
60
- get: () => cart.cart?.shipping_method_id ?? cart.cart?.shipping_method ?? null,
61
- set: async (val) => {
62
- try {
63
- // Let the component/composable persist to the cart store; call store as a fallback
64
- if (cart && cart.setShippingOption) {
65
- await cart.setShippingOption({ id: val })
66
- }
67
- } catch (e) {
68
- // eslint-disable-next-line no-console
69
- console.warn('Failed to set shipping from cart page', e)
70
- }
71
- }
72
- })
73
-
74
- const handlePaymentSuccess = (order) => {
75
- console.log('Payment successful:', order)
76
- }
77
-
78
- const handlePaymentError = (error) => {
79
- console.error('Payment failed:', error)
80
- }
81
-
82
- const startCheckout = async () => {
83
- if (!cart || !cart.createCheckoutSession) return
84
- try {
85
- loading.value = true
86
- const data = await cart.createCheckoutSession(cart.cart?.id)
87
- const url = data?.url || (data?.id ? `https://checkout.stripe.com/pay/${data.id}` : null)
88
- if (url) {
89
- window.location.href = url
90
- } else if (data && data.id) {
91
- // fallback: use injected Stripe instance from plugin if available
92
- const nuxtApp = useNuxtApp()
93
- const injectedStripe = nuxtApp?.$stripe || null
94
- if (injectedStripe && typeof injectedStripe.redirectToCheckout === 'function') {
95
- await injectedStripe.redirectToCheckout({ sessionId: data.id })
96
- } else if (window && window.Stripe) {
97
- // last-resort: use global Stripe if present
98
- const publishable = (useRuntimeConfig() || {}).public?.stripe?.publishableKey || null
99
- if (publishable) {
100
- const stripe = window.Stripe(publishable)
101
- await stripe.redirectToCheckout({ sessionId: data.id })
102
- } else {
103
- console.warn('No Stripe publishable key available for client-side redirect')
104
- }
105
- } else {
106
- console.warn('No client Stripe instance available for redirect')
107
- }
108
- } else {
109
- console.warn('No checkout url returned from server')
110
- }
111
- } catch (e) {
112
- console.error('Failed to start checkout', e)
113
- } finally {
114
- loading.value = false
115
- }
116
- }
117
- </script>
118
-
119
- <style scoped>
120
- .cartPage {
121
- padding: 20px;
122
- }
123
-
124
- .cart-item {
125
- display: flex;
126
- justify-content: space-between;
127
- align-items: center;
128
- padding: 15px;
129
- border-bottom: 1px solid #eee;
130
- }
131
-
132
- .cart-total {
133
- margin-top: 20px;
134
- text-align: right;
135
- }
136
-
137
- .empty-cart {
138
- text-align: center;
139
- padding: 50px;
140
- }
141
- </style>
142
-
@@ -1,166 +0,0 @@
1
- <template>
2
- <div class="compare-page">
3
- <div class="container mx-auto px-4 py-8">
4
- <h1 class="text-3xl font-bold mb-8">Compare Products</h1>
5
-
6
- <div v-if="loading" class="text-center">
7
- <p>Loading products...</p>
8
- </div>
9
-
10
- <div v-else-if="error" class="text-center text-red-500">
11
- <p>Error loading products: {{ error.message }}</p>
12
- </div>
13
-
14
- <div v-else-if="!products.length" class="text-center">
15
- <p>No products selected for comparison. Add products to your compare list to see them here.</p>
16
- <NuxtLink to="/" class="mt-4 inline-block text-blue-500 hover:text-blue-700">
17
- Continue Shopping
18
- </NuxtLink>
19
- </div>
20
-
21
- <div v-else>
22
- <productCompareTable
23
- :products="products"
24
- @remove-product="handleRemoveProduct"
25
- />
26
-
27
- <div class="mt-8 flex justify-between">
28
- <button
29
- @click="clearCompareList"
30
- class="px-4 py-2 bg-red-500 text-white rounded hover:bg-red-600"
31
- >
32
- Clear Compare List
33
- </button>
34
- <NuxtLink
35
- to="/"
36
- class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
37
- >
38
- Continue Shopping
39
- </NuxtLink>
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </template>
45
-
46
- <script setup>
47
- import { ref, onMounted, computed } from 'vue';
48
- import { useQuery, useMutation } from '@vue/apollo-composable';
49
- import gql from 'graphql-tag';
50
- import productCompareTable from '~/components/catalog/product/productCompareTable.vue';
51
-
52
- // GraphQL query to get compared products
53
- const COMPARED_PRODUCTS_QUERY = gql`
54
- query GetComparedProducts {
55
- customer {
56
- compare_list {
57
- items {
58
- product {
59
- uid
60
- sku
61
- name
62
- image {
63
- url
64
- }
65
- price_range {
66
- minimum_price {
67
- regular_price {
68
- currency
69
- value
70
- }
71
- }
72
- }
73
- categories {
74
- name
75
- }
76
- rating_summary
77
- review_count
78
- reviews_summary
79
- price_history
80
- custom_attributes
81
- features
82
- }
83
- }
84
- }
85
- }
86
- }
87
- `;
88
-
89
- // GraphQL mutation to clear compare list
90
- const CLEAR_COMPARE_LIST_MUTATION = gql`
91
- mutation ClearCompareList {
92
- clearCompareList {
93
- compare_list {
94
- items {
95
- product {
96
- uid
97
- }
98
- }
99
- }
100
- }
101
- }
102
- `;
103
-
104
- // GraphQL mutation to remove a single product from compare list
105
- const REMOVE_PRODUCT_MUTATION = gql`
106
- mutation RemoveFromCompareList($productId: ID!) {
107
- removeProductsFromCompareList(input: { product_ids: [$productId] }) {
108
- compare_list {
109
- items {
110
- product {
111
- uid
112
- }
113
- }
114
- }
115
- }
116
- }
117
- `;
118
-
119
- const { result, loading, error, refetch } = useQuery(COMPARED_PRODUCTS_QUERY);
120
- const { mutate: clearCompareListMutation } = useMutation(CLEAR_COMPARE_LIST_MUTATION);
121
- const { mutate: removeProductMutation } = useMutation(REMOVE_PRODUCT_MUTATION);
122
-
123
- const products = computed(() => {
124
- return result.value?.customer?.compare_list?.items?.map(item => item.product) || [];
125
- });
126
-
127
- const clearCompareList = async () => {
128
- try {
129
- await clearCompareListMutation();
130
- await refetch();
131
- } catch (error) {
132
- console.error('Failed to clear compare list:', error);
133
- }
134
- };
135
-
136
- const handleRemoveProduct = async (productId) => {
137
- try {
138
- await removeProductMutation({
139
- variables: {
140
- productId
141
- }
142
- });
143
- await refetch();
144
- } catch (error) {
145
- console.error('Failed to remove product from compare list:', error);
146
- }
147
- };
148
-
149
- onMounted(async () => {
150
- await refetch();
151
- });
152
- </script>
153
-
154
- <style scoped>
155
- .compare-page {
156
- min-height: 100vh;
157
- background-color: #f9fafb;
158
- }
159
-
160
- @media (max-width: 768px) {
161
- .container {
162
- padding-left: 1rem;
163
- padding-right: 1rem;
164
- }
165
- }
166
- </style>