1480 Commits

Author SHA1 Message Date
google-labs-jules[bot]
1388b81d0e Fix: Correct 'use cache' directive placement in Shopify lib
This commit resolves the Vercel build error:
"Error: The 'use cache' directive must be at the top of the function body."

The following functions in `lib/shopify/index.ts` were updated to ensure
that if they use Next.js caching, the `'use cache';` directive is the
very first statement in the function body, preceding any conditional
logic for dummy data mode:
- `getCollection`
- `getCollectionProducts`
- `getCollections`
- `getProduct`
- `getProducts`
- `getProductRecommendations`

Additionally, dummy data mode handling was added to
`getProductRecommendations` to align with other data fetching functions.

Functions fully converted to dummy data providers (like `getMenu` and
`getCart` when in dummy mode) were confirmed to not use these directives,
which is correct.
2025-05-23 07:16:15 +00:00
google-labs-jules[bot]
01847c7e7b Here's the commit message I've drafted:
Feat: Implement dummy data mode controlled by environment variable

This commit introduces a dummy data mode for the storefront, controlled
by the `NEXT_PUBLIC_USE_DUMMY_DATA` environment variable. When this
variable is set to `true`, the application will use hardcoded dummy
data instead of making live calls to the Shopify API.

Key changes:
- Added `NEXT_PUBLIC_USE_DUMMY_DATA=true` to `.env.example`.
- Restored `lib/shopify/index.ts#shopifyFetch` to its original
  implementation that can make live API calls.
- Modified all data fetching functions in `lib/shopify/index.ts`
  (e.g., `getMenu`, `getCart`, `getProduct`, `getProducts`,
  `getCollection`, `getCollectionProducts`, `getPage`, `getPages`)
  to check `process.env.NEXT_PUBLIC_USE_DUMMY_DATA`. If true, they
  now return appropriate hardcoded dummy data. Otherwise, they
  proceed with the original Shopify API call logic.
- Modified all cart mutation functions in `lib/shopify/index.ts`
  (`createCart`, `addToCart`, `removeFromCart`, `updateCart`) to
  also respect this environment variable. In dummy mode, they log the
  action and return a dummy cart state, bypassing actual API calls
  and cookie manipulations. A shared dummy cart constant was
  introduced for consistency.

This allows the application to be run and tested in a standalone
configuration without requiring a live Shopify backend, resolving
previous build errors related to API call failures in such environments.
2025-05-23 06:05:12 +00:00
google-labs-jules[bot]
9016b4df92 Fix: Correct dummy CartProduct structure in getCart
Resolves a TypeScript type error in `lib/shopify/index.ts` where
the dummy data for `getCart`'s `lines.merchandise.product` did not
match the `CartProduct` type.

Specifically, properties like `availableForSale`, `description`,
`descriptionHtml`, and `images` (array) were removed from the
nested `product` objects within the dummy cart lines. The
`featuredImage` property was ensured to be a single object
conforming to the `Image` type.

This change aligns the dummy cart data with the type definitions in
`lib/shopify/types.ts`, fixing the build error:
"Object literal may only specify known properties, and 'X' does not
exist in type 'CartProduct'."
2025-05-23 05:47:44 +00:00
google-labs-jules[bot]
cde034d799 Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-05-23 05:40:53 +00:00
google-labs-jules[bot]
0adf19ed8f Refactor: Convert layout components to use dummy data for standalone mode
This commit updates the application to operate in a standalone mode by
modifying essential data fetching functions used by layout components
to return hardcoded dummy data, removing dependencies on a live
Shopify backend for initial page rendering and layout.

Key changes:
- `lib/shopify/index.ts`:
  - `getMenu()`: Updated to return a hardcoded array of `Menu[]` items,
    bypassing any calls to `shopifyFetch`. Caching directives were
    removed as they are not applicable to static dummy data.
  - `getCart()`: Updated to return a hardcoded `Cart` object (or
    `undefined`), bypassing `shopifyFetch` and cookie-based cart ID
    retrieval.
  - `shopifyFetch()`: The core `fetch` call within this function has
    been commented out and replaced with a `throw new Error(...)`.
    This prevents any accidental live API calls and makes it clear
    that such calls are disabled in this standalone configuration.
    A `console.warn` is also added if the function is ever invoked.

These changes ensure that the main layout, including the navbar and
cart components, can render without external Shopify dependencies,
allowing the storefront to function with dummy data as per your current
project requirements. This should resolve build errors related to
fetching non-existent Shopify data (like menus) in an environment
not connected to a live Shopify store.
2025-05-22 15:29:30 +00:00
google-labs-jules[bot]
c8e2bb3cfb Fix: Prevent build failure from missing menu in _not-found
Resolves a prerendering error for the `/_not-found` page caused by
the Navbar's attempt to fetch a menu that might not exist in the
build environment (e.g., 'next-js-frontend-header-menu').

