WS-DataFlowManager (EN)

Product data export

Activation and name of the template

The export of product data using a template is activated by copying the corresponding template file into the output directory of the export file. The name of this file is fixed and is "export-template.txt".

Furthermore, a file with the name "lastexport.ini" is also created in this directory. This file contains the time stamp and a consecutive number of the last export. This data is needed for a possible image transfer, as well as for the creation of a version number for the file, which is required for some file formats.

Supported tags

"EXP-" tags

Tags with the "EXP-" prefix refer to shop-wide data that is not contained in the shop.config or other "normal" configuration files.

Tag

Description

Tag

Description

~EXP-ShopId~

The ID of the shop

~EXP-Counter~

A counter that is incremented on each export.

"WSINI-" tags

Tags with the prefix "WSINI-" are used to insert parameters from shop.config into the export file. The tags are formed according to the scheme ~WSINI-(section,parameter)~.

Example:
~WSINI-(Currency-Txt,Name)~ inserts the currency of the subshop

"PR-" tags

Tags with prefix "PR-" are used to insert (unchanged) product data.

Generally, tags are formed from the prefix + the technical field names, it can be used to insert any standard fields and free fields (provided that the format in which the data is stored internally is suitable for export).

Example:
~PR-Descr~ inserts the product description

For PR tags formed from technical field names, additional options can be specified. This allows the field content to be modified again before output. In doing so, the individual statements are given as attributes to the tag. The options can also be used with the section tags.

The following options are possible:

Attribute

Description

Example

Attribute

Description

Example

maxlength

The content will be shortened to the specified maximum length if the content is longer.

Shorten the description to a maximum of 100 characters:

~PR-Descr(maxlength:100)~
or
~PR-Descr(100)~

search / replace

In the content, all strings matching "search" are replaced with the content specified in "replace". The found positions are removed from the content if "replace" is empty / not specified.

Important: Spaces are also taken into account!

To replace commas, %%comma%% must be specified as a placeholder instead of the character.

Replace all places in the description where "net" is written with "gross":

~PR-Descr(search:net,replace:gross)~

Remove the word "hello" from the description:

~PR-Descr(search:hello,replace:)~

trimend

Removes all specified characters at the end of the content.

Important: Spaces are also taken into account!

Shorten the end of the description by all '\', ' ' and '$'

~PR-Descr(trimend:\ $)~

toupper

Prints the whole content in capital letters.

~PR-Descr(toupper)~

tolower

Outputs the entire content in lowercase.

~PR-Descr(tolower)~

compare

Compares the entire content with the specified text.

{PR-New(compare:yes)}1{/PR-New(compare:yes)}

Several attributes can also be combined. For this, there must be a comma between the attributes.

Example:
~PR-Descr(maxlength:100,trimend:\ ,toupper)~

In addition to the PR tags formed from technical field names, there are also the following special tags:

Tag

Description

Tag

Description

{@PR-Articles}

Loop over all product data

{@PR-SearchItems}

Loop for the search items. To determine the individual terms, the searchitems field is split into individual words. All characters that are not letters or numbers are used as separators here.

{PR-DepVariations}

Parenthesis that is displayed when the "Export dependent variations (as standalone products)" option is enabled and a product has dependent variations.

{@PR-DepVariations}

Loop for names and values of dependent variations. Within the loop the tags ~PR-DepVariationName~, ~PR-DepVariationValue~, ~PR-DepVariationIdx~ and {last} can be used

The entire loop should also be parenthesized with {PR-DepVariations}...{/PR-DepVariations}, since the loop tags are not replaced if a product has no variants.

This loop is only useful if the "Export dependent variations (as standalone products)" option is enabled.

{PR-DepVarProducts}

Bracketing is shown if the loop contains {@PR-DepVarProducts} entries, i.e. a product has dependent variations and the "Export dependent variations (as standalone products)" option is not enabled.

{@PR-DepVarProducts}

In this loop the product data of dependent variations can be inserted

Example:

{@PR-DepVarProducts} <Name>~PR-Name~</Name> {/@PR-DepVarProducts}

Within the loop all "simple" product data tags can be used, i.e. no tags that require conversions, need loops, etc.

The loop can be inserted multiple times, e.g. if a list of product numbers is to be generated first and then a list of product names.

