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!

Table of content

HikaMarket Triggers

Product Blocks Display

public function onMarketProductBlocksDisplay(&$product, &$html) {
	if(!defined('HIKAMARKET_COMPONENT'))
		return;

	// Check if the product edition is allowed
	$marketConfig = hikamarket::config();
	if(!$marketConfig->get('frontend_edition',0)) return;

	// Check HikaMarket ACL
	if(!hikamarket::acl('product_edit_plugin_myPluginName')) return;

	$ret = '';

	//
	// Put the HTML code that you want to display in the product edition (on the front-end) into the variable $ret
	// ( Test if new product with: $product->product_id )
	//
	//

	if(!empty($ret)) {
		$html[] = $ret;
	}
}

ACL Integration

public function onMarketAclPluginListing(&$categories) {
	// Your plugin can interact with product editing in the front-end.
	$categories['product'][] = 'myPluginName';
}

Before vendor creation

/**
 * @param $vendor - the vendor object
 * @param $do - boolean value. Set it "false" to stop the vendor creation
 */
public function onBeforeVendorCreate(&$vendor, &$do) {
}

Before vendor update

/**
 * @param $vendor - the vendor object
 * @param $do - boolean value. Set it "false" to stop the vendor update
 */
public function onBeforeVendorUpdate(&$vendor, &$do) {
}

After vendor creation

/**
 * @param $vendor - the vendor object
 */
public function onAfterVendorCreate(&$vendor) {
}

After vendor update

/**
 * @param $vendor - the vendor object
 */
public function onAfterVendorUpdate(&$vendor) {
}

Before vendor delete

/**
 * @param $elements - array of the vendor ids
 * @param $do - boolean value. Set it "false" to stop the vendors deletion
 */
public function onBeforeVendorDelete(&$elements, &$do) {
}

After vendor delete

/**
 * @param $elements - array of the vendor ids
 */
public function onAfterVendorDelete(&$elements) {
}

Before vendor pay

public function onBeforeVendorPay(&$order, &$vendor, &$orders, &$pay_orders, &$do) {
}

After vendor pay

public function onAfterVendorPay(&$order, &$vendor, &$orders, &$pay_orders) {
}

Before vendor category create

/**
 * @param $vendor - the vendor object
 * @param $category - the category object that we will use for the creation
 * @param $do - boolean value. Set it "false" to stop the category creation
 */
public function onBeforeVendorCategoryCreate(&$vendor, &$category, &$do) {
}

Before vendor category update

/**
 * @param $vendor - the vendor object
 * @param $category - the category object that we will use for the update
 * @param $do - boolean value. Set it "false" to stop the category update
 */
public function onBeforeVendorCategoryUpdate(&$vendor, &$category, &$do) {
}

Before products vendor attribution

/**
 * @param $products - An array of product data
 *    array(
 *      '_id' => Cart product id
 *      'id' => Product id
 *      'vendor' => null, will receive the Vendor id
 *      'fee' => (optional)
 *      'qty' => (optional) Cart product quantity
 *      'price' => (optional) Cart product price
 *      'price_tax' => (optional) Cart product price, with tax
 *    );
 * @param $productObjects - An array of the products, directly from the database
 * @param $order - The HikaShop order object
 */
public function onBeforeProductsVendorAttribution(&$products, &$productObjects, &$order) {
}

After products vendor attribution

/**
 * @param $vendors - The data which will be return by the Vendor attribution function.
 *    The variable contains array to link a vendor with a cart product id.
 * @see onBeforeProductsVendorAttribution
 */
public function onAfterProductsVendorAttribution(&$vendors, &$products, &$productObjects, &$order) {
}

Before calculate vendor price

/**
 * @param $vendor_id - The concerned vendor Id.
 * @param $ret - The return price value (float).
 * @param $order_products - The cart product objects.
 * @param $products - An array of product information with the vendor attribution information.
 * @param $coupon - The cart coupon.
 * @param $vendor_order - The vendor subsale object for the concerned vendor.
 * @param $do - Stop the processing of the vendor price and return directly the content of the variable $ret.
 */
public function onBeforeMarketCalculateVendorPrice($vendor_id, &$ret, &$order_products, &$products, $coupon, $vendor_order, &$do) {
}

After calculate vendor price

/**
 * @see onBeforeMarketCalculateVendorPrice
 */
public function onAfterMarketCalculateVendorPrice($vendor_id, &$ret, &$order_products, &$products, $coupon, $vendor_order) {
}

Vendor panel display

/**
 * @param $buttons - Array with the different buttons which will be display to the vendor
 * @param $statistics - Array of array containing specific data used by the Statistic class ; can display raw data and dynamic one (list, charts, graphs)
 */
public function onVendorPanelDisplay(&$buttons, &$statistics) {
}

Statistics Plugin list

/**
 * @param $vendor_id - The ID of the vendor
 * @param $options - Array with useful values for the statictics.
 */
public function onHikamarketStatisticPluginList($vendor_id, $options) {
	/*
		$options = array(
			'created' => true|false, // Indicates if created is in the list of stats_valid_order_statuses.
			'valid' => array('confirmed','shipped'), // List of stats_valid_order_statuses
			'offset' => '+3600' // String with the timezone offset useful for some queries
		);
	*/
	return array(
		'name' => 'Test',
		'type' => 'plugin', // Can use other kind of type with an 'query' or 'value' entry for the SQL or raw data.
		'plugin' => 'my_plugin', // Only with plugin type
		'slot' => 1,
		'order' => 3,
		'published' => 0
	);
}

Statistics Plugin list

/**
 * @param $data - array given in the previous trigger of the documentation.
 * @return $content
 */
public function onHikamarketStatisticPluginDisplay($data) {
	if(!isset($data['type']) || $data['type'] != 'plugin')
		return;
	if(!isset($data['plugin']) || $data['plugin'] != 'my_plugin')
		return;
	return 'My content';
}

Before Vendor listing display

/**
 * @param $view - the view object
 * @param $sql_params - an array with the different parts for the vendor listing sql query
 */
public function onBeforeVendorListingDisplay(&$view, &$sql_params) {
	/*
		$sql_params = array(
			'select' => array(),
			'join' => array(),
			'filter' => array( ... ),
			'order' => '',
			'search_map' => array( ... ),
			'order_accept' => array( ... )
		);
	*/
}

Before order export query

public function onBeforeOrderExportQuery(&$select, &$from, &$filters, &$order, &$searchMap, &$orderingAccept) {
}

Product block display (front-end)

This trigger is called if the user have the ACL: product / edit / plugin

/**
 * @param $product - the product which is currently in edition
 * @param $html - an array of string which will be displayed in the page
 */
public function onMarketProductBlocksDisplay(&$product, &$html) {
}

Before product approval

This trigger is called before a product is approved for publication.

/**
 * @param $oldProduct - the product which is currently targeted for approval
 * @param $do - a boolean value to continue or not the approval
 */
public function onBeforeProductApproval(&$oldProduct, &$do) {
}

HikaShop Triggers

Product Blocks Display

public function onAfterOrderProductsListingDisplay(&$order, $type) {
	switch($type) {
		case 'order_frontvendor_show':
			//
		break;
		case 'order_frontvendor_invoice':
			//
		break;
	}
}