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!



The forum is in read only mode.
Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1


Free Shipping by Catogory. 03 Jul 2014 08:08 #1

  • slumley
  • slumley's Avatar Topic Author

We used this line to alllocate free shipping to a specified manufacturer.

Name=Free Postage; Condition=issubset(Manufacturers, list(42)); Shipping=0

This worked perfectly, is there a way that I can do exactly the same, but with "Category" instead of Manufacturer, so that all products in a certain category can get free postage.

Is it possible too have both lines of rules running seperately, or should it all be integrated into one rule?

Free Shipping by Catogory. 07 Jul 2014 21:40 #2

Of course you can do exactly the same with the Category list...

To combine category- and manufacturer based shipping is a bit trickier, as it depends on the details. In particular, it is currently NOT possible to have e.g. free shipping if all products are either from manufacturer X or in category Y. In particular, you only have the list of all manufacturers and of all categories in the cart available, but without the information from which product.

Take two examples:

Order 1:
- 1 item of product A (manufacturer X, category Y)
- 1 item of product B (manufacturer MM, category CC)
=> the cart has the following variables: Manufacturers==list(X, MM), Categories==list(Y, CC)
This cart should not have free shipping (product B is neither from manufacturer X, nor in category Y)

Order 2:
- 1 item of product C (manufacturer X, category CC)
- 1 item of product D (manufacturer MM, category Y)
=> the cart has the following variables: Manufacturers==list(X, MM), Categories==list(Y, CC)
This cart should have free shipping (both products are either manufacturer X or category Y).

As you can see, both orders have the exact same Manufacturers and Categories lists, but one should get free shipping, while the other shouldn't.

Solving this would require the plugin to have per-product check, which is currently not implemented...

Best regards,
  • Page:
  • 1