This loop is useful only if the "Export dependent variations (as standalone products)" option is not enabled.

{PR-DistinctDepVarField}

Bracketing is shown if the loop contains {@PR-DistinctDepVarField} entries, i.e. a product has dependent variations and the "Export dependent variations (as standalone products)" option is not enabled.

{@PR-DistinctDepVarField(...)}

This loop allows to output the different values for a single product attribute, whose name must be specified as a parameter.

Example:
A product has three dependent variants where the free field "Color" is filled. For two variants this field has the value "red", for one the value "green".

The loop

{@PR-DistinctDepVarField(Farbe)} ~PR-Farbe~ {/@PR-DistinctDepVarField(Farbe)}

would now be replaced by the values
red
green.

This loop is only useful if the option "Export dependent variations (as standalone products)" is not enabled.

{PR-DepVarNames}

Bracketing that is shown if the loop would contain {@PR-DepVarNames} entries, i.e. a product has dependent variations and the "Export dependent variations (as standalone products)" option is not enabled.

{@PR-DepVarNames}/
{@PR-DepVarValues}

These two loops are for inserting the names and values of the dependent variations for a product.
Inside the loop the tags ~PR-DepVariationName~ (name of the variation) and ~PR-DepVariationValue~ (value of the variation) can be used.

These loops can be used only if the "Export dependent variations (as standalone products)" option is not enabled.

Example:

{@PR-DepVarNames} ~PR-DepVariationName~ {@PR-DepVarValues} ~PR-DepVariationValue~ {/@PR-DepVarValues} {/@PR-DepVarNames}

Result for a product with variations "color and size" with values "red" and "green" or "L" and "XL":
color
red
green
size
L
XL

{PR-DepVarField}

Bracketing for {@PR-DepVarField(...)} Loops

{@PR-DepVarField(...)}

Loop that can be used to insert variant values in a nested manner.

This loop can only be used if the "Export dependent variations (as standalone products)" option is not enabled.

Example:

Result for a product with the variants "color and size" with the values "red" and "green" or "L" and "XL":
red
L
price: 10,000
XL
price: 15,000
green
L
price: 10,000
XL
price: 15,000

{LastDepVarField}

Bracketing that appears when the last entry in the current variant value list is reached in the {@PR-DepVarField} loop.

{PR-DepVarAttribute1...N}
~PR-DepVarAttribute1...N~

Bracketing whether the product has the Nth attribute.
The parenthesis can be nested.

Important: The outermost parenthesis must always be {PR-DepVarAttribute1}. Within the section, the attribute name can be output by the single tag.

Example:

Result for a product with the variants "color and size" with the values "red" and "green" resp. "L" and "XL":
Color: red / Size: L / Price: 10,000
Color: red / Size: XL / Price: 11,000
Color: green / Size: L / Price: 10,000
Color: green / Size: XL / Price: 11,000

Result for a product with the variant "color" with the values "red", "green" and "blue":
Color: red / Price: 10,000
Color: green / Price: 10,000
Color: blue / Price: 10,000

This bracketing can be used only if the "Export dependent variations (as standalone products)" option is not enabled.

{@PR-DepVarValues1...N}

Loop over all active values of the Nth attribute.

Loops over the values of the last attribute; this can be used to output the variant data.

The loop can only be used within {PR-DepVarAttribute1...N}.

{LastDepVarValue}
{!LastDepVarValue}

Check if the last value within {@PR-DepVarValues1...N} has been reached

~PR-DepVarValue1...N~

Output the value from the Nth attribute.

Must be used within {@PR-DepVarValues1...N}

{@PR-C-Links}
{@PR-C-Links2}
{@PR-C-Links3}
{@PR-C-Links4}
{@PR-C-Links5}

Loop for cross-links (accessory products/XLinks).
Within the loop the tags ~PR-Number~, ~PR-ProdIndex~ and {last} can be used.

{@PR-CS-Links}

Loop for crossselling-links.
Within the loop the tags ~PR-Number~, ~PR-ProdIndex~ and {last} can be used.

{@PR-BulkPrices}

The loop with the bulk prices. Inside the loop the tags ~PR-BulkAmount~, ~PR-BulkPrice~, ~PR-BulkPriceNet~, ~PR-BulkPriceGross~ and {last} can be used

