Skip to main content

WooCommerce Integration

WooCommerce Integration

WooCommerce is an open-source flexible software solution built for WordPress-based websites and one of the most widely used eCommerce channels. This article discusses the procedures for synchronizing inventory and products, and pulling sales information to and from Cin7 Core.

NOTE: When a refund is processed for an unfulfilled sale, this will cause an error with restocking the unfulfilled items. These will appear on the log as Pending fulfillment. If you are experiencing this error, you will need to enable the Ignore restock for non-fulfilled sales setting. This setting is not enabled automatically in order to preserve system logic continuity for users.

Prerequisites

  • Knowledge about the Processing a Sale process (required)

  • Knowledge about Products and Product Management (required)

  • Required versions: WooCommerce >= 3.0.x and WordPress >= 4.4.x

  • Users will need to Integration: eCommerce - WooCommerce permission in order to use this feature.

  • Users will need to add an External integration licence to their subscription if they do not have one available.

 

WooCommerce Integration Setup

First, you must connect Cin7 Core to your WooCommerce store. There are two types of connections you can use:

It is possible to link several WooCommerce stores to a single Cin7 Core account. Each linked store has its own independent catalog, logs, and settings. Users will need to add an External integration licence to their subscription if they do not have one available. Additional external integrations must be purchased from the My Subscription page.

Connecting to WooCommerce using OAuth

By default, the OAuth method is selected as the connection type when you set up Cin7 Core-WooCommerce integration for the first time. If you encounter any errors when using this method, you can try the API method instead.

To connect WooCommerce to Cin7 Core using OAuth:

  1. Navigate to Integration → WooCommerce.

  2. Click + to connect a new store.

  3. On the Connect to WooCommerce page, by default, the connection type is set to OAuth. Enter your WooCommerce store name and website address, then click Connect to WooCommerce.
         

  4. You will be redirected to the WooCommerce login page. Enter your details and continue.

  5. You will be asked to confirm sharing data between WooCommerce and Cin7 Core. Click Approve to continue and go back to Cin7 Core to complete the setup.
         

Repeat Steps 1-5 to connect as many WooCommerce stores as you require.

Connecting to WooCommerce using API

If you encounter any errors when integrating Cin7 Core to WooCommerce using OAuth, you can set up the connection using the Classic method instead, which involves generating an API key in WooCommerce, then using the key to connect WooCommerce to Cin7 Core.

To connect WooCommerce to Cin7 Core using API:

  1. Navigate to Integration → WooCommerce.

  2. Click + to connect a new store.

  3. On the Connect to WooCommerce page, change the connection type to Classic.
         

  4. Log on to WooCommerce,  open WooCommerce → Settings → Advanced, click the Rest API tab, then Add Key.
         

  5. On the Key Details page, enter a description for the API key. By default, the user logged on to WooCommerce is selected. Change the Permissions to Read/Write, then click Generate API Key.
         

  6. Once the key is generated, copy the generated Consumer key and Consumer secret, and save it somewhere on your PC. You will need both to set up the connection in Cin7 Core.
         

  7. Go back to Cin7 Core. Enter your WooCommerce store name and website address, paste the Consumer key and Consumer secret you copied in Step 6, then click Connect to WooCommerce.

 

Repeat Steps 1-7 to connect as many WooCommerce stores as you require.

Integration Settings

Under the Setup tab, several integration settings can be customised.

  

Order Capture

This option specifies when a WooCommerce order will be captured: when it is created, when it is completed or when it is paid in WooCommerce. This setting is also taken into account when downloads of historical orders from WooCommerce are triggered.

Consolidate Orders

Cin7 Core - WooCommerce Integration allows two options for order consolidation:

  • No Consolidation

  • Daily Consolidation.

No Consolidation indicates that sales will be captured from WooCommerce as they occur. Daily Consolidation will consolidate all orders from that day into a single order.

When Daily Consolidation is chosen, an additional setting becomes available: Consolidation Time. This is your local time when all pending orders aggregated during the day will be processed.

