@salifbiaye/create-boutique 0.1.1

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 (316) hide show
  1. package/README.md +1 -0
  2. package/cli/dist/commands.js +382 -0
  3. package/cli/dist/create.js +194 -0
  4. package/cli/dist/docker.js +19 -0
  5. package/cli/dist/generate.js +322 -0
  6. package/cli/dist/guide.js +72 -0
  7. package/cli/dist/index.js +156 -0
  8. package/cli/dist/paths.js +29 -0
  9. package/cli/dist/ports.js +54 -0
  10. package/cli/dist/project.js +119 -0
  11. package/cli/dist/themes.js +24 -0
  12. package/docs/fiche-client.en.html +137 -0
  13. package/docs/fiche-client.html +137 -0
  14. package/docs/guide-complet.en.html +259 -0
  15. package/docs/guide-complet.fr.html +259 -0
  16. package/package.json +51 -0
  17. package/templates/backend/.dockerignore +9 -0
  18. package/templates/backend/Dockerfile +30 -0
  19. package/templates/backend/README.md +78 -0
  20. package/templates/backend/TEMPLATE_VERSION +1 -0
  21. package/templates/backend/docker/entrypoint.sh +28 -0
  22. package/templates/backend/instrumentation.ts +24 -0
  23. package/templates/backend/medusa-config.ts +114 -0
  24. package/templates/backend/package-lock.json +16222 -0
  25. package/templates/backend/package.json +39 -0
  26. package/templates/backend/src/admin/README.md +33 -0
  27. package/templates/backend/src/admin/components/image-field.tsx +61 -0
  28. package/templates/backend/src/admin/i18n/README.md +58 -0
  29. package/templates/backend/src/admin/i18n/index.ts +8 -0
  30. package/templates/backend/src/admin/i18n/json/en.json +66 -0
  31. package/templates/backend/src/admin/i18n/json/fr.json +66 -0
  32. package/templates/backend/src/admin/lib/client.ts +9 -0
  33. package/templates/backend/src/admin/routes/boutique-campaigns/campaign-drawer.tsx +286 -0
  34. package/templates/backend/src/admin/routes/boutique-campaigns/page.tsx +113 -0
  35. package/templates/backend/src/admin/tsconfig.json +24 -0
  36. package/templates/backend/src/admin/vite-env.d.ts +1 -0
  37. package/templates/backend/src/admin/widgets/category-image.tsx +56 -0
  38. package/templates/backend/src/api/README.md +135 -0
  39. package/templates/backend/src/api/admin/boutique-campaigns/[salesChannelId]/route.ts +30 -0
  40. package/templates/backend/src/api/admin/boutique-campaigns/route.ts +24 -0
  41. package/templates/backend/src/api/middlewares.ts +28 -0
  42. package/templates/backend/src/api/rate-limit.ts +30 -0
  43. package/templates/backend/src/api/route.ts +6 -0
  44. package/templates/backend/src/api/store/campaign/route.ts +25 -0
  45. package/templates/backend/src/api/store/order-lookup/route.ts +74 -0
  46. package/templates/backend/src/emails/en.json +64 -0
  47. package/templates/backend/src/emails/fr.json +64 -0
  48. package/templates/backend/src/jobs/README.md +38 -0
  49. package/templates/backend/src/lib/emails.ts +94 -0
  50. package/templates/backend/src/lib/notify.ts +148 -0
  51. package/templates/backend/src/lib/project.ts +146 -0
  52. package/templates/backend/src/links/README.md +26 -0
  53. package/templates/backend/src/links/campaign-sales-channel.ts +9 -0
  54. package/templates/backend/src/modules/README.md +117 -0
  55. package/templates/backend/src/modules/campaign/index.ts +9 -0
  56. package/templates/backend/src/modules/campaign/migrations/.snapshot-boutique-campaign.json +272 -0
  57. package/templates/backend/src/modules/campaign/migrations/Migration20260928141440.ts +16 -0
  58. package/templates/backend/src/modules/campaign/migrations/Migration20260928145243.ts +13 -0
  59. package/templates/backend/src/modules/campaign/models/campaign.ts +28 -0
  60. package/templates/backend/src/modules/campaign/service.ts +6 -0
  61. package/templates/backend/src/modules/campaign/validators.ts +94 -0
  62. package/templates/backend/src/modules/resend/index.ts +6 -0
  63. package/templates/backend/src/modules/resend/service.ts +63 -0
  64. package/templates/backend/src/scripts/README.md +63 -0
  65. package/templates/backend/src/scripts/campaign-export.ts +15 -0
  66. package/templates/backend/src/scripts/campaign-import.ts +38 -0
  67. package/templates/backend/src/scripts/price-report.ts +34 -0
  68. package/templates/backend/src/scripts/seed.ts +418 -0
  69. package/templates/backend/src/scripts/storage.ts +63 -0
  70. package/templates/backend/src/subscribers/README.md +61 -0
  71. package/templates/backend/src/subscribers/account-emails.ts +27 -0
  72. package/templates/backend/src/subscribers/fulfillment-emails.ts +42 -0
  73. package/templates/backend/src/subscribers/order-emails.ts +12 -0
  74. package/templates/backend/src/subscribers/return-refund-emails.ts +50 -0
  75. package/templates/backend/src/workflows/README.md +81 -0
  76. package/templates/backend/src/workflows/steps/upsert-campaign.ts +53 -0
  77. package/templates/backend/src/workflows/upsert-campaign.ts +30 -0
  78. package/templates/backend/tsconfig.json +36 -0
  79. package/templates/storefront/.dockerignore +7 -0
  80. package/templates/storefront/.github/ISSUE_TEMPLATE/bug-report.yml +71 -0
  81. package/templates/storefront/.prettierrc +8 -0
  82. package/templates/storefront/Dockerfile +37 -0
  83. package/templates/storefront/LICENSE +21 -0
  84. package/templates/storefront/README.md +127 -0
  85. package/templates/storefront/locales/en.json +269 -0
  86. package/templates/storefront/locales/fr.json +269 -0
  87. package/templates/storefront/next-env.d.ts +7 -0
  88. package/templates/storefront/next-sitemap.js +19 -0
  89. package/templates/storefront/next.config.js +29 -0
  90. package/templates/storefront/package-lock.json +9031 -0
  91. package/templates/storefront/package.json +49 -0
  92. package/templates/storefront/postcss.config.js +6 -0
  93. package/templates/storefront/public/favicon.ico +0 -0
  94. package/templates/storefront/scripts/sync-design.mjs +30 -0
  95. package/templates/storefront/src/app/(checkout)/checkout/page.tsx +31 -0
  96. package/templates/storefront/src/app/(checkout)/layout.tsx +29 -0
  97. package/templates/storefront/src/app/(checkout)/not-found.tsx +20 -0
  98. package/templates/storefront/src/app/(main)/account/@dashboard/addresses/page.tsx +34 -0
  99. package/templates/storefront/src/app/(main)/account/@dashboard/loading.tsx +9 -0
  100. package/templates/storefront/src/app/(main)/account/@dashboard/orders/details/[id]/page.tsx +33 -0
  101. package/templates/storefront/src/app/(main)/account/@dashboard/orders/page.tsx +37 -0
  102. package/templates/storefront/src/app/(main)/account/@dashboard/page.tsx +22 -0
  103. package/templates/storefront/src/app/(main)/account/@dashboard/profile/page.tsx +53 -0
  104. package/templates/storefront/src/app/(main)/account/@login/page.tsx +12 -0
  105. package/templates/storefront/src/app/(main)/account/layout.tsx +20 -0
  106. package/templates/storefront/src/app/(main)/account/loading.tsx +9 -0
  107. package/templates/storefront/src/app/(main)/cart/loading.tsx +5 -0
  108. package/templates/storefront/src/app/(main)/cart/not-found.tsx +21 -0
  109. package/templates/storefront/src/app/(main)/cart/page.tsx +21 -0
  110. package/templates/storefront/src/app/(main)/categories/[...category]/page.tsx +55 -0
  111. package/templates/storefront/src/app/(main)/collections/[handle]/page.tsx +55 -0
  112. package/templates/storefront/src/app/(main)/layout.tsx +43 -0
  113. package/templates/storefront/src/app/(main)/legal/[page]/page.tsx +42 -0
  114. package/templates/storefront/src/app/(main)/not-found.tsx +21 -0
  115. package/templates/storefront/src/app/(main)/order/[id]/confirmed/loading.tsx +5 -0
  116. package/templates/storefront/src/app/(main)/order/[id]/confirmed/page.tsx +23 -0
  117. package/templates/storefront/src/app/(main)/order/[id]/transfer/[token]/accept/page.tsx +42 -0
  118. package/templates/storefront/src/app/(main)/order/[id]/transfer/[token]/decline/page.tsx +42 -0
  119. package/templates/storefront/src/app/(main)/order/[id]/transfer/[token]/page.tsx +35 -0
  120. package/templates/storefront/src/app/(main)/order/track/page.tsx +32 -0
  121. package/templates/storefront/src/app/(main)/page.tsx +68 -0
  122. package/templates/storefront/src/app/(main)/products/[handle]/page.tsx +86 -0
  123. package/templates/storefront/src/app/(main)/store/page.tsx +28 -0
  124. package/templates/storefront/src/app/api/health/route.ts +13 -0
  125. package/templates/storefront/src/app/layout.tsx +42 -0
  126. package/templates/storefront/src/app/not-found.tsx +21 -0
  127. package/templates/storefront/src/app/opengraph-image.jpg +0 -0
  128. package/templates/storefront/src/app/twitter-image.jpg +0 -0
  129. package/templates/storefront/src/instrumentation-node.ts +18 -0
  130. package/templates/storefront/src/instrumentation.ts +9 -0
  131. package/templates/storefront/src/lib/boutique/campaign.ts +116 -0
  132. package/templates/storefront/src/lib/boutique/config.ts +152 -0
  133. package/templates/storefront/src/lib/boutique/fonts.ts +29 -0
  134. package/templates/storefront/src/lib/boutique/i18n-client.tsx +34 -0
  135. package/templates/storefront/src/lib/boutique/i18n.ts +43 -0
  136. package/templates/storefront/src/lib/boutique/schema.ts +131 -0
  137. package/templates/storefront/src/lib/config.ts +39 -0
  138. package/templates/storefront/src/lib/constants.tsx +75 -0
  139. package/templates/storefront/src/lib/context/modal-context.tsx +34 -0
  140. package/templates/storefront/src/lib/data/cart.ts +434 -0
  141. package/templates/storefront/src/lib/data/categories.ts +49 -0
  142. package/templates/storefront/src/lib/data/collections.ts +59 -0
  143. package/templates/storefront/src/lib/data/cookies.ts +103 -0
  144. package/templates/storefront/src/lib/data/customer.ts +261 -0
  145. package/templates/storefront/src/lib/data/fulfillment.ts +68 -0
  146. package/templates/storefront/src/lib/data/onboarding.ts +9 -0
  147. package/templates/storefront/src/lib/data/order-lookup.ts +34 -0
  148. package/templates/storefront/src/lib/data/orders.ts +112 -0
  149. package/templates/storefront/src/lib/data/payment.ts +35 -0
  150. package/templates/storefront/src/lib/data/products.ts +127 -0
  151. package/templates/storefront/src/lib/data/regions.ts +70 -0
  152. package/templates/storefront/src/lib/data/variants.ts +38 -0
  153. package/templates/storefront/src/lib/hooks/use-in-view.tsx +29 -0
  154. package/templates/storefront/src/lib/hooks/use-toggle-state.tsx +46 -0
  155. package/templates/storefront/src/lib/util/compare-addresses.ts +28 -0
  156. package/templates/storefront/src/lib/util/get-percentage-diff.ts +6 -0
  157. package/templates/storefront/src/lib/util/get-product-price.ts +79 -0
  158. package/templates/storefront/src/lib/util/isEmpty.ts +11 -0
  159. package/templates/storefront/src/lib/util/medusa-error.ts +22 -0
  160. package/templates/storefront/src/lib/util/money.ts +35 -0
  161. package/templates/storefront/src/lib/util/product.ts +5 -0
  162. package/templates/storefront/src/lib/util/repeat.ts +5 -0
  163. package/templates/storefront/src/lib/util/sort-products.ts +50 -0
  164. package/templates/storefront/src/modules/account/components/account-info/index.tsx +140 -0
  165. package/templates/storefront/src/modules/account/components/account-nav/index.tsx +198 -0
  166. package/templates/storefront/src/modules/account/components/address-book/index.tsx +28 -0
  167. package/templates/storefront/src/modules/account/components/address-card/add-address.tsx +169 -0
  168. package/templates/storefront/src/modules/account/components/address-card/edit-address-modal.tsx +241 -0
  169. package/templates/storefront/src/modules/account/components/login/index.tsx +65 -0
  170. package/templates/storefront/src/modules/account/components/order-card/index.tsx +88 -0
  171. package/templates/storefront/src/modules/account/components/order-overview/index.tsx +47 -0
  172. package/templates/storefront/src/modules/account/components/overview/index.tsx +169 -0
  173. package/templates/storefront/src/modules/account/components/profile-billing-address/index.tsx +193 -0
  174. package/templates/storefront/src/modules/account/components/profile-email/index.tsx +75 -0
  175. package/templates/storefront/src/modules/account/components/profile-name/index.tsx +79 -0
  176. package/templates/storefront/src/modules/account/components/profile-password/index.tsx +72 -0
  177. package/templates/storefront/src/modules/account/components/profile-phone/index.tsx +74 -0
  178. package/templates/storefront/src/modules/account/components/register/index.tsx +107 -0
  179. package/templates/storefront/src/modules/account/components/transfer-request-form/index.tsx +83 -0
  180. package/templates/storefront/src/modules/account/templates/account-layout.tsx +43 -0
  181. package/templates/storefront/src/modules/account/templates/login-template.tsx +27 -0
  182. package/templates/storefront/src/modules/cart/components/cart-item-select/index.tsx +75 -0
  183. package/templates/storefront/src/modules/cart/components/empty-cart-message/index.tsx +25 -0
  184. package/templates/storefront/src/modules/cart/components/item/index.tsx +144 -0
  185. package/templates/storefront/src/modules/cart/components/sign-in-prompt/index.tsx +27 -0
  186. package/templates/storefront/src/modules/cart/templates/index.tsx +51 -0
  187. package/templates/storefront/src/modules/cart/templates/items.tsx +58 -0
  188. package/templates/storefront/src/modules/cart/templates/preview.tsx +51 -0
  189. package/templates/storefront/src/modules/cart/templates/summary.tsx +50 -0
  190. package/templates/storefront/src/modules/categories/templates/index.tsx +94 -0
  191. package/templates/storefront/src/modules/checkout/components/address-select/index.tsx +117 -0
  192. package/templates/storefront/src/modules/checkout/components/addresses/index.tsx +186 -0
  193. package/templates/storefront/src/modules/checkout/components/billing_address/index.tsx +114 -0
  194. package/templates/storefront/src/modules/checkout/components/country-select/index.tsx +50 -0
  195. package/templates/storefront/src/modules/checkout/components/discount-code/index.tsx +181 -0
  196. package/templates/storefront/src/modules/checkout/components/error-message/index.tsx +13 -0
  197. package/templates/storefront/src/modules/checkout/components/payment/index.tsx +261 -0
  198. package/templates/storefront/src/modules/checkout/components/payment-button/index.tsx +195 -0
  199. package/templates/storefront/src/modules/checkout/components/payment-container/index.tsx +130 -0
  200. package/templates/storefront/src/modules/checkout/components/payment-test/index.tsx +12 -0
  201. package/templates/storefront/src/modules/checkout/components/payment-wrapper/index.tsx +42 -0
  202. package/templates/storefront/src/modules/checkout/components/payment-wrapper/stripe-wrapper.tsx +54 -0
  203. package/templates/storefront/src/modules/checkout/components/review/index.tsx +54 -0
  204. package/templates/storefront/src/modules/checkout/components/shipping/index.tsx +417 -0
  205. package/templates/storefront/src/modules/checkout/components/shipping-address/index.tsx +219 -0
  206. package/templates/storefront/src/modules/checkout/components/submit-button/index.tsx +32 -0
  207. package/templates/storefront/src/modules/checkout/templates/checkout-form/index.tsx +38 -0
  208. package/templates/storefront/src/modules/checkout/templates/checkout-summary/index.tsx +31 -0
  209. package/templates/storefront/src/modules/collections/templates/index.tsx +44 -0
  210. package/templates/storefront/src/modules/common/components/cart-totals/index.tsx +84 -0
  211. package/templates/storefront/src/modules/common/components/checkbox/index.tsx +44 -0
  212. package/templates/storefront/src/modules/common/components/delete-button/index.tsx +42 -0
  213. package/templates/storefront/src/modules/common/components/divider/index.tsx +9 -0
  214. package/templates/storefront/src/modules/common/components/filter-radio-group/index.tsx +61 -0
  215. package/templates/storefront/src/modules/common/components/input/index.tsx +79 -0
  216. package/templates/storefront/src/modules/common/components/interactive-link/index.tsx +33 -0
  217. package/templates/storefront/src/modules/common/components/line-item-options/index.tsx +26 -0
  218. package/templates/storefront/src/modules/common/components/line-item-price/index.tsx +63 -0
  219. package/templates/storefront/src/modules/common/components/line-item-unit-price/index.tsx +62 -0
  220. package/templates/storefront/src/modules/common/components/localized-client-link/index.tsx +29 -0
  221. package/templates/storefront/src/modules/common/components/modal/index.tsx +118 -0
  222. package/templates/storefront/src/modules/common/components/native-select/index.tsx +76 -0
  223. package/templates/storefront/src/modules/common/components/radio/index.tsx +27 -0
  224. package/templates/storefront/src/modules/common/icons/back.tsx +37 -0
  225. package/templates/storefront/src/modules/common/icons/bancontact.tsx +26 -0
  226. package/templates/storefront/src/modules/common/icons/chevron-down.tsx +30 -0
  227. package/templates/storefront/src/modules/common/icons/eye-off.tsx +37 -0
  228. package/templates/storefront/src/modules/common/icons/eye.tsx +37 -0
  229. package/templates/storefront/src/modules/common/icons/fast-delivery.tsx +65 -0
  230. package/templates/storefront/src/modules/common/icons/ideal.tsx +26 -0
  231. package/templates/storefront/src/modules/common/icons/map-pin.tsx +37 -0
  232. package/templates/storefront/src/modules/common/icons/package.tsx +44 -0
  233. package/templates/storefront/src/modules/common/icons/paypal.tsx +30 -0
  234. package/templates/storefront/src/modules/common/icons/placeholder-image.tsx +44 -0
  235. package/templates/storefront/src/modules/common/icons/refresh.tsx +51 -0
  236. package/templates/storefront/src/modules/common/icons/spinner.tsx +37 -0
  237. package/templates/storefront/src/modules/common/icons/trash.tsx +51 -0
  238. package/templates/storefront/src/modules/common/icons/user.tsx +37 -0
  239. package/templates/storefront/src/modules/common/icons/x.tsx +37 -0
  240. package/templates/storefront/src/modules/layout/components/cart-mismatch-banner/index.tsx +59 -0
  241. package/templates/storefront/src/modules/order/components/help/index.tsx +26 -0
  242. package/templates/storefront/src/modules/order/components/item/index.tsx +57 -0
  243. package/templates/storefront/src/modules/order/components/items/index.tsx +44 -0
  244. package/templates/storefront/src/modules/order/components/onboarding-cta/index.tsx +28 -0
  245. package/templates/storefront/src/modules/order/components/order-details/index.tsx +64 -0
  246. package/templates/storefront/src/modules/order/components/order-summary/index.tsx +61 -0
  247. package/templates/storefront/src/modules/order/components/payment-details/index.tsx +64 -0
  248. package/templates/storefront/src/modules/order/components/shipping-details/index.tsx +74 -0
  249. package/templates/storefront/src/modules/order/components/transfer-actions/index.tsx +83 -0
  250. package/templates/storefront/src/modules/order/components/transfer-image/index.tsx +275 -0
  251. package/templates/storefront/src/modules/order/templates/order-completed-template.tsx +53 -0
  252. package/templates/storefront/src/modules/order/templates/order-details-template.tsx +46 -0
  253. package/templates/storefront/src/modules/products/components/thumbnail/index.tsx +70 -0
  254. package/templates/storefront/src/modules/products/templates/index.tsx +118 -0
  255. package/templates/storefront/src/modules/shipping/components/free-shipping-price-nudge/index.tsx +285 -0
  256. package/templates/storefront/src/modules/skeletons/components/skeleton-button/index.tsx +5 -0
  257. package/templates/storefront/src/modules/skeletons/components/skeleton-card-details/index.tsx +10 -0
  258. package/templates/storefront/src/modules/skeletons/components/skeleton-cart-item/index.tsx +35 -0
  259. package/templates/storefront/src/modules/skeletons/components/skeleton-cart-totals/index.tsx +30 -0
  260. package/templates/storefront/src/modules/skeletons/components/skeleton-code-form/index.tsx +13 -0
  261. package/templates/storefront/src/modules/skeletons/components/skeleton-line-item/index.tsx +35 -0
  262. package/templates/storefront/src/modules/skeletons/components/skeleton-order-confirmed-header/index.tsx +14 -0
  263. package/templates/storefront/src/modules/skeletons/components/skeleton-order-information/index.tsx +36 -0
  264. package/templates/storefront/src/modules/skeletons/components/skeleton-order-items/index.tsx +43 -0
  265. package/templates/storefront/src/modules/skeletons/components/skeleton-order-summary/index.tsx +15 -0
  266. package/templates/storefront/src/modules/skeletons/components/skeleton-product-preview/index.tsx +15 -0
  267. package/templates/storefront/src/modules/skeletons/templates/skeleton-cart-page/index.tsx +65 -0
  268. package/templates/storefront/src/modules/skeletons/templates/skeleton-order-confirmed/index.tsx +21 -0
  269. package/templates/storefront/src/modules/skeletons/templates/skeleton-product-grid/index.tsx +23 -0
  270. package/templates/storefront/src/modules/store/components/pagination/index.tsx +114 -0
  271. package/templates/storefront/src/modules/store/components/refinement-list/index.tsx +41 -0
  272. package/templates/storefront/src/modules/store/components/refinement-list/sort-products/index.tsx +48 -0
  273. package/templates/storefront/src/modules/store/templates/index.tsx +42 -0
  274. package/templates/storefront/src/modules/store/templates/paginated-products.tsx +80 -0
  275. package/templates/storefront/src/modules/ub/button.tsx +41 -0
  276. package/templates/storefront/src/modules/ub/campaign-blocks.tsx +197 -0
  277. package/templates/storefront/src/modules/ub/campaign-ended.tsx +28 -0
  278. package/templates/storefront/src/modules/ub/category-tiles.tsx +41 -0
  279. package/templates/storefront/src/modules/ub/countdown.tsx +46 -0
  280. package/templates/storefront/src/modules/ub/footer.tsx +56 -0
  281. package/templates/storefront/src/modules/ub/icons.tsx +42 -0
  282. package/templates/storefront/src/modules/ub/nav.tsx +90 -0
  283. package/templates/storefront/src/modules/ub/pdp/buy-box.tsx +140 -0
  284. package/templates/storefront/src/modules/ub/pdp/gallery.tsx +40 -0
  285. package/templates/storefront/src/modules/ub/product-card.tsx +66 -0
  286. package/templates/storefront/src/modules/ub/top-bar.tsx +20 -0
  287. package/templates/storefront/src/modules/ub/track-form.tsx +92 -0
  288. package/templates/storefront/src/proxy.ts +89 -0
  289. package/templates/storefront/src/styles/globals.css +98 -0
  290. package/templates/storefront/src/styles/ub/bundle.css +372 -0
  291. package/templates/storefront/src/styles/ub/fonts.css +17 -0
  292. package/templates/storefront/src/styles/ub/medusa-ui.css +90 -0
  293. package/templates/storefront/src/styles/ub/overrides.css +12 -0
  294. package/templates/storefront/src/styles/ub/tokens.css +9 -0
  295. package/templates/storefront/src/types/global.ts +24 -0
  296. package/templates/storefront/src/types/icon.ts +4 -0
  297. package/templates/storefront/tailwind.config.js +164 -0
  298. package/templates/storefront/themes/black-friday/campaign.en.json +31 -0
  299. package/templates/storefront/themes/black-friday/campaign.fr.json +31 -0
  300. package/templates/storefront/themes/black-friday/theme.json +9 -0
  301. package/templates/storefront/themes/cyber-monday/campaign.en.json +31 -0
  302. package/templates/storefront/themes/cyber-monday/campaign.fr.json +31 -0
  303. package/templates/storefront/themes/cyber-monday/theme.json +9 -0
  304. package/templates/storefront/themes/halloween/campaign.en.json +31 -0
  305. package/templates/storefront/themes/halloween/campaign.fr.json +31 -0
  306. package/templates/storefront/themes/halloween/theme.json +9 -0
  307. package/templates/storefront/themes/noel/campaign.en.json +31 -0
  308. package/templates/storefront/themes/noel/campaign.fr.json +31 -0
  309. package/templates/storefront/themes/noel/theme.json +9 -0
  310. package/templates/storefront/themes/nouvel-an/campaign.en.json +31 -0
  311. package/templates/storefront/themes/nouvel-an/campaign.fr.json +31 -0
  312. package/templates/storefront/themes/nouvel-an/theme.json +9 -0
  313. package/templates/storefront/themes/thanksgiving/campaign.en.json +31 -0
  314. package/templates/storefront/themes/thanksgiving/campaign.fr.json +31 -0
  315. package/templates/storefront/themes/thanksgiving/theme.json +9 -0
  316. package/templates/storefront/tsconfig.json +53 -0
