PrestaShop 1.7 will be a catastrophe. Here is why

PrestaShop will become a totally different software with the release of 1.7 in the upcoming months. Here are a few reasons why I think it will be a catastrophe for the company.

Here is the updated post a few days after the official 1.7 release: PrestaShop 1.7 is out, here is why it is a failure.
The more I read about PrestaShop 1.7, the more I think it will be a complete failure.

PrestaShop 1.7 will (almost) not be retro-compatible (at all)

While the first news about it, which came directly from the development team, mentioned a gradual adaptation to symfony and hogan, the most recent FAQs on the build site clearly stated that upgrading to 1.7 will be next to impossible.
1.7 will be a drastic shift in how the software is conceived since its own roots, and for this reason 90% of what currently works fine on your 1.6 will never be compatible with 1.7. This was clear for themes already (which might even be acceptable), but even if they still mention that 1.6 modules “should work with little to no changes in 1.7″, they add a few caveats on incompatibilities, specifically:

  • - those which target the theme/front office – because we rewrote the way themes are written.
  • - those which target the Product page – because we rebuilt it with Symfony2 and its Twig template engine.
  • - those which target the Modules page – again, because we rebuilt it with Symfony2 and its Twig template engine.

To translate and make it clear to everyone:

  • - Anything that outputs content to the front office (90% of the modules, including sliders, best sales, coupon related, menus…)
  • - Anything that hooks to DisplayAdminProductsExtra
  • - Anything that has a configuration menu (?). Hard to interpret this, there is no module that I know altering the modules list, so we have to assume it’s the modules configuration page

Will any merchant ever upgrade to 1.7? (Short answer: no.)

Given the insane amount of effort that will be required to upgrade a running store to PrestaShop 1.7 (see here), it’s likely that nobody will ever do it.
Thinking of the current chills one already feels when upgrading a minor version, and seeing how painful it has been to move from 1.4 to 1.5, or to 1.5 to 1.6 in the past, chances are no merchant will ever risk his business to radically switch to a new software. Alas, this is what 1.7 will be, a completely new system that will force you to start anew with your shop.

Smarty or not Smarty

It’s hard to understand a few incoherent lines of the FAQs page. While they state the 1.6 themes will not be compatible with 1.7, they also want to continue using Smarty. It would have been better to switch to Symfony since 1.7.0, instead of planning it for future versions, since in any case nobody will be able to upgrade (foreseeing other incompatibilities ahead).

Good-bye overrides!

Yes. Unfortunately, PrestaShop 1.7 will not use overrides anymore. The article states legacy architecture will still be usable; however the back office’s Product and Modules page will not allow their usage. Into human language, it means all modules currently (wisely) using overrides will have to drop the system in future 1.7 versions.

This adds another point to the issues for upgraders: any module using overrides will have to be re-written.

It is not clear yet how modifications will be handled, but as long-time developer, I am afraid the new extensions system will have a strong impact on code maintainability.

And more

  • - Mixed up back office interface (Symfony on some pages, Smarty on others)
  • - The current Beta is almost impossible to install on non-unix OS (tried 4 times, all failures)
  • - 1.7 will still use the old Swiftmailer, which means no TLS or compatibility with Google Servers

For all these, there will be no reason not to migrate to some other software (OpenCart, Magento, just to name a few) for those people currently experiencing trouble and limitations with PrestaShop 1.6. PrestaShop 1.7 doesn’t simply have a couple of good-deal breaker features, it’s just a failure in its own conception.
In my opinion, it’s not acceptable to ask any merchant to switch e-commerce software after establishing a successful business. Given that nobody (1.000009%?) will ever upgrade to the new version, PrestaShop is probably going to lose a big slice, up to 70%, of its current user base. Thinking about your business long-term, you might want to start looking for a life-boat.

Stay tuned for more info about PrestaShop 1.7’s release.

Additional Resources