See the Pending Order Processing section below for more details.

Customer

For the pending order processing to be successful, an existing customer must be selected. The selected customer here is used when there is no available customer information in a sale order.

When the Consolidation Type is Daily Consolidation, this customer is used to create a new sale task which will combine all daily sales. A customer can be created in Cin7 Core just for this purpose.

Regular Price Tier

The Regular Price Tier, one of WooCommerce's two price tiers, is mapped to Cin7 Core's Price Tiers here. See Pricing and Price Tiers for more information.

Sale Price Tier

The other WooCommerce price tier, Sale Price, is mapped to Cin7 Core's Price Tiers here.

Pick, Pack and Ship Processing Mode

When pending orders are processed by Cin7 Core, new sale tasks are created. This setting tells Cin7 Core if it should try to Auto Pick, Auto Pack and Auto Ship these tasks. If there is not enough stock on hand to pick the full quantity of products in an order, then Pick will remain in Draft state and Pack and Ship won’t be completed.

Cin7 Core does not pick up shipment information from WooCommerce if auto-ship is selected and will not create fulfilment in WooCommerce in this scenario (if Auto Ship is enabled).

Process Auto-Assembly as

This dropdown field has two options:

  • For ordered quantity: Does not check stock quantity. An assembly order is created for the quantity specified in the sale order, regardless of stock availability.

  • For minimum quantity required for picking:Assemble stock required to meet the quantity of specific sale order.

    • If stock availability is negative, auto-assembly will produce a finished goods quantity which is more than the quantity ordered through sale order.

    • If there is already stock available in inventory but not enough to fulfill the sale order quantity, auto-assembly will assemble the difference in quantity needed to meet the sale order requirement.

    • If stock availability exceeds sale order quantity, auto-assembly is not triggered.

Stock availability is validated against the sale order location and does not take On Order quantity into account.

Ignore Restock for non-fulfilled sales

When a refund is processed for an unfulfilled sale, this will cause an error with restocking the unfulfilled items. These will appear on the Log as Pending fulfillment. If you are experiencing this error, you will need to enable this setting. Restock/stock allocation quantities will be edited to match the fulfilled items of the sale. This setting is only applicable when Pick, pack, and ship mode for processing online sales is set to Auto Pick + Pack + Ship.

  

Link WooCommerce Sales to Cin7 Core Location

WooCommerce does not allow the use of multiple warehouses. Each WooCommerce store can have a dedicated Location within Cin7 Core which can be selected from the drop-down menu. Selecting a particular warehouse will limit the availability of stock in WooCommerce to that location. The default option, All Locations, will display consolidated stock quantities across all of your locations.

Invoice Status

You can control Invoice Status for Sale tasks created as a result of pending order processing. By default, an invoice will not be authorized and will be in Draft state, adjustable and waiting for authorization. However, if this setting is changed to AUTHORISED, the invoice will be automatically authorized and pending sync will be created for it to sync with an accounting application of your choice.

Optional Revenue Account

This is the revenue account to be used for all sales downloaded from WooCommerce. This will override settings at the Product/Customer level and any other Account mapping.

Sales Representative Name

Select the sales representative from the list whose name will be specified for all sales captured by Cin7 Core through this integration.

List Products as Draft

You may choose to enable this option to list all products as Draft on WooCommerce.

Update Stock Levels in WooCommerce

You may choose to disable automatic stock level update in WooCommerce performed by Cin7 Core at the time available product quantity changes in Cin7 Core. This may be useful if you are managing stock level in WooCommerce manually and do not want Cin7 Core to change it. Ensure you have the correct stock quantities entered in Cin7 Core before you turn on this option as these values will override the stock quantities in WooCommerce. Enabling Update Stock Levels in WooCommerce will display the Use Buffer Inventory setting.

Use Buffer Inventory