The `getMenu` function in `lib/shopify/index.ts` has been updated
to catch errors thrown by `shopifyFetch` (such as when the Shopify API
returns an error for a non-existent menu handle). If an error occurs
during menu fetching, it is now logged to the console, and `getMenu`
returns an empty array `[]`.

This allows pages using the Navbar (including `/_not-found`) to build
successfully even if the primary header menu is not found, instead of
failing the entire build process.
2025-05-22 14:33:19 +00:00
google-labs-jules[bot]
6498856d49 Fix: Ensure getSearchResults in SearchPage returns non-undefined array
Resolves a TypeScript error in `app/search/page.tsx`:
"Type error: Argument of type 'any[] | undefined' is not assignable to
parameter of type 'SetStateAction<any[]>'."

The `getSearchResults` function has been updated to:
1. Explicitly define its return type as `Promise<any[]>`.
2. Ensure that all code paths return an array, defaulting to an empty
   array `[]` if no specific or generic results are found, or if the
   query is empty/whitespace.

This guarantees that `setResults` always receives an array, satisfying
the type constraints of `useState<any[]>`.
2025-05-22 12:55:15 +00:00
google-labs-jules[bot]
b23fd423a5 Fix: Align all dynamic server pages with Next.js 15 Promise props
This commit applies the Next.js 15 PageProps convention (where `params`
and `searchParams` are Promises) to all relevant dynamic server route
page components. This resolves the build error:
"Type '...' does not satisfy the constraint 'PageProps'.
  Types of property 'params' are incompatible.
    Type '{...}' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag]"

The following pages were updated:
- `app/content/[slug]/page.tsx`
- `app/product/[handle]/page.tsx`
- `app/search/[collection]/page.tsx`

In each of these files, the props interface was updated to define
`params` and `searchParams` as Promises, and the component logic
was modified to `await params` to access their resolved values.

`app/search/page.tsx` was verified as a Client Component using
`useSearchParams()` and did not require these changes.
2025-05-22 12:40:20 +00:00
google-labs-jules[bot]
17e5ae33a8 Fix: Update PageProps for app/content/[slug]/page.tsx
This commit resolves a persistent TypeScript build error:
"Type 'ContentPageProps' does not satisfy the constraint 'PageProps'"
in `app/content/[slug]/page.tsx`.

The `ContentPageProps` interface has been updated to include the
`searchParams` property, aligning it with the expected structure
for Next.js page components in the App Router. This ensures
compatibility with Next.js's internal type definitions for async
server components.
2025-05-22 12:39:55 +00:00
google-labs-jules[bot]
fbea7e6d1f Fix: Align PageProps with Next.js 15 Promise-based params
This commit resolves the persistent TypeScript build error:
"Type '...' does not satisfy the constraint 'PageProps'.
  Types of property 'params' are incompatible.
    Type '{ slug: string; }' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag]"
which occurred in `app/content/[slug]/page.tsx`.

The Next.js 15 documentation states that `params` and `searchParams`
props for Page components are now Promises. The `ContentPageProps`
interface and the `ContentPage` component have been updated accordingly:
- `params` is now typed as `Promise<{ slug: string }>`.
- `searchParams` is now typed as `Promise<{ [key: string]: string | string[] | undefined }>`.
- The `params` object is now `await`ed within the async component
  to retrieve its value before being used.

This change ensures the component's props definition correctly aligns
with the requirements for async server components with dynamic routes
in Next.js 15.
2025-05-22 12:12:44 +00:00
google-labs-jules[bot]
e20efe40ba Fix: Update PageProps for app/content/[slug]/page.tsx
This commit resolves a persistent TypeScript build error:
"Type 'ContentPageProps' does not satisfy the constraint 'PageProps'"
in `app/content/[slug]/page.tsx`.

The `ContentPageProps` interface has been updated to include the
`searchParams` property, aligning it with the expected structure
for Next.js page components in the App Router. This ensures
compatibility with Next.js's internal type definitions for async
server components.
2025-05-22 09:52:24 +00:00
google-labs-jules[bot]
531f7bb420 Add frontend component skeletons and fix build error
This commit introduces the initial skeleton structure for several frontend pages as per the e-commerce starter kit plan:
- Home Page: Modified to support CMS-configurable sections (mocked).
- Content Pages: Added dynamic route for CMS-based content (mocked).
- Product Detail Page: Displays product information (mocked).
- Product List/Category Page: Displays products with mock filters/search.
- Search Page: Implements mock Relewise-powered search.
- Login Page: Basic login form structure.
- My Page: Sections for orders, quotes, downloads, profile (mocked).
- Cart & Checkout Page: Cart management and checkout form structure (mocked).