@@ -0,0 +1,269 @@
1
+ {
2
+ "nav.home": "Home",
3
+ "nav.shop": "Shop",
4
+ "nav.deals": "Deals",
5
+ "nav.track": "Track order",
6
+ "nav.contact": "Contact",
7
+ "nav.main": "Main",
8
+ "nav.search": "Search products",
9
+ "nav.account": "Account",
10
+ "nav.cart": "Cart, {count} items",
11
+ "nav.cta": "Shop now",
12
+ "hero.photo": "Campaign photo",
13
+ "hero.trust.shipping": "Free Shipping",
14
+ "hero.trust.shippingSub": "On eligible orders",
15
+ "hero.trust.secure": "Secure Payment",
16
+ "hero.trust.secureSub": "Encrypted by Stripe",
17
+ "hero.trust.returns": "Easy Returns",
18
+ "hero.trust.returnsSub": "Hassle free",
19
+ "countdown.label": "Offer ends in",
20
+ "countdown.days": "Days",
21
+ "countdown.hours": "Hours",
22
+ "countdown.mins": "Mins",
23
+ "countdown.secs": "Secs",
24
+ "trust.shipping": "Free Shipping",
25
+ "trust.shippingSub": "On orders over {freeShipping}",
26
+ "trust.shippingSubAll": "On eligible orders",
27
+ "trust.secure": "Secure Payment",
28
+ "trust.secureSub": "Cards, Apple Pay, Google Pay",
29
+ "trust.returns": "30-Day Returns",
30
+ "trust.returnsSub": "Money back guarantee",
31
+ "trust.support": "Customer Support",
32
+ "trust.supportSub": "We answer every message",
33
+ "section.viewAll": "View all",
34
+ "section.categories": "Shop by category",
35
+ "section.products": "Top picks",
36
+ "section.related": "You may also like",
37
+ "tile.items": "{count} items",
38
+ "tile.cta": "Shop Now →",
39
+ "card.addToCart": "Add to cart",
40
+ "card.view": "View {name}",
41
+ "card.sale": "-{percent}%",
42
+ "card.from": "From",
43
+ "pdp.addToCart": "Add to Cart",
44
+ "pdp.buyNow": "Buy Now",
45
+ "pdp.adding": "Adding…",
46
+ "pdp.selectVariant": "Select a variant",
47
+ "pdp.outOfStock": "Out of stock",
48
+ "pdp.save": "Save {amount}",
49
+ "pdp.trust.secure": "Secure Checkout",
50
+ "pdp.trust.fast": "Fast Shipping",
51
+ "pdp.trust.money": "30-Day Money Back",
52
+ "pdp.trust.warranty": "2-Year Warranty",
53
+ "pdp.faq": "Frequently asked questions",
54
+ "pdp.faq.q1": "Which payment methods do you accept?",
55
+ "pdp.faq.a1": "Cards, Apple Pay and Google Pay, processed securely by Stripe.",
56
+ "pdp.faq.q2": "How long does delivery take?",
57
+ "pdp.faq.a2": "Shipping options and delivery times are shown at checkout.",
58
+ "pdp.faq.q3": "Can I return my order?",
59
+ "pdp.faq.a3": "Yes, you have 30 days to return an item in its original condition.",
60
+ "footer.tagline": "Curated products, shipped with care. Secure checkout with Stripe.",
61
+ "footer.shop": "Shop",
62
+ "footer.help": "Help",
63
+ "footer.company": "Company",
64
+ "footer.all": "All products",
65
+ "footer.cart": "Cart",
66
+ "footer.rights": "© {year} {storeName}. All rights reserved.",
67
+ "footer.payments": "Accepted payments",
68
+ "legal.shipping": "Shipping",
69
+ "legal.returns": "Returns",
70
+ "legal.privacy": "Privacy",
71
+ "legal.terms": "Terms",
72
+ "legal.contact": "Contact",
73
+ "legal.shipping.body": "Orders are prepared within 1–2 business days. Shipping options, costs and estimated delivery times are shown at checkout before you pay.",
74
+ "legal.returns.body": "You can return any item within 30 days of delivery, unused and in its original packaging. Contact us to start a return; refunds are issued to the original payment method.",
75
+ "legal.privacy.body": "{storeName} only collects the data needed to process your order (name, address, email, phone). Card details are handled by Stripe and never stored by us. Contact us to access or delete your data.",
76
+ "legal.terms.body": "Prices include the discounts shown at the time of order. The amount charged is the one displayed at checkout. {storeName} may cancel an order in case of an obvious pricing error; you would then be fully refunded.",
77
+ "legal.contact.body": "Questions about an order? Write to us and we will answer as soon as possible.",
78
+ "legal.contact.email": "Email: {email}",
79
+ "ended.title": "This sale has ended",
80
+ "ended.text": "Thank you for shopping with {storeName}. Our next sale is already waiting for you.",
81
+ "ended.cta": "See the next sale",
82
+ "ended.soon": "Our next sale is coming soon.",
83
+ "upcoming.title": "Coming soon",
84
+ "upcoming.text": "This sale starts on {date}.",
85
+ "notFound.title": "Page not found",
86
+ "notFound.text": "The page you tried to access does not exist.",
87
+ "notFound.cta": "Back to the shop",
88
+ "track.title": "Track your order",
89
+ "track.text": "Sign in to your account to follow your orders, or check the confirmation email we sent you.",
90
+ "track.cta": "Go to my account",
91
+ "checkout.back": "Back to cart",
92
+ "checkout.secure": "Payments are encrypted and processed by Stripe.",
93
+ "form.select": "Select…",
94
+ "form.firstName": "First name",
95
+ "form.lastName": "Last name",
96
+ "form.address": "Address",
97
+ "form.address2": "Apartment, suite, etc.",
98
+ "form.company": "Company",
99
+ "form.postalCode": "Postal code",
100
+ "form.city": "City",
101
+ "form.province": "State / Province",
102
+ "form.phone": "Phone",
103
+ "form.email": "Email",
104
+ "form.emailInvalid": "Enter a valid email address.",
105
+ "form.password": "Password",
106
+ "form.name": "Name",
107
+ "form.oldPassword": "Old password",
108
+ "form.newPassword": "New password",
109
+ "form.confirmPassword": "Confirm password",
110
+ "form.cancel": "Cancel",
111
+ "form.edit": "Edit",
112
+ "form.remove": "Remove",
113
+ "form.saveChanges": "Save changes",
114
+ "form.chooseAddress": "Choose an address",
115
+ "form.billingAddress": "Billing address",
116
+ "cart.title": "Cart",
117
+ "cart.empty": "You don't have anything in your cart. Let's change that, use the link below to start browsing our products.",
118
+ "cart.explore": "Explore products",
119
+ "cart.signInTitle": "Already have an account?",
120
+ "cart.signInText": "Sign in for a better experience.",
121
+ "cart.signIn": "Sign in",
122
+ "cart.item": "Item",
123
+ "cart.quantity": "Quantity",
124
+ "cart.price": "Price",
125
+ "cart.total": "Total",
126
+ "cart.summary": "Summary",
127
+ "cart.goToCheckout": "Go to checkout",
128
+ "cart.notFound": "The cart you tried to access does not exist. Clear your cookies and try again.",
129
+ "cart.subtotalExcl": "Subtotal (excl. shipping and taxes)",
130
+ "cart.subtotal": "Subtotal",
131
+ "cart.shipping": "Shipping",
132
+ "cart.discount": "Discount",
133
+ "cart.taxes": "Taxes",
134
+ "cart.freeShippingUnlocked": "Free Shipping unlocked!",
135
+ "cart.viewCart": "View cart",
136
+ "cart.viewProducts": "View products",
137
+ "cart.transferFailed": "Something went wrong when we tried to transfer your cart",
138
+ "cart.transferAgain": "Run transfer again",
139
+ "checkout.title": "Checkout",
140
+ "checkout.shippingAddress": "Shipping Address",
141
+ "checkout.billingAddress": "Billing Address",
142
+ "checkout.contact": "Contact",
143
+ "checkout.sameAddress": "Billing and delivery address are the same.",
144
+ "checkout.billingSame": "Billing address same as shipping address",
145
+ "checkout.continueDelivery": "Continue to delivery",
146
+ "checkout.delivery": "Delivery",
147
+ "checkout.shippingMethod": "Shipping method",
148
+ "checkout.shippingHow": "How would you like your order delivered",
149
+ "checkout.pickup": "Pick up your order",
150
+ "checkout.store": "Store",
151
+ "checkout.chooseStore": "Choose a store near you",
152
+ "checkout.continuePayment": "Continue to payment",
153
+ "checkout.method": "Method",
154
+ "checkout.payment": "Payment",
155
+ "checkout.paymentMethod": "Payment method",
156
+ "checkout.paymentDetails": "Payment details",
157
+ "checkout.giftCard": "Gift card",
158
+ "checkout.continueReview": "Continue to review",
159
+ "checkout.enterCard": "Enter card details",
160
+ "checkout.anotherStep": "Another step will appear",
161
+ "checkout.cardDetails": "Enter your card details:",
162
+ "checkout.selectPayment": "Select a payment method",
163
+ "checkout.placeOrder": "Place order",
164
+ "checkout.review": "Review",
165
+ "checkout.terms": "By clicking Place order, you confirm that you have read and accept our Terms of Sale and Returns Policy, and our Privacy Policy.",
166
+ "checkout.inYourCart": "In your Cart",
167
+ "checkout.addPromo": "Add Promotion Code(s)",
168
+ "checkout.apply": "Apply",
169
+ "checkout.promosApplied": "Promotion(s) applied:",
170
+ "checkout.promoAuto": "This promotion is automatically applied",
171
+ "checkout.removePromo": "Remove discount code from order",
172
+ "order.thanks": "Thank you!",
173
+ "order.placed": "Your order was placed successfully.",
174
+ "order.summary": "Summary",
175
+ "order.emailSent": "We have sent the order confirmation details to",
176
+ "order.date": "Order date:",
177
+ "order.number": "Order number:",
178
+ "order.status": "Order status:",
179
+ "order.paymentStatus": "Payment status:",
180
+ "order.payment": "Payment",
181
+ "order.paymentMethod": "Payment method",
182
+ "order.paymentDetails": "Payment details",
183
+ "order.delivery": "Delivery",
184
+ "order.shippingAddress": "Shipping Address",
185
+ "order.contact": "Contact",
186
+ "order.method": "Method",
187
+ "order.help": "Need help?",
188
+ "order.returns": "Returns & Exchanges",
189
+ "order.confirmed": "Order Confirmed",
190
+ "order.seeDetails": "See details",
191
+ "order.continueShopping": "Continue shopping",
192
+ "order.transferTitle": "Transfer request for order {id}",
193
+ "order.transferText1": "You've received a request to transfer ownership of your order ({id}). If you agree to this request, you can approve the transfer by clicking the button below.",
194
+ "order.transferText2": "If you accept, the new owner will take over all responsibilities and permissions associated with this order.",
195
+ "order.transferText3": "If you do not recognize this request or wish to retain ownership, no further action is required.",
196
+ "order.transferAccepted": "Order transferred!",
197
+ "order.transferAcceptError": "There was an error accepting the transfer. Please try again.",
198
+ "order.transferDeclined": "Order transfer declined!",
199
+ "order.transferDeclineError": "There was an error declining the transfer. Please try again.",
200
+ "order.transferOk": "Order transferred successfully!",
201
+ "order.transferDeclinedOk": "Order transfer declined successfully!",
202
+ "order.acceptTransfer": "Accept transfer",
203
+ "order.declineTransfer": "Decline transfer",
204
+ "account.title": "Account",
205
+ "account.overview": "Overview",
206
+ "account.profile": "Profile",
207
+ "account.addresses": "Addresses",
208
+ "account.orders": "Orders",
209
+ "account.logout": "Log out",
210
+ "account.hello": "Hello {name}",
211
+ "account.signedInAs": "Signed in as:",
212
+ "account.completed": "Completed",
213
+ "account.saved": "Saved",
214
+ "account.recentOrders": "Recent orders",
215
+ "account.datePlaced": "Date placed",
216
+ "account.orderNumber": "Order number",
217
+ "account.totalAmount": "Total amount",
218
+ "account.noRecentOrders": "No recent orders",
219
+ "account.shippingAddresses": "Shipping Addresses",
220
+ "account.addressesText": "View and update your shipping addresses. Saved addresses are available during checkout.",
221
+ "account.ordersText": "View your previous orders and their status.",
222
+ "account.profileText": "View and update your profile information: name, email, phone number and billing address.",
223
+ "account.questions": "Got questions?",
224
+ "account.questionsText": "Our team is here to help with your orders.",
225
+ "account.contactUs": "Contact us",
226
+ "account.welcomeBack": "Welcome back",
227
+ "account.signInText": "Sign in to access an enhanced shopping experience.",
228
+ "account.signIn": "Sign in",
229
+ "account.notMember": "Not a member?",
230
+ "account.joinUs": "Join us",
231
+ "account.becomeMember": "Create your account",
232
+ "account.registerText": "Create your profile to track your orders and save your addresses.",
233
+ "account.agree": "By creating an account, you agree to our",
234
+ "account.privacy": "Privacy Policy",
235
+ "account.and": "and",
236
+ "account.terms": "Terms of Use",
237
+ "account.join": "Join",
238
+ "account.alreadyMember": "Already a member?",
239
+ "account.noBilling": "No billing address",
240
+ "account.passwordHidden": "The password is not shown for security reasons",
241
+ "account.orderTransfers": "Order transfers",
242
+ "account.cantFind": "Can't find the order you are looking for?",
243
+ "account.connectOrder": "Connect an order to your account.",
244
+ "account.requestTransfer": "Request transfer",
245
+ "account.nothingToSee": "Nothing to see here",
246
+ "account.noOrdersYet": "You don't have any orders yet, let us change that {emoji}",
247
+ "store.sortBy": "Sort by",
248
+ "store.latest": "Latest Arrivals",
249
+ "store.priceAsc": "Price: Low -> High",
250
+ "store.priceDesc": "Price: High -> Low",
251
+ "account.updated": "Saved successfully",
252
+ "account.error": "An error occurred, please try again",
253
+ "track.intro": "Enter your order number and the email used for the order. You will find both in your confirmation email.",
254
+ "track.number": "Order number",
255
+ "track.email": "Email",
256
+ "track.submit": "Track my order",
257
+ "track.searching": "Searching…",
258
+ "track.order": "Order #{number}",
259
+ "track.step.placed": "Order placed",
260
+ "track.step.shipped": "Shipped",
261
+ "track.step.delivered": "Delivered",
262
+ "track.step.canceled": "This order has been canceled.",
263
+ "track.tracking": "Tracking number",
264
+ "track.follow": "Follow the package",
265
+ "track.error.notFound": "No order matches this number and email.",
266
+ "track.error.tooMany": "Too many attempts. Please try again in a few minutes.",
267
+ "track.error.invalid": "Please enter a valid order number and email.",
268
+ "track.account": "You have an account?"
269
+ }
@@ -0,0 +1,269 @@
1
+ {
2
+ "nav.home": "Accueil",
3
+ "nav.shop": "Boutique",
4
+ "nav.deals": "Promos",
5
+ "nav.track": "Suivi de commande",
6
+ "nav.contact": "Contact",
7
+ "nav.main": "Principal",
8
+ "nav.search": "Rechercher un produit",
9
+ "nav.account": "Mon compte",
10
+ "nav.cart": "Panier, {count} articles",
11
+ "nav.cta": "Acheter",
12
+ "hero.photo": "Visuel de la campagne",
13
+ "hero.trust.shipping": "Livraison offerte",
14
+ "hero.trust.shippingSub": "Sur les commandes éligibles",
15
+ "hero.trust.secure": "Paiement sécurisé",
16
+ "hero.trust.secureSub": "Chiffré par Stripe",
17
+ "hero.trust.returns": "Retours faciles",
18
+ "hero.trust.returnsSub": "Sans justification",
19
+ "countdown.label": "L'offre se termine dans",
20
+ "countdown.days": "Jours",
21
+ "countdown.hours": "Heures",
22
+ "countdown.mins": "Min",
23
+ "countdown.secs": "Sec",
24
+ "trust.shipping": "Livraison offerte",
25
+ "trust.shippingSub": "Dès {freeShipping} d'achat",
26
+ "trust.shippingSubAll": "Sur les commandes éligibles",
27
+ "trust.secure": "Paiement sécurisé",
28
+ "trust.secureSub": "Carte, Apple Pay, Google Pay",
29
+ "trust.returns": "Retours sous 30 jours",
30
+ "trust.returnsSub": "Satisfait ou remboursé",
31
+ "trust.support": "Service client",
32
+ "trust.supportSub": "Nous répondons à chaque message",
33
+ "section.viewAll": "Tout voir",
34
+ "section.categories": "Nos catégories",
35
+ "section.products": "Notre sélection",
36
+ "section.related": "Vous aimerez aussi",
37
+ "tile.items": "{count} articles",
38
+ "tile.cta": "Découvrir →",
39
+ "card.addToCart": "Ajouter au panier",
40
+ "card.view": "Voir {name}",
41
+ "card.sale": "-{percent} %",
42
+ "card.from": "À partir de",
43
+ "pdp.addToCart": "Ajouter au panier",
44
+ "pdp.buyNow": "Acheter maintenant",
45
+ "pdp.adding": "Ajout…",
46
+ "pdp.selectVariant": "Choisissez une option",
47
+ "pdp.outOfStock": "Rupture de stock",
48
+ "pdp.save": "Économisez {amount}",
49
+ "pdp.trust.secure": "Paiement sécurisé",
50
+ "pdp.trust.fast": "Expédition rapide",
51
+ "pdp.trust.money": "Remboursé sous 30 jours",
52
+ "pdp.trust.warranty": "Garantie 2 ans",
53
+ "pdp.faq": "Questions fréquentes",
54
+ "pdp.faq.q1": "Quels moyens de paiement acceptez-vous ?",
55
+ "pdp.faq.a1": "Carte bancaire, Apple Pay et Google Pay, traités en toute sécurité par Stripe.",
56
+ "pdp.faq.q2": "Quel est le délai de livraison ?",
57
+ "pdp.faq.a2": "Les modes et délais de livraison sont affichés au moment de la commande.",
58
+ "pdp.faq.q3": "Puis-je retourner ma commande ?",
59
+ "pdp.faq.a3": "Oui, vous disposez de 30 jours pour retourner un article dans son état d'origine.",
60
+ "footer.tagline": "Des produits choisis, expédiés avec soin. Paiement sécurisé par Stripe.",
61
+ "footer.shop": "Boutique",
62
+ "footer.help": "Aide",
63
+ "footer.company": "Informations",
64
+ "footer.all": "Tous les produits",
65
+ "footer.cart": "Panier",
66
+ "footer.rights": "© {year} {storeName}. Tous droits réservés.",
67
+ "footer.payments": "Moyens de paiement acceptés",
68
+ "legal.shipping": "Livraison",
69
+ "legal.returns": "Retours",
70
+ "legal.privacy": "Confidentialité",
71
+ "legal.terms": "Conditions de vente",
72
+ "legal.contact": "Contact",
73
+ "legal.shipping.body": "Les commandes sont préparées sous 1 à 2 jours ouvrés. Les modes de livraison, leurs tarifs et les délais estimés sont affichés avant le paiement.",
74
+ "legal.returns.body": "Vous pouvez retourner un article sous 30 jours après réception, non utilisé et dans son emballage d'origine. Contactez-nous pour lancer un retour ; le remboursement se fait sur le moyen de paiement d'origine.",
75
+ "legal.privacy.body": "{storeName} ne collecte que les données nécessaires à votre commande (nom, adresse, e-mail, téléphone). Les données de carte sont traitées par Stripe et jamais conservées par nous. Contactez-nous pour consulter ou supprimer vos données.",
76
+ "legal.terms.body": "Les prix incluent les remises affichées au moment de la commande. Le montant débité est celui affiché au paiement. {storeName} peut annuler une commande en cas d'erreur de prix manifeste ; vous êtes alors intégralement remboursé.",
77
+ "legal.contact.body": "Une question sur une commande ? Écrivez-nous, nous vous répondrons au plus vite.",
78
+ "legal.contact.email": "E-mail : {email}",
79
+ "ended.title": "Cette vente est terminée",
80
+ "ended.text": "Merci d'avoir fait vos achats chez {storeName}. Notre prochaine vente vous attend déjà.",
81
+ "ended.cta": "Voir la prochaine vente",
82
+ "ended.soon": "Notre prochaine vente arrive bientôt.",
83
+ "upcoming.title": "Bientôt disponible",
84
+ "upcoming.text": "Cette vente commence le {date}.",
85
+ "notFound.title": "Page introuvable",
86
+ "notFound.text": "La page demandée n'existe pas.",
87
+ "notFound.cta": "Retour à la boutique",
88
+ "track.title": "Suivre ma commande",
89
+ "track.text": "Connectez-vous à votre compte pour suivre vos commandes, ou consultez l'e-mail de confirmation que nous vous avons envoyé.",
90
+ "track.cta": "Accéder à mon compte",
91
+ "checkout.back": "Retour au panier",
92
+ "checkout.secure": "Les paiements sont chiffrés et traités par Stripe.",
93
+ "form.select": "Choisir…",
94
+ "form.firstName": "Prénom",
95
+ "form.lastName": "Nom",
96
+ "form.address": "Adresse",
97
+ "form.address2": "Appartement, étage, etc.",
98
+ "form.company": "Société",
99
+ "form.postalCode": "Code postal",
100
+ "form.city": "Ville",
101
+ "form.province": "État / Région",
102
+ "form.phone": "Téléphone",
103
+ "form.email": "E-mail",
104
+ "form.emailInvalid": "Saisissez une adresse e-mail valide.",
105
+ "form.password": "Mot de passe",
106
+ "form.name": "Nom",
107
+ "form.oldPassword": "Ancien mot de passe",
108
+ "form.newPassword": "Nouveau mot de passe",
109
+ "form.confirmPassword": "Confirmer le mot de passe",
110
+ "form.cancel": "Annuler",
111
+ "form.edit": "Modifier",
112
+ "form.remove": "Supprimer",
113
+ "form.saveChanges": "Enregistrer",
114
+ "form.chooseAddress": "Choisir une adresse",
115
+ "form.billingAddress": "Adresse de facturation",
116
+ "cart.title": "Panier",
117
+ "cart.empty": "Votre panier est vide. Parcourez nos produits pour le remplir.",
118
+ "cart.explore": "Voir les produits",
119
+ "cart.signInTitle": "Vous avez déjà un compte ?",
120
+ "cart.signInText": "Connectez-vous pour retrouver vos informations.",
121
+ "cart.signIn": "Se connecter",
122
+ "cart.item": "Article",
123
+ "cart.quantity": "Quantité",
124
+ "cart.price": "Prix",
125
+ "cart.total": "Total",
126
+ "cart.summary": "Récapitulatif",
127
+ "cart.goToCheckout": "Passer la commande",
128
+ "cart.notFound": "Ce panier n'existe pas. Effacez vos cookies et réessayez.",
129
+ "cart.subtotalExcl": "Sous-total (hors livraison et taxes)",
130
+ "cart.subtotal": "Sous-total",
131
+ "cart.shipping": "Livraison",
132
+ "cart.discount": "Remise",
133
+ "cart.taxes": "Taxes",
134
+ "cart.freeShippingUnlocked": "Livraison offerte débloquée !",
135
+ "cart.viewCart": "Voir le panier",
136
+ "cart.viewProducts": "Voir les produits",
137
+ "cart.transferFailed": "Le transfert de votre panier a échoué",
138
+ "cart.transferAgain": "Relancer le transfert",
139
+ "checkout.title": "Commande",
140
+ "checkout.shippingAddress": "Adresse de livraison",
141
+ "checkout.billingAddress": "Adresse de facturation",
142
+ "checkout.contact": "Contact",
143
+ "checkout.sameAddress": "Adresses de facturation et de livraison identiques.",
144
+ "checkout.billingSame": "Adresse de facturation identique à l'adresse de livraison",
145
+ "checkout.continueDelivery": "Continuer vers la livraison",
146
+ "checkout.delivery": "Livraison",
147
+ "checkout.shippingMethod": "Mode de livraison",
148
+ "checkout.shippingHow": "Comment souhaitez-vous être livré ?",
149
+ "checkout.pickup": "Retirer votre commande",
150
+ "checkout.store": "Magasin",
151
+ "checkout.chooseStore": "Choisissez un magasin proche",
152
+ "checkout.continuePayment": "Continuer vers le paiement",
153
+ "checkout.method": "Mode",
154
+ "checkout.payment": "Paiement",
155
+ "checkout.paymentMethod": "Moyen de paiement",
156
+ "checkout.paymentDetails": "Détails du paiement",
157
+ "checkout.giftCard": "Carte cadeau",
158
+ "checkout.continueReview": "Vérifier la commande",
159
+ "checkout.enterCard": "Saisir les données de carte",
160
+ "checkout.anotherStep": "Une étape supplémentaire va s'afficher",
161
+ "checkout.cardDetails": "Saisissez vos données de carte :",
162
+ "checkout.selectPayment": "Choisissez un moyen de paiement",
163
+ "checkout.placeOrder": "Valider la commande",
164
+ "checkout.review": "Vérification",
165
+ "checkout.terms": "En cliquant sur Valider la commande, vous confirmez avoir lu et accepté nos conditions de vente, notre politique de retour et notre politique de confidentialité.",
166
+ "checkout.inYourCart": "Votre panier",
167
+ "checkout.addPromo": "Ajouter un code promo",
168
+ "checkout.apply": "Appliquer",
169
+ "checkout.promosApplied": "Promotion(s) appliquée(s) :",
170
+ "checkout.promoAuto": "Cette promotion est appliquée automatiquement",
171
+ "checkout.removePromo": "Retirer le code promo",
172
+ "order.thanks": "Merci !",
173
+ "order.placed": "Votre commande a bien été enregistrée.",
174
+ "order.summary": "Récapitulatif",
175
+ "order.emailSent": "Nous avons envoyé la confirmation de commande à",
176
+ "order.date": "Date de commande :",
177
+ "order.number": "N° de commande :",
178
+ "order.status": "Statut de la commande :",
179
+ "order.paymentStatus": "Statut du paiement :",
180
+ "order.payment": "Paiement",
181
+ "order.paymentMethod": "Moyen de paiement",
182
+ "order.paymentDetails": "Détails du paiement",
183
+ "order.delivery": "Livraison",
184
+ "order.shippingAddress": "Adresse de livraison",
185
+ "order.contact": "Contact",
186
+ "order.method": "Mode",
187
+ "order.help": "Besoin d'aide ?",
188
+ "order.returns": "Retours et échanges",
189
+ "order.confirmed": "Commande confirmée",
190
+ "order.seeDetails": "Voir le détail",
191
+ "order.continueShopping": "Continuer mes achats",
192
+ "order.transferTitle": "Demande de transfert de la commande {id}",
193
+ "order.transferText1": "Vous avez reçu une demande de transfert de votre commande ({id}). Si vous êtes d'accord, validez le transfert avec le bouton ci-dessous.",
194
+ "order.transferText2": "Si vous acceptez, le nouveau titulaire reprendra tous les droits et obligations liés à cette commande.",
195
+ "order.transferText3": "Si vous ne reconnaissez pas cette demande ou souhaitez garder la commande, vous n'avez rien à faire.",
196
+ "order.transferAccepted": "Commande transférée !",
197
+ "order.transferAcceptError": "Le transfert n'a pas pu être accepté. Réessayez.",
198
+ "order.transferDeclined": "Transfert refusé !",
199
+ "order.transferDeclineError": "Le transfert n'a pas pu être refusé. Réessayez.",
200
+ "order.transferOk": "Commande transférée avec succès !",
201
+ "order.transferDeclinedOk": "Transfert refusé avec succès !",
202
+ "order.acceptTransfer": "Accepter le transfert",
203
+ "order.declineTransfer": "Refuser le transfert",
204
+ "account.title": "Mon compte",
205
+ "account.overview": "Vue d'ensemble",
206
+ "account.profile": "Profil",
207
+ "account.addresses": "Adresses",
208
+ "account.orders": "Commandes",
209
+ "account.logout": "Se déconnecter",
210
+ "account.hello": "Bonjour {name}",
211
+ "account.signedInAs": "Connecté en tant que :",
212
+ "account.completed": "Complété",
213
+ "account.saved": "Enregistrées",
214
+ "account.recentOrders": "Commandes récentes",
215
+ "account.datePlaced": "Date",
216
+ "account.orderNumber": "N° de commande",
217
+ "account.totalAmount": "Montant",
218
+ "account.noRecentOrders": "Aucune commande récente",
219
+ "account.shippingAddresses": "Adresses de livraison",
220
+ "account.addressesText": "Consultez et modifiez vos adresses de livraison. Elles seront proposées lors de la commande.",
221
+ "account.ordersText": "Consultez vos commandes passées et leur statut.",
222
+ "account.profileText": "Consultez et modifiez votre profil : nom, e-mail, téléphone et adresse de facturation.",
223
+ "account.questions": "Des questions ?",
224
+ "account.questionsText": "Notre équipe répond à vos questions sur vos commandes.",
225
+ "account.contactUs": "Nous contacter",
226
+ "account.welcomeBack": "Bon retour parmi nous",
227
+ "account.signInText": "Connectez-vous pour retrouver vos commandes et adresses.",
228
+ "account.signIn": "Se connecter",
229
+ "account.notMember": "Pas encore de compte ?",
230
+ "account.joinUs": "Créer un compte",
231
+ "account.becomeMember": "Créer votre compte",
232
+ "account.registerText": "Créez votre profil pour suivre vos commandes et enregistrer vos adresses.",
233
+ "account.agree": "En créant un compte, vous acceptez notre",
234
+ "account.privacy": "politique de confidentialité",
235
+ "account.and": "et nos",
236
+ "account.terms": "conditions d'utilisation",
237
+ "account.join": "Créer mon compte",
238
+ "account.alreadyMember": "Déjà inscrit ?",
239
+ "account.noBilling": "Aucune adresse de facturation",
240
+ "account.passwordHidden": "Le mot de passe n'est pas affiché pour des raisons de sécurité",
241
+ "account.orderTransfers": "Transfert de commande",
242
+ "account.cantFind": "Vous ne trouvez pas une commande ?",
243
+ "account.connectOrder": "Rattachez-la à votre compte.",
244
+ "account.requestTransfer": "Demander le transfert",
245
+ "account.nothingToSee": "Rien à afficher",
246
+ "account.noOrdersYet": "Vous n'avez pas encore de commande {emoji}",
247
+ "store.sortBy": "Trier par",
248
+ "store.latest": "Nouveautés",
249
+ "store.priceAsc": "Prix croissant",
250
+ "store.priceDesc": "Prix décroissant",
251
+ "account.updated": "Modification enregistrée",
252
+ "account.error": "Une erreur est survenue, réessayez",
253
+ "track.intro": "Saisissez le numéro de commande et l'e-mail utilisé lors de la commande. Vous les trouverez dans l'e-mail de confirmation.",
254
+ "track.number": "Numéro de commande",
255
+ "track.email": "E-mail",
256
+ "track.submit": "Suivre ma commande",
257
+ "track.searching": "Recherche…",
258
+ "track.order": "Commande n° {number}",
259
+ "track.step.placed": "Commande passée",
260
+ "track.step.shipped": "Expédiée",
261
+ "track.step.delivered": "Livrée",
262
+ "track.step.canceled": "Cette commande a été annulée.",
263
+ "track.tracking": "Numéro de suivi",
264
+ "track.follow": "Suivre le colis",
265
+ "track.error.notFound": "Aucune commande ne correspond à ce numéro et à cet e-mail.",
266
+ "track.error.tooMany": "Trop de tentatives. Réessayez dans quelques minutes.",
267
+ "track.error.invalid": "Saisissez un numéro de commande et un e-mail valides.",
268
+ "track.account": "Vous avez un compte ?"
269
+ }
@@ -0,0 +1,7 @@
1
+ /// <reference types="next" />
2
+ /// <reference types="next/image-types/global" />
3
+ import "./.next/types/routes.d.ts";
4
+ import "./.next/types/root-params.d.ts";
5
+
6
+ // NOTE: This file should not be edited
7
+ // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
@@ -0,0 +1,19 @@
1
+ const excludedPaths = ["/checkout", "/account/*"]
2
+
3
+ module.exports = {
4
+ siteUrl: process.env.NEXT_PUBLIC_VERCEL_URL,
5
+ generateRobotsTxt: true,
6
+ exclude: excludedPaths + ["/[sitemap]"],
7
+ robotsTxtOptions: {
8
+ policies: [
9
+ {
10
+ userAgent: "*",
11
+ allow: "/",
12
+ },
13
+ {
14
+ userAgent: "*",
15
+ disallow: excludedPaths,
16
+ },
17
+ ],
18
+ },
19
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Une seule image pour toutes les boutiques du projet : rien de propre à une
3
+ * boutique n'est lu ici (tout est lu à l'exécution depuis BOUTIQUE + config/).
4
+ * Les en-têtes de sécurité (CSP avec nonce…) sont posés par src/proxy.ts,
5
+ * car ils dépendent d'URL connues seulement à l'exécution.
6
+ *
7
+ * @type {import('next').NextConfig}
8
+ */
9
+ const nextConfig = {
10
+ output: "standalone",
11
+ reactStrictMode: true,
12
+ poweredByHeader: false,
13
+ logging: {
14
+ fetches: {
15
+ fullUrl: process.env.NODE_ENV === "development",
16
+ },
17
+ },
18
+ images: {
19
+ // Les images produits viennent du stockage du projet (MinIO), dont l'URL
20
+ // n'est connue qu'à l'exécution : pas d'optimisation Next (remotePatterns figés au build).
21
+ unoptimized: true,
22
+ },
23
+ // Fichiers lus à l'exécution avec fs : à embarquer dans la sortie standalone.
24
+ outputFileTracingIncludes: {
25
+ "/**": ["./themes/**/*", "./locales/**/*"],
26
+ },
27
+ }
28
+
29
+ module.exports = nextConfig