Displayed when Update Stock Levels in WooCommerce is enabled. Allows for an inventory buffer on stock quantities pushed to WooCommerce. Sync stock passed to WooCommerce when updating stock levels will be equal to Actual Stock - Buffer Inventory. Enabling this setting will enable the Buffer Inventory field.

Buffer Inventory

Displayed when Use Buffer Inventory is enabled. Enter an integer number of stock to act as a buffer. Sync stock passed to WooCommerce when updating stock levels will be equal to Actual Stock - Buffer Inventory. When this setting is enabled, Sync Quantity and Buffer Inventory quantity will be added as fields to the Catalog and Bulk Listing tables alongside stock availability.

NOTE: Once buffer inventory is enabled and specified, it will be applied across all products listed on the Catalog and Bulk Listing tabs. However, sync quantities will only be updated in the channel if the user updates or lists a product.

Use WooCommerce as Master source for Cin7 Core Products

When this parameter is enabled, Cin7 Core will not push product categories and product descriptions to WooCommerce. Instead, products in Cin7 Core will be updated with categories and descriptions from WooCommerce.

Export shipping information to WooCommerce

When this parameter is enabled, Cin7 Core will push shipping information to WooCommerce.

Load Coupon Codes from WooCommerce

Coupon Codes can be brought through to Cin7 Core as individual products by enabling this option.

Add Company to Address

Enable to add a company name to the address line for the order.

  

Tax Rule Mapping

When a pending order is processed by Cin7 Core, a sale task is created. Each order and invoice line is assigned a tax rule. The tax rules specified in these settings will be used to create these lines.

Cin7 Core does not apply the tax rule to recalculate tax and is simply using the actual tax amount from the WooCommerce order. This means that if certain products are not Taxable or with varying tax in WooCommerce, all data and totals in Cin7 Core will look identical to WooCommerce, but with Cin7 Core tax rule name selected in this setting.

The Tax Free tax rule mapping specified in this setting is used to create these lines for non-taxable products. This tax mapping could be useful for accounting.

Other taxation rules listed are downloaded from WooCommerce and can be linked with Cin7 Core Tax Rules here.

In the case of tax recalculation, the Tax amount will be overwritten with the value calculated by the Cin7 Core Taxation rule.

IMPORTANT! Orders will be skipped on download if tax rules are not mapped.

Payment Account Mapping

Cin7 Core can capture payments made against orders in WooCommerce and is able to automatically add payments to a created sale invoice. To do this, Payment Account Mapping must be completed on this integration settings screen. You must choose an account which is able to receive payments from the chart of accounts.

This setting is not mandatory – if payment mapping is not completed, orders are still captured and downloaded from WooCommerce, but payments must be manually added to invoices in Cin7 Core. Some customers prefer to keep invoices open and then reconcile them with payouts from WooCommerce.

Disconnect from WooCommerce store

When you disconnect from the WooCommerce store, Cin7 Core removes all associations between Cin7 Core objects and WooCommerce, including Log and Product Catalog.

Link WooCommerce shipping metadata fields to Cin7 Core shipment details

Cin7 Core allows you to map your WooCommerce shipping metadata field to the tracking information exported from Cin7 Core. This makes the integration compatible with any WooCommerce tracking plugins by specifying the correct field name for the plugin in these mapping settings.

Enter the WooCommerce shipping metadata name in the Field Name column. The Value corresponds to the Cin7 Core information to be exported.

  

Changing the WooCommerce active store

The WooCommerce active store can be changed from the Setup tab of the integration. Click Change Credentials to open a pop up window where you can enter the credentials/tokens for the WooCommerce store you want to change to.

Catalog

The Cin7 Core WooCommerce Catalog page allows users to download products from WooCommerce, break the link between a Cin7 Core product and its WooCommerce listing, and update quantities in WooCommerce according to Cin7 Core available stock.

When Use Buffer Inventory setting is enabled, Sync Quantity and Buffer Inventory quantity will be added as fields to the catalog and bulk listing table alongside stock availability.

