====== OnlineOrdering Plugin ====== ---- plugin ---- description: The OnlineOrdering Plugin allows you to create forms by which users can order items online author : Jannes Drost-Tenfelde email : info@drost-tenfelde.de type : Syntax lastupdate : 2011-09-29 compatible : 2011-05-25,2011-11-10 depends : conflicts : similar : tags : ordering, shop, forms downloadurl: https://github.com/jdtProjects/dokuwiki/raw/master/published/plugin_onlineordering_1_0.zip bugtracker : https://github.com/jdtProjects/dokuwiki/issues sourcerepo : https://github.com/jdtProjects/dokuwiki/tree/master/onlineordering donationurl: http://drost-tenfelde.de/donate screenshot_img: ---- This plugin allows you to create forms by which users can order items online. After successfully filling out the forms, the user will receive an e-mail with the order and the necessary payment information. The handling of payments and shipping of items has to be done manually. ===== Installation ===== Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. ===== How it works ===== There are three steps the user must take before an order is completed. ==== Order Form ==== The first step is filling out the order form, where the user must fill out the fields. Each field is validated. If a field is incorrect or a required field is empty, the user will be presented with the appropriate error messages. ==== Confirmation Form ==== When all fields are valid, the user will be presented a summary of all the data he/she has entered. In addition, the price for the ordered tickets is calculated. Total price = (nr of tickets * ticket price) + porto Where ''porto'' may differ for different countries. This can be setup using the [[#syntax]] parameters. ==== Sending Order Form ==== Once the user has confirmed the entered data, he/she will be forwarded to the sending order form, where an e-mail will be prepared and sent to the user. The e-mail can be customised and typically contains the order information, along with the information entered by the user in the order form. ===== Examples/Usage ===== {{onlineordering> item_name=My Personal CD &abbreviation=MPCD ¤ty=Euro &porto_default=1 &porto_The Netherlands=0,5 }} ==== Demonstration ==== View the [[http://www.drost-tenfelde.de/doku.php/dokuwiki:plugins:onlineordering:demo|Online Demonstration]] FIXME ===== Syntax ===== {{onlineordering>%%key=value&..&key=value%%}} ^ key | the parameter key to set | required | ^ value | the parameter value to set | required | You can set more than one element at once by using an ''&'' delimiter. ==== Available parameters ==== ^ Key ^ Type ^ Comments ^ ^ | ''item_name'' | string | Name of the item | **required** | | ''abbreviation'' | string | The abbreviation will be used for generation of a unique order key, by which the exact order can be identified | **required** | | ''currency'' | string | Currency of the item price | **required** | | ''porto_default'' | number | Default porto cost | optional | | ''porto_'' | number | Porto for a specific country. Example: **porto_The Netherlands** will allow you to set the porto for The Netherlands. If no porto has been set for the specific country, **porto_default** will be used. Available countries can be set in the plugin's configuration parameters. | optional | | ''sender_name'' | String | Name of the service that sends the e-mail. If this parameteris not set, the value of the configuration parameter sender_name will be used. | optional | | ''sender_email'' | email | E-mail address of the service that sends the e-mail. If this parameter is not set, the value of the configuration parameter sender_email will be used. | optional | | ''email_cc'' | string | E-mail addresses, seperated by commas, to which a copy of the sent e-mail is sent. If the parameter is not set, the value of the configuration parameter email_cc will be used. | optional | | ''countries'' | string | List of countries, seperated by commas. If this parameter is not set, the configuration parameter countries will be used. | optional | ===== Configuration and Settings ===== ^ Key ^ Type ^ Comments ^ ^ | ''sender_name'' | string | Name that will be used for sending out orders via email. | optional | | ''sender email'' | email | E-mail address that will be used for sending out orders (Typically, this is a noreply address) | **required** | | ''email_cc'' | email | E-mail addresses (comma seperated) to which a blind copy of the order will be sent via e-mail. (Typically, this holds the address of the person handling the transactions) | optional | | ''bank_account'' | textarea | The bank details where the user can make payments for the ordered items | **required** | | ''countries'' | string | Comma seperated list of countries. Example: Germany,The Netherlands,Great Britain | **required** | | ''signature'' | textarea | Signature that will be appended to the email. | optional | ==== Style.css ==== The stylesheet allows you to change the look and feel of error codes that are displayed to the user. #onlineordering_plugin { padding: 5px; } #onlineordering_error { color: #000000; clear: both; padding-left: 20px; padding-right: 20px; border-bottom: 1px solid #FF9999; background: #FFAAAA url('images/error.gif') no-repeat; } #onlineordering_error #parameter { color: #FF0000; font-weight: bold; } Where ''%%#onlinerordering_error%%'' is the div for the complete error message and ''%%#onlineordering_error #param%%'' allows you to manipulate the look and feel of the error parameter. ===== E-mail templates ===== The email template is a text file **template_.txt** that will be used for sending out the e-mail to the user. The default file **template_en.txt** will be used if no language specific template can be found. In the template file, a complete e-mail can be prepared for the user, using several special fields that will be automatically filled in by the plugin. Dear {title} {firstname} {lastname},

