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!

 

Description

The limit system able you to define a filter in order to set a limit through different parameters, so you can choose your period (like Cart, Daily, Weekly etc...) and the limit type (like Quantity, Price, Weight) for each limit, plus you can limit different order status type. When the limit is reached, a message will be display in the checkout to inform the customer.

This screen can be accessed via the menu Products->Limit on your backend.

Toolbar


New: Enables you to create a new Limit.
Edit: Select a badge and then click on this button in order to edit it.
Delete: Select one or several badges and click on this button in order to completely delete them.
Help: This button enables you to turn ON/OFF the help section. This screen will appear or disappear.
Dashboard: You can go back to the control panel using this button.


 

Column Headers

Categories Columns

  • # : An indexing number automatically assigned for ease of reference.

  • Checkbox : Check this box to select one or more items. To select all items, check the box in the column heading. After one or more boxes are checked, click on the delete button in order to delete the selected categories.

  • Type : By clicking on the edit icon, you will be able to edit the category.
  • Product : Your limit will be applied on this product(s).
  • Category : Your limit will be applied on this category(ies).
  • Value : Here, you will see the limit value in different unit, currency, weight or quantity.
  • Period : Here, define the period among Cart, Daily, Weekly, Monthly, Quarterly, Yearly and Forever.

    Example :

    You have a define as Period "Quantity" and the Value as 2, as result, you will get only 2 possible sales products per month.

    .
  • Start date : The date where your limit process have to start.
  • End date : Same idea as previous, but the date where your limit process have to end.
  • Published : If a category is published it means that it can be seen by your customers in your shop.
  • ID : This field indicates the ID of the category.

Filters

Category Filters

Dropdown filter: Here, you can select to restrict listing display among "all", "Quantity", "Price" & "Weight".

 

 

Presentation

With HikaShop 3.4.0 release, we added a new checkout workflow edition interface. We worked hard on this new feature in order to enable you to setup your checkout with more liberty. This tutorial will show you how all of this works and what's possible.

Reach the Checkout Workflow

To reach and configure the checkout, follow this step by step process :

  • In the Components dropdown, select HikaShop, then Configuration

  • Click on the Checkout tab and have a look at the Checkout Workflow part

General Description

Let's check the new interface structure graphically :

Essentials points about workflow parts

Let's add some precision in order to properly understand every workflow parts :
Here is a frontend view's representation of the previous color graphic.

Thanks to the progress bar you can see the different checkout steps, and in purple 2 views (here, Cart and Login).
So through a checkout, you can have one or several steps (pages of the checkout). And on each step, you can have one or several views (blocks on the same page), one below the other on the page.

Views Details

New view options

As you can expect from this view, it will enable you to add a new view's block and define its type using the dropdown. After selecting the type, you'll just have to click on "Add view".

Login view

  • Show submit button : Select "Yes" if you want to only display the submit button.
    Note : Depending on the layout of your different blocks that make up your workflow, this button may not always be necessary or can be redundant.
  • Ask address on registration : Define if the address form will be asked while registration process.
  • Show 'same address' checkbox : That option will enable you to choose if you want to display only the billing area or only the shipping area or both.
  • Same address checkbox pre-checked : Select if you want display the 'Same address' option.
    this will allow your customer to enter only once his address and choose to use the same for his shipping or billing address.

Address view

  • Read only : Select "Yes" if you want to only display the selected address(es) without allowing the user to do modifications in that view.
  • Address selector : Define how to display the address selection (dropdown or list).
    Note : This option won't be available if the Read only option is activated.
  • Type : That option will enable you to choose if you want to display only the billing area or only the shipping area or both.
  • Same 'address' checkbox : Select if you want display the 'Same address' option.
    this will allow your customer to enter only once his address and choose to use the same for his shipping or billing address.
  • Same address checkbox pre-checked : Define if you wan't pre-check the option the "same address" option in your checkout address form.
  • Allow multiple addresses : Authorized or not your customer to have several addressses, and select if you want to grant this possibility to logged user only.

Shipping view

  • Read only : Click "Yes" if you want to only display the (pre)selected shipping method without any possibility for the user to change it.
  • Show Title : Will enable you to display the title of the view or not, on top of it.
  • Multiple group product display : Select "Yes" if you want to display the products thumbnail for each shipping group (when you have different vendors with different shipping methods, or warehouses).
  • Selector type : Define how to display the shipping method selection (dropdown or list).
  • Price with tax : Define how to display the shipping price with tax (Yes) or without tax (No) or both, with and without tax.
  • Display errors : Choose if you want to allow error message to be display in your shipping method block.