Downloading Products

Products can be loaded from WooCommerce to Cin7 Core in the Catalog tab by clicking Download → Products. This operation may take some time.

  

Products in WooCommerce can be downloaded as simple Products or as Product Variations, similar to Cin7 Core. WooCommerce allows an unlimited number of options, but Cin7 Core only allows three. Due to this, only the first three options will be loaded per product from WooCommerce.

When downloading products from WooCommerce, Cin7 Core checks if the product in WooCommerce is a single product or if it has multiple variations. If Products and Product Families have already been created/linked with WooCommerce, then Cin7 Core updates the existing Products/Product Families instead of creating new ones.

In WooCommerce, Product SKU is optional whereas in Cin7 Core it is mandatory. To resolve this, if the SKU field is empty in WooCommerce, Cin7 Core skips this product.

WooCommerce has a hierarchical category structure, whereas Cin7 Core has only one level of categories. Only the root categories in WooCommerce are linked to Cin7 Core categories.

When downloading products, Cin7 Core tries to avoid creating duplicates by first searching the existing products for matching items. This takes place in several steps:

  1. Cin7 Core searches the product family by name using the WooCommerce product title.

  2. Then, for each variant, it searches the Cin7 Core product by WooCommerce variant ID.

  3. If not found, it searches the Cin7 Core product by WooCommerce product (or variant) SKU.

Cin7 Core product names are unique but all WooCommerce product variations have the same name as the product family. Due to this, upon downloading products from WooCommerce, Cin7 Core creates variation names from the WooCommerce Product name + Variant Option 1 Value + Variant Option 2 Value + Variant Option 3 Value, delimited by space. Variant options are only included in the name if they are defined for the WooCommerce Product. During product loading, Cin7 Core automatically creates product categories for all product types in WooCommerce.

Data mapping for products between Cin7 Core and WooCommerce is as follows:

Cin7 Core                                                        

WooCommerce

SKU

Product or Product Variation SKU                                                                                                                     

Name

Product title

Category

Root Category

Description

Product Description

Weight

Weight

Width

Width

Height

Height

Length

Length

Price Tier mapped for Regular Price. Default is Price Tier 1.

Regular Price

Price Tier mapped for Sale Price. Default is Price Tier 2.

Sale Price

Images

NOTE: Only downloaded when no images are attached to the product. Existing images will not be deleted.

Images

Tags

Tags

Quantity

Quantity

Sale Tax Rule

Tax Class, Tax Status

Custom Fields

First 10 attributes (except attributes used as options)

Option 1 Name

Display name of first required option

Option 2 Name

Display name of second required option

Option 3 Name

Display name of third required option

Option 1 Value (for variation)

Label for value related to option 1

Option 2 Value (for variation)

Label for value related to option 2

Option 3 Value (for variation)

Label for value related to option 3


Manage the Catalog

There are two possible statuses for products in the Catalog: Not Listed and Listed. Stock level synchronisation can be enabled or disabled for individual products from the Catalog.

Note: Updating products from the catalog will update the stock level in WooCommerce regardless of the Update Stock Levels in WooCommerce setting status.

To list a product on WooCommerce:

  1. Click on the product in the Catalog tab.

  2. In the pop-up window, click List on WooCommerce.

  3. Save your changes.
         

 

To unlist a product on WooCommerce:

  1. Click on the product in the Catalog tab.

  2. Click Unlink.

  3. Save your changes.

 

To remove a product from WooCommerce:

  1. Click on the product in the Catalog tab.

  2. Click Remove from WooCommerce.

  3. Save your changes.

Bulk Listing

Aside from listing of individual products, products can be listed in bulk. If products are already listed, this action will update them.

To list products on WooCommerce in bulk:

  1. Go to the Bulk Listing tab.

  2. Select products to upload in bulk. You can select products by Category, Brand, Family, Product Tag, Listing Status, Products listed in (another sales channel or store), and through manual search.

