1. Documentation /
  2. WooCommerce Square: Startup Guide /
  3. WooCommerce Square: Sync Settings

WooCommerce Square: Sync Settings

WooCommerce Square can be used for managing inventories and also as a payment gateway. You can configure the plugin to use either one of them or both!

This guide walks through the settings for syncing inventories. Before jumping into the sync settings, please make sure that your site meets these requirements and that you have connected your Square account to your site.

Settings

↑ Back to top

From WooCommerce > Settings > Square, you can configure the following settings to determine how data sync between Square and WooCommerce:

  • Business location: Select the Square location to link to this site. Locations are queried from Square and are only listed if they are Active and have Credit Card Processing enabled. To enable Credit Card Processing, you will need to go through the process of setting up your account, including verifying your identity. You can verify your identity in your Square dashboard under Setup Guide > Get Paid > Verify Your Identity.
  • Sync Setting: Choose where you will update data for synced products. Click here to learn more about product syncing.
  • Sync inventory: Enable to sync inventory between WooCommerce and Square. When WooCommerce is set as the Sync Setting, inventory changes in WooCommerce overwrite Square inventory. When Square is set as the Sync Setting, inventory cannot be changed in WooCommerce, and will always be pulled from Square. Regardless of your Sync Setting, inventory is pulled from Square every hour to account for POS sales. Any inventory editing needs to happen at Square.
  • Handle missing products: When the Sync Setting is set to “Square”, enable to hide products in your WooCommerce Products list that aren’t found in Square. Please note that this option is only applicable for products where Sync with Square is enabled within the individual product setting here: Product data > General > Sync with Square, “Update product data with Square data” is checked.

    If disabled, no action will be taken against missing products beyond a notification in the Sync records area.
  • Sync interval: Frequency for how regularly WooCommerce will sync products with Square.
  • Import Products: Import new products and product changes from Square into WooCommerce. For a Square product to be imported, it must have a unique SKU not existing in WooCommerce. This needs to be run each time new products or variations are created in Square.
    As of 2.2.0, all existing products will be updated using the latest information pulled from Square, this includes importing new variations, removing variations and importing stock, SKU or product name changes.
  • Connection: Connect or disconnect your site from Square. Click here for instructions on connecting to Square.
  • Enable logging: Enable to save debug messages to the WooCommerce > Status > Logs page. Please do not enable this setting unless there are issues with the plugin.

Product and Inventory Sync

↑ Back to top

You can share product and inventory between Square and WooCommerce, which helps keep each system up-to-date whether you process a transaction via Square or WooCommerce. In your Square settings in WooCommerce, you can decide whether Square or WooCommerce should be the Sync Setting (previously known as System of Record before the 3.4.0 version) for your store.

What Is a Sync Setting?

↑ Back to top

The Sync Setting (previously known as System of Record before the 3.4.0 version) will determine how product data is shared between the two and which one has the last word if there are differences between the two.

The Sync Setting is important when you change or update the products.

Product changes based on orders such as inventory changes are not affected by this. Even if Square is the Sync Setting, when an order comes in via your WooCommerce store, the inventory on Square will be updated as well.

The Sync Setting is the environment where you should make changes to the product’s features such as name, description, and image.

  • If you sell via multiple channels (e.g. in-person with Square POS and online), we recommend setting Square as your Sync Setting. Using Square as the Sync Setting is especially helpful if inventory is shared between Square locations. In this case, WooCommerce Products will be overwritten with data from the Square product catalog.
  • If you sell online only, we recommend setting WooCommerce as your Sync Setting. This will ensure basic WooCommerce product data is pushed to Square as it is changed on your site.
  • The option to Do not sync product data is useful when using Square as a payment gateway only, in which case product syncing is not required.

How to Enable Syncing

↑ Back to top

To share product information & inventory between Square and WooCommerce, you must enable syncing for that product by following the steps below:

  1. Go to Products.
  2. Select the product in question.
  3. Enable the Sync with Square setting. This is only available for products with a single attribute and a SKU, this is how products are matched between Square and WooCommerce.
  4. Click Update.

To update syncing for multiple products at the same time:

  1. Go to Products.
  2. Check the products you want to update.
  3. From the Bulk Actions menu, select “Edit”.
  4. Update the Sync with Square? field to “Yes”.
  5. Click Update.

Sync Setting – Square

↑ Back to top

When Square is set as the Sync Setting (previously known as System of Record before the 3.4.0 version), your products in WooCommerce will be overwritten with data from your Square products for the following fields:

  • Product name
  • Product price
  • Product description
  • Product category
  • Inventory count (if inventory sync is enabled)
  • Product image, if an image is not set in WooCommerce

