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.
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?
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:
- Implement MinWidth/MaxWidth/MinHeight/MaxHeight/MinLength/MaxLength/Volume variables (Implemented in Version 1.1)
- Variables for order amount before and after tax (Implemented in Version 1.1)
- Variables for TotalHeight, TotalWidth and TotalLength (dimensions of all products summed up) (Implemented in Version 2.0.1)
- Variables for coupon rebate (Implemented in Version 2.0)
- Add basic mathematical functions (Round, Max, Min, Truncate) (Implemented in Version 3.0)
- Implement OR operator for conditions (Implemented in Version 2.0)
- Add switch to offer only the first matching rule or all matching rules
- Postal code comparison also for alphanumeric postal codes (Implemented in Version 2.0)
- Use only the first few letters of the postal code for comparison (Implemented in Version 2.2)
- Add support for alphanumeric postcodes (UK, Canada, Argentinia, Bermuda, ...), (Implemented in Version 2.4)
- Let the user(=admin) choose the length unit (similar to weight unit) for the method in the shipping method setup (Implemented in Version 2.2)
- Add NoShipping identifier to indicate that the method should NOT offer any shipping if the conditions are met (Implemented in Version 2.3)
- Extend countries selection list to (optionally) select states, too.
- 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)
- Implement Shipping modifier rules (i.e. if a certain weight condition is met, add x EUR to the shipping costs)
- 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)
- 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
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.