Additionally, this commit includes:
- A fix for a TypeScript type error in `app/content/[slug]/page.tsx` related to `PageProps` by introducing an explicit `ContentPageProps` interface.
- Addition of basic navigation links in the main navbar to improve site traversability.
2025-05-22 09:29:11 +00:00
google-labs-jules[bot]
c85444b805 Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-05-22 09:24:04 +00:00
basstian-ai
f36e64c8e0
Create .graphqlrc.yml 2025-05-21 10:30:43 +02:00
basstian-ai
94fd71c35e
Update page.tsx 2025-05-20 17:29:24 +02:00
basstian-ai
b7241a3833
Create page.tsx 2025-05-20 17:27:02 +02:00
basstian-ai
41562e065e
Create not-found.tsx 2025-05-20 17:24:09 +02:00
basstian-ai
206b555194
Create next-js-frontend-footer-menu.json 2025-05-20 17:00:30 +02:00
basstian-ai
7bf068f354
Create next-js-frontend-header-menu.json 2025-05-20 16:59:49 +02:00
basstian-ai
b581fe6559
Update .env.production 2025-05-20 16:50:00 +02:00
basstian-ai
e7b29c0341
Update .env.production 2025-05-20 16:45:28 +02:00
basstian-ai
90ee06a808
Update .env.production 2025-05-20 16:24:09 +02:00
basstian-ai
52bd98a2e9
Update .env.production 2025-05-20 16:19:53 +02:00
basstian-ai
49bafd7372
Update .env.production 2025-05-20 14:50:16 +02:00
basstian-ai
cd709f29cd
Update .env.example 2025-05-20 14:48:24 +02:00
basstian-ai
c07c6db0ed
Update .env.production 2025-05-20 14:41:52 +02:00
basstian-ai
5b5b70608b
Create .env.production 2025-05-20 14:38:41 +02:00
basstian-ai
3cf71adcfd
Update next.config.ts 2025-05-20 14:34:07 +02:00
basstian-ai
90b590f8a4
Update next.config.ts 2025-05-20 09:49:09 +02:00
basstian-ai
9dfd0fb20f
Update next.config.ts 2025-05-20 09:43:30 +02:00
basstian-ai
d2500b0d48
Create redeploy.txt 2025-05-20 08:05:40 +02:00
Lee Robinson
fa1306916c Merge branch 'main' of github.com:vercel/commerce 2025-03-19 13:20:51 -05:00
Lee Robinson
ef2883a8d9 Update deps. 2025-03-19 13:20:40 -05:00
Netanel Gilad
28f9a645bd
Update Wix fork repository (#1439) 2025-02-24 12:30:29 -06:00
Lee Robinson
9f4fdbb600 Merge branch 'main' of github.com:vercel/commerce 2025-02-21 12:39:39 -06:00
Lee Robinson
63725d82d9 Update deps 2025-02-21 12:39:31 -06:00
John Stringer
6946bf713a
Fix production base url (#1429) 2025-02-09 22:08:56 -06:00
Lee Robinson
7f8f9ff1a3 use cache 2025-02-09 11:38:22 -06:00
polykoi
675942141b
Adds Prodigy Commerce as a commerce provider. (#1415) 2025-01-21 10:06:30 -06:00
Lee Robinson
88762ba1bc Update deps 2024-12-06 08:23:35 -06:00
Kristian Arvidsson
386392be02
feat: added geins as a commerce provider (#1414) 2024-11-28 07:55:03 -06:00
Jieren Chen
3a26bae429
Add Fourthwall as a commerce provider (#1394) 2024-11-21 13:46:31 -06:00
Dharmveer
cf413a51fc
Update gallery.tsx (#1403)
🔧💡 Fix: Enhance product gallery layout in product view page

- 🖼️ Implemented `flex-wrap` for the sub-gallery images.
- 🛠️ Ensured images wrap automatically when they exceed 5 or 6, preventing overflow and maintaining responsive design.
-  Confirmed that the layout remains unaffected for galleries with 3 or fewer images.

This improvement enhances user experience by making sure large image sets are displayed without affecting screen layout.
2024-11-21 13:45:24 -06:00
Newton Lomar
8d4cc9a9a7
fixing response status code for no secret or wrong secret (#1397) 2024-10-27 15:21:33 -05:00
Omkar Kulkarni
ce004c05fa
Update tailwind.config.ts (#1388) 2024-10-18 13:13:08 -05:00
조계진
b7e9e1c7e3
Refactor <Prose> component (#1352) 2024-10-15 22:28:58 -05:00
Matthew Petrie
cb99695b72
Correct default cart tax currency (#1260) 2024-10-15 22:28:35 -05:00
Igor Shevchenko
815bea2c1a
chore: update readme (#1381) 2024-10-15 22:24:13 -05:00
Lee Robinson
64ca2ac790 Update to 15 RC 2 2024-10-15 22:07:55 -05:00
Lee Robinson
694c5c17ba
Move to next/form (#1369) 2024-08-13 13:33:05 -05:00