WooCommerce Plugin - Checkout Champ
The WooCommerce plugin supports both simple and variable products. It does not support grouped or external/affiliate products.
The WooCommerce plugin provides the ability to pull all simple and variable WooCommerce products into Checkout Champ.
Once the plugin is configured and products are synced in, please view the article below:
Step 1 - Login to your WordPress Admin site and follow these instructions
When logged into the Admin site, click on “WooCommerce ” then click “Settings” then click the “Advanced” tab to expose the “REST API” option. Click “REST API” to create your WooCommerce API Keys.
2. Click “Add Key” to create your WooCommerce API Key.
3. In the “Key Details” Screen make sure to enter a Description, choose a user, and ensure you select “Read/Write” for the permissions selection. Then click “Generate API Key” to finish the API key creation process.
4. WooCommerce will display the API keys upon successful API Key creation. Please save these as they are required for the plugin setup in the CRM.
These API Keys become inaccessible as soon as you leave this page.
Step 2 - Setup the Plugin
Navigate to your funnel and drag the WooCommerce page type to the Funnel Visualizer if you have not done so already.
Next, click on the WooCommerce page and then click the settings gear icon to open the plugin settings.
storeURL = your WooCommerce store url (minus the https://)
ConsumerKey= your WooCommerce Consumer Key (required)
ConsumerSecret= your WooCommerce Consumer Secret (required)
campaignId = optional. Use this to assign your WooCommerce products to a specific campaign. If blank, a new campaign will be created when the products are pulled from WooCommerce . If grayed out, then all products will load into the funnel/campaign that the plugin was added to.
gatewayId = optional. The gatewayId to assign to the CRM campaign products that will be created from the WooCommerce products. Entering a value here will save the effort of manually editing the campaign products to assign a merchant account. gatewayId can be found on the Gateway List on the CRM side of your account under Merchants → Gateway List. To use a gateway profile, enter profile-###, replacing ### with the gateway Id.
sendInitialOrders = Optional. Use this to automatically send successful new orders back to the Woo Commerce. This will send all successful new orders on the campaign. It is advised to use the campaign for Woo Commerce orders only, if sending orders back to Woo Commerce.
sendRebillOrders = Optional. Use this to automatically send successful rebill orders back to the Woo Commerce. This will send all successful rebill orders on the campaign.
syncCoupons = Optional. If checked this will sync coupons from Woocommerce every hour.
syncTaxes = Optional. If checked this will sync taxes from Woocommerce every hour.
autoSync = Optional. Specify an interval in minutes to autosynchronize products. Minimum is 60 minutes. Set to 0 to clear.
When the fields are all filled in, click Create Plugin.
Step 3 - Synchronize Products
This process will pull your WooCommerce products into your Checkout Champ account.
From the Funnel Visualizer, open the WooCommerce plugin, verify the information entered, and press the blue “Sync Products” button located at the very bottom of the plugin.
When the sync is finished, open the Funnel’s settings and open Offers or Upsells section to view/edit the imported products.
Variants
Variant detail information (variable products) will be synced from WooCommerce. Variants can be custom attributes or global attributes.
Step 4 - Troubleshooting Product Sync Errors
It has been discovered that most WordPress servers are configured differently which could cause issue when syncing products. The most common error one might face when using this plugin is "sorry you cannot list resource". To troubleshoot this issue please follow the steps below.
Confirm API credentials are correct.
Confirm pretty permalinks are enabled in your WP settings. If not please follow this guide to ensure you’re permalinks are configured correctly.
If updating your credentials and/or updating your store’s permalinks did not resolve this issue then it is safe to say that this issue might be caused by the way your WordPress server is configured more specifically your server is not passing authorization headers to WordPress .
Make sure your server is passing the authorization headers to WordPress .
Test by passing in key and secret via url rather than headers to confirm the issue
eg:
https://your-store-url.com/wp-json/wc/v3/products?consumer_key=XXXX&consumer_secret=XXXX
If pasting this URL into your browsers yields a proper result then it confirms that there is an issue with your WordPress server configuration.
Before Adjusting your Server Configuration please ensure you take proper back-ups of your server configuration so you can easily roll back changes if they are no longer needed.
Apache Server
If your WordPress site is running on an Apache web server follow these steps to resolve this issue
For eg if you have .htaccess add these lines, if you do not have an .htaccess file create one like so.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
supporting links
https://wordpress.org/support/topic/woocommerce-rest-api-error-401/
https://github.com/woocommerce/woocommerce/issues/19649
Before Adjusting your Server Configuration please ensure you take proper back-ups of your server configuration so you can easily roll back changes if they are no longer needed.
Nginx Server
If your WordPress site is running on an Nginx web server you will not have an .htaccess file and will not be able to edit it like mentioned above. Please follow the below steps to resolve this issue.
Navigate to your Nginx conf file and make the necessary changes.
server {
server_name localhost;
listen 80;
root /var/www;
location /wpbop {
index index.php;
access_log /var/log/nginx/blog.access.log;
error_log /var/log/nginx/blog.error.log;
try_files $uri $uri/ /index.php$is_args$args;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:7000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
}
if that does not work, navigate to /etc/nginx/sites-available/YOUR_DOMAIN on your Nginx server and add the following route.
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
Supporting links: https://stackoverflow.com/questions/54794782/woocommerce-rest-api-nginx-error-404-not-found