Note: If you have multiple stores in another sales channel, e.g. two different WooCommerce stores, these will be displayed separately in the list of sales channels from which products can be selected for upload.

Brand can be used to filter items for upload from Cin7 Core, however brand information is not passed too WooCommerce.

  1. Click List to upload all selected products.

  2. You can also select Unlist to remove selected products from WooCommerce or Unlink to break the link between WooCommerce product and Cin7 Core product (but not remove the product from WooCommerce).
         

Buffer Inventory

Instead of showing actual inventory values in e-Commerce storefronts, many retailers prefer to display an estimated display quantity where there is a safe buffer stock on their backend to avoid overselling products. Cin7 Core allows for an inventory buffer on stock quantities pushed to WooCommerce, both for the whole channel and at the product level.

Buffer inventory levels for the whole channel are controlled from the Setup tab. Update Stock Levels in WooCommerce setting must be enabled.

  • Use Buffer Inventory: Displayed when Update Stock Levels in WooCommerce is enabled. Allows for an inventory buffer on stock quantities pushed to WooCommerce. Enabling this setting will enable the Buffer Inventory field.

  • Buffer Inventory: Displayed when Use Buffer Inventory is enabled. Enter an integer number of stock to act as a buffer. Sync stock is passed to WooCommerce when updating stock levels will be equal to Actual Stock - Buffer Inventory.

 

When this setting is enabled, Sync Quantity and Buffer Inventory quantity will be added as fields to the Catalog and Bulk Listing tables alongside stock availability. However, sync quantities will only be updated in the channel if the user updates or lists a product.

Inventory buffer for the whole channel can be overwritten by product level inventory buffer from either the Catalog or Bulk Listing page (Use buffer inventory must be enabled from the channel Setup tab). The product level buffer value will ALWAYS override the value set on the Setup tab. If the Setup tab inventory buffer value is changed, this will not affect products with product level buffers.

Note: Product level inventory buffer is disabled by default. In the case of wanting to turn off inventory buffer for certain products only, the user will need to enable buffer inventory and enter a value to apply it to the whole catalog, THEN set product level buffer to 0 for those products, then update or list the item to apply changes.

If the user wishes to apply inventory buffer ONLY to one or more specific products, inventory buffer should be enabled on the Setup tab and set to 0. Then, product level buffer inventory can be enabled and configured for products from either the catalog or bulk listing page. You will need to list or update the item to apply changes.

On the Catalog page:

Click on a listed or unlisted item to open a pop-up window and slide Use Product Level Buffer Inventory to enable. You can then enter an integer value for Product level buffer which will overwrite the channel buffer value. You will then need to Update or List the product for the new stock level quantity to be displayed in the channel. Save and Close to continue.

  

On the Bulk Listing page:

Use this to update product level buffer for multiple items at once. Use the search box and filter options to filter items to list/update in bulk.

The Use Buffer Inventory menu allows you to Turn on product level setting, Remove product level setting, or Don't update existing setting.

Turning on product level setting allows you to then enter an integer value for Product level buffer. Click List to overwrite the channel buffer value for the filtered products with the product level buffer.

Selecting Remove product level setting, then List, will remove the product level setting from the filtered products and return them to the channel buffer inventory value.

Selecting Don't update existing setting will leave all buffer values, including product level buffer values, unchanged when updating listings or making a new listing.

  

Orders and Sales


Processing Pending Orders

When a WooCommerce store is connected to Cin7 Core, automatic notifications are triggered whenever the following happens:

  • A WooCommerce order is created

  • A WooCommerce order status is changed

  • A WooCommerce order is deleted.

Depending on the Order Capture setting selected, Cin7 Core will capture a WooCommerce order and save it as pending order when the order is created, completed or paid. Sometimes, it may take up to 10 minutes for the order to be picked up by Cin7 Core because WooCommerce sends notifications with some delay.

