CRM

The Woocommerce plugin provides the ability to pull all Woocommerce products into the CRM.

The Woocommerce plugin will not pull product variation information into the CRM though it can easily be created in the Product Variant Section in the CRM. Please click this link to be taken to Product Variations KB article for more information .

Step 1 - Login to your Wordpress Admin site and follow these instructions

  1. 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 CRM Plugin

Navigate to Admin → Plugins → Data Sources and click on the green “+Activate” button on the Woocommerce tile.

storeURL = your Woocommerce store url (minus the https://)

ConsumerKey= your Woocommerce Consumer Key (required)

ConsumerSecret= your Woocommerce Consumer Secret (required)

campaignId = Optional. Assign your Woocommerce products to a specific campaign. If blank, a new campaign will be created when the products are pulled from Woocommerce.

gatewayId = Optional. The gateway 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 MID List (Merchants → MID List).

sendInitialOrders = Optional. Use this to automatically send successful new orders back to Woocommerce. This will send all successful new orders on the campaign. It is advised to use the campaign for Woocommerce orders only, if sending orders back to Woocommerce.

sendRebillOrders = Optional. Use this to automatically send successful rebill orders back to Woocommerce. This will send all successful rebill orders on the campaign.

Step 3 - Synchronize Products

This process will pull your Woocommerce products into CRM .

Edit the Woocommerce plugin, verify the information entered, and press the blue “Sync Products” button

When the sync is finished, navigate to CRM Products. Edit one of the Woocommerce Products.

Variant detail information will not be synced from Woocommerce but you can easily add variants to any product synced from Woocommerce

Specify a Variant Name for example, you can use Size. Then for the variant options you will specify your Size options (Small, Medium, Large).

Fill out all the relevant variant information for your products, then hit the green “Create” button to create all the variant options. For more information about Product Variations please view this article .

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.

  1. Confirm API credentials are correct.

  2. 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