/nuxtjs-woocommerce

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

Primary LanguageVueGNU Affero General Public License v3.0AGPL-3.0

Playwright Tests Codacy Badge CodeFactor Quality Gate Status

Nuxt 3 Ecommerce site with WooCommerce backend

Project screenshot

Table Of Contents (TOC)

Features

  • Nuxt 3
  • Vue 3 and Composition API with <script setup> syntax
  • Tailwind CSS
  • Nuxt Apollo
  • Pinia with pinia-plugin-persistedstate for cart and state management
  • Responsive design
  • Swiper integration for Hero section
  • Support for simple and variable products
  • Stock quantity on simple and variable products
  • CSS animations and transitions
  • Form handling and validation with Formkit, Vee Validate and Yup
  • Checkout process
  • Animated mobile menu
  • Basic Playwright test(s) 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.1.1
  • 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.