@kasuvia/sdk 0.0.8 → 0.0.9

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 (176) hide show
  1. package/README.md +42 -15
  2. package/dist/AddressAutocomplete-CjcqPElD.d.mts +46 -0
  3. package/dist/AddressAutocomplete-CvJHuRkf.d.ts +46 -0
  4. package/dist/components/index.d.mts +497 -0
  5. package/dist/components/index.d.ts +497 -0
  6. package/dist/components/index.js +4217 -0
  7. package/dist/components/index.js.map +1 -0
  8. package/dist/components/index.mjs +4194 -0
  9. package/dist/components/index.mjs.map +1 -0
  10. package/dist/config/server.d.mts +26 -0
  11. package/dist/config/server.d.ts +26 -0
  12. package/dist/config/server.js +38 -0
  13. package/dist/config/server.js.map +1 -0
  14. package/dist/config/server.mjs +13 -0
  15. package/dist/config/server.mjs.map +1 -0
  16. package/dist/hooks/index.d.mts +393 -160
  17. package/dist/hooks/index.d.ts +393 -160
  18. package/dist/hooks/index.js +2792 -2137
  19. package/dist/hooks/index.js.map +1 -1
  20. package/dist/hooks/index.mjs +2734 -2121
  21. package/dist/hooks/index.mjs.map +1 -1
  22. package/dist/index-CNW_LINy.d.mts +578 -0
  23. package/dist/index-CNW_LINy.d.ts +578 -0
  24. package/dist/{index-C1chUA3P.d.mts → index-F7N6UItS.d.mts} +1 -1
  25. package/dist/{index-C1chUA3P.d.ts → index-F7N6UItS.d.ts} +1 -1
  26. package/dist/index-NkI10J_E.d.mts +40 -0
  27. package/dist/index-NkI10J_E.d.ts +40 -0
  28. package/dist/index.d.mts +20437 -103
  29. package/dist/index.d.ts +20437 -103
  30. package/dist/index.js +2111 -1802
  31. package/dist/index.js.map +1 -1
  32. package/dist/index.mjs +2006 -1786
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/media.service-Cx7dQjzX.d.mts +1393 -0
  35. package/dist/media.service-mrBFJ2UQ.d.ts +1393 -0
  36. package/dist/services/index.d.mts +908 -2
  37. package/dist/services/index.d.ts +908 -2
  38. package/dist/services/index.js +1492 -1686
  39. package/dist/services/index.js.map +1 -1
  40. package/dist/services/index.mjs +1431 -1670
  41. package/dist/services/index.mjs.map +1 -1
  42. package/package.json +46 -6
  43. package/src/components/bespoke/BespokeAvailabilityBadge.tsx +32 -0
  44. package/src/components/bespoke/BespokeProgressTracker.tsx +58 -0
  45. package/src/components/bespoke/index.ts +3 -0
  46. package/src/components/booking/SlotPicker.tsx +97 -0
  47. package/src/components/booking/index.ts +1 -0
  48. package/src/components/cart/CartItem.tsx +81 -0
  49. package/src/components/cart/CartSidebar.tsx +115 -0
  50. package/src/components/cart/CartTypeMismatchBanner.tsx +55 -0
  51. package/src/components/cart/index.ts +3 -0
  52. package/src/components/index.ts +8 -0
  53. package/src/components/orders/DeliverableReviewer.tsx +139 -0
  54. package/src/components/orders/index.ts +1 -0
  55. package/src/components/product/ProductCard.tsx +350 -0
  56. package/src/components/product/ProductGrid.tsx +84 -0
  57. package/src/components/product/index.ts +2 -0
  58. package/src/components/shared/AddressAutocomplete.tsx +212 -0
  59. package/src/components/shared/AnalyticsScripts.tsx +56 -0
  60. package/src/components/shared/CookieConsentBanner.tsx +98 -0
  61. package/src/components/shared/ImageEditorModal.tsx +1066 -0
  62. package/src/components/shared/ImageViewerModal.tsx +598 -0
  63. package/src/components/shared/LucideReactIcon.tsx +52 -0
  64. package/src/components/shared/MapPinDrop.tsx +101 -0
  65. package/src/components/shared/MultiSelectPicker.tsx +193 -0
  66. package/src/components/shared/OfflineBanner.tsx +46 -0
  67. package/src/components/shared/SearchableInput.tsx +153 -0
  68. package/src/components/shared/SearchablePopover.tsx +166 -0
  69. package/src/components/shared/SmartImage.tsx +311 -0
  70. package/src/components/shared/TruncatedValue.tsx +27 -0
  71. package/src/components/shared/UnsavedChangesGuard.tsx +138 -0
  72. package/src/components/shared/index.ts +15 -0
  73. package/src/components/skeletons/CardSkeleton.tsx +26 -0
  74. package/src/components/skeletons/CartItemSkeleton.tsx +26 -0
  75. package/src/components/skeletons/OrderItemSkeleton.tsx +26 -0
  76. package/src/components/skeletons/ProductCardSkeleton.tsx +26 -0
  77. package/src/components/skeletons/TableSkeleton.tsx +42 -0
  78. package/src/components/skeletons/index.ts +5 -0
  79. package/src/config/index.ts +22 -4
  80. package/src/config/server.ts +45 -0
  81. package/src/context/sdk-context.tsx +5 -2
  82. package/src/generated/auth-openapi.ts +2935 -0
  83. package/src/generated/cart-openapi.ts +652 -0
  84. package/src/generated/cms-openapi.ts +1668 -0
  85. package/src/generated/crm-openapi.ts +986 -0
  86. package/src/generated/graphql.ts +126 -0
  87. package/src/generated/index.ts +11 -0
  88. package/src/generated/media-openapi.ts +613 -0
  89. package/src/generated/notification-openapi.ts +862 -0
  90. package/src/generated/payment-openapi.ts +2713 -0
  91. package/src/generated/store-openapi.ts +9510 -0
  92. package/src/graphql/operations/collections.graphql +32 -0
  93. package/src/graphql/operations/products.graphql +197 -0
  94. package/src/graphql/operations/wishlist.graphql +25 -0
  95. package/src/hooks/index.ts +9 -2
  96. package/src/hooks/use-auth.ts +163 -69
  97. package/src/hooks/use-bespoke-availability.ts +39 -22
  98. package/src/hooks/use-business-config.ts +51 -0
  99. package/src/hooks/use-cart.ts +310 -238
  100. package/src/hooks/use-cms.ts +107 -127
  101. package/src/hooks/use-collections.ts +35 -55
  102. package/src/hooks/use-consultations.ts +9 -136
  103. package/src/hooks/use-countries.ts +19 -28
  104. package/src/hooks/use-currencies.ts +8 -20
  105. package/src/hooks/use-customer-address.ts +64 -0
  106. package/src/hooks/use-feedback.ts +34 -0
  107. package/src/hooks/use-languages.ts +26 -39
  108. package/src/hooks/use-media-upload.ts +23 -0
  109. package/src/hooks/use-notification-stream.ts +88 -0
  110. package/src/hooks/use-notifications.ts +163 -0
  111. package/src/hooks/use-order-stream.ts +29 -29
  112. package/src/hooks/use-orders.ts +91 -73
  113. package/src/hooks/use-payment.ts +116 -84
  114. package/src/hooks/use-products.ts +65 -269
  115. package/src/hooks/use-push-notifications.ts +122 -0
  116. package/src/hooks/use-reviews.ts +175 -0
  117. package/src/hooks/use-service-booking.ts +109 -132
  118. package/src/hooks/use-states.ts +16 -30
  119. package/src/hooks/use-wishlist.ts +44 -69
  120. package/src/index.ts +15 -11
  121. package/src/services/auth.service.ts +422 -132
  122. package/src/services/bespoke.service.ts +69 -10
  123. package/src/services/cart.service.ts +155 -186
  124. package/src/services/cms.service.ts +41 -50
  125. package/src/services/collection.service.ts +25 -63
  126. package/src/services/config.service.ts +10 -21
  127. package/src/services/consultation.service.ts +36 -93
  128. package/src/services/feedback.service.ts +76 -0
  129. package/src/services/index.ts +7 -1
  130. package/src/services/legal.service.ts +62 -0
  131. package/src/services/logistics.service.ts +235 -53
  132. package/src/services/media.service.ts +115 -0
  133. package/src/services/notifications.service.ts +204 -20
  134. package/src/services/order.service.ts +498 -127
  135. package/src/services/payment.service.ts +149 -100
  136. package/src/services/product.service.ts +157 -814
  137. package/src/services/review.service.ts +211 -0
  138. package/src/services/service-booking.service.ts +198 -99
  139. package/src/services/wishlist.service.ts +27 -74
  140. package/src/types/auth/index.ts +161 -18
  141. package/src/types/business/index.ts +9 -1
  142. package/src/types/cms/index.ts +91 -6
  143. package/src/types/cms/legal.ts +18 -0
  144. package/src/types/consultations/index.ts +60 -68
  145. package/src/types/index.ts +5 -3
  146. package/src/types/media/index.ts +35 -3
  147. package/src/types/payments/index.ts +80 -16
  148. package/src/types/reviews/index.ts +116 -0
  149. package/src/types/services/index.ts +113 -38
  150. package/src/types/store/checkout.ts +53 -0
  151. package/src/types/store/index.ts +273 -52
  152. package/src/types/store/invoice.ts +31 -0
  153. package/src/types/store/shipping.ts +84 -3
  154. package/src/types/ui/index.ts +1 -1
  155. package/src/utils/checkout.ts +19 -3
  156. package/src/utils/cookieConsent.ts +34 -0
  157. package/src/utils/format.ts +408 -0
  158. package/src/utils/geolocation.ts +134 -0
  159. package/src/utils/graphql-url.ts +47 -0
  160. package/src/utils/guest-session.ts +59 -0
  161. package/src/utils/http-client.ts +147 -0
  162. package/src/utils/index.ts +11 -4
  163. package/src/utils/status-colors.ts +79 -0
  164. package/src/utils/token-refresh.ts +115 -0
  165. package/src/utils/validators.ts +13 -0
  166. package/src/utils/youtube.ts +18 -0
  167. package/dist/index-C5YO9gTl.d.mts +0 -507
  168. package/dist/index-C5YO9gTl.d.ts +0 -507
  169. package/dist/index-CefG7_xq.d.mts +0 -793
  170. package/dist/index-DeHCf3zI.d.ts +0 -793
  171. package/src/graphql/collections.graphql.ts +0 -48
  172. package/src/graphql/index.ts +0 -7
  173. package/src/graphql/products.graphql.ts +0 -860
  174. package/src/graphql/wishlist.graphql.ts +0 -34
  175. package/src/hooks/use-consultation-stream.ts +0 -142
  176. package/src/types/bespoke/index.ts +0 -39