Whenever a sale is captured from WooCommerce, it is first placed into Pending Orders, and stock is allocated immediately. Cin7 Core imports new orders immediately as individual sale orders (if No Consolidation is selected in the Integration Settings), or once a day as a consolidated sale order (if Daily Consolidation is selected).

If No Consolidation is selected, each WooCommerce sale is converted into an identical sale in Cin7 Core, keeping the same customer and shipping information. If Daily Consolidation is selected, the single daily sale task will use the customer selected in the integration settings, and customer, billing, and shipping information imported from WooCommerce will be ignored.

When a WooCommerce order is cancelled or deleted, Cin7 Core automatically finds and voids the corresponding sale task, if created, or removes the associated pending order if the order has not been processed yet.

When processing orders, the logic is identical to that in Cin7 Core. Drop shipping, kitting, and other important scenarios are implemented in the same way as in Cin7 Core.

Pending Orders can be processed manually by clicking Process. They can then be viewed in the Log tab.

Note:  At times, issues in WooCommerce may cause notifications NOT to be sent. In this case, you can load orders manually.

Order field mapping

No Consolidation - Online Sale

Cin7 Core Sale Order header fields

Will have WooCommerce value:

Customer and Customer Details (Contact, Phone, Email)

Company name from WooCommerce sale will be used with customer name as a contact. If no company name is given the customer from WooCommerce will be used, if no customer is specified the default customer in WooCommerce integration Settings will be used.                                                                                                                  

Reference

WooCommerce Sale Order #.

Billing Address

  • Billing address from WooCommerce will be used. This is a mandatory field in WooCommerce.

  • If billing address not specified, shipping address from WooCommerce will be used.

  • If customer is not provided in WooCommerce, billing address for the default customer will be used.

Price Tier

Sale Price Tier specified in WooCommerce Integration Settings.

Terms

Default payment terms (Settings → Reference Books → Payment Terms).

Sales Rep

  • Sales Representative Name specified in WooCommerce Settings.

  • If Sales Representative name is not specified, WooCommerce store name will be used.

Account

  • Optional Revenue Account specified in WooCommerce Settings

  • If Optional Revenue Account is not specified, default sales account will be used.

Tax Rule

Will be set according to Tax Rule Mapping in WooCommerce settings.

Invoice #

Generated automatically by Cin7 Core.

Invoice Date

Sale order capture date.

Due Date

Calculated from Invoice Date + Payment Term

Location

  • If order routing is enabled, the field will have value determined by order routing.

  • Otherwise if WooCommerce sale has fulfilment and WooCommerce location is mapped to a Cin7 Core location, this Cin7 Core location will be used.

  • Otherwise default WooCommerce location for online sales will be used.

Date

Sale order capture date.

Shipping Address

  • Shipping address from WooCommerce will be used.

  • If shipping address not specified, this field will be left blank.

  • If customer is not provided, default customer shipping address will be used.

  • If Ship to different address is unchecked the billing address will be used as the shipping address.

Ship to Company

Company name from WooCommerce if provided.

Ship to Contact

Customer contact name from WooCommerce if provided.

Shipping Notes

WooCommerce notes.

Comments

WooCommerce notes.

Required By

Same as sale order capture date.

Carrier/Service

  • WooCommerce carrier information will be used.

  • If no WooCommerce carrier information is provided, Local Pickup will be used.

 

Daily Consolidation - Online Sale

Cin7 Core Sale Order header fields

Will have value:

Customer and Customer Details (Contact, Phone, Email)

Default customer in WooCommerce Settings will be used.                                                                                                                   

Reference

Reference added with the date on which the sales were consolidated.

Ex: WooCommerce Sales for 28/05/2020                                                                                                                   

Billing Address

Billing address for the default customer will be used.                                                                                                                    

Price Tier

Sale Price Tier specified in WooCommerce Settings

Terms

Default payment terms (Settings → Reference Books → Payment Terms)

Sales Rep

  • Sales Representative Name specified in WooCommerce Settings.

  • If Sales Representative name is not specified, WooCommerce store name will be used.

