Magento 2 Sync Products and Inventory via SOAP

Extension for Magento by Anowave

  • In Stock
  • Price:
  • €249 90
  • SKU:
  • MAGE2-SOAPSYNC
  • Premium product
  • Premium product
  • MADE IN



BETA VERSION

Synchronizes products and inventory between two or more Magento installations automatically. Keeps stock data and quantity levels consistent on multiple Magento 2.x installations.

This extension allows for real time sync between two or more Magento 2.x installations. It has the same features as per the one for Magento 1.x.

Product update is carried out silently in the background, automatically and in real time via SOAP. Syncs product data, media and pricing options between two or more Magento 2.x. installations.

Built-in support for simple and configurable products.

Overview

If you're using multiple Magento 2.x installations to sell products it could quickly become cumbersome to keep data up-to date. This is especially valid for stock level quantities. When the same product is distributed over different channels there is a chance customers to purchase more items then you actually have in stock.

This extension allows for updating stock level quantities automatically across all channels. When a customer purchases a product in one of your stores, the remaining available quantity is updated throughout the other selling channels thus preventing wrong quantities.

It also  allows you to effectively import products and product data from one Magento installation to another in real time.

The module has to be installed on each of your servers. One of those servers is presumed Primary and the rest of them Slave. When a product update occurs in the Primary server, the module will use SOAP request to update the product on all other slave servers. If the product doesn't exist on any of the slave servers, it will be created automatically. If the product doesn't exist on all slave servers, it will be created on all of them. The extension successfully copies ALL product data such as name, description and pricing. Images are also copied and updated on all slave servers automatically. Last but not least, the module supports configurable products and copies/re-creates configurable's associated products (e.g. simple products with a configurable parent).

It also copies user defined attributes as well.

 

Platform

This is an extension for Magento 2.x. It's not compatible with Magento 1.x or older versions of the platform. If you're running Magento 1.x check out the version for Magento 1.x. available at - http://www.anowave.com/marketplace/magento-extensions/magento-sync-products-and-inventory-via-soap/

 

Key features

  • Sync up to 5 Magento 2.x installations via SOAP automatically.
  • Sync stock levels and quantities between 2 or more Magento 2.x installations
  • Sync pricing options
  • Automatically replicate newly created products between 2 or more Magento 2.x installations.
  • Automatically propagate updated product data throughout all Magento installations
  • Supports simple products
  • Supports configurable products COMING SOON
  • Selective synchronization based on product status NEW
  • Ability to sync automatically or on demand via mass action. NEW
  • Ability to use custom attribute for syncing products. Using SKU by default. NEW
  • Automatic schema verification to report differencies between attributes and attribute sets between 2 or more Magento installations
  • Ability to set custom image name for each Magento 2.x installation
  • Ability to sync custom attributes. Supports the following types: text, date, select. NEW
  • Ability to sync tier prices
  • Ability to increment/decrement prices in slave servers by %. Each slave server can recieve different price based on settings in primary server. NEW
  • Built-in smart category mapping. Imports categories with mismatching primary/slave IDs.
  • Does not rewrite existing blocks, models and controllers
  • Works silently on background
  • Works in Real Time.
  • No monthly fees


Requirements

In this release the only requirement is to have the same attributes & attribute sets between all Magento 2.x installations. Automatic set and/or attributes synchronization is not supported.

 

Benefits

Unlike other similar solutions, this extension allows for syncing two or more Magento 2.x installations running on different servers. It also keeps quantities consistent amongst each Magento 2.x installation prior and after purchase and/or quantity update.

 

Smart verification

The extension has built-in schema verification which when turned on will check the differencies between primary and slave servers in terms of attributes, attribute sets, and attribute options. If a discrepancy is detected the module will report these to admin and he/she knows where an attribute or attribute option is missing. When verification is turned off the module will still try to sync products between servers. As long as attributes aren't required, the product will be updated successfully. Attributes that don't match will not be set.

