WooCommerce product sync between webshops

The best solution out there to synchronise WooCommerce products between multiple websites. This plug-in is not limited to just two websites, instead an unlimited amount of websites can be added. You can choose for each individual product to which websites the products will be shared and it is done with only a few clicks.

Master

This “master” website with WooCommerce is basically where you do all the work managing your products. You create new products, edit existing ones or completely remove products all together.

With every update of a product, all connected WooCommerce websites will be automatically updated.

It is also possible to use the native WordPress option to “Bulk edit” products. By making a selection of products in an overview page, you can easily add or remove them within connected websites.

Connected websites

A connected website is a WordPress website with the WooCommerce plug-in installed, separate of the “master” website. This is not done through WordPress’ multi-site option and it can be done through the internet with websites hosted on the other side of the world, for example.

Our “child” plug-in can be installed on an unlimited number of those websites. Thus by setting up the WooCommerce API connection (which is really easy, more on that later) you create a new website and add all the needed products in minutes.

Features

  • Connect an unlimited amount of child websites to your parent website.
  • Websites can be hosted on entirely different locations due the use of the WooCommerce REST Api.
  • Categories, attributes and terms are always synchronized immediately.
  • Decide yourself which products you share to each website, draft products are never shared.
  • Bulk actions to push multiple products to a website.
  • Action to push a product to multiple websites.
  • All product information is pushed to the child website.
  • Variable products are pushed to child websites.
  • Downloadable products and files are pushed to child websites.
  • Featured images are pushed + any extra images added to the product.
  • Newly created tags and attributed in the create product screen are pushed to child websites.
  • Column which shows on which website the product is shared.
  • Synchronize entire product categories and automatically sync products added to these categories.
  • Add percentage to the price on a child website.
  • Plug-in for both the parent as the child website.
  • Attribute, tags and term cannot be deleted from a child website.
  • Access to edit shared products on the child website is limited.
  • Description and short description can be changed on child without being overwritten by the parent webshop.
  • Debug errors are printed on the screen so they can be send to the developers.

Installation

Step 1: Parent Installation

Install the plugin on the website from where you want to manage your products.

This can be done through the WordPress dashboard. Go to [Plugins » Add new] and upload the woosync-parent.zip file. After it has uploaded, activated it on the [Plugins] screen in WordPress.

Another option is to upload the folder woosync-parent from the unzipped woosync-parent.zip file through FTP in the path /wp-content/plugins/. Then you go to [Plugins] in WordPress to activate it.

Step 2: Child Installation

Install the child plugin on each website where you want to share your products to.

This can be done through the WordPress dashboard. Go to [Plugins » Add new] and upload the woosync-child.zip file. After it has uploaded, activated it on the [Plugins] screen in WordPress.

Another option is to upload the folder woosync-child from the unzipped woosync-child.zip file through FTP in the path /wp-content/plugins/. Then you go to [Plugins] in WordPress to activate it.

Step 3: Parent Setup & Activate Parent API
  1. Go to [WooCommerce » Settings » API] and enable the REST API
  2. Go to [WooCommerce» Settings » API » Keys/Apps] and generate a new customer key and secret pair.
    • Description: WooSync Master (or anything you’d like)
    • User: Pick any user account with the Administrator role
    • Rights: Read/Write
  3. Save these two keys somewhere on your computer, you will need to use these for every connected (child) website.
Step 4: Child Setup & Connect to Parent

Install and activate the woosync-child plugin as described above, on as many “connected websites” as you’d like.

  • Connect back to the parent plugin:
    1. In the WordPress dashboard, go to [WooCommerce» WooCmmerce Product Sync] menu item.
    2. Enter the URL of your parent website, eg. https://my-website-example.com/
    3. Enter the WooCommerce Consumer Key you created when setting up the woosync-parent plugin on the master website.
    4. Enter the WooCommerce Consumer Secret you created when setting up the woosync-parent plugin on the master website.
    5. Click the [Save changes] button.
Step 5: Connecting child websites

On your child website:

  1. Go to [WooCommerce » Settings » Api] and enable the REST API
  2. Go to [WooCommerce » Settings » Api » Keys/Apps] and generate a new customer key and secret pair.
    • Description: WooSync Child (or anything you’d like)
    • User: Pick any user account with the Administrator role
    • Rights: Read/Write
  3. Save these two keys somewhere on your computer, you will need them in the step below when finishing up on the parent website.

Finishing up the master website

  1. When you’re done setting up connected websites, go to the [WooCommerce» Connected Webshops] menu item in the WordPress dashboard of this master website.
  2. Click on the button [Add New Webshop] at the top of the overview, one connected website after another.
  3. Fill out the following fields for one of the connected websites:
    • Consumer Secret (required, child API secret)
    • Consumer Key (required, child API key)
    • Webshop URL (required)
    • Description (optional)
    • Name shop owner (optional)
    • E-mail shop owner (optional)
    • Commission percentage (optional)
  4. Save the webshop.

