Skip to content

⚡️ Nuxt 3 and Vue 3 headless eCommerce site with WooCommerce backend and Algolia search

License

Notifications You must be signed in to change notification settings

w3bdesign/nuxtjs-woocommerce

This branch is up to date with master.

Folders and files

NameName
Last commit message
Last commit date
Jan 4, 2024
Feb 16, 2023
Jun 9, 2023
Sep 14, 2024
Jul 3, 2023
Sep 12, 2024
Sep 14, 2024
Jul 9, 2023
Sep 14, 2024
Jan 15, 2025
Jul 10, 2023
Nov 14, 2023
Jan 28, 2023
Jul 7, 2023
Jan 28, 2023
Sep 15, 2023
Sep 14, 2024
Sep 14, 2024
Jan 28, 2023
Sep 12, 2024
Apr 22, 2025
Mar 8, 2024
Apr 22, 2025
Jan 15, 2025
Jun 8, 2023
Jul 10, 2023

Repository files navigation

Playwright Tests Codacy Badge CodeFactor Quality Gate Status

Nuxt 3 Ecommerce site with WooCommerce backend

Project screenshot

Table Of Contents (TOC)

Features

  • Nuxt 3 for server-side rendering and optimal performance
  • Vue 3 and Composition API with <script setup> syntax
  • Tailwind CSS for responsive and customizable design
  • Nuxt Apollo for efficient GraphQL integration
  • Pinia with pinia-plugin-persistedstate for robust state management
  • Support for simple and variable WooCommerce products
  • Stock quantity management for all product types
  • CSS animations and transitions for enhanced user experience
  • Form handling and validation with Formkit, Vee Validate, and Yup
  • Streamlined checkout process
  • Animated mobile menu for improved mobile usability
  • Swiper integration for dynamic Hero section
  • Basic Playwright tests integrated with Github Actions

Installation

  1. 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. Currently only confirmed to be working with version 0.62 of this plugin.
  • 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.
  • wp-graphql-cors Ensures that CORS works correctly. Remember to add the domain to the store under Extend "Access-Control-Allow-Origin” header

The current release has been tested and is confirmed working with the following plugin versions:

  • WordPress version 6.6.2
  • WooCommerce version 7.4.0
  • WP GraphQL version 1.13.8
  • WooGraphQL version 0.12.0
  • WPGraphQL CORS version 2.1
  1. Make sure WooCommerce has some products already or import some sample products

    The WooCommerce sample products CSV file is available at wp-content/plugins/woocommerce/sample-data/sample_products.csv or Sample products

    Import the products at WP Dashboard > Tools > Import > WooCommerce products(CSV)

  2. Clone or fork the repo and modify .env with the URL to the GraphQL endpoint (or set environment variables in the configuration UI for your deployment solution)

  3. Start the server with npm run dev

  4. Enable COD (Cash On Demand) payment method in WooCommerce

  5. Add a product to the cart

  6. Proceed to checkout

  7. Fill in your details and place the order

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

I encounter a bug with add to cart

Try logging off wp-admin and try again.

The products page isn't loading

Check the attributes of the products. Right now the application requires Size and Color.