~PR-SearchItem~

Search item within the {@PR-SearchItems} loop

~PR-BulkAmount~

Quantity within the {@PR-BulkPrices} loop

~PR-BulkPrice~

Price inside the {@PR-BulkPrices} loop

~PR-BulkPriceNet~

Net price calculated from ~PR-BulkPrice~ inside {@PR-BulkPrices} loop

~PR-BulkPriceGross~

The gross price calculated from ~PR-BulkPrice~ within the {@PR-BulkPrices} loop

~PR-PriceNet~

The net price calculated from ~PR-Price~

~PR-PriceGross~

The gross price calculated from ~PR-Price~

~PR-DepVariationName~

Variation name within the {@PR-DepVariations} loop

~PR-DepVariationValue~

Variation value within the {@PR-DepVariations} loop

~PR-DepVariationIdx~

Consecutive number of the variation within the {@PR-DepVariations} loop

~PR-DeliveryText~

The delivery status text, determined from the inventory at the time of the export

~PR-DeepLink~

The link to call the product

~PR-DeepLinkPath

The path part of the link to call the product

~ENCXML-PR-DeepLink~

The link to call the product (XML encoded)

{PR-CanonicalDeepLink}

Checks whether a canonical link is stored for the product

~PR-CanonicalDeepLink~

Output of the canonical link of the product (if available)

~ENCXML-PR-CanonicalDeepLink~

XML-encoded output of the canonical link of the product (if available)

{PR-IsCanonicalDeepLink}

Checks whether the product link and the canonical link of the product match (only necessary for multiple export of products).

~PR-LastModDate~

Date of the last modification to the product

{PR-NamedImageURL(FELDNAME)}

Checks whether named image URLs is active for the specified field.

~PR-NamedImageURL(FELDNAME)~

Output of the named image URL for the specified field (only usable within {PR-NamedImageURL(FELDNAME)}).

~PR-Amount

The stock amount

~PR-ParentNumber~

Product number of the master article
(only for dependent variants)

~PR-DeliveryCosts~

The delivery costs for the product based on the default settings / delivery groups configured in the OSB service

~PR-DeliveryCostsGoogleShopping~

The delivery costs for Google Shopping

~PR-RatingVotes

Number of user ratings

~PR-RatingScore~

Average rating (between 1 and 10)

~PR-RatingScore(min, max)~

Average rating (between min and max).
Only either this tag or ~PR-RatingScore~ can be used.

{@PR-RatingVotes}

Loop over all individual ratings for the product

~PR-RatingText~

Written rating text
Only usable within {@PR-RatingVotes}

{PR-RatingText}
{!PR-RatingText}

Check if a text was written during the individual rating.
Only usable within {@PR-RatingVotes}

~PR-RatingSubject~

Written rating subject
Only usable within {@PR-RatingVotes}

{PR-RatingSubject}
{!PR-RatingSubject}

Check if a subject has been written in the individual rating.
Only usable within {@PR-RatingVotes}

~PR-RatingEmail~

E-mail address of the rater
Only usable within {@PR-RatingVotes}

{PR-RatingEmail}
{!PR-RatingEmail}

Check if an email address has been stored with the rating.
Only usable within {@PR-RatingVotes}

~PR-RatingNickname~

Deposited nickname for rating
Only usable within {@PR-RatingVotes}

{PR-RatingNickname}
{!PR-RatingNickname}

Check if a nickname has been deposited with the rating.
Only usable within {@PR-RatingVotes}

~PR-RatingVote~

Single rating
Only usable within {@PR-RatingVotes}

~PR-RatingID~

RatingID
Only usable within {@PR-RatingVotes}

~PR-RatingTimestamp~

Time of rating. Format: YYYY-mm-DD HH:MM:SS
Only usable within {@PR-RatingVotes}

{PR-Inventory}

Section displayed when inventory management has been enabled for a product.

{PR-InventoryState(state)}

Inventory state

Possible values:
- green
- yellow
- red (=red-soft or red-hard)
- red-soft
- red-hard

Several values can be specified comma-separated. (See shop documentation: PR-InventoryState)

Should only be used within {PR-Inventory}.

Example:

{@PR-DistinctArticles(fieldname)}

