The WooCommerce module, located in the Integrations group, is an add-on module that can be installed from the Plugin module. After installing the plugin, a new module is added that integrates with one or more WooCommerce shopping carts.
The plugin currently supports WooCommerce REST API V2
- In any Fishbowl Client, open the Plugin module, located in the Integrations group.
- Select the WooCommerce plugin and click Install.
- Completely close all Fishbowl Clients.
- Exit the Fishbowl Server by right-clicking the Fishbowl Server tray icon and selecting Exit.
- After re-opening the Fishbowl Server, the admin user can access the WooCommerce module from any Fishbowl Client by opening the Integrations group.
- To grant access to additional users, assign the WooCommerce-View access right to the appropriate groups in the User Group module
- Log into the Wordpress Dashboard, for example www.mycompany.com
- Open the settings for Wordpress permalinks by clicking Settings and then selecting Permalinks.
- Below Common Settings, select Post name.
- Scroll down to Product permalink base and verify that Default is selected and then click Save Changes.
- Open the settings for WooCommerce by clicking WooCommerce and then selecting Settings.
- Click the Advanced tab, select REST API, and then click Add key.
- Enter a Description, User, select Read/Write, and then click Generate API Key.
Several plugins in Fishbowl have a standardized layout. Some of the images below show the options that are most common between all plugins. Any additional WooCommerce options or notes are included at the bottom of each section. System properties also allow advanced options to be enabled for e-commerce plugins.
- If applicable, copy any needed setup information from the WooCommerce website.
- Click the Store Settings tab of the WooCommerce module.
- Enter a name in the Store Name field and any other required information.
- Click the button and verify that the connection to the WooCommerce website is working.
- Click the Save button at the top of the module to save the WooCommerce settings.
- Click the New button at the top of the module to configure another WooCommerce store.
- Schedule - Select the Active checkbox to import orders on a set schedule. Click the Run task button to run the scheduled task right now. Data that has changed since the Last Sync date will be synchronized. This date will be updated automatically after a sync, or it can be manually edited to adjust which data will be synchronized.
- Order field mapping - Use the mapping table to map WooCommerce order fields to Fishbowl order fields. If no field is mapped to the Fishbowl Order Number, then it will be generated by Fishbowl. If no date field is mapped to the Fishbowl Date Scheduled, then it will be set to the date of import.
- Use Customer Defaults - The following order defaults will be used when no data is mapped from WooCommerce in the mapping table above. "Use Customer Defaults" will use values from the Fishbowl customer when available.
- Default Salesperson - Sales orders will be created using this salesperson.
- Default Class - If there is no class mapped from WooCommerce, sales orders will be created using this class as the sales order class.
- Default Payment Terms - If there are no payment terms mapped from WooCommerce, sales orders will be created using this payment term.
- Default Shipping Terms - If there are no shipping terms mapped from WooCommerce, sales orders will be created using these shipping terms.
- Default Priority - The default priority to be set on imported orders.
- Discount item - Select the flat rate discount type that will be added as a line item to imported orders. The flat rate discount can be set to $0 in the Discount module and then the correct discount amount will be set when the order is imported from WooCommerce.
- Order number prefix - An order number prefix can be defined which will be applied to order numbers mapped from WooCommerce.
Order Status Mapping
- Use the table to assign WooCommerce order statuses to Fishbowl order statuses. The Order Import task will only import orders from WooCommerce that are in a status assigned to a Fishbowl order status. At least one active status mapping is required to use the Order Import task.
- Use the options below to determine how customers are created in Fishbowl and what information is imported into Fishbowl.
- Enable multi-currency settings - Order prices will be converted from the channel order currency to the Fishbowl currency assigned to the mapped customer. Requires Fishbowl currency conversion to be enabled.
- Enable advanced mapping settings - Opens up additional customer mapping options and control over customer creation.
- Use a default customer for all orders - This option will associate all imported sales orders with the customer selected in the Customer field. This could be used with a generic Fishbowl customer such as WooCommerce Customer.
- Use order billing address - Use the billing address from the WooCommerce order instead of the address for the default customer.
- Use order shipping address - Use the shipping address from the WooCommerce order instead of the address for the default customer.
- Use the order customer and addresses - This option will import the addresses and customer from the WooCommerce order instead of using a generic customer.
- Field - Select the WooCommerce field that contains the customer name that should be imported into Fishbowl.
- Alternate Field - An alternate field mapping when the primary mapping does not contain data.
- Use default carrier/service - When selected, all orders imported from WooCommerce will use the selected carrier and carrier service. If this option is unchecked, carriers can be mapped between Fishbowl and WooCommerce. Each mapping will also set the Sales Order Priority so that Fishbowl users can identify orders with express shipping that need to be picked and shipped quickly.
- Use carrier mapping - When selected, the table can be used to map carriers between WooCommerce and Fishbowl.
- Create payments in Fishbowl - When selected, payments from the WooCommerce transaction will be shown in the Payment Viewer module.
- Use a default payment method - When selected, all orders imported from WooCommerce will use the selected payment method.
- Use Payment method mapping - When selected, the table can be used to map payment methods between WooCommerce and Fishbowl.
- Always create payments - If no payment data exists for the order from WooCommerce, this option will always create a payment in Fishbowl equaling the order total. If payment mapping is enabled, orders without payment data will show "None" as the payment method type.
- Remove taxes from payment - When selected, the tax amount will be deducted from the payment total.
- Remove shipping from payment - Enabling this option may lead to order disparities between WooCommerce and Fishbowl for totals and payments.
- Ignore international payments - Payments will not be created for orders placed outside the United States. This setting is only available if Use Currency Conversion is enabled in the Currency module.
- Currency - Select the currency type you accept in WooCommerce. This is a required setting if Use Currency Conversion is enabled in the Currency module.
- Import Taxes - When selected, the tax amount from the WooCommerce order will appear on the Fishbowl sales order as a flat rate line item. The flat rate amount can be set to $0 in the Tax Rate module and then the correct total tax amount will be set when the order is imported from WooCommerce. If taxes are not imported, the Fishbowl payment will equal the order total before tax.
- Use Default Tax Item - With this option selected, the same tax item will be used for all orders.
- Use State Tax Mapping - This option allows different tax items to be used based on the Ship To state/province. If this option is enabled, the plugin will give an error when trying to import an order with a state that has not been mapped.
- Use Fishbowl Tax - Select a Fishbowl tax rate that will be used to calculate the order tax in Fishbowl. Tax calculations done by Fishbowl may differ from those done in WooCommerce.
- Import WooCommerce tax as line item note - Import the WooCommerce tax as a line item note in Fishbowl.
- Schedule - Select the Active checkbox to export orders on a set schedule. Click the Run task button to run the scheduled task right now. Data that has changed since the Last Sync date will be synchronized. This date will be updated automatically after a sync, or it can be manually edited to adjust which data will be synchronized.
- The Fulfillment Export task will export order fulfillment information to WooCommerce based on fulfilled Fishbowl sales orders.
- Update order status - When selected, WooCommerce orders will be updated after the product(s) on the order have been shipped in Fishbowl. Shipment tracking information will also be sent from Fishbowl to WooCommerce.
- Check order status - When selected, the WooCommerce order status will be checked prior to attempting to send fulfillment information. If the WooCommerce order status has changed, no fulfillment information will be sent. This will increase the time required to complete the order fulfillment task.
- Send tracking - When selected, WooCommerce orders will be updated with the Fishbowl carrier name, carton tracking numbers, and ship date. This requires the WooCommerce Shipment Tracking plugin.
- Schedule - Select the Active checkbox to import products on a set schedule. Click the Run task button to run the scheduled task right now. Data that has changed since the Last Sync date will be synchronized. This date will be updated automatically after a sync, or it can be manually edited to adjust which data will be synchronized.
- NOTE: When setting up the shopping cart integration for the first time you will want to adjust the Last Sync to a date before any of your products were created (for example, setting the year to 2000) so that all of the products on your website will be imported.
The Product Import task imports products into Fishbowl from WooCommerce. A product link is created by storing the WooCommerce product ID in Fishbowl.
- Link Existing Products will match existing products in Fishbowl and WooCommerce where data matches in the selected fields.
- Import Products will import products from WooCommerce into Fishbowl, creating them based on the field mapping and settings below.
- Schedule - Select the Active checkbox to export products on a set schedule. Click the Run task button to run the scheduled task right now. Data that has changed since the Last Sync date will be synchronized. This date will be updated automatically after a sync, or it can be manually edited to adjust which data will be synchronized.
- Product Create Settings - Enable Export new products and then map the fields that should be exported from Fishbowl to WooCommerce. A default weight UOM and size UOM can also be specified. Using the Product Tree Filter will limit the products exported to those in the selected product tree category. If left blank, all products will be included in the export. Selecting the Export all products option will ignore the last sync date and attempt to push all of the Fishbowl products to WooCommerce. The product tree filter will still apply.
- Product Update Settings - Enable Update linked products and then map the fields that should be exported from Fishbowl to WooCommerce. This section has the same options as the Product Create Settings section above. After the initial product export, only the selected fields will be updated.
- Schedule - Select the Active checkbox to export inventory levels to WooCommerce on a set schedule. Click the Run task button to run the scheduled task right now. Data that has changed since the Last Sync date will be synchronized. This date will be updated automatically after a sync, or it can be manually edited to adjust which data will be synchronized.
- NOTE: When setting up the shopping cart integration for the first time you will want to adjust the Last Sync to a date before any of your products were created (for example, setting the year to 2000) so that it includes all of your products (or any applicable product tree filter) when updating inventory levels.
- Export company wide inventory - Include inventory quantities from all location groups in the inventory sync. If this option is unchecked, selected location groups can be added by clicking the Add button.
- Inventory Type - Select the inventory quantity that should be used during the update: Available, Inventory On Hand, or Available To Pick.
- Product Tree filter - The export can be limited to a specific product tree category. If this field is left blank, all products will be included in the export.
- Specify Min/Max Inventory Quantity - With this option enabled, the maximum inventory quantity sent to WooCommerce can be limited. For example, if there is an available quantity of 4000 in Fishbowl, the quantity in WooCommerce could be set to 999. If there is an available quantity of 3 in Fishbowl, the minimum quantity field could be used to send a quantity of 10 to WooCommerce.
- Include Quantities Available To Build - When enabled, this option calculates and includes available to build quantities from applicable bills of material in the inventory push. When a product is sold individually but also used as an input for a bill of material, both quantities are pushed to the channel when applicable. Please note, this could lead to overselling in the scenario described..
- Only new orders are imported. Orders are not updated once they have been imported. Returns and refunds are not imported.
- The attributes and IDs for orders and products can be viewed or modified by clicking the WooCommerce button at the top of the Sales Order module and the Product module.
- To view the scheduled tasks for the WooCommerce module, open the Schedule module.
- A scheduled task can be run manually by double-clicking the task.
- Enter an email address in the Schedule module to receive error notifications.
- To view the history of a scheduled task, including the result/error, click the History button in the Schedule module.
- More details about recent errors can be viewed by opening the Data module and clicking the Server Log button.
- Check for multiple versions of the WooCommerce.jar file in C:\Program Files\Fishbowl\plugins\ or \Applications\Fishbowl\plugins\ on a Mac. If there are two WooCommerce versions, exit the Fishbowl Server and remove the older version on all client and server computers.
- If you are getting a Failed to run scheduled task error, it is likely due to upgrading from WooCommerce 2.x to 3.x because of the layout change within the plugin. The following fix re-installs the plugin, which will require you to re-enter your store login information and import/export settings. Make sure to write that information down before proceeding with the following steps.
First, open the Plugin module and click the Uninstall button for the WooCommerce plugin. Then restart the Fishbowl server. Next, open the Plugin module, click the Install button for the WooCommerce plugin, and then restart the Fishbowl server again. Finally, re-enter the store login information and the import/export settings and then click the Save button.
The plugin currently supports WooCommerce REST API V2
**Please note, this update will require you to re-enter the order status mapping table data when first loading the plugin**
- Added ability to choose whether to sync on hand vs. available to sale inventory quantity
- Improved status mapping error messages during order import using advanced options and the order status hasn't been mapped
- In the order import tab when using the customer matching option, we now provide an alternative mapping option if the first mapping option does not contain data from the cart
- Fixed bug to reenable editing of existing order status mapping
- Updated POS Import customer settings panel to have the same mapping options as the standard order import
- Updated Test Connection success/fail dialog box
- Added a popup window to notify users about status mapping tables being cleared
- On the Inventory Update tab the location group drop down box is now replaced with a checkbox called "Sync all Location Groups"
- When unchecked, a user-defined table gives ability to define which location group(s) will be used to sync to the Channel
- Fixed bug on order import that was giving a null error
- Fixed bug when clicking next button sometimes it would bring the mapping back up that user just created in the order status mapping table
- Fixed bug regarding the Bill To and Ship To Company fields not coming into the address name in the FB data base
- Added enhancement for desire to always record payments on incoming orders
- Added enhancement where only customer notes are imported
- Fixed bug when always create payments "payment method" drop down was not grayed out
- Fixed bug when customer PO number did not populate correctly when user did not have "Assign Channel Name order number to Customer PO field" checked
- Added ignore tax option to all plugins
- Fixed bug when inventory update would not pick up allocated products being removed from SO
- Added ability to map the SO contact, phone, and email fields when using the "Use default customer" option on the Order Import task
- Added option to add a custom prefix to the shopping cart order number on order import
- If the create payment option is enabled and not payment data comes through with the order, the order now imports rather than fails
- Fixed bug where the wrong inventory quantity was synced in the following scenario:
- When not using a location group (LG) filter and multiple LG's exist in the FB database and
- When one of the LG's has more inventory allocated than inventory available for all LG's combined
Do not skip this version unless installing the plugin for the first time. If you’re planning to update to a later version of Fishbowl, install 18.10 first, update your plugins, and open them so the data migrator (described below) can run. Then update Fishbowl to the desired version.
- Fixed bug where manually linking through the Product button, saves the product ID to the channelid field.
- Fixed bug where inventory updates all linked products instead of the first linked product in the list in FB
- Channel data, such as product IDs, variant IDs, etc. will no longer be stored in custom fields. New database tables will be created for this purpose. Data from your custom fields will be automatically migrated to the database the first time you open the plugin after updating. Data will still remain in the custom fields for reference. The custom fields can be deactivated.
- New version number system to match Fishbowl.
- Schedule task now gives a count of the items that were imported/exported. Error message will list items that failed.
- Will now use the account specified on the payment type (instead of the default) during order import.
- Fixed a bug regarding taxes in the Fishbowl Canada version.
- Ability to select which date field the Last Sync Date references.
- Shipping tax now accounted for in Fishbowl Australia version.
- Bug Fixes
- Updated for compatibility with Fishbowl version 2018.7
- Product import tab redesign. Now includes an order sync for situations where all products exist in both Fishbowl and the webstore.
- Product export tab redesign. Export and update have been separated. It’s now possible to update item fields in the webstore without doing a full product export.
- Settings have been relocated. They are now in a new tab.
- Added the ability to map a carrier service to an order priority in Fishbowl.
- Fixed a bug that was causing settings to not save.
- Redesigned Customer section in Order Import tab. **Reconfiguration of the customer settings will be required when you update to this version or beyond.
- Addition of a new order status mapping table. You can now import multiple statuses at the same time.
- Changed background color on headers in the Order Import tab when using the dark theme for better visibility.
- Payment import now pulls in currency rate if “Use Currency Conversion” is turned on in Fishbowl.
- Changed the way we were formatting the price.
- Added the ability to check if orders have been completed or cancelled before attempting to fulfill.
- Payment is not imported to Fishbowl for $0 orders.
- Payment terms are now pulled from the UI drop down instead of customer.
- Enhancement to the Order Import. If the carrier is empty on the data coming from the shopping cart, it will be defaulted to "Will Call" in Fishbowl.
- Enhancement to the Order Import. The customer phone number and email will attempt to be pulled from the shopping cart customer data. If that data isn't available on the customer, then it will attempt to be pulled from the billing address on the order. If that data isn't available in the billing address, then it will be pulled from the shipping address.
- Enhancement to Canada version of Fishbowl. Added an option in the Order Import panel to allow for prioritizing which tax is used on orders. If check box is checked, product tax will be used first. If no product tax has been assigned, then province tax will be used.
- Fixed a bug where the comma in the price value was being replaced by a period when exporting products that have a price over $1,000.
- Enhancement to allow payments to be applied to Sales Orders in an "Estimate" status when orders are imported.
- Added a checkbox option to either include or exclude tracking information from being sent to WooCommerce. You must have the most up-to-date "WooCommerce Shipment Tracking" plugin in WooCommerce for tracking information to be sent from Fishbowl to WooCommerce. If checked, and you don't have the Woo plugin, the scheduled task will error out.
- Enhancement so "Miscellaneous Fees" come in on orders.
- Enhancement for international customers where the tax code moves between Fishbowl and their channel. Tax code must exist in Fishbowl for it to be used with this process.
- Fixed a bug where imported orders weren't being "Fulfilled" in Fishbowl when the "Fulfilled" status option is selected in the Order Import.
- Fixed a bug where Carrier information was importing into Fishbowl, but not the Carrier Service.
- Fixed a bug where the Customer name from the Ship To address wasn't being put in the "Name" field on the address.
- Improved the way Fishbowl looks at Class on orders.
- Improved plugin UI for Order Import
- Added a checkbox to Product Export to allow all products to be exported
- Improved error messages
- Fixed a bug with payment mapping
- Fixed a bug with the Customer selection on Order Import
- Fixed a bug where orders with kits weren't being fulfilled
- Fixed a bug where discounts were being duplicated on orders
- Fixed a bug where incorrect address were being applied to orders for Default customers
- Improved the process for customer creation in Fishbowl. Fishbowl now looks at the Last Name, Zip Code, and Email Address from the Billing Address on orders when creating customers. If all fields match, the order is applied to that customer in Fishbowl. If they don't match, a new customer is created.
- Fixed a bug with the way flat rate discounts were being added to orders
- Fixed some bugs with the Order Import
- Plugin now allows customers who's stores use "Https" to connect via the plugin
- New layout and mapping options
- Fixed issue when the order import has multiple line items of the same product using the total price for the line item unit price
- Fixed issue in AU version where shipping and discount items do not use the correct tax codes and are calculated incorrectly
- Fixed inventory quantity update not looking at allocated items in FB
- Fixed product sync to work with kits
- Enhanced inventory sync to sync inventory kit quantity correctly
- Fixed tracking functionality when sending fulfillment to WooCommerce order(s).
- Compatibility fixes for 2017.3 version of Fishbowl
- Fixed bug on order import task where the task wasn't using the last sync date correctly
- Fixed tax functionality for Australia and Canada versions of Fishbowl
- Compatibility fixes for 2017.2 version of Fishbowl
- Fixed issue with inventory not updating for product variants
- Updated plugin to work with the latest version of WooCommerce (2.6.14) and Wordpress (4.7.2) with the latest API version
- Fixed Kit Inventory handling
- Added Product Dimension to product fields synced between FB and Woo
- Added Product weight to product fields synced between FB and Woo
- Added more product field mapping options
- Added shipment tracking feature. Please note this feature requires the WooCommerce Tracking Plugin be enabled in WooCommerce
- Bugfix to bring back the product ID correctly to FB on product sync
- Fixed last sync date and added option to set specific date when resetting last sync date
- Issue: Orders are using the customer address information instead of the order address which causes a null error when importing orders.
- Resolution: Order address is now being used so the order import can successfully run.
- Issue: When a user has the "company" field populated but nor first or last name a blank customer record is created.
- Resolution: Customer record no longer includes blank data.
- Issue: Using the Avalara Avatax plugin with WooCommerce cannot pull in orders because of an error that occurs when attempting to sync.
- Resolution: Orders with Avatax now correctly sync.
- Issue: OrderID can now be a string, not just an integer field.
- Resolution: Our field once again matches the updated field from WooCommerce.