Account

  • Optional Revenue Account specified in WooCommerce Settings

  • If Optional Revenue Account is not specified, default sales account will be used.

Tax Rule

Will be set according to Tax Rule Mapping in WooCommerce settings.

Invoice #

Generated automatically by Cin7 Core.

Invoice Date

Sale order capture date.

Due Date

Calculated from Invoice Date + Payment Term

Location

  • If order routing is enabled, the field will have value determined by order routing.

  • Otherwise if WooCommerce sale has fulfilment and WooCommerce location is mapped to a Cin7 Core location, this Cin7 Core location will be used.

  • Otherwise default WooCommerce location for online sales will be used.

Date

Sale order capture date.

Shipping Address

Shipping address for the default customer will be used.

Ship to Company

Default customer in WooCommerce Settings will be used.

Ship to Contact

Default customer in WooCommerce Settings will be used.

Shipping Notes

WooCommerce notes

Comments

WooCommerce notes

Required By

Same as sale order capture date.

Carrier/Service

Local pickup                                                                                                                   


Downloading Customers

Download customers from the Catalog tab, Download → Customers.

  

This function downloads all customers from WooCommerce to Cin7 Core. If the customer already exists in Cin7 Core, this function updates any details that have been changed in WooCommerce. As Cin7 Core automatically creates customers when processing sales orders (if the No Consolidation option is selected in Integration Settings), this function is generally only used for testing purposes.

This function creates a customer in Cin7 Core with Contact, Billing, and Business addresses captured from WooCommerce.

Downloading Orders and Payments

Orders are automatically downloaded if their status in WooCommerce is changed (for example, a customer pays for an order).

Note: Generally, you do not need to trigger manual order download. However, if an order was not captured by Cin7 Core, or to load historical sales, you can use the manual Load Order option in the Pending Orders tab.

Any imported order is saved to the Pending Orders section. It is a temporary storage of all sales and payments in Cin7 Core. If an order already has an entry in the Log, i.e. if it was imported previously, it will be skipped. This guarantees that no duplicate sales will be created by Cin7 Core.

While saving orders, Cin7 Core captures customer information, billing, and shipping addresses. All line items are captured together with quantities, prices, and totals. Total order discounts are applied as additional charges to the whole order, without distribution by lines, to reduce the chance of discrepancy.

Shipping, gift wrapping, and handling are also saved as additional charges on the invoice. WooCommerce has special Tax Rules for these additional charges. These can be mapped to Cin7 Core Tax Rules from the Setup tab.

For each line in a Sale, Cin7 Core attempts to locate the corresponding product by SKU. If no product is found, Cin7 Core attempts to download the sold product information from WooCommerce with the same logic as described in the Downloading Products section. If a matching product is still not found, Cin7 Core marks this line as a Service (Non-product). After that, the sale is saved to pending orders containing all the data imported from WooCommerce: Tax, Quantity, and Total.

If a Payment Account has been specified in the Integration Settings, Cin7 Core will always assign associated payments to the captured WooCommerce orders.

When a WooCommerce order is cancelled, Cin7 Core automatically finds and voids the corresponding sale task if already created as a Sale Order or just removes the associated pending order if not yet processed.

The final step in the order download is to trigger the update of stock levels in other WooCommerce stores and other connected eCommerce channels.

Updating Fulfilment in WooCommerce

When Shipment is authorized in Cin7 Core and the carrier specified, Cin7 Core will try to create order shipment information in WooCommerce. This will only work in the No Consolidation processing mode.

Shipment tracking metadata is exported to WooCommerce but requires a WooCommerce Shipment Tracking plugin in order to be correctly picked up. Cin7 Core allows you to map your WooCommerce shipping metadata field to the tracking information exported from Cin7 Core, making the integration compatible with any WooCommerce tracking plugins.

Shipping information is exported to WooCommerce when order has status ‘Processing’ or ’OnHold’. Only one tracking number is exported (e.g. orders with multiple packages will export a single tracking number).