Loop for all product data

For each different field value of the product data field passed with the parameter, only the first product found will be output.

Example:
Product data
Index Name IS_ZUSATZ0
0001 Prod1 red
0002 Prod2 green
0003 Prod3 red
0004 Prod4 blue
0005 Prod5 green

Template

Result
Index / Name / Color
0001 / Prod1 / red
0002 / Prod2 / green
0004 / Prod4 / blue

~PR-SalesFigures~

Outputs the sales figures of the last 30 days. Outputs the sales figures of the base item for variants.

~PR-SalesRank~

Output of the sales rank based on the order data of the last 30 days. Outputs the rank of the base article for variants.

{PR-ProcessMediaData}

Area is displayed when data comes from the media database. If the current product is a shop product, the area is not displayed

Prerequisite
- media database (KNV/VLB is activated)
- product data has a GTIN

{PR-LoadMediaData}

Area is displayed if media data for the current product could be reloaded. It is also displayed if the current product is from the media database.

Prerequisite
- media database (KNV/VLB is activated)
- product has a field "GTIN" which is filled.

~PR-MediaDataPrice~
~PR-MediaDataATPrice~
~PR-MediaDataCHPrice~

Output of the price of a product, which is in the media database.

(...Price for Germany, ...ATPrice for Austria and ...CHPrice for Switzerland)

Prerequisite
- Media database (KNV/VLB is activated)
- {PR-LoadMediaData} is positive

{PR-MediaDataFixedRetailPrice}
{PR-MediaDataFixedRetailPriceAT}
{PR-MediaDataFixedRetailPriceCH}

Area is displayed if the product is price fixed in the country.

(...Price for Germany, ...PriceAT for Austria and ..PriceCH for Switzerland)

Prerequisite
- Media database (KNV/VLB is activated)
- {PR-LoadMediaData} is positive

{PR-MediaDataRetailPrice}
{PR-MediaDataRetailPriceAT}
{PR-MediaDataRetailPriceCH}

Area is displayed if the product is not priced in the country.

(...Price for Germany, ...PriceAT for Austria and ..PriceCH for Switzerland)

Prerequisite
- Media database (KNV/VLB is activated)
- {PR-LoadMediaData} is positive

~PR-Ekomi-RatingVotes~

Reads from external_data.websale_*_rating_ekomi_shop number of ratings ("NumRatings") for the product

{PR-Ekomi-RatingVotes}

Section displayed if Ekomi is enabled for the shop.

~PR-Ekomi-RatingScore~

Reads the average rating ("AverageRating") for the product from external_data.websale_*_rating_ekomi_shop.

{PR-Ekomi-RatingScore}

Section displayed if Ekomi is enabled for the shop.

{@PR-Ekomi-Ratings}

Loop over the individual Ekomi ratings for a product

{PR-Ekomi-Text}

Section will be displayed if Ekomi is active for the shop.

Only usable in the loop @PR-Ekomi-Ratings

~PR-Ekomi-Text~

Tag to output the Ekomi rating text for a product.

Only usable in the loop @PR-Ekomi-Ratings

{PR-Ekomi-ReviewID}

Section displayed when Ekomi is active for the shop.

Only usable in the @PR-Ekomi-Ratings loop

~PR-Ekomi-ReviewID~

Tag to output the unique ReviewID of an Ekomi rating calculated from OrderID, ProductIndex and a salt.

Only usable in the loop @PR-Ekomi-Ratings

{PR-Ekomi-Timestamp}

Section displayed when Ekomi is active for the shop.

Only usable in the @PR-Ekomi-Ratings loop

~PR-Ekomi-Timestamp~

The tag outputs the timestamp of the Ekomi rating.

Only usable in the loop @PR-Ekomi-Ratings

{PR-Ekomi-Vote}

Section is displayed when Ekomi is active for the shop.

Only usable in the loop @PR-Ekomi-Ratings

~PR-Ekomi-Vote

Tag to output the Ekomi rating

Only usable in the loop @PR-Ekomi-Ratings

~PR-CreationDate~

The tag outputs the timestamp of product creation.

Length restriction is not possible with these tags.

"DC-" tags