Payment view

  • Read only : Click "Yes" if you want to only display the (pre)selected payment method without any possibility for the user to change it.
  • Show title : Will enable you to display the title of the view or not, on top of it.
  • Selector type : Define how to display the payment method selection (dropdown or list).
  • Price with tax : Define how to display the payment price with tax (Yes) or without tax (No) or both, with and without tax.

Cart view

  • Read only : Click "Yes" if you want to display the content of your cart without any possibility to modify it.
  • Show Image : You can choose here to display the product images or not.
    Or you can select "Inherit" to use instead the option of the main HikaShop Options section of the configuration.
  • Link to the product page : Select if you want to allow the customer to go to the product page or not.
    Or you can select "Inherit" to use instead the option of the main HikaShop Options section of the configuration.
  • Display product code : Choose to display the product code in the cart view or not.
    Or you can select "Inherit" to use instead the option of the main HikaShop Options section of the configuration.
  • Display price : Display or not the prices in the cart view.
  • Price with tax : Define how to display prices with tax (Yes) or without tax (No) or both, with and without tax.
    Or you can select "Inherit" to use instead the option of the main HikaShop Options section of the configuration.
  • Show delete icons in the cart : Display or not the delete icon to remove products from the Cart.
    Note : This option won't be available if the Read only option is activated.
  • Show shipping price : Display the shipping method price or not.
  • Show payment price : Display the payment method price or not.
  • Show coupon price : Display the coupon price or not.

Fields view

  • Read only : Click "Yes" if you only want to display the selected values in the custom order fields without the possibility for the user to modify them.
  • Show title : Select if you want to display the title of the view or not, on top of it.
  • Show submit button : Display or not the submit button to enable users to send custom fields value without submitting the whole checkout step.
    Note : This option won't be available if the Read only option is activated.
  • Custom fields : With this input you can select which custom fields you want to display in your view. If you don't select anything, it will display all the custom order fields possible.
    This option can allow you to separate your fields form in separate steps by having it in different steps with different fields selected in each step.

Terms and Conditions View

  • Terms and Conditions : Select here the Joomla article that will become your Terms and Conditions.
    Note that you can add this view several times to your checkout with different Joomla articles, if you want several checkboxes to be checked by the customer.
    Also, if you don't select any article, the checkbox will still appear but its label won't be clickable.
  • Terms & Conditions popup size : Define here the popup size which will display your Terms and Conditions Joomla article.
  • Label : Type here the message you want to display in order to invite your customer to validate your Terms and Conditions.
  • Checkbox pre-checked : Define if you wan't pre-check the "Terms and conditions" checkbox.

Text View

The text view will allow you to write some text to add legend to guide customers, or separate the different views, etc.
Plus, it's also possible to use html code, inline css,javascript code blocks, or even use tag to insert tags from other plugins (modules anywhere, content anywhere, and the likes...).

Separator view

  • Type of separation : This option will enable you to define how the separator will work, Vertical or Horizontal. See the illustration :

First, have a look at this checkout workflow configuration :

The result is :

To discover a lot more about the separator abilities, see the Concrete Examples section.

Generic view

For the other default types of views there is no specific option, and so views will be displayed like this :

This will be the same kind of display for these views :

  • Coupon
  • Status
  • HikaShop user points

Note: Plugins and other extensions can add their own views to the checkout workflow using our "Checkout API". So you might see more view types with possibly their own options.

How to move Views

In order to move a view in your workflow you have some arrow buttons that will appear when you hover the view, all around the border of your view.

For example, let's swap it with the previous view.

Or to move it to the next step.

Manage steps

