The Shift4Shop 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 Shift4Shop (previously called 3dCart). Additional connections can also be purchased to connect to multiple Shift4Shop accounts.
- 1 Install
- 2 Setup
- 3 TABS
- 3.1 Order Import
- 3.2 Fulfillment Export
- 3.3 Product Import
- 3.4 Product Export
- 3.5 Inventory Update
- 4 Troubleshooting
- 5 Release Notes
- In any Fishbowl Client, open the Plugin module, located in the Integrations group.
- Select the Shift4Shop 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 Shift4Shop module from any Fishbowl Client by opening the Integrations group.
- To grant access to additional users, assign the Shift4Shop-View access right to the appropriate groups in the User Group module
Complete the steps below to configure the Shift4Shop integration.
- Log into the Shift4Shop admin portal, for example www.mycompany.Shift4Shopstores.com/admin
- Click Modules on the left, expand the REST API module, and then click Change Settings.
- Click the + Add button to add a REST API app to Shift4Shop.
- Click the Settings button on the module toolbar of the Shift4Shop module and copy the Public Key from the Shift4Shop module into the Public Key field of the Shift4Shop webstie, and then click + Add.
- Contact Support to obtain the Auth Token and enter it into the Shift4Shop module.
- Click the Settings button on the module toolbar of the Shift4Shop module and paste the information from the previous steps.
- Click the Test Connection button and verify that the connection to the Shift4Shop website is working.
- Click the Save button at the bottom of the window to save the Shift4Shop settings.
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 Shift4Shop options or notes are included at the bottom of each section.
- 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. If additional options are available, they can be enabled by selecting Use Advanced Options at the bottom of the Schedule section.
- Order field mapping - Use the mapping table to map Shift4Shop 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 Shift4Shop 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 Shift4Shop, sales orders will be created using this class as the sales order class.
- Default Payment Terms - If there are no payment terms mapped from Shift4Shop, sales orders will be created using this payment term.
- Default Shipping Terms - If there are no shipping terms mapped from Shift4Shop, 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 Shift4Shop.
- Order Number Prefix - An order number prefix can be defined which will be applied to order numbers mapped from Shift4Shop.
Order Item Settings
- Item field mapping - Use the mapping table to map Shift4Shop order item fields to Fishbowl order item fields. If the Fishbowl price is not mapped, then the price from the Fishbowl product will be used and any applicable pricing rules applied. If the Fishbowl description is not mapped, then the description from the Fishbowl product will be used.
- Shipping item - Select the shipping type product that will be added as a line item to orders when applicable. It will contain the shipping price to be paid by the customer.
- Ignore miscellaneous items - If this option is selected, Shift4Shop order items that are not related to an actual Shift4Shop product record will be ignored and no Fishbowl line item will be created.
- Enable order import product linking - Shift4Shop order items will be matched to Fishbowl products based on the defined field mapping. If the Shift4Shop product has been linked by ID to a Fishbowl product, that will take precedence.
- Product field - The Fishbowl product field that will match the selected Shift4Shop item field.
- Shift4Shop item field - The Shift4Shop order item field that will match the selected Fishbowl product field.
- Additional Shift4Shop information
- Ignore shipping amount - Enabling this option may lead to order disparities for totals and payments.
Order Status Settings
- Use the table to assign Shift4Shop order statuses to Fishbowl order statuses. The Order Import task will only import orders from Shift4Shop that are in a status assigned to a Fishbowl order status. If the Fishbowl order status is set to Historical, the order will be imported into Fishbowl, but it will not affect inventory or accounting. At least one active status mapping is required to use the Order Import task.
Location Group Settings
- Use default location group - Select a default location group for imported orders.
- Use order ship-to-state mapping - This option allows orders to be imported into Fishbowl Location Groups according to the ship-to state. If the state is not mapped to a location group, the default location group specified above can be used.
- Use order carrier mapping - This option allows orders to be imported into Fishbowl Location Groups according to the shipping carrier. If the carrier is not mapped to a location group, the default location group specified above can be used.
- Use location group class as order class - This option will set the class for the order to the location group's class.
- 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 Shift4Shop Customer.
- Use order billing address - Use the billing address from the Shift4Shop order instead of the address for the default customer.
- Use order shipping address - Use the shipping address from the Shift4Shop 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 Shift4Shop order instead of using a generic customer.
- Field - Select the Shift4Shop 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.
- Ship to address mapping - Use the table to choose which Shift4Shop fields are imported into the Fishbowl Ship To Name and Street Line fields.
- Bill to address mapping - Use the table to choose which Shift4Shop fields are imported into the Fishbowl Bill To Name and Street Line fields.
- Coalesce addresses - If one address is missing, use the existing address for both the shipping and billing address.
- Create missing states - Automatically create missing states.
- Mark addresses residential - Import all shipping addresses as residential.
- Use default carrier/service - When selected, all orders imported from Shift4Shop will use the selected carrier and carrier service. If this option is unchecked, carriers can be mapped between Fishbowl and Shift4Shop. 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 Shift4Shop and Fishbowl.
- Create payments in Fishbowl - When selected, payments from the Shift4Shop transaction will be shown in the Payment Viewer module.
- Use a default payment method - When selected, all orders imported from Shift4Shop will use the selected payment method.
- Use Payment method mapping - When selected, the table can be used to map payment methods between Shift4Shop and Fishbowl.
- Always create payments - If no payment data exists for the order from Shift4Shop, 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 Shift4Shop 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 Shift4Shop. This is a required setting if Use Currency Conversion is enabled in the Currency module.
- Import Taxes - When selected, the tax amount from the Shift4Shop 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 Shift4Shop. 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 Shift4Shop.
- Import Shift4Shop tax as line item note - Import the Shift4Shop 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.
- 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 Shift4Shop 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 Shift4Shop. A product link is created by storing the Shift4Shop product ID in Fishbowl.
- Link Existing Products will match existing products in Fishbowl and Shift4Shop where data matches in the selected fields.
- Import Products will import products from Shift4Shop into Fishbowl, creating them based on the field mapping and settings below.
Follow the instructions below to import product variants from Shift4Shop to Fishbowl.
- Open the product on the Shift4Shop website and click the Options tab.
- Click the Actions menu and select Advanced Options.
- Place a checkmark next to the applicable variants, and then click the Save button.
- When Fishbowl imports a Shift4Shop product with variants, a Fishbowl product is created for each variant and the Advanced Option Id is stored in Fishbowl.
- 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 Shift4Shop. 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 Shift4Shop. The product tree filter will still apply.
- Product Update Settings - This option is disabled in the Shift4Shop plugin.
- Schedule - Select the Active checkbox to export inventory levels to Shift4Shop 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 Shift4Shop 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 For Sale, Inventory On Hand, or Available To Pick.
- NOTE: In Fishbowl, kits are comprised of various inventory items, so the kit itself isn't displayed in the Inventory module. However, Fishbowl will always export an Available to Kit number to Shift4Shop. The available quantity exported for kits will be the lowest available quantity for any of the items in the kit. For example, a Wheel kit may require 1 rim and 1 tire. If there are 100 rims available, but only 5 tires, then the quantity exported for the Wheel kit will be 5. The available quantity for a configurable kit will be the lowest available quantity for the default kit items.
- 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 Shift4Shop can be limited. For example, if there is an available quantity of 4000 in Fishbowl, the quantity in Shift4Shop 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 Shift4Shop.
- 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.
- When more than one shipment exists for an order (partial fulfillment), the applicable tracking numbers are synced to Shift4Shop, however this feature does not work for orders with kits.
- If there is an API Logs button at the top of the module, it can be used to see any errors that have been logged. You can leave the API Logs window open while you work in Fishbowl and click the Refresh button at the bottom of the window as needed.
- 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 Shift4Shop button at the top of the Sales Order module and the Product module.
- To view the scheduled tasks for the Shift4Shop 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 Shift4Shop.jar file in C:\Program Files\Fishbowl\plugins\ or \Applications\Fishbowl\plugins\ on a Mac. If there are two Shift4Shop versions, exit the Fishbowl Server and remove the older version on all client and server computers.
For additional changes, see Master Plugin.
- Improved error messaging
- Fixed bug with the combine all discounts option not saving the setting correctly in the UI
- Separated order notes and order item notes into separate corresponding fields when orders are imported into FB
- General UI fixes
- Fixed product export tab issue for Canadian users of the plugin
- Fixed bug for kit inventory updates for kits with optional items
- Fixed index 0 size o error on fulfillment export task. This error occurred when a SO has a linked PO with no drop ship type SO items
- Fixed bug using the check order status option on the order fulfillment task with completed orders still sending up tracking from FB
- Added ability for users to select which payment method types to create payments in Fishbowl
- Fixed fulfillment bug for orders with only drop-ship items not sending tracking and fulfilling correctly in the channel
- Fixed pricing bug to use the discounted price on order import
- Fixed issue where taxes were removed from the payment amount incorrectly
- Fixed bug in order import instead of mapping 3D cart order ID to Fishbowl sales order number, it will now map to 3D cart order number
**This update will require the user to configure additional settings and mapping tables in the plugin. Contact Fishbowl Plugin Support for assistance**
- General UI enhancements
- Fixed bug on fulfillment for orders with kits
- This update will cause the scheduled tasks to give an error when first loading Fishbowl after updating. Users will need to go into the plugin interface and configure the additional mappings and save settings in order for the scheduled tasks to run properly
- Added ability to link products on order import. Products that were not previously linked using the product import/export tasks can now be linked during the order import task
- Fixed bug in order import when creating a new mapping in Location Group setting's mapping table, shows up blank in the channel Location drop-down
- Added enhancement for inventory sync to have a max qty option
- Added enhancement for inventory update to include "Available to Pick" for inventory type as one of the options
- Added enhancement where order import carrier mapping now has a priority option for "All" that doesn't exist in Fishbowl and causes an error when used for an order
- Added enhancement on order settings and on order items field mapping table including custom fields
- Fixed Typo in the payment panel
- Fixed (for supporting channels)where the image export was not working on the product export task
- Misc items are now supported on order import
- Fixed bug with state tax mapping table giving a bad error when a state was not mapped on an order
- Fixed advanced options error message when enabled and a day of the month wasn't specified
- Fixed advanced options error for order fulfillment task'
- Fixed data mapping error with many to one field mappings on product export
- Changed error message on order import when products are not linked and the order import failed
- Fixed product import and product export mapping issue which was causing errors and limiting many to one field mappings between FB and the channel
- On first load, a data migration task will run migrating carrier and payment mapping table data from the previous version
- On first load, existing scheduled tasks will be removed and need to be recreated by Saving the plugin
- Fixed bug where mapping validation error window appeared
- Fixed bug where smaller screens would cut off data in the Plugin UI
- Added UPC field as a mappable product field for product linking task
- Added option to use a tax mapping table on the order import task
- Fixed bug where the fulfillment task wasn't sending up the shipment tracking
- Various AU version fixes
- Added enhancement option to always record payments on incoming orders even when there is no payment data from the Channel
- Fixed bug when customer PO number did not populate correctly when the user did not have "Assign Channel Name order number to Customer PO field" checked
- Importing order taxes is now optional. With the option to create taxes disabled, if a payment is created the total will reflect the order total without tax
- Fixed bug where order import option to add on order number prefix was not saving
- Multi-currency support for orders and payments created from the channel. Multi-Currency must be turned on in FB
- With multi-currency enabled there is an option to not create payments for international orders
- Fixed bug when QB class setting was not being applied to regular products in orders
- Fixed bug where plugins first loading into a new database displayed pop up windows that should not be there
- Fixed bug when using the default payment method
- Changed so create taxes option is set by default
- Fixed bug for when discount item field was left blank and saved, causing null errors
- Added tracking to shipments on FB for fulfilled orders
- Fixed bug where UI issue did not allow some order import setting panels to be seen
- Fixed bug where panels were not sizing properly on small screens
**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 the ability to define which location group(s) will be used to sync to the Channel
- 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 where lines could be added to order status mapping without data
- 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
- Fixed bug where the "On Sale" flag for a product in 3D Cart was being unchecked by the plugin
- 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 customer order comments not importing into Fishbowl
- Fixed bug when importing a single product we store the id data correctly but when setting the sync date back and import the normal way it will import the product, but the id data doesn't get populated in the FB database
- 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 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
- New layout and updated feature set, including new mapping options for Product Import and Product Export
- Fixed a bug where "Not Completed" orders in Shift4Shop were being imported into Fishbowl
- Compatibility fixes for 2017.6 version of Fishbowl
- Improved last sync date functionality
- All plugin syncs now use the product id to sync with 3D cart
- Product options (configurable product options) now sync correctly with Fishbowl
- Compatibility fixes for 2017.3 version of Fishbowl
- Fixed tax functionality for Australia and Canada versions of Fishbowl
- Compatibility fixes for 2017.2 version of Fishbowl
- Issue: Fishbowl creates products in the cart but then fails to import the custom field ID that identifies the product
- Resolution: Custom field data is now entered correctly