The "DC-CompareDigit*" tags can be used to compare numerical values in the export data and to show or hide the corresponding sections depending on the result.
The function largely corresponds to the shop's tags of the same name, but no special syntax has to be used for the parameters when exporting (in contrast to their use in the shop).

Example:
{DC-CompareDigitLTE(~PR-Amount~,5)}small stock{/DC-CompareDigitLTE(~PR-Amount~,5)}

The following "DC-" tags are supported:

Tag

Description

Tag

Description

{DC-CompareDigitLTE(<value1>,<value2>)}

Bracketing is shown when <value1> is less than or equal to <value2>.

{DC-CompareDigitLT(<value1>,<value2>)}

The bracketing is displayed when <value1> is less than <value2>.

{DC-CompareDigitGTE(<value1>,<value2>)}

The bracketing is displayed when <value1> is greater than or equal to <value2>.

{DC-CompareDigitGT(<value1>,<value2>)}

The bracketing is displayed when <value1> is greater than <value2>.

{DC-CompareDigitIBE(<value1>,<value2>,<value3>)}

Bracketing is shown when <value2> is greater than or equal to <value1> and less than or equal to <value3>.

{DC-CompareDigitIB(<value1>,<value2>,<value3>)}

The bracketing is shown if <value2> is greater than <value1> and less than <value3>.

{@DC-Split(<value>,<separator>)}

Splits the <value> into partial values. Different characters can be used as separator.

Special handling:
If the separator should be a comma or a space, a placeholder (comma: comma, space: space) must be specified.

~DC-SplitValue~

Outputs the partial value contained in the DC split. Can only be used inside {@DC-Split()}.

{DC-SplitLastValue}

Bracketing that is shown when the last partial value has been reached in the {@DC-Split()} loop.

~DC-ConvertDateTime(timestamp, format)~

Converts a passed timestamp from Unix format to a passed format.

“format” must be part of C++ strftime.

Example: 17/06/2024

~DC-ConvertDateTime(~PR-CreationDate~,%d/%m/%Y)~

~DC-ConvertDateTime(timestamp, orig_format, format)~

Converts a timestamp from the passed orig_format to the passed format.

orig_format and format must be part of C++ strftime.

Specifically for Ekomi:
The format in which the timestamp is in the database is:
%Y-%m-%d %H:%M:%S

The format accepted by Google is:
%Y-%m-%dT%H:%M:%SZ

Example usage for Ekomi:
~DC-ConvertDateTime(~PR-Ekomi-Timestamp~,%Y-%m-%d %H:%M:%S, %Y-%m-%dT%H:%M:%SZ)~

~DC-Add(<value1>, <value2>, <decimal places>)~

Add value1 and value2 together and output the result as an integer.

Optionally, the result can also be output as a floating point number if the number of decimal places is specified as the third parameter

Note: Floating point numbers must have a dot as separator!

~DC-Subtract(<value1>, <value2>, <decimal places>)~

Subtract value2 from value1 and output the result as an integer.

Optionally, the result can also be output as a floating point number if the number of decimal places is specified as the third parameter

Note: Floating point numbers must have a dot as separator!

~DC-Multiply(<value1>, <value2>, <decimal places>)~

Multiply value1 and value2 together and output the result as an integer.

Optionally, the result can also be output as a floating point number if the number of decimal places is specified as the third parameter

Note: Floating point numbers must have a dot as separator!

~DC-Divide(<value1>, <value2>, <decimal places>)~

Divide value1 by value2 and output the result as an integer.

Optionally, the result can also be output as a floating point number if the number of decimal places is specified as the third parameter

Note: Floating point numbers must have a dot as separator!

~DC-Modulo(<value1>, <value2>)~

Calculate result value1 modulo value2 and output the result as an integer.

Modulo is used to determine the remainder of an integer division.

Example: 7 modulo 3 = 1

Remarks:

  • The parameters specified in the start tag must also be specified in the end tag.

  • Negative parentheses are also possible for all DC tags.

"DC-FPX" tags

The DC-FPX tags can be used to set, edit and output free parameters with self-selected values. Instead of the X, a freely definable, alphanumeric parameter name is written (in the following example this is "1").

Tag

Description

Example

Tag

Description

Example

DC-FPX

The single tag outputs the current content of the value.

The section tag checks if the free parameter is set.