thank you for ordering {item_name} at {datetime}!

Provided data:

Title: {title}
First name: {firstname}
Last name: {lastname}
Street + nr: {street}
Postcode: {postcode}
Place: {place}
Country: {country}
Remarks: {remarks}

Price information:
--------------------------------------------------
Ticket price: {price} {currency}
Number of tickets: {nr_tickets}
Porto: {porto} {currency}
--------------------------------------------------
Total price: {total_price} {currency}
--------------------------------------------------

Please transfer {total_price} {currency} to the following bank account:

{bank_account}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Please do not forget to include the following transaction comment
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ticket Number: {ticket}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Your order will be sent as soon as the transaction has been successfully completed.

{signature}
==== Template fields ==== ^ Tag ^ Comments ^ | ''%%{title}%%'' | Mr. or Ms. | | ''%%{firstname}%%'' | The user's first name | | ''%%{lastname}%%'' | The user's last name | | ''%%{street}%%'' | The user's street & number | | ''%%{place}%%'' | The user's village or city | | ''%%{country}%%'' | The user's country | | ''%%{nr_tickets}%%'' | The number of tickets the user ordered | | ''%%{item_name}%%'' | The item name | | ''%%{currency}%%'' | The currency | | ''%%{price}%%'' | The price per ticket | | ''%%{porto}%%'' | The porto | | ''%%{date}%%'' | The date the item was ordered | | ''%%{time}%%'' | The time the item was orderd | | ''%%{datetime}%%'' | The date and time the item was ordered | | ''%%{ticket}%%'' | The automatically generated ticket identifier. This identifier consists of the provided abbreviation (see [[#syntax]]) along with a 5 digit random number. | | ''%%{total_price}%%'' | The calculated total price. Formula:( nr of tickets * ticket price ) + porto | ===== Files ===== Here is a list of the files currently used in the plugin. ^ Source Code ^^ | ''syntax.php'' | Contains the main plugin code | | ''order_form.php'' | Contains the code for displaying the order form | | ''confirm_form.php'' | Contains the code for displaying the confirmation form | | ''send_form.php'' | Contains the code for sending the order e-mails | ^ Customizable ^^ | ''template_en.txt'' | Default (english) language email template, which will be sent to the user after confirming the order | | ''template_.txt'' | Optional alternate templates for different languages | | ''style.css'' | Stylesheet for plugin specific layouts | | ''images/'' | Images for Stylesheet | ^ Support ^^ | ''plugin.info.txt'' | Plugin information | ^ Configuration ^^ | ''conf/metadata.php'' | Metadata settings | | ''conf/default.php'' | Default settings | ^ Language ^^ | ''lang/en/lang.php'' | English language file | ===== Development ===== === Change Log === * **2011-09-29** * Initial release === Known Bugs and Issues === === ToDo/Wish List === ===== FAQ ===== ===== Discussion ===== Where and how is the data saved? Thanks