create-cartbase 0.1.14 → 0.1.15

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.
@@ -9,7 +9,7 @@
9
9
  "typecheck": "tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@cartbase/storefront": "^0.15.0",
12
+ "@cartbase/storefront": "^0.16.0",
13
13
  "next": "16.2.4",
14
14
  "react": "19.2.4",
15
15
  "react-dom": "19.2.4"
@@ -13,10 +13,12 @@ import { getServerClient } from "@/lib/server-client"
13
13
  */
14
14
  export default async function ProductPage({
15
15
  params,
16
+ searchParams,
16
17
  }: {
17
18
  params: Promise<{ handle: string }>
19
+ searchParams: Promise<{ variant?: string }>
18
20
  }) {
19
- const { handle } = await params
21
+ const [{ handle }, { variant }] = await Promise.all([params, searchParams])
20
22
  const client = await getServerClient()
21
23
 
22
24
  let product
@@ -34,6 +36,12 @@ export default async function ProductPage({
34
36
  product={product}
35
37
  pricingContext={PRICING_CONTEXT}
36
38
  addToCart={addToCartAction}
39
+ // The product page contract: the address names the variant
40
+ // (`?variant=<digits>`, Shopify's parameter), and the page hands it to
41
+ // the template so the FIRST paint is that variant's price, code and
42
+ // stock. Switching a variant rewrites the address in the browser
43
+ // without asking the server.
44
+ initialVariantId={variant}
37
45
  // NO `promises` here, deliberately. Until 0.13.0 the library carried
38
46
  // delivery, exchange and return promises as label DEFAULTS, so every
39
47
  // store scaffolded from this file told shoppers "your package will