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.
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.
We're making some updates to Next.js Commerce. Everything prior to this commit marks what we're calling [`v1`](https://github.com/vercel/commerce/releases/tag/v1) as a point in time to be able to reference and still use going into the future. The current architecture of Commerce is a multi-vendor, interoperable solution, including:
- [Shopify](https://shopify.vercel.store/)
- [Swell](https://swell.vercel.store/)
- [BigCommerce](https://bigcommerce.vercel.store/)
- [Vendure](https://vendure.vercel.store/)
- [Saleor](https://saleor.vercel.store/)
- [Ordercloud](https://ordercloud.vercel.store/)
- [Spree](https://spree.vercel.store/)
- [Kibo Commerce](https://kibocommerce.vercel.store/)
- [Commerce.js](https://commercejs.vercel.store/)
- [SalesForce Cloud Commerce](https://salesforce-cloud-commerce.vercel.store/)
All features can be toggled on or off, and it's easy to change between commerce providers. To support this, we needed to create a ["commerce metaframework"](d1d9e8c434/packages/commerce/new-provider.md) where providers could confirm to an API spec to add support for Next.js Commerce. While this worked and was successful for `v1`, we have different design goals and ambitions for `v2`.
**What You Need To Know**
- `v1` will not be updated moving forward. If you need to reference `v1`, you will still be able to clone and deploy the version tagged at this release.
- `v2` will be shifting to be a single provider vs. provider agnostic. Other providers are welcome to fork this repository and swap out the underlying `lib/` implementation that connects to the selected commerce provider (Shopify). This architecture was chosen to reduce the surface area of the codebase, remove the intermediate metaframework layer for provider-interoperability, and enable usage with the latest Next.js and React features.
- We will be sharing more about `v2` in the future as we continue to iterate before the marked release.
* Moved everything
* Figuring out how to make imports work
* Updated exports
* Added missing exports
* Added @vercel/commerce-local to `site`
* Updated commerce config
* Updated exports and commerce config
* Updated commerce hoc
* Fixed exports in local
* Added publish config
* Updated imports in site
* It's actually working
* Don't use debugger in dev for better speeds
* Improved DX when editing packages
* Set up eslint with husky
* Updated prettier config
* Added prettier setup to every package
* Moved bigcommerce
* Moved Bigcommerce to src and package updates
* Updated setup of bigcommerce
* Moved definitions script
* Moved commercejs
* Move to src
* Fixed types in commercejs
* Moved kibocommerce
* Moved kibocommerce to src
* Added package/tsconfig to kibocommerce
* Fixed imports and other things
* Moved ordercloud
* Moved ordercloud to src
* Fixed imports
* Added missing prettier files
* Moved Saleor
* Moved Saleor to src
* Fixed imports
* Replaced all imports to @commerce
* Added prettierignore/rc to all providers
* Moved shopify to src
* Build shopify in packages
* Moved Spree
* Moved spree to src
* Updated spree
* Moved swell
* Moved swell to src
* Fixed type imports in swell
* Moved Vendure to packages
* Moved vendure to src
* Fixed imports in vendure
* Added codegen to saleor
* Updated codegen setup for shopify
* Added codegen to vendure
* Added codegen to kibocommerce
* Added all packages to site's deps
* Updated codegen setup in bigcommerce
* Minor fixes
* Updated providers' names in site
* Updated packages based on Bel's changes
* Updated turbo to latest
* Fixed ts complains
* Set npm engine in root
* New lockfile install
* remove engines
* Regen lockfile
* Switched from npm to yarn
* Updated typesVersions in all packages
* Moved dep
* Updated SWR to the just released 1.2.0
* Removed "isolatedModules" from packages
* Updated list of providers and default
* Updated swell declaration
* Removed next import from kibocommerce
* Added COMMERCE_PROVIDER log
* Added another log
* Updated turbo config
* Updated docs
* Removed test logs
Co-authored-by: Jared Palmer <jared@jaredpalmer.com>
* Custom Checkout Progress
* Updates to Checkout
* Custom Checkout Progress
* Adding tabs
* Adding Collapse
* Adding Collapse
* Improving Sidebar Scroll
* Modif footer
* Changes
* More design updates
* sidebar cart
* More design updates
* More design updates
* More design updates
* More design updates
* Types
* Types
* Design Updates
* More changes
* More changes
* More changes
* Changes
* Changes
* Changes
* New tailwind required changes
* Sidebar Styling issues with Mobile
* Latest changes - Normalizing cart
* Styling Fixes
* New changes
* Changes
* latest
* Refactor and Renaming some UI Props
* Adding Quantity Component
* Adding Rating Component
* Rating Component
* More updates
* User Select disabled, plus hidding horizontal scroll bars
* Changes
* Adding ProductOptions Component and more helpers
* Styling updates
* Styling updates
* Fix for slim tags
* Missmatch with RightArrow
* Footer updates and some styles
* Latest Updates
* Latest Updates
* Latest Updates
* Removing Portal, since it's not needed. We might add it later I'd rather not to.
* Removing Portal, since it's not needed. We might add it later I'd rather not to.
* Sam backdrop filter
* General UI Improvements
* General UI Improvements
* Search now with Geist Colors
* Now with Geist Colors
* Changes
* Scroll for Mobile on IOs devises
* LoadingDots Working (:
* Changes
* More Changes
* Perf changes
* More perf changes
* Fade to the Nametags in the ProductCard
* changes
* Search issue ui
* Search issue ui
* Make sure to only refresh navbar and modals when required
* Index revalidate
* Fixed image issue
* hide album scroll on windows
* Fix scrollbar
* Changing
* Adding 404 with Layout
* Removing Toast
* Adding Assets
* Adding Assets
* Progress with LocalProvider
* New productTag
* Only images for the drop
* changes
* Empty SWRhooks
* Adding Local Provider
* Working local
* Working view of a LocalProvider
* More updates
* Changes
* Removed react-ticker
* default to local if no env available
* default to local if no env available
* add missing `@` to css import
* rewrite search rewrites to multiple pages
* allow requests in getStaticProps to execute in parallel
* make type import explicit
* add a tsconfig.js file
* use local provider in tsconfig.js
* avoid a circular dependency
* Saleor was not in the providers list
* avoid circular dependency in bigcommerce
* Adding more to the Local Provider (#366)
* Adding more data
* Adding more data
* optimize assets (#370)
* Optimize assets (#372)
* optimize assets
* remove assets
* remove assets
* cart enabled
* Adding saleor
* Changes with Webpack
* Changes
Co-authored-by: Luis Alvarez <luis@vercel.com>
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
Co-authored-by: Shu Ding <g@shud.in>
* changes
* Progress
* Normalized Products output
* Progress
* Restored Index Agnostic
* Progress
* Reordering
* Moved normalizer to BC function
* Removed Futures
* More Types
* More Types
* More Types
* Fix useCallback
* Progress, Changes types, readme and restoring functionality
* Changes
* TS Issues
* Changes
* Normalizer
* Normalizing more operations
* Normalizing more operations
* changes
* Merge Issues
* Cleanup
* change
* changes
* index.ts broke my tree shaking
* slug
* Normalized Options and Swatches
* Restored Add to cart
* Correct Variant Added to Cart
* Normalizing Cart Responses
* Changes
* changes breaking
* Adding immutable normalizer for Product
* Cart Normalized
* changes
* Progress
* More updates
* Removed some comments
* Add loading state for data hooks
* Bug fix
* Changed the way isEmpty works
* Improve navbar performance
* Added useResponse hook
* added useResponse to useWhishlist
* Added husky and lint-staged
* Ran prettier fix
* Added more cart types
* Moved types.d.ts to the commerce folder
* Minor changes
* Moved normalizer to happen after fetch
* updated useCart types
* Updated normalizer for useData
* Added new normalizer for the cart to the UI
* More corrections for useCart
* Updated cart update hooks
* Removed import
* Progress
* Switch away from global types
* Making multiple changes
* Improved types for operations
* Moved and updated cart types
* Updated the useAddItem and useRemoveItem hooks
* Minor life improvement
* Minor change
* Implement Shopify Provider
* Update README.md
* Update README.md
* normalizations & missing files
* Update index.ts
* fixes
* Update normalize.ts
* fix: cart error on first load
* shopify checkout redirect & api handler
* Update get-checkout-id.ts
* userAvatar
* Fix: color option
* Update normalize.ts
* changes
* Update next.config.js
* start customer auth & signup
* Update config.ts
* Login, Sign Up, Log Out, and checkout & customer association
* Automatic login after sign-up
* Update handle-login.ts
* MOving stuff around and adding temporal new files
* changes
* Replace use-cart with the new hook
* Removed old hook
* Improved HookHandler type
* Moved types
* Simplified useData types
* Updated Fetcher type
* Moved SwrOptions type
* Removed duplicated fetcher
* Moved provider to its own file
* Added proper type for fetch input
* Revert "Merge branch 'agnostic' of https://github.com/vercel/commerce into agnostic"
This reverts commit 23c8ed7c2d48d30e74ad94216f9910650fadf30c, reversing
changes made to bf50965a39ef0b1b956461ebe62070809fbe1d63.
* change readme
* Revert "Merge branch 'master' of https://github.com/vercel/commerce into agnostic"
This reverts commit bf50965a39ef0b1b956461ebe62070809fbe1d63, reversing
changes made to 0dad4ddedbf0bff2d0b5800ca469fda0073889ea.
* Revert "Revert "Merge branch 'agnostic' of https://github.com/vercel/commerce into agnostic""
This reverts commit c9a43f1bce0572d0eff41f3af893be8bdb00bedd.
* align with upstream changes
* Updated how the hook input is handled
* Add more options to the hook handler
* Final touches to the hook handler type
* Moved useWishlist to use new handler
* Move useCustomer to the new hook
* Added a default fetcher
* query all products for vendors & paths, improve search
* Update use-search.tsx
* fix cart after upstream changes
* Shopify Provider (#186)
* Start of Shopify provider
* add missing comment to documentation
* add missing env vars to documentation
* update reference to types file
* Moved useSearch to the new hook
* Removed old use-data lib
* Removed generics for result and body
* Removed normalizr
* Wishlist
* New changes and initial Features API
* Fixed some types
* Fixed more types
* fixes after upstream changes
* Fixed product types
* Fixed another product type
* Updated type
* Fixed remaining issues with types
* Added a MutationHandler
* Moved the handlers to each hook
* Moved the fetcher to its own file
* Moved handler to each hook
* Added initial version of useAddItem
* Added better mutation types, and moved some hooks
* Removed use-cart-actions
* Added initial version of useAddItem
* Updated types
* Update use-add-item.tsx
* changes
* Changes
* Reordering and changes
* Adding Features APO
* Adding wishlist api
* Implementing FeaturesAPI with Wishlist
* Removing bug with touchstart
* Adding tyni typing
* moved use-remove-item
* Removed MutationHandler type
* Moved more hooks and updated types to make them smaller
* Moved data hooks to new format
* Removed no longer required types
* Removed useResponse helper
* Updated useData type
* Moved wishlist use-add-item
* Moved wishlist use-remove-item to provider
* Moved use-login and use-logout
* Update use-signup
* Removed use-action helper
* Moved auth & cart hooks + several fixes
* Updated cart item, fixed deprecations
* Update next.config.js
* Updates to wishlist feature
* Moved the features to be environment variable only
* More changes for wishlist config
* Disable wishlist
* Removed useWishlistActions
* Updated readme
* updates
* typos
* Updated the way the provider config is set
* Removed features.ts
* Removed bootstrap.js
* Aligned with upstream changes
* Updates
* shopify: changes
* shopify: changes
* Update next.config.js
* Shopify Provider Updates (#209)
* Implement Shopify Provider
* Update README.md
* Update README.md
* normalizations & missing files
* Update index.ts
* fixes
* Update normalize.ts
* fix: cart error on first load
* shopify checkout redirect & api handler
* Update get-checkout-id.ts
* Fix: color option
* Update normalize.ts
* changes
* Update next.config.js
* start customer auth & signup
* Update config.ts
* Login, Sign Up, Log Out, and checkout & customer association
* Automatic login after sign-up
* Update handle-login.ts
* changes
* Revert "Merge branch 'agnostic' of https://github.com/vercel/commerce into agnostic"
This reverts commit 23c8ed7c2d48d30e74ad94216f9910650fadf30c, reversing
changes made to bf50965a39ef0b1b956461ebe62070809fbe1d63.
* change readme
* Revert "Merge branch 'master' of https://github.com/vercel/commerce into agnostic"
This reverts commit bf50965a39ef0b1b956461ebe62070809fbe1d63, reversing
changes made to 0dad4ddedbf0bff2d0b5800ca469fda0073889ea.
* Revert "Revert "Merge branch 'agnostic' of https://github.com/vercel/commerce into agnostic""
This reverts commit c9a43f1bce0572d0eff41f3af893be8bdb00bedd.
* align with upstream changes
* query all products for vendors & paths, improve search
* Update use-search.tsx
* fix cart after upstream changes
* fixes after upstream changes
* Moved handler to each hook
* Added initial version of useAddItem
* Updated types
* Update use-add-item.tsx
* Moved auth & cart hooks + several fixes
* Updated cart item, fixed deprecations
* Update next.config.js
* Aligned with upstream changes
* Updates
* Update next.config.js
* Updated the commerce config structure
* Removed @framework imports within framework providers
* Fixed types
* changes
* Adding extra config
* Adding shopify commit
* Adding env templates to the providers
* Ignore some types
* Adding link for Cart
* Adding customCheckout
* multiple changes to fix the wishlist
* Shopify Provier Updates (#212)
* changes
* Adding shopify commit
* Changed to query page by id
* Fixed page query, Changed use-search GraphQl query
* Update use-search.tsx
* remove unused util
* Changed cookie expiration
* Update tsconfig.json
Co-authored-by: okbel <curciobel@gmail.com>
* Bump and adding dependency
* Adding color checks
* Now colors work with lighter colors
* Stable commerce.config.json
* Updated main readme
* Readme changes
* Default to bigcommerce
Co-authored-by: bc <bc@bcs-MacBook-Pro.fibertel.com.ar>
Co-authored-by: Luis Alvarez <luis@vercel.com>
Co-authored-by: cond0r <pinte_catalin@yahoo.com>
Co-authored-by: Peter Mekhaeil <4616064+petermekhaeil@users.noreply.github.com>
* Fix typo (#135)
The defaultPageProps object had a typo in the name
Co-authored-by: B <curciobelen@gmail.com>
* changes
* changes
Co-authored-by: JD <jonathan.dawber@icloud.com>
* Focus trap and Modal Functionality
* Changes
* Changes
* Update components/ui/Modal/Modal.tsx
Co-authored-by: Luis Alvarez D. <luis@vercel.com>
* changes
Co-authored-by: Luis Alvarez D. <luis@vercel.com>