Post by Qphoria » Thu Dec 16, 2010 1:09 am

I just had a look at the latest version of the upcoming 1.5.0 and I have to give some serious props to Daniel for what he has done with the upcoming version. Daniel has done all the code rework on 1.5.0 so all credit (or blame ;) ) goes to him.

As a fair warning to developers and users, I'd like to go over some of the changes ahead of time so there are fewer surprises in store.

Major Changes to existing features that will affect upgrades

1. URL Class.
The url class has returned! This is great news for everyone and a huge pain in the ass to make all those changes. Daniel spent about 2 days find/replacing. The new url class offers the following changes and features...

public function link($route, $args = '', $connection = 'NONSSL') {
This is the new link method that ALL urls will pass through for formatting and custom encoding mods.

Old links as of 1.4.4 - 1.4.9.x:

Code: Select all

HTTP_SERVER . 'index.php?route=product/category&path=' . $path;
HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product_id;
HTTPS_SERVER . 'index.php?route=checkout/cart';
New links format in 1.5.0 (respectively):

Code: Select all

$this->url->link('product/category', 'path=' . $path);
$this->url->link('product/product', 'product_id=' $product_id);
$this->url->link('checkout/cart', '', 'SSL');
The old format should still work with the new format, however, any customizations or encoding hooks won't be applied to the old format. It is recommended you update your mods to the new format asap.

There are also some hook functions to allow applying custom encoding options to urls that run through the link function. More on that after release.

2. Modules
Modules have changed in many ways...

The new template has new module box wrapper code in the tpl files. This is still done "per-module" tho I'd like to get the modules to have just their code, and leave the wrapper code inside the individual positions. This would make them compatible with all themes out of the box instead of having to change the default theme wrapper code in each module for each theme. Modules should be universal and shouldn't have their own wrapper code, only the functionality. Have to convince daniel of that first...

Modules are now instance-based. This means you can have multiple instances of the same module in different positions at the same time. It also allows you to set the module instances on a per-page basis. The home page could have bestsellers on the right column, the login page could have the bestsellers in the footer, etc. You could even make 5 information boxes in the same column if you wanted. Not sure yet how the multi-instance will work for something like category where you may want different categories per instance.

3. Product Options
Product options have had a major overhaul...

Product Options are now Global. This means you create a "pool" of options and their option values.. then you associate the products with them like you do with categories. This makes things much easier to apply the same set of options to similar products. For example, you create
Option: Color
Option Values: Red, Blue, Green
Each option value has its own qty, weight, required, subtract, price, and weight by default per-product

You can associate
Tshirt A with Colors Red(5/$2.00) and Blue(7/$3.00)
Tshirt B with Colors Blue(2/$0.00) and Green(40/$5.00)
Tshirt C with Colors Red(0/$4.00), Blue(5/$1.25), and Green(10/$2.00)
etc

Product Options also support multiple types. You choose the type when creating the option.
Color could be a select box with values Red/Blue/Green
Size could be a radio with Small/Med/Large
My Image could be upload box
Custom Greeting could be a text box

There is no good way at this time to upgrade from the current product options system to this new way. Someone may have some magical sql/php that does it, but nothing is planned from us. Upgraders from 1.4.x to 1.5.x will likely lose all product options.

4. Layout vs Children - Rolled back to children method for now

New features that shouldn't break upgrades

1. Product Attributes
There is a new system for products called "Attributes". This is used in a similar way to options, but instead of them being something selectable, they are common properties or characteristics of multiple products. This is a key element in getting compare and filtering navigation tools to work. For example, you may sell multiple computer monitors. All of them have common attribute types that would need to be compared. e.g.: Dimensions, weight, Type, refresh rate, color, connections, frequency, resolution, etc. This is a great major feature to have in any cart

2. Product Compare
Using the product attributes, the compare will put items side by side and list all their attributes for a comparison

3. Rewards System
There is a rewards point system in the core now that is set on a per-product and per-category basis. The design is simple: "Buy this product, get xxx reward points". Not sure how it works at the category level yet, but I assume: "buy any product from this category, get xxx reward points for each item" or something like that. Reward points will be accumulated for each customer and you can set how many reward points are needed to buy a product or disable the ability to buy certain products with reward points.

4. Wish list
There is a link for wishlist, which I assume works the same way that cart does. It is not functional at this time, but I think it's fairly obvious how it should work

5. Affiliate
I see an affiliate commission field in the system settings. I'd guess if a customer is referred to your site and buys a product, the affiliate gets this amount (%) in commission.

6. One Page Checkout Option
Haven't seen this working yet. Saw some early designs but daniel said it was a pain so he left the option for one page and normal multi-step checkout options. However, it still uses the old separate guest and registered system for the multi-step checkout.. I think that needs to be redone to combine the 2 before worrying about one step. That may have to wait until 1.5.1.

7. New Admin Order Entry/Update
Daniel took a stab at order entry/edit from the admin area. It's changed completely and isn't finished yet so hopefully it has better luck than mine did.

8. RMA system
Looks like Daniel spent a lot of time on this.. more than I think it needs tbh.. but RMA seems to be an overhyped and overrequested feature IMO.. maybe I just don't get it. Either way, There is a very robust looking RMA system in place.

That covers most of the major changes. There are a lot of little things that I just couldn't mention but a hell of a lot of work has gone into this. There may be small bits and pieces that may change before final release, but for the most part these are all planned changes and features based on what I see in the code and on the dev demo.

Before you ask, no, the dev demo is not available for viewing yet.

Daniel is going to need a nice long vacation after this is done and hopefully you all find some loose change in your pockets (paypal accounts) for donations to send him to Hawaii when it is done.
Last edited by Qphoria on Thu Mar 24, 2011 9:53 am, edited 2 times in total.
Reason: Un-stickied

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by i2Paq » Thu Dec 16, 2010 2:15 am

Qphoria wrote:Daniel is going to need a nice long vacation after this is done and hopefully you all find some loose change in your pockets (paypal accounts) for donations to send him to Hawaii when it is done.
If it is that good as you say than that will be the first thing I do after downloading and test-driving the 1.5.0!

I'm really looking forward to this, thanks for the update :)

Norman in 't Veldt
Moderator OpenCart Forums

_________________ READ and Search BEFORE POSTING _________________

Our FREE search: Find your answer FAST!.

[How to] BTW + Verzend + betaal setup.


User avatar
Global Moderator

Posts

Joined
Mon Nov 09, 2009 7:00 pm
Location - Winkel - The Netherlands

Post by SapporoGuy » Thu Dec 16, 2010 2:29 am

This is really a welcomed update.
Especially nice to see all the great features!

Why not put up a beat the last donation pledge campaign?
Sort of post what was donated for 1.4.9 (or what ever was the latest release) and challenge the community to beat it :D

930sc ... because it is fun!


User avatar
Active Member

Posts

Joined
Mon Nov 01, 2010 7:29 pm

Post by Xsecrets » Thu Dec 16, 2010 5:07 am

I hate to see great features and then ask for more, but Given the nature of them breaking things. I would really love to have the modules get per store settings, and the ability for option combinations/dependent options as discussed in another thread here. Those two items in particular really don't make sense to put off till a 1.5.1 or 1.5.2 type situation since they will once again break everything.

OpenCart commercial mods and development http://spotonsolutions.net
Layered Navigation
Shipment Tracking
Vehicle Year/Make/Model Filter


Guru Member

Posts

Joined
Sun Oct 25, 2009 3:51 am
Location - FL US

Post by Johnathan » Thu Dec 16, 2010 5:08 am

Awesome...I have to say there's way more coming in 1.5.0 than I even expected there would be.
Qphoria wrote:Upgraders from 1.4.x to 1.5.x will likely lose all product options.
Ouch.

Image Image Image Image Image


User avatar
Administrator

Posts

Joined
Fri Dec 18, 2009 3:08 am


Post by Qphoria » Thu Dec 16, 2010 6:28 am

Xsecrets wrote:I hate to see great features and then ask for more, but Given the nature of them breaking things. I would really love to have the modules get per store settings, and the ability for option combinations/dependent options as discussed in another thread here. Those two items in particular really don't make sense to put off till a 1.5.1 or 1.5.2 type situation since they will once again break everything.
I agree.. i don't see that option at the moment but it does look like it should be possible to add the per-store modules

As far as dependent options.. i don't think that is a priority at this point.. it was a topic in a thread that had some brainstorming, but it was very incomplete when considering the additional mapping to option types. Honestly I've not even looked at the new option db structure and its currently not 100% yet as i don't see it working on the front end yet.

It may be possible to retrofit after 1.5.0 is released but it might have to wait for a 1.6 release after the global options have laid the groundwork. It is really more of a nice-to-have and doesn't add any functionality that you can't currently mimic with individual options. But this is daniel's show and while he did mention once about making it work, he has also expressed that there is already too much going into 1.5.0 as it is. He will have the final say on that

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by Xsecrets » Thu Dec 16, 2010 7:15 am

Qphoria wrote: As far as dependent options.. i don't think that is a priority at this point.. it was a topic in a thread that had some brainstorming, but it was very incomplete when considering the additional mapping to option types. Honestly I've not even looked at the new option db structure and its currently not 100% yet as i don't see it working on the front end yet.

It may be possible to retrofit after 1.5.0 is released but it might have to wait for a 1.6 release after the global options have laid the groundwork. It is really more of a nice-to-have and doesn't add any functionality that you can't currently mimic with individual options. But this is daniel's show and while he did mention once about making it work, he has also expressed that there is already too much going into 1.5.0 as it is. He will have the final say on that
I rather disagree. Yes you can work around in some ways like creating your options as large-green large-red etc, but that is pretty cheesy and unprofessional if you ask me. I'm not so much worried about dependent options, but tracking stock on product combinations is rather a big deal for many stores. And I'm sure it can be retrofitted, but at that point you're going to end up loosing lots of data again just like we are now moving to global options, so it would probably be best to do it all at once so it doesn't seem like you are loosing soo much data on every upgrade.

OpenCart commercial mods and development http://spotonsolutions.net
Layered Navigation
Shipment Tracking
Vehicle Year/Make/Model Filter


Guru Member

Posts

Joined
Sun Oct 25, 2009 3:51 am
Location - FL US

Post by Qphoria » Thu Dec 16, 2010 8:36 am

unprofessional is a strong term considering that no other cart really offers this except allegedly magento.. and in the examples I've see on their site it was smoke and mirrors. I don't see how having Large-Red, Large-Black is unprofessional. I really don't think anyone is losing money over using large-black for option names, and I think only because it was a recent topic that its fresh on your mind as an issue, but hasn't been an issue for the past 3 years.

You see the dependent options on sites that are strictly dedicated to selling a particular product. Trying to make it for a universal cart is a much different story. I've only really seen it on tshirt stores like bustedtees and zazzle... and I suppose amazon has it too.. but its 6 in one, half-dozen in the other, it all comes down to preference. Perhaps 1.6.0 will bring it and again options will have to be redone.. c'est la vie

All I know is that is highly unlikely to be in 1.5.0 and that is out of my control. Perhaps Daniel can chime in on his thoughts when he has a chance.

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by manson » Thu Dec 16, 2010 9:40 am

Thanks for the update, Q! and ofcoz thanks to D himself for the great work on 1.5.0.

I particularly like the rewards points, RMA, product compare and affiliates. With all these great features built in the cart, it would be one complete-robust cart! I'm not a web-designer nor a programmer, but I'm a store owner that has a little background on both. So I'm glad to have chosen the right cart with such a helpful community of experts for my store. I did browse through all opensource cart before making the choice, and had to say that the layout of OC and the user-friendly GUI of the admin panel did helped me settle down with OC.

The global options settings is a great addition too! Even though upgrading means losing all the previous options data, but heck it does worthwhile to edit all 200 of my products!

Hawaii? I'm guessing the community could be more generous! Take it from me, Paris is a nice place to be come Christmas! 8)

I don't know much about PHP...~~
Don't know much about JQuery...~~
But I do know that I love OC!~~
and I know that if you'd guide me, what a wonderful world this would be...!~~

_________________________________________________________________
Using OC 1.4.9.2
http://www.ten2hundred.com


User avatar
New member

Posts

Joined
Mon Dec 06, 2010 6:58 pm

Post by Xsecrets » Thu Dec 16, 2010 11:57 am

Qphoria wrote:unprofessional is a strong term considering that no other cart really offers this except allegedly magento..
well magento has it cs-cart has it. The qtpro contribution has been one of the most popular contributions for oscommerce for eons. It's definitely something that many people want. Like I said I'm not so much worried about the dependency option of not showing one till the other one is chosen etc, but being able to track stock on option combinations has always been one of the biggest requests since I've been doing ecommerce. Granted I've never really seen a good easy to use implementation, but if done right that is where opencart could differentiate itself.

OpenCart commercial mods and development http://spotonsolutions.net
Layered Navigation
Shipment Tracking
Vehicle Year/Make/Model Filter


Guru Member

Posts

Joined
Sun Oct 25, 2009 3:51 am
Location - FL US

Post by SapporoGuy » Thu Dec 16, 2010 1:39 pm

If Daniel is in the UK, then Paris would come out cheaper.
I'm more thinking like a weekend in the Phillipines or such :P :drunk: :P What else could make a man happier?

@ option combination, etc ...
I'm gonna give +1 for X's ideas and line of argument.

@ changes
I can see that if each release cause major changes to the db and/or other major area that requires a person to redo everything by hand is not going to be appreciated. blah, blah, blah ... yeah, it's opensource and what not but so are many other carts out there.

Sure, I love the upcoming features and really could use several of them. Yes, these features will also bring feature parity compared to other carts but ... maybe, 1.5 should have been only a feature parity type of release and have 1.6 move on to next generation code.

I wasn't around when the decision was made, so I have no idea what the motivation was, what was debated or requested for, and such. However, I do suggest that a game plan would be a good idea.

Learning without thought is labor lost; thought without learning is perilous. -- Confucius

930sc ... because it is fun!


User avatar
Active Member

Posts

Joined
Mon Nov 01, 2010 7:29 pm

Post by Qphoria » Thu Dec 16, 2010 1:46 pm

Xsecrets wrote:cs-cart has it.
commercial of course...
anyway.. I've never seen it in zencart
Magento seems to have it as a commercial mod.
Xsecrets wrote:Like I said I'm not so much worried about the dependency option of not showing one till the other one is chosen etc, but being able to track stock on option combinations has always been one of the biggest requests
You keep alluding that this is an issue currently. Using the current Large-Black method handles any issues with stock control already:
Tshirt:
- Large-Black (10)
- Large-Red (7)
- Large-Blue (5)
- Med-Black (8)
- Med-Red (0)
- Med-Blue (2)

That offers full control of all stock levels for all colors and all sizes and always has. Having dependent options is strictly visual effect and has nothing to do with stock control. Its like the difference between having a normal javascript popup in a separate window or a nicer popup with thickbox... its just for show.. doesn't change functionality.

its not falling on deaf ears.. just not a priority. Looking at the magento mod, it seems to be using dhtml to handle it instead of an actual callback. It loads all 6 options.. and only shows 1,2,3,4 for men and 1,2,5,6 for women.

Perhaps some fancy javascript can be used for this in opencart. Something that parses the list above and simulates the list.
1. split on the "-"
2. put "Large" and "Med" into 1 dropdown called "Size"
3. put "Black", "Red", "Blue" into another dropdown called "Color"
4. and based on the qty, enable or disable the option. With some really cool javascript this could probably work without any changes to the backend.
5. on submit, concatenate the values back together again, map it to the corresponding option value id and it could be transparent to the cart code
Food for thought... might be overlooking some stuff, but thats the idea

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by manson » Thu Dec 16, 2010 1:48 pm

SapporoGuy wrote:If Daniel is in the UK, then Paris would come out cheaper.
I'm more thinking like a weekend in the Phillipines or such :P :drunk: :P What else could make a man happier?
Come to my home country Malaysia! I could make you enjoy life like a King with just USD1k O0

I don't know much about PHP...~~
Don't know much about JQuery...~~
But I do know that I love OC!~~
and I know that if you'd guide me, what a wonderful world this would be...!~~

_________________________________________________________________
Using OC 1.4.9.2
http://www.ten2hundred.com


User avatar
New member

Posts

Joined
Mon Dec 06, 2010 6:58 pm

Post by oclollo » Thu Dec 16, 2010 3:02 pm

Hi
I am totally new to opencart, and find it a fantastic option to all other carts. Short question: if I start using 1.4.9 now, will it be easy or difficult to update to 1.5 when it comes? And how about themes, must a theme be redone for 1.5?
Kindly
Lollo

Thanks
Last edited by oclollo on Thu Dec 16, 2010 8:04 pm, edited 1 time in total.

Newbie

Posts

Joined
Thu Dec 16, 2010 2:58 pm

Post by manson » Thu Dec 16, 2010 4:23 pm

oclollo wrote:Hi
I am totally new to opencart, and find it a fantastic option to all other carts. Short question: if I start using 1.4.9 now, will it be easy or difficult to update to 1.5 when it comes? And how about themes, must a theme be redone for 1.5?
Kindly
Lollo
Update would be easy if you follow the instructions.
For themes, I would assume there would be a slight change, as mentioned by Q, 1.4.9 is using the children method whereas the new 1.5 will revert back to layout method as before 1.3.4. Meaning you can't use theme for 1.3.4 - 1.4.9.2 for 1.5 but can use any theme for 1.3.4 and below for 1.5.

I don't know much about PHP...~~
Don't know much about JQuery...~~
But I do know that I love OC!~~
and I know that if you'd guide me, what a wonderful world this would be...!~~

_________________________________________________________________
Using OC 1.4.9.2
http://www.ten2hundred.com


User avatar
New member

Posts

Joined
Mon Dec 06, 2010 6:58 pm

Post by Iwao » Fri Dec 17, 2010 12:34 am

Very very good news thanks a lot for your hardwork !

Newbie

Posts

Joined
Wed Apr 14, 2010 1:10 am

Post by Moggin » Fri Dec 17, 2010 6:23 am

Qphoria wrote:.... I'd like to go over some of the changes ahead of time ...
:o AWESTRUCK!
Much more than I imagined. Thank you!

Active Member

Posts

Joined
Wed May 05, 2010 4:56 am

Post by xds » Fri Dec 17, 2010 1:01 pm

Did you notice if there are any hooks were present to allow modules to easily interact based on user actions?
Last edited by xds on Fri Dec 17, 2010 1:55 pm, edited 1 time in total.

Thanks for 1.5!


xds
New member

Posts

Joined
Mon Jul 12, 2010 9:53 am

Post by Xsecrets » Fri Dec 17, 2010 1:15 pm

xds wrote:Did you notice if any of there are any hooks were present to allow modules to easily interact based on user actions?
I'm fairly certain that won't be implemented till 1.6 or 2.0

OpenCart commercial mods and development http://spotonsolutions.net
Layered Navigation
Shipment Tracking
Vehicle Year/Make/Model Filter


Guru Member

Posts

Joined
Sun Oct 25, 2009 3:51 am
Location - FL US

Post by Qphoria » Fri Dec 17, 2010 9:08 pm

Correct... the only hooks at the moment are some in the url class designed to allow adding modification/encoding options (stacked). Not fully sure of how it works yet. But hooks have also been discussed for future versions, and I can't see a reason why they could not be retrofitted transparently at any point as they are just added trigger points. So these may start appearing gradually once the hook engine gets added. From there we can just add more and more hooks as we see fit.

onAddtoCart
onRegister
onCheckout,
etc

There are tons of places hooks can be added but that is further in the future

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am
Who is online

Users browsing this forum: No registered users and 12 guests