Important: Unlike the module for Magrento 1.x, the verification implemented here is limited due to active bugs in Magento 2.x (https://github.com/magento/magento2/issues/4630). This is likely to be resolved soon, but for the time being, the module will not verify whether attribute options match across different slave servers.

 

Known limitations

Due to performance optimizations some limitations exist. Find below a list of the limitations of this version. These will be added and supported most certianly in future releases of the extension:

  1. 1. Does NOT sync product custom options
  2. 2. Does NOT sync up-sells, related and cross sell products
  3. 3. Does NOT sync attributes and attribute sets
  4. 4. Does NOT sync product tags
Extension version
0.1.0
Magento platform version
2.0.*,2.1.*,2.* EE
Application/Purpose
Conversion rate,Administration,Manager enhancements
Type
Commercial

Our products come with a premium support. To report a bug, use our Premium Help Desk available in your account at Anowave.

Customer review(s)

No product reviews yet. Be the first to write a review.

Note: By submitting a review you agree to our Terms and Conditions.





User Guide & Documentation

Installation from Command Line (Recommended)

This extension can be installed in a few minutes, by going through the following steps:

  • Download/purchase the extension
  • Unzip the file in a temporary directory
  • Copy directory contents and paste it in your Magento installation root directory. This extension will NOT replace existing code.
  • Disable the cache under System->Cache Management
  • Enter the following at the command line:

    php -f bin/magento module:enable --clear-static-content Anowave_SoapSync
    php -f bin/magento setup:upgrade
     
  • Check under Stores->Configuration->Advanced->Advanced that the module is present.

 

Manual installation

  • Download/purchase the extension
  • Unzip the file in a temporary directory
  • Copy directory contents and paste it in your Magento installation root directory. This extension will NOT replace existing code.
  • Disable the cache under System->Cache Management
  • Edit app/etc/config.php file and add two new elements:

    "Anowave_SoapSync" => 1
     
  • Disable the cache under System->Cache Management
  • Check under Stores->Configuration->Advanced->Advanced that the module is present.

 

Upgrading database

If you need to upgrade the database, run the following command line:

php -f bin/magento setup:db-schema:upgrade

 

Prerequisites

In order to work properly the extension MUST be installed on each Magento environment separately and configured accordigly. To better understand how to configure take the following as example.

  1. 1. Assume that you have 3 domains that you want to keep in sync e.g. example1.com, example2.com, example3.com
  2. 2. One of these domains is presumed Primary e.g. domain that will be updated and data will propagate to other domains automatically. Let example1.com be Primary in this case. Then example2.com and example3.com will be considered Slaves.
  3. Each domain has to have SOAP/XML-RPC authorization token configured in System -> Integrations with full permissions on all resources.

 

Configuring SOAP (Users & Roles)

To use the extension, you need to create an API authorization token.

First an User role needs to be added. Login to the Magento 2.x Admin Panel and navigate to System > Permissions > User Roles.

Create a new API role

This page lists the current API roles. If there none listed yet, click on Add New Role.

Every role needs a name. This can be anything. Just make sure it is descriptive enough for yourself. The second tab on the left (Role Resources) allows you to select which resources should be available for users with this role. While you can select exactly which privileges are given, we recommend you select All unless you're willing to spend hours with experimenting.

Create a new API user

Now that the role is created, you can add an user that makes use of this role. The strange thing here is that the user fields here seem to indicate a person or individual, while in fact we're creating a system account of some kind. The fields First Name, Last Name and Email just need to be filled in with any value you like. Make sure the password secure enough. The second tab on the left is called User Role, and that's where you select the role earlier created.

Create a new Integration

To create new go to System -> Extensions -> Integrations -> Add New Integration and enter the required details. Under API tab select "All" resources.

Once integration is created you will get a Private Authorization Token. This token is important so copy it somewhere

 

Configuration

To explain how to configure module, it is best to use an example. Presume that you want to sync 2 Magento installations (the same would work for 3 or more).

a) Presume your first server is http://example1.com. We'll refer to this as Primary server
b) Presume your second server is http://example2.com. We'll refer to this as Slave server

The extension can be configured quickly and requires minimum amount of knowledge. To configure the extension:

 

