Improving multishop performance

There are different possibilities when setting a multishop synchronization system:

 

A single channel for many shops

 

A single channel is configured at Sales Layer so all the info is synchronized to each of the shops.

 

Assets

Quick synchronization

 

Drawbacks

In case, of deactivating a product at Sales Layer, it will be deactivated in all the shops. It is not possible to do it for a single shop, it will always deactivate the product in all the shops where the plugin is installed. The info regarding discounts, carriers, and providers will be created equally in all the shops. 

 

A single channel per shop

 

Assets

It is possible to synchronize the info in all the shops separately. This way, the carrier info, discounts, tags, etc. can be updated separately for each shop.

If we want to activate and deactivate a single product in a single shop, we can send a specific field as Enabled with values 0 or 1 to activate or deactivate at a specific PrestaShop.

 

Drawbacks

Each channel will receive the same amount of information so, it will take longer to update all the info in all the shops.

 

Optimization (abstract)

 

In order to get good optimization when synchronizing with many channels:

  • The biggest performance is caused by the process of verifying all the images: if the image exists in the category, product, and variant. If we disable the images field in all the channels and leave it as active just in one of the shops, the images will be uploaded only from a channel and only one channel will verify all the images uploaded. So, we will be avoiding the cost of redundancy when uploading images when synchronizing all the channels.
  • The channels receive info on the last modifications done in Sales Layer since the last synchronization. Therefore, if the configuration has been set to synchronize hourly, each channel will receive only the modifications done during the last hour. There are two exceptions: if it is the first synchronization or if the channel is modified or refreshed. In these cases, all the info will be sent.
  • Besides, whenever we need that certain information is not managed by the channel, we can deactivate that field in the channel’s configuration.

 

Tip: consider it so that the synchronization will be faster and more efficient.