Shipping by Rules Plugin for VirtueMart 2
Determine shipping costs according to general conditions (bounds on the order properties). Shipping costs can be depending on:
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.
The plugin exists in two different versions, this free version, which supports fixed bounds for all properties, and a paid version, which allows all conditions and shipping rules to contain arbitrary mathematical expressions (like an OR operator, multiplication, addition, subtraction, functions like rounding etc.). See the documentation for all the differences.
Each rule is described as one 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; Articles<5; Amount<100; Shipping=1.50 Name=Domestic Standard; Amount<100; Shipping=3.50
This set of rules describes three shipping costs: Orders of 100€ and more are free, otherwise orders with less than five articles have shipping costs of 1.5€, all others 3.50€.
As another example, consider the following shipping costs of a webshop (which cannot be expressed with the standard VirtueMart shipping plugin):
|Domestic||2,50€ for up to 3 articles
2,50€ for weight less than 1kg
For the domestic country/countries:
Name=Domestic small; Articles<=3; Amount<50; Shipping=2.50
Name=Domestic small; Weight<=1; Amount<50; Shipping=2.50
Name=Domestic medium; Amount<50; Shipping=5 Name=Domestic Standard; 50<=Amount<100; Shipping=6.5 Name=Free Shipping above 100€; 100<=Amount; 0
For all other countries (international):
Name=International Shipping; Amount<100; Shipping=8.50
Name=International Free Shipping; Amount>=100; 0
The advanced version allows you to combine the two "Domestic small" lines into one, by using the OR operator.
This "Shipping by Rules" plugin suffices for most webshops, as it allows arbitrary many shipping cost rules with fixed shipping cost for each rule.
However, in some cases the shipping costs need to be even more flexible and can not be expressed by discrete levels of costs (i.e. fixed amounts) or fixed bounds in the comparisons, but only by arithmetic mathematical expressions. Simple cases are shipping costs of 5% of the order amount, or 10€ per kg. More advanced rules are employed by cargo companies, where the shipping per kg gets cheaper the more you ship.
For this reason, an advanced version of the plugin is available for sale, which incorporates arbitrary basic arithmetic expressions (allowed operators are +, -, *, /, %, ^ and parentheses) of the above variables in all terms (conditions and shipping costs). An 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)
Another feature of the Advanced Shipping by Rules Plugin is full support for the alphanumeric postal codes used in the UK, Canada and the Netherlands. Those postal codes are split up into their repective parts and the conditions can contain checks for the areas, regions, districts, etc.
For more examples of such advanced shipping cost calculations, see the examples below.
This plugin is licenced unter the GNU GPLv3.