.. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- .. -*- coding: utf-8 -*- with BOM. .. include:: ../../Includes.txt Configuration ============= Move Order Mail --------------- Another interesting feature of Commerce are the so-called **Move Order Mails**, automatic emails, which you can send internally and to customers as soon as the status of an order has changed and the order was moved to another folder. In this way you can inform the customer, as soon as you received their payment or sent out the goods. You can also inform your staff in the shipping department that the goods should be prepared for shipping. Go to list view of orders in the web module, click on the order Delivered for which you would like to enter the change message and enter a new record via *Move Order Mail*. Assign a title for this mail and define first when it has to be sent (i.e. when it is moved into this folder). Select for example Mail *when move in* and assign a HTML-Template for this message via *Reference to Mailtemplate*. You will find the template for this example under res/auslieferung.html. Other templates for Move Order Mails are available in the same folder under paketfreigabe.html and speditionsfreigabe.html. You can of course include adaptations and templates of your own. Unless you change further settings, this message will be sent to the customer as soon as their order changes to the status **delivered**. If you want to send the mail to additional recipients, e.g. one to the customer, a second one to the shop owner and a third to the scheduler, you can use the BCC-field. For every recipient and for every Move Order Mail you can use an individual template with individual text. .. figure:: ../../Images/move_order_mail.jpg :align: LEFT Illustration 18: Move Order Mail - email recipient HTML-Template _____________ If you want to use an individual HTML Shop template instead of the default settings, you will find it in the folders **typo3conf/ext/commerce/pi1** to **../pi6**. It is not possible to copy these files as usual to your template-folder in fileadmin using the extension manager. But you may download them via FTP from the webserver and move them afterwards. For processing you have to change the file types from **.tpl** to **.tmpl** or **.html**. You can also add the file type as allowed changes via the install tool. Constants _________ In the constants editor you will find the following settings - in our test shop the PIDs mentioned in the beginning of the chapter and one of the templates are assigned: :: plugin.tx_commerce_lib.addressPid = 18 plugin.tx_commerce_lib.userPid = 17 plugin.tx_commerce_lib.basketPid = 11 plugin.tx_commerce_lib.checkoutPid = 12 plugin.tx_commerce_lib.emptyBasketPid = 15 plugin.tx_commerce_lib.emptyCheckoutPid = 16 plugin.tx_commerce_lib.editAddressPid = 13 plugin.tx_commerce_lib.overridePid = 2 plugin.tx_commerce_pi1.templateFile = fileadmin/templates/commerce/category_product.html With this configuration Commerce already offers an operational shop. Further information on the configuration of Commerce can be found in the forums and in the mailing lists. A short installation guide comes with the extension. For the sample shop the implementation of this very comprehensive shop system ends here. Please keep in mind that Commerce has far more to offer then the basic installation which was described here. Hooks ----- The list of all available hooks can be found in the directory /docs in the file hooks.html. We will now show you some examples for the usage of a hook. In order to introduce new product fields (FIELD1 and FIELD2) you can proceed as follows: First of all, create a new extension using the kickstarter. Enlarge the table in the kickstarter where you want to add fields. For product fields you have to use the table tx_commerce_products. Create a new file within the new extension, where you add a class with the following functions: :: function postInit(&$model) { $model->add_fields_to_fieldlist(array('FELD1','FELD2')); } function additionalMarker($markerArray,$singleViewPlugin) { $markerArray['###FELD1###'] = $singleViewPlugin->product->getField('FELD1'); $markerArray['###FELD2###'] = $singleViewPlugin->product->getField('FELD2'); return $markerArray; } Include the following code in localconf.php in the root folder of this extension, in order to include the function: :: require_once(t3lib_extMgm::extPath($_EXTKEY).'PFAD/ZU_IHRER_HOOK_KLASSE.php'); $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/lib/class.tx_commerce_pibase.php']['singleview'][] = 'NAME_IHRER_KLASSE'; $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/lib/class.tx_commerce_product.php']['postinit'][] = 'NAME_IHRER_KLASSE'; You can now use the marker ###FIELD1### and ###FIELD2### in the template of the product view (pi1/category_product.tpl). The fields have to be entered in the extension configuration in the field „fields for products“ to be considered. .. figure:: ../../Images/fields_for_products.png :align: LEFT Illustration 19: Fields for products Reference --------- Plugin Commerce: General ________________________ Constants _________ The following table contains the overall attributes from the global settings. All features can be set using the constant editor. .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== addressPid Integer PID of the SysFolders, where addresses are stored 0 userPid Integer PID of the SysFolder, where new users are stored - tt_address 0 editAddressPid Integer PID of the page, where address data can be processed 0 basketPid Integer PID of the shopping cart page 0 emptyBasketPid Integer PID of the page, where the content element is located, which will be 0 displayed when the shopping cart is empty; will be called via the shopping cart page. emptyCheckoutPid Integer PID of the page, where the content element is located, which will be 0 displayed if the checkout is not possibe; will be called via the shopping cart page (empty order) checkoutPid Integer PID of the page of the shopping cart checkout() 0 overridePid Integer PID of the page with the list view 0 paymentArticleId Integer article UID of the default method of payment 1 payProdId Integer product UID of the default method of payment 1 delProdId Integer UID of the default method of delivery 2 catUid Integer default category UID in the frontend 2 currency String ISO-code for the currency (from static_info_tables) EUR regularArticleTypes String regular type of article (article = 1, payment =2 , delivery = 3) 1 UserGroup Integer UID of user group for new customers 1 UseRootlineInformationToUrl Integer Adds new parameters to the URL in order to speed up presentation of empty the navigation priceFromNet Boolean Consider net price for tax calculation empty useStockHandling Boolean Stock management empty currencyId Integer UID of the ISO codes for currencies from (static_info_tables) 49 showErrors Boolean Error message in frontend 1 displayProductIfOneProduct Boolean If a category has one product only, the product list view will be 1 skipped and the detail page will immediately be opened. hideEmptyCategories Boolean If emty categorie should be hidden (categories with no products in any 0 sub category). Setting this to 1 will cause additional load for checking the categories, so it's set to 0 =================================== ================= ======================================================================= ================== [tx_commerce_lib.constants] Plugin Commerce: Display ________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== templateFile String Path to the HTML template EXT:commerce/pi1/category_product.tpl attributeLinebreakChars String Line break
=================================== ================= ======================================================================= ================== [tx_commerce_pi1] Plugin Commerce: Basket _______________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== templateFile String Path to the HTML template of the shopping cart EXT:commerce/pi2/shoppingcarttpl basketStoragePid Integer Basket storage pid 0 =================================== ================= ======================================================================= ================== [tx_commerce_pi2] Plugin Commerce: Checkout _________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== TemplateFile String Path to the HTML template for administrator – mail upon new orders EXT:commerce/pi3/template_adminmail.tpl AdminMailTemplateFile String Path to the HTML template for the checkout (finish order) EXT:commerce/pi3/template_checkout.tpl UserMailTemplateFile String Path to the HTML template for customer information after reception of EXT:commerce/pi3/template_usermail.tpl order =================================== ================= ======================================================================= ================== [tx_commerce_pi3] Plugin Commerce: Address Management ___________________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== templateFile String Path to HTML Template of address manager EXT:commerce/pi4/template_addresses.tpl minAdressCount Integer Defines the minimum number of addresses, a customer must have. The 1 customer can only delete addresses, if the minimum value is exceeded. =================================== ================= ======================================================================= ================== [tx_commerce_pi4] Reference lib.tx_commerce.articles __________________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== stdWrap stdWrap Wrap around single article defaultField stdWrap Standard Wrap around every field which is not defined in the fields selection DefaultQuantity Integer Standard amount of articles. Replaces 0 tx_commerce_pi1.defaultArticleAmount fields COA The field-objekt -> see Reference fieldObject addToBasketLink TypoLink Typolink feature which allows putting articles directly in the shopping cart =================================== ================= ======================================================================= ================== Reference fieldObject _____________________ A FieldObject is a field list, which can be defined as IMGTEXT, IMAGE, IMG_RESOUCRE, STDWRAP. Every database field in a table can be defined as such an object. Example :: fields { // every column in this table could be wraped with the // stdWrap, IMAGETEXT, IMAGE title = stdWrap title { wrap = | } description_extra = stdWrap description_extra { parseFunc < lib.parseFunc_RTE } images = IMAGE images { defaultImgConf { file.import.current = 1 } file.maxW = 150 } } For the field types IMGTEXT, IMAGE, IMG_RESOURCE the Property imgPath can be defined. If this is not defined in TS, the defaultpath uploads/tx_commerce will be used. .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== imgPath String Path to the image files; has to end with a / (Slash) If not defined: uploads/tx_commerce =================================== ================= ======================================================================= ================== Reference pi1 (Listing) _______________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== defaultArticleAmount Integer Standard number of articles maxRecords Integer Maximum amount of records shown per page templateMarker String Configuration of single template-marker allArticles Boolean Defines whether all articles or a selectbox will be displayed for a 1 selection of articles. For select boxes the value has to be set to 0. JavaScript is needed for selectboxes hideProductsInList Boolean Hide all products in the category list (show categories only) displayTopProducts Boolean Display of top products checkCategoryTree Boolean If activated, the sub-categories submitted with GET-parameter will be checked against the main categories, which are also submitted. If the subcategory is not below this main category, the main category will be shown. hideEmptyProdAttr Boolean Hide empty product attributes hideEmptyShalAttr Boolean Hide empty „Shall“-attributes hideEmptyCanAttr Boolean Hide empty „Can“-attributes showHiddenValues Boolean Show hidden values singleView COA .renderProductNameAsPageTitle Integer 0. don't render product title as page title 1. render always product title as page title 2. only render product title as page title if product was not set by plugin settings (select product) and if product was not set by TS .categories COA TS Setup for display in a single category listView COA configuration of product-list view listViewTop COA configuration of top-product list view general_stdWrap stdWrap overall stdWrap categoryListView COA configuration of category list attributeLinebreakChars String String for separation of attribute values in select boxes
mutipleAttributeValueWrap stdWrap stdWrap around every attribute value for several selected attributes mutipleAttributeValueSetWrap stdWrap stdWrap around the attribute select box for several selected attributes =================================== ================= ======================================================================= ================== [tx_commerce_pi1] Reference pi2 (Basket) ______________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== templateFile String Template file delProdId Integer UID of the default delivery method (delivery product ID) payProdId Integer UID of default – payment method (payment product ID) regularArticleTypes String Regular type of article (article = 1, payment =2 , delivery = 3) listPid Integer PID of the list view checkoutPid Integer PID of checkout basketPid Integer PID of basket basketStoragePid Integer PID of basket storage defaultPaymentArticleId Integer ID of article of default payment method templateMarker String configuration of template marker fields COA the fieldObject -> see reference fieldObject payment.allowedArticles String Comma separated list of allowed methods of payment (UIDs). false This selection can be overwritten by the hook **makePayment** delivery.allowedArticles String Comma separated list of allowed methods of delivery (UIDs). false This selection can be overwritten by the Hook **makeDelivery** =================================== ================= ======================================================================= ================== Reference pi3 (Checkout) ________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== templateFile String HTML Template for the order page addressMgmPid Integer The PID for the page which will be used for the address management. regularArticleTypes String Regular article type, see constants usermail -> mail Configuration of confirmation mail, which the customer receives adminmail -> mail Configuration of confirmation mail, which the administrator receives currency String ISO-code of currency billing -> form Forms configuration for billing adress .deliveryAddress.delivery_radio stdWrap Wrap for the radio button for the selection of a delivery address .deliveryAddress.nodelivery_radio stdWrap Wrap for the radio button in case no billing address equals a delivery address .deliveryAddress.delivery_label stdWrap Wrap for the label for the selection of a delivery address .deliveryAddress.nodelivery_label stdWrap Wrap for the label, of no billing adress equals a delivery address delivery -> form The forms configuration for the delivery address createNewUsers Boolean If set, a new user will be created during checkout, if the customer has not been logged in. userPID Integer PID of SysFolder with the frontend users userGroup Integer The UID of the user group which will be assigned to new users, in case registration was finished regularly. termsdefaultchecked Boolean Terms and conditions selected by default? paymentIsDeliveryAdressDefault Boolean Default setting, whether invoice and delivery address are the same. deliveryAdressIsSeparateDefault Boolean Default setting, whether there is a separate delivery address addressPid Integer PID of the sysFolder with tt_address data cantMakeCheckout Boolean disallows checkout =================================== ================= ======================================================================= ================== [plugin.tx_commerce_pi3] .. figure:: ../../Images/checkout_process.png :align: LEFT Illustration 16: Checkout process Reference pi4 (Address management) __________________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== templateFile String The HTML template for the address management plugin minAddressCount Integer Minimal amount of addresses which have to be allocated to a single 1 user. Is used to check whether an address can be deleted. selectAddressTypes String Comma separated list of address types which can be processed by a 1,2 plugin. editAddressPid Integer PID of the page where address data can be processed addressPid Integer PID of the sysFolder with tt_address data addressHeaderWrap stdWrap Wrapper for the heading of the list of addresses editLinkWrap stdWrap Wrapper for the link for processing of addresses deleteLinkWrap stdWrap Wrapper for the link to delete an address newLinkWrap stdWrap Wrapper for the link to enter an address yesLinkWrap stdWrap Wrapper for the confirmation button to delete an address noLinkWrap stdWrap Wrapper for the abort button for deletion of an address sysMessageWrap stdWrap Wrapper for all messages coming from the system, e.g. error messages hideEmptyFields Boolean If set, empty fields will be removed from the list view; does not 0 concern the processing view. emptyFieldSign String If hideEmptyIField is not set: Marker, which will be shown instead of a field value. formFields -> form Defines the form fields, which are used for processing of addresses mandatorySign String Sign for mandatory fields * =================================== ================= ======================================================================= ================== [plugin.tx_commerce_pi4] Reference pi6 (Invoices) ________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== decode Boolean Set to 1, of you want to create invoices as pdf-file 0 currency String ISO-code of currencies showCurrencySign Boolean If 1, the currency symbol will be printed in the invoice invoiceheader Image resource If a screen resource is given, the image will be included in the standard HTML template of the invoice (letter head). shopname stdWrap Name of the shop shopdetails COA Additional information concerning the shop, e.g. the address intro stdWrap Introductory text which will be displayed in the beginning of the default template (welcome to the shop...) thankyou stdWrap Final phrase in the end of the default templates (Thank you very much for shopping with us...) =================================== ================= ======================================================================= ================== [plugin.tx_commerce_pi6] Reference navigation.special ____________________________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== category Integer CategoryUID: Starting category for the navigation {$plugin.tx_commerce_lib.catUid} showProducts Boolean If products should be shown in the navigation 0 overridePID Integer PID for genertaing Links in the Navigation {$plugin.tx_commerce_lib.overridePid} entryLevel Integer Entry Level for the navigation 0 maxLevel Integer Maximum Level to be generated in the Navigation. Since a complete PHP_INT_MAX Array of all levels (regardless the Menu Configuration) will be rendered, this could use much memory noAct Boolean If activated the navigation will only generate menuelements in the 0 stat NO. If you don't need any active elements in the navigation, this could speedup the generation process hideEmptyCategories Boolean Hides empty Categories {$plugin.tx_commerce_lib.hideEmptyCategories} additionalFields String Addtional Fields which sould be added to the Menu Navigation expandAll Boolean Expand all. This must be set in special not in MENU object =================================== ================= ======================================================================= ================== [lib.tx_commerce.navigation.special] -> mail _______ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== showCurrency Boolean If set, the currency will be shown in the confirmation mail. 0 charset String Charset of the mail utf-8 encoding String Encoding of the mail 8bit from String The sender address of the shop shop@example.com from_name String name of the sender Commerce ShopMaster cc String Additional CC-addresses, comma-separated bcc String Additional BCC-addresses, comma-separated mailto String **Administrator**'s email administrator@example.com templateFile String HTML-template of the mail =================================== ================= ======================================================================= ================== -> form _______ The Commerce forms are not static. They will be rendered dynamically depending on the configuration. The options will be set via TypoScript. Overall settings: .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== addressType Integer Address type to be processed in this form userConnection String Defines the field in the source table (e.g. tt_address) makes the tx_commerce_fe_user_id connection to the frontend user. sourceTable String Table, where addresses are stored tt_address sourceLimiter -> sourceLimiter Mandatory fields sourceFields -> sourceFields Fields to be displayed =================================== ================= ======================================================================= ================== Two of the features are of secondary importance: -> sourceLimiter '''''''''''''''' .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== field String Default field tx_commerce_address_type_id value String Default value =================================== ================= ======================================================================= ================== -> sourceFields ''''''''''''''' Die Sourcefields definieren für jedes einzelne Feld einer Tabelle wie es verarbeitet und gerendert wird. Der Schlüßel ist immer der Name der Quelltabelle. Jedes Feld hat spezielle Eigenschaften. .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== type String Defines rendering of the field in the frontend. Possible values: input - single (simple input field) - select (Selectbox) mandatory Boolean Mandatory field 0 eval String Validation of single fields. The comma-separated list of methods: - email (entered value must be a valid email-address) - username (checks, whether this username already exists) - string (checks, whether the entered value is a string) - int (checks, whether the entered value is an integer) - min (minimum value. Has to be separated by the keyword with an underscore, e.g. min_10) - max (maximum, see min) - alpha (the entered value must be alpha-numeric) table String Defines the table, the values come from select String Where-Clause for the SELECT-query 1 label String The table-field which shall be assigned as field name value String The field that is used as value for the option elements. default String Default value, these values will be set as default in the form readonly Boolean If set, the field cannot be changed in the frontend Maxlength Integer Maximum field-length of an input field; no validation by server! orderby String Field name by which the results are sorted. =================================== ================= ======================================================================= ================== PageTSconfig ____________ .. container:: ts-properties =================================== ================= ======================================================================= ================== Property Data type Description Default =================================== ================= ======================================================================= ================== category.defaultTaxValue Integer Default tax rate orders.delProdUid Integer Limitation of display to orders with the given product. orders.payProdUid Integer Limitation of display to orders with the given payment method. category.defaultTaxValue Integer Default tax rate, if not set for the article =================================== ================= ======================================================================= ================== [mod.commerce]