.. You may want to use the usual include line. Uncomment and adjust the path.
.. include:: ../Includes.txt
.. role:: underline
================
EXT: Shop System
================
:Author:
Kasper Skårhøj
:Created:
2002-11-01T00:32:00
:Changed by:
Franz Holzinger
:Changed:
2015-01-27T12:33:39.710606231
:Classification:
tt_products
:Keywords:
forAdmins, forIntermediates
:Author:
Franz Holzinger
:Email:
franz@ttproducts.de
:Info 4:
:Language:
en
|img-1| |img-2| EXT: Shop System - tt\_products
.. _EXT-Shop-System:
EXT: Shop System
================
Extension Key: tt\_products
Language: en
Keywords: forAdmins, forIntermediates
Copyright 2011, Franz Holzinger,
This document is published under the Open Content License
available from http://www.opencontent.org/opl.shtml
The content of this document is related to TYPO3
\- a GNU/GPL CMS/Framework available from www.typo3.org
.. _Table-of-Contents:
Table of Contents
-----------------
`EXT: Shop System 1 <#1.EXT:%20Shop%20System|outline>`_
**`Introduction 3 <#1.1.Introduction|outline>`_**
`Version 3 <#1.1.1.Version|outline>`_
`Cease and Desist Letters 3
<#1.1.2.Cease%20and%20Desist%20Letters|outline>`_
`Translations 3 <#1.1.3.Translations|outline>`_
`Upgrade 3 <#1.1.4.Upgrade|outline>`_
`What does it do? 3 <#1.1.5.What%20does%20it%20do_|outline>`_
`Developers 4 <#1.1.6.Developers|outline>`_
`Sponsors 4 <#1.1.7.Sponsors|outline>`_
`Support 4 <#1.1.8.Support|outline>`_
**`Users manual 5 <#1.2.Users%20manual|outline>`_**
`Note: 5 <#1.2.1.Note:|outline>`_
`Mini-Basket: 5 <#1.2.2.Mini-Basket:|outline>`_
`Calculation script: 6 <#1.2.3.Calculation%20script:|outline>`_
`Discount: 6 <#1.2.4.Discount:|outline>`_
`Link for products of the last X days 6
<#1.2.5.Link%20for%20products%20of%20the%20last%20X%20days|outline>`_
`Offers and highlights 6 <#1.2.6.Offers%20and%20highlights|outline>`_
`AGB General Trading Conditions 6
<#1.2.7.AGB%20General%20Trading%20Conditions|outline>`_
`MEMO page 6 <#1.2.8.MEMO%20page%20|outline>`_
`Voucher System 6 <#1.2.9.Voucher%20System|outline>`_
`Creditpoint System 7 <#1.2.10.Creditpoint%20System|outline>`_
`Gift Certificates 7 <#1.2.11.Gift%20Certificates|outline>`_
`Buy-a-Case 7 <#1.2.12.Buy-a-Case|outline>`_
`Product Articles with Special Prices 7
<#1.2.13.Product%20Articles%20with%20Special%20Prices|outline>`_
**`Administration 9 <#1.3.Administration|outline>`_**
`Installation 9 <#1.3.1.Installation|outline>`_
`Handling of Categories 9
<#1.3.2.Handling%20of%20Categories|outline>`_
`Handling of Images 9 <#1.3.3.Handling%20of%20Images|outline>`_
`Important 9 <#1.3.4.Important|outline>`_
`Template markers 10 <#1.3.5.Template%20markers|outline>`_
`Automatic creation of frontend users and address fields 12 <#1.3.6.Au
tomatic%20creation%20of%20frontend%20users%20and%20address%20fields|ou
tline>`_
`Product properties: 12 <#1.3.7.Product%20properties:|outline>`_
**`Configuration 15 <#1.4.Configuration|outline>`_**
`FAQ 15 <#1.4.1.FAQ|outline>`_
`Files 15 <#1.4.2.Files|outline>`_
`Description 15 <#1.4.3.Description|outline>`_
`Reference 15 <#1.4.4.Reference|outline>`_
`Display Modes (CODE) 26 <#1.4.5.Display%20Modes%20(CODE)|outline>`_
`CSS configuration 27 <#1.4.6.CSS%20configuration|outline>`_
`Configuration of Articles, Products, Categories, Pages, Addresses and
Images 28 <#1.4.7.Configuration%20of%20Articles,%20Products,%20Categor
ies,%20Pages,%20Addresses%20and%20Images|outline>`_
`Form configuration 33 <#1.4.8.Form%20configuration|outline>`_
`Basket configuration 33 <#1.4.9.Basket%20configuration|outline>`_
`Control configuration 34 <#1.4.10.Control%20configuration|outline>`_
`Payment, shipping and handling configuration 34 <#1.4.11.Payment,%20s
hipping%20and%20handling%20configuration|outline>`_
`Shipping Cost Calculation shippingcalc / handlingcalc 40 <#1.4.12.Shi
pping%20Cost%20Calculation%20shippingcalc%20/%20handlingcalc|outline>`
_
`Pricecalc, discountprice and creditpoints configuration 41 <#1.4.14.P
ricecalc,%20discountprice%20and%20creditpoints%20configuration|outline
>`_
`Voucher System Configuration 43
<#1.4.15.Voucher%20System%20Configuration|outline>`_
`Bill and Delivery Configuration 43
<#1.4.16.Bill%20and%20Delivery%20Configuration|outline>`_
`payment\_DIBS.php 44 <#1.4.17.payment_DIBS.php|outline>`_
**`Known problems 45 <#1.5.Known%20problems|outline>`_**
`Checklist: 45 <#1.5.1.Checklist:|outline>`_
`General: 45 <#1.5.2.General:|outline>`_
**`To-Do list 46 <#1.6.To-Do%20list|outline>`_**
**`Changelog 47 <#1.7.Changelog|outline>`_**
.. _Introduction:
Introduction
------------
You should read the `German tutorial `_
or `Italian tutorial `_ or one of
the books `'Der TYPO3 Webshop'
`_ and ' `TYPO3 4.2
E-Commerce `_ ' before you start with it.
Watch this `introduction video
`_ `.
`_ See the extension
addons\_tt\_products for newer example template files.
This extension only works with PHP5.
.. _Version:
Version
^^^^^^^
This document is for version 2.9.1 of tt\_products. You can get the
code of the next version of tt\_products at `ttproducts.de
`_ .
.. _Cease-and-Desist-Letters:
Cease and Desist Letters
^^^^^^^^^^^^^^^^^^^^^^^^
Do not use trademarks, photographs and maps in your shop which you do
not own and made by yourself. Do not forget any texts in your shops
which are required. Be very careful when you link to other
pages.Hundreds of lawyers are continuously searching the Internet for
your mistakes in order to get much more money from you than you could
ever imagine. **That would be damn stupid for you.**
`http://www.legalshop.co.uk `_
.. _Translations:
Translations
^^^^^^^^^^^^
A German translation of this document is available under the extension
key `doc\_ttproducts\_de `_ . A
French translation is under development at `doc\_ttproducts\_fr
`_ .
.. _Upgrade:
Upgrade
^^^^^^^
If you upgrade from Version 1.2.7 you have to do all the
administrative steps under the topic 'Important'.
.. _What-does-it-do:
What does it do?
^^^^^^^^^^^^^^^^
The Typo3 shop extension gives you the facility for...
- Product listings with multiple images, details and languages
- Shopping basket
- Payment page - The orders will be indicated and can be checked over
before the products are finalized.
- sponsors only: Payment gateways with Payment Library extension -
Paypal and Transaction Central
- Tracking customers order status
- Automatic creation of bill and delivery sheet
- Different tax percentages per item, shipping and payment
- basic stock management
- Send a CSV for each order to the shop admin (2 choosable file formats)
- E-Mail-Attachments for the confirmation mails (for example AGB in
German = General trading conditions)
- choosable item variants (colors, sizes, gradings, description,
materials and qualities)
- Force customer to accept the General trading conditions (AGB) per
checkbox
- Offers, highlights and newly added items
- Special preparation, weight and bulkily (can be used to calculate the
shipping fee)
- Ability to limit payment methods to specific user groups
- Automatic creation of frontend users at first order
- Remember items in a memo, when a user is logged in
- Discount percentage per user
- Some methods for price calculation with rebate for resellers
- Display orders: order can be displayed on per fe-user basis
(CODE=ORDERS)
- Creditpoint system: customers can save credit points per each order.
Saved points will give them a discount for newer orders or certain
products can be "bought" with these points.
- Voucher system: if a new customer indicates when registrating that
she/he was tipped by another existing customer, this customers gets a
credit point bonus. The new customer gets a discount on first order.
- Gift certificate: Users can buy certificates and send them as gifts to
their friends. After signing on as front end users they can transform
their gift certificates into creditpoints.
.. _Developers:
Developers
^^^^^^^^^^
- Kasper Skårhøj: 1 :sup:`st` developer 1.2.7 / TYPO3 3.8
- René Fritz: 1 :sup:`st` developer 1.2.7 / TYPO3 3.8
- Franz Holzinger (trainer): price calculation, discount price, gift
certificates, e-mail table for notification, error correction,
billing, receipts, multi-column listings, product/articles tables,
multiple languages, DAM list and category list
- Klaus Zierer (trainer of zk\_products): more sizes and colors, entry
lists, automatic registration of front-end users, category pages. In
zk\_products you can find a good example shop template.
- Els Verberne: Credit point system and voucher system, Order lists
.. _Sponsors:
Sponsors
^^^^^^^^
- The development of gift coupons was carried out by Franz Holzinger. It
was sponsored by BENDOO e-work solutions of the Netherlands (
`http://www.bendoo.nl `_ ). For more
information contact BENDOO at `hiddink@bendoo.com
`_ .
- The shopping of articles without attributes from a product, the
category select box, the image naming using parts of table field
entries and of the DAM table, and the shipping setup using the
static\_countries and a credit cards table was carried out by Franz
Holzinger. It was sponsored by `http://www.henrikjahn.de/
`_ Germany. For more information contact
Henrik Jahn at `jahn@henrikjahn.de `_ .
- `pil.dk - Professionelle Internet Løsninger ApS `_
is a main sponsor of the code for the Payment Library extension.
- `lightimaging images database `_ - superb
images of nature, royalty-free
- Multi-categories per product with multilingual listings, import
scripts for XML files from inventory control systems, custom shop
tables, advanced search mask with producer select box, traffic light
symbols to display the availability of articles. Sponsored by `Geo.net
IT GmbH `_ .
`Websolutions für Apotheke und Pharmazie `_
TYPO3 FullService \* Konzeptionierung \* Realisierung \* TYPO3 Hosting
\*pharmaline - Internet für die Apotheke, Apotheker Christian Platt,
Kupferdreher Str 150, 45257 Essen
.. _Support:
Support
^^^^^^^
You can get support and installation service for this extension at
`http://jambage.com/index.php?id=162
`_ .
You can download all needed extensions from the TYPO3 TER,
`http://typo3.org `_ or from
`http://jambage.com/index.php?id=170
`_ .
.. _Users-manual:
Users manual
------------
.. _Note:
Note:
^^^^^
The data path is renamed from 'pi' to 'pi1', thereby tt\_products will
now be put together like standard TYPO3 extensions. If paths have been
employed from previous versions of tt\_products then these must now be
renamed in TypoScript setup. If you newly installl or update the
extension, please observe the Depencies in TER (online repository of
the extension manager).
You must fill in the product's 'In Stock (pcs)' field of your product
properties, or no item will be shown in your frontend list if set to
0. This has been changed to the older version.
However, you should store the prices with included tax in the
database; it makes it easier for you to reenter the price as well as
for the customer to see the prices as you entered them. These prices
should finally have the convention of pricinglike 89.99 and not 89.72.
Before you start entering the prices of your products you have to
decide whether you want to enter the prices with or without tax (see
TAXincluded). All the calculations and configurations will use the
prices as they have been stored into the price field of the
tt\_products table.You should use a template with multiple columns (
::
plugin.tt_products.conf.tt_products.LIST.displayColumns.1 = 3
or higher) even if you only have one column in the list table.
Use an example template from the directory tt\_products/template, like
the template, example\_template\_bill\_de.tmpl, when you start your
shop. You have to change the page id in the links (after the 'id=...')
to the page id of the basket on your site. The marker ###DOMAIN### is
the placeholder for your url. There are several placeholders for the
different page ids of the shop. This is sensible because different
hosting environments will be used. In the setup of the shop templates,
the domain marker must become mydomain.com by using the following
TypoScript : plugin.domain=mydomain.com).
tt\_products is based on the Table Library (table) and Static Methods
for Extensions since 2007 (div2007). So you have to always update to
the latest versions of these extensions when you update tt\_products.
If you want to use the variant fields (color, quantity ...), you must
also set the constants 'selectColors' and 'selectSize' at 0 or 1.
Otherwise, the count in the product list of articles will be
calculated incorrectly.
Many adaptations can be undertaken by way of the constant editor. For
entering in the shop page, most should be directed in the template's
setup field and constant editor.
.. _Mini-Basket:
Mini-Basket:
^^^^^^^^^^^^
Beside the "normal" basket which shows a complete list of added
products and some order options, there is also a "mini-basket" which
only shows the number of products in the basket and the total price.
This shows or indicates the actualization of the contents of the mini-
basket displayed above the normal view (or as desired) while the
process in shop steadily continues. The progress of accumulation that
the mini-basket indicates can be controlled via typoscript. To use
this mini-basket, insert a new content element "Plugin: Products" and
in the display view insert 'Basket: overview' or if you use
typo3script set the CODE-field to OVERVIEW.
Use the following markers in your tt\_products template to enable and
customize this mini-basket:
Code Listing:
::
.. _Calculation-script:
Calculation script:
^^^^^^^^^^^^^^^^^^^
If you write and use your own calculation scripts, then you should
always use only the price variables. The priceTax and priceNoTax
variables will be deleted in August 2008 because they can be
calculated from the price variables and the TAXpercentage and
TAXincluded constants.You can use the global PHP variables
$this->calculatedArray and $this->itemArray to make your own price
calculations.
::
10.calculationScript = EXT:tt_products/pi1/products_comp_calcScript.inc
.. _Discount:
Discount:
^^^^^^^^^
There are several methods to get a discount.
Use the discount field for a frontend user and enter the percent of
discount.
Use the price2 field for special feuser groups or other things. This
setting is done in TypoScript via the IF-statement.
Use the discountprice calculation where the discount depends on the
value of the total number of the products which have a special price.
This will be available for the frontend user group
'discountGroupName'.
.. _Link-for-products-of-the-last-X-days:
Link for products of the last X days
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is practical for “What is new?” pages. Create simply a link to
the SEARCH page and add "newitemdays" as parameters. `http://www.big-
typo3-shop.com/index.php?id=8&newitemdays=10 `_ The search result will
contain all the products of the last 10 days.You have to use the
plugin code LISTNEWITEMS. You can also set the constant "
**newItemDays** ".
.. _Offers-and-highlights:
Offers and highlights
^^^^^^^^^^^^^^^^^^^^^
You have to use the plugin code LISTOFFERS for the items marked as
'offer' and LISTHIGHLIGHTS for the newest items.
.. _AGB-General-Trading-Conditions:
AGB General Trading Conditions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You have to accept the general trading conditions before you can make
an order and continue with the process. A page can be defined for this
with "PIDagb". The AGBs have to be displayed there. You can set the
target for a link by "AGBtarget".
A document (e.g. a PDF file) on the server containing the AGB can be
set by "AGBattachment". This will be set to the customer as an email
with an attachment to the order confirmation. The shop administration
will not get this file. (he can get a CSV file of the order data
instead, if wanted).
.. _MEMO-page:
MEMO page
^^^^^^^^^
You can add items to a memo page when a user is logged in or not. This
memo page will be saved in the fe\_user table or in the FE
session.Simply create a new page with the Shop plugin as content and
enter the code "MEMO". You must set the starting point there too, like
in the SEARCH pages.
.. _Voucher-System:
Voucher System
^^^^^^^^^^^^^^
An interested customer is obtained through invitation by e-mail to
visit a shop and purchase products. This e-mail is attached to a
unique code which corresponds to a certain amount of credit points
(voucher). When they make a purchase, they can redeem these credit
points by inputing the unique code.
If a customer states in his registration that he has been recruited by
another customer, then the referring customer gets credit points. The
new customer gets a discount with his first order.
Somebody (lets say user 1) can enter a voucher code if he concludes an
order. Then user 1 will obtain a discount. This credit entry code
undergoes a change with each different user name (which is the e-mail
address). Let's say user 2 gets 5 credit points altogether and applies
his code to his purchase. Only one entry code out of a voucher system
can be used by each user. In fe\_users table there is a field given
for this "tt\_products\_vouchercode" which contains the used credit
entry code (e-mail of user 2).
.. _Creditpoint-System:
Creditpoint System
^^^^^^^^^^^^^^^^^^
If a customer purchases a certain number of items, then he gains
credit points which are stored in his user's account. If he purchases
more items at a later time, he can redeem credit points against the
purchase price. The customer can gather credit points with each
purchase.
::
creditpoints {
pricefactor = 0.5
10.type = price
10.prod.1 = 0.02
10.prod.101 = 0.04
10.prod.501 = 0.06
}
.. _Gift-Certificates:
Gift Certificates
^^^^^^^^^^^^^^^^^
A shop manager can sell, for example, electronic gift certificates for
wine bottles. A client may order a certificate that corresponds to 50
credit points (=25 Euros) to send to someone as a gift. To redeem this
gift certificate, then one must register as a shop customer and input
the certificate code. Thereby, haveing 50 credit points credited to
his account. This customer can purchase a particular product with
these credit points.
Anyone can buy, for example:
- 3 certificates @ 25 credit points
- 5 certificates @ 50 credit points
- 8 certificates @ 75 credit points...all within the same order.
.. _Buy-a-Case:
Buy-a-Case
^^^^^^^^^^
Wine will be sold in a shop, for instance. Normally, you sell a case
of wine bottles (a case can contain 6 or 8 items). The additional
service, “buy-a-case”, gives the shop customer the potential to put
together his own case of 6 bottles: for example, 2 red, 2 white, 2
rose. The special handling of bottles and cases will be calculated
under the buy-a-case concept. The handling per bottle will be
calculated 1.50 Euro/bottle; likewise, the extra handling for 2 cases
will amount to 2 x 6 x 1.5 = 18 Euros.
.. _Product-Articles-with-Special-Prices:
Product Articles with Special Prices
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This example shows you how to have different sizes at different
prices. The same procedure can be used with color and other variants.
Make sure 'Show secondary options (palettes)' is tagged, otherwise
some of the fields will not be available.
variants:
Color (variant 1)
2nd Color (variant 6)
3rd Color (variant 7)
Size Lenght (variant 2)
2nd Size Width (variant 8)
3rd Size Height (variant 9)
Description (variant 3)
Gradings (variant 4)
Material (variant 10)
Quality (variant 11)
Additional (special variant 5)
In the TSSetup for the template add
::
plugin.tt_products.useArticles = 1
plugin.tt_products.selectSize = 1
If you are using columns to List your products like in the Bananaguard
example, you also need
::
plugin.tt_products.conf.tt_products.LIST.displayColumns = 1
All this tells TYPO3 to read from the product articles and display a
dropdown selection box if variants are used.
Add the parent product.This is the primary information that is
displayed in the frontend List and Single views, ie description, image
etc. Create a new entry in the Web > List mode. Select Product from
the available options.You will need to fill out the following fields:
- Title
- InStock (must have at least 1 to display in the frontend)
- Category (if applicable)
- Price (this should be the cheapest price for the cheapest size -
corresponding to the cheapest product article which we will set up
next)
- Size (same applies for Color/Description/Grading if applicable)This is
crucial - in order for the frontend to be able to select a product
variant you need to list all the size options here first, separated by
a semi-colon e.g. S;M;X;XL - this will correspond to the product
articles we'll create next.
- Note
- Image
- Datasheet (if applicable).
Add the product variantsHere we create the different sizes for the
parent product. The information is pretty basic, you use to clarify
different prices, item numbers (for keeping track of stock), amount of
stock etc. Each product variant must relate to one of the sizes (or
color etc) we listed in the parent product.
- Create a new entry in the Web > List mode.
- Select Product Articles from the available options.
- Fill out the Title (this will appear in the shopping basket) and
- Instock
- Price
If this variant is the cheapest version this should be the same as the
price listed in the Parent Product.
- Product
Very important, you need to select the parent product using the
Element Browser, otherwise the price will not be changed in the
shopping basket when a size is selected
Size (or Color, Grading is applicable)This must correspond to one of
the sizes that was listed in the Product Parent eg XL, if the spelling
is incorrect it will not work.
- Changes to the html templateThis is the last thing to do.
- You'll need to add new fields to the ###ITEM\_LIST\_TEMPLATE### and
###ITEM\_SINGLE\_DISPLAY###.
- The Code Listing below for the variant selection box needs to be added
and must sit inside of the form tags. Also note that any information
between ###display\_variant1### or ###display\_variant2### tags will
not be displayed if that variant is not used. This is a useful feature
as we can use this to display or hide the word 'From' before the
###PRICE\_TAX### value by putting the ###display\_variant2### tags
either side, giving us for example 'From $200' when $200 is the
cheapest size (this is why the cheapest price is entered in the
product parent - by default the parent product price is displayed in
the List and Single view, the variant price is only displayed in the
shopping basket once a size (or color etc) has been selected.) When no
variant options are available the word From is hidden.Code Listing:
::
Color:>
Size:>
.. _Administration:
Administration
--------------
In the normal case the categories from the category table and its
enhancements are used. You have to set
$TYPO3\_CONF\_VARS['EXTCONF']['tt\_products']['pageAsCategory'] = 0
to be able to use them. Otherwise the pages will form the category and
the category will be used as subcategory (=1) or not used at all but
replaced by the page (=2).
Activate now the flexforms in the backup. The code field will be
replaced by a graphical user interface. However you have to reenter
all your code fields.
$TYPO3\_CONF\_VARS['EXTCONF']['tt\_products']['useFlexforms'] = 1
.. _Installation:
Installation
^^^^^^^^^^^^
Install the extension with the extension manager. If you already use
an older version of tt\_products that's installed in the “global”
location (typo3/ext/), it's recommended to install the new extension
into the “local” folder (typo3conf/ext/) without overwriting the old
one. By doing this you can easily switch back to the former version.
Deinstall the extension from the Extension Manager. Then download the
version of your choice from the Online Repository with the Extension
Manager.Then use the Extension Manager's "Available extensions to
install" and add the Shop system again.
This extension works best in union with static\_info\_tables,
static\_info\_tables\_taxes, sr\_feuser\_register,rtehtmlarea,
mbi\_products\_categories, paymentlib andconf\_userts.
.. _Handling-of-Categories:
Handling of Categories
^^^^^^^^^^^^^^^^^^^^^^
There are multiple ways to create a shop. The usual way is to create
sysfolders for the products and lists and single sites where the
products are displayed. If you want to do a bigger shop with TYPO3,
this will become a little bit unhandy.
If you want to make bigger shops with hierarchical categories you
shall install the mbi\_products\_categories and maybe also the
nsb\_cat2menu extension. Sponsors will get an enhanced version of
mbi\_products\_categories with which you can assign many categories to
one products via a mm-table. Only with this it will be possible to
list DAM images.
**Example of tt\_products/ext\_localconf.php:**
::
$TYPO3_CONF_VARS['EXTCONF']['tt_products']['pageAsCategory'] = 0;
.. _Handling-of-Images:
Handling of Images
^^^^^^^^^^^^^^^^^^
There are ways to use and display the infos about images of the DAM
extension.
.. _Important:
Important
^^^^^^^^^
This should be fully downwards compatible to the former tt\_products
1.2.7. But it needs some adaption to the template file. In
###BASKET\_TEMPLATE### you must have the lines
::
You have to rename the marker###FIELD\_NAME###
to###FIELD\_NAME\_BASKET### in the BASKET\_TEMPLATE.
This is compatible with zk\_products 1.3.2.
Some of the TypoScript settings do not function via the constants
field and must be entered in the setup field. Only those settings
which can be found using the Constants Editor or in the file
static/old\_style/constants.txtare valid constants. You must include
the 'Shop System Old Style' into your 'static template records' of
your TYPO3 template.
A negative value of a product at 'in stock' does not have any more a
special function. This has been replaced by a checkbox 'always on
stock'.
Change the former input fields for a search into
The marker ###SWORDS### must be changed into ###SWORD###, and the name
into 'sword'.
.. _Template-files:
Template files
""""""""""""""
In your template files for the shop you need to make the following
settings so it will work:
Put this into your FORM-attributes of the BASKET\_TEMPLATE.
.. _Template-markers:
Template markers
^^^^^^^^^^^^^^^^
The following template markers for the tmpl-file are used. You have to
put ### before and after them. There are more markers, so look into
the example template files.
.. _area-markers:
area markers:
"""""""""""""
.. ### BEGIN~OF~TABLE ###
.. _BASKET-TEMPLATE:
BASKET\_TEMPLATE
~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_TEMPLATE
Description
Area
top
.. _BASKET-INFO-TEMPLATE:
BASKET\_INFO\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_INFO\_TEMPLATE
Description
This is normally used to let people enter address information
separately from the real basket.
Exact same features as BASKET\_TEMPLATE.
Area
top
.. _BASKET-ORDERCONFIRMATION-TEMPLATE:
BASKET\_ORDERCONFIRMATION\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_ORDERCONFIRMATION\_TEMPLATE
Description
the final page after the order has been processed. It will not be used
for the display, if PIDthanks is set. But this will always be used for
the text in HTML emails.
see: BASKET\_ORDERTHANKS\_TEMPLATE
Area
.. _BASKET-ORDERCONFIRMATION-NOSAVE-TEMPLATE:
BASKET\_ORDERCONFIRMATION\_NOSAVE\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_ORDERCONFIRMATION\_NOSAVE\_TEMPLATE
Description
This HTML data will be added to the display after the order has been
stored to the database.
Area
.. _BASKET-ORDERTHANKS-TEMPLATE:
BASKET\_ORDERTHANKS\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_ORDERTHANKS\_TEMPLATE
Description
Used for displaying a thanks page, when PIDthanks is set. This will
not be used in the HTML emails.b
see BASKET\_ORDERCONFIRMATION\_TEMPLATE
Area
.. _BASKET-OVERVIEW-EMPTY:
BASKET\_OVERVIEW\_EMPTY
~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_OVERVIEW\_EMPTY
Description
message 'your basket is empty' for OVERVIEW
Area
.. _BASKET-OVERVIEW-TEMPLATE:
BASKET\_OVERVIEW\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_OVERVIEW\_TEMPLATE
Description
Area
.. _BASKET-PAYMENT-TEMPLATE:
BASKET\_PAYMENT\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_PAYMENT\_TEMPLATE
Description
Area
.. _BASKET-REQUIRED-INFO-MISSING:
BASKET\_REQUIRED\_INFO\_MISSING
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_REQUIRED\_INFO\_MISSING
Description
Area
.. _BASKET-TEMPLATE-EMPTY:
BASKET\_TEMPLATE\_EMPTY
~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_TEMPLATE\_EMPTY
Description
message 'your basket is empty'
Area
.. _BASKET-TEMPLATE-NOT-LOGGED-IN:
BASKET\_TEMPLATE\_NOT\_LOGGED\_IN
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_TEMPLATE\_NOT\_LOGGED\_IN
Description
error message that the user has not logged in
Area
.. _BASKET-TEMPLATE-INVALID-GIFT-UNIQUE-ID:
BASKET\_TEMPLATE\_INVALID\_GIFT\_UNIQUE\_ID
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
BASKET\_TEMPLATE\_INVALID\_GIFT\_UNIQUE\_ID
Description
error message that a wrong unique id for a gift product has been
entered
Area
.. _BILL-TEMPLATE:
BILL\_TEMPLATE
~~~~~~~~~~~~~~
.. container:: table-row
Marker
BILL\_TEMPLATE
Description
how your bill file will look like
Area
.. _DELIVERY-TEMPLATE:
DELIVERY\_TEMPLATE
~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
DELIVERY\_TEMPLATE
Description
for the file of your delivery sheet
Area
.. _EMAIL-PLAINTEXT-TEMPLATE:
EMAIL\_PLAINTEXT\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
EMAIL\_PLAINTEXT\_TEMPLATE
Description
the email notification text
The first line is the subject.
Area
.. _EMAIL-NEWUSER-TEMPLATE:
EMAIL\_NEWUSER\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
EMAIL\_NEWUSER\_TEMPLATE
Description
email after creation of new frontend use
Area
.. _ITEM-LIST-TEMPLATE:
ITEM\_LIST\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_LIST\_TEMPLATE
Description
the listing of products on the starting LIST page
Area
.. _ITEM-LIST-GIFTS-TEMPLATE:
ITEM\_LIST\_GIFTS\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_LIST\_GIFTS\_TEMPLATE
Description
listing of the gift products
Area
.. _ITEM-SEARCH:
ITEM\_SEARCH
~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_SEARCH
Description
Area
.. _ITEM-SEARCH-EMPTY:
ITEM\_SEARCH\_EMPTY
~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_SEARCH\_EMPTY
Description
Area
.. _ITEM-SINGLE-DISPLAY:
ITEM\_SINGLE\_DISPLAY
~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_SINGLE\_DISPLAY
Description
Area
.. _ITEM-SINGLE-DISPLAY-GIFT:
ITEM\_SINGLE\_DISPLAY\_GIFT
~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_SINGLE\_DISPLAY\_GIFT
Description
single display used when this is a gift product
Area
.. _ITEM-SINGLE-DISPLAY-NOT-IN-STOCK:
ITEM\_SINGLE\_DISPLAY\_NOT\_IN\_STOCK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_SINGLE\_DISPLAY\_NOT\_IN\_STOCK
Description
single display when item is not in stock
Area
.. _ITEM-SINGLE-DISPLAY-RECORDINSERT:
ITEM\_SINGLE\_DISPLAY\_RECORDINSERT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ITEM\_SINGLE\_DISPLAY\_RECORDINSERT
Description
see displayCurrentRecord: render the $cObj->data
Area
.. _MEMO-TEMPLATE:
MEMO\_TEMPLATE
~~~~~~~~~~~~~~
.. container:: table-row
Marker
MEMO\_TEMPLATE
Description
Area
.. _MEMO-NOT-LOGGED-IN:
MEMO\_NOT\_LOGGED\_IN
~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
MEMO\_NOT\_LOGGED\_IN
Description
error message that use has not been logged in for MEMO
Area
.. _ORDERS-LIST-TEMPLATE:
ORDERS\_LIST\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ORDERS\_LIST\_TEMPLATE
Description
display of the order list
Area
.. _TRACKING-EMAIL-GIFTNOTIFY-TEMPLATE:
TRACKING\_EMAIL\_GIFTNOTIFY\_TEMPLATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
TRACKING\_EMAIL\_GIFTNOTIFY\_TEMPLATE
Description
notification to the gift recipient in the order tracking
Area
.. _TRACKING-ENTER-NUMBER:
TRACKING\_ENTER\_NUMBER
~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
TRACKING\_ENTER\_NUMBER
Description
Area
.. _TRACKING-WRONG-NUMBER:
TRACKING\_WRONG\_NUMBER
~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
TRACKING\_WRONG\_NUMBER
Description
Area
.. ###### END~OF~TABLE ######
.. _single-markers:
single markers
""""""""""""""
**Example** for a wrap:
::
datasheet for the product
.. ### BEGIN~OF~TABLE ###
.. _BROWSE-LINKS:
BROWSE\_LINKS
~~~~~~~~~~~~~
.. container:: table-row
Marker
BROWSE\_LINKS
Type
Description
for browsing the display list over several pages
Area
.. _DELIVERYCOSTS:
DELIVERYCOSTS
~~~~~~~~~~~~~
.. container:: table-row
Marker
DELIVERYCOSTS
Type
value
Description
sum of delivery costs and payment costs
Area
.. _DELIVERY-NOTENOTE-DISPLAYDESIRED-DATE:
DELIVERY\_...NOTENOTE\_DISPLAYDESIRED\_DATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
DELIVERY\_...NOTENOTE\_DISPLAYDESIRED\_DATE
Type
value
Description
see also PERSON\_...
input field note for orderoutput field note with instead of
linebreaksdesired delivery date of the order
Area
BASKET\_INFO\_TEMPLATE
.. _EXTERNAL-COBJECT:
EXTERNAL\_COBJECT
~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
EXTERNAL\_COBJECT
Type
value
Description
extra preprocessing Cobject
Area
.. _FIELD-NAME:
FIELD\_NAME
~~~~~~~~~~~
.. container:: table-row
Marker
FIELD\_NAME
Type
value in form
Description
the name of a field in a form
Area
.. _FIELD-NAME-BASKET:
FIELD\_NAME\_BASKET
~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
FIELD\_NAME\_BASKET
Type
value in form
Description
the basket data in encrypted format
Area
.. _GC1-GC2-GC3:
GC1, GC2, GC3
~~~~~~~~~~~~~
.. container:: table-row
Marker
GC1, GC2, GC3
Type
value
Description
global colors
Area
all
.. _GW1B-GW2B-GW1E-GW2E:
GW1B, GW2B, GW1E, GW2E
~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
GW1B, GW2B, GW1E, GW2E
Type
wrap
Description
global wraps
Area
all
.. _PRICE-TAX:
PRICE\_TAX
~~~~~~~~~~
.. container:: table-row
Marker
PRICE\_TAX
PRICE\_NO\_TAX
PRICE\_ONLY\_TAX
PRICE2\_TAX
PRICE2\_NO\_TAX
PRICE2\_ONLY\_TAX
Type
value
Description
price/price2 of the item with, without and only VAT
Area
ITEM\_SINGLE
.. _PRICE-TOTAL-TAX:
PRICE\_TOTAL\_TAX
~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
PRICE\_TOTAL\_TAX
PRICE\_TOTAL\_NO\_TAX
PRICE\_TOTAL\_ONLY\_TAX
Type
value
Description
total sum of the items with shipping and payment costs
Area
all
.. _PRICE-GOODSTOTAL-TAX:
PRICE\_GOODSTOTAL\_TAX
~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
PRICE\_GOODSTOTAL\_TAX
PRICE\_GOODSTOTAL\_NO\_TAX
PRICE2\_GOODSTOTAL\_TAX
PRICE2\_GOODSTOTAL\_NO\_TAX
Type
value
Description
total sum ot the items for price or price2
Area
all
.. _LINK-BASKET:
LINK\_BASKET
~~~~~~~~~~~~
.. container:: table-row
Marker
LINK\_BASKET
Type
wrap
Description
link to the basket page
Area
basket
.. _PRODUCT-LINK-DATASHEET:
PRODUCT\_LINK\_DATASHEET
~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
PRODUCT\_LINK\_DATASHEET
Type
wrap
Description
link to the datasheet file set in the constant file.datasheetIcon.
**Example** :
###GW1B######P\_DATASHEET### 1: ###GW1E### ###PRO
DUCT\_DATASHEET1######ICON\_DATASHEET###
###GW1B######P\_DATASHEET### 2: ###GW1E### ###PRO
DUCT\_DATASHEET2######ICON\_DATASHEET###
Area
.. _ORDER-STATUS-TIME:
ORDER\_STATUS\_TIME,
~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
ORDER\_STATUS\_TIME,
ORDER\_STATUS, ORDER\_STATUS\_INFO, ORDER\_STATUS\_COMMENT
Type
value
Description
order values
Area
TRACKING\_DISPLAY\_INFO
.. _PERSON-NAME-ADDRESS-TELEPHONE:
PERSON\_...NAME,ADDRESS,TELEPHONE,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
PERSON\_...NAME,ADDRESS,TELEPHONE,
FAX,EMAIL,
COMPANY,
CITY,
ZIP,
STATE,
COUNTRY
Type
value
Description
address information fieldshave to be connected with a
prefixPERSON\_... the customer of the order
DELIVERY\_... the recipient of the order
Area
.. _PID-TRACKING:
PID\_TRACKING
~~~~~~~~~~~~~
.. container:: table-row
Marker
PID\_TRACKING
Type
value
Description
the tracking pid
Area
.. _STATUS-CODE-60:
STATUS\_CODE\_60
~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
STATUS\_CODE\_60
Type
wrap
Description
used to allow the disappearance of the text with status code by the
shop
Area
TRACKING\_DISPLAY\_INFO
.. _STATUS-OPTIONS:
STATUS\_OPTIONS
~~~~~~~~~~~~~~~
.. container:: table-row
Marker
STATUS\_OPTIONS
Type
value
Description
Select menu of state options
Area
ADMIN\_CONTROL inside TRACKING\_DISPLAY\_INFO
.. _SHOPADMIN-EMAIL:
SHOPADMIN\_EMAIL
~~~~~~~~~~~~~~~~
.. container:: table-row
Marker
SHOPADMIN\_EMAIL
Type
value
Description
Email-Address of the shop admin
Area
all
.. ###### END~OF~TABLE ######
.. _global-markers:
global markers
""""""""""""""
The global markers are allowed to be used with all subparts. You can
even define new markers.
**Example:**
::
plugin.tt_products.marks {
my_marker = Come soon back to our shop!
}
###MY_MARKER###
.. ### BEGIN~OF~TABLE ###
.. _marks:
marks
~~~~~
.. container:: table-row
Property
marks
Data type
array
Description
self defined markers
Default
.. _markerFile-Constants-file-markerFile:
markerFile *Constants:* file.markerFile
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. container:: table-row
Property
markerFile *Constants:* file.markerFile
Data type
resource / *array of string*
Description
The marker file with the translations.
**Example:**
::
plugin.tt_products.markerFile = EXT:myext/marker/fr.locallang.xml
Default
.. ###### END~OF~TABLE ######
.. _Automatic-creation-of-frontend-users-and-address-fields:
Automatic creation of frontend users and address fields
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
It is possible to create frontend users automatically after each
order. You have to set "createUsers" to "1", enter the PID of the
sysfolder as PIDuserFolder in the Setup field. Then you have to set
memberOfGroup to the ID of your frontend user group.The customer will
get an email with his account data after his first order. This email
will contain his account name which is his email address, and his
automatically created password.
If you do not want to use a single addreliss field, but the address
field for the name of the street and the housenumber and additional
fields for the ZIP, city and country, then you have to set these in
your template file. If you install static\_info\_tables and set
“useStaticInfoCountry=1” then the small field static\_info\_country of
the fe\_users will be used instead of country. This is useful to make
a select box for the country.
.. _Product-properties:
Product properties:
^^^^^^^^^^^^^^^^^^^
.. _Color-Size-Additional-and-Gradings:
Color, Size, Additional and Gradings
""""""""""""""""""""""""""""""""""""
To enter variants of products you have to separate the values by a
semicolon. So for t-shirts with different color and size enter
"red;green;blue" in variant1 and "S;X;XL;XXL" in variant2.Color
(Variant 1) and Size (Variant 2): enter here values with title and
values separated by semicolon ';' like
::
M;L;XL;XXL
Change the template to support this:
::
###GW2B### Color: ###GW2E###
###GW2B### Size: ###GW2E###
If you do not make colors or size selectable, you have to set
selectColor or selectSize to 0 and only use the ###PRODUCT\_COLOR###
and ###PRODUCT\_SIZE### markers and within the template itself delete
the corresponding ###display\_variant### marker. You can, however, use
markers as representations of the colors, also if no different colors
can be chosen.
The field name of all the fields in the list view and the basket view
will be addressed with the marker ###FIELD\_NAME###. The markers will
be internally replaced in shop through a field name with which the
field can be chosen and attributed correctly.
When you have products with different mixes of colors, sizes, and
gradations, then you must replace the notation ###FIELD\_NAME#### in
the field BASKET\_TEMPLATE with the notation
###FIELD\_NAME\_BASKET###.
In the list view of the web module, you can now complete the readily
available items with the variant, for example color. For that purpose,
you select the table product article.
You must set useArticles=1 in the template setup in order to apply the
article attributes/properties.
When you have prepared products, having arranged product qualities of
different color, you use only one article number and one price, etc.
for this product. However, when you need, for example, different
colors, different article numbers, and perhaps prices, etc then this
arrangement occurs in the article property (web module, list, product
article table). The advantage is that you do not need to create a
completely "new" product. The default quality will be transmitted. You
only give the color a new article number and a new price. All other
product statements will be accepted. Leave a field empty so the
default product quality field content will be accepted.
It makes a differene, if an article with different colors or sizes in
the product list or shopping cart can be selected. A color or size
normally will be chosen by way of a selection box. The quantity for
the first color/size will be indicated in the product list. The
products in all variables will be, however, individually listed. The
lists of products in the basket and in the payment page are,
therefore, nearly the same, but will be handled otherwise/differently.
You must deactivate selectSize and selectColor whenever you do not
want to have selection boxes in the product list.
.. _Weight-bulk-and-special-preparation:
Weight, bulk and special preparation
""""""""""""""""""""""""""""""""""""
Each product can have weight (kg) and bulkily (Yes/No). The total
weight is calculated and can be used in the price calculation for the
shipping costs.
If an item has been marked as 'bulkily' then a warning message will be
displays ('bulkilyWarning' in setup). By setting 'bulkilyAddition' in
setup you can add an additional shipping price for this bulkily
item.Special preparation does generally not have a function. Only a
marker (like with BulkilyWarning) will be written. You can set here a
link to the mail form page. **Example:**
::
specialPreparation = special preparation is possible!
Order here.
.. _Basic-stock-management:
Basic stock management
""""""""""""""""""""""
The field inStock can be used for a stock administration. If "in
stock" is at "0", the item will not be visible for the customers any
more.After each order the number of the ordered items will be erased
from "in stock".
If a new item gets created, its number will be set to '1' by default.
If you have set 'alwaysInStock=1' then this item will always be
available and visible. Otherwise the number of products will be
reducted with each order.
You can fill in the checkbox for each product to have it always in
stock.You can define the unit on the store by "inStockPieces" like
"pieces".
.. _Several-tax-rates:
Several tax rates
"""""""""""""""""
Each item can have its own tax. But you have to enter this separately
for each item.
.. _Deletion-of-the-basket:
Deletion of the basket
""""""""""""""""""""""
To enter a delete icon for a product you can enter the following into
the shop template:
::
.. _Configuration:
Configuration
-------------
.. _FAQ:
FAQ
^^^
If you do not use the Constant Editor to configure the extension,
please note the form of the constants assignments in the constants
section of your TS template:
::
plugin.tt_products {
property = value
}
.. _Files:
Files
^^^^^
.. ### BEGIN~OF~TABLE ###
.. _class-tx-ttproducts-php:
class.tx\_ttproducts.php
""""""""""""""""""""""""
.. container:: table-row
File
class.tx\_ttproducts.php
Description
Main class used to display the product list or the shopping basket.
Call it from a USER cObject with 'userFunc =
user\_products->main\_products'
.. _products-comp-calcScript-inc:
products\_comp\_calcScript.inc
""""""""""""""""""""""""""""""
.. container:: table-row
File
products\_comp\_calcScript.inc
Description
Example 'calculationScript'
.. _products-template-tmpl:
products\_template.tmpl
"""""""""""""""""""""""
.. container:: table-row
File
products\_template.tmpl
products\_template\_htmlmail.tmpl
Description
Example templates in English.
'..\_htmlmail.tmpl' is a HTML-wrap for the HTML-emails sent.
.. _products-template-dk-tmpl:
products\_template\_dk.tmpl
"""""""""""""""""""""""""""
.. container:: table-row
File
products\_template\_dk.tmpl
Description
Example template in Danish
.. _example-template-bill-de-tmpl:
example\_template\_bill\_de.tmpl
""""""""""""""""""""""""""""""""
.. container:: table-row
File
example\_template\_bill\_de.tmpl
Description
bananaguard.de template with examples for bill and delivery sheet in
German
.. _products-template-fi-tmpl:
products\_template\_fi.tmpl
"""""""""""""""""""""""""""
.. container:: table-row
File
products\_template\_fi.tmpl
Description
Example template in Finnish
.. _products-template-fr-tmpl:
products\_template\_fr.tmpl
"""""""""""""""""""""""""""
.. container:: table-row
File
products\_template\_fr.tmpl
Description
Example template in French
.. _products-template-se-tmpl:
products\_template\_se.tmpl
"""""""""""""""""""""""""""
.. container:: table-row
File
products\_template\_se.tmpl
Description
Example template in Swedish
.. _product-detail-tmplproduct-proefpakketten-tmplshop-a-box-tmplproduct:
product\_detail.tmplproduct\_proefpakketten.tmplshop-a-box.tmplproduct
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.. container:: table-row
File
product\_detail.tmplproduct\_proefpakketten.tmplshop-a-box.tmplproduct
en.tmpl
Description
Example templates for gift certificates, creditpoints and voucher
system in Dutch
.. _products-css-en-html:
products\_css\_en.html
""""""""""""""""""""""
.. container:: table-row
File
products\_css\_en.html
Description
CSS styled template. Use this if you need a barrier-free shop.
.. _payment-DIBS-php:
payment\_DIBS.php
"""""""""""""""""
.. container:: table-row
File
payment\_DIBS.php
Description
Script for interfacing with DIBS (Danish Internet Payment System) in
Denmark. You can reach them at http://www.architrade.com/uk/.
.. _payment-DIBS-template-tmpl:
payment\_DIBS\_template.tmpl
""""""""""""""""""""""""""""
.. container:: table-row
File
payment\_DIBS\_template.tmpl
Description
Template file for DIBS payment.
.. ###### END~OF~TABLE ######
[tsref:(cObject).TEST]
.. _Description:
Description
^^^^^^^^^^^
Built-in shopping basket and products display within TYPO3. Has a
clearing interface which lets you write your own implementation with
existing payment-gateways.
Currently there's an implementation with DIBS in Denmark, found at
`www.architrade.dk `_ .
.. _Reference:
Reference
^^^^^^^^^
.. ### BEGIN~OF~TABLE ###
.. _templateFile-Constants-file-templateFile:
templateFile *Constants:* file.templateFile
"""""""""""""""""""""""""""""""""""""""""""
.. container:: table-row
Property
templateFile *Constants:* file.templateFile
Data type
resource
Description
The template-file.
See example in 'tt\_products/template/products\_template.tmpl'
You can also specify a CODE.
(siehe display mode)
**Example:**
::
plugin.tt_products.templateFile = EXT:tt_products/template/example_template_bill_de.tmpl
plugin.tt_products.templateFile.LIST = EXT:tt_products/template/products_template_dk.tmpl
Default
.. _templateSuffix-Setup:
templateSuffix - *Setup*
"""""""""""""""""""""""""
.. container:: table-row
Property
templateSuffix - *Setup*
Data type
string
Description
This suffix is appended to all template's major subparts.
Default
.. _fe:
fe
""
.. container:: table-row
Property
fe
Data type
boolean
Description
If FE output is used. You can turn the FE output off. This is usefull
for a callback script (see CODE SCRIPT). No template file is needed in
this case.
Default
TRUE
.. _pid-list:
pid\_list
"""""""""
.. container:: table-row
Property
pid\_list
Data type
string /stdWrap
Description
The pids from where to fetch categories, products and so on. Default
is the current page. Accepts multiple pid's separated by comma.
Default
.. _defaultCode:
defaultCode
"""""""""""
.. container:: table-row
Property
defaultCode
Data type
string
Description
The default code (see below) if the value is empty. By default it's
not set and a help screen will appear. You should not set anything
here.
**Example:**
::
plugin.tt_products.defaultCode = HELP
Default
.. _code:
code
""""
.. container:: table-row
Property
code
Data type
string /stdWrap
Description
see chapter 'display mode'
Default
HELP
.. _defaultArticleID:
defaultArticleID
""""""""""""""""
.. container:: table-row
Property
defaultArticleID
Data type
int+
Description
The default article uid number for the single display is used when the
link to the script did not contain a 'tt\_products[article]'
parameter.
Default
.. _defaultProductID:
defaultProductID
""""""""""""""""
.. container:: table-row
Property
defaultProductID
Data type
int+
Description
The default product uid number for the single display is used when the
link to the script did not contain a 'tt\_products[product]'
parameter.
Set this default value when you get an error message like:“GET/POST
var 'tt\_products[product]' was missing.”
Default
.. _defaultCategoryID:
defaultCategoryID
"""""""""""""""""
.. container:: table-row
Property
defaultCategoryID
Data type
int+
Description
The default category uid number for the list display is used when the
link to the script did not contain a 'tt\_products[cat]' parameter.
Use this if you want only products of this category displayed in the
list view as a default.
Default
.. _defaultPageID:
defaultPageID
"""""""""""""
.. container:: table-row
Property
defaultPageID
Data type
int+
Description
The default category uid number for the list display is used when the
link to the script did not contain a 'tt\_products[pid]' parameter.
Use this if you use pages as categories and want only products of this
category displayed in the list view as a default.
Default
.. _defaultDAMCategoryID:
defaultDAMCategoryID
""""""""""""""""""""
.. container:: table-row
Property
defaultDAMCategoryID
Data type
int+
Description
See defaultCategoryID, but for DAM categories and the
'tt\_products[damcat]' parameter.
Default
.. _productDAMCategoryID:
productDAMCategoryID
""""""""""""""""""""
.. container:: table-row
Property
productDAMCategoryID
Data type
int+
Description
DAM category of products to be used in DAM lists.
Default
.. _rootAddressID:
rootAddressID
"""""""""""""
.. container:: table-row
Property
rootAddressID
Data type
int+
Description
The upper most address ID from where you want to start to list
addresses.
Default
.. _rootCategoryID:
rootCategoryID
""""""""""""""
.. container:: table-row
Property
rootCategoryID
Data type
int+
Description
The upper most category ID from where you want to start to list
categories.
Default
.. _rootDAMCategoryID:
rootDAMCategoryID
"""""""""""""""""
.. container:: table-row
Property
rootDAMCategoryID
Data type
int+
Description
The upper most DAM category ID from where you want to start to list
DAM categories.
Default
.. _rootPageID:
rootPageID
""""""""""
.. container:: table-row
Property
rootPageID
Data type
int+
Description
The upper most page ID from where you want to start to list them as
categories.
Default
.. _recursive:
recursive
"""""""""
.. container:: table-row
Property
recursive
Data type
int+
Description
Number of recursive sublevels of pids to select tt\_products from in
lists.
Default
99
.. _domain:
domain
""""""
.. container:: table-row
Property
domain
Data type
string
Description
The url of the shop. If not set, it will be detected automatically.
Will replace ###DOMAIN### markers.
Default
.. _altMainMarkers:
altMainMarkers
""""""""""""""
.. container:: table-row
Property
altMainMarkers
Data type
*(array of strings)*
Description
Lets you specify alternative subpart markers for the various main
template designs in the shopping basket system.
This is the list of main subparts you can override: **Properties:**
::
TRACKING_WRONG_NUMBER
TRACKING_ENTER_NUMBER
BASKET_REQUIRED_INFO_MISSING
BASKET_TEMP
ITEM_SINGLE_DISPLAY_RECORDINSERT
ITEM_SINGLE_DISPLAY
ITEM_SEARCH
ITEM_LIST_TEMPLATE
ITEM_LIST_GIFTS_TEMPLATE
ITEM_SEARCH_EMPTY
BASKET_TEMPLATE
BASKET_INFO_TEMPLATE
BASKET_PAYMENT_TEMPLATE
BASKET_ORDERCONFIRMATION_TEMPLATE
EMAIL_PLAINTEXT_TEMPLATE
BILL_TEMPLATE
DELIVERY_TEMPLATE
/+ stdWrap
**Example:**
::
altMainMarkers.BASKET_TEMPLATE = BASKET_DESIGN2
altMainMarkers.BASKET_TEMPLATE.wrap = ### | ###
This example changes the main subpart marker for the regular basket
display from the default ###BASKET\_TEMPLATE### to the custom supplied
design ###BASKET\_DESIGN2### (found in the same template HTML-file)
Default
.. _stdSearchFieldExt:
stdSearchFieldExt
"""""""""""""""""
.. container:: table-row
Property
stdSearchFieldExt
Data type
*list of fields*
Description
Search fields
Default internal list is title,subtitle,note. You can specify your
default fields here.
Default
.. _limit:
limit
"""""
.. container:: table-row
Property
limit
Data type
int+
Description
Max items displayed. The maximum number of items displayed on one
page.
Default
50
.. _limitImage:
limitImage
""""""""""
.. container:: table-row
Property
limitImage
Data type
int+
Description
Max image items displayed. The maximum number of images for one item
displayed on the list view.
**Deprecated.** See article/product configuration
Use this instead:
::
plugin.tt_products.conf.tt_products.ALL.limitImage = 1
Default
3
.. _limitImageSingle:
limitImageSingle
""""""""""""""""
.. container:: table-row
Property
limitImageSingle
Data type
int+
Description
The maximum number of images for one item displayed on the single
view.
**Deprecated.** See article/product configuration
Use this instead:
::
plugin.tt_products.conf.tt_products.SINGLE.limitImage = 1
Default
10
.. _usePageContentImage:
usePageContentImage
"""""""""""""""""""
.. container:: table-row
Property
usePageContentImage
Data type
boolean
Description
**Deprecated.** See article/product configuration
Use this instead:
::
plugin.tt_products.conf.tt_products.ALL.fetchImage {
type = foreigntable
table = tt_content
}
Default
.. _separateImage:
separateImage
"""""""""""""
.. container:: table-row
Property
separateImage
Data type
boolean
Description
Normally all images are displayed together. With separateImage=on you
can use a ###PRODUCT\_IMAGE3### for each image number (starting with
1) separatly.
Default
.. _image:
image
"""""
.. container:: table-row
Property
image
Data type
IMAGE cObject
Description
The image configuration in single display
Default
.. _listImage:
listImage
"""""""""
.. container:: table-row
Property
listImage
Data type
IMAGE cObject
Description
The image configuration in list display
::
listImage >
listImage {
altImgResource.import = uploads/media/
altImgResource.import.field = media
altImgResource.import.listNum = 0
altText.data = field:title
}
That way, attached images are not copied to and displayed from
*/typo3temp/* (which gives trouble with transparant backgrounds) but
directly linked from /uploads/pics/.
The line with altText leads to the drawing of an alternative text.
Default
.. _listImageHasChilds:
listImageHasChilds
""""""""""""""""""
.. container:: table-row
Property
listImageHasChilds
Data type
IMAGE cObject
Description
DAM only:
The image configuration in list display if there is a filter for a
category on the page and this category has childs.
::
listImage >
listImage {
altImgResource.import = uploads/media/
altImgResource.import.field = media
altImgResource.import.listNum = 0
altText.data = field:title
}
see listImage
Default
.. _basketImage:
basketImage
"""""""""""
.. container:: table-row
Property
basketImage
Data type
IMAGE cObject
Description
The image configuration in basket display
Default
.. _datasheetIcon:
datasheetIcon
"""""""""""""
.. container:: table-row
Property
datasheetIcon
Data type
IMAGE cObject
Description
The image icon for the datasheet. Replaces ###ICON\_DATASHEET###
Default
.. _basketPic:
basketPic
"""""""""
.. container:: table-row
Property
basketPic
Data type
string
Description
URL link to the basket image
Default
.. _clickIntoBasket:
clickIntoBasket
"""""""""""""""
.. container:: table-row
Property
clickIntoBasket
Data type
boolean
Description
If set you will be directed into the basket page after putting a
product into the basket. This only works if PIDbasket has been set.
Default
.. _clickIntoList:
clickIntoList
"""""""""""""
.. container:: table-row
Property
clickIntoList
Data type
boolean
Description
If set you will be directed into the list page from the single view
after putting a product into the basket. This only works if
PIDlistDisplay has been set.
Default
.. _clickIntoSubmenu:
clickIntoSubmenu
""""""""""""""""
.. container:: table-row
Property
clickIntoSubmenu
Data type
boolean
Description
**Deprecated.** See onlyChildsOfCurrent of the category configuration
If set, the submenues in the LISTCAT category list will only be listed
for the current category.
Default
.. _basketMaxQuantity:
basketMaxQuantity
"""""""""""""""""
.. container:: table-row
Property
basketMaxQuantity
Data type
int+ / string
Description
The maximum integer value for the quantity of an item in the
basket.'inStock': Only the number of items which are currently in
stock can be put into the basket.
'creditpoint': Items can only be put into the basket if the FE user
has enough credit points.
Default
100000
.. _quantityIsFloat:
quantityIsFloat
"""""""""""""""
.. container:: table-row
Property
quantityIsFloat
Data type
boolean
Description
If set the basket count can be a float value.
Default
.. _noImageAvailable:
noImageAvailable
""""""""""""""""
.. container:: table-row
Property
noImageAvailable
Data type
resource
Description
The image file displayed if no image was attached to a product. This
image is processed by the IMAGE cObject which is active in the actual
display of that image. That is, one of the above IMAGE cObjects.
Default
.. _displayListCatHeader:
displayListCatHeader
""""""""""""""""""""
.. container:: table-row
Property
displayListCatHeader
Data type
boolean
Description
Display **Category** Header in list
If this option is set, the category headers (page titles) will
automatically be displayed in the product lists. This is not always
convenient because you might have chosen a header-title for the "list"
content element.
Default
1
.. _displayBasketCatHeader:
displayBasketCatHeader
""""""""""""""""""""""
.. container:: table-row
Property
displayBasketCatHeader
Data type
boolean
Description
Display Category Header in basket.
If this option is set, the category headers (page titles) will
automatically be displayed in the basket lists.
Default
0
.. _displayCatListType:
displayCatListType
""""""""""""""""""
.. container:: table-row
Property
displayCatListType
Data type
string
Description
Define the HTML main tag for the display of the categories in the
category list view.
Use the new plugin 'Categories: menu' instead of the former
displayCatListType=ul.
Default
ul
.. _substitutePagetitle:
substitutePagetitle
"""""""""""""""""""
.. container:: table-row
Property
substitutePagetitle
Data type
Int+
Description
Set the page title in single view
1 … product title
2 … product subtitle
12 … product title and subtitle
21 … product subtitle and title
3 … bread crumb
Default
.. _displayBasketColumns:
displayBasketColumns
""""""""""""""""""""
.. container:: table-row
Property
displayBasketColumns
Data type
int+
Description
**Deprecated.** see table configuration: displayColumns
Number of columns for the LIST, SEARCH listing of items in a table.
You have to adapt your template using special template markers. The
ITEM\_SINGLE\_PRE\_HTML and ITEM\_SINGLE\_POST\_HTML must surround
your
-
tags, so the table will be created correctly.
**Example:**
::
###ITEM_SINGLE_PRE_HTML###
###ITEM_SINGLE_POST_HTML###
Default
.. _CSS:
CSS
"""
.. container:: table-row
Property
CSS
Data type
*see below*
Description
Cascading Stylesheets settings
Default
.. _conf:
conf
""""
.. container:: table-row
Property
conf
Data type
*see below*
Description
configurations of the tables
Default
.. _NoSingleViewOnList:
NoSingleViewOnList
""""""""""""""""""
.. container:: table-row
Property
NoSingleViewOnList
Data type
boolean
Description
Usually you get the link to the single item view on the display page
of the LIST code. If you however want to create your own pages for
single view with SINGLE code you must set this to 1.
Default
.. _itemMarkerArrayFunc:
itemMarkerArrayFunc
"""""""""""""""""""
.. container:: table-row
Property
itemMarkerArrayFunc
Data type
function-name
Description
Every time a product is displayed be it in the basket, list or single
view, the method getItemMarkerArray() in tx\_ttproducts\_marker is
called. This function fills in and returns an array, so called
markerArray(), with key/values for template substitution.
If you enter a valid function name here (see datatype 'function-name'
for details!) that array will be passed to that function as the second
parameter. The first parameter will be the TypoScript properties to
itemMarkerArrayFunc.
**Parent PHP-Object reference:**
.parentObj property is :underline:`hardcoded` to be a reference to the
calling user\_products object (PHP).
**Example:**
(provided that a function or class is included!)
::
itemMarkerArrayFunc = user_addFieldsMarkerArr
itemMarkerArrayFunc.simpleOption = 1
Default
.. _PIDitemDisplay:
PIDitemDisplay
""""""""""""""
.. container:: table-row
Property
PIDitemDisplay
Data type
int+/ *Array of integers*
Description
PID for single item display.
If you want a certain page to be used for display of item details,
please enter the PID (page-uid) here. If you set the type to sql, you
can use conditions using several lines. The where string can contain
the AND condition. The pid for the first fulfilled condition will be
returned.
::
PIDitemDisplay {
10.type = sql
10.where = color=red
10.pid = 142
20.type = sql
20.where = color=white
20.pid = 143
}
If you set the type to pid then the pid of the record will be used.
::
PIDitemDisplay {
10.type = pid
}
Default
.. _PIDlistDisplay:
PIDlistDisplay
""""""""""""""
.. container:: table-row
Property
PIDlistDisplay
Data type
int+/ *Array of integers*
Description
PID for the item list display
Similar to PIDitemDisplay, however the category table is used here.
Default
.. _PIDsearch:
PIDsearch
"""""""""
.. container:: table-row
Property
PIDsearch
Data type
int+
Description
PID for search page.
If you want all product searches to go to a specific page, enter the
PID it here! NOTE: If you set this PID, all searchqueries will (must)
be handled with a list content element with the display mode
"Products: search" on that page.
Default
.. _PIDbasket:
PIDbasket
"""""""""
.. container:: table-row
Property
PIDbasket
Data type
int+
Description
PID for the basket page.
If you want ever change the number of items anywhere to go to a
specific page (eg. the shopping basket page), enter the PID here.
Default
.. _PIDstoreRoot:
PIDstoreRoot
""""""""""""
.. container:: table-row
Property
PIDstoreRoot
Data type
int+
Description
PID for store root.
This is the PID of the rootPage of the store. If not set the store
will operate over all pages from the root of the site. But if the site
has many pages, performance may improve.
You should better set pid\_list instead of it.
Default
.. _PID-sys-products-orders:
PID\_sys\_products\_orders
""""""""""""""""""""""""""
.. container:: table-row
Property
PID\_sys\_products\_orders
Data type
int+
Description
PID for the sys\_products\_orders records. By default they will get
the pid of the payment (finalize) page.
Default
.. _PIDGiftsTable:
PIDGiftsTable
"""""""""""""
.. container:: table-row
Property
PIDGiftsTable
Data type
int+
Description
PID for the tt\_products\_gifts table. The gift orders are stored
here.
Default
.. _PIDinfo:
PIDinfo
"""""""
.. container:: table-row
Property
PIDinfo
Data type
int+
Description
PID for the info page where name and address is entered.
Default
.. _PIDpayment:
PIDpayment
""""""""""
.. container:: table-row
Property
PIDpayment
Data type
int+
Description
PID for the payment page where name where the address is checked and
the order is confirmed by the customer. You could change to a payment
gateway from here.
Default
.. _PIDfinalize:
PIDfinalize
"""""""""""
.. container:: table-row
Property
PIDfinalize
Data type
int+
Description
PID for the finalization page afther the user has confirmed the order
data. The order will get stored here.
Default
.. _PIDthanks:
PIDthanks
"""""""""
.. container:: table-row
Property
PIDthanks
Data type
int+
Description
PID for the thanks page. BASKET\_ORDERTHANKS\_TEMPLATE will be used.
You must not set PIDfinalize if you use this.
Default
.. _PIDtracking:
PIDtracking
"""""""""""
.. container:: table-row
Property
PIDtracking
Data type
int+
Description
PID for the order tracking
Default
.. _PIDbilling:
PIDbilling
""""""""""
.. container:: table-row
Property
PIDbilling
Data type
int+
Description
PID for the generation of the bill
Default
.. _PIDdelivery:
PIDdelivery
"""""""""""
.. container:: table-row
Property
PIDdelivery
Data type
int+
Description
PID for the generation of the delivery sheet
Default
.. _PIDmemo:
PIDmemo
"""""""
.. container:: table-row
Property
PIDmemo
Data type
int+
Description
The ID of the memo page
Default
.. _PIDagb:
PIDagb
""""""
.. container:: table-row
Property
PIDagb
Data type
int+
Description
The PID of a page with the general trading conditions (“AGB” in
germany)
Only if this page id is set the AGB check will be active.
Default
0
.. _PIDuserFolder:
PIDuserFolder
"""""""""""""
.. container:: table-row
Property
PIDuserFolder
Data type
int+
Description
The sysfolder, where the new users should be stored
Default
116
.. _pidsRelatedProducts:
pidsRelatedProducts
"""""""""""""""""""
.. container:: table-row
Property
pidsRelatedProducts
Data type
int+
Description
Allowed pages for related products.
Default
.. _pidsAddresses:
pidsAddresses
"""""""""""""
.. container:: table-row
Property
pidsAddresses
Data type
int+
Description
Allowed pages for addresses
Default
.. _UIDstore:
UIDstore
""""""""
.. container:: table-row
Property
UIDstore
Data type
int+
Description
comma separated list of UIDs of the tx\_party\_addresses table (or
fe\_users) with the data of the shop.
Default
.. _paymentActivity:
paymentActivity
"""""""""""""""
.. container:: table-row
Property
paymentActivity
Data type
string
Description
When the payment with a payment script shall be executed.Possible
values: payment, finalize, verify
Default
finalize
.. _advanceOrderNumberWithInteger:
advanceOrderNumberWithInteger
"""""""""""""""""""""""""""""
.. container:: table-row
Property
advanceOrderNumberWithInteger
Data type
int+
Description
If this value is set, then each time a new order is created the order-
number counter will be incremented with a random number between
[first-integer] and [second integer] to cheat a little.
**Example:**
::
1,10 (This will increment the counter randomly between 1 and 10)
5,5 (This will increment the counter with 5 each time)
Default
.. _alwaysAdvanceOrderNumber:
alwaysAdvanceOrderNumber
""""""""""""""""""""""""
.. container:: table-row
Property
alwaysAdvanceOrderNumber
Data type
boolean
Description
If set then the order number will always get increased and the empty
order numbers are not reused. You have to set this if you use a
payment script to pay via a payment system which does not accept
duplicate order numbers.
Default
.. _alwaysUpdateOrderAmount:
alwaysUpdateOrderAmount
"""""""""""""""""""""""
.. container:: table-row
Property
alwaysUpdateOrderAmount
Data type
boolean
Description
If set then the entered order amount will always be updated and not
increased by the entered number.
Default
1
.. _parseFunc:
parseFunc
"""""""""
.. container:: table-row
Property
parseFunc
Data type
->parseFunc
not used with
'CSS styled content'
Description
If the extension 'CSS styled content' has been installed, you have to
make your settings in lib.parseFunc\_RTE and not here.
The product details are parsed by these properties. So if e.g. you
want ot allow HTML-tags to create a table in the Note field you have
to set the parseFunc.allowTags or use the denyTags.To make RTE working
with HTML you have to set the following into the root page template.
**Example:**
::
keepNonMatchedTags = 1
RTE.default.proc.preserveTables = 1
**Example:**
::
parseFunc.allowTags = table,tr,td,b,i,u,a,img,br,div,center,pre,font,hr,sub,sup,p,strong,em,li,ul,ol,blockquote,strike,span,h1,h2,h3,h4,h5,h6
parseFunc.denyTags = *
Default
styles.content.parseFunc
.. _categoryHeader:
categoryHeader
""""""""""""""
.. container:: table-row
Property
categoryHeader
Data type
cObject
Description
Generates the category header.
**Example:**
::
categoryHeader = TEXT
categoryHeader.current = 1
Default
.. _breadcrumb:
breadcrumb
""""""""""
.. container:: table-row
Property
breadcrumb
Data type
cObject
Description
Generates a breadcrumb line.
**Example:**
::
breadcrumb =
Default
.. _TAXpercentage:
TAXpercentage
"""""""""""""
.. container:: table-row
Property
TAXpercentage
Data type
double
Description
Sales TAX/VAT percentage.
Double value (!) (means, "use . as decimal point")
**Example:**
::
# Danish sales TAX is 25%:
TAXpercentage = 25.00
Default
.. _TAXincluded:
TAXincluded
"""""""""""
.. container:: table-row
Property
TAXincluded
Data type
boolean
Description
Set this, if TAX *is* included in the database prices! ( ... and of
course: Clear this, if TAX *is not* included in the database prices
and should be added in the display of items)
All profieldLinkcessing will take this flag into account and calculate
prices accordingly.
Default
1
.. _TAXrates:
TAXrates
""""""""
.. container:: table-row
Property
TAXrates
Data type
string
Description
Comma separated list of tax rates. The first will be taken as tax A,
the second as tax B aso.
Default
.. _TAXmode:
TAXmode
"""""""
.. container:: table-row
Property
TAXmode
Data type
int+
Description
tax mode
1: The net sums are added first. The tax is added on the final total
net sum.
2: The gross price is calculated for every product. The total sum is
calculated on the single gross prices.
Default
1
.. _priceDec:
priceDec
""""""""
.. container:: table-row
Property
priceDec
Data type
int+
Description
Price decimals
Default
.. _priceDecPoint:
priceDecPoint
"""""""""""""
.. container:: table-row
Property
priceDecPoint
Data type
string
Description
Price decimal point
Default
.. _priceThousandPoint:
priceThousandPoint
""""""""""""""""""
.. container:: table-row
Property
priceThousandPoint
Data type
string
Description
Price Thousand point
Enter the thousand separator, if any.
Default
.. _noZeroDecimalPoint:
noZeroDecimalPoint
""""""""""""""""""
.. container:: table-row
Property
noZeroDecimalPoint
Data type
boolean
Description
If set then no decimal point is shown for integers.
Default
.. _priceNoReseller:
priceNoReseller
"""""""""""""""
.. container:: table-row
Property
priceNoReseller
Data type
int+ *S*
Description
Price number for reseller, which can only be 2 at the moment. The
price2 will however only be taken when its value is greater than 0.
Here is the way to get the price2 for a special user group:
**Example:**
::
[usergroup = 1]
priceNoReseller = 2
[global]
...
Default
.. _percentDec:
percentDec
""""""""""
.. container:: table-row
Property
percentDec
Data type
int+
Description
Number of shown decimals of percentage values
Default
.. _currencySymbol:
currencySymbol
""""""""""""""
.. container:: table-row
Property
currencySymbol
Data type
string
Description
Currency symbol. Used in shop administration.
**Example:**
::
EUR
DKR
USD
$
Default
.. _lockLoginUserInfo:
lockLoginUserInfo
"""""""""""""""""
.. container:: table-row
Property
lockLoginUserInfo
Data type
boolean
Description
If set and a user is logged in, the address info of that fe\_user gets
filled in as billing address of the user. It is not possible to change
this data.
Default
.. _editLockedLoginInfo:
editLockedLoginInfo
"""""""""""""""""""
.. container:: table-row
Property
editLockedLoginInfo
Data type
boolean
Description
If set and lockLoginUserInfo is set, then the filled in data is still
editable for the order. You have to set the input HTML tags for this.
Default
.. _loginUserInfoAddress:
loginUserInfoAddress
""""""""""""""""""""
.. container:: table-row
Property
loginUserInfoAddress
Data type
boolean
Description
If lockLoginUserInfo is set, this switch makes that the address field
is filled in from address, country, zip and city of the fe\_user
Default
.. _requiredInfoFields:
requiredInfoFields
""""""""""""""""""
.. container:: table-row
Property
requiredInfoFields
*setup*
Data type
*list or array of string*
Description
List of the fields which are re‑quired in the address information This
example gives you all possibilities.
**Example:**
::
requiredInfoFields = name,address,telephone,fax,email,company,city,zip,state,country
The subvalues 'billing' and 'delivery' are possible.
**Example:**
::
requiredInfoFields.delivery = name,address
Default
.. _orderBy:
orderBy
"""""""
.. container:: table-row
Property
orderBy
Data type
string
Description
**Deprecated.** See Article/Product configuration
Use this instead:
::
plugin.tt_products.conf.tt_products.ALL.orderBy = title
Default
.. _orderByCategoryTitle:
orderByCategoryTitle
""""""""""""""""""""
.. container:: table-row
Property
orderByCategoryTitle
Data type
boolean
Description
**Deprecated.** Use this instead:
::
plugin.tt_products.conf.tt_products_cat.ALL.orderBy = title
Default
.. _orderByItemNumberSg:
orderByItemNumberSg
"""""""""""""""""""
.. container:: table-row
Property
orderByItemNumberSg
Data type
boolean
Description
**Deprecated.** Use this instead:
::
plugin.tt_products.conf.tt_products.SINGLE.orderBy = itemnumber
Default
.. _orderNumberPrefix:
orderNumberPrefix
"""""""""""""""""
.. container:: table-row
Property
orderNumberPrefix
Data type
string
Description
Prefix to the order numbers. Max 10 chars. If this string starts with
'%' then the rest will be interpreted as a PHP date format.
Default
.. _orderEmail:
orderEmail
""""""""""
.. container:: table-row
Property
orderEmail
Data type
*array*
Description
This defines additional confirmation emails containing suffixes,
sender and receiver email addresses.
from ... 'shop' will fetch orderEmail\_from, 'customer' will fetch the
customer email address.
to ... email of the receiver
suffix ... suffix to the '###EMAIL\_PLAINTEXT\_TEMPLATE\_###' subpart.
returnPath ... email address to use in the case of a failure to send
the email
**Example** :
::
plugin.tt_products.orderEmail {
10.suffix = factory
10.from = shop
10.to = seller1@webshop-typo3.com
10.attachment = bill
20.suffix = logistic
20.from = customer
20.to = seller2@webshop-typo3.com
20.attachment = bill
}
It is possible to send confirmation emails to the email address stored
in a foreign table and where a foreign key has been added to the table
fe\_users.
**Example** :
::
plugin.tt_products.orderEmail {
10000.suffix = shop
10000.from = customer
10000.to {
table = fe_users
field = key_field
foreign_table = my_table
foreign_field = my_table_key_field
foreign_email_field = my_table_email
}
}
A SQL comparison will be made to fetch the email address:
::
SELECT my_table_key_field FROM my_table WHERE my_table_key_field = $content_of_fe_users_key_field;
Default
.. _orderEmail-bcc:
orderEmail\_bcc
"""""""""""""""
.. container:: table-row
Property
orderEmail\_bcc
Data type
string
Description
BCC for the shop admin's order confirmation
Default
.. _orderEmail-from:
orderEmail\_from
""""""""""""""""
.. container:: table-row
Property
orderEmail\_from
Data type
string
Description
From email address for the confirmation email to customer
Default
.. _orderEmail-fromName:
orderEmail\_fromName
""""""""""""""""""""
.. container:: table-row
Property
orderEmail\_fromName
Data type
string
Description
From name for the confirmation email to customer.
Default
.. _orderEmail-to:
orderEmail\_to
""""""""""""""
.. container:: table-row
Property
orderEmail\_to
Data type
*list of email-addresses*
Description
Comma separated list of recipients of the order email. Shop and
administrator/supervisor email addresses go here!
Default
.. _orderEmail-toAddress:
orderEmail\_toAddress
"""""""""""""""""""""
.. container:: table-row
Property
orderEmail\_toAddress
Data type
boolean
Description
If set, then the order email is sent to all addresses which are
connected to the products in the basket.
Default
.. _orderEmail-radio:
orderEmail\_radio
"""""""""""""""""
.. container:: table-row
Property
orderEmail\_radio
Data type
*array of radio button number and email adresses*
Description
Comma separated list of recipients of the order email if a radio box
has been selected. The number is the radio box and the second number
is the selected value.
**Example:**
::
orderEmail_radio {
1.2 = inform@mytypo3site.de
}
Default
.. _orderEmail-toDelivery:
orderEmail\_toDelivery
""""""""""""""""""""""
.. container:: table-row
Property
orderEmail\_toDelivery
Data type
boolean
Description
If set, the email notification will be sent to the delivery email
address and not to the billing email address.
Default
.. _orderEmail-subject:
orderEmail\_subject
"""""""""""""""""""
.. container:: table-row
Property
orderEmail\_subject
Data type
string
Description
Contents of the subject line if the first line in
###EMAIL\_PLAINTEXT\_TEMPLATE### is empty.
Default
.. _orderEmail-returnPath:
orderEmail\_returnPath
""""""""""""""""""""""
.. container:: table-row
Property
orderEmail\_returnPath
Data type
string
Description
Fills the 'Return-Path' of the email header. If the email of the
recipient is invalid then the message will be sent to this address.
Default
.. _orderEmail-htmlmail:
orderEmail\_htmlmail
""""""""""""""""""""
.. container:: table-row
Property
orderEmail\_htmlmail
Data type
boolean / string
Description
If set, the order confirmation email is sent as HTMLIf
orderEmail\_htmlmail.removeImagesWithPrefix is set, then the images
and their HTML tags will not be sent in an email.
Default
.. _orderEmail-apostrophe:
orderEmail\_apostrophe
""""""""""""""""""""""
.. container:: table-row
Property
orderEmail\_apostrophe
Data type
string
Description
Use these characters as apostrophe in the order email subject.
Default
.. _orderEmail-order2:
orderEmail\_order2
""""""""""""""""""
.. container:: table-row
Property
orderEmail\_order2
Data type
boolean
Description
If set, the shop admin receives 2 email order confirmations. The same
email like the customer with EMAIL\_PLAINTEXT\_TEMPLATE and also the
one only for shop admins EMAIL\_PLAINTEXT\_TEMPLATE\_SHOP if
available.
Default
.. _email-notify-default:
email\_notify\_default
""""""""""""""""""""""
.. container:: table-row
Property
email\_notify\_default
Data type
boolean
Description
If email-notification to the delivery email address of the customer is
enabled by default for tracking (he can change it himself in the
tracking module later)
Default
.. _statusCodes:
statusCodes
"""""""""""
.. container:: table-row
Property
statusCodes
Data type
*Array of integers*
Description
Status codes used in the tracking module.
Numbers above 100 removes the order from the tracklist.
Number zero is the status of a non-finalized order (and non-finalized
orders in the database may by time be regarded as garbage...)
Numbers of 50-59 is available for the customer to choose from.
Number 1 is reserved to be selected when an order goes from zero to 1
because it's confirmed. Number 1 cannot be selected by shop
admin.These will be written into ###STATUS\_OPTIONS### markers.
**Example:**
::
statusCodes {
1 = Order submitted by user
2 = Order is received and accepted by store
10 = Shop is awaiting goods from third-party
11 = Shop is awaiting customer payment
12 = Shop is awaiting material from customer
13 = Order has been payed
20 = Goods shipped to customer
21 = Gift certificates shipped to customer
30 = Other message from store
50 = Customer request for cancelling
51 = Message from customer to shop
60 = Send gift certificate message to receiver
100 = Order shipped and closed
101 = Order closed
200 = Order cancelled
}
Default
.. _update-code:
update\_code
""""""""""""
.. container:: table-row
Property
update\_code
Data type
string
Description
The 'password' used by the administrator of the shop to go into the
tracking system in the front end.
The password form field will appear if a BE\_USER is logged in, but
this password is still needed.
Default
password
.. _statusDate-stdWrap:
statusDate\_stdWrap
"""""""""""""""""""
.. container:: table-row
Property
statusDate\_stdWrap
Data type
->stdWrap
Description
stdWrap for status date
**Example:**
::
statusDate_stdWrap.strftime = %d-%m-%Y %H:%M
Default
.. _orderDate-stdWrap:
orderDate\_stdWrap
""""""""""""""""""
.. container:: table-row
Property
orderDate\_stdWrap
Data type
->stdWrap
Description
stdWrap for the order date
**Example:**
::
orderDate_stdWrap.strftime = %d-%m-%Y
Default
.. _usebyDate-stdWrap:
usebyDate\_stdWrap
""""""""""""""""""
.. container:: table-row
Property
usebyDate\_stdWrap
Data type
->stdWrap
Description
stdWrap for the useby date
Default
.. _cardEndDate-stdWrap:
cardEndDate\_stdWrap
""""""""""""""""""""
.. container:: table-row
Property
cardEndDate\_stdWrap
Data type
->stdWrap
Description
stdWrap for credit card end time date
Default
.. _displayCurrentRecord:
displayCurrentRecord
""""""""""""""""""""
.. container:: table-row
Property
displayCurrentRecord
Data type
boolean
Description
If set, certain settings are manipulated in order to let the script
render a single item - the $cObj->data.
If this setting is set, the subpart marked
###ITEM\_SINGLE\_DISPLAY\_RECORDINSERT### will be used instead of the
regular subpart ###ITEM\_SINGLE\_DISPLAY### if it is found.
Default
.. _externalProcessing:
externalProcessing
""""""""""""""""""
.. container:: table-row
Property
externalProcessing
Data type
cObject
Description
This cObject may be used to call a function which manipulates the
shopping basket. This manipulation could be based on settings in an
external order system. The output is included in the top of the order
(HTML) on the basket-page.
This cObject is executed each time the main\_products method of the
user\_products class in productsLib is called and it's executed before
any of the main processing. See the class for details.
Default
.. _externalProcessing-final:
externalProcessing\_final
"""""""""""""""""""""""""
.. container:: table-row
Property
externalProcessing\_final
Data type
cObject
Description
cObject for the final order confirmation template
Default
.. _externalFinalizing:
externalFinalizing
""""""""""""""""""
.. container:: table-row
Property
externalFinalizing
Data type
cObject
Description
This cObject may be used to call a function which clears settings in
an external order system. This is a sister to the above function and
they should probably be used in conjunction somehow. This function is
called immediately after the finalize-function has been called.
For instance this function would be suitable for clearing any external
basket facilitated by the .externalProcessing cObject
**Note:** The output is NOT included anywhere.
Default
.. _wrap1:
wrap1
"""""
.. container:: table-row
Property
wrap1
Data type
-> stdWrap
Description
Global Wrap 1. This will be splitted into the markers ###GW1B### and
###GW1E###. Don't change the input value by the settings, only wrap it
in something.
**Example:**
::
wrap1.wrap = |
Default
.. _wrap2:
wrap2
"""""
.. container:: table-row
Property
wrap2
Data type
-> stdWrap
Description
Global Wrap 2 (see above) markers ###GW2B### and ###GW2E###
Default
.. _wrapInBaseClass:
wrapInBaseClass
"""""""""""""""
.. container:: table-row
Property
wrapInBaseClass
Data type
boolean
*S*
Description
If true the output will be wrapped with
\|
Default
1
.. _wrapInCode:
wrapInCode
""""""""""
.. container:: table-row
Property
wrapInCode
Data type
boolean
*S*
Description
If set, then the output will be wrapped by
::
|
. 'code' will be replaced by the code of the plugin. uid will be
replaced by the field 'uid' of the table tt\_products.
Default
1
.. _selectColor:
selectColor
"""""""""""
.. container:: table-row
Property
selectColor
Data type
boolean
Description
If true the color of a product is selectable in a select box.
Default
1
.. _selectColor2:
selectColor2
""""""""""""
.. container:: table-row
Property
selectColor2
Data type
boolean
Description
If true the 2 :sup:`nd` color of a product is selectable in a select
box.
Default
1
.. _selectColor3:
selectColor3
""""""""""""
.. container:: table-row
Property
selectColor3
Data type
boolean
Description
If true the 3 :sup:`rd` color of a product is selectable in a select
box.
Default
1
.. _selectSize:
selectSize
""""""""""
.. container:: table-row
Property
selectSize
Data type
boolean
Description
If true the size of a product is selectable in a select box.
Default
1
.. _selectSize2:
selectSize2
"""""""""""
.. container:: table-row
Property
selectSize2
Data type
boolean
Description
If true the 2 :sup:`nd` size of a product is selectable in a select
box.
Default
1
.. _selectSize3:
selectSize3
"""""""""""
.. container:: table-row
Property
selectSize3
Data type
boolean
Description
If true the 3 :sup:`rd` size of a product is selectable in a select
box.
Default
1
.. _selectDescription:
selectDescription
"""""""""""""""""
.. container:: table-row
Property
selectDescription
Data type
boolean
Description
If true the description of a product is selectable in a select box.
Default
1
.. _selectGradings:
selectGradings
""""""""""""""
.. container:: table-row
Property
selectGradings
Data type
boolean
Description
If true the gradings of a product are selectable in a select box.
Default
1
.. _selectMaterial:
selectMaterial
""""""""""""""
.. container:: table-row
Property
selectMaterial
Data type
boolean
Description
If true the material of a product are selectable in a select box.
Default
1
.. _selectQuality:
selectQuality
"""""""""""""
.. container:: table-row
Property
selectQuality
Data type
boolean
Description
If true the quality of a product are selectable in a select box.
Default
1
.. _color1:
color1
""""""
.. container:: table-row
Property
color1
Data type
string /stdWrap
Description
Value for ###GC1### marker (Global color 1)
Default
.. _color2:
color2
""""""
.. container:: table-row
Property
color2
Data type
string /stdWrap
Description
Value for ###GC2### marker (Global color 2)
Default
.. _color3:
color3
""""""
.. container:: table-row
Property
color3
Data type
string /stdWrap
Description
Value for ###GC3### marker (Global color 3)
Default
.. _nl2brNote:
nl2brNote
"""""""""
.. container:: table-row
Property
nl2brNote
Data type
boolean
Description
If true the line feeds in the note field are replaced by .
Default
1
.. _useArticles:
useArticles
"""""""""""
.. container:: table-row
Property
useArticles
Data type
integer
Description
- 0: If you do not want to use the articles table then this must remain
0.
- 1: If you want to use products in different variants and have special
prices for them in the articles table, then you have to set this to 1.
All variants must be entered for the products and the articles. The
article of a product is chosen if it contains all the selected
variants. The instock of the articles table will be used instead of
the products table. Articles are sold together with their related
product.
- 2: No variants are used. No product is assigned to an article. The
articles are sold without products.
- 3: The variants of the product need not be entered but are taken from
the articles assigned to a product. No product is assigned to an
article, but many articles are assigned to a product with the
possibility of additional prices. Each article can have a part of the
variants. If more than one article is added and can be part of the
variants, then the additional prices are added and the text fields are
chained.
Default
.. _priceTagObj:
priceTagObj
"""""""""""
.. container:: table-row
Property
priceTagObj
Data type
IMAGE cObject
Description
Image for the display of the price
Default
.. _usePriceTag:
usePriceTag
"""""""""""
.. container:: table-row
Property
usePriceTag
Data type
boolean
Description
If true, the priceTagObj will be used. If false, the text will be
displayed.
Default
0
.. _useStaticInfoCountry:
useStaticInfoCountry
""""""""""""""""""""
.. container:: table-row
Property
useStaticInfoCountry
Data type
boolean
Description
If true the short fe\_users static\_info\_country field will be used
for country instead of the country field.
Default
0
.. _useStaticTaxes:
useStaticTaxes
""""""""""""""
.. container:: table-row
Property
useStaticTaxes
Data type
boolean
Description
If true, the tax will be determined from the country and region by the
extension static\_info\_tables\_taxes. UIDstore must be set.
Default
0
.. _whereGift:
whereGift
"""""""""
.. container:: table-row
Property
whereGift
Data type
string
Description
This SQL where clause defines which products will be treated as gifts.
Default
.. _whereGiftService:
whereGiftService
""""""""""""""""
.. container:: table-row
Property
whereGiftService
Data type
string
Description
This SQL where clause defines which products will be treated as gift
services.
Default
.. _max-note-length:
max\_note\_length
"""""""""""""""""
.. container:: table-row
Property
max\_note\_length
Data type
int+
Description
**Deprecated.** See Article/Product configuration
Use this instead:
::
plugin.tt_products.conf.tt_products.LIST {
field {
note = TEXT
note.postUserFunc = tx_pmkhtmlcrop->htmlCrop
note.postUserFunc.htmlCrop = 9 | ... More
}
}
formerly:
In the list view: The item note will be cut after max\_note\_length
characters, and three dots are added...
This can be dangerous if you use html in your product notes, because a
tag could stay open and the following items look ugly
Default
10000
.. _specialPreparation:
specialPreparation
""""""""""""""""""
.. container:: table-row
Property
specialPreparation
Data type
string
Description
This text will substitute your ###PRODUCT\_SPECIAL\_PREP### markers.
Default
.. _createUsers:
createUsers
"""""""""""
.. container:: table-row
Property
createUsers
Data type
Boolean
Description
If you set this and PIDuserFolder, for each customer that is not
logged in and his email address is not listed as user already, a new
frontend user will be created.
An email with the username (his e-mail address) and the password will
be sent to him (see ###EMAIL\_NEWUSER\_TEMPLATE###)
Default
0
.. _useMd5Password:
useMd5Password
""""""""""""""
.. container:: table-row
Property
useMd5Password
Data type
boolean
Description
Enable md5 password encryption.
Note: If set, passwords will be encrypted. Consider to install an
extension like kb\_md5fepw and the newloginbox.
Default
0
.. _outputFolder:
outputFolder
""""""""""""
.. container:: table-row
Property
outputFolder
Data type
string
Description
Folder where the bill and delivery sheets are created.
Default
fileadmin/data
.. _memberOfGroup:
memberOfGroup
"""""""""""""
.. container:: table-row
Property
memberOfGroup
Data type
int+
Description
The ID of the frontend user group, the new users should be member of
Default
1
.. _discountGroupName:
discountGroupName
"""""""""""""""""
.. container:: table-row
Property
discountGroupName
Data type
string
Description
Name of the group for discount pricecalculation
Default
.. _getDiscountPrice:
getDiscountPrice
""""""""""""""""
.. container:: table-row
Property
getDiscountPrice
Data type
boolean
Description
If set the discount price will be used even for normal customers
without having a frontend user in the discount group.
Default
.. _discountFieldMode:
discountFieldMode
"""""""""""""""""
.. container:: table-row
Property
discountFieldMode
Data type
integer
Description
If set the discount field in the product and category table will be
used to get a reducted price for a product.Modes:
1 ... the highest discount from product and categories will be used
2 ... use the product discount if set, otherwise use the highest
hierarchical category discount which is set.
Default
.. _AGBtarget:
AGBtarget
"""""""""
.. container:: table-row
Property
AGBtarget
Data type
Small
Description
The target for the PIDagb link
Default
\_blank
.. _AGBattachment:
AGBattachment
"""""""""""""
.. container:: table-row
Property
AGBattachment
Data type
Resource
Description
If this file exists, it will be attached to the order confirmation
email to the customer. The shop administrator won't receive the agb
attachment, but the CSV if you enable it
Default
fileadmin/agb.pdf
.. _GiftAttachment:
GiftAttachment
""""""""""""""
.. container:: table-row
Property
GiftAttachment
Data type
Resource
Description
If this file exists, it will be attached to the order gift email to
the customer.
Default
.. _generateCSV:
generateCSV
"""""""""""
.. container:: table-row
Property
generateCSV
Data type
boolean
Description
Generates a CSV from each order. This file will be saved on the server
and sent to the shop administrator per email (with the order
confirmation)
Default
0
.. _CSVdestination:
CSVdestination
""""""""""""""
.. container:: table-row
Property
CSVdestination
Data type
../csvorders/
Description
The directory on the server, where the CSV files should be saved. This
directory should not be accessible over http, because everyone can
read your customers and their orders.
So don't put this directory unter fileadmin, or rename it to something
cryptical at least.
Default
../csvorders/
.. _CSVfields:
CSVfields
"""""""""
.. container:: table-row
Property
CSVfields
Data type
string
Description
Select which product data should be added to the CSV. By default these
are all important fields except the note
Default
(Long, long list)
.. _CSVinOneLine:
CSVinOneLine
""""""""""""
.. container:: table-row
Property
CSVinOneLine
Data type
boolean
Description
If you set this to 1, all additional information (shipping, payment,
address data, delivery note) will be appended to the first ordered
item. This is good if you want to import this files somewhere.
If you leave this at 0, the file will be formatted for best view in
programs like Excel.
Default
0
.. _CSVnotInEmail:
CSVnotInEmail
"""""""""""""
.. container:: table-row
Property
CSVnotInEmail
Data type
boolean
Description
If set no csv file will be appended to the email.
Default
.. _alwaysInStock:
alwaysInStock
"""""""""""""
.. container:: table-row
Property
alwaysInStock
Data type
boolean
Description
If set the stock will not get reduced if something has been bought.
Default
1
.. _showNotinStock:
showNotinStock
""""""""""""""
.. container:: table-row
Property
showNotinStock
Data type
boolean
Description
If set the items will be shown even if no product is in the stock.
Default
.. _notInStockMessage:
notInStockMessage
"""""""""""""""""
.. container:: table-row
Property
notInStockMessage
Data type
string
Description
See above. This will be shown if no items are in stock and
showNotinStock is set.
Default
Not in stock
.. _warningInStockLimit:
warningInStockLimit
"""""""""""""""""""
.. container:: table-row
Property
warningInStockLimit
Data type
int+
Description
Amount of items in stock at which when reached a warning message is
sent.
Default
.. _inStockPieces:
inStockPieces
"""""""""""""
.. container:: table-row
Property
inStockPieces
Data type
string
Description
This is the unit for items inStock.
Default
pieces
.. _newItemDays:
newItemDays
"""""""""""
.. container:: table-row
Property
newItemDays
Data type
int+
Description
In LISTNEWITEMS, the newly added items of the last n days will be
showed
Default
7
.. _bulkilyWarning:
bulkilyWarning
""""""""""""""
.. container:: table-row
Property
bulkilyWarning
Data type
string
Description
Text for ###BULKILY\_WARNING### for bulk goods
Default
.. _bulkilyAddition:
bulkilyAddition
"""""""""""""""
.. container:: table-row
Property
bulkilyAddition
Data type
int+
Description
See shipping.
Factor to multiply with a product which is bulkily
Default
.. _bulkilyFeeTax:
bulkilyFeeTax
"""""""""""""
.. container:: table-row
Property
bulkilyFeeTax
Data type
int+
Description
See shipping.
Tax fee in percent for shipping of bulkily
Default
.. _javaScript:
javaScript
""""""""""
.. container:: table-row
Property
javaScript
Data type
*array of integers*
Description
Some JavaScript which will be included for ###JAVASCRIPT\_10###
markers.
**Example:**
::
javaScript {
10 = function addValues (a, b) { return a+b; }
20 = function multiplyValues (a, b) { return a*b; }
}
Default
.. _payment-shipping:
payment / shipping
""""""""""""""""""
.. container:: table-row
Property
payment / shipping
Data type
(see below)
Description
Configuration of payment and shipping methods, their values and costs
and additional calculation scripts and payment gateways.
See description below!
Default
.. ###### END~OF~TABLE ######
[tsref:(script).class.tt\_products.php]
.. _Display-Modes-CODE:
Display Modes (CODE)
^^^^^^^^^^^^^^^^^^^^
Here comes a list of the possible display types of the plugin.
Code to define, what the script does. In the backend these entries are
made using flexforms instead of the Codes (capital letters). Use the
codefields ony in TypoScript setup.
.. ### BEGIN~OF~TABLE ###
.. _Products-list:
Products: list
""""""""""""""
.. container:: table-row
Display Mode
Products: list
CODE
LIST
Description
listing of the products
.. _Products-list-gifts:
Products: list gifts
""""""""""""""""""""
.. container:: table-row
Display Mode
Products: list gifts
CODE
LISTGIFTS
Description
listing of gifts
.. _Products-list-highlights:
Products: list highlights
"""""""""""""""""""""""""
.. container:: table-row
Display Mode
Products: list highlights
CODE
LISTHIGHLIGHTS
Description
listing of the products marked as highlights
.. _Products-list-offers:
Products: list offers
"""""""""""""""""""""
.. container:: table-row
Display Mode
Products: list offers
CODE
LISTOFFERS
Description
listing of the products marked as offers
.. _Products-list-new-items:
Products: list new items
""""""""""""""""""""""""
.. container:: table-row
Display Mode
Products: list new items
CODE
LISTNEWITEMS
Description
listing of the new items entered to the sysfolder
.. _Products-list-DAM:
Products: list DAM
""""""""""""""""""
.. container:: table-row
Display Mode
Products: list DAM
CODE
LISTDAM
Description
list DAM images or media files
.. _Products-single-view:
Products: single view
"""""""""""""""""""""
.. container:: table-row
Display Mode
Products: single view
CODE
SINGLE
Description
single view of an article (LIST code can be
used also) or GET/POST var 'tt\_products' can
be set.
.. _Products-search:
Products: search
""""""""""""""""
.. container:: table-row
Display Mode
Products: search
CODE
SEARCH
Description
displays a search dialog for searching product
.. _Products-memo:
Products: memo
""""""""""""""
.. container:: table-row
Display Mode
Products: memo
CODE
MEMO
Description
memo of products
.. _Currency-selector:
Currency: selector
""""""""""""""""""
.. container:: table-row
Display Mode
Currency: selector
CODE
CURRENCY
Description
currency selector
.. _Basket-shopping-cart-options:
Basket: shopping cart, options
""""""""""""""""""""""""""""""
.. container:: table-row
Display Mode
Basket: shopping cart, options
CODE
BASKET
Description
Displays the shopping basket.
The code 'BASKET' works in general but using the specific codes INFO,
PAYMENT and FINALIZE, you can split out the function over
multiple pages
.. _Basket-overview:
Basket: overview
""""""""""""""""
.. container:: table-row
Display Mode
Basket: overview
CODE
OVERVIEW
Description
a minimum basket containing only the number
of items
.. _Basket-collect-addresses:
Basket: collect addresses
"""""""""""""""""""""""""
.. container:: table-row
Display Mode
Basket: collect addresses
CODE
INFO
Description
enter address information
.. _Basket-order-review-payment:
Basket: order review, payment
"""""""""""""""""""""""""""""
.. container:: table-row
Display Mode
Basket: order review, payment
CODE
PAYMENT
Description
last check and payment gateway
.. _Basket-order-confirmation:
Basket: order confirmation
""""""""""""""""""""""""""
.. container:: table-row
Display Mode
Basket: order confirmation
CODE
FINALIZE
Description
finalize the order and send emails – thanks page for the order
.. _Orders-tracking:
Orders: tracking
""""""""""""""""
.. container:: table-row
Display Mode
Orders: tracking
CODE
TRACKING
Description
to track the order state, bill and delivery
.. _Orders-billing:
Orders: billing
"""""""""""""""
.. container:: table-row
Display Mode
Orders: billing
CODE
BILL
Description
creates a file containing the bill
.. _Orders-delivery:
Orders: delivery
""""""""""""""""
.. container:: table-row
Display Mode
Orders: delivery
CODE
DELIVERY
Description
creates a file containing the delivery sheet
.. _Orders-list:
Orders: list
""""""""""""
.. container:: table-row
Display Mode
Orders: list
CODE
ORDERS
Description
display orders on per fe-user basis
.. _General-help:
General: help
"""""""""""""
.. container:: table-row
Display Mode
General: help
CODE
HELP
Description
information how to use tt\_products
.. _Categories-list:
Categories: list
""""""""""""""""
.. container:: table-row
Display Mode
Categories: list
CODE
LISTCAT
Description
listing of categories
.. _Categories-select:
Categories: select
""""""""""""""""""
.. container:: table-row
Display Mode
Categories: select
CODE
SELECTCAT
Description
categories inside of select boxes
.. _Categories-menu:
Categories: menu
""""""""""""""""
.. container:: table-row
Display Mode
Categories: menu
CODE
MENUCAT
Description
category menu
.. _Categories-single:
Categories: single
""""""""""""""""""
.. container:: table-row
Display Mode
Categories: single
CODE
SINGLECAT
Description
category single view
.. _DAM-memo:
DAM: memo
"""""""""
.. container:: table-row
Display Mode
DAM: memo
CODE
MEMODAM
Description
DAM memo
.. _DAM-memo-overview:
DAM: memo overview
""""""""""""""""""
.. container:: table-row
Display Mode
DAM: memo overview
CODE
MEMODAMOVERVIEW
Description
overview for DAM memo
.. _DAM-Categories-list:
DAM Categories: list
""""""""""""""""""""
.. container:: table-row
Display Mode
DAM Categories: list
CODE
LISTDAMCAT
Description
listing of DAM categories
.. _DAM-Categories-select:
DAM Categories: select
""""""""""""""""""""""
.. container:: table-row
Display Mode
DAM Categories: select
CODE
SELECTDAMCAT
Description
DAM categories inside of select boxes
.. _DAM-Categories-menu:
DAM Categories: menu
""""""""""""""""""""
.. container:: table-row
Display Mode
DAM Categories: menu
CODE
MENUDAMCAT
Description
DAM category menu
.. _DAM-Categories-single:
DAM Categories: single
""""""""""""""""""""""
.. container:: table-row
Display Mode
DAM Categories: single
CODE
SINGLEDAMCAT
Description
DAM category single view
.. _Articles-list:
Articles: list
""""""""""""""
.. container:: table-row
Display Mode
Articles: list
CODE
LISTARTICLES
Description
listing of articles
.. _Addresses-list:
Addresses: list
"""""""""""""""
.. container:: table-row
Display Mode
Addresses: list
CODE
LISTAD
Description
list of addresses
.. _Addresses-select:
Addresses: select
"""""""""""""""""
.. container:: table-row
Display Mode
Addresses: select
CODE
SELECTAD
Description
addresses inside of select boxes
.. _Adresses-menu:
Adresses: menu
""""""""""""""
.. container:: table-row
Display Mode
Adresses: menu
CODE
MENUAD
Description
addresses as menu
.. _Adresses-single:
Adresses: single
""""""""""""""""
.. container:: table-row
Display Mode
Adresses: single
CODE
SINGLEAD
Description
addresses as single view
.. _Unknown-Property:
((Unknown Property))
""""""""""""""""""""
.. container:: table-row
Display Mode
CODE
SCRIPT
Description
execution as a PHP script without any output
.. ###### END~OF~TABLE ######
.. _CSS-configuration:
CSS configuration
^^^^^^^^^^^^^^^^^
The CSS id names can be set here. You have to provide a CSS file that
will use these ids however.
You have to provide also the name of the table in the setup.
The last but one/two value will be the name of the view. It can be
'ALL', if it is valid for all views..
Views correspond to the code field:
SINGLE, LIST, BASKET
::
plugin.tt_products.CSS.ALL.file = EXT:ttproducts/template/tt_products_example.css
.. _General:
General
"""""""
.. ### BEGIN~OF~TABLE ###
.. _file:
file
~~~~
.. container:: table-row
Property
file
Data type
resource
Description
The CSS-file.
Default
.. ###### END~OF~TABLE ######
.. _Table:
Table
"""""
::
plugin.tt_products.CSS.tt_products.LIST.row.even = 35
.. ### BEGIN~OF~TABLE ###
.. _row:
row
~~~
.. container:: table-row
Property
row
Data type
Description
even: Cascading Stylesheets (CSS) even rows in the products display.
uneven
Default
.. _menu:
menu
~~~~
.. container:: table-row
Property
menu
Data type
string
Description
CSS for the menu
Default
.. _default:
default
~~~~~~~
.. container:: table-row
Property
default
Data type
Description
CSS for default entries in the list
Default
.. _current:
current
~~~~~~~
.. container:: table-row
Property
current
Data type
Description
CSS for the currently selected item in the list
Default
.. _itemSingleWrap:
itemSingleWrap
~~~~~~~~~~~~~~
.. container:: table-row
Property
itemSingleWrap
Data type
wrap
Description
HTML part to replace the markers ###ITEM\_SINGLE\_PRE\_HTML### and
###ITEM\_SINGLE\_POST\_HTML### at single item level.
Default
\|
or
\|
.. _itemRowWrap:
itemRowWrap
~~~~~~~~~~~
.. container:: table-row
Property
itemRowWrap
Data type
wrap
Description
HTML part to replace the markers ###ITEM\_SINGLE\_PRE\_HTML### and
###ITEM\_SINGLE\_POST\_HTML### at item row level.
Default
empty or
\|
.. ###### END~OF~TABLE ######
.. _Configuration-of-Articles-Products-Categories-Pages-Addresses-and-Images:
Configuration of Articles, Products, Categories, Pages, Addresses and Images
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The last but one/two value will be the name of the view. It can be
'ALL', if it is valid for all views..
Views correspond to the code field:
SINGLE, LIST, BASKET
additional possible values are
EMAIL, PAYMENT, LISTRELATED (LIST for related products)
**Example:**
::
plugin.tt_products.conf.tt_products_articles.LIST.generatePath.base = fileadmin/images
plugin.tt_products.conf.tt_products.LIST.orderBy = sorting
.. ### BEGIN~OF~TABLE ###
.. _generatePath:
generatePath
""""""""""""
.. container:: table-row
Property
generatePath
Data type
*array of string*
Description
path to the image folders where the images for generateImage are
located.
Pairs of field names and the count of the first characters to be used
to form the name of the image file.
type ... tablefields
*fieldname* ... name of the table field
**Example:**
::
ALL.generatePath {
type = tablefields
base = fileadmin/images
field.itemnumber = 2
}
Default
fileadmin/img
.. _generateImage:
generateImage
"""""""""""""
.. container:: table-row
Property
generateImage
Data type
*array of string*
Description
Pairs of field names and the count of the first characters to be used
to form the name of the image file.
type ... tablefields, foreigntable (for field of another table)
field. *fieldname* ... name of the table field
separator ... separator in the filename between the matched beginning
of the filename and the end part of the filename.
table ... use another table and its configuration to get the image
uid\_local ... use the value of this local field of the current table
uid\_foreign ... use this field of the foreign table to find a match
The file names will be like 41000\_1.jpg. A product will have multiple
images if there are more files with a similar file name, e.g.
41000\_2.jpg.
**Example:**
::
ALL.generateImage {
type = tablefields
field.itemnumber = 6
separator = _
}
ALL.generateImage {
type = foreigntable
table = tt_products_articles
uid_local = uid
uid_foreign = pid
field.itemnumber = 6
separator = _
}
Default
.. _imageMarker:
imageMarker
"""""""""""
.. container:: table-row
Property
imageMarker
Data type
*array of string*
Description
Defines how the marker for the image is composed. In this example
image names like 30\_P1\_001.jpg can be used, where the second part P1
and the third part 001 form the marker. So the marker will be
###CATEGORY\_IMAGE\_P1\_001###.
**Example:**
::
ALL.imageMarker {
type = imagename
parts = 2,3
}
Default
.. _limit:
limit
"""""
.. container:: table-row
Property
limit
Data type
int+
Description
Max items displayed. The maximum number of items displayed on a list
view.
Default
50
.. _limitImage:
limitImage
""""""""""
.. container:: table-row
Property
limitImage
Data type
int+
Description
Max image items displayed. The maximum number of images for one item
displayed on the view.
**Example:**
::
plugin.tt_products.conf.tt_products.ALL.limitImage = 10
Default
1
.. _orderBy:
orderBy
"""""""
.. container:: table-row
Property
orderBy
Data type
string
Description
List of the fields by which the items will be ordered.
Default
sorting
.. _fetchImage:
fetchImage
""""""""""
.. container:: table-row
Property
fetchImage
Data type
string
Description
If set, the images for the output table are taken from the images of
another table
**Example:**
::
plugin.tt_products.conf.tt_products.ALL.fetchImage {
type = foreigntable
table = tt_content
}
Default
.. _language:
language
""""""""
.. container:: table-row
Property
language
Data type
*array of string*
Description
The name of a language file with translations from the default
language into another language.
type:
- csv ... The values are separated by ';' and newline characters
- noTranslation ... do not use the language overlay table
- field ... the translation is in fields
- table ... the translation overlay table
file: Path and name of the file
field: name of the field on left and new value on right side
marker ... Like CSV, but markers inside of the database table contents
are substituted
**Example:**
::
[globalVar = GP:L = 1]
language {
type = csv
file = fileadmin/data/EnglishCategories.csv
}
[GLOBAL]
**Example:**
::
language {
type = field
field.title = subtitle
}
Default
.. _image:
image
"""""
.. container:: table-row
Property
image
Data type
IMAGE cObject
Description
Image is copiebd into the others via TypoScript and can be used for
several code fields.
**Example:**
::
###PRODUCT_IMAGE1:M###
plugin.tt_products.conf.tt_products.ALL.image.m {
wrap = |
file.maxW = 320
file.maxH = 280
}
Default
.. _filter:
filter
""""""
.. container:: table-row
Property
filter
Data type
*array of string*
Description
Use only table records which apply to a filter on a field or parameter
base.
type:
- param ... GET/PUT parameter (value: gp) or predefined
- regexp ... use a regular expression
- where ... use WHERE conditions
field: name of the field on left and value on right side
**Example:**
::
filter {
regexp {
field {
title = [:alpha:]+[:blank:]+1[:blank:]+
}
}
}
filter {
where {
field {
bargain = 1
}
}
}
filter {
param {
cat = gp
}
}
Will filter all records of the table to use only those where the title
has characters and a 1 on the last position.
Default
.. _urlparams:
urlparams
"""""""""
.. container:: table-row
Property
urlparams
Data type
string
Description
Comma separated list of tt\_products URL parameters which must have a
value. Otherwise no items will be displayed.
Normally no products shall be shown below a category list when no
category has been selected yet. If you leave this empty, then all
products will be listed in the list view when no category parameter is
given and you have a category list view on the page.
Default
.. _displayColumns:
displayColumns
""""""""""""""
.. container:: table-row
Property
displayColumns
Data type
array
Description
Number of columns on the display
You have to adapt your template using special template markers. The
ITEM\_SINGLE\_PRE\_HTML and ITEM\_SINGLE\_POST\_HTML must surround
your
-
tags, so the table will be created correctly. The
first number is the order in the category hierarchy.
**Example:**
::
displayColumns {
1 = 3
}
**Example:**
::
###ITEM_SINGLE_PRE_HTML###
###ITEM_SINGLE_POST_HTML###
Default
.. _displayHeader:
displayHeader
"""""""""""""
.. container:: table-row
Property
displayHeader
Data type
string
Description
Each list view of items can have a header for the category. Normally
the header is shown and after is all items of this category. But
sometimes you want to show the header always with each product.
values
- always ... the category and product block is repeated always with each
product
- current ... the current category is taken and not a second category
**Example:**
::
displayHeader {
1 = always
}
Default
.. _requiredFields:
requiredFields
""""""""""""""
.. container:: table-row
Property
requiredFields
Data type
string
Description
Fields which must be read in from the database table even if not
marker for them is found in the used template subpart.
Default
.. _special:
special
"""""""
.. container:: table-row
Property
special
Data type
*array of string*
Description
Special treatment for the table. Only used with category parameters.
- all ... this uid stands for all uids. 'all=all' means that all uids
are always allowed. The the parameter is ignored.
- no ... this uid shall never be considered
**Example:**
::
special {
all = 1
}
Table tt\_products\_cat:
This will display the products of all categories if the parameter
'tt\_products[cat] = 1' is max\_note\_lengthset. So instead of listing
the products of category 1 all products of all categories will be
listed.
Default
.. _onlyChildsOfCurrent:
onlyChildsOfCurrent
"""""""""""""""""""
.. container:: table-row
Property
onlyChildsOfCurrent
Data type
boolean
Description
If set, the child items (e.g. subcategories) will only be displayed
for the current item (category).
Default
.. _field:
field
"""""
.. container:: table-row
Property
field
Data type
*array of cObject*
Description
Use cOjects for the display of some fields. By default the field's
contents are printed as is. Only the image field is used to draw an
IMAGE.
**Example:**
::
field {
title = COA
title {
10 = TEXT
10.value = ###PRODUCT_TITLE### in sizes ###PRODUCT_SIZE###
10.wrap = Title: - | -
}
}
Default
.. _fieldIndex:
fieldIndex
""""""""""
.. container:: table-row
Property
fieldIndex
Data type
int+/ *Array of integers*
Description
Index for fields with multiple contents. This is only used to define
which article images shall overwrite which products images. On the
left side you have the index of the image (starting with 1) and on the
right the destinamtion index of the image. The marker for the first
image would be ###\_IMAGE2###.
::
fieldIndex {
image {
1 = 2
}
}
Default
.. _controlFields:
controlFields
"""""""""""""
.. container:: table-row
Property
controlFields
Data type
*array of string*
Description
Control fields
newitemdays ... name of the field to use with the newItemDays function
**Example:**
::
controlFields {
newItemDays = starttime
}
Default
newItemDays -> starttime
.. _displayFields:
displayFields
"""""""""""""
.. container:: table-row
Property
displayFields
Data type
*array of cObject*
Description
Display fields
Definitions how to display some fields.
**Example:**
::
displayFields {
note = RTEcssText
}
Default
.. _fieldLink:
fieldLink
"""""""""
.. container:: table-row
Property
fieldLink
Data type
*array of typolink*
Description
The definition for the field links.
**Example:**
::
conf.tt_products.ALL {
fieldLink {
datasheet.ATagParams=class="datasheetClass"
}
}
Default
.. _fe-users:
fe\_users
"""""""""
.. container:: table-row
Property
fe\_users
Data type
*array of string*
Description
FE user fields for limitations
period
date\_of\_birth.period ... This period of time since the FE user's
birth must have been passed, if products with uid 12 oder 24 are in
the basket.
**Example:**
::
fe_users {
date_of_birth.period.y = 12
where = uid IN (12, 24)
}
Default
.. _view:
view
""""
.. container:: table-row
Property
view
Data type
*array of string*
Description
code view configuration
sortselect … array of form elements
filterselect … filtering
**Example:**
::
view.sortSelect {
1 {
label = sort by
type = select
attribute {
onchange=submit();
}
valueArray {
10.label = title
10.value = 1
10.field = title
}
}
}
browser … configuration for the record browser with types
div2007showFirstLast … if the first and last link is shown.
**Example:**
::
view.browser = div2007
view.browser {
browseLinksWrap =
|
disabledLinkWrap = |
inactiveLinkWrap = |
activeLinkWrap = |
disabledNextLinkWrap = |
inactiveNextLinkWrap = |
disabledPreviousLinkWrap = |
inactivePreviousLinkWrapn = |
}
Default
.. _subpart:
subpart
"""""""
.. container:: table-row
Property
subpart
Data type
*array of string*
Description
This determines the behavior of the display of the subparts.
show … default. if a record for a default category must be shown even
if no product is found (for cat). This is used if you have a default
category on each page and the category header should always be shown.
**Example:**
::
subpart.ITEM_CATEGORY {
show = default
}
Default
.. _tagmark:
tagmark
"""""""
.. container:: table-row
Property
tagmark
(only categories in LIST)
Data type
array
Description
defines how the marker ###CATALLTAGS### is filled with the tags of the
categories.
**Example:**
::
tagmark {
parents = 1
prefix = cat
}
Default
.. ###### END~OF~TABLE ######
.. _Form-configuration:
Form configuration
^^^^^^^^^^^^^^^^^^
Setup only. There are several forms which can be configured. Put the
code after the form settings.
**Example:**
::
plugin.tt_products.form.SEARCH.data.name = ShopSearchForm
u
.. ### BEGIN~OF~TABLE ###
.. _data:
data
""""
.. container:: table-row
Property
data
Data type
string/->stdWrap
Description
This is the data that sets up the form.
name: name of the form. If empty, default values will be used.
Default
*depends on codefield*
.. _dataArray:
dataArray
"""""""""
.. container:: table-row
Property
dataArray
Data type
*[array of form elements]*
Description
Every entry in the dataArray is numeric and has four main properties,
*label* , *type* , *value* and *required* . 'label' and 'value'
have stdWrap properties.
params ... Put additional parameters here.
**Example:**
::
form.SELECTAD.dataArray {
10.label =
10.type = tt_products[address]=select
10.params = onchange = "submit();"
}
Enhancement for the selection of variants with selectColor, …
specification.
::
form.ALL.selectColor.dataArray {
10.params = onchange = "submit();"
}
Default
.. _image:
image
"""""
.. container:: table-row
Property
image
Data type
IMAGE
Description
Image to display.
Default
.. _imageImport:
imageImport
"""""""""""
.. container:: table-row
Property
imageImport
Data type
*array of fields*
Description
Fetch the images corresponding to values.
**Example:**
::
form.ALL.selectColor.imageImport {
10.sql.where =
10.prod.0 = earth-round.gif
10.prod.1 = marigold-round.gif
10.prod.2 = delft-round.gif
}
Default
.. _layout:
layout
""""""
.. container:: table-row
Property
layout
Data type
string
Description
This defines how the input field and other markers are placed towards
each other.
**Example:**
This substitutes the "###INPUT###" with the input tag and the
"###IMAGE###' with image data.
::
###INPUT###
###IMAGE###
Default
.. ###### END~OF~TABLE ######
.. _Basket-configuration:
Basket configuration
^^^^^^^^^^^^^^^^^^^^
You can configure the behaviour of the basket here.
**Example:**
::
plugin.tt_products.basket.minPrice {
type = price
collect = goodstotal
value = 250
}
.. ### BEGIN~OF~TABLE ###
.. _minPrice:
minPrice
""""""""
.. container:: table-row
Property
minPrice
Data type
*array of string*
Description
minimum price which the products must reach to get a permission to buy
them. E.g. only products of a total price of at least 250 shall be
accepted. The products which have the 'no minimum price' checked, will
not be counted here.
**Example:**
::
minPrice {
type = price
collect = goodstotal
value = 250
}
Default
.. _view:
view
""""
.. container:: table-row
Property
view
Data type
*array of string*
Description
basket view configuration
showAmount … basket … if the amount of items in the basket is shown
with each product in single and list view.
… 0 … if the default amount with each product is always zero (needed
for caching)
input … input tag with radio buttons for the list view of products and
the marker ###BASKET\_INPUT###
insert the name of the radio buttons
where: SQL where condition for products
checked: preselected product uid
**Example:**
::
basket.view.input {
10.label = Buy:
10.type = radio
10.where = uid IN (12,13,14,15)
10.checked = 12
10.name = Radiobox1
10.params =
}
Default
*showAmount = basket*
.. _activity:
activity
""""""""
.. container:: table-row
Property
activity
Data type
*array of string*
Description
activity configuration
Possible activities are:
basket, info, payment, verify, finalize, overview
check:
address … if the required fields have been filled in (see
requiredInfoFields)
agb … if the trading conditions checkbox has been clicked
basket … if the basket has entries.
clear:
memo … If the MEMO for the items shall be cleared.
**Example:**
::
basket.activity.payment {
check = address,agb,basket
}
Default
.. _store:
store
"""""
.. container:: table-row
Property
store
Data type
*boolean*
Description
If set to 0, then no basket will be stored. This is only usefull, if
you have several shop plugins on a site. Then items are added to the
basket only once.
Default
.. ###### END~OF~TABLE ######
.. _Control-configuration:
Control configuration
^^^^^^^^^^^^^^^^^^^^^
You can configure the behavior of the views here. Insert the CODE
after control.
**Example:**
::
plugin.tt_products.control.LIST.param {
ignore = pp
}
.. ### BEGIN~OF~TABLE ###
.. _param:
param
"""""
.. container:: table-row
Property
param
Data type
*array of string*
Description
The behaviour of the control parameters can be changed here. This is
needed e.g. if you have several product lists on the same page and you
must turn some URL parameters off in order the lists are shown
correctly and not show unwanted filter effects.
use … if a parameter is to be activated (only for backPID)
item … if a link parameter must always be generated from the item
record (for cat)
**Example:**
::
param {
ignore = pp
use = backPID
item = cat
}
Default
.. ###### END~OF~TABLE ######
.. _Payment-shipping-and-handling-configuration:
Payment, shipping and handling configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Payment and shipping are very similar in configuration and therefore
shared the same property list with special notes if something is for
the one type only. The configuration of payment and shipping is in
short a question of defining the items to choose from on the basket
page. That is, a choice of one out of many transportation methods and
one out of many payment methods. Therefore you can for instance select
either radio-button representation or selector box.
The number of the selected payment method or shipping method is
reflected in the html-template certain places and you may also want
special PHP scripts executed based on the settings. That's all
allowed.
**Example:**
::
plugin.tt_products.payment {
radio = 1
TAXpercentage = 19
10.title = Prepaid
20.title = PayPal
20.percentOfTotalShipping = 0.04
30.title = Cash on Delivery
30.price.1 = 4
30.price.6 = 5.8
30.showLimit = 99
}
plugin.tt_products.shipping {
radio = 0
TAXpercentage = 19
10.title = Deutschland
10.image.params = align=absmiddle
10.price.type = count
10.price.1 = 2.5
10.price.20 = 4.8
10.price.50 = 10
10.price.100 = 25
10.price.120 = 30
10.price.300 = 150
10.percentOfGoodstotal = 0
20.title = Europa (nicht Deutschland)
20.image.params = align=absmiddle
20.price.type = count
20.price.1 = 8.8
20.price.20 = 11.8
20.price.50 = 11.8
20.price.100 = 25
20.price.120 = 30
20.price.300 = 150
20.percentOfGoodstotal = 0
30.title = Selbstabholung
30.type = pick_store
30.price.1 = 0
}
plugin.tt_products.handling {
10 {
TAXpercentage = 19
10.title = Printing Costs
10.price = 17
}
20 {
TAXpercentage = 19
10.title = Small Volume Addition
10.price = 5
}
30 {
TAXpercentage = 19
10.title = Packaging Costs
10.price = 1.95
}
}
.. ### BEGIN~OF~TABLE ###
.. _radio:
radio
"""""
.. container:: table-row
Property
radio
Data type
boolean
Description
If set, you get radio button layout. If not, selector-box.
Default
0
.. _template:
template
""""""""
.. container:: table-row
Property
template
Data type
string
Description
**(Radio layout only)**
If .radio is true, this string is the 'template' for the radio items.
**Default is (in one line):**
::
###IMAGE### ###TITLE###
Default
.. _wrap:
wrap
""""
.. container:: table-row
Property
wrap
Data type
string
Description
**(Select layout only)**
If .radio is false, this string wraps the