Please Note: This integration requires WooCommerce 2.2 or greater and uses the 'Legacy V2' REST API provided by WooCommerce. If you are using an older version of WooCommerce, please see our legacy plugin:
Note: Each install of this shopping cart is unique due to several outside factors (i.e. platform where it's installed, version of PHP, plugins/add-ons, etc.) These instructions have been tested and are known to be working with the base install of the cart in our test environment. EFS troubleshooting of issues will be limited to the install configuration that is known to be working with our integration. All other troubleshooting (and associated expense) will have to be done by you and/or your developer.
WooCommerce requires you to turn on the WordPress permalinks under Settings > Permalinks in order for you to use their API. Under the 'Common Settings' section permalinks can be anything other than 'Default' or 'Plain'.
Step 1: Enable WooCommerce API
To enable the REST API within WooCommerce, visit the WooCommerce > Settings > API tab, check the Enable REST API checkbox, and click the "Save changes" button. Stay on this page and proceed to the next step 2A.
In later versions of WooCommerce the WooCommerce > Settings > API tab isn't there. If your cart doesn't have the tab then your Enable REST API checkbox is located under the WooCommerce > Settings > General tab, if your checkbox is here proceed to step 2B for the next step.
Step 2: Generate API Keys
Step 2A: Your Enable REST API option is on the API Tab
After you click the "Save changes" button you will proceed to the "Keys/Apps" section of the API tab.
On the Keys/Apps page, you will see a list of your existing keys along with a button near the top for "Add Key" which you will need to click.
You will need to add a description for your new API key, select an admin user to associate with the key, and set the permissions to "Read/Write". Finally, click the "Generate API Key" button.
NOTE: THE USER YOU SELECT IN THIS STEP HAS TO BE A USER THAT HAS ADMIN LEVEL ACCESS
We’ll need your consumer key and secret in the next step so keep them available to copy & paste.
NOTE: PLEASE SAVE THE KEY AND SECRET SOMEWHERE SAFE AS YOU WILL NOT BE ABLE TO SEE THEM AGAIN IN WOOCOMMERCE.
Step 2B: Your Enable REST API option is on the General Tab
After you check the Enable REST API box and click the "Save changes" button you will proceed to the 'Your Profile' section in the WordPress Users Menu.
NOTE: THE USER YOU ARE LOGGED IN WITH, IN THIS STEP HAS TO BE A USER THAT HAS ADMIN LEVEL ACCESS
On this page, you will see a checkbox at the bottom that says Generate API Key. Check this box and then click Update Profile.
You should then be presented with a Consumer Key and Consumer Secret as shown below. Next, you will need to set the permissions to "Read/Write" and finally, click the Update Profile button again. We’ll need your consumer key and secret in the next step so keep them available to copy & paste.
Step 3: Fulfillment Control Panel Settings
Once you have obtained your key and secret you will need to enter them into your Fulfillment Control Panel account. Choose Add Integration from the Integration menu.
Select WooCommerce API from the list of available platforms and click the “Add new Integration” button. Your Consumer Key and Consumer Secret must be copied exactly as they appear in Wordpress.
Your Endpoint Url will be the URL of your store with “/wc-api/v2” added on the end. For example, if your store URL is “https://www.my-store.com” your Endpoint Url will be as follows:
Next, you will enter the orders status for orders that should be fulfilled, as well as the status to set once an order has been shipped. WooCommerce has the following, stock statuses available: pending, processing, completed, on hold, canceled, refunded, failed. Please enter one status only, exactly as you see it from the list above, with no spaces.
Status of orders to pull should match the status of orders you would like fulfilled. Each time we connect to WooCommerce to retrieve new orders we will only see orders matching this status.
Status to set shipped orders to will usually be “completed”. After we ship an order we will update the order status to reflect this setting and add a note to the order which mentions the carrier and tracking number(s).
If you would like to use custom order statuses, we have found a new, paid plugin that supports WooCommerce’s recent changes. We are not affiliated with the provider of the plugin:
Once you have your custom order statuses configured in WooCommerce, you will need to contact Client Services to have your custom codes retrieved. From what we can tell, there’s no way to see the status codes from within WooCommerce, they have to be requested through the API. Here’s an example of how they look:
To retrieve “Ready to Ship” orders instead of “Processing” orders, you would enter st_act_e30f instead of processing.
The next set of options determines the intervals at which we check for new orders and, optionally, send available inventory counts back to WooCommerce (please see the Optional Features section for more information on inventory syncing).
The most common scenario is to check for new orders every 30 minutes and sync inventory twice per day.
If you have more than one WooCommerce store you may assign a “nickname” to each store to better identify options and settings for each one.
Click the “Add new Integration” button to finalize the integration settings. You should see a success message at the top of your screen.
To verify that we can connect to your WooCommerce store choose View Integrations from the Integration menu. For each integration, you have configured, you will see a set of options displayed as colored icons. Click the “suitcase” icon to view the items in your WooCommerce store.
You should see a searchable list of products from your WooCommerce store. The list will indicate if the product SKU matches a SKU in our system.
If you do not see a list of products and, instead, see an error message it is likely that your Plugin URL has been incorrectly entered in our system, or that your Merchant Id / Merchant Token are not correct in the plugin settings.
Shipment & Tracking Updates
At the end of each day, we will send tracking numbers back to WooCommerce, for orders shipped that day. Since WooCommerce doesn’t natively support tracking numbers, we will add the tracking number as a note on each order along with updating the order status to “completed” or whatever status you have chosen.
When we retrieve your orders from WooCommerce the shipping methods are shown as strings of text such as “Free Shipping” or “USPS International Express” or “Federal Express Ground”. This text needs to be translated to our internal codes by setting up mappings within the integration configuration.
From your Fulfillment Control Panel account choose View Integrations from the Integration menu and then click the “envelope” icon to view existing shipping mappings.
Carefully type or “copy and paste” the exact text of your shipping method options from WooCommerce into the Cart Shipping Method field, then choose from the list of available shipping methods. Next, click the “Add Mapping” button, and then click the link in the success message to refresh the list (you will need to do this before you can add another method).
We also have a feature which will synchronize the available inventory counts from our warehouse back to your WooCommerce store. This is useful if you don't want to sell products that are out of stock. If you are interested in this feature you will need to turn on WooCommerce’s "track inventory" feature for each product. More information on Inventory Syncing can be found here.