TypoScript Setup 

Properties 

templateFile 

templateFile

templateFile
Type
resource

Same as file.templateFile from Constants. The template-file. See example in jambagecom/addons-tt-products Resources/Private/Templates/collection/products_template.tmpl You can also specify a CODE and ERROR for error cases. (see display mode)

Example:

plugin.tt_products.templateFile
plugin.tt_products {
    templateFile = EXT:/addons_tt_products/Resources/Private/Templates/collection/example_template_bill_de.tmpl
}	
plugin.tt_products {
    templateFile.LIST = EXT:tt_products/Resources/Private/Templates/example_locallang_xml.html
}
Copied!

templateSuffix 

templateSuffix

templateSuffix
Type
string

This suffix is appended to all templates' major subparts.

fe 

fe

fe
Type
boolean

If front end output is used. You can turn off the front end output. This is useful for a callback script (see CODE SCRIPT). No template file is needed in this case.

pid_list 

pid_list

pid_list
Type
list of page ids

The page ids from where to fetch categories, products and so on. Default is the current page. Accepts multiple PIDs separated by comma.

defaultCode 

defaultCode

defaultCode
Type
string

The default code (see below) if the value is empty. By default it is not set and a help screen will appear. You should not set anything here.

Example:

defaultCode = HELP
defaultCode = HELP
Copied!

code 

code

code
Type
string /stdWrap
Default
HELP

see chapter 'display mode'

defaultArticleID 

defaultArticleID

defaultArticleID
Type
int+

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.

defaultProductID 

defaultProductID

defaultProductID
Type
int+

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.”

defaultCategoryID 

defaultCategoryID

defaultCategoryID
Type
int+

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.

defaultPageID 

defaultPageID

defaultPageID
Type
int+

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.

defaultDAMCategoryID 

defaultDAMCategoryID

defaultDAMCategoryID
Type
int+

See defaultCategoryID, but for DAM categories and the 'tt_products[damcat]' parameter.

productDAMCategoryID 

productDAMCategoryID

productDAMCategoryID
Type
int+

DAM category of products to be used in DAM lists.

rootAddressID 

rootAddressID

rootAddressID
Type
int+

The upper most address ID from where you want to start to list addresses.

rootCategoryID 

rootCategoryID

rootCategoryID
Type
int+

The upper most category ID from where you want to start to list categories.

rootDAMCategoryID 

rootDAMCategoryID

rootDAMCategoryID
Type
int+

The upper most DAM category ID from where you want to start to list DAM categories.

rootPageID 

rootPageID

rootPageID
Type
int+

The upper most page ID from where you want to start to list them as categories.

recursive 

recursive

recursive
Type
int+
Default
99

Number of recursive sublevels of PIDs to select tt_products from in lists.

domain 

domain

domain
Type
string

The url of the shop. If not set, it will be detected automatically. Will replace ###DOMAIN### markers.

altMainMarkers 

altMainMarkers

altMainMarkers
Type
array of string

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:

main subpart markers with may get an alternative marker name
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_SEARCH_EMPTY
BASKET_TEMPLATE
BASKET_INFO_TEMPLATE
BASKET_PAYMENT_TEMPLATE
BASKET_ORDERCONFIRMATION_TEMPLATE
EMAIL_PLAINTEXT_TEMPLATE
BILL_TEMPLATE
DELIVERY_TEMPLATE
Copied!

Example:

main subpart markers with may get an alternative marker name
altMainMarkers.BASKET_TEMPLATE =  BASKET_DESIGN2
altMainMarkers.BASKET_TEMPLATE.wrap = ### | ###
Copied!

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)

stdSearchFieldExt 

stdSearchFieldExt

stdSearchFieldExt
Type
list of fields
Default
title,subtitle,note

Default internal list is title,subtitle,note. You can specify your default fields here.

limit 

limit

limit
Type
int+
Default
99

The maximum number of items displayed on one page.

separateImage 

separateImage

separateImage
Type
boolean
Default
0

Normally all images are shown combined together. With separateImage=on you can use a ###PRODUCT_IMAGE3### for each image number (starting with 1) separatly.

image 

image

image
Type
IMAGE cObject
Default
see setup.typoscript

The image configuration in single display

listImage 

listImage

listImage
Type
IMAGE cObject
Default
see setup.typoscript

The image configuration in list display

Example:

