Jump to content
thirty bees forum

How to add interesting new features to thirty bees while staying PS 1.6 compatible?


roband7

Recommended Posts

I've been thinking about this, it's an interesting technical challenge.

We need to define exactly what it means to be PS 1.6 compatible. The lack of defined APIs makes this a vaguely defined target.

Areas for consideration, modules: * The basics of a module, ie. what's needed for a module that does no core class overrides, should be easy enough. * Core class overrides, it's probably just impossible to support it all forever, perhaps inspects some number of the major addons out there, see what's used in practice? * hooks * more?

Areas for consideration, themes: * Template names assumed by the core * Smarty variables passed to these templates * Globally available smarty variables * more?

Perhaps the best way to document all of this is to write automated test suites that verify the existence and behaviour of these de-facto APIs?

This is a lot of hard work.

However if it's not done correctly I fear PS 1.6 compatibility will break too soon, before a critical mass of merchants and addon writers have moved over.

Just some food for thought...

Link to comment
Share on other sites

The basics of a module, ie. what’s needed for a module that does no core class overrides, should be easy enough.

Yes.

Core class overrides, it’s probably just impossible to support it all forever

Forever? Probably not. For a while? Certainly possible. Current strategy and PS' strategy up to 1.6.1 is to not remove or change functions/methods without an extended deprecation period. For example, 30bz still contains some code for compatibility with PS 1.4.

hooks

Apparently handled similar to functions, but need changes not as often.

Template names assumes by the core

Fully hardcoded in PS 1.6 and 30bz. Often in the middle of the code calling these templates. Urps.

PS 1.7 made some efforts to relax this hardcoding, kind of a template configuration was introduced: https://github.com/PrestaShop/PrestaShop/blob/develop/themes/classic/config/theme.yml So far for the basic layout, only.

Smarty variables passed to these templates Globally available smart variables

These are indeed a bitch. Modules send them directly, so their amount and content depends on what modules are installed. There are no "namespaces". PS 1.7 partially introduced such namespaces, e.g. $price became $product.price.

Generally, one can do pretty much anything. See how modern Windows' still support Win95 applications. It just adds up. Having all the template variables for PS 1.5, 1.6, 1.7, 30bz 1.0, 1.1, 1.2 available doubles code work and memory usage. So stuff has to go away not tomorrow, but somewhere on the horizon.

A partial workaround could be to detect template versions. AFAIK, there is currently no such thing. One can currently install a PS 1.7 theme easily on 30bz, it just doesn't work.

Another thing to consider is that PS advances, too. Themes advance. Requirements, expectations advance. Which means, theme makers want no stillstanding either. Which in turn, I think, should lead less to efforts to keep everything as-is as much as possible, more to efforts making transitions easier.

To everybody raising eyebrows now: there are no plans to give up PS 1.6 compatibility anytime soon, AFAIK. Thirty bees' stated goal is to be stable and reliable.

Link to comment
Share on other sites

To everybody raising eyebrows now: there are no plans to give up PS 1.6 compatibility anytime soon, AFAIK. Thirty bees’ stated goal is to be stable and reliable.

My understanding is that 30bz 1.0.x will maintain PS 1.6 compatibility but once 30bz moves to v1.1 then PS 1.6 compatibility will start to break.

My personal belief is that 30bz needs to maintain 1.6 compatibility until either PS goes bust or the 30bz active community is much, much larger than it is now. That could be done by maintaining 1.0.x in tandem with 1.1, but with a small team that is going to be difficult to do. Right now I think most of us are here because we can transition our PS work relatively seamlessly to 30bz and have a far better final product. To me it seems the best way to attract more users is to keep providing this mostly seamless transition.

Link to comment
Share on other sites

Hmm, I found thirtybees because PS already seemed broken...waiting forever for a product to save? Oh go find this fix....yeah I did TB! Isn't the point to work, so why be compatible with something that doesn't.

Link to comment
Share on other sites

@vzex said in How to add interesting new features to thirty bees while staying PS 1.6 compatible?:

Hmm, I found thirtybees because PS already seemed broken...waiting forever for a product to save? Oh go find this fix....yeah I did TB! Isn't the point to work, so why be compatible with something that doesn't.

