wp-graphql / wp-graphql-woocommerce

Add WooCommerce support and functionality to your WPGraphQL server
https://woographql.com
GNU General Public License v3.0
648 stars 130 forks source link
api graphql graphql-server hacktoberfest mutations woocommerce wordpress-plugin wp-graphql wp-graphql-woocommerce wp-plugin

WPGraphQL for WooCommerce (WooGraphQL) Logo

WPGraphQL for WooCommerce

WebsiteDocsSchemaPlaygroundAbout • Join Slack

Automated-Testing Coding Standards Coverage Status Financial Contributors on Open Collective

Install

Installing Manually

  1. Install and activate WPGraphQL and WooCommerce.
  2. Download the wp-graphql-woocommerce.zip file from the Assets section of the most stable release and activate the plugin in your WordPress directory.
  3. Set your GraphQL client endpoint to your site's GraphQL endpoint. Typically, this is your-store.domain/graphql.

Installing with Composer

This method is recommended for users with unique installations like WP Bedrock or SpinupWP.

  1. Install WordPress and WooCommerce.
  2. Install WPGraphQL and WPGraphQL for WooCommerce by running composer require wp-graphql/wp-graphql wp-graphql/wp-graphql-woocommerce.
  3. Set your GraphQL client endpoint to your site's GraphQL endpoint. For typical Bedrock or SpinupWP setups, the default will be your-store.domain/wp/graphql.

Optional Extras

What Can You Do with This Extension?

(*) These operations have user restrictions. Learn how to utilize them correctly at the resources listed below:

(#) The recommended method to checkout, taking full advantage of WooCommerce's payment gateways for payment process and other checkout-related extenstions, is to pass the session back to the WordPress installation and let WooCommerce take over from the tradition checkout page. Learn more about this approach below.

Alternatively, you can create a custom checkout form and process payments externally. Here is some resources for that as well.

Why Don't WooCommerce CPT GraphQL Types Support All the Features WPGraphQL Exposes for Most WordPress CPTs?

WooCommerce's Custom Post Types (CPTs) and most data objects are managed by a data store system. This system allows for flexible data object definitions. While objects like products, orders, and coupons are defined as WordPress CPTs by default, they don't have to be.

This flexibility also lets WooCommerce store metadata for these CPTs in separate tables, and the data doesn't necessarily have to reside in the same database.

The data store system and its object managers are WooGraphQL's primary contact points. Unlike standard CPTs, which use a WP_Post object for data sourcing and a WPGraphQL\Model\Post object for modeling, WPGraphQL for WooCommerce engages object managers for its data source. Each object type has a unique model with distinct permissions and restrictions.

Such a setup has resulted in some disparities between the schema where WPGraphQL for WooCommerce support might be lacking. We apologize for any inconvenience. Both I and the entire WPGraphQL team are actively working to harmonize WPGraphQL for WooCommerce with all WPGraphQL and WPGraphQL ACF features.

Thank you for your patience :smile: @kidunot89

Future Features

For WooCommerce Extensions Support

WooGraphQL Pro is an extension of WPGraphQL for WooCommerce that provides compatibility with a variety of popular WooCommerce extensions. This compatibility empowers you to leverage these extensions within the context of the GraphQL API, thereby enabling you to build more dynamic and powerful headless eCommerce applications.

The following WooCommerce extensions are supported by WooGraphQL Pro:

Installing Supported WooCommerce Extensions (Optional)

If you wish to use any of the supported WooCommerce extensions with WooGraphQL Pro, follow these steps:

  1. Purchase your desired extensions from the WooCommerce marketplace. The supported extensions are listed above.
  2. Download the .zip file(s) for your purchased extension(s) from your WooCommerce account.
  3. In your WordPress Admin Dashboard, navigate to Plugins > Add New > Upload Plugin, and upload the downloaded .zip file(s).
  4. Once the upload is complete, click on 'Activate Plugin' to activate the extension(s).

Installing and Activating WooGraphQL Pro

To install and activate WooGraphQL Pro, follow these steps:

  1. Purchase WooGraphQL Pro from our official website.
  2. After purchase you should find yourself on your account dashboard. Go to the Licenses page and generate and new license and copy it for later.
  3. Next go to the Downloads page and download the latest version of WooGraphQL Pro.
  4. Go to your WordPress Admin Dashboard, navigate to Plugins > Add New > Upload Plugin, and upload the woographql-pro.zip file you downloaded.
  5. After uploading, click 'Activate Plugin' to activate WooGraphQL Pro.

Enabling Schema Support for Installed Extensions

To enable schema support for your installed extensions, follow these steps:

  1. Navigate to the WPGraphQL settings page on your WordPress Admin Dashboard.
  2. Click on the 'WooGraphQL' tab.
  3. Here, you'll find a list of WPGraphQL for WooCommerce configuration options. Go below to the WooGraphQL Pro section and paste in license and check the boxes next to your installed extensions to enable schema support for them.

Note: The 'Enable Unsupported Product Type' option can be found on the same settings tab. If you enable this option, any product type without a proper GraphQL type will default to the UnsupportedProduct type, which is identical to the SimpleProduct type. With this type, the client can use the metaData field to get a string representation of the meta data on the type. This could potentially be all that's needed for simpler product types.

With WooGraphQL Pro and your chosen extensions now installed, you're ready to build more sophisticated, feature-rich eCommerce solutions with WordPress and WooCommerce.

Development Tools

Playground

Feel free to test out the extension using this GraphiQL Playground. The playground allows you to execute queries and mutations, as well as view the schema (*).

(*) I have a tendency to forget to update the playground between releases :sweat_smile:, so if you believe this to be the case look me up somewhere on this page and lemme know :man_shrugging:

create-woonext-app CLI and @woographql packages

Designed to both streamline development for individuals and teams looking to utilize WooCommerce + WooCommerce extensions in larger project and not waste too much to much time on the particulars of WPGraphQL for WooCommerce like session management or checkout, the create-woonext-app CLI generates a pre-created e-commerce application on Next.js application tailored to the developer/team.

npx create-woonext-app <license> [options]

The generated application utilizes the @woographql packages exclusive to the unlimited/annual subscribers of WooGraphQL Pro. So Go Subscribe! :smile:. Below are more resources on the create-woonext-app CLI and @woographql packages.

Wanna help support WooGraphQL's future

Follow alt textalt text

Demo/Examples

Who using it?

Rocky Mountain Sewing & Vacuum Russemerket wohnparc.de
Rocky Mountain Sewing & Vacuum Russemerket wohnparc.de

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

Disclaimer: WPGraphQL for WooCommerce is an open-source WordPress plugin and WooCommerce extension developed and maintained by Geoff Taylor, licensed under GPLv3. It is not owned, maintained, or affiliated with Automattic or WooCommerce.