It's not just a demo of the new JBZoo features, but a quickstart for your new projects as well.

It is worth saying, that now new demo sites will be available only to Maximum+ plan. We plan to release new ones like once in 3 months.

What's new in JBZoo v2.2.x+ ?

All the year 2015, we worked hard on a new version. There appeared quite a big amount of changes and new features. If you describe each of them, you’ll get a small book :) So I suggest having just a once-over through the most interesting features.

New English localization

Recently we’ve made a completely new English translation of the entire JBZoo control panel. None of the lines has been left unnoticed. During the work a huge amount of typos and inaccuracies have been corrected . I think you will like it!

Some statistics - JBZoo new version has another 2300 lines added. Now there are more than 3500 language constants, which contain more than 10 thousands of separate words. This amount is comparable with the CMS Joomla! itself or any other.

New constructor for ecommerce

You are not hearing things, this is the constructor precisely!

Having a drop of imagination in one hand and a mouse in another, you can sell:

item with any number of parameters (color, size).

orders from the online calculator computing the price at railway speed.

«rise" or "publication" of paid ads.

files and send them by email.

etc.

Cart JBZoo 220v allows you to:

design the price element out of other elements yourself.

notify the user in various ways.

check the order via additional validators.

create group discounts and massively raise/ reduce the prices on the site.

use custom order statuses.

calculate the shipping price using third party services.

flexibly manage the currency on the site.

browse detailed information about the order.

сreate any number of fields in the order form.

flexibly manage mail templates (elements and positions).

... and I’m tired to list :) ..

Updated JBZoo API will please programmers by such things as:

the development of any extensions is not more difficult than the working out of the element for the Zoo.

abstract factory of JS widgets for doing jQuery-plugins without scruple.

dealing with money and currencies, as simple objects.

etc.

And the first one to get our close attention is good old JBPriceAdvance. Our programmers did not have any mercy on it and rewrote it from scratch.

JBPrice — second birth!

These literal 1-2 square inches at the site, where we are used to see the price, are so important and complex in nature, that development took more than 4 months. Do not believe me?

Now the price element is such a small aggregator, which consists of elements itself. In fact, JBPrice can nothing, all items features are additional "elements of the price elements of this JBPrice». That is hardcore, ha? Not even started yet, and I am already talking Greek.

For example, we sell T-shirts, each of which has its own color, size, balance, smell, vendor code, and sometimes even the price. At the same time we understand, that this is only the parameters of the same item of goods and we want to combine it all into one item.

To do this, we create the JBPrice (Plain or Calc) element in the item, and to it we add those very parameters (elements) that we want to see at a T-shirt. Then enable variations and display it all to the site. Any settings look like all the same familiar positions with elements. We’re sitting and moving mouse sluggishly;)

Oh, I already hear the skeptics rebelling and shouting from the back - "drag-tail", "slowly", "works badly." Here's some food for meditation...

Previous price element consumes about 10-40 ms of time for rendering. Now our great and terrible magician Alexander (aka tapakan and author of JBPrice) reached new price acceleration up to 5-15 ms. And if you enable cache mode, feel free to divide all the indicators for 5-10. I.e. about 0,5-2 ms to render ONE element! In the mind’s eye we compare the numbers with the previous mean value of 20 ms. So it goes... The wind spirit is enclosed in the element :)

Manipulation with prices

Setting of global discounts rules for the entire site or by condition (category, type, etc.).

You can add explicit or implicit price modifiers within one item or a group.

Special field for promo-code that will provide discount for the entire purchase.

Templates and UI

All the styles are rewritten to the less-format, which is automatically compiled into a compressed CSS-file. This considerably simplified the work with the design and put all the styles in the application in order (and there turned up to be many of them).

New templates UIkit and Bootstrap were added.

The whole JavaScript was refactored to the new format. jQuery-plugins are divided into separate files.

JBZoo itself joins and minimizes all the assets files, also it watches their actuality. Small pictures are stored inside CSS files.

Page includes only those styles and scripts that are used for work of the site.

Animation for prices and effects for any AJAX-requests were added.

Peck of troubles in the old template catalog was put right.

Notification

A new, flexible customization of emails templates.

SMS-notifications when creating, paying or changing the order status.

Automatic attachments of files and pictures to the letters.

The message can be linked to a cart event, for example, when changing some certain status.

Old version converter and other utilities

Сonverter, that will simplify the transition of the site to the a version will appear.

A new algorithm to verify the integrity of the JBZoo file system. It will help it will help you to cleanup your hacked website, as well as during the updating, to know what important files have been modified by programmers.

Foreign files can be deleted directly from the control panel.

Migration from 2.1.5 to 2.2.0+