PS has hundreds if not thousands of modules and themes. 30bz has nearly none as it is brand new. Being compatible with an established player makes it easier to gain users as they can use their existing modules and themes and if they're looking for something different there's a large library available.

Link to comment
Share on other sites

What our plan is, is to follow the dev style of more mature communities.

We are going to always have what is called a long term support version. Right now 1.0.x is going the be the long term support branch. We will be stopping support for it around Aug 2019. We think it is very important to maintain support as long as possible, but also give a roadmap if possible as well. Likely 1.1.x will break some support for modules and themes. There are things that we want to change in those versions to make the experience better for merchants and developers. We are going to try our best to have compatibility patches that can be run that will make the experience not optimal, but work.

Breaking compatibility is hard, but it is something that is going to have to happen at some point to move forward. As our community grows so will the offerings from the community. One thing we do believe in though is long beta's on new versions. We aren't going to stick you with broken software and make you either suffer or pay a developer to fix it.

Link to comment
Share on other sites

  • 2 weeks later...

A new development that further complicates this: The top four selling themes on Themeforest (Warehouse,Transformer,Alysum,Panda) have all recently released 1.7-only updates and have 1.6 in a next-to-nothing maintenance mode. The updates are massive, with loads of features many shops could use.

I understand the theme writers, they´re in the same boat as PS, they depend on new module sales to survive.

The theme writers also claim they have an easier job adding new stuff to a PS 1.7 based theme than to an 1.6 based theme. It would be interesting if we could get more technical details here.

As long as PS stays alive somehow, and as long as thirty bees is still small, I don´t see the big theme writers porting these themes to thirty bees soon.

I know @Traumflug has done some work on support for 1.7 themes, but far from finished, it´s hard work.

Link to comment
Share on other sites

Most all 1.6 versions of themes work natively with thirty bees.

There are going to be some theme developers that do not support us, Warehouse I think will be one of them. I have talked to Marcin extensively about it over the last few months, but he is not budging.

As the further decline happens people will start looking for ways to make money, at the same time we will attract new developers in. Its not going to be easy in the beginning, but I think we can pull out of it and have a good library of products.

Link to comment
Share on other sites

@lesley said in How to add interesting new features to thirty bees while staying PS 1.6 compatible?:

Which themes? I have been doing as much outreach as possible with companies trying to get support.

If we get the attention of iqit-commerce (Warehouse), tantan199 (Transformer and Panda) and MarekMnishek (Alysum), then a lot is covered, that's the top 4 bestsellers.

These are all pretty much one-man-shows with limited time to support both 1.6 and 1.7. And all three have now put loads of hours into new 1.7-only functionality.

Their 1.6-based versions will of course continue to work fine with thirty bees.

Link to comment
Share on other sites

@lesley to pay someone to create a similar theme or teach yourself to make the theme changes.

Just installed sublime text need to figure out which addons work best to show in browser theme changes.

But in the mean time I'm learning to like the default theme since I'd rather get my site moved to TB up and running.

Link to comment
Share on other sites

@roband7 I talk to Marcin the owner of IQIT semi-frequently, he is not willing to support us yet. Hopefully his mind will change since his version 1.7 theme is not performing that well.

I will reach out to the others though, they might be open to it.

@vzex I should write a proper article on how to make theme changes. Do you use linux?

Link to comment
Share on other sites

Speaking of theme changes, if anyone needs a simple text banner to replace the top default TB one using 1170 x65 size at banner creator worked for me. I'm sure there are other options out there.

Only downfall I couldn't get it to work using character & or %OFF to make say a quick 20% OFF sale banner. It only produced the UTF-8 Hex characters with mac/chrome.

Example: 0_1499875964787_fff&text=WELCOME+TO+OUR+NEW+THIRTY+BEES+STORE.png

20% OFF doesn't translate: 0_1499876124704_fff&text=WELCOME+TO+OUR+NEW+STORE+200x25+OFF+SALE!.png

Link to comment
Share on other sites

@alwayspaws this is not something you can really do with other themes. And you will not be able to use the 1.7 updates for the theme.

@vzex In our next build all the images and fixtures are going to be replaced with thirty bees branded fixtures.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...