A PrestaShop store I have looked after for several years: a full redesign, a suite of custom business modules, and a two-way integration with the client's ERP.
A store that works is a store you are not allowed to break. On a site maintained for several years, the work never starts with code: it starts with an inventory of what has been overridden, what has been altered in the theme, and which modules no longer have anyone maintaining them.
Moving from 1.7 to 8 is not about the version number. Between the two, the override mechanism changes, some hooks disappear, and Symfony takes over a growing share of the back office. Custom code does not age gently: it stops having anything to hold on to.
Every function the teams used daily was rewritten for the new version, with no change in use. The goal was not to modernise their habits, but to hand them back untouched the day after the switch.
The site was not updated in place: it was rebuilt entirely on a staging environment, then promoted to production on the day it was ready. A full rebuild means checking everything, function by function, because no part of the site can be taken for granted. The switch happened when that check was complete, not on a date fixed in advance.
A store like this one is not driven from the front end alone. Most of the work sits with the teams who use it every day, and none of it exists off the shelf.
A back office for phone orders was built for the operators: order entry, discounts, carriers, deferred delivery, and a secure payment link sent to the customer. A referral system connects customers to the practitioners who advise them, with dedicated codes and a restricted admin area. On top of that, a loyalty programme and quantity-based pricing rules.
The store is also connected to the client's ERP in both directions, so that information is entered only once. Orders placed on the site are sent to the ERP in the format it expects; customers and orders created outside the site come back into PrestaShop, giving the teams a single view whatever the channel.
The tricky part is not the exchange itself, it is what happens when it fails. A sync that stops without telling anyone raises no alert: it creates a discrepancy, found later, when someone orders a product that is no longer there. Every exchange therefore logs its own state.
These parts have been maintained continuously for years, and each of them has survived two major version changes without the business stopping. This is the part of the work nobody sees, and it is what decides how long a store lives.






8 is not a destination. The current version of PrestaShop is 9, and the publisher has announced a full move to Symfony: stores carrying custom code have a step ahead of them, and it is higher than the previous ones.
The work itself is unchanged: inventory first, business functions ported next, and a rollback ready before touching anything. One generation further on.
Direct client, named with their agreement. PhytoQuant's business figures belong to them: I publish none of them, here or anywhere else.
If you need a web development solution or have any queries, please get in touch and I’ll get back to you right away.
Feel free to fill in the form
or email me