reset the ListImage
listImage >
listImage {
  altImgResource.import = uploads/media/
  altImgResource.import.field = media
  altImgResource.import.listNum = 0
  altText.data = field:title
}
Copied!

That way, attached images are not copied to and displayed from /typo3temp/ (which leads into trouble with transparent backgrounds) but directly linked from /uploads/pics/. The line with altText leads to the drawing of an alternative text.

listImageHasChilds 

listImageHasChilds

listImageHasChilds
Type
IMAGE cObject
Default
see setup.typoscript

The image configuration in list display if there is a filter for a category on the page and this category has childs.

see listImage

basketImage 

basketImage

basketImage
Type
IMAGE cObject
Default
see setup.typoscript

The image configuration in basket display

datasheetIcon 

datasheetIcon

datasheetIcon
Type
IMAGE cObject / Array of integers (only setup)
Default
see setup.typoscript

The image icon for the datasheet. Replaces ###ICON_DATASHEET###

If it is an array, then it consists of a file type and a file name.

Example:

EXT:my_extension/ext_localconf.php
plugin.tt_products.datasheetIcon {
       10.fileext = pdf
       10.file = fileadmin/img/pdf-icon.png
       20.fileext = doc
       20.file = fileadmin/img/msword-icon.png
}
Copied!

basketPic 

basketPic

basketPic
Type
string
Default
see setup.typoscript

URL link to the basket image

clickIntoBasket 

clickIntoBasket

clickIntoBasket
Type
boolean
Default
0 (false)

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.

clickIntoList 

clickIntoList

clickIntoList
Type
boolean
Default
0 (false)

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.

basketMaxQuantity 

basketMaxQuantity

basketMaxQuantity
Type
int+ / string
Default
100000

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.

quantityIsFloat 

quantityIsFloat

quantityIsFloat
Type
boolean
Default
0 (false)

If set the basket count can be a float value.

noImageAvailable 

noImageAvailable

noImageAvailable
Type
resource

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.

displayListCatHeader 

displayListCatHeader

displayListCatHeader
Type
boolean
Default
1 (true)

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.

displayBasketCatHeader 

displayBasketCatHeader

displayBasketCatHeader
Type
boolean
Default
0 (false)

If this option is set, the category headers (page titles) will automatically be displayed in the basket lists.

displayCatListType 

displayCatListType

displayCatListType
Type
string
Default
ul

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.

substitutePagetitle 

substitutePagetitle

substitutePagetitle
Type
int+
Default
1

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

CSS 

CSS

CSS
Type
see below

Set the CSS files.

js 

js

js
Type
see below

Set the JavaScript files.

conf 

conf

conf
Type
see below

configurations of the tables

NoSingleViewOnList 

NoSingleViewOnList

NoSingleViewOnList
Type
boolean
Default
0 (false)

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.

itemMarkerArrayFunc 

itemMarkerArrayFunc

itemMarkerArrayFunc
Type
function-name
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/ value pairs 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 hardcoded to be a reference to the calling user_products object.

Example: (provided that a function or class is included!)

define an itemMarkerArrayFunc
itemMarkerArrayFunc = user_addFieldsMarkerArr
itemMarkerArrayFunc.simpleOption = 1
Copied!

PIDitemDisplay 

PIDitemDisplay

PIDitemDisplay
Type
int+/Array of integers

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.

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.

Example:

PIDitemDisplay with where conditions
PIDitemDisplay {
     10.type = sql 
     10.where = color=red
     10.pid = 142 
     20.type = sql 
     20.where = color=white 
     20.pid = 143 
}
Copied!

If you set the type to pid then the PID of the record will be used.

PIDitemDisplay with where conditions
PIDitemDisplay {
    10.type = pid
}
Copied!

PIDlistDisplay 

PIDlistDisplay

PIDlistDisplay
Type
int+/Array of integers

Similar to PIDitemDisplay, however the category table is used here.

PIDsearch 

PIDsearch

PIDsearch
Type
int+

If you want all product searches to go to a specific page, enter the PID it here!

NOTE: If you set this PID, all search queries will (must) be handled with a list content element with the display mode "Products: search" on that page.

PIDsearch 

PIDbasket

PIDbasket
Type
int+

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.

PIDstoreRoot 

PIDstoreRoot

PIDstoreRoot
Type
int+

This is the PID of the "root page" 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.

PID_sys_products_orders 