Square will automatically sync information with WooCommerce approximately every 60 minutes. You can also run a manual sync any time. In both cases, Square will:

  • Update synced WooCommerce products to reflect changes made to Square products with matching SKUs.
  • Hide synced WooCommerce products when the SKUs are missing or were deleted from Square if the Handle missing products setting is enabled. If this setting is disabled, no action will be taken against missing products beyond a notification in the Sync records section.

As of version 2.0 +, neither automatic nor manual updates will import new products from Square to WooCommerce. If you have created new products and wish to import them to your WooCommerce store, please use the option to Import Products as mentioned above under Square settings.

When Square is set as the Sync Setting, you should avoid changing product data in WooCommerce (manually or otherwise) as these updates could be overwritten when changes are made to the corresponding products in Square during the next automatic sync. Please note product data will always be overwritten by Square data when manual sync is run.

Sync Setting – WooCommerce

↑ Back to top

When WooCommerce is designated as the sync setting, the Square product catalog will be overwritten with data from the WooCommerce Products list for the following fields:

  • Product name
  • Product price
  • Inventory count (if inventory sync is enabled)
  • Product category (see note below)
  • Product image: supported image format (.jpg, .jpeg, .png, and .gif files).

Note: Square allows one category per product, so if your synced product has multiple categories or sub-categories in WooCommerce, only the first category in alphabetical order will be sent to Square without any consideration for whether it is a parent or child category. For example, if a product is under “Clothing > Accessories” and both categories are explicitly checked on the edit product screen, only “Accessories” will be used even if “Clothing” is the parent category.

The plugin will send updated information from WooCommerce to Square whenever you make a change to a synced product via manual edit in WooCommerce, import, or API. You can also run a manual sync any time. In both cases, WooCommerce will:

  • Update Square products to reflect changes made to synced WooCommerce products with matching SKUs.
  • Create a new Square product when a synced WooCommerce product doesn’t have a matching SKU in Square.
  • Remove the location from the Square product when a synced WooCommerce product with a matching SKU is deleted from WooCommerce.

Note regarding Inventory Sync: When WooCommerce is set as the Sync setting, inventory changes in WooCommerce overwrite Square inventory. However, when “Sync Inventory” is enabled, regardless of your sync setting, inventory is pulled from Square every hour to account for POS sales. In such cases, any inventory editing needs to happen at Square. So even with WooCommerce as SOR, any change to the product name/price/image/category will sync into Square, but Square will always have the final say when it comes to stock.

Manually Sync Products and Inventory

↑ Back to top

You can run a manual sync any time to ensure records match between Square and WooCommerce. To run a manual sync:

  1. Go to WooCommerce > Settings > Square.
  2. Go to the Update tab.
  3. Click Sync Now.

The sync results will appear in the Sync records section. If you have enabled the Square sync completed email, any listed recipients will receive an email once the manual sync is complete. Alerts identify any issues with the sync that require your review. You can take the following actions against Alerts:

  • Delete: Remove the alert from the list.
  • Ignore: Ignore the alert without removing it from the list.
  • Unlink: Disable syncing for this product.

Sync Email

↑ Back to top

For businesses with many products, syncing can take some time. You can enable the Square sync completed email to notify you when a manual sync is complete. Follow the steps below to set up this email:

  1. Go to WooCommerce > Settings > Emails.
  2. Select Square sync completed.
  3. Check the Enable box.
  4. Enter one or more recipients for this email. By default, it will be delivered to the WordPress admin email as defined in Settings > General.
  5. Click Save changes.

Import HTML descriptions from Square

↑ Back to top

By default, item descriptions are stripped from all HTML tags to plain text during import.

To allow HTML in the imported descriptions, use the woocommerce_square_create_product_data filter:

/**
 * Enable HTML descriptions during Square import
 *
 * @param array $data Product data.
 * @param SquareConnectModelCatalogObject $catalog_object The catalog object from the Square API.
 * @param WooCommerceSquareSyncProduct_Import $product_import Import class instance.
 *
 * @return array
 */
function my_square_enable_html_description( $data, $catalog_object, $product_import ) {
    $data['enable_html_description'] = true;
    return $data;
}
add_filter( 'woocommerce_square_create_product_data', 'my_square_enable_html_description', 10, 3 );

Note: We are unable to provide support for customizations under our Support Policy. If you need to customize a snippet, or extend its functionality, seek assistance from a qualified WordPress/WooCommerce Developer. We highly recommend Codeable, or a Certified WooExpert.

Troubleshooting

↑ Back to top

Please refer to the Troubleshooting guide.

Frequently Asked Questions

↑ Back to top

Please refer to the Frequently Asked Questions guide.