Steps options :

  • Text Input : Here, you can see the default title that will be used (by default it's the title of the first view of the step), but you can type your own text in the input field.
    You can also enter a translation key in it so that you can have a different title in each language of your website.
  • Trash icon button : This button enables you to delete the step

    Note : All steps can be deleted except the last one, the "End" step. That step is not a real step of your checkout. That's the page the customer will see after clicking on the "Finish" button of your checkout, which in most cases will redirect him to the payment gateway automatically so that he can pay his order.

Concrete example

Let's see here some typical configuration with 2 concrete examples.

One page Checkout

Backend configuration :

First, let's consider that all the views are needed (except the second cart view), but we have to move them all to the first step

Now, we have to remove the second cart view, like shown on this screenshot :

Then, you can see that the step 2 is now empty, no need to delete it with the little trash icon, because when you will save your new configuration, the step 2 will be automatically removed and you will get this :

Frontend result :

As result and as expected you have now a one page checkout :

Several pages checkout

Backend configuration :
From this kind of configuration we will now move to a step by step checkout.

Move the Address view, to the next step :

Delete the Cart view in Step 2 thanks to the delete icon on the top right corner of the view.

Move Shipping and Address to Step 3.

Create a new view => Coupon

In the Step 3 : As you did for Coupon, create a Field view

Add, in the same way, Cart and Text views

Edit your Text view with this Html code :
<div style="color:red; font-weight:bold;">Please, don't forget to read our Terms and conditions</div>

Last but not least, do not forget to edit your step title in order to fit with your Checkout workflow.

Your checkout workflow is now like this, don't forget to save :

Frontend result :

As expected you have now checkout in several steps :

Note : Each step has its own title that will announces what will be displayed :

Let's play with the separator system !

We will see here, several configuration not especially to invite you to follow them but in order to show your the real possibilities of the block separator system.

First try :

Here a classic checkout workflow configuration :

And the result on the frontend :

Let's now start to use separator on the step 2, to display side by side Shipping and Payment block :

Let's see the result on the frontend :

Understand the point with the Horizontal separator :

Let's imagine that, like the previous step you just want to display side by side payment and shipping method, but you have forget to use the Horizontal separator, let's see what this will leads :

Your checkout workflow is configured like this in one step.

On the frontend you get this :

And so, just add "by mistake", just 1 Vertical separator between the shipping and the payment block :

The result will be like this :

Why not, but we guess that the idea was more just to add 1 Horizontal separator like this :

In order to get this :

As you can imagine with these 2 separator blocks every configuration is possible ! The only restriction will be of course to keep readability.

Description



Thanks to this tutorial, you will learn how to manage shipping manual price plugin, and how create several AND specific shipping method per product.
Then, we will create a concrete examples to have a specific shipping method price for just ONE product and after this several specific shipping price for this same product.



Shipping prices per product configuration


First of all, reach your shipping manual price plugin and so, go to

Extensions => Plugins.



There, look for on "Shipping" in the filter input.

Now, you have a view on all your plugins listing relative to "Shipping", and so click on his name "HikaShop Shipping manual - Prices per product plugin".





Let's discover its options :


  • Frontend position : Here, you can define the position where the product specific shipping prices will display on the product page.
  • Display on frontend shipping with minimum quantity : Define if you want to display on the product page the shipping prices with a minimum quantity restriction.


Concrete examples


First of all, to define a shipping price per product, we will go to the shipping method configuration and allow the shipping per product prices :

Go to Components => HikaShop => Configuration.



Continue to System => Shipping methods.



Here, select the Shipping method for which you want shipping prices per product.



In your shipping configuration page, looks for the "Use price per product" setting and set it to "Yes".


  • Note : This option is required for your HikaShop Shipping manual - Price per product plugin processing, but has its own aim. As a quick explanation, this option enables you to add a shipping cost for each products and for all products in your cart, thanks to the "Price per product" input value.

    Example : In your cart, you have two products and you set 1 in your "Price per product" input value.

    As a result, your shipping cost : 2 x 1$ , plus if you configured it, the shipping price of the shipping method itself (here, Price : 7$) = 9$.



Now, we will go to your products listing page :

"Components" => "HikaShop" => "Products".



Here, edit the product for which you want to define a specific shipping price and click on its name.



In your product configuration page, look for the "Shipping prices" area.



Here, you can create several specific shipping prices for your product, you can see displayed here your shipping method with its price.

Here will be displayed only published shipping methods where you have set the "Use price per product" setting to "Yes" .


  • Note : If you your "Shipping prices" area isn't displayed while you have enabled the required plugin and set the price per product setting to "Yes" in your shipping method, check if you have set a warehouse for your product that doesn't match with the shipping method's warehouse setting.



Let's go and create your first product shipping price by clicking on the "+" icon.


As a result, a new line will be displayed in order to set different elements of your product shipping price.


Let's explain these different inputs :


  • Min Qty : The aim of this option is to only use the product shipping price when the quantity of the product in the cart is above that value


    Example : You want to add 2$ to the shipping price ONLY for customers buying 2 or more of the this product, and thus, you fill the input with a "2".


    You can also let this field empty, if you don't want to use this condition.


  • Price : Define here your specific shipping product price.


    Note : This price will be applied for each product added in the cart.


    Example : If your customer adds in his cart 2 of this product, then the price here will be multiplied by 2.



  • Fee : Same idea than above, but for your shipping fee cost.


    Note : Unlike the Price calculation, the shipping Fee won't be multiplied by the quantity product.



  • Blocked: This a way to blocked the use of a shipping method if a product is in the cart.

    It is often used to block the sale of some products of the store to some places of the world.

    One example that comes to mind is a website selling military supply and based in the USA. The shop can sell any product outside of the USA, except for firearms. So in that case, the owner will configure two sets of shipping methods, all of them with the "shipping price per product" activated. One set with a zone restriction for the USA country zone, one other set with a zone restriction for a shipping zone with all the other countries as sub zones. Then, in the firearm products, the owner will check the blocked checkbox for the international shipping methods.

    That way, when firearms will be in the cart and the customer address will be outside of the USA, no shipping method will be available and an error message explaining the situation will be provided to the customer on the checkout.


  • Actions : Here, you can use the "+" icon to add a line or the "" icon to delete it.

Let's define a Min Qty, a Price and a Fee.

And save these parameters



On the product page and in the checkout process you can see that, as expected, your specific shipping price is displayed.



Let's check this price 9,5 Euro :



You can see that from the start the Shipping method used as base has already a price of 7,00 Euros

Then, add to it your specific price : 2,00 Euro

And finally, the specific fee : 0,50 Euro


Note : If the customer add in the cart the product a second time,the shipping price will be :

Shipping method : 7 Euro + Specific shipping price : 4 Euro (2 quantity products x 2 Euro) + Fee : 0.50 Euro = 11.50 Euro



Repeat the previous configuration to create another line, and so a second specific shipping price to your product, like you can see on screen below.



And of course, save your configuration.


Let's explain the settings for this second specific shipping price :


  • Min Qty : With this setting of 2, your specific shipping price will only be displayed if the customer order at least 2 items of this product.

  • Price : Here your specific shipping product price is 0.50 Euro.
  • Fee : And the fee is 0.50 Euro.

Let's see the result in several checkout cases.


With that configuration, 2 different shipping prices will be displayed and the shipping price will change based on how much of that product the customer put in the cart :


  • the customer adds in the cart only one product : the shipping price in checkout process will be :

    Shipping method : 7 Euro + Specific shipping price : 2 Euro + Fee : 0.50 Euro = 9.50 Euro



  • The customer adds in the cart 2 products : the shipping price in checkout process will be :

    Shipping method : 7 Euros + Specific shipping price : 1 Euro (2 quantity products x 0.50 Euros) + Fee : 0.50 Euros = 8.50 Euros



  • Like before, the shipping price that fit the customer quantity's choice is automatically displayed and used for the global shipping fee.




For this part of the tutorial, you must have configured at least 2 shipping methods. In this example, we have already one we configured earlier and we configured a second with a percentage instead of a price.



Note : You can have several shipping methods created from one shipping plugin!

A shipping methods is a way to configure your shipping plugin, and so you can configure shipping plugin with different restrictions, through several shipping methods.

Here, for example the 2 shipping methods are created from the Manual shipping methods plugin.



Caution : Don't forget to published your shipping methods and activate the "Use price per product" setting or you won't be able to configure shipping prices in your product configuration page.



Back to your product configuration page, you will discover in your "shipping prices" area a second possible shipping price, from your second shipping method.



Let's add parameters for this new shipping price. Click on + icon to display a new line.



And don't forget to Save.


Let's see the results on the frontend :

Shipping method : 3 Euros (10% of 30 Euros) + Specific shipping price : 0.20 Euros (1 product x 0.20 Euros) + Fee : 0.50 Euros = 3.70 Euros



An other case :

Shipping method : 6 Euros(10% of 2 x 30 = 60 Euros) + Specific shipping price : 0.40 Euros (2 products x 0.20 Euros) + Fee : 0.50 Euros = 6.90 Euros

So, you can see that the shipping price displayed on product page is the shipping price for 1 product since HikaShop doesn't know how many products will be added in the cart.




This concludes our tutorial on the matter of shipping prices per product.

 

 

Description

This screen enables you to create or edit mass actions. These mass actions will allow you to process almost everything in Hikashop, directly from this screen or based on a specific trigger. Thanks to this system, you can edit multiple products in one click as well as categories, orders, addresses or Hikashop users, avoiding long hours of repetitive work doing it element by element. Mass actions will for example help you move thousands of products from one category to another or change the order status for every orders of a specific customer in a few clicks. In addition to these one time processes, you will also be able to create tasks executed periodically or on a specific triggers like at the order creation or when a product is deleted, etc.

Beware that these actions may have irreversible consequences so be careful when you configure them as you could easily wipe out all your orders or products or users in a few clicks ! If unsure, please make sure that you do a backup of the website before or try first on a copy of your website.

Mass Actions are available for all HikaShop versions and available via the menu System>Mass actions.

Reach Mass Actions

Go to "Components -> HikaShop -> Configuration".

 

Then, click on "System", and "Mass actions".

 

You can now, see "Mass action" screen, here for example, as no Mass actions have been configured, the listing is empty.

 

And so, here you can see configuration screen.

 

Toolbar

 

  • Process : This button will execute the actions you defined in this view after filtering the elements as your configured.
  • Save & Close : Save the mass action and return to the Management screen.
  • Save & New : Save the current mass action and create a new one, redirecting you to an empty form.
  • Save : Apply the modifications to the mass action and stay on the same screen.
  • Cancel : Return to the previous screen without saving the modifications.
  • Help : This button enables you to turn ON/OFF the help section, this screen will appear or disappear.

 

Set the main informations

  • Name : Here you have to define the name of your mass action.
  • Description : A short description of your mass action.
  • Published : Publish or not the mass action. If a mass action is not published, it will not be processed on the selected trigger.

 

Additional Information

  • Data : These buttons allow you to choose the type of data you want to work on. Each data has specific triggers, filters and actions available, enabling you to do different combinations.
  • Triggers : Triggers allows you to specify when the mass action should be processed. You can either use it to execute your mass action on a regular frequency (for example you can import a csv with your products every day, updating your data according to the modification you made in the file), or execute the defined action on a given trigger like after a product is created. This way, you will be able to define for example a weight for a newly created product if you didn't specified any, avoiding shipping method errors. If you use a time trigger or click on the process button, the system will use all the data available but if you choose a trigger like "after a product is create", the mass action will run only on the data of the trigger, so only on that product in that case.
  • Filters : Here you can add filters to your mass action. For instance, you can specifically select products which belong to a category or customers living in Europe. Thus, you can process actions only on the selected data. Note that the number of elements filtered will be displayed next to the dropdown, letting you know how for example much products will effectively be processed in the given category.
  • Actions : This is the main part of the mass action system since it define what kind of action will be processed on the selected and filtered data. Here, you can choose to modify the data, export it as a csv, and even display the results on the current page. This last option will display the selected information in a table and give you the possibility to dynamically change the displayed values. 

 

Detailed options

  •  Filters

    • Generic

      • Columns : This option allow you to filter on any column of the selected table. This take the values in the database directly.
      • Limit : To have only a defined number of results, you can use this option. It is often useful when you want to export data or display them.
    • Product

      • Product type : The product type option allow you to filter only the main products or the variants.
      • CSV product : You can give a csv file as filter, the mass actions will take the content of the file, and filter on the given products.
      • Characteristics : To filter on the characteristics, it display only the available characteristics.
      • Access level : The access level filter restrict the results of the search to the defined access level.
    • Category

      • Category type : Allow to filter only the selected category type, for example only the product categories.
      • Access level : The access level filter restrict the results of the search to the defined access level.
    • Order

      • Order status : Restrict the results to the selected order status.
      • User with ACL : To get the orders where the users have the group defined.
    • User

      • Don't have : Return the users which don't have the value set.
      • User with ACL : To get the users with the group defined.
    • Address

      • User with ACL : To get the addresses where the users have the group defined.
  • Actions

    • Generic

      • Display the results : This option will display the elements previously filtered in a dynamic table, when this table is displayed a simple click on a row allow you to change the value of the selected element.
      • Export a CSV file : You can export the elements in a CSV or XLS file. Besides, you can define or not a path for this file. When a path is set, the file will automatically be saved in the specified folder. If you let the path empty, it will display the browser download bos to let you select an action, display, or save.
      • Update the values : This will allow you to change a value on all the elements returned, be careful when using this option because it is irreversible.
      • Delete the elements : As indicated, you can delete the filtered elements, as the previous optionit is irreversible.
    • Product

      • Update the categories : This will update the categories of the product, two choices are present, add to only add new categories to the product or replace, to remove the previously set categories and add the selected one. To remove all the categories, you can let the field empty and use the option "replace".
      • Update the product relateds : As the categories, you can add or replace one or many related product(s) to the filtered products.
      • Update the product options : This option will do the same thing as the previous one, but it is applying on the options.
    • Category

    • Order

      • Change status : Easily change your order status by selecting a new one, it will change it to the triggered and/or filtered one.
      • Add an existing product : To add a product, for example a gift on an order, you can do that automatically or manually with this action. You can select one or many products to add.
    • User

      • Change the user group : Simply select the user group to set to the selected user(s). You can add a group or replace the current group(s) to the selected one.
    • Address

Tags:

  • {time} When you have filters on columns which contain a date like product_created, product_created, order_created, order_invoice_created, etc, you can compare the value of the element to the {time} tag, which will be replaced by the current date/time. For example, if you have a filter "order_created >= {time}-2592000", it will only keep the orders which was created in the past 30 days (because 2592000 is 30 days).
  • {time} When you use an "Export a CSV" action, you can include this tag in the path of the file you provide to the action. This tag will be replaced by the current date.
  • When using the action "Send an email" for the "order" data, you can use tags in the subject and the body of the email. The tags allow you to add values pertaining to the current order in the columns of the hikashop_order table in the database. For example, you could use {order_number} or {order_status} or {xxx} where xxx would be the column name of a custom order field.
    Note that since the mass action only sends one email for all the orders being processed at the same time, tags will only be replaced if the mass action is processing a single order each time. That's what will happen if you use a trigger "after an order is updated" for example.
  • When using the "Update the values" action, you have several modes:
    • INT For which you can provide a number without decimals
    • FLOAT For which you can provide a number with decimals
    • STRING For which you can provide a text
    • OPERATION In that case, you can provide a formula with arithmetic operations (if you're processing numbers), or text operations (if you're processing text). You can also use tags like product.product_name or price.price_value or order.order_full_price or user.user_email, etc in your operations. These tags must match with the column names in the database for the corresponding tables. For arithmetic operations, you can use the MySQL numeric functions, and for text operations, you can use MySQL string operations. This can allow you to update product prices, generate the canonical URL from the alias of the product, update stocks, automatically fill custom fields, etc.

Tutorials

Passed this overview on the different options available in the mass action system, here are two short tutorials giving you an example of what can be achieved with this function.

Create a massaction

First, to use the mass actions you have to click on the menu "System" then "Mass actions".

When you arrive in the mass action page, you have to click on the "New" button in the toolbar in order to create a new Mass action.

 

 

Once you are in the Mass action form, you can enter the main information relative to the mass action you're creating. The following fields allows you to set a name and a description to your mass action.

We recommend to set meaningful information, it will be easier for you to find back a mass action in the future.

 

As all the other features, you can publish or not the mass action. It's useful when you are using one or many triggers in the mass action. 

The triggers are called generally before or after an action. For example, when you create a product, it calls the two triggers "onBeforeProductCreate", which is called before the save of the created product, and "onAfterProductCreate", which is called after the save.

 

 

A mass action can be applied to one data type. You have to select the desired data on which you want to apply a mass action. The default possibilities are Product, Category, Order, User and Address.

If you want to create a mass action on another data type and you have some Php skills, you can code your own mass action plugin by following our developer documentation on that.

When the data is selected, you can choose one or many triggers, filters, actions. To add one of these elements, you just have to click on the corresponding "Add a ..." dropdown and to remove one of them click on the remove icon.

 

change the category of a product

 

As an example of the use of the mass action system, we will see how to move all the out of stock products into the category "Out of stock".

To do that, you can configure your mass action as the following screen shot:

 

 

With this configuration, the mass action will be called when a product is updated and every day. The every days trigger is not required here but it can be more secure to add a check on all the products once a day like that.

This mass action will modify the categories of the product being updated when called on the "After a product is updated" trigger, and will affect all the products when called by the "Every days" trigger. Note that the first trigger passes an element to the mass action, processing only this element. At the opposite, the second trigger, since it's not applied on a specific element, will be based on all the elements.

The action will be executed on elements, but the elements must correspond to the filters. In this case, if the product(s) are in stock and/or are variants, the action will not be executed on them.

If we have at least one product which is out of stock, the action "Update the categories" will be executed on it/them. As you can see, there is a dropdown on the left of the action, it allow you to select "Add" or "Replace".

We wanted to change the category so we selected "Replace" here. To add a category beside the current categories of the product, just choose the "Add" option.

Don't forget to save the mass action. Otherwise, it will not be triggered. If you click on "Process" it will execute the mass action on all the elements corresponding to the filter but only at that moment.

Display all the product categories

This second example will show you how to display all the product categories. First, you have to select the data "Category" and configure it as the following screen shot:

 

 

To display the products categories, you have to use the filter "Category type" and select "Product category".

Then, in the action, simply select "Display the results" and you will see the elements to display. By default, nothing is selected and you can check all the columns by clicking on "Select all".

To display the results, just click on the "Process" button and the process will execute the selected action(s), and save the current mass action.

 

Here is the display of a "Display the results" action:

 

As you can see, when clicking on a cell, it becomes editable. Just edit the value and click on the save icon.

The display of the row edition change depending on the type, you can find textarea, dropdown, datepickers...

 

Modify several products prices through categories

Here, we will show you how to use the Massaction to increase several product price from a define category. Let's imagine, that you want increase by 10% some products price from specific category.

 

 

  • First target in Data to apply your Massactions on Product.
  • For the purpose of this example, ignore the Triggers part.
  • In the Filters define required Category, and so select the Category columns.
  • On this example, we select Category by his category_id.
  • And so, if you have to select several category, just click on the Add a filter button.
  • Like for the Triggers, ignore the Limitations part.
  • And for Action, we will use the "Update the values" action on the price_value column in OPERATION mode, and then provide the operation itself in the last field.
  • We type : price.price_value * 1.1, let's explain this :
    • price : Allow to select the table price in the database
    • price_value : Allow to select the column price_value in the price table
    • *1.1 : Corresponds to a multiplication of 1.1, for the 10% addition.

And to finalize your Massaction, as we didn't set a specific trigger, clic on the Process button.

As result, your targeted products have their prices change for an 10% addition.

 

Action button example

 

Here, we activate the "Actions as a button"setting of the mass action.
This will add an extra button to the corresponding listing in the backend with the name of the mass action as label of the button.
When the button will be pressed, the actions of the mass action will run on the selected elements.
Warning: Triggers, filters and limitations will be ignored when the action button is pressed. Only the actions will be processed.

 

 

Results in products listing :

  Then, you will see a new button with the MassAction name, this button will remain grayed out until items are selected.

 

 

Run MySQL query

 

Imagine, you use a plugin associated with your HikaShop, but it's not an HikaShop plugin, you need to automate an operation from HikaShop to an operation in this third party plugin SQL dataBase.
And so, if you used to MassActions, you will think that it's not possible with the classic MassAction option.
This is precisely where you can use the "Run MySQL query" action, see the screenshot :

 

MassAction settings :

 

Here, the MassAction will select required orders with the good order status ("created"), then the Action will process the SQL operation on your "other_plugin_DB" after have selected relative customer name & customer email
Note the "{order_id}" that will dynamically be replaced by the order_id of the current order being processed by the mass action, example : (13, 54, 55, 57, 60, 61, etc...).

 

Run Php code

 

 With the "Run PHP code" action, you can do actions which aren't available by default in the list of actions offered by the system. This can be helpful if you want to do an operation which is too complex to be done by a MySQL query, but you don't need dozens of lines of PHP (if you need that much PHP code, then we would recommend building a plugin and implement the corresponding event as per our developer documentation).

 

As with the "Run MySQL query" action, each column of the table corresponding to the data you're processing is available to you as a tag ({order_id} for the ID of the order, {order_status} for the status of the order, {product_id} for the id of the product, etc).

Here is a video webinar which explains how to use HikaShop with Nicolas by CloudAccess.net .