Our extensions

play HikaShop is an e-commerce solution for Joomla !
Built for simplicity and flexibility. 


Have your users purchase your products efficiently, facilitate the management of your store, increase your sales thanks to built-in marketing tools and so much more !
Quik and easy to configure, let starts your shop online today !

All features     Download

What's new ?

Main features

INTERNATIONAL
SALES


HikaShop provides an interface for handling languages, currencies, zones and advanced taxes to sell anywhere in the world.

POWERFUL
STATISTICS


Easily manage your store using the built-in dashboard and its powerful statistics capabilities.

RESPONSIVE
LAYOUT


HikaShop works on every device (laptop, tablet, smartphone..). Your shop will fit to each user's screen.

MARKETING
TOOLS


Increase your sales thanks to affiliate program support, coupons, discounts and email marketing integration.

EASY TO
CONFIGURE


User-friendly and flexible, our component is easy to use and configure. Create your own shop online in a minute !

FULLY
INTEGRATED


HikaShop is integrated with many other components and includes a lots of plugins...

ADVANCED
CUSTOMIZATION


Personalize your store: views, checkout, information fields, emails, and more to fit your website design

MULTI
VENDOR


Adding HikaMarket to HikaShop, create a multi-vendor website. Manage in one shop several sales from different people.

Our Company

BUSINESS
PARTNER

HikaShop is a complete e-commerce solution that allows you to easily create and manage your online store but also take it to the highest level.

GREAT
SUPPORT

The whole team is working to provide you with quality support. Documentation and forum are there to guide you step by step. Each issue finds an answer !

ALWAYS
ON TOP

HikaShop is constantly improving. We ensure compatibility with each new version of Joomla! And new features are added frequently.

RECEIVE
OUR NEWS

Good deals and novelties, it's here!

mass actionThe mass action system included in Hikashop allows developers to write their own plugin very easily in order to process data the way they want. This documentation will give you the basis to create a mass action plugin in order to exploit the capacities of the mass action system.

Two options are offered in this tutorial, you can either create an Hikashop plugin as explained in this tutorial (and then, in this plugin, add functions as explained in the following example=) or you can download our example plugin here, including the needed element to make a usable mass action plugin. We also highly encourage you to look at the existing mass action plugins that are already by default in HikaShop and which handle all the mass actions triggers, filters and actions for products, categories, orders, users and addresses that are available when you install HikaShop.

Template

Here is a  template example, a template allow you to display a new option in the triggers, filters or actions.

In this example we used the function "onMassactionTableFiltersLoad" so it will add an option in the filters.

To add an option in the triggers you have to use "onMassactionTableTriggersLoad", and "onMassactionTableActionsLoad" to add an action.

 

// Add a dropdown filter for the product type
function onMassactionTableFiltersLoad(&$table,&$filters,&$filters_html,&$loadedData){
	$type = 'filter';
	$massactionClass = hikashop_get('class.massaction');
	if(empty($loadedData->massaction_filters)){
		$loadedData->massaction_filters = array();
	}
	// Add the entry in the filters listing
	$filters['productType']=JText::_('PRODUCT_TYPE');
// Set the default values here
$loadedData->massaction_filters['__num__'] = new stdClass(); $loadedData->massaction_filters['__num__']->type = 'product'; $loadedData->massaction_filters['__num__']->data = array(); $loadedData->massaction_filters['__num__']->name = 'productType'; $loadedData->massaction_filters['__num__']->data['type'] = 'all'; $loadedData->massaction_filters['__num__']->html = ''; foreach($loadedData->massaction_filters as $key => &$value) { if($value->name != 'productType' || ($table->table != $loadedData->massaction_table && is_int($key))) continue; $value->type = 'product'; $product = hikashop_get('type.product'); $product->onchange='countresults(\''.$table->table.'\','.$key.');'; // add here the output, what will be displayed after selecting the filter
$output = $product->display('filter['.$table->table.']['.$key.'][productType][type]',$value->data['type'], 'chzn-done not-processed');
// call the "initDefaultDiv" function to format your content
$filters_html[$value->name] = $massactionClass->initDefaultDiv($value, $key, $type, $table->table, $loadedData, $output); } }


Once you have your template, you have to create the filter, you have to create the function "onProcessProductMassFilterproductType", where "Product" is corresponding to the data, "Filter" is the type of the added functionality (it could be "trigger" or "action"), and "productType" is the name of your filter.

// Create the function	
function onProcessProductMassFilterproductType(&$elements,&$query,$filter,$num){
	if(empty($filter['type']) || $filter['type']=='all') return;
	// If there is an element given, generally used when coming from a trigger
	if(count($elements)){
		foreach($elements as $k => $element){
			if($element->product_type!=$filter['type']) unset($elements[$k]);
		}
	}
	// Else there is no elements, so we get them from a request
	else{
		$db = JFactory::getDBO();
		$query->where[] = 'hk_product.product_type='.$db->Quote($filter['type']);
	 }
}

The following function count the number of results, it's displayed next to the selected filter. You have to name it "onCountProductMassFilterproductType", it's the same thing as before except that it's an onCount and not onProcess

function onCountProductMassFilterproductType(&$query,$filter,$num){
	$elements = array();
	// Call the main function to get the elements
	$this->onProcessProductMassFilterproductType($elements,$query,$filter,$num);
	return JText::sprintf('SELECTED_PRODUCTS',$query->count('hk_product.product_id'));
}

 

If you need to add an action or a trigger, it's working the same way.

You will just have to use the Trigger or Action functions instead of the Filter one.

 

To add a new data type, if you want to do mass actions on, for example, the discounts you can use the following code in your plugin:

	function onMassactionTableLoad(&$externalValues){
		$obj = new stdClass();
		$obj->table ='discount';
		$obj->value ='discount';
		$obj->text =JText::_('DISCOUNT');
		$externalValues[] = $obj;
	}