FAQS / Frequently asked questions
1. When synchronizing an e-commerce, the existent data is overwritten or duplicated? Is it needed to delete them?
R: The existent data is not deleted nor is required to delete them.
To synchronize, the plugin looks for a relationship through the ID between the existent data in PrestaShop and the data coming from Sales Layer (normally using an intermediate table or attributes generated in the e-commerce).
In case that relationship exists, the plugin updates the product info.
Otherwise, the plugin looks for existing products with the same reference or name, these are not assigned to other Sales Layer IDs.
If the plugin can find it, we establish the relationship and we update the data.
Otherwise, we create the register.
2. If I delete a product directly in Sales Sales, is it deleted in the e-commerce too?
R: Categories and products change their status to deactivated and variants are deleted at the e-commerce. However, if the channel in Sales Layer is refreshed or modified before it is synchronized (after deleting products in Sales Layer), products won’t be deleted and will be kept in a non-consistent status (they exist in the e-commerce, but not in Sales Layer). In that case, the only solution is to delete them directly from the e-commerce.
3. How long does it take to synchronize an e-commerce?
R: This is relative. It depends on the resources, amount of attributes, etc., but it could take between 0,5-1,5 seconds per category and variant, and 1-3 seconds per product (at least for the creation: updating is faster). If there aren’t new images being processed is faster.
4. The console shows an Ajax error 404.
R: This can be caused for different reasons. Typically, the reason is an error that comes from changes in PrestaShop domains. This way, if the PrestaShop installation had a domain that does not exist anymore, the outdated redirection rules are likely to remain on the
This error doesn’t cancel the synchronization. The plugin uses Ajax so the customer can easily manage the status of its synchronization. It has a security layer so, in case there is an error, the form is sent anyway to complete the action.

5. If I update a product field that is not mapped and linked in the PrestaShop connector, will the system update and send the product to the e-commerce?
Yes, every time you modify a field in a product - whether it concerns a field in the PrestaShop connector or not - the item will be updated and sent to the e-commerce.
6. What is the meaning of the colors of the PHP modules in the Diagnostics tab?
R: In this tab, you can see different modules with different colors: Green, Gray, and Blue:
- Green means that Sales Layer and the Prestashop installation use and share the same module;
- Gray means that Sales Layer uses that module, but the Prestashop installation does not use it;
- Blue means that Sales Layer does NOT use that module, while the Prestashop installation does.

7. How do we change the version of the plugin?
R: If you want to change the version of the plugin, we recommend updating the module in PrestaShop instead of uninstalling it. Uninstalling the plugin you will lose all item links between Sales Layer and PrestaShop. When installing the plugin from the new one, some modifications will not be reflected in PrestaShop (the change of the product status for draft / invisible).
8. How to export product images from PrestaShop?
R: Often you will find a situation where you need to upload data from PrestaShop to Sales Layer. This can lead to a common problem due to the way PrestaShop manages the image naming system. Once an image is uploaded to PrestaShop, it is stored with a folder identification system and a unique name per image.
For example:
-
For products: http://dominio/img/p/1/2/3/4/1234.jpg http://dominio/img/p/1/2/3/5/1235.jpg
-
For categories: http://dominio/img/c/1/2/3/4/1234.jpg http://dominio/img/c/1/2/3/5/1235.jpg
When you access the same images at the shop, PrestaShop replaces the image identifier with the product/category one like this:
http://dominio/1234-prod_default/producto.jpg http://dominio/1235-prod_default/producto.jpg
That is the reason why the URL is exported this way when it comes directly from a PrestaShop export: different folders, same name for the image. Then when Sales Layer imports it, as the name can’t be duplicated, it will only upload one with the same name.
To avoid this situation it is possible to modify the configuration from PrestaShop. You should go to Configure > Advanced Parameters > Database > Add new SQL query:

And, then add the next query, in order to get the content to export from PrestaShop in a CSV file. With this CSV content, we can import it into Sales Layer.
(Take into account, that this example uses a fake domain name as an example).
SELECT aux.reference,
Group_concat(aux.img SEPARATOR ' ,') AS imagenes
FROM (SELECT p.id_product,
p.reference,
CASE
WHEN Length(im.`id_image`) = 6 THEN
Concat('https://yourdomain.com ', '/img/p/', INSERT(
INSERT(
INSERT(INSERT(INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), 6, 0, '/'), 8, 0, '/'), 10, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 5 THEN
Concat('https://yourdomain.com ',
'/img/p/',
INSERT(INSERT(INSERT(INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), 6, 0, '/'), 8, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 4 THEN
Concat( 'https://yourdomain.com ', '/img/p/',
INSERT(INSERT(INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), 6, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 3 THEN Concat(
'https://yourdomain.com ', '/img/p/', INSERT(
INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 2 THEN Concat(
'https://yourdomain.com ', '/img/p/',
INSERT(im.`id_image`, 2, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 1 THEN Concat(
'https://yourdomain.com ', '/img/p/',
INSERT(im.`id_image`, 2, 0, '/'), im.`id_image`, '.jpg')
ELSE ''
end AS "img",
im.cover
FROM ps_product p
LEFT JOIN ps_image im
ON ( im.id_product = p.id_product )
ORDER BY cover DESC) AS aux
GROUP BY id_product;
There are two things to consider about this query:
-
The domain name has to be adapted in all the concat (with the URL)
-
The order of the images has to be included so the cover image follows the image order.
From here, it will only be needed to adapt the query for categories and any other image field to import into Sales Layer.
9. What do I do when there is a synchronization error with Related Products and Pack Products?
R: Is it possible that the first time a pack product or related product is synchronized, the reference link to the pack product could not be found. This happens because the related product is not in the database yet.
syncOneProduct() > product reference : "myProduct" product type pack. ## Error. Product reference to link does not yet exist ->Array
To solve this problem, you might want to re-synchronize and download the data again using the plugin connector.
10. Synchronization errors with catalog ID don’t exist in the table.
R: When you see this message:
syncOneProduct() > ## Error. product reference : "myProduct" The catalog with ID :X for the company with ID: XXXX does not exist in the table. It is possible that it has been deactivated or deleted.Change the state of the category and of the product to invisible,and then back to visible again so that the issue can be resolved.
Just ignore it, it’s not an error.
11. What happens when there is a pagination error because there are too many items on a page?
R: When this happens:
storeSyncData() > ##Error.:xxx Msg: Error connection: Empty reply from server
The plugin has a high pagination set in the connector for the items it is synchronizing.
To solve this issue, wait for the synchronization processes to finish and then synchronize again, but this time select a lower number of pages in the connector.
12. Debugging an item at a low level
R: Starting from version 2.1.1 of the plugin, the possibility to debug specific items with a complete level of detail is introduced. This functionality works even with debug logs deactivated in the "Diagnostics" section.
The functionality applies to categories, products, and variants.
To activate it, the following steps must be taken:
-
Create a record in the "slyr_additional_config" table, which will be created with the table prefix chosen by the client in their Prestashop installation.
-
Create a row for each type of item you want to debug. For example, create a record with
configname = {CATEGORY_LOG, PRODUCT_LOG, VARIANT_LOG}
, and withsave_value = ID:38034|ref:WOOD-TABLE-1000
.
In these records, you can add:
-
Internal IDs of the Sales Layer item using:
ID
-
Client's item references using:
ref
-
The
|
operator allows adding multiple items, keeping in mind that the length of this field is 500 characters by default.
As a result, the details of these items will be displayed in the debug logs.