How to Sync Your Craftpeak Store with Square

The Square plugin does three things:

  1. It allows your online store to process payments using your Square account (which means you get to use Square's payment rates)
  2. It keeps inventory between WooCommerce and Square continuously up-to-date for any/all products you want to sync
  3. It allows you to to change product metadata in one platform and have it update automatically in the other platform

Summary of current functionality

The plugin can currently:

  • Process ecommerce transactions via your existing Square account
    • Note: enabling this disables Stripe transactions entirely
    • This means that you can view all transaction data within Square natively
    • Metorik will still track all your ecommerce sales as well; use it as an additional resource!
  • Sync inventory between Square and WooCommerce for any/all products you desire
    • Square is always the source-of-truth for inventory. All updates to your inventory will be done within Square’s platform.
    • When inventory is updated in WooCommerce, it is then updated in Square immediately
    • When inventory is updated in Square, it is then updated in WooCommerce every 5 minutes
  • Limited: product metadata synchronization between Square and WooCommerce
    • Choose whether you want Square or WooCommerce to be your product metadata source of truth. 
      • When you update your primary platform, the metadata for a given product will then be updated in the secondary platform
    • Product name, image, and price correctly update
    • Product description correctly updates when using the Description field
      • By default, the description in your WooCommerce store uses the Short Description field, which does not sync, so be sure to add your description to WooCommerce’s Description field in order for it to sync with Square.
        • Similarly, if Square is your source of truth, updating a product description in Square will not update the Short Description field in WooCommerce

Initial Square plugin configuration

This assumes you already have an existing and active Square account.

If you haven’t already, submit a request to us at support@craftpeak.com to add the plugin to your WooCommerce store. Once the plugin has been installed:

  1. Log into your store
  2. On the left-hand menu, click WooCommerce>Settings
  3. Once in the Settings, click the Square tab near the upper-right
  4. Click the “Connect with Square” button
  5. A new window will automatically open, asking you to log into Square
  6. Once you’re logged into Square, you will be prompted to allow (or deny) the plugin to communicate with your Square account. If you want this to work, click “Allow”.
  7. Once you’ve returned to the Square plugin settings, you should see that your Square account has been connected

Enabling transaction processing via Square:

  1. Go to WooCommerce>Settings
  2. Click the “Payments” tab
  3. If Stripe is enabled, disable it and click “Save”
  4. Enable the Square payments option and click “Save”
  5. On the Square line item, click “Manage”. From there you can configure how your customers will see the Square payment gateway during checkout
    1. Ensure that “Enable this gateway” is selected
    2. Feel free to change the “Title” or “Description” as you see fit
    3. We recommend enabling the “Allow customers to securely save their payment details” option; this will allow repeat customers to have their payment info automatically entered if/when they check out from your store again in the future
    4. “Detailed Decline Messages” are nice to have turned on, but definitely not necessary
    5. Leave all other options as-is

Enabling inventory synchronization for your store:

  1. Go to WooCommerce>Settings
  2. Click the “Square” tab
  3. From the “Business Location” dropdown, select the location that you want to synchronize your WooCommerce inventory with
  4. Select the “Enable to push inventory changes to Square” option
  5. Click “Save Changes”

Configuring inventory synchronization:

Once you have enabled inventory sync (see above), you can synchronize a given product’s inventory count between WooCommerce and Square. 

Square and WooCommerce sync product inventory based solely on SKUs. For a product’s inventory to sync, its SKU in WooCommerce must match its SKU in Square exactly. Any products that do not have matching SKUs - or do not have SKUs at all in one or both platforms - will not have synchronized inventory. SKUs are how you will tell the plugin which products you want to sync or to ignore.

To sync a basic product’s inventory count:

  1. Ensure you have enabled inventory synchronization in the Square plugin settings
  2. If your product already has a SKU assigned to it in Square, copy it from Square
  3. Find your product in WooCommerce and Edit it
  4. Under Product Data, click “Inventory”
  5. Add the product’s SKU to the “SKU” field
    1. If this product does not have a matching SKU in Square, copy it from WooCommerce, paste it into the product’s SKU field in Square, and save the changes
      1. SKUs can be found in Square in the Edit Item page for a given item
  6. “Update” the product (this saves the SKU)
  7. Under Product Data, click “General”
  8. At the very bottom of the Product Data table, select the “Sync with Square” checkbox
  9. Update your product again
  10. To confirm the product’s inventory is now synchronizing with Square, again under Product Data, click “Inventory”
  11. If the sync worked, the “Stock Quantity” field should be greyed out, and the value should exactly match the current stock value in for this given product in Square
    1. Note: underneath the “Stock Quantity” field is a “Fetch stock from Square” link. Clicking this will immediately update the stock count for this product in WooCommerce
  12. As long as the SKU for this product is identical in both WooCommerce and Square, and as long as “Sync with Square” is enable, this product’s inventory will be synchronized as follows:
    1. Whenever the product is purchased (stock decreased) or refunded (stock increased) via WooCommerce, the inventory will immediately be affected in both WooCommerce and in Square
    2. Whenever the product is purchased, refunded, recounted, or in any other way changed via Square, the inventory will be updated in WooCommerce every 5 minutes (or whenever you click “Fetch stock from Square” for a given product”

To sync a variable product’s inventory count (i.e. products with variations, such as t-shirts that have multiple size options):

  1. Ensure you have enabled inventory synchronization in the Square plugin settings
  2. If your product already has a SKU assigned to it in Square, copy it from Square
  3. Find your product in WooCommerce and Edit it
  4. Under Product Data, click “Variations”
  5. Expand a given variation and add the SKU to the “SKU” field
  6. Repeat for all variations
  7. Save the product.
  8. In Square, open the corresponding item
  9. For each variation listed in Square, copy-paste the SKU from the corresponding variation in WooCommerce, and save
    1. Shortcut: you can copy-paste the SKU for only one variation, and when the product syncs the first time it will automatically populate the rest of the variation SKUs
  10. Back in WooCommerce, click on the General tab for your product, and check off the “Sync with Square” checkbox
  11. Update your product
  12. To confirm the product’s inventory is now synchronizing with Square, again under Product Data, click “Variations”
  13. Expand any of your variations and confirm that the “Stock quantity” field is greyed out and has a stock count matching the stock in Square

Product metadata synchronization:

The Square plugin allows you to make changes to a product’s metadata in one platform and automatically update the product’s metadata in the other platform accordingly. Once you tell the plugin which platform you want to use as your source of truth, it will automatically update the secondary platform whenever a product’s information changes. 

If WooCommerce is your source of truth, it will update in Square:

  • Product Title
  • Product Price
  • Product Image
  • Product Category
    • Note: Square allows only one category for a given product. Square will always inherit the top-most selected category for a given product (as seen in the screenshot below).
    • For example: as seen in the below screenshot, Square would inherit the "Wine Bottles" category from this particular product because "Wine Bottles" is the top-most selected category.
      •  To change the order of your categories, open up WooCommerce, and click Products>Categories. From there you can drag to re-order categories!

If Square is your source of truth, it will update in WooCommerce:

  • Product Title
  • Product Price
  • Product Description
    • Note: this updates the Description in WooCommerce, but Craftpeak-hosted stores used the Short Description field. Make sure you manually update the Short Description field in order for your changes to be seen on your online store!
  • Product Category

Any metadata not listed above will still need to be manually updated.

Craftpeak's recommendations:

  • For flash sales/high-demand sales with in-store and ecommerce sales, we strongly recommend that you keep your e-commerce inventory separate from your taproom inventory for any product(s) that are part of the sale. Square only updates the inventory in WooCommerce every 5 minutes, making it easy to oversell in this scenario.

Known issues and limitations:

  • Only some product metadata syncs between platforms (see the list of working metadata here)
  • When submitting a partial refund for an order via WooCommerce, any re-stocked (i.e. returned or cancelled) items will need to have their inventory count manually updated in Square. There is a known bug with partial refunds that causes inventory to not be updated.
    • Full refunds work as expected