Shipping by Rules for VirtueMart

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!

Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1


NoShipping for several products with warning 13 Jan 2017 04:54 #1

Hi Reinhold

After reading all your documentation and some forum posts I cant find a clear answer to my doubt.

Our goal is to avoid shipping from certain products for our international shipping.

1 - For what I read this should be possible with NoShipping rule and sku's but an example line would help us on how to exclude several sku's from allowing shipping.

2 - Assuming this is posible, the idea is to warn the customer with a message so that he knows which products do not ship to the chosen "ship to" country.
Can we include a message that actually names the sku or product names that do not allow shipping to that country cause if not how is the customer supposed to know what products are disallowing him from completing the order?

If all this is posible please if you could enlighten me with an example.


Please Log in or Create an account to join the conversation.

NoShipping for several products with warning 14 Jan 2017 23:03 #2

Dear Manuxx,
1. to exclude certain SKUs from shipping, you can use a simple contains_any(SKUs, ...) call:
Error="We do not ship meat via surface mail"; Condition=contains_any(SKUs, "meat-SKU1", "meat-SKU2"); NoShipping
If you disallow only one SKU, you could use
"meat-SKU" in SKUs
as the condition, but that syntax can only be used for exactly one SKU, while contains_any can be used to check for an arbitrary number of SKUs at the same time.

2. Including the SKU in the message is a bit trickier. In particular, one can only include variables in the message, and there are also no formatting functions available in the plugin. If you have a very limited number of SKUs that you do not ship, then you can use a custom variable and check each of the prohibited SKUs:
Variable=NoShipSKU; Value=""
Variable=NoShipSKU; "meat-SKU1" in SKUs; Value="meat-SKU1"
Variable=NoShipSKU; "meat-SKU2" in SKUs; Value="meat-SKU2"
Variable=NoShipSKU; "meat-SKU3" in SKUs; Value="meat-SKU3"

Error="Sorry, {NoShipSKU} cannot be shipped!"; NoShipSKU!=""; NoShipping
... (your other rules)

Notice that this will not display all disallowed SKUs, but just the last one. So if your customer has meat-SKU1 and meat-SKU3 in the cart, the message will only inform the customer about the problem with meat-SKU3.

Apart from that, I'm not aware of a viable approach to include multiple SKUs in the error message.

Best regards,

Please Log in or Create an account to join the conversation.

NoShipping for several products with warning 15 Jan 2017 00:39 #3

Hi Reinhold

Thanks for help.
Now my last question, how can I add a message for all the rules of one shipment?

So here are my rules:
Variable=totalboxes; Value=ceil(totallength/15)
Name=max 5kg Bultos {totalboxes}; Weight<=5; Shipping=11.54
Name=max 10kg Bultos {totalboxes}; 5<Weight<=10; Shipping=17.31
Name=max 15kg Bultos {totalboxes}; 10<Weight<=15; Shipping=20.19
Name=max 20kg Bultos {totalboxes}; 15<Weight<=20; Shipping=25.00
Name=max 25kg Bultos {totalboxes}; 20<Weight<=25; Shipping=29.81
Name=max 30kg Bultos {totalboxes}; 25<Weight<=30; Shipping=33.65
Name=max 35kg Bultos {totalboxes}; 30<Weight<=35; Shipping=38.46
Name=max 40kg Bultos {totalboxes}; 35<Weight<=40; Shipping=43.27
Name=max 45kg Bultos {totalboxes}; 40<Weight<=45; Shipping=48.08
Name=max 50kg Bultos {totalboxes}; 45<Weight<=50; Shipping=52.88
Name=max 60kg Bultos {totalboxes}; 50<Weight<=60; Shipping=61.54
Name=max 70kg Bultos {totalboxes}; 60<Weight<=70; Shipping=71.15
Name=max 80kg Bultos {totalboxes}; 70<Weight<=80; Shipping=80.77
Name=max 90kg Bultos {totalboxes}; 80<Weight<=90; Shipping=90.38
Name=max 100kg Bultos {totalboxes}; 90<Weight<=100; Shipping=100
Name=Bultos {totalboxes} 100<Weight<=299; Shipping=152.88+(Weight-101)*0.8
Name=Bultos {totalboxes} 299<Weight<=499; Shipping=438.38+(Weight-299)*1.2

So above them I tried adding a line:
Message="Thursday orders have tripple shipping costs"

But the displayed message shows a warning too above and below the message:

PD: That is Rupostel OPC

Please Log in or Create an account to join the conversation.

NoShipping for several products with warning 15 Jan 2017 15:30 #4

To display a warning that is not attached to one particular rule, there is a small workaround for now: Simply use e.g. Value=0. This makes the plugin think this rule is a variable definition (and thus it is always applied), but since no variable name is given, nothing can/will be set, except for the shown warning:
Message="Thursdays orders have tripple shipping costs"; Weekday==4; Value=0
Best regards,

Please Log in or Create an account to join the conversation.

  • Page:
  • 1

VM - Shopping cart


Cart empty

Login Formular