Logs

Each captured WooCommerce order, once saved to Pending Orders, creates a Log entry to track the link between the Sale in Cin7 Core and in WooCommerce. This eliminates the possibility of creating duplicated orders when capturing the same order several times during manual order load.

Each Log entry has a link to the sale task in Cin7 Core. Depending on the settings selected by the user in the Setup tab, this sales task could be draft or authorized, one or more of the Pick, Pack and Ship tabs could be authorized, and payment could have been applied to the invoice.

Log entries allow you to see which Sale task reflects a particular WooCommerce sale. You also have the option to delete a Log entry manually. This will allow reprocessing an order if required. Deleting a log entry will not void or delete its associated sale task.

Reloading Orders from WooCommerce

If for any reason you need to reload an order from WooCommerce, this can be managed in Cin7 Core. Cin7 Core allows loading historical sales data a maximum of one year old.

To reload an order from WooCommerce:

  1. Void the sale task. A record of this will be kept in Cin7 Core for reconciliation purposes but the transactional data will be deleted.

  2. Return to the WooCommerce integration Log tab and delete the Log entry. This will allow the order to be recaptured from WooCommerce.

  3. Navigate to the Pending Orders tab and click Load Orders, making sure the date is set to before the order to reload was made. Cin7 Core allows loading historical sales data a maximum of one year old.

Refunds

Cin7 Core captures refunds from WooCommerce. Cin7 Core will then capture the refund and return/restock and apply them to the associated sale task.

Please note that if the sale is unfulfilled, this will cause an error with restocking the unfulfilled items. These will appear on the Log as Pending fulfilment. If you are experiencing this error, you will need to enable the Ignore restock for non-fulfilled sales setting.

Submit returns request via B2B portal

A customer returns submissions form can be added to your B2B portal if your organization subscription has this feature, allowing customers to submit their return requests, initiate the Cin7 Core RMA workflow, and view the status of their returns. This includes sales processed through connected eCommerce channels.

Any Cin7 Core customer can submit a returns requests via the returns portal with an order number or invoice number and email address simply by accessing the relevant URL. We recommend adding the URL to the return portal to your default sale email template sent to customers. Please see detailed instructions at Receive sales returns requests through B2B portal.

Please note that refunds/restocked processed in this way will not be automatically exported to the eCommerce channel, and will have to be added manually updated within the channel. You may prefer to use the returns workflow offered by WooCommerce if you do not need the additional RMA workflow features in Core.

Refunds for sales predating integration with Cin7 Core

Merchants with eCommerce channels occasionally have to process returns or refunds for a sale that predates integration of the eCommerce channel with Cin7 Core.

Sales and refund information is imported automatically from the eCommerce channel to Cin7 Core, but can also be manually imported via the Cin7 Core web portal. Historical refunds and returns are handled differently for each case.

Automatic import: Cin7 Core checks the sale order date against the date of integration with the eCommerce channel. If the sale order date predates the date of integration, credit note and refund are imported without the corresponding historical sale task.

  • A sale is created without order lines or invoice lines.

  • Credit note tab shows refunded items and if a refund was processed in the eCommerce channel it will be captured on this tab.

  • Restock tab is left empty and no stock adjustments are made.

 

Manual import: Manually loading orders from WooCommerce functions in the same way whether the sale took place before or after integration with Cin7 Core.

  • From the Pending Orders tab, click Load orders and select a date to load sales, including historical sales as Pending Orders. Process the sale associated with the refund.

  • The sale order with have order, invoice, pick, pack, and ship lines. It will also have credit note and restock lines.

  • User will have to perform a manual stock adjustment to correct any discrepancies from the refund.

Common Troubleshooting Issues

If you run into any issues while working with WooCommerce, check out WooCommerce Integration FAQs. If you still have not found the answer to your question, please get in touch with Cin7 Core Support.

Was this article helpful?

Have more questions? Submit a request