Installing Order System
- Visit [Settings] > [Company] > [Plugins] > Available.
- Click the "Install" button within the Order System plugin listing.
- To enable the Order System widget, go to [Billing] > Overview, click the "Manage Widgets" link, and drag the Orders widget from the right to the left.
Order System Overview
Once installed, a new link will appear under [Packages] > Order Forms, where order forms can be managed.
To create an order form, click the "Add Order Form" button in the upper right of the overview and fill out the options. Click "Add Form" to create the order form.
Settings
The Order System supports various settings for human verification, and fraud detection.
Fraud Detection
The Order System supports Fraud Detection through the use of the MaxMind minFraud service. The MaxMind Anti-Fraud component offers a number of configurable options that allow orders to be either rejected outright (no client account created), or flagged for review. When an order is flagged for review it will remain as a Pending order until moved to either the Accepted or Fraud category by a staff user, at which time the client account will be automatically marked as active or fraud.
Human Verification
The Order System supports Human Verification through the use of reCaptcha as well as AreYouAHuman.
Order Emails
Order related email templates can be found under [Settings] > [Company] > [Emails] > Email Templates, in the section labeled "Plugin Templates".
Order Received
The order received email templates allow for the following tags:
Tags | Description | Notes |
---|
{order.id} | The system-level order ID | |
{order.number} | The order number | e.g. "519131eb623b8" |
{order.client_id} | The system-level client ID of the client this order belongs to | |
{order.client_id_code} | The friendly client ID code | |
{order.client_first_name} | The first name of the client | |
{order.client_last_name} | The last name of the client | |
{order.client_company} | The client's company name | |
{order.client_address1} | The client's primary address | |
{order.client_email} | The client's email address | |
{invoice.id} | The system-level invoice ID of the invoice created for this order | |
{invoice.id_code} | The friendly invoice ID code | |
{invoice.date_due} | The UTC datetime stamp of the invoice due date | Formatted as "YYYY-MM-DD HH:MM:SS" |
{invoice.date_billed} | The UTC datetime stamp of the invoice bill date | Formatted as "YYYY-MM-DD HH:MM:SS" |
{invoice.total} | The total amount due on the invoice | e.g. "8.00" |
{invoice.paid} | The total amount paid | e.g. "0.00" |
{invoice.due} | The remaining amount due | e.g. "8.00" |
{invoice.currency} | The currency that the invoice is in | e.g. "USD" |
Additional Tags
Due to the nature of tag objects containing several fields, many of which are likely irrelevant for use in email templates, but may be useful to you in certain circumstances, a dump of the tags are shown below.
stdClass Object
(
[id] => 52
[order_number] => 519131eb623b8
[order_form_id] => 1
[invoice_id] => 19983
[fraud_report] =>
[status] => pending
[date_added] => 2013-05-13 18:33:15
[fraud_status] =>
[order_form_label] => my_order_form
[order_form_name] => My Order Form
[client_id] => 3
[total] => 8.0000
[paid] => 0.0000
[currency] => USD
[date_closed] =>
[invoice_id_code] => PD-15695
[client_id_code] => PD-1501
[client_first_name] => Mark
[client_last_name] => Stevens
[client_company] => Comp Co.
[client_address1] => 123 Test St.
[client_email] => user@domain.com
[services] => Array
(
[0] => stdClass Object
(
[order_id] => 52
[service_id] => 234
)
)
)
stdClass Object
(
[id] => 19983
[id_format] => PD-{num}
[id_value] => 15695
[client_id] => 3
[date_billed] => 2013-05-13 18:33:15
[date_due] => 2013-05-13 18:33:15
[date_closed] =>
[date_autodebit] =>
[status] => active
[subtotal] => 8.0000
[total] => 8.0000
[paid] => 0.0000
[previous_due] => 2635.4700
[currency] => USD
[note_public] =>
[note_private] =>
[id_code] => PD-15695
[delivery_date_sent] =>
[due] => 8.0000
[line_items] => Array
(
[0] => stdClass Object
(
[id] => 54940
[invoice_id] => 19983
[service_id] => 234
[description] => Bronze Standard - domain.com
[qty] => 1.0000
[amount] => 8.0000
[subtotal] => 8.00000000
[taxes] => Array
(
)
[taxes_applied] => Array
(
)
[tax_subtotal] => 0
[tax_total] => 0
[total] => 8
[total_w_tax] => 8
)
)
[delivery] => Array
(
[0] => stdClass Object
(
[id] => 20716
[invoice_id] => 19983
[method] => email
[date_sent] =>
)
)
[meta] => Array
(
)
[tax_subtotal] => 0
[tax_total] => 0
[taxes] => Array
(
)
)
Array
(
[0] => stdClass Object
(
[id] => 234
[parent_service_id] =>
[package_group_id] => 1
[id_format] => PD-{num}
[id_value] => 229
[pricing_id] => 22
[client_id] => 3
[module_row_id] => 6
[coupon_id] =>
[qty] => 1
[status] => in_review
[date_added] => 2013-05-13 18:33:14
[date_renews] => 2013-06-13 18:33:14
[date_last_renewed] =>
[date_suspended] =>
[date_canceled] =>
[id_code] => PD-229
[fields] => Array
(
[0] => stdClass Object
(
[key] => cpanel_confirm_password
[value] => password
[serialized] => 0
[encrypted] => 1
)
[1] => stdClass Object
(
[key] => cpanel_domain
[value] => domain.com
[serialized] => 0
[encrypted] => 0
)
[2] => stdClass Object
(
[key] => cpanel_password
[value] => password
[serialized] => 0
[encrypted] => 1
)
[3] => stdClass Object
(
[key] => cpanel_username
[value] => domainco
[serialized] => 0
[encrypted] => 0
)
)
[package_pricing] => stdClass Object
(
[id] => 22
[package_id] => 13
[term] => 1
[period] => month
[price] => 8.0000
[setup_fee] => 0.0000
[cancel_fee] => 0.0000
[currency] => USD
)
[package] => stdClass Object
(
[id] => 13
[id_format] => {num}
[id_value] => 1
[module_id] => 4
[name] => Bronze Standard
[description] =>
[description_html] => <p>
<span style="color:#008000;"><em>Good Value!</em></span></p>
[qty] =>
[module_row] => 6
[module_group] =>
[taxable] => 0
[status] => active
[company_id] => 1
)
[name] => domain.com
)
)
Order Received (Mobile)
The ticket received email template allows for the following tags:
Tags | Description | Notes |
---|
{order.id} | The system-level order ID | |
{order.number} | The order number | e.g. "519131eb623b8" |
{order.client_id} | The system-level client ID of the client this order belongs to | |
{order.client_id_code} | The friendly client ID code | |
{order.client_first_name} | The first name of the client | |
{order.client_last_name} | The last name of the client | |
{order.client_company} | The client's company name | |
{order.client_address1} | The client's primary address | |
{order.client_email} | The client's email address | |
{invoice.id} | The system-level invoice ID of the invoice created for this order | |
{invoice.id_code} | The friendly invoice ID code | |
{invoice.date_due} | The UTC datetime stamp of the invoice due date | Formatted as "YYYY-MM-DD HH:MM:SS" |
{invoice.date_billed} | The UTC datetime stamp of the invoice bill date | Formatted as "YYYY-MM-DD HH:MM:SS" |
{invoice.total} | The total amount due on the invoice | e.g. "8.00" |
{invoice.paid} | The total amount paid | e.g. "0.00" |
{invoice.due} | The remaining amount due | e.g. "8.00" |
{invoice.currency} | The currency that the invoice is in | e.g. "USD" |
Additional Tags
Due to the nature of tag objects containing several fields, many of which are likely irrelevant for use in email templates, but may be useful to you in certain circumstances, a dump of the tags are shown below.
stdClass Object
(
[id] => 52
[order_number] => 519131eb623b8
[order_form_id] => 1
[invoice_id] => 19983
[fraud_report] =>
[status] => pending
[date_added] => 2013-05-13 18:33:15
[fraud_status] =>
[order_form_label] => my_order_form
[order_form_name] => My Order Form
[client_id] => 3
[total] => 8.0000
[paid] => 0.0000
[currency] => USD
[date_closed] =>
[invoice_id_code] => PD-15695
[client_id_code] => PD-1501
[client_first_name] => Mark
[client_last_name] => Stevens
[client_company] => Comp Co.
[client_address1] => 123 Test St.
[client_email] => user@domain.com
[services] => Array
(
[0] => stdClass Object
(
[order_id] => 52
[service_id] => 234
)
)
)
stdClass Object
(
[id] => 19983
[id_format] => PD-{num}
[id_value] => 15695
[client_id] => 3
[date_billed] => 2013-05-13 18:33:15
[date_due] => 2013-05-13 18:33:15
[date_closed] =>
[date_autodebit] =>
[status] => active
[subtotal] => 8.0000
[total] => 8.0000
[paid] => 0.0000
[previous_due] => 2635.4700
[currency] => USD
[note_public] =>
[note_private] =>
[id_code] => PD-15695
[delivery_date_sent] =>
[due] => 8.0000
[line_items] => Array
(
[0] => stdClass Object
(
[id] => 54940
[invoice_id] => 19983
[service_id] => 234
[description] => Bronze Standard - domain.com
[qty] => 1.0000
[amount] => 8.0000
[subtotal] => 8.00000000
[taxes] => Array
(
)
[taxes_applied] => Array
(
)
[tax_subtotal] => 0
[tax_total] => 0
[total] => 8
[total_w_tax] => 8
)
)
[delivery] => Array
(
[0] => stdClass Object
(
[id] => 20716
[invoice_id] => 19983
[method] => email
[date_sent] =>
)
)
[meta] => Array
(
)
[tax_subtotal] => 0
[tax_total] => 0
[taxes] => Array
(
)
)
Array
(
[0] => stdClass Object
(
[id] => 234
[parent_service_id] =>
[package_group_id] => 1
[id_format] => PD-{num}
[id_value] => 229
[pricing_id] => 22
[client_id] => 3
[module_row_id] => 6
[coupon_id] =>
[qty] => 1
[status] => in_review
[date_added] => 2013-05-13 18:33:14
[date_renews] => 2013-06-13 18:33:14
[date_last_renewed] =>
[date_suspended] =>
[date_canceled] =>
[id_code] => PD-229
[fields] => Array
(
[0] => stdClass Object
(
[key] => cpanel_confirm_password
[value] => password
[serialized] => 0
[encrypted] => 1
)
[1] => stdClass Object
(
[key] => cpanel_domain
[value] => domain.com
[serialized] => 0
[encrypted] => 0
)
[2] => stdClass Object
(
[key] => cpanel_password
[value] => password
[serialized] => 0
[encrypted] => 1
)
[3] => stdClass Object
(
[key] => cpanel_username
[value] => domainco
[serialized] => 0
[encrypted] => 0
)
)
[package_pricing] => stdClass Object
(
[id] => 22
[package_id] => 13
[term] => 1
[period] => month
[price] => 8.0000
[setup_fee] => 0.0000
[cancel_fee] => 0.0000
[currency] => USD
)
[package] => stdClass Object
(
[id] => 13
[id_format] => {num}
[id_value] => 1
[module_id] => 4
[name] => Bronze Standard
[description] =>
[description_html] => <p>
<span style="color:#008000;"><em>Good Value!</em></span></p>
[qty] =>
[module_row] => 6
[module_group] =>
[taxable] => 0
[status] => active
[company_id] => 1
)
[name] => domain.com
)
)
Linking to Order Pages
A link to each order page is displayed in the staff area, under Packages > Order Forms. The order form marked as the default will be available at ~/order/, and all other order forms will have unique links. It's also possible to link directly to a specific package, pricing option, or step. Here are a list of GET variables that can be passed into the order process.
Variable | Example | Notes |
---|
package_id | [URL]&package_id=xx | Applies to the first step, the package selection step, where xx is the Package ID. To determine the Package ID, edit the package in the staff area and copy it from the URL, for example /admin/packages/edit/1/ – In this case, the package_id is 1. |
pricing_id | [URL]&pricing_id=xx | Applies to the configuration step. Selects a specific price for the package. To determine the Pricing ID, edit the package and view the source for the pricing options. Look for a hidden form field with a name of pricing[id][] and observe it's value. |