CONFIGURATION AT PRIMARY SERVER

  1. 1. Go to Stores -> Configuration -> Anowave Extensions -> SOAP Sync Settings
  2. 2. Enter your license key
  3. 3. Configure additional settings/options
  4. 4. Set server type e.g. Primary
  5. 5. Enter WSDLs (up to 5 supported). The WSDL address for Magento is usually located at http://<domain>
    In our example, it would be http://example2.com etc.
    In WSDL1 address enter http://example2.com
  6. 6. Enter the Authorization Token (as described in Create new integration above). This one should be the one that exist on Slave server.
  7. 7. Configure additional settings.

 

CONFIGURATION AT SLAVE SERVER

  1. 1. Go to Stores -> Configuration -> Anowave Extensions -> SOAP Sync Settings
  2. 2. Enter your license key
  3. 3. Configure additional settings/options
  4. 4. Set server type to Slave
  5. 5. Enter WSDLs (up to 5 supported). The WSDL address for Magento is usually located at http://<domain>
    In our example, it would be http://example1.com etc.
    In WSDL1 address enter http://example1.com
  6. 6. Enter the Authorization Token (as described in Create new integration above). This one should be the one that exist on Primary server.
  7. 7. Configure additional settings.

 

In effect the idea is to configure reciprocal settings e.g. the WSDL address in Primary server points to Slave server and vise-versa, the WSDL address in Slave server points to Primary server. This way when an update occurs on Primary server it will update all slave servers specified. This works for Slave server as well, when an order occurs in Slave server it will update primary server in terms of stock levels etc

 

Inventory & Stock levels

 

Stock levels at product create/update

The module will update/set stock levels and propagate the data to all slave servers when product is updated/created on Primary server.

 

Stock levels at transaction/order

The current version of the module will pick the quantity from the server where order occurs and use that quantity as "lowest" quantity. This quantity will be propagated through other connected servers. We chose this approach as default in favor of performance. On servers where order placement concurrency is unlikely to occur, it works well and it's a good trade between accuracy and performance.

For setups where orders can occur simultaniously,  the extension comes with a built-in functionality to check the lowest quantity accross all servers upon order. This however is turned off by default and requires a small code change to activate.

 

SSL and .HTACCES

 

The module supports SSL however if you have password protected pages via .htaccess rules, it will fail to load the WSDL files. They are loaded by using an HTTP protocol and .htaccess passwords will prevent the module from reading the WSDL file, thus leading to unpredicted behaviour. To ensure that the module can read the WSDL file, open a browser where .htaccess passwords aren't remembered and try to load the WSDL URL. It should display a valid XML file.

 

PERFORMANCE

Once everything works correctly, you can improve performace by doing a few simple steps. Thse would apply for both Primary and Slave servers.

Enable default Magento cache

 

To turn ON WSDL cache go to System -> Cache Management and enable both Web Services Configurations (api.xml and api2.xml)

Enable WSDL cache at code level
Edit file app\code\Anowave\SoapSync\Model\Wsdl\Endpoint.php (line 85) change WSDL_CACHE_NONE to WSDL_CACHE_BOTH and flush Magento cache from backend

 

Turn OFF Schema Verification
Before propagating data to Slave servers, the module tries to compare attribute sets and attributes themselves to identify any differencies that may cause product to not save properly. If you're 100% sure that your servers are identical, you can turn off verification. This will speed up the whole process. To turn of Verification go to Stores -> Configuration -> SOAP Sync Settings and set Verify Schema to "No"

 

Installation

Now: Next:

If you like this product, share it with your friends



Extensions for Magento

Anowave is an extension developer for Magento 1.x and Magento 2.x platforms. We provide a wide range of premium extensions for our in-house and public clients. The extensions that we offer extend the capabilities of Magento and provide a bespoke functionality. They also fill some missing gaps in the functionality provided by the base platform and help customers in chosing Magento as prefered ecommerce platform.

The extensions that we offer are part of our full range Magento service which includes also a Premium Helpdesk where customers get to speak with actual software engineers and get their issues resolved without hussle. Premium labeled modules also include free installation, confiuration, testing etc.