Star History
Next.js Ecommerce site with WooCommerce backend
https://next-woocommerce.dfweb.no
Live URL:Table Of Contents (TOC)
Installation
- Install and activate the following required plugins, in your WordPress plugin directory:
- woocommerce Ecommerce for WordPress.
- wp-graphql Exposes GraphQL for WordPress.
- wp-graphql-woocommerce Adds WooCommerce functionality to a WPGraphQL schema.
- wp-algolia-woo-indexer WordPress plugin coded by me. Sends WooCommerce products to Algolia. Required for search to work.
Optional plugin:
- headless-wordpress Disables the frontend so only the backend is accessible. (optional)
The current release has been tested and is confirmed working with the following versions:
- WordPress version 6.1.1
- WooCommerce version 7.4.0
- WP GraphQL version 1.13.8
- WooGraphQL version 0.12.0
- WPGraphQL CORS version 2.1
-
For debugging and testing, install either:
https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/ (Firefox)
https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm (Chrome)
-
Make sure WooCommerce has some products already
-
Clone or fork the repo and modify
.env.example
and rename it to.env
Then set the environment variables accordingly in Vercel or your preferred hosting solution.
-
Modify the values according to your setup
-
Start the server with
npm run dev
-
Enable COD (Cash On Demand) payment method in WooCommerce
-
Add a product to the cart
-
Proceed to checkout (GΓ₯ til kasse)
-
Fill in your details and place the order
Features
- Next.js version 13.4.7
- React 18
- Typescript
- Tests with Playwright
- Connect to Woocommerce GraphQL API and list name, price and display image for products
- Support for simple products and variable products
- Cart handling and checkout with WooCommerce (Cash On Delivery only for now)
- Algolia search (requires algolia-woo-indexer)
- Meets WCAG accessibility standards where possible
- Placeholder for products without images
- Apollo Client with GraphQL
- React Hook Form
- Native HTML5 form validation
- Animations with Framer motion, Styled components and Animate.css
- Loading spinner created with Styled Components
- Shows page load progress with Nprogress during navigation
- Fully responsive design
- Category and product listings
- Show stock status
- Pretty URLs with builtin Nextjs functionality
- Tailwind 3 for styling
- JSDoc comments
Troubleshooting
I am getting a cart undefined error or other GraphQL errors
Check that you are using the 0.12.0 version of the wp-graphql-woocommerce plugin
The products page isn't loading
Check the attributes of the products. Right now the application requires Size and Color.
Issues
Overall the application is working as intended, but it has not been tested extensively in a production environment. More testing and debugging is required before deploying it in a production environment.
With that said, keep the following in mind:
- Currently only simple products and variable products work without any issues. Other product types are not known to work.
- Only Cash On Delivery (COD) is currently supported. More payment methods may be added later.
TODO
- Add total to cart/checkout page
- Copy billing address to shipping address
- Add order dashboard and require login
- Hide products not in stock
- Add better SEO
- Re-add Next/image when it is working better