You can repeat all the steps described above when adding multiple child websites. Also remember to correctly enter the parent API keys on each child website!

Step 6: Testing
  1. Add a new product on your parent webshop and save it.
  2. Edit the just added product and select any webshop you want to share it to.
  3. Save the product again.
  4. Login to your parent webshop and check if the product is there.
  5. If the product is not there and you receive an error please check our Help its not working section.
  6. If it is working edit the product again on the parent and add as many documents and images, add product variations, enter prices etc.
  7. Save the product again.
  8. Login to your child webshop to see if all the information is correctly shared.
  9. Not the case? Please send us a ticket through this website so we can look into it!

We recommend you play around with all the share features before taking it into production to have a good feel about how this plugin works, for example:

 

  • Add new categories, add products to them and share entire categories with a specific webshop.
  • Deselect categories at a specific webshop so the products will be removed.
  • Test the bulk functionality so you know exactly what it does and how, if you are not familiar with the default bulk actions.
  • Share as many products at the same time as you like, see how it works for you.

For any questions, suggestions and feedback feel free to open a ticket at this website!

Updating

When there is an update available, you should be notified through CodeCanyon. You can confirm this by logging in to codecanyon.net and going to the [Downloads] tab on your profile page.

When you’ve downloaded the update, you can follow these steps to update it on your website(s).

Updating parent website
  1. Go to your parent webshop and log in to the WP dashboard
  2. Go to [Plugins]
  3. Deactivate WooCommerce Product Sync (Parent)
  4. Delete WooCommerce Product Sync (Parent)
    No settings will be removed.
    When you re-upload the new version it will work like it used to.
  5. Upload the new version of woosync-parent.zip through [Plugins » Add New » Upload Plugin]
  6. Activate WooCommerce Product Sync (Parent)
Updating child website(s)
  1. Go to your child webshop and log in to the WP dashboard
  2. Go to [Plugins]
  3. Deactivate WooCommerce Product Sync (Child)
  4. Delete WooCommerce Product Sync (Child)
    No settings will be removed.
    When you re-upload the new version it will work like it used to.
  5. Upload the new version of woosync-child.zip through [Plugins » Add New » Upload Plugin]
  6. Activate WooCommerce Product Sync (Child)

Repeat this for every connected child webshop you’ve setup on the parent webshop.

How to use

How does the product sync work?

Before you can start sharing products from your parent webshop to any of your child webshops you need to make sure you followed all the steps described in the installation section. When the installation has been succeeded and you successfully tested your setup also described in the installation section you can start using the new product sync.

The basics

Once setup properly, the plugin is relatively easy in use. When adding or editing products all you need to do is select the box of each webshop to which you want to share your product and save your product. To remove the product from your child webshop again, simply edit the product on the parent and deselect the webshop to which you had your product shared before.

Adding, editing, trashing and deleting products.

Our plugin distinguishes between adding and editing. Obviously when editing and saving an already existing product which is also already shared to your child webshop all information will be updated on each child webshop. When trashing a product on the parent, it is also trashed on the child. When deleting a product on the parent, it is also deleted on the child.

Bulk Function

It is also possible to use the Default bulk edit function in WordPress to share multiple products to multiple webshops at once, or when necessary delete multiple products from multiple webshops at once. We added another extra bulk function called “Push to webshops” to give you the ability to quickly select a few products and push them to any of the selected webshops. (Dropdown will appear after you clicked on “Push to webshop”).

Limited access on the child

We give only limited access to products on the child website. For now only the product description and excerpt can be changed on the child without being overwritten by the parent when the product is updated there. We might – in the future – expand on this functionality to give users on the child webshop the possibility to edit any field without it being overwritten by its parent. We already created a Reset button to the row actions of each shared products, with this action you can reset any changed fields (for now just the description and excerpt) to the values from the parent webshop.

How does the category sync work?

We tried to keep the category sync as easy as possible for all users. The idea is that you can select certain categories to make sure all products in these categories will be pushed to the webshop. When you add new products in the future and add them to an existing category which is already completely shared to a webshop the product will automatically be shared to this webshop.

Important things to know:

  • When you select a new category when adding and editing a Webshop in the [WooCommerce » Connected webshops ]screen all products currently in that category will be shared to this specific child webshop.
  • When you deselect a category from a webshop all products which are synced through the category sync will be removed from this specific child webshop.
  • When adding a product to a category which is synced to a webshop, the product will be automatically added to this specific webshop.
  • When removing a product from a category which is synced to a webshop, the product will still be synced. However it will be seen as an normal individual sync, not a category sync.
  • When you want to remove the product from a category and the child webshop it is shared on: simply edit the product and deselect the specific webshop. If the product is synced though use of the category sync the product will automatically be removed from the webshop as well as the category. If the product is synced through individual sync, the product is simply removed from the child webshop without effecting any categories.