PID_sys_products_orders

PID_sys_products_orders
Type
int+

By default they will get the pid of the payment ( finalize) page.

PIDinfo 

PIDinfo

PIDinfo
Type
int+

On the info page name and address are entered.

PIDpayment 

PIDpayment

PIDpayment
Type
int+

On the payment page the address is checked and the order is confirmed by the customer. You could change to a payment gateway from here.

PIDfinalize 

PIDfinalize

PIDfinalize
Type
int+

The finalization page is the page directed to after the user has confirmed the order data. The order will get stored here.

PIDthanks 

PIDthanks

PIDthanks
Type
int+

The thanks page can be shown instead of the order confirmation. BASKET_ORDERTHANKS_TEMPLATE will be used. You must not set PIDfinalize if you use this.

PIDtracking 

PIDtracking

PIDtracking
Type
int+

The tracking is a front end tool to see and set the status of an order.

PIDbilling 

PIDbilling

PIDbilling
Type
int+

PIDdelivery 

PIDdelivery

PIDdelivery
Type
int+

PIDmemo 

PIDmemo

PIDmemo
Type
int+

PIDagb 

PIDagb

PIDagb
Type
int+

The UID of a page with the general trading conditions (AGB in Germany) Only if this page id is set the AGB check will be active.

PIDrevocation 

PIDrevocation

PIDrevocation
Type
int+

PIDuserFolder 

PIDuserFolder

PIDuserFolder
Type
int+

pidsRelatedProducts 

pidsAddresses 

pidsAddresses

pidsAddresses
Type
int+

UIDstore 

UIDstore

UIDstore
Type
int+

comma separated list of UIDs of the fe_users table with the data of the shop.

paymentActivity 

paymentActivity

paymentActivity
Type
string
Default
finalize

When the payment with a payment script shall be executed. Possible values:

  • payment
  • finalize
  • verify

advanceOrderNumberWithInteger 

advanceOrderNumberWithInteger

advanceOrderNumberWithInteger
Type
string
Default
finalize

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: :typoscript:`1,10`: This will increment the counter randomly between :php:`1` and :php:`10` 5,5 : This will increment the counter with 5 each time

alwaysAdvanceOrderNumber 

alwaysAdvanceOrderNumber

alwaysAdvanceOrderNumber
Type
boolean
Default
0 (false)

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.

alwaysUpdateOrderAmount 

alwaysUpdateOrderAmount

alwaysUpdateOrderAmount
Type
boolean
Default
0 (false)

If set then the entered order amount will always be updated and not increased by the entered number.

parseFunc 

parseFunc

parseFunc
Type
see parseFunc

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:*

parseFunc
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 = *
Copied!

categoryHeader 

categoryHeader

categoryHeader
Type
cObject

Example:*

categoryHeader
categoryHeader = TEXT
categoryHeader.current = 1
Copied!

TAXpercentage 

TAXpercentage

TAXpercentage
Type
cObject

Double value (!) (means, "use . as decimal point")

Example:*

set TAXpercentage
# Danish sales TAX is 25%:
TAXpercentage = 25.00
Copied!

TAXincluded 

TAXincluded

TAXincluded
Type
boolean

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 processing will take this flag into account and calculate prices accordingly.

TAXrates 

TAXrates

TAXrates
Type
string

Comma separated list of tax rates. The first will be taken as tax A, the second as tax B aso.

TAXmode 

TAXmode

TAXmode
Type
int+
Default
1
  • 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.

priceDec 

priceDec

priceDec
Type
int+
Default
2

priceDecPoint 

priceDecPoint

priceDecPoint
Type
string
Default
.

priceThousandPoint 

priceThousandPoint

priceThousandPoint
Type
string

Enter the thousand separator, if any.

noZeroDecimalPoint 

noZeroDecimalPoint

noZeroDecimalPoint
Type
boolean

If set then no decimal point is shown for integers.

priceNoReseller 

priceNoReseller

priceNoReseller
Type
int+

Price number for reseller, which can be only 2 without the help of third party extensions. The price2 will however only be taken when its value is greater than 0. An enhancement extension must add more price fields if you want to use more price numbers. Here is an example based on Typoscript conditions to get the price2 for a special user group:

Example:

active the price2 field for front end users with group 1
[usergroup = 1]
priceNoReseller = 2
[global]
...
Copied!

percentDec 

percentDec

