
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!
Product | Product Price | ||
---|---|---|---|
Template for Extension Plugins for the Advanced Ordernumbers Plugin for VirtueMart |
Price : FREE
|
Free Download
|
|
Checksum Extension Example for the Advanced Ordernumbers Plugin for VirtueMart |
Price : FREE
|
|
Free Download
|
All these plugins are "normal" Joomla plugins of plugin type "vmshopper" and need to be installed via the Joomla extension manager. Upon installation they should be automatically published by the installer and their functionality should be available in the Advanced Ordernumbers plugin for VirtueMart immediately.
Please note that the plugin feature was added only in version 2.1 (and extended in version 4.0.1) of the Advanced Ordernumbers plugins, so you need to have at least that version installed.
This is a template for developers who want to write their own plugins to extend the Advanced Ordernumbers for VirtueMart plugin. It can be installed, but does not provide any useful functionality, unless a programmer implements the corresponding functions.
Sometimes, order/invoice numbers have to depend on properties (e.g. custom field values, awocoupon discounts, etc.) that are not by default provided by this plugin. Starting with version 2.1, the Advanced Ordernumbers plugin can be extended with plugins of type "vmshopper". Such extensions can add new variables, modify existing variables or post-process the generated order/invoice number.
The template available for download has the complete file and code structure, which you can use as a starting point for such a plugin. You will need to adjust the file names, the .xml file and the class names.
There are two triggers in the plugin class that can be reimplemented to provide/modify variables and add new functions:
This trigger is called before the variables in the number format are inserted and can be used to either add custom variables or modify existing replacement variables.
Function arguments | |
$reps | Associative array of all defined variables available for use in the formats. This array can be modified by adding new variables or changing existing entries. The variable name (including the square brackets!) is used as the key, its value is the array value of the entry in the associative array. |
$fmt | The raw order/invoice number format to be used (before custom variable definitions/replacements are applied) |
$nrtype | The type of number to be generated (0=Order number, 1=Invoice number, 2=Customer number, 3=Order Password) |
$details | The Order / Invoice details (whole cart) or user information |
Return value: | None / Ignored |
Example:
function onVmOrdernumberGetVariables(&$reps, $fmt, $nrtype, $details) {
// As an example add a variable [type] that contains the number type:
switch ($nrtype) {
case 0: $reps['[type]'] = "Order"; break;
case 1: $reps['[type]'] = "Invoice"; break;
case 2: $reps['[type]'] = "Customer"; break;
case 3: $reps['[type]'] = "OrderPassword"; break;
}
// Another example: set the ip address:
if (isset($details->ip_address)) $reps["[ipaddress]"] = $details->ip_address;
// You can also modify existing variables:
$reps['[second]'] = $reps['[second]'] + 15;
}
This trigger is called after the plugin has created the order/invoice/customer number and can be used to post-process the them (e.g. to add checksums or call external bookkeeping systems to store an invoice number).
Function arguments | |
$number | The generated number. To modify the final number, simply assign a new value to this argument. |
$type | Type of number (possible values are "order_number", "order_password", "invoice_number" and "customer_number") |
$order | The whole order as a PHP object. |
Return value: | None / Ignored |
Example:
function onVmOrdernumberPostprocessNumber(&$number, $type, $order) {
// Example: Append the length of the number to the number
if ($type=="order_number") {
$checksum=strlen($number);
$number .= $checksum;
}
// Example 2: Store the invoice number in an external bookkeeping system
if ($type=="invoice_number") {
// simply take $number and trigger a webservice call sending that value
// (and e.g. the order ID stored in the $order object) to the bookkeeping system
}
}
This plugin post-processes the order number to append its length as a checksum. Typically, other types of checksum are desired, so you might need to modify the onVmOrdernumberPostprocessNumber function (see below for the API documentation).
This plugin has no configuration settings.
These plugins are licenced unter the GNU GPLv3.