@@ -1,860 +0,0 @@
1
- /**
2
- * GraphQL queries for products
3
- */
4
- import { gql } from 'graphql-request'
5
-
6
- export const GET_STOREFRONT_PRODUCTS = gql`
7
- query GetStorefrontProducts(
8
- $page: Int = 1
9
- $pageSize: Int = 20
10
- $collectionSlug: String
11
- $search: String
12
- ) {
13
- storefront_products(
14
- page: $page
15
- pageSize: $pageSize
16
- collectionSlug: $collectionSlug
17
- search: $search
18
- ) {
19
- items {
20
- id
21
- business_id
22
- name
23
- slug
24
- description
25
- brand
26
- product_type
27
- requires_shipping
28
- is_consumable
29
- is_bespoke
30
- base_price
31
- currency
32
- sale_price
33
- sale_start
34
- sale_end
35
- images
36
- tags
37
- custom_fields {
38
- label
39
- unit
40
- required
41
- }
42
- is_published
43
- is_featured
44
- is_popular
45
- is_new
46
- is_temporary
47
- digital_file_key
48
- download_limit
49
- download_expires_at
50
- weight_kg
51
- length_cm
52
- width_cm
53
- height_cm
54
- variants {
55
- id
56
- product_id
57
- sku
58
- attributes
59
- price
60
- images
61
- weight_kg
62
- is_active
63
- inventory {
64
- id
65
- product_id
66
- variant_id
67
- quantity
68
- reserved
69
- available
70
- is_in_stock
71
- is_low_stock
72
- reorder_point
73
- reorder_quantity
74
- track_quantity
75
- allow_backorder
76
- updated_at
77
- }
78
- created_at
79
- updated_at
80
- }
81
- collections {
82
- id
83
- business_id
84
- name
85
- slug
86
- description
87
- collection_type
88
- rules
89
- image {
90
- id
91
- url
92
- alt
93
- }
94
- status
95
- sort_order
96
- created_at
97
- updated_at
98
- }
99
- created_at
100
- updated_at
101
- }
102
- total
103
- page
104
- page_size
105
- total_pages
106
- }
107
- }
108
- `
109
-
110
- export const GET_STOREFRONT_PRODUCT_BY_SLUG = gql`
111
- query GetStorefrontProductBySlug($slug: String!) {
112
- storefront_product_by_slug(slug: $slug) {
113
- id
114
- business_id
115
- name
116
- slug
117
- description
118
- brand
119
- product_type
120
- requires_shipping
121
- is_consumable
122
- is_bespoke
123
- base_price
124
- currency
125
- images {
126
- id
127
- url
128
- alt
129
- }
130
- tags
131
- custom_fields {
132
- label
133
- unit
134
- required
135
- }
136
- is_published
137
- is_featured
138
- is_popular
139
- is_new
140
- is_temporary
141
- digital_file_key
142
- download_limit
143
- download_expires_at
144
- weight_kg
145
- length_cm
146
- width_cm
147
- height_cm
148
- variants {
149
- id
150
- product_id
151
- sku
152
- attributes
153
- price
154
- images
155
- weight_kg
156
- is_active
157
- inventory {
158
- id
159
- product_id
160
- variant_id
161
- quantity
162
- reserved
163
- available
164
- is_in_stock
165
- is_low_stock
166
- reorder_point
167
- reorder_quantity
168
- track_quantity
169
- allow_backorder
170
- updated_at
171
- }
172
- created_at
173
- updated_at
174
- }
175
- collections {
176
- id
177
- business_id
178
- name
179
- slug
180
- description
181
- collection_type
182
- rules
183
- image
184
- status
185
- sort_order
186
- created_at
187
- updated_at
188
- }
189
- created_at
190
- updated_at
191
- }
192
- }
193
- `
194
-
195
- export const GET_STOREFRONT_LATEST = gql`
196
- query GetStorefrontLatest($page: Int = 1, $pageSize: Int = 4) {
197
- storefront_latest(page: $page, pageSize: $pageSize) {
198
- items {
199
- id
200
- business_id
201
- name
202
- slug
203
- description
204
- brand
205
- product_type
206
- requires_shipping
207
- is_consumable
208
- is_bespoke
209
- base_price
210
- currency
211
- sale_price
212
- sale_start
213
- sale_end
214
- images
215
- tags
216
- custom_fields {
217
- label
218
- unit
219
- required
220
- }
221
- is_published
222
- is_featured
223
- is_popular
224
- is_new
225
- is_temporary
226
- digital_file_key
227
- download_limit
228
- download_expires_at
229
- weight_kg
230
- length_cm
231
- width_cm
232
- height_cm
233
- variants {
234
- id
235
- product_id
236
- sku
237
- attributes
238
- price
239
- images
240
- weight_kg
241
- is_active
242
- inventory {
243
- id
244
- product_id
245
- variant_id
246
- quantity
247
- reserved
248
- available
249
- is_in_stock
250
- is_low_stock
251
- reorder_point
252
- reorder_quantity
253
- track_quantity
254
- allow_backorder
255
- updated_at
256
- }
257
- created_at
258
- updated_at
259
- }
260
- collections {
261
- id
262
- business_id
263
- name
264
- slug
265
- description
266
- collection_type
267
- rules
268
- image {
269
- id
270
- url
271
- alt
272
- }
273
- status
274
- sort_order
275
- created_at
276
- updated_at
277
- }
278
- created_at
279
- updated_at
280
- }
281
- total
282
- page
283
- page_size
284
- total_pages
285
- }
286
- }
287
- `
288
-
289
- export const GET_STOREFRONT_POPULAR = gql`
290
- query GetStorefrontPopular($page: Int = 1, $pageSize: Int = 4) {
291
- storefront_popular(page: $page, pageSize: $pageSize) {
292
- items {
293
- id
294
- business_id
295
- name
296
- slug
297
- description
298
- brand
299
- product_type
300
- requires_shipping
301
- is_consumable
302
- is_bespoke
303
- base_price
304
- currency
305
- sale_price
306
- sale_start
307
- sale_end
308
- images
309
- tags
310
- custom_fields {
311
- label
312
- unit
313
- required
314
- }
315
- is_published
316
- is_featured
317
- is_popular
318
- is_new
319
- is_temporary
320
- digital_file_key
321
- download_limit
322
- download_expires_at
323
- weight_kg
324
- length_cm
325
- width_cm
326
- height_cm
327
- variants {
328
- id
329
- product_id
330
- sku
331
- attributes
332
- price
333
- images
334
- weight_kg
335
- is_active
336
- inventory {
337
- id
338
- product_id
339
- variant_id
340
- quantity
341
- reserved
342
- available
343
- is_in_stock
344
- is_low_stock
345
- reorder_point
346
- reorder_quantity
347
- track_quantity
348
- allow_backorder
349
- updated_at
350
- }
351
- created_at
352
- updated_at
353
- }
354
- collections {
355
- id
356
- business_id
357
- name
358
- slug
359
- description
360
- collection_type
361
- rules
362
- image {
363
- id
364
- url
365
- alt
366
- }
367
- status
368
- sort_order
369
- created_at
370
- updated_at
371
- }
372
- created_at
373
- updated_at
374
- }
375
- total
376
- page
377
- page_size
378
- total_pages
379
- }
380
- }
381
- `
382
-
383
- export const GET_STOREFRONT_FEATURED = gql`
384
- query GetStorefrontFeatured($page: Int = 1, $pageSize: Int = 4) {
385
- storefront_featured(page: $page, pageSize: $pageSize) {
386
- items {
387
- id
388
- business_id
389
- name
390
- slug
391
- description
392
- brand
393
- product_type
394
- requires_shipping
395
- is_consumable
396
- is_bespoke
397
- base_price
398
- currency
399
- sale_price
400
- sale_start
401
- sale_end
402
- images
403
- tags
404
- custom_fields {
405
- label
406
- unit
407
- required
408
- }
409
- is_published
410
- is_featured
411
- is_popular
412
- is_new
413
- is_temporary
414
- digital_file_key
415
- download_limit
416
- download_expires_at
417
- weight_kg
418
- length_cm
419
- width_cm
420
- height_cm
421
- variants {
422
- id
423
- product_id
424
- sku
425
- attributes
426
- price
427
- images
428
- weight_kg
429
- is_active
430
- inventory {
431
- id
432
- product_id
433
- variant_id
434
- quantity
435
- reserved
436
- available
437
- is_in_stock
438
- is_low_stock
439
- reorder_point
440
- reorder_quantity
441
- track_quantity
442
- allow_backorder
443
- updated_at
444
- }
445
- created_at
446
- updated_at
447
- }
448
- collections {
449
- id
450
- business_id
451
- name
452
- slug
453
- description
454
- collection_type
455
- rules
456
- image {
457
- id
458
- url
459
- alt
460
- }
461
- status
462
- sort_order
463
- created_at
464
- updated_at
465
- }
466
- created_at
467
- updated_at
468
- }
469
- total
470
- page
471
- page_size
472
- total_pages
473
- }
474
- }
475
- `
476
-
477
- export const GET_STOREFRONT_NEW = gql`
478
- query GetStorefrontNew($page: Int = 1, $pageSize: Int = 4) {
479
- storefront_new(page: $page, pageSize: $pageSize) {
480
- items {
481
- id
482
- business_id
483
- name
484
- slug
485
- description
486
- brand
487
- product_type
488
- requires_shipping
489
- is_consumable
490
- is_bespoke
491
- base_price
492
- currency
493
- sale_price
494
- sale_start
495
- sale_end
496
- images
497
- tags
498
- custom_fields {
499
- label
500
- unit
501
- required
502
- }
503
- is_published
504
- is_featured
505
- is_popular
506
- is_new
507
- is_temporary
508
- digital_file_key
509
- download_limit
510
- download_expires_at
511
- weight_kg
512
- length_cm
513
- width_cm
514
- height_cm
515
- variants {
516
- id
517
- product_id
518
- sku
519
- attributes
520
- price
521
- images
522
- weight_kg
523
- is_active
524
- inventory {
525
- id
526
- product_id
527
- variant_id
528
- quantity
529
- reserved
530
- available
531
- is_in_stock
532
- is_low_stock
533
- reorder_point
534
- reorder_quantity
535
- track_quantity
536
- allow_backorder
537
- updated_at
538
- }
539
- created_at
540
- updated_at
541
- }
542
- collections {
543
- id
544
- business_id
545
- name
546
- slug
547
- description
548
- collection_type
549
- rules
550
- image {
551
- id
552
- url
553
- alt
554
- }
555
- status
556
- sort_order
557
- created_at
558
- updated_at
559
- }
560
- created_at
561
- updated_at
562
- }
563
- total
564
- page
565
- page_size
566
- total_pages
567
- }
568
- }
569
- `
570
-
571
- export const GET_STOREFRONT_ON_SALE = gql`
572
- query GetStorefrontOnSale($page: Int = 1, $pageSize: Int = 4) {
573
- storefront_on_sale(page: $page, pageSize: $pageSize) {
574
- items {
575
- id
576
- business_id
577
- name
578
- slug
579
- description
580
- brand
581
- product_type
582
- requires_shipping
583
- is_consumable
584
- is_bespoke
585
- base_price
586
- currency
587
- sale_price
588
- sale_start
589
- sale_end
590
- images
591
- tags
592
- custom_fields {
593
- label
594
- unit
595
- required
596
- }
597
- is_published
598
- is_featured
599
- is_popular
600
- is_new
601
- is_temporary
602
- digital_file_key
603
- download_limit
604
- download_expires_at
605
- weight_kg
606
- length_cm
607
- width_cm
608
- height_cm
609
- variants {
610
- id
611
- product_id
612
- sku
613
- attributes
614
- price
615
- images
616
- weight_kg
617
- is_active
618
- inventory {
619
- id
620
- product_id
621
- variant_id
622
- quantity
623
- reserved
624
- available
625
- is_in_stock
626
- is_low_stock
627
- reorder_point
628
- reorder_quantity
629
- track_quantity
630
- allow_backorder
631
- updated_at
632
- }
633
- created_at
634
- updated_at
635
- }
636
- collections {
637
- id
638
- business_id
639
- name
640
- slug
641
- description
642
- collection_type
643
- rules
644
- image {
645
- id
646
- url
647
- alt
648
- }
649
- status
650
- sort_order
651
- created_at
652
- updated_at
653
- }
654
- created_at
655
- updated_at
656
- }
657
- total
658
- page
659
- page_size
660
- total_pages
661
- }
662
- }
663
- `
664
-
665
- export const GET_STOREFRONT_LOW_STOCK = gql`
666
- query GetStorefrontLowStock($page: Int = 1, $pageSize: Int = 4) {
667
- storefront_low_stock(page: $page, pageSize: $pageSize) {
668
- items {
669
- id
670
- business_id
671
- name
672
- slug
673
- description
674
- brand
675
- product_type
676
- requires_shipping
677
- is_consumable
678
- is_bespoke
679
- base_price
680
- currency
681
- sale_price
682
- sale_start
683
- sale_end
684
- images
685
- tags
686
- custom_fields {
687
- label
688
- unit
689
- required
690
- }
691
- is_published
692
- is_featured
693
- is_popular
694
- is_new
695
- is_temporary
696
- digital_file_key
697
- download_limit
698
- download_expires_at
699
- weight_kg
700
- length_cm
701
- width_cm
702
- height_cm
703
- variants {
704
- id
705
- product_id
706
- sku
707
- attributes
708
- price
709
- images
710
- weight_kg
711
- is_active
712
- inventory {
713
- id
714
- product_id
715
- variant_id
716
- quantity
717
- reserved
718
- available
719
- is_in_stock
720
- is_low_stock
721
- reorder_point
722
- reorder_quantity
723
- track_quantity
724
- allow_backorder
725
- updated_at
726
- }
727
- created_at
728
- updated_at
729
- }
730
- collections {
731
- id
732
- business_id
733
- name
734
- slug
735
- description
736
- collection_type
737
- rules
738
- image {
739
- id
740
- url
741
- alt
742
- }
743
- status
744
- sort_order
745
- created_at
746
- updated_at
747
- }
748
- created_at
749
- updated_at
750
- }
751
- total
752
- page
753
- page_size
754
- total_pages
755
- }
756
- }
757
- `
758
-
759
- export const GET_STOREFRONT_RECOMMENDED = gql`
760
- query GetStorefrontRecommended(
761
- $page: Int = 1
762
- $pageSize: Int = 4
763
- $excludeProductId: String
764
- ) {
765
- storefront_recommended(
766
- page: $page
767
- pageSize: $pageSize
768
- excludeProductId: $excludeProductId
769
- ) {
770
- items {
771
- id
772
- business_id
773
- name
774
- slug
775
- description
776
- brand
777
- product_type
778
- requires_shipping
779
- is_consumable
780
- is_bespoke
781
- base_price
782
- currency
783
- sale_price
784
- sale_start
785
- sale_end
786
- images
787
- tags
788
- custom_fields {
789
- label
790
- unit
791
- required
792
- }
793
- is_published
794
- is_featured
795
- is_popular
796
- is_new
797
- is_temporary
798
- digital_file_key
799
- download_limit
800
- download_expires_at
801
- weight_kg
802
- length_cm
803
- width_cm
804
- height_cm
805
- variants {
806
- id
807
- product_id
808
- sku
809
- attributes
810
- price
811
- images
812
- weight_kg
813
- is_active
814
- inventory {
815
- id
816
- product_id
817
- variant_id
818
- quantity
819
- reserved
820
- available
821
- is_in_stock
822
- is_low_stock
823
- reorder_point
824
- reorder_quantity
825
- track_quantity
826
- allow_backorder
827
- updated_at
828
- }
829
- created_at
830
- updated_at
831
- }
832
- collections {
833
- id
834
- business_id
835
- name
836
- slug
837
- description
838
- collection_type
839
- rules
840
- image {
841
- id
842
- url
843
- alt
844
- }
845
- status
846
- sort_order
847
- created_at
848
- updated_at
849
- }
850
- created_at
851
- updated_at
852
- }
853
- total
854
- page
855
- page_size
856
- total_pages
857
- }
858
- }
859
- `
860
-