• Stars
    star
    597
  • Rank 74,979 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⚡ A Gatsby Theme for WooCommerce E-commerce site Gatsby WooCommerce WordPress

🎨 Gatsby WooCommerce themes - Electra

Project Status: Active. Stars Forks Contributors Download counter Follow

  • A Gatsby theme for WooCommerce, using Decoupled Architecture
  • Front end in React
  • Backend in WordPress.

Demo Site

This theme uses gatsby-source-wordpress@v4 BETA

*** 👨‍💻 Please star my repo to support my work 🙏 ***

gatsby woocommerce theme electra hero image

🔥 Features

  1. Uses React with Gatsby ( Blazing Fast )
  2. PWA ( Works Offline )
  3. Image Optimization ( blur effect )
  4. GraphQL ( with wp-graphql on WordPress )
  5. Custom Widgets, Menus, Social elements.
  6. WooCommerce store
  7. Google Analytics feature
  8. Yoast SEO supported ( with og tags )
  9. Product Search with pagination ( even works offline )
  10. Product pagination
  11. Archive pages.
  12. Authentication with JWT
  13. My Account page ( with Login and Registration )
  14. Create an account on checkout.
  15. Social share.
  16. Product Carousel.
  17. Add to wishlist( even works offline )

👨‍💻 Maintainer

Name Github Username
Imran Sayed @imranhsayed

Home Page demo

Search, Archive, Pagination.

Single product page with carousel, social share, image zoom

Add to Cart, Cart page, Checkout.

My account: Register

My account: Login

🚀 Set Up

  • Fork/clone the repo
  • yarn install

Gatsby Setup ( when using this repo as your project)

  1. Server Side Enviromnent Variables. Create a file called .env taking example from .env-example and add the following into site directory :
  • WORDPRESS_SITE_URL=https://example.com
  • GATSBY_SITE_URL=https://example.com
  • GOOGLE_TAGMANAGER_ID=xxx
  • FB_APP_ID=xxx
  1. Client Side Environment Variables. Create two more files called .env.development .env.production and into 'site' directory and add your WordPress site url liks so.
GATSBY_WORDPRESS_SITE_URL=https://example.com

Env variables from these file will be consumed by Apollo client on client side.

WordPress Setup

  1. On your WordPress site, download, Upload and activate all the plugins from wordpress/plugins folder of this repo, into your WordPress Site.

a. Headless CMS

b. woocommerce

c. wp-graphql - tested on ( v1.0.0 )

d. wp-graphql-woocommerce

e. wp-gatsby

f. Yoast-SEO

g. wp-graphql-yoast-seo

