PrestaShop to Odoo Migration — import products, combinations, categories, customers and orders from a PrestaShop store into Odoo through the Webservice API, in JSON. PrestaShop catalog migration, with no duplicates and a rejection report.
Overview
PrestaShop to Odoo import
Migrate a PrestaShop store into Odoo, using the base's mechanics: never a duplicate when re-run, resumes where the import stopped, trial mode, and a report stating what was rejected and why.
Also searched as: PrestaShop import Odoo, PrestaShop to Odoo migration, PrestaShop Odoo migration, PrestaShop catalog migration, PrestaShop webservice.
The Webservice, in JSON
PrestaShop 9 exposes two APIs. The new one, based on OAuth2, does not yet cover the catalog; this module therefore queries the legacy Webservice — the one that covers products, combinations, categories, customers and orders, and which the version 9 documentation still documents.
The Webservice returns XML by default. The module explicitly requests JSON: a connector that forgets to do so receives XML and concludes that the store is empty.
The three pitfalls of this API, handled
Authentication has no password. The thirty-two-character key serves as the username, and the password is left empty. PrestaShop itself says so in its rejection header, and it is the first half-day lost by anyone who writes this connector.
Multilingual fields change shape. name is "Mug" on a single-language shop and a list of translations on a two-language shop. The module accepts both: otherwise, it would work for the first customer and break for the second.
A combination's price is a difference, not a price. A variant at 2.00 on an item at 11.20 costs €13.20. The module names this field “price difference” so no one mistakes it for something else — the opposite mistake would import a catalog at ridiculously low prices, and would go unnoticed since the values still look plausible.
Tested against a real PrestaShop
No public PrestaShop demo exposes its Webservice. The publisher therefore set up a full PrestaShop 8 instance, with the Webservice enabled and a second language installed, and ran the module against it: reading the demo catalog, multilingual fields in their list form, combinations attached to their product, pagination, and a full import run twice without producing a single duplicate. The steps to rebuild this instance are in the module's tests.
What the module does not do
It does not synchronize continuously: it is a migration tool, not a sales connector. It writes nothing to PrestaShop. It does not migrate images, which are a separate binary stream in PrestaShop. It requires the free base module dyo_import_boutique.
Specifications
| Price | €149 excl. VAT |
|---|---|
| License | OPL-1 |
| Odoo series | 19.0: published on the Odoo Apps Store; 20.0: published on the Odoo Apps Store |
| Version | 1.0.0 |
| Edition | Odoo Community / on-premise |
| Technical name | dyo_import_prestashop |
| Domain | Connectors and automation |
Price excluding VAT as displayed on the Odoo Apps Store; purchase and installation are done on the Store or through your Omnifloo instance.