As you can see, the difference between the old cart and the new one is enormous, and, for obvious reasons, you can not get away with the usual patch. For this purpose, we have made an automatic converter that will bring all the content to the new format without any loss.

What can converter do?

Convert orders from items to a special tab "Orders".

Create JBPrice Plain price elements based on the old JBPrice Advance element with the appropriate settings.

Transfer the content from the old price to the new one without loss of information.

Create payment system elements based on the old settings from order application.

Configures payment systems.

Add events and layouts for email messages.

Thus, you will just have to change the look of the cart and price elements for your website design. After you install the upgrade 220v you get a lot of new features from the E-commerce constructor.

What's next?

Next year we are going to expand our English-speaking audience and to improve an English site. We’ll add new documentation and new extensions to our JBZoo Marketplace.

A new look at the development ...

The probability is that the line version 2.2.x will be the last one as an attachment to YOOtheme ZOO. We are working now on an independent component. This means:

No dependence on YOOtheme anymore.

We give a free hand to the creators in creating new features.

Change the control panel as you want, get more dynamics at the pages.

Maximum performance due to the modern methods of optimization.

Quick development process

Good chance for introduction Test Driven Development (TDD) and auto-update system.

CI - Continuous Integration (updates)

The main and most extensive change in the component development will be auto updates. In a perfect world, the new version comes out every several days. Updates from any version to the latest one can be done by the only click , without leaving Joomla CP. This method is usually called Continuous Delivery.

For our part, we have already started a special Continuous Integration (CI)server . It works on a schedule and it is constantly testing all the code with a help of special automatic system. If everything is OK, the server decides to release an update and creates a build. Anybody who wants it just set it directly from the control panel of their site. No patches!

Thus, the first feature, which will appear in 3.0, will be a magic button "update". And automated testing system will release you from sudden errors in functions that are already working. All of this will let us think more about development, not testing.

At large, the server part of CI has already(!) been written and debugged. It works together with Java + some scripts, and, for a wonder, on the console version JBZoo + Symfony. By the way, the latest patches were created namely by CI.

As far as I know, none of the developers of Joomla components creates their extensions like that. But Joomla! CMS is developed and updated exactly this way, and we are adopting their practices.

The first version 3.0 will appear the next year, more than likely in spring.

On the whole

Users will receive updates as quickly as possible.

Developers do not waste time for routine, and potentially do less manual testing.

The quality of code will be higher because it will be watched by the "Eye of Sauron" (server CI) and in any strange situation it will prohibit the update release.

What to expect in JBZoo 3.0?

For administrators

Continual automatic updates!

Control panel constructor - the administrator can configure the control panel the way he wants. For example, selection of columns in the table of materials.

Flexible filters for the control panel with retentive profiles.

Installation of extensions from the Market without having to leave the panel.

The interface of the control panel will be rewritten with the help of React.js. There is a thought to make a Single Page Application (SPA)

Constructor of export and import in the formats of CSV, JSON, XML, YML. I.e., Administrator himself will describe the format and save it as a profile. This will allow the site to work with many third-party services and there will be no need to think about programming export to a particular XML format .

The component can be started from the console to work by cron (on the schedule) and it can do some periodic stuff , for example, a reminder about not ordering.

For developers

Widget constructor (flexible analogue of WidgetKit).

Customization and overriding of any layouts, scripts and styles through the /templates/

Watermarks and advanced pictures resizer.

Compatibility with Zoo extensions (mainly with the elements), and compatibility with extensions for JBZoo.

No database re-indexing!

For the site population

Smart filters with AJAX-updating of page and form.

Endless scrolling in the application.

More dynamics on the site pages.

In the context of programming (for those who are in the know)

JBZoo will be collected from independent packages (composer, bower, etc.). In addition to the popular, we will also use its own works (for example), which are MIT licensed.

To reduce the system connectivity we will be working with the help of the dependency injection (DI) patterns and will use some of the other popular design patterns, which previously were impossible to adopt due to the Zoo. This would give greater flexibility to the code, speed to the development and component performance.

Wordpress and PageKit .... all of a sudden!

There are some ideas in the wind connected with the start of the component at another not less popular CMS - Wordpress and trending PageKit. For the time being, we successfully check the hypothesis. If you have any examples of extensions that work both in Joomla and Wordpress - write to the comments! For those who think that it is not possible - look WidgetKit v2, one and the same code works just as in Joomla so in Wordpress..

Now, the weirdest thing is that...

Some part of this work for component already exists! Automated testing is configured. I.e., this is not a start from scratch, but rather a deliberate way in the same track with a map in hands. All of the above - is not just a rant;) We have already started...

The Joomla! name is used under a limited license from Open Source Matters in the United States and other countries.
JBZoo is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.