percentDec
Type
int+

percentDecPoint 

percentDecPoint

percentDecPoint
Type
string

percentThousandPoint 

percentThousandPoint

percentThousandPoint
Type
string

Enter the thousand separator, if any.

percentNoZeroDecimalPoint 

percentNoZeroDecimalPoint

percentNoZeroDecimalPoint
Type
string

If set then no decimal point is shown for integers.

currencySymbol 

currencySymbol

currencySymbol
Type
string
Default
EURO

Used in shop administration.

Example:

EUR DKR USD $

lockLoginUserInfo 

lockLoginUserInfo

lockLoginUserInfo
Type
boolean
Default
1 (true)

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.

editLockedLoginInfo 

editLockedLoginInfo

editLockedLoginInfo
Type
boolean

If set and lockLoginUserInfo is set, then the filled in data are still editable for the order. You have to set the appropriate input HTML tags to get this working.

loginUserInfoAddress 

loginUserInfoAddress

loginUserInfoAddress
Type
boolean

If lockLoginUserInfo is set, this switch makes the address field to be filled in from address, country, zip and city of the fe_user

requiredInfoFields 

requiredInfoFields

requiredInfoFields
Type
boolean

List of the fields which are required in the address information This example gives you all possibilities.

Example:

requiredInfoFields
requiredInfoFields = name,address,telephone,fax,email,company,city,zip,state,country
Copied!

The subvalues billing and delivery are possible.

Example:

requiredInfoFields for delivery
requiredInfoFields.delivery = name,address
Copied!

orderNumberPrefix 

orderNumberPrefix

orderNumberPrefix
Type
string (Max 10 chars)

If this string starts with % then the rest will be interpreted as a PHP date format.

orderEmail 

orderEmail

orderEmail
Type
array

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:

requiredInfoFields for delivery
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
}
Copied!

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:

requiredInfoFields for delivery
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
   }
}
Copied!

A SQL comparison will be made to fetch the email address:

user defined query for order email my_table
SELECT my_table_key_field FROM my_table WHERE my_table_key_field = $content_of_fe_users_key_field;
Copied!

orderEmail_bcc 

orderEmail_bcc

orderEmail_bcc
Type
array

BCC for the shop admin's order confirmation

orderEmail_from 

orderEmail_from

orderEmail_from
Type
array

From email address for the confirmation email to customer

orderEmail_from 

orderEmail_fromName

orderEmail_fromName
Type
array

From name for the confirmation email to customer.

orderEmail_to 

orderEmail_to

orderEmail_to
Type
list of email addresses

Shop and administrator/supervisor email addresses go here!

orderEmail_toAddress 

orderEmail_toAddress

orderEmail_toAddress
Type
boolean

If set, then the order email is sent to all addresses which are connected to the products in the basket.

orderEmail_radio 

orderEmail_radio

orderEmail_radio
Type
array of radio button number and email adresses

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 for radio box selection
orderEmail_radio {
   1.2 = inform@mytypo3site.de
}
Copied!

orderEmail_toDelivery 

orderEmail_toDelivery

orderEmail_toDelivery
Type
boolean

If set, the email notification will be sent to the delivery email address and not to the billing email address.

orderEmail_subject 

orderEmail_subject

orderEmail_subject
Type
string

Contents of the subject line if the first line in ###EMAIL_PLAINTEXT_TEMPLATE### is empty.

orderEmail_returnPath 

orderEmail_returnPath

orderEmail_returnPath
Type
string

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.

orderEmail_htmlmail 

orderEmail_htmlmail

orderEmail_htmlmail
Type
boolean / string

If set, the order confirmation email is sent as HTML. If orderEmail_htmlmail.removeImagesWithPrefix is set, then the images and their HTML tags will not be sent in an email.

orderEmail_apostrophe 

orderEmail_apostrophe

orderEmail_apostrophe
Type
string

Use these characters as apostrophe in the order email subject

orderEmail_order2 

orderEmail_order2

orderEmail_order2
Type
boolean
Default
0 (false)

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.

email_notify_default 

email_notify_default

email_notify_default
Type
boolean

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)

statusCodes 

statusCodes

statusCodes
Type
Array of integers
  • Numbers above 100 remove the order from the tracklist.
  • Number 0 (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 are available for the customer to choose from.
  • Number 1 is reserved to be selected when an order goes from 0 (zero) to 1
    because it's confirmed. Number 1 cannot be selected by shop admin.

These will be written into ###STATUS_OPTIONS### markers.

Example:

status code standard setup
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
   30 = Other message from store
   50 = Customer request for cancelling
   51 = Message from customer to shop
   100 = Order shipped and closed
   101 = Order closed
   200 = Order cancelled
}
Copied!

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)

update_code 

update_code

update_code
Type
string
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 back end user is logged in, but this password is still needed.

statusDate_stdWrap 

statusDate_stdWrap

statusDate_stdWrap
Type
stdWrap

Example:

stdWrap for status date
statusDate_stdWrap.strftime = %d-%m-%Y %H:%M
Copied!

orderDate_stdWrap 

orderDate_stdWrap

orderDate_stdWrap
Type
stdWrap

Example:

stdWrap for order date
orderDate_stdWrap.strftime = %d-%m-%Y
Copied!

usebyDate_stdWrap 

usebyDate_stdWrap

usebyDate_stdWrap
Type
stdWrap

cardEndDate_stdWrap 

cardEndDate_stdWrap

cardEndDate_stdWrap
Type
stdWrap

displayCurrentRecord 

displayCurrentRecord

displayCurrentRecord
Type
boolean

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.

externalProcessing 

externalProcessing

externalProcessing
Type
cObject

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 is executed before any of the main processing. See the class for details.

externalProcessing_final 

externalProcessing_final

externalProcessing_final
Type
cObject

cObject for the final order confirmation template

externalFinalizing 

externalFinalizing

externalFinalizing
Type
cObject

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.

wrap1 

wrap1

wrap1
Type
stdWrap

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 split
wrap1.wrap = <b> |</b>
Copied!

wrap2 

wrap2

wrap2
Type
stdWrap

(see above) markers ###GW2B### and ###GW2E###

wrapInBaseClass 

wrapInBaseClass

wrapInBaseClass
Type
boolean S

If true the output will be wrapped with <div class="tx-ttproducts-pi1"> | </div>

wrapInCode 

wrapInCode

wrapInCode
Type
boolean S

If set, then the output will be wrapped by

wrap the output by code uid
  <!-- START: tt-products-code-uid --><div id="tt-products-code-uid">
|</div><!-- END: tt-products-code-uid -->
Copied!

code will be replaced by the code of the plugin. uid will be replaced by the field 'uid' of the table tt_products.

selectColor 

selectColor

selectColor
Type
integer
Default
1

If > 0 the colour of a product is selectable in a select box.

selectColor2 

selectColor2

selectColor2
Type
integer
Default
1

If > 0 the 2nd colour of a product is selectable in a select box.

selectColor3 

selectColor3

selectColor3
Type
integer
Default
1

If > 0 the 3rd colour of a product is selectable in a select box.

selectSize 

selectSize

selectSize
Type
integer
Default
1

If > 0 the size of a product is selectable in a select box.

selectSize2 

selectSize2

selectSize2
Type
integer
Default
1

If > 0 the 2nd size of a product is selectable in a select box.

selectSize3 

selectSize3

selectSize3
Type
integer
Default
1

If > 0 the 3rd size of a product is selectable in a select box.

nl2brNote 

nl2brNote

nl2brNote
Type
integer
Default
1

If true the linefeeds in the note field are replaced by <br />.

useArticles 

useArticles

useArticles
Type
integer
Default
3
  • 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.

keepProductData 

keepProductData

keepProductData
Type
boolean
Default
1 (true)

If true, the product data are kept in the article markers if they are not empty and if the product is merged with a corresponding article which fits in the variant fields. Only used if useArticles = 3.

noArticleSingleView 

noArticleSingleView

noArticleSingleView
Type
boolean
Default
1 (true)

If true, then no article single view is used. Articles are instead linked to the product single view and the corresponding variant selection is shown.

priceTagObj 

priceTagObj

priceTagObj
Type
IMAGE cObjec

Image for the display of the price

usePriceTag 

usePriceTag

usePriceTag
Type
boolean
Default
0 (false)

If true, the priceTagObj will be used. If false, the text will be displayed.

useStaticInfoCountry 

useStaticInfoCountry

useStaticInfoCountry
Type
boolean
Default
0 (false)

If true the short fe_users static_info_country field will be used for country instead of the country field.

useStaticTaxes 

useStaticTaxes

useStaticTaxes
Type
boolean
Default
0 (false)

If true, the tax will be determined from the country and region by the extension static_info_tables_taxes.

whereGift 

whereGift

whereGift
Type
string

This SQL where clause defines which products will be treated as gifts.

whereGiftService 

whereGiftService

whereGiftService
Type
string

This SQL where clause defines which products will be treated as gift services.

specialPreparation 

specialPreparation

specialPreparation
Type
string

This text will substitute your ###PRODUCT_SPECIAL_PREP### markers

createUsers 

createUsers

createUsers
Type
boolean
Default
0 (false)

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###)

useMd5Password 

useMd5Password

useMd5Password
Type
boolean
Default
0 (false)

Note: If set, passwords will be encrypted. Consider to install an extension like kb_md5fepw and the newloginbox.

outputFolder 

outputFolder

outputFolder
Type
string
Default
fileadmin/data

memberOfGroup 

memberOfGroup

memberOfGroup
Type
int+
Default
1

The ID of the front end user group, the new users should be member of.

discountGroupName 

discountGroupName

discountGroupName
Type
string

getDiscountPrice 

getDiscountPrice

getDiscountPrice
Type
boolean

If set the discount price will be used even for normal customers without having a frontend user in the discount group.

discountPriceMode 

discountPriceMode

discountPriceMode
Type
integer
  • If unset, then the price field is used as the base to calculate the discount: discount = (price – price2) / price ... where price contains no discounts
  • set to 1: discount = (price2 – price) / price2 ... where price contains the discounts

This is only needed for setting the behavior of the price2 markers.

discountFieldMode 

discountFieldMode

discountFieldMode
Type
integer

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.

AGBtarget 

AGBtarget

AGBtarget
Type
string
Default
_blank

target for the PIDagb link

AGBattachment 

AGBattachment

AGBattachment
Type
resource
Default
fileadmin/agb.pdf

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

generateXML 

generateXML

generateXML
Type
boolean
Default
0 (false)

Generates a XML file from each order. This file will be saved on the server and sent to the shop administrator per email (with the order confirmation)

XMLdestination 

XMLdestination

XMLdestination
Type
resource
Default
../xmlorders/

The directory on the server, where the XML 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.

generateCSV 

generateCSV

generateCSV
Type
boolean
Default
0 (false)

Generates a CSV file from each order. This file will be saved on the server and sent to the shop administrator per email (with the order confirmation)

CSVdestination 

CSVdestination

CSVdestination
Type
resource
Default
../csvorders/

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.

CSVfields 

CSVfields

CSVfields
Type
string
Default
../csvorders/

Select which product data should be added to the CSV. By default these are all important fields except the note

CSVinOneLine 

CSVinOneLine

CSVinOneLine
Type
boolean
Default
0 (false)

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 these files somewhere. If you leave this at 0, the file will be formatted for best view in programs like Excel.

CSVnotInEmail 

CSVnotInEmail

CSVnotInEmail
Type
boolean
Default
0 (false)

If set no csv file will be appended to the email.

alwaysInStock 

alwaysInStock

alwaysInStock
Type
boolean
Default
1 (true)

If set the stock will not get reduced if something has been bought.

showNotinStock 

showNotinStock

showNotinStock
Type
boolean
Default
1 (true)

If set the items will be shown even if no product is in the stock

notInStockMessage 

notInStockMessage

notInStockMessage
Type
string
Default
Not in stock

See above. This will be shown if no items are in stock and showNotinStock is set.

warningInStockLimit 

warningInStockLimit

warningInStockLimit
Type
string
Default
Not in stock

Amount of items in stock at which when reached a warning message is sent.

inStockPieces 

inStockPieces

inStockPieces
Type
string
Default
pieces

This is the unit for items inStock.

newItemDays 

newItemDays

newItemDays
Type
string
Default
pieces

In LISTNEWITEMS, the newly added items of the last n days will be shown.

bulkilyWarning 

bulkilyWarning

bulkilyWarning
Type
string

Text for ###BULKILY_WARNING### for bulk goods.

javaScript 

javaScript

javaScript
Type
array of integers

Some JavaScript which will be included for ###JAVASCRIPT_10### markers..

Example:

JavaScript functions
javaScript {
    10.value = function addValues (a, b) { return a+b; }
    20.value = function multiplyValues (a, b) { return a*b; }
}
Copied!