VM Rule-based Shipping Plugin FAQ
1) Which PHP, Joomla and VirtueMart versions does the plugin work with
I am developing the plugin with PHP 5.4 on Joomla 2.5 with VirtueMart 2.0, as well as on Joomla 3.3 with VirtueMart 2.9.9.
Other combinations might work, but I have not had any reports. If you are using the plugin on a different combination of versions, please let me know whether it works or not.
2) Can you also please write a version for VirtueMart 1.1.x?
Unfortunately, the shipping code of VirtueMart 1.1.x and 2.x is completely different, so a plugin for VirtueMart 1.1.x would essentially be a newly written plugin. As support for VM 1.x has officially ended, I have no plans to write a plugin for an outdated VM version (even though I completely understand the users that are stuck with VM 1 and would need a nice solution like my plugin. It is just not worth the effort to me.
Note however, that the plugin is distributed under the GPL, so if anyone has the time to port it to VM 1, feel free to take on this project.
3) Which variables can I use in the conditions?
See the documentation for a full list.
4) How can I write a rule for one particular product or category?
You can't. This is not the aim of this shipping plugin. With this plugin you can not distinguish particular products in the cart, you can only use maximum/minimum and total values in the cart, irrespective of which products cause these values.
However, there are several shipping plugins available that are tailored to your situation. See the JED.
5) Are there any incompatibilities known?
No, I'm not aware of any incompatibilities. If you encounter any problems, please tell me.
6) Can you implement [...]?
I'm open for suggestions, and if time allows, I will implement good new features. Notice, however, that my time is very scarce. Here is a list of things that are already on my list:
- Add switch to offer only the first matching rule or all matching rules
- Extend countries selection list to (optionally) select states, too.
- Implement Shipping modifier rules (i.e. if a certain weight condition is met, add x EUR to the shipping costs)
- Add variables for email, phone and address
- Add regexp checks (e.g. for phone number validation)
- Add 'empty' function to check whether a variable has a value at all
- Add functions value_for_category, value_for_manufacturer, etc, to extract cart values like nr. of articles restricted to e.g. a single category
- Add possibility to specify shipping costs per product rather than for the whole cart.
- Add a dimensional weight per product (needs the minimum density as a configuration param)
- Add a substring function to extract the first few letters of e.g. the UK_Inward code. (Implemented in Version 4.0)
- Try to find a way to display a warning/info message when shipping is NOT possible (E.g. "Please call our stuff for a custom quote"). This will probably need some VirtueMart patches... (Implemented in Version 4.0)
- Allow OR and AND operators to be lowercase, too. (Implemented in Version 4.0)
- Add a way to store (result of) complex conditions in a variable that can be later reused in a further rule (e.g. very long ZIP conditions that are identical for multiple weight-based rules) (Implemented in Version 4.0)
- Allow a way to extract the third digit of the ZIP code. (Implemented in Version 4.0)
- Add more list handling functions (issubset/contains, length, list_equal, etc.) (Implemented in Version 4.0)
- Make rule names translatable (e.g. RULES_SHIPPING_RULE1) (Implemented in Version 4.0)
7) Can your plugin do [...]? How do I do [...]?
First, you need to have a clear vision how to describe the conditions for a certain shipping cost as a mathematical formulat. Once you can describe the conditions as a formula, usually it's straigthforward to write a rule.
A good spot to check how to implement something are my rules examples. If you have any interesting rules that you are proud of and/or that you feel should be listed there, please tell me.