You like the tuts and want to say "thank you"? Well, you can always feel free to donate:

  • maofree

    Hi
    the useful “autoload” folders are removed too
    the server medias have become 1
    the long descrizion and product details in the front-office are inside a little block on the right, on the left it is completely empty
    The default font-size is too big for any person

    Some default modules are without any css style like productcategories and productviewed
    All is focus to sell extra modules and themes, it could be ok but with this strategy many people will go to other cms the same for developers

    bye

  • http://eoliashop.com Eolia DevCustom

    I completely agree.
    PrestaShop no longer listens to his community for a long time ago and we see the result of the geniuses of the code…

    Personally, I remain on the 1.6 corrected by me. I use it with my clients by removing ALL calls to Addons or Prestashop.com^^

  • http://www.podemski.info/ Krystian Podemski

    Brave words – but I think far too quickly written ;)

    • http://tapanda.gr Konstantinos Kogkalidis

      I cannot understand why people criticize so much a DEV version. It’s not ready for production yet. And yes I really believe there are major changes under any point of view (dev, des, merchant). It’s a software for free. If someone needs newer version, someone has to work on it (even if it is a migration module). We all know that modules and code in general are being shared in pirate channels. So they deserve for making profit, some others to “volunteer” their time. Totally unfair. In order to gain money, they have to give money first. Any person that doesn’t want to spend money, has to spend time in order to make by his own the required changes.

  • gskema

    Let’s wait for PS 1.8

  • http://www.pronux.ch Pronux

    djfm Feb 16 14:51 on gitter about future module development: ”
    “So using for example the symfony service container inside a controller, etc no, this is not implemented yet, but I think having modules packaged as bundles would be the next logical step yes (speaking as myself, not as PrestaShop here )”

  • SatishMasani

    Even the newbie’s had just started learning with support of developers like vekia, nemo, el patron and other’s with they start frustrating what about us. Our teacher’s are frustrated den ofcourse students frustration is out of control. Prestashop should create something like developer friendlyl and easy.

  • http://doc.prestashop.com Xavier B.

    Hey there!

    I am the author of the 1.7 Project FAQ, and I’ll try to answer your concerns here.

    > While the first news about it (…) mentioned a gradual adaptation to symfony

    That is still true: the plan is to migrate the whole architecture from the legacy (1.5-1.6) one to Symfony over a few major releases, starting with 1.7. So, you can expect the forthcoming versions to follow the same path, converting more back office screens to Symfony.

    > upgrading to 1.7 will be next to impossible.

    No, it CAN be done. It just won’t be easy, most notably for the theme, which will have to be rewritten.

    Certainly, you know that PS upgrades have never been easy — and when you’re a merchant, why upgrade when everything is fine with your shop? 25% of PrestaShop stores still use 1.5, 15% still use 1.4, etc.

    > 90% of what currently works fine on your 1.6 will never be compatible with 1.7

    That’s just plain wrong. Many modules should work with just a few cosmetic tweaks.

    Now, the fact that you wrote this might be because of me, since I misunderstood what the devs told me: my “because we rebuilt it with Symfony2 and its Twig template engine” is actually wrong, and I will update the FAQ to be clearer. But let me explain it here first.

    In effect, there are two templating engines in 1.7: Smarty and Symfony’s Twig. This is how they are used:

    * Front office themes are written in Smarty,

    * New back office pages are written in Twig. Legacy ones are still written in Smarty.

    * Modules (both FO and BO) can use whatever template engine they want (PHP, Smarty, Twig, Jade…), as was already possible in 1.6 — even though the default template engine is Smarty and using another one will require a bit of work from the developer (like, 5 lines of code). So, module developers can use any of those two, on any page (whether a Symfony-based one or a legacy one), through the power of our Adapters.

    Therefore, modules targeting the Product page can still use Smarty. They WILL have to update their CSS and JavaScript code, though, because the back office design has changed. That’s why we created the UI Kit — which is based on Bootstrap 4. Use it, and you’re safe!

    Therefore, your three translation are wrong:

    > Anything that outputs content to the front office

    Modules built for PrestaShop 1.6 will still work with 1.7. Their presentation code will just have to be reworked (to different extents depending on the module) in order to look good.

    > Anything that hooks to DisplayAdminProductsExtra

    Again, it will need mostly cosmetic or JavaScript adaptation, not a full rewrite. This is because the design and DOM of the Product page have changed. The introduction of Symfony is in no way responsible for this.

    You can think of this side effect in the same way as if we only refactored the Product page to a new design/CSS in a regular version: modules’ JavaScript and CSS code would have to be adapted in the same way.

    > Anything that has a configuration menu

    When I write “those which target the Modules page”, I really mean that: modules that try to change the Modules page (the list of modules). So you’re wrong in assuming “it’s the module’s configuration page”: modules’ configuration pages will work just fine, and will even look better if they are updated with the UI Kit.

    I’m sure you can understand that we have to continue evolving the software, we cannot stop upgrades/evolutions and improvements just to ensure all modules do not need to be adapted.

    Thank you for this proofreading of the FAQ! It gave me a chance to ask more pointed questions to our developers. I will amend the FAQ accordingly.

    > Will any merchant ever upgrade to 1.7?

    In effect, very few merchant do upgrade, even between minor/patch versions. That’s just a fact.

    Sure, we know that in the past, using the 1-Click Upgrade module could be a big risk. And that’s one of the reasons why we switched to SemVer: more predictable updates! We know we have a bad reputation with upgrade easiness, we want to improve that. It will take time, and we’re confident that by following SemVer strictly enough, PrestaShop users will learn to trust our upgrading tool again.

    > this is what 1.7 will be, a completely new system that will force you to start anew with your shop

    As stated in the FAQ, we think 1.7 users will be mostly for new stores, not upgraded ones.

    We know it’s hard to upgrade, and we know our community doesn’t like to upgrade. We’re confident that the various choices we introduced in 1.7 will help keep PrestaShop in the heart of merchants and developers alike. Yes, it’s a big bet, and we will win it in more than a couple of weeks. Trust us, we want to do good for the community!

    > While they state the 1.6 themes will not be compatible with 1.7, they also want to continue using Smarty

    Yup. Nothing to do with Smarty.

    The whole theming system has been rewritten with MVC in mind. 1.6 themes still had business logic in them, which gave spaghetti code and unreliable edits. There are still flow control instructions in the templates in 1.7, but far less and with a big difference: they’re here for presentation, not business logic.

    The new system is much closer to MVC than it was before, and all the business logic has been removed from the templates, and moved into controllers and, as much as possible, even factored out of controllers and into services so that controllers that do the same thing do it the same way.

    Smarty is now used as it should be: a templating engine rather than a programming language. Truly, we are planning for the future: should the theming system switch to Twig rather than Smarty in a future version, then the updating work will be minimal, since the whole business logic is dealt with outside of the templates.

    So yeah, the 1.7 themes will still use Smarty, but if you’re expecting the controllers to work in the 1.6 way, then you’ll be surprised.

    You can see how the 1.7 will work by looking at code for the Starter theme and the new default theme.

    > PrestaShop 1.7 will not use overrides anymore

    You’re quick to conclusion there!

    What I wrote is:

    * PrestaShop 1.7 introduces the use of namespaces with its new architecture, and in short, anything that has namespaces cannot be overridden.

    * The legacy architecture can still be overridden, though. But in general, we advise against overriding code. It is better to extend it.

    * Also, overrides are currently forbidden in the Symfony-based pages (namely, the Product page and the Modules page).

    So, to answer you: yes, you can still use overrides in PS 1.7. Overrides will work as usual on all classes that have no namespace (so you can still override Product, Address, etc.). Now there has been some discussion about a more subtle point that seems to have caused ill-founded panic. CURRENTLY, when a Symfony component uses a legacy component (read: a class without namespace), then yes, it ignores the overrides (example: ProductCore is used in a data provider, bypassing overrides, and Product should be used here so that overrides work as expected). This was a mistake, it’s easy to fix, and it will be fixed soon. It’s a work in progress guys! The FAQ gives you the current state of 1.7, not the final one, and we’re still not in beta :)

    Sure, we know overrides are popular because there are not enough hooks in PrestaShop. But rather than working on overriding code, why don’t you suggest we add a hook that the whole community can use? It’s an Open Source project, go ahead, open a pull request on GitHub, just like contributor Prestarocket did a few days ago: https://github.com/PrestaShop/PrestaShop/pull/4907 ! :)

    The idea for 1.7 is that you can still use overrides, but we’d like you to let us know when you NEED such or such hook, so that we can possibly add it to the next major or minor version! Contribute your ideas!

    Overrides are the wrong answer to a real problem, but they are not going away anytime soon, because a huge part of our ecosystem relies on them.

    But relying only on overrides makes that the PS architecture cannot evolve. Sure, everyone can extend in his own corner, but if we can add hooks that answer a need for everyone, the whole community will be better for it.

    If we work together, we can make the codebase easier to extend, and with better practices.

    > Mixed up back office interface (Symfony on some pages, Smarty on others)

    Yep, and as I said, the HTML is handled by the Adapters, so module developers can use the templating engine they prefer, with Twig and Smarty being the ones included in PS 1.7. So it really doesn’t matter.

    > The current Beta is almost impossible to install on non-unix OS

    It’s not even a beta yet!

    And, because I work on a Windows machine and play with 1.7 almost every day, I can tell you it CAN be installed.

    Finally, the whole Composer/npm process is only for the development version. Once the finale version is released, it will be packaged in such a way that you won’t need Composer nor npm anymore: just launch the PHP installer, and you’re done!

    > 1.7 will still use the old Swiftmailer

    That point I’ll give you. Yep, previous PS developers found the SwiftMailer tool at the time lacking features, so they chose to rewrite parts of the Swift Core… which now makes it really hard to update without touching everything that depends on it in the Core of PrestaShop. We know about the situation, and we want to address it. Wanna help? Come and contribute! :)

    That’s it for today!

    PrestaShop 1.7 is not baked yet, give the cooks some time to refine their recipes: we all want this version to be tasty :)

  • http://www.rescatalo.com/ David Peribáñez

    Don’t worry. PS will have a huge documentation support, or not. :D
    I’m with you and worried about these changes.
    Will we jump into Magento?

  • https://etiendas.co el patron

    For me, overrides were nice but the typical PS functions one wanted to manipulate could be hundreds of lines long and were never broken down into parts that made overriding a very safe proposition. This made it ‘nearly’ impossible to do anything meaningful in the product class, for example.

    PrestaShop indicates it will take ‘requests’ and possibly include case for override in next 1.7 version. That will be an interesting path to follow. :)

    The one piece of work I was particularly interested in was one CCC .js/.css file across multiple pages. I see this as an extremely important feature for performance but as I don’t do ‘front office’ development as I find it very difficult to interface module with existing PS core, I don’t know that I will be any worse off.

    And at the end of the day, a migration path will not be created until the end result is known. I think it premature for 1.7 to insinuate there will not be a migration path. If so, well someone can write one and make a million dollars I suppose.

    Fabio, thanks for keeping your followers updated on all things PrestaShop. Keep the faith.

  • Nick N

    I think this article is mainly driven from nemo’s frustation on the changes that will happen to 1.7.
    Nobody in his right mind would go from 1.6.x.x to 1.7.0, simply because no .0 release is a good solution if you are trying to make money.
    Currently we are running 1.6.0.14 and have no plans to go even to 1.6.1.4, simply because most (if not everything) will probalby brake. So if we aren’t going from 1.6.0.xx to 1.6.1.xx you can image my opinion is on 1.7.0
    I guess we will try to upgrade in a couple years. So we will evaluate our options then.
    That been said, if nemo (one of the -if not THE- top developer of prestashop) opinion is THAT negative then the prestashop team should realy think if they are doing something wrong and should make the apropied changes while they still can. I hope nemo and other developers will address the issues they have to the team as well, so we can all continue to enoy in the future

    • NemoPS

      Hi Nick, and thanks for the comment.
      I wish I were the top developer, but I am afraid I am not :D
      Apart from that, yes, I have been really frustrated after reading that FAQs, and I extensively discussed it with a colleague (Of Dh42) who shares the same opinion I have.
      It might be even more frustrating for developers rather than merchants, especially for the ones who, like me, have an active modules business. THey have always required (smallish) adaptations between sub-sub versions too, but the upcoming changes mean they will have to be re-written almost from scratch.
      Additionally, I clearly see this change as a potential harm that might drive merchants away from the software (would you trust a company that completely switches to a new system all of a sudden? For your business’ core shop? I would not)

      • http://www.pronux.ch Pronux

        70% of our 120 PrestaShop’s we support are still using PS 1.5 or older, only new shops are using PS 1.6. One concern I have with PS 1.7 is, that modul developers can no longer afford to develop and support new addons for 1.7 AND 1.5/1.6

        • http://pelechano.es/ Enrique Gómez

          You’re right. The problem is for module developers. The shops I’ve migrated from 1.4 1.3. have been a reset from the theme/modules/programming point of view, the main concert was migrate the database..

  • Emanuel Schiendorfer

    Really big chances in 1.7 – no doubt about that! But was there an alternative? Most important they need to build an architecture which can compete in the future.

  • Kon Rad

    I have almost choked :V hahaah
    That will be total bull#$%! I hate 1.6 from the beginning unstable versions and its ugly BO UI but now in 1.6.1.4 looks finaly good. But 1.7? WTF?! :D Someone have good weed dealer to completely reworked core. That should be named like PrestaFail!

  • http://www.williamdam.dk Kasper Monrad

    Man… this makes me so sad. I’m just about to launch a new site based on PS 1.6 to replace our dated osCommerce shop. I have developed/bought 33 modules + lot’s of theme work. Many of my modules depends on overrides. Now there is no way to get the functionality we want/need without altering the core files, which will make upgrading a pain (if upgrades for 1.6 are even planned for the future). sigh…

    • NemoPS

      It’s a pain for us developers, too. Consider I have a good bunch of modules using the product back office hooks, as well as override, not to mention the front display relying on current styles and templates.

  • http://pelechano.es/ Enrique Gómez

    Well, the migrations between versions have never been easy, nor themes nor modules have never worked properly so for me it’s not a surprise .. but I expect they create some basic module/system to migrate the database from 1.6 to a brand new 1.7. That will be obviously a must, without a decent “migration” system of core data (you know, orders, products..etc) it will be really really problematic, but I’m sure they will work on that.

    • NemoPS

      I hope so too, but the point is that 1.4, .5 and .6 all had the same underlying architecture, while this is going to be completely different. What they might do is create a module to export all db data and re-import it, but the rest will get lost

      • Kon Rad

        Yes i agree 100%. They should provide a very good and stable migration tool for all legacy Prestashop versions 1.5/6 to 1.7. It is a must! This should work in pre installation mode with choose Migration or New installation. Completely all data stored in database should be migrated without any problem even with product images. In other case 1.7 dont have any chance in the market

You like the tuts and want to say "thank you"? Well, you can always feel free to donate: