VM Advanced Shipping by Rules

IMPORTANT ANNOUNCEMENT: Plugin development ceased, all plugins made available freely (GPL)

With great sadness we have to announce that we are ceasing development of all our VirtueMart, WooCommerce and Joomla plugins. Effective immediately, all our plugins -- even those that were paid downloads -- are made available for free from our homepage (GPL license still applies), but we cannot and will not provide any support anymore.

It has been a great pleasure to be part of the thriving development communities of VirtueMart as well as WooCommerce. However, during the last year it became painstakingly clear that in addition to a full-time job, a young family and several other time-consuming hobbies at professional level (like being a professional singer) the plugin development and the support that it requires is not sustainable and is taking its toll. It has been an honor, but it is now time to say good bye!

Advanced Shipping by Rules Plugin for VirtueMart

Describe shipping costs with general rules including mathematical expressions. Very complex shipping cost structures (depending on the amount, postal code, weight, number of products and/or articles and coupon code) can be easily implemented.
  • 25
  • 30
  • plugin
  • vm2.0
  • vm3.0
Price : FREE
Paid Download
VM Advanced Shipping by Rules, Version 6.2.4 VM Advanced Shipping by Rules, Version 6.2.4
Filename: plg_opentools_vm_rules_shipping_advanced_v6.2.4.zip
MIME-Type: application/zip
File size: 56866 Bytes

Determine even very complex shipping costs according to general conditions (containing even mathematical expressions). Shipping costs can be depending on:

  • Total amount of the order
  • Total weight of the order
  • Number of articles or different products in the order
  • Volume or minimal and maximal extensions of the products
  • Postal code of the delivery address (including alphanumeric postal codes from the UK, Canada and the Netherlands)
  • Coupon Code
  • Custom variable definitions

This "Advanced Shipping by Rules" plugin incorporates arbitrary basic arithmetic expressions (allowed operators are +, -, *, /, %, ^, parentheses and functions like round, ceil, floor, max, min, etc.) of the order properties in all conditions and shipping costs. You can also define custom variables that can contain complex conditions (e.g. ZIP are checks) to be reused in multiple rules. Another feature in the advanced version is the support for alphanumeric postcodes (UK, Canada, Netherlands).
Each country zone can be assigned a different tax rule, and the shipping cost can be given as the amout with or without taxes. In both cases the tax amount and the corresponding net or gross shipping costs will be correctly calculated.

Each rule is described as a simple line of text with an easy structure (semicolons separate the parts of the rule). For example:
Name=Free Shipping; 100<=Amount; 0
Name=Domestic Small; (Weight<3) OR (Articles==1); shipping=6
Name=Domestic Standard; Amount<100; Shipping=1.5*Weight

This set of rules describes three shipping costs: Orders of 100€ and more are free, otherwise if the order weighs less than 3kg or contains only one article, the shipping is 6€, all other orders cost 1.5€ per kg.

This advanced version of the plugin also allows shipping costs like 5% of the order amount, or 10€ per kg, or 2€ per additional article. More advanced rules are employed by cargo companies, where the shipping per kg gets cheaper the more you ship. A (very complex) example is the following rule, which applies to all orders of at least 2 articles below 100€ and specifies shipping costs as 5€ fixed plus 3% of the order amount plus 1€ per kg plus 0.5€ per additional article:
Name=Complex shipping function; articles>=2; amount<100; shipping=5+amount*0.03+1*weight+0.5*(articles-2)

For more (and more real-life) examples of advanced shipping cost calculations, see the examples in the documentation.

Limitations and common misconceptions 

  • The plugin does not allow shipping costs on a per-product level (e.g. it is not possible that Article A has shipping costs of 3€, Article B 5€ and if you order both you pay 8€ shipping)
  • The plugin allows only limited support for category-based shipping. You can only find out if an article from a particular category is in the order, but NOT how many articles from a given category (e.g. it is not possible to have all articles from Category X ship for 3€ and all articles from Category Y ship for 5€)
  • The plugin does NOT sum the results of all rules, but uses the FIRST matching rule it finds.
  • The plugin does NOT use the lowest result of all rules, but it uses the FIRST matching rule it finds. (In particular, if you want to provide free shipping under certain conditions, you usually need to place the rule for free shipping FIRST rather than last, because the last rule will only be used if none of the other rules matches).

Documentation (Stable version)

Demo Server

Examples for the Rules

Frequently Asked Questions (FAQ)

Support Forum


This plugin is licenced unter the GNU GPLv3.