h. wp-graphql-jwt-authentication

    • Set Header menu as HCMS Header Menu

    • Set Footer menu as HCMS Footer Menu
  1. You can also set text widgets in #HCMS Footer #1 and #HCMS Footer #2 under Appearance > Widgets in WordPress.

  2. Create a Home Page ( if there isn't one already )and make sure you have a home page and Location rule is set to Home page.

  3. If isn't already set your site title, description and logo from WordPress customizer.

  4. Setup WooCommerce:

  • Make sure WooCommerce Plugin is active in WordPress and the payment modes have been set from its settings.
  • You can also import default wooCommerce products that come with wooCommerce Plugin for development ( if you don't have any products in your WordPress install ) WP Dashboard > Tools > Import > WooCommerce products(CSV): The WooCommerce default products csv file is available at wp-content/plugins/woocommerce/sample-data/sample_products.csv
  1. For home page carousel please upload same size product category images of dimensions 1900x600

🚀 Development

  • Navigate into site’s directory.
yarn install      # Run this for the first time.
npm run dev      # During development.
npm run build    # When ready for production.

** For development ** Your site is now running at http://localhost:8000!

_Note: You'll also see a second link: http://localhost:8000/___graphql. This is a tool you can use to experiment with querying your data.

📕 Storybook:

For Storybook:

  • cd package/gatsby-wooocommerce-theme
  • npm run storybook

📦 Adding/Removing a new package to site folder

yarn workspace site add package-name yarn workspace site remove package-name

📦 Adding/Removing a new package to gatsby-wooocommerce-theme folder

yarn workspace gatsby-wooocommerce-theme add package-name yarn workspace gatsby-wooocommerce-theme remove package-name

🧐 What's inside?

A quick look at the top-level files and directories you'll see in a Gatsby project.

.
├── node_modules
├── demos
├── packages
├── src
├── .gitignore
├── .site
├── gatsby-browser.js
├── gatsby-config.js
├── gatsby-node.js
├── gatsby-ssr.js
├── package-lock.json
├── package.json
└── README.md
  1. /node_modules: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed.

  2. /src: This directory will contain all of the code related to what you will see on the front-end of your site (what you see in the browser) such as your site header or a page template. src is a convention for “source code”.

  3. .gitignore: This file tells git which files it should not track / not maintain a version history for.

  4. .prettierrc: This is a configuration file for Prettier. Prettier is a tool to help keep the formatting of your code consistent.

  5. gatsby-browser.js: This file is where Gatsby expects to find any usage of the Gatsby browser APIs (if any). These allow customization/extension of default Gatsby settings affecting the browser.

  6. gatsby-config.js: This is the main configuration file for a Gatsby site. This is where you can specify information about your site (metadata) like the site title and description, which Gatsby plugins you’d like to include, etc. (Check out the config docs for more detail).

  7. gatsby-node.js: This file is where Gatsby expects to find any usage of the Gatsby Node APIs (if any). These allow customization/extension of default Gatsby settings affecting pieces of the site build process.

  8. gatsby-ssr.js: This file is where Gatsby expects to find any usage of the Gatsby server-side rendering APIs (if any). These allow customization of default Gatsby settings affecting server-side rendering.

  9. LICENSE: Gatsby is licensed under the MIT license.

  10. package-lock.json (See package.json below, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. (You won’t change this file directly).

  11. package.json: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project.

  12. README.md: A text file containing useful reference information about your project.

Useful Links

  1. Setting workspaces with yarn for theme development
  2. Installing a gatsby theme and setting it up.

Deployment

With vercel

  • Signup on vercel.com

  • Click on Import Project and then add the configurations.

  • On vercel, make sure you add these evn vars from settings of the project:

From CLI:

  • npm i -g vercel

  • Now in the project root run vercel

  • Add the following configurations

  • build command: npm run build
  • output directory: site/public
  • development command: npm run dev
  • root directory: /

Using as theme ( for existing gatsby project )

https://www.npmjs.com/package/gatsby-woocommerce-theme Follow its readme on npm.js

Helpful Tools:

  1. Apollo Client Developer Tools Chrome Extension

More Repositories

1

woo-next

🚀 React WooCommerce theme, built with Next JS, Webpack, Babel, Node, Express, using GraphQL and Apollo Client
JavaScript
880
star
2

aquila

🎨 An Advanced WordPress theme
PHP
737
star
3

nextjs-headless-wordpress

🔥 Nextjs Headless WordPress
JavaScript
635
star
4

gatsby-wordpress-themes

🎨 Gatsby WordPress Theme
JavaScript
346
star
5

react-with-wordpress

🔥 Example of react application to access WordPress REST API
JavaScript
230
star
6

nextjs-woocommerce-restapi

A React WooCommerce Project Example With REST API
JavaScript
199
star
7

headless-cms

❤️ A WordPress plugin that adds features to use WordPress as a headless CMS with any front-end environment using REST API
PHP
180
star
8

google-maps-in-react

📌 Google Maps in React: Autocomplete Location Search | Draggable Marker | Marker Infobox
JavaScript
168
star
9

react-workshop

⚒️ 🚧 This is a workshop for learning how to build React Applications
162
star
10

file-uploads-aws-react-node

📂 A react node and express js project to upload files on amazon web services ( AWS )
JavaScript
98
star
11

advanced-woocommerce-theme

🛍️ Advanced WooCommerce Theme
PHP
73
star
12

react-pwa-workbox-example

react-pwa-workbox-example
JavaScript
69
star
13

react-wordpress-theme

🎨 A React theme for WordPress, using Decoupled Architecture. Front end in React. Backend in WordPress.
CSS
68
star
14

frontity-contact-form-7

🔥 Contact Form 7 extension for Frontity theme.
JavaScript
66
star
15

aquila-features

Advanced WordPress Plugin Development
JavaScript
64
star
16

next-js-app

🌐 Next JS Application Demo
JavaScript
52
star
17

frontity-twentynineteen

🎨 A Frontity Twentynineteen theme Project
CSS
51
star
18

laravel-charts

📊 Create a chart in Laravel using Chart.js and AJAX
PHP
37
star
19

tailwind-wordpress-plugin-example

An example WordPress plugin for using Tailwind css in Gutenberg editor with webpack and sass
JavaScript
37
star
20

woocommerce-custom-pages

✅ Custom template and Pages for Woocommerce that can be used to customize your Woocommerce Product, Categories, Cart, Checkout and Myaccount Pages
PHP
35
star
21

rest-api-endpoints

🌾 WordPress REST API endpoints
PHP
34
star
22

google-maps-javascript-api

🔎Create Google maps for your site with google maps javascript api, address field, marker and info window
JavaScript
29
star
23

nextjs-wordpress-theme

🎨 A Next.js WordPress theme that uses React in the front-end and WordPress in the backend - decoupled
JavaScript
28
star
24

wordpress-docker-example

A WordPress setup with Docker, Composer, mysql and phpmyadmin
23
star
25

headless-wp-starter

🌀 A starter demo for WordPress Headless CMS
JavaScript
22
star
26

electra

Block Based Theme - Full Site Editing Tutorial
HTML
22
star
27

gutenberg-workshop

⚒️ A Gutenberg Workshop 🅱️
PHP
22
star
28

custom-blocks

📦 Custom Gutenberg Blocks
PHP
21
star
29

graphql-react-app

📊 A demo app for using GraphQl with React and Spacex API
JavaScript
21
star
30

graphql-workshop

⚒ 🚧 A GraphQL workshop to learn GraphQL implementations
JavaScript
20
star
31

acf-block-example

📦 ACF Blocks Example plugin
PHP
19
star
32

react-node-boilerplate

A React Js and Node Js boilerplate for building a new project. It uses create-react-app
JavaScript
19
star
33

wordpress-contributors

👥 This plugin allows you to add more than one author for the post in the Add New and Edit Post section of WordPress dashboard.
PHP
18
star
34

mern-boilerplate

A boilerplate for MERN APP ( Mongodb, Express, React, Node ) with Login, Registration with Facebook, Google and Recaptcha. Pre setup of mongodb
JavaScript
17
star
35

react-woocommerce-theme

🏬 A React WooCommerce Store Theme, built with WooCommerce REST API, Webpack, Babel, Node and Express
JavaScript
16
star
36

pwa-concepts

👷 A demo App PWA Concepts
HTML
16
star
37

more-menu-react

📇 A demo for display extra menu items dynamically in More menu, in React
JavaScript
15
star
38

react-hooks

⚓ A demo app for React Hooks
JavaScript
14
star
39

gatsby-with-wordpress-workshop

A Gatsby with WordPress workshop
JavaScript
14
star
40

javascript-workshop

🔥 JavaScript Beginner to Advanced Workshop
JavaScript
13
star
41

react-app-boilerplate

🔥 react-app-boilerplate
SCSS
13
star
42

javascript-concepts

🎓 A demo app for JavaScript Concepts
JavaScript
12
star
43

acf-guten-blocks

🔌 This plugin creates Gutenberg blocks using ACF
PHP
12
star
44

react-app

📦 A demo to set up React App with create-react-app, webpack and babel
JavaScript
11
star
45

ssr-react-app

⚡ A server-side-rendering-react-app demo
JavaScript
11
star
46

gutenberg-blocks-starter

A starter plugin to develop Gutenberg blocks.
JavaScript
11
star
47

remove-linkedin-connection

👤 Remove a LinkedIn Connection with a Single Click
JavaScript
10
star
48

gatsby-wp-themes

Gatsby WordPress Theme
JavaScript
10
star
49

nextjs-example

Nextjs Example
JavaScript
9
star
50

admin-menu-builder

A plugin that creates a menu in WordPress backend dashboard
PHP
9
star
51

imranhsayed

Bio
9
star
52

webpack-app

📦 A demo app for webpack app
JavaScript
9
star
53

my-gatsby-project

My Gatsby Test Project
JavaScript
9
star
54

redux-workshop

⚒ A Redux Workshop 🏂
9
star
55

react-beginners-course

react-beginners-course
JavaScript
8
star
56

gatsby-workshop

🛠️ A Gatsby Workshop
CSS
8
star
57

codeytek-blocks

Custom Gutenberg blocks for codeytek
JavaScript
8
star
58

instamojo-integration-nodejs

Instamojo Payment Gateway Integration Snippet using Node Js , React, Express and Mongo db
JavaScript
8
star
59

create-react-app-pwa-new

Create React App PWA
JavaScript
7
star
60

frontity-contact-form-7-test

📝 Frontity Contact Form Seven Feature
JavaScript
7
star
61

lazy-load

🌈 A WordPress theme to demonstrate lazy load feature
PHP
7
star
62

my-storybook

A demo project for storybook using create-react-app
JavaScript
7
star
63

ihs-forms

WordPress Forms with attachments
PHP
7
star
64

starter-block

Starter Block Plugin with wp-scripts package
JavaScript
7
star
65

react-mmenu

🎢 React mmenu
JavaScript
7
star
66

gatsby-app

A demo React application using gatsby
CSS
7
star
67

autoloaders-with-composer

⌛ Demo for autoloading with Composer
PHP
6
star
68

react-app-webpack

A demo project for react with webpack
JavaScript
6
star
69

redux-example

🌀 A redux example
JavaScript
6
star
70

CSS-Tricks

Useful links for CSS Tricks
6
star
71

cg-blocks

A custom gutenberg contact card block
JavaScript
6
star
72

ihs-geo-location

This plugin detects your location and makes certain classes available to you which you can apply to the div elements or use shortcodes in your theme to display the user's current locality, city, state, country and address.
PHP
6
star
73

contact-form-7-endpoints

🔥 This plugin provides you different endpoints for Contact Form 7 registration using WordPress REST API
PHP
6
star
74

wordpress-docker-wp-cli

An example of WordPress with Docker and WP-CLI setup
Shell
5
star
75

todo

🔥 A React Native App
Objective-C
5
star
76

jest-test-app

Test Application using JEST
HTML
5
star
77

taxonomies-wp-content

wp-content folder containing plugin and custom templates for custom post type custom taxonomy and custom product page examples
PHP
5
star
78

gatsby-experimental

👨‍🔬 Gastby WordPress site
JavaScript
5
star
79

tailwind-example

tailwind-example
JavaScript
5
star
80

shiprocket-pincode-check-woocommerce

The plugin checks if the woocommerce product can be delivered to your location using pincode. It uses Shiprocket Api to achieve this.
PHP
5
star
81

jest-for-react

A demo project for writing test for react using jest
JavaScript
4
star
82

todolist

A laravel Project for todolist
PHP
4
star
83

portfolio-app

A react application
JavaScript
4
star
84

babel-app

A repo for babel demo
JavaScript
4
star
85

laravel-auth

Custom Login and Registration database name in the .env file is laravel_auth, id root and password: empty
PHP
4
star
86

nextjs

Next js app
JavaScript
4
star
87

pop-up-window

Create Modal Box/ Pop up window using JavaScript
CSS
4
star
88

add-post-script-plugin

A custom WordPress plugin that adds custom fields below every Post/Page to allow user to add post/page specific styles and scripts
PHP
4
star
89

Publish-plugin-on-WordPress

🔌 How to Publish Your Plugin on WordPress and Update and tag a version
HTML
4
star
90

nextjs-wp-assets

A set of assets for nextjs-wp project
CSS
4
star
91

basicwebsite

A basic laravel website with contact form
PHP
4
star
92

laravel-blogs

📄 Blog Posting CRUD functionality in Laravel with Bootstrap
PHP
4
star
93

node-playground

🌐 A demo app for node
JavaScript
4
star
94

express-app

⚡ A demo app for Express
JavaScript
4
star
95

item-laravel-api

A laravel Project to perform CRUD request with REST API via ajax request. Front end will be available in itemmanager directory and itemapi is a laravel dir
PHP
4
star
96

gutenberg-block-scaffold-examples

An example of Gutenberg Block Scaffoldings
JavaScript
3
star
97

wp-plugin-webpack-boilerplate

Boilerplate - WordPress Plugin With Webpack setup
JavaScript
3
star
98

programming-in-java

Example programs in Java
Java
3
star
99

add-script-plugin

A Custom WordPress plugin to add styles and scripts from the backend dashboard
PHP
3
star
100

python-programming

Example projects for Python Programming
Python
3
star