July 10 2016

Presentation

Many of you have been waiting for it since a long time, that's why we are pleased to announce the HikaShop 3.0 Alpha !

As some of you already know, it is packed with a lot of new things:

  • A whole new checkout system which will be easier to configure, easier to use, nicer, faster, and easier to extend.
  • A whole new cart system, with the same things as the checkout.
  • A new dashboard for the HikaShop backend.
  • Reviewed CSS with an integrated responsive grid layout (based on bootstrap 3)
  • Many smaller improvements here and there, like a refreshed interface for the edition of the email notifications, new triggers
  • Modifications in the core to preparing the implementation of the web services
  • New management for the order statuses (which are no more categories in the database)
  • And of course the usual bunch of small patches and improvements that you can see for each release.

Note that this is a preview version, do not use it on a production website.
This is for tests and development only.
We welcome your feedback on this page.

How to use

Because the Beta is now available, please check the dedicated page for it: Go to HikaShop 3.0 Beta page

Install it on a copy of your website or on a new Joomla website.
HikaShop 3.0 has a new checkout and add to cart system, but the old systems are still present.
So if you want to switch from one another, you can use the settings of the Legacy area of the HikaShop configuration.
In the HikaShop configuration, in the first tab (Main), under the section "Advanced settings" you will find a new section "Legacy settings".
HikaShop 3.0 is configured by default to use the legacy modes.

  • Checkout legacy - Deactivate the legacy mode and use the new checkout system, with interactive submit and refresh.
  • Add to cart legacy - Deactivate the legacy mode and use the new dynamic "add to cart"
  • Backend dashboard legacy - Deactivate the legacy mode and get the new dashboard with tiles and JS google charts.

What's new

New Checkout

Thew new checkout system is using a new organization of blocks and javascript events.
Even if the configuration of the checkout workflow is still the same ; the different blocks will be able to have new parameters to go far beyond what was actually possible in HikaShop 2.

Each block is using auto-submit and auto-refresh, so if you remove a product from the cart and it change the available payment methods, the payment block will automatically refresh itself.
While most of the checkout data were stored in the user session, all the data is now stored in the database (which also make the system ready for web services).

New Add to Cart

With the new add to cart system, products are added in the background thanks to an AJAX call.
Afterwards, a javascript event is triggered and the cart module will refresh itself automatically.

If you want to have to growler notification, please be sure that the plugin HikaShop / Cartnotify is right published.
You can configure that plugin (in the Joomla part) to set in which position you want to display the notification.
Feel free to gave us your feedback and ideas for improvements

Backend dashboard

The new backend dashboard is based on the dashboard system first implemented into HikaMarket.
The old reports are not compatible with that new system but it will allow, at the end, more flexibility.
So the edition of the reports available in HikaShop Business will be rewrite in order to generate new block configuration for the new dashboard.

For developpers

New Cart

The HikaShop cart system has been completely rewrite but the triggers are still the same.
Nevertheless, if you want to get the current (full) cart, you will see that the returned object have some differences.

	$cartClass = hikashop_get('class.cart');
	$cart = $cartClass->getFullCart();
	

Backward compatibility - The cart is now linked with the HikaShop user ID and not with the Joomla user ID.
It will allow HikaShop guest users to have a cart assigned to their account (which also make the system ready for web services).

Integration with the new Add to cart

You can add some javascript if you want to catch the even of a product added (or not) into the cart (or the wishlist).
Here a sample code :

	window.Oby.registerAjax(["cart.updated","wishlist.updated"],function(params){
	/*
		params.type : 'cart' or 'wishlist'
		params.id : the cart id. If NaN, it has failed.
		params.el : the dom element where the customer clicked to add the product into the cart
		params.product_id : the product id
		params.resp : object
			ret : the cart id, if 0, it has failed
			product_name : the name of the product
			quantity : the quantity of the product
			image : the url of the product image (50x50)
	*/
	});
	
In your function, you need to perform a return true; if your function handle the event.
If there is no script answer to the trigger, HikaShop will redirect the customer to a default function.

Order statuses

The order statuses are no more store in the category table but in a new dedicated table.
You can now use the HikaShop Orderstatus class to access to the objects (function getList).
The loadAllWithTrans of the HikaShop Category class will handle the retrocompatibility if you use the "status" type in the parameters.

Backend dashboard

Like in the HikaMarket dashboard, it is possible thanks to plugin to insert new blocks in the interface.
To do so, it requires the usage of the trigger "onHikashopStatisticPluginList"

	public function onHikashopStatisticPluginList($data) {
	/*
		$data = array(
			'created' => boolean : indicate if the created order statuses should be include in the statistics.
			'valid' => array : list of orders status, already quoted to be ready for SQL queries.
			'offset' => integer : the time offset
			'place' => null or string : Can indicate the source, like "joomla_dashboard" for the module HikaShop dashboard.
		);
		
		// For the moment, please check the HikaShop statistics class to get more details.
		$ret = array( /* ... */ );
		
		return $ret;
	*/
	}