Keep in  mind

  • Customers and orders are not shared. They will be saved in the connected websites’ order overview.
  • You need to have the PHP Curl extension installed, which is normally the case.
  • When setting up this plugin on an existing WooCommerce website, you need to re-save categories, attributes, tags and terms on the master website. This way they will be automatically pushed to the connected websites.

Future features

Notifications

We plan to add notifications to store owners when products are shared from the master to connected websites.

Two-way stock synchronisation

Made a sale on a connected website? A product is reduced in stock on the master website, which is then pushed through to all other connected websites. Your stock is always up-to-date.

Better localization

We plan to implement better support for multiple languages.

Sync selected fields

We would like to add the ability to choose which fields can be changed on the connected websites.

Sync selected categories

We would like to add the ability to synchronise all products in a certain category to connected website(s).

Shared products overview

We would like to add the ability to add a clear overview of products that are shared to specific connected websites.

Let us know what your wishes are for this plugin!

Support

We’d love to help you with any questions you might have regarding our plug-in. On workdays we will always reply within 24 hours. We work from The Netherlands, the Europe/Amsterdam timezone is GMT+2.

Create support ticket

Feel free to contact us at any time on our plug-in page on CodeCanyon or email us at websupport@comsi.nl!

Help! It’s not working?

Have you come across something that is out of the ordinary? Please check the following;

  • Did upload and enable the plugin on your master website?
  • Did you upload and enable the plugin on at least one connected website?
  • Did you add the connected websites and its keys to your master website?
  • Did you give your master website read and write access using the WooApi?
  • Did you give your connected website read and write access using the WooApi?
  • Do you have the PHP Curl extension installed? Ask your hosting company or check this by yourself through eg. phpinfo().
    Not sure how? We can assist you if you contact us.
  • Disable WP_DEBUG in wp-config.php.

Still not working? See our support section.

Changelog

Soon to be released

  • Composite product support
  • WPML Support
  • Multi site support
  • More requests? Contact us at websupport@comsi.nl
Version 1.3.1 — 24 nov 2017

Fix: In some cases there was a problem syncing categories to connected websites
Fix: In some cases custom attributes could not be saved and synced on the parent website
Change: Fixed small spelling mistake in bulk edit text
Change: Fixed a mistake in text when adding a new connected webshop on the parent, it asked for the owner name twice. Second one changed to his e-mail address

The parent plugin has been updated and should be updated to v 1.3.1.
The child plugin did not get an update and you do not need to update this on all your websites. You can, of course, if you want to keep the version of parent and children in line. 😉

Version 1.3.0 — 10 nov 2017
  • Added support to synchronize stock on a product level.

The stock sync works quite simple, when managing stock on a product level all fields on the inventory tab will be synced to the child:

  • Manage stock Yes/No
  • Stock quantitiy
  • Allow backorders
  • Stock status
  • Sold individually Yes/No

When a product is bought on either the parent webshop or one of its child webshops the stock will be reduced on all other webshops the product is shared on. We extended on the WooApi to create a new call to simply reduce the stock by a certain amount for a product.

Version 1.2.0 — 25 oct 2017
  • Changed and added Labels for Webshop.
  • Changed menu position on parent from Webshops to WooCommerce -> Connected Webshops.
  • Changed menu position on child from “Product Sync” to WooCommerce -> WooCommerce Product Sync.
  • Changed README file.
  • Removed placeholder “Empty” added in all Webshop meta fields.
  • Fixed a bug when adding new categories in the new product page. It would not add the category properly and throw a 500 error, now resolved.
  • Added a new functionality which gives users the ability to sync entire categories to certain webshops. Products later added in these categories will automatically be synced to each webshop. For more instructions read our newly updated and more advanced documentation on this page.
  • Fixed a few interface bugs.
  • Added validation when adding a new webshop, it tests the api keys and URL and gives you information if it is not correct.
  • Added error message in wp_admin when you wrongly configured a webshop.
  • Fixed a bug when previously added attributes were not shared properly.
  • Added a lot of comments in the code for those interested.
  • Changed some other text.
  • Changed text “Shared product” in product overview to icon on child webshop.
Version 1.1.0 — 10 Oct 2017
  • Before plug-in activation check if WooCommerce is enabled and cURL is properly installed.
  • Now compatible with custom table prefix, if users changed the default wp_.
  • Error messages are better handled and shown on the screen instead of a full stack trace.
  • Tables are not deleted anymore when the plug-in is deactivated.
  • Bulk edit function properly formatted.
  • Fixed bug with the Push to webshop bulk function, now works as intended.
  • Removed a few PHP warnings visible when WP_DEBUG is enabled.
  • Removed some Dutch comments and translated it into English
  • Added more comments in the code for those who are interested in how the plug-in actually works.

Think of how much time this plug-in will save when hosting multiple webshops. For just $29 you can keep your WooCommerce products in sync with ease!