DC-FPX_set(value)

The single tag fills the value passed with the parameter

Template:

Output:
Hello world

DC-FPX_reset

The single tag deletes the content of the free parameter.

Template:

Output:
Hello

DC-FPX_append

The single tag extends the content of the free parameter.

Template:

Output:
ABC

DC-FPX_length

The single tag outputs the number of characters.

Template:

Output:
5

DC-FPX_HexDecode

The single tag outputs the content hex decoded.

Template:

Output:
Hello

DC-FPX_HexEncode

The single tag outputs the content hex encoded.

Template:

Output:
48616C6C6F

DC-FPX_ENCXML

The single tag outputs the content XML encoded.

Template:

Output:

&lt;div&gt;text&lt;/div&gt;

DC-FPX_replace(find,replace)

The single tag searches the content for the first value (find) and replaces it with the second value (replace).

To replace commas, %%comma%% must be specified instead of the comma dash.

Template:

Output:
Hello world

DC-FPX_truncate(length)

The single tag truncates the content to length characters.

Template:

Output:
Hello

Note:
You can also use tags like ~PR-name~ to set a parameter. However, you may run into problems here if the tag used as the value contains commas (after parsing).

"PRCONV-" tags

The PRCONV tags represent product data fields that must be converted in some way before they can be inserted into the template. Currently, the only conversion option is to specify a table that lists the original values and the converted values.

All the fields to be converted must be entered in the "convert-fields.csv" file in the output directory of the export files. This file contains three columns:
Org-Name: The name of the product data field, e.g. "VATIndex"
Conv-Name: The converted name used in the template (without the PRCONV- prefix), e.g. "Tax"
Table: The file name of the conversion table. The file must also be located in the output directory, path specifications in this field are not allowed.

The conversion table file contains the following columns:
Org-Value: The value of the product data field, e.g. "1". A "*" stands for the default value that will be used if no matching entry is found in the table.
Conv-Value: The converted value, e.g. "0.19".

"Cat-" tags

Cat tags can be used to insert category data within the product loop ({@PR-Articles}).

Tag

Description

Tag

Description

~Cat-Index~

The index of the category the product is in

{@Cat-Names}

Loop of category names in normal order (from "top" to "bottom" within the category hierarchy)

{@Cat-RevNames}

Loop of the category names in the reverse order

~Cat-Name~

This tag can be used inside the @Cat-Names/@Cat-RevNames loop and outside these loops and will be replaced by the category name.

Outside the loop the name of the (lowest) category the product is in is inserted.

~ENCURL-Cat-Name~

This tag can be used inside the @Cat-Names/@Cat-RevNames loop and will be replaced by the name of the category URL encoded.

{last}

Bracketing for the last entry in the list. Normally used to negate the parenthesis to be able to remove the field separator after last entry.

~Cat-Link~

Link to the category (SEO URL enabled)

~Cat-LinkPath~

The path part of the link to call the category.

{@Cat-AllAssigned}

This loop can be used to output all categories that the product is in. Within this loop all other "Cat-" tags can be used.

Example 1:
Output of the category hierarchy in which a product is located as a comma-separated list:

{@Cat-Names}~Cat-Name~{!last},{/!last}{/@Cat-Names}

Example 2:
Output of all categories where a product is located:

Example 3:
The following example only outputs all indexes:

Example 4:
The following code outputs all names that are directly assigned and their path:

It is also possible to list all categories outside of PR-Articles. Then all tags supported by the category export can be used (see below).

“Tpl-” tags

The following Tpl tags are available for the output of URLs of the (static) information pages of the shop (e.g. for the creation of a sitemap).

Tag

Beschreibung

Tag

Beschreibung

{@Tpl-Template}

Loop over all URLs for information pages

~Tpl-Link~

Link to the information page

~Tpl-LastModDate~

Date of the last change of the template file in the subshop directory

Example:

Special tags

For complex structures that cannot be generated with the normal product and category tags, the following special tags are available:

Tag

Description

Tag

Description

~BMECat-CategoryStructur~

Category structure as it is defined in the BMEcat standard

~BMECat-GroupMap~

Assignment products -> category as defined in BMEcat standard

CurrentTimestamp

Time of export start

Tag

Description

Tag

Description

~CurrentTimestamp~

Outputs the time from the start of the export as a Unix timestamp (number of seconds since 1 January 1970).

Example:

In the example, the creation date is subtracted from the current date. The result is the time span since the product was created. The result is written to a free parameter (DC-FPproductAge).

The system then checks whether the content of the free parameter is less than 1209600 seconds (= 2 weeks). Only then is the content within the bracket output.

Configuration of special features

Special features that cannot be implemented with the template and via tags alone can be configured in the "special.ini" file in the output directory of the export files. In this file there is a required parameter "Feature". The other parameters depend on which value is entered under "Feature".

Supported special features:

Name

Description

Name

Description

Sport-Tec-Prices

With this feature the prices of another subshop will be exported. Which subshop this is is defined by the parameter "SrcSubshop". The additional prices can be inserted into the template via ~STP-Price~, ~STP-BulkAmount~, ~STP-BulkPrice~, {@STP-BulkPrices}.

Formatting tags/formatting CSV files

To make export templates of CSV files clearer, the following formatting tags are available:

Tag

Description

Tag

Description

~t~

Replaced by a tab character

~n~

Will be replaced by a line break

Together with the "Remove line breaks" option, this makes it possible to write the individual fields of the export file in the template clearly below each other.

Example:

Especially for export files with many fields, this is much clearer than writing all tags in one line.

Category data export

The export of category data using a template is activated by copying the corresponding template file into the output directory of the export file. The name of this file is fixed and is "category-template.txt".

Unlike product data, category data can only be exported using a template.

Supported tags

Tag

Description

Tag

Description

{@Cat-Categories}

The loop of the category data

~Cat-Name~

The name of the category within {@Cat-Categories}

~Cat-Index~

The index of the category within {@Cat-Categories}

~Cat-Descr~

The description of the category within {@Cat-Categories}

~Cat-ImgAdvNav~

Extended navigation image

~Cat-ImgClosed~

Navigation graphic closed

~Cat-ImgOpen~

Navigation graphic opened

~Cat-ImgOverview~

overview image

~Cat-ImgSelected~

Navigation graphic selected

{@Cat-ParentCategories}

Parent Categories. Inside the loop, the context changes and the tags ~Cat-Name~ etc. refer to the parent category.

Furthermore, the {Cat-last} or {!Cat-last} parenthesis can be used in this loop.

{@Cat-RevParentCategories}

Like {@Cat-ParentCategories}, but in reverse order (from top to bottom in the hierarchy)

~Cat-Link~

Link to the category (SEO URL enabled)

{@Cat-Data}

Loop the category names and indexes in normal order (from "top" to "bottom" within the category hierarchy).

{@Cat-RevData}

Loop the category names and indexes in reverse order

{Cat-LastModDate}

Checks whether a date of the last change could be determined.

~Cat-LastModDate~

Date of the last change to the category (including the last change to the category assignments).

Note:

@Cat-Data within @Cat-AllAssigned has a very limited functionality. You can only read ~Cat-Name~ and ~Cat-Index~. You can also use {last} to check whether it is the last element in the list (not so important for XML).

Filter tags

The following tags can be used to hide categories that should not be exported.

Tag

Description

Tag

Description

{Cat-FilterEq(<fieldname>,<fieldvalue>)}

z. E.g. {Cat-FilterEq(Test,y)}

The parenthesis is displayed if the field has the specified value

{Cat-FilterNEq(<fieldname>,<fieldvalue>}

z. E.g. {Cat-FilterNEq(Name,SpecialOffers)}

The parenthesis is displayed if the field does not have the specified value

{Cat-<fieldname>}

z. E.g. {Cat-Descr}

The parenthesis is displayed if the field is filled

Formatting tags/formatting CSV files

As with product data, the ~t~ and ~n~ formatting tags are available for category data (see above).



URL specification for triggering an import with the third-party provider (search service provider, etc.).

Start of import by the external system
Section “Time Control”

2024-09-20_155625.png


The trigger URL is stored under 'URL to be called after the export is completed.' If authentication is required for the import, this information can be included in the URL.

Format http(s)://Username:Passwort@domain.de/……..

In addition, the HTTP method can be selected as either 'GET' or 'POST.' The external service provider must specify this method along with the URL.