Products

Field Definition

Required fields are marked with a pencil icon. The field definitions follow MySQL syntax.

All fields are parsed according to their type before import. If you enter an empty string in `parent_id`, the empty string is converted to a 0 via an INT cast.

model
varchar(255)
The unique product ID.
Products are always updated or created based on the item number.
status
tinyint(1)
Product status: active/inactive
  • 1: active (default)
  • 0: inactive
  • 2: active in an inactive category
sitemap
tinyint(1)
Link product in the XML sitemap: yes/no
  • 1: yes (default)
  • 0: no
storage_comment
varchar(64)
Storage location (main warehouse)
ean
varchar(256)
GTIN, multiple values separated by commas (e.g., for a set)
quantity
decimal(16,8)
Stock level at the main warehouse
shipping_profile
int(11)
Traffic Light Profile ID
cost
decimal(16.8)
Net purchase price
evp
decimal(16,8)
Net MSRP
discount
decimal(16,8)
 
products_eol
tinyint(1)
Product is EOL: Yes/No
  • 1: yes
  • 0: no (default)
date_added
datetime
Creation date
Format: YYYY-mm-dd HH:ii:ss
If no date is provided, NOW() is set as the timestamp.
last_modified
datetime
Modification date
Format: YYYY-mm-dd HH:ii:ss
If no date is provided, NOW() is set as the timestamp.
products_date_available
datetime
Availability Date
Format: YYYY-mm-dd HH:ii:ss
If no date is provided, NULL is set as the timestamp.
products_date_reservable
datetime
Pre-order date
Format: YYYY-mm-dd HH:ii:ss
If no date is provided, NULL is set as the timestamp.
weight
decimal(16,8)
Weight (in the store's default unit, usually kg)
products_bulky_good
tinyint(1)
Bulky item: yes/no
  • 1: yes
  • 0: no (default)
tax_class
int(11)
Tax class ID
ordered
decimal(16.8)
Order counter
Used in performance-critical areas instead of live evaluation.
sort_order
int(11)
Sort order of the product
Categories at the same level are sorted in ascending order
family
varchar(128)
Product family (master/slave group). Identical for all items in a group—the value corresponds to the item number (model) of the master. See the section on Master/Slave Items (Product Families).
products_family_type
int(11)
Display type for variant selection
  • 0: Listing (default)
  • 1: Select
  • 2: Radio
  • 3: Radio (Button)
  • 4: Radio (Popup)
products_master
—
Not evaluated during XML import. The master/slave assignment is created exclusively via family —see the section on Master/Slave Items (Product Families). The master product can only be set directly by ID via the REST/JSON API and the CSV Porter.
free_shipping
tinyint(1)
Free shipping
  • 1: yes
  • 0: no (default)
non_cod
tinyint(1)
Cash on delivery disabled
  • 1: yes
  • 0: no (default)
non_cart
tinyint(1)
Shopping cart locked
  • 1: yes
  • 0: no (default)
non_price
tinyint(1)
Price display disabled
  • 1: yes
  • 0: no (default)
special_shipping_cost
decimal(16,8)
Special shipping costs (net)
ordered
decimal(16,8)
Order counter
Used in performance-critical areas instead of live evaluation.
base_price
decimal(16,8)
Base price factor
top_new
tinyint(1)
New Arrivals/Top Picks
  • 1: yes
  • 0: no (default)
products_topnew_begin
datetime
New Arrivals/Top Picks Start
products_topnew_end
datetime
New Arrivals/Top Picks End
highlight
tinyint(1)
Highlight
  • 1: yes
  • 0: no (default)
featured_begin
datetime
Featured Start
featured_end
datetime
Highlight End
points
int(11)
 
languages
language
Each `languages` node contains [1..n] `language_{languages_code}` nodes. The ` {languages_code} ` is the ISO-2 code for the respective language.
language_{languages_code}
name
varchar(255)
Product Name
description
longtext
Long description
short_description
longtext
Short description
products_checkout_description
longtext
Key Product Features (Checkout Information)
products_contracts_description
mediumtext
Contract Description
products_url
varchar(255)
External product link (for internal use only)
seo_name
varchar(255)
SEO name of the product
domainname.tld/ProduktSEOName.html/
If no SEO name is specified, the product name is used as the SEO name.
title_tag
mediumtext
Meta Tag Title
desc_tag
mediumtext
Meta Tag Description
keywords_tag
mediumtext
Meta Tag Keywords (comma-separated)
products_image_title
varchar(255)
Description of the main image
products_image_title
varchar(255)
Description of the main image
unit_single
varchar(255)
Unit (singular form)
unit_multi
varchar(255)
Unit (plural form)
unit_base
varchar(255)
Base unit
special_shipping_description
varchar(255)
Special shipping description
categories
category
Each `categories` node contains [1..n] `category` nodes. There must be at least one valid category link.
category
 
int(11)
Category ID
extra_fields
extra_field
Each extra_fields node contains [1..n] extra_field nodes.
extra_field
name
varchar(64)
Name
value
text
Value
type
 
 
labels
label
Each labels node contains [1..n] label nodes.
label
label_category_id
int(11)
Label Category ID
label_id
int(11)
Label ID
desc_id
int(11)
Label description ID
badges
badge
Each badges node contains [1..n] badge nodes.
badge
badge_id
int(11)
ID of the product badge (must be > 0)
sort
int(11)
Sort order of the badge
xsells
xsell
Each xsells node contains [1..n] xsell nodes.
xsell
products_model
varchar(255)
Item number of the X-Sell product
sort_order
int(11)
Sort order
upsells
upsell
Each upsells node contains [1..n] upsell nodes.
upsell
 
varchar(255)
Item number of the upsell product
images
image
Each images node contains [1..n] image nodes.
image
file
varchar(255)
File name of the image OR external image link
sort
int(11)
Sort order of the image
videos
video
Each "videos" node contains [1..n] "video" nodes.
video
videos_file
varchar(255)
File name of the video OR external video link
videos_preview_image
varchar(255)
File name of the video thumbnail
manufacturers
manufacturer
Each manufacturers node contains [1..n] manufacturer nodes.
manufacturer
id
int(11)
Manufacturer ID
name
varchar(255)
Manufacturer Name
suppliers
supplier
Each suppliers node contains [1..n] supplier nodes.
supplier
id
int(11)
Supplier ID. If passed together with `name`, the supplier is created or updated. If only the ID is passed, an existing supplier is linked.
name
varchar(255)
Supplier name. If only the name is provided without an ID, a search is performed based on the name. If no supplier with this name exists, a new one is automatically created.
products_to_marketplaces
products_to_marketplace
Each products_to_marketplaces node contains [1..n] products_to_marketplace nodes.
products_to_marketplace
marketplace_id
int(11)
Marketplace ID
marketplace_status
tinyint(1)
Marketplace status
  • 1: active
  • 0: inactive (default)
products_to_marketplaces_data
products_to_marketplace_data
Each products_to_marketplaces_data node contains [1..n] products_to_marketplace_data nodes.
products_to_marketplaces_data
marketplace_id
int(11)
Marketplace ID
languages_id
int(11)
Language ID
products_to_marketplaces_data_id
int(11)
Marketplace configuration ID
products_to_marketplaces_data_value
varchar(255)
Marketplace configuration value
bonus_free_features
max_bonus
int(4)
 
max_free
int(4)
 
status_bonus
bool
Status (Bonus Product)
status_free
bool
Status (Free Product)
auto_free
bool
Status (Automatic Free Product)
bonus_points
int(11)
 
bonus_value
int(11)
 
special
price
decimal(16,8)
Net price of the special offer
name
varchar()
Name of the special offer
status
int(1)
Status (Special Offer)
begin
datetime
Start of the special offer
end
datetime
End of the special offer
customers_group_id
int(11)
Customer group ID for customer group-specific special offers
tabs
tab
Each tabs node contains [1..n] tab nodes.
tab
tabname
varchar()
Tab name
tabcontent
mediumtext
Tab content
tablng
varchar(2)
ISO-2 language code
tabsort
int(11)
Sort order of the tab
mask_tab_id
int(11)
Tab template ID
groups
group
Each groups node contains [1..n] group nodes.
group
id
int(11)
Customer group ID
price
decimal(16.8)
Customer Group Price (Net)
prices
price
Each `prices` node contains [1..12] `price` nodes.
price
value
decimal(16,8)
Tiered price
quantity
decimal(16,8)
Tiered price quantity
quantity_blocks
decimal(16,8)
Quantity tiers
min_quantity
decimal(16,8)
Minimum order quantity
max_quantity
decimal(16,8)
Maximum order quantity
customers
customer
Located within the ` groups` node (<groups><customers><customer>): Each `customers` node contains [1..n] `customer` nodes with customer-specific prices.
Note: Works starting with xoPort API 2.57.1 (July 2026)—older shop versions silently discarded this block during XML import.
Important – Replace/Remove Semantics:
  • For each imported product, the product import replaces the product’s entire customer price inventory (full mirror).
  • Removal: Re-import the product without the corresponding ` customer` entry (or without the ` customers` block entirely).
  • Customer prices manually maintained in the store will only survive the product import if the import node ` customers_prices ` is deactivated in the xoPort configuration or if the product has the import protection “Prices (Customer Prices)” (`price_customers`) set in the “xoPort Data Interface (XML)” tab.
customer
id
int(11)
Customer ID
external
varchar(64)
WaWi Customer Number (customers_id_extern)
price
decimal(16,8)
Customer Price (Net)
prices
price
Each `prices` node contains [1..12] `price` nodes.
price
value
decimal(16,8)
Tiered Price
quantity
decimal(16,8)
Tiered price quantity
quantity_blocks
decimal(16,8)
Quantity tiers
min_quantity
decimal(16,8)
Minimum order quantity
max_quantity
decimal(16,8)
Maximum order quantity
features
feature
Each features node contains [1..n] feature nodes.
Important processing rules:
  • Grouping: Multiple features with the same name are combined into ONE option; different value entries are created as option values.
  • Example: Two features with name="Farbe" and value="Rot" or value="Blau" result in a “Color” dropdown with the values “Red” and “Blue.”
  • New Options: Non-existent option names and values are automatically created in all languages.
  • Image processing: Images are automatically copied from /images/product/src/ to /images/optionen/src/, and thumbnails are regenerated.
feature
name
varchar()
Option name
value
varchar
Option value
type
string/int(11)
Option type
String values (recommended):
  • select: Drop-down menu (default, becomes Type 0)
  • text: Single-line input field (Type 1)
  • radio: Radio buttons (Type 2)
  • textarea: Multi-line text area (Type 4)
  • show_only: Display only, not selectable (Type 5, default if Type is missing or empty)
  • hide: Hidden (Type 6, automatically sets `required=0`)
  • radio_button: Classic radio buttons (Type 7)
  • radio_popup: Radio buttons with popup info (Type 9)
Numeric values (legacy):
  • 0: Select
  • 1: Text
  • 2: Radio
  • 3: Checkbox
  • 4: Textarea
  • 5: Show Only (default if type is missing)
  • 6: Hide (automatically sets `required=0`)
  • 7: Radio (Button)
  • 8: Checkbox (button)
  • 9: Radio (popup)
  • 12: Cart
Important: For select, radio, radio_button, and radio_popup, multiple features with the same name are combined into ONE option. For hide and show_only, required is automatically set to 0.
ean
varchar(255)
Option EAN/GTIN
model
varchar(255)
Options Item Number Suffix
Important: The value is automatically prefixed with a comma (,)!
Example: Input ROT → Saved: ,ROT
The complete product code consists of: Basis-Artikelnummer,Suffix
(e.g., ART-12345,ROT)
image
varchar(255)
Options image source (filename or link)
Automatic image processing:
  • Image is copied from /images/product/src/ to /images/optionen/src/
  • Existing thumbnails are automatically deleted and regenerated
  • Supported thumbnail sizes: mini, small, medium, large, xlarge
quantity
decimal(16,8)
Options stock quantity
Stock level for this specific variant (e.g., "Color: Red" has 10 units in stock)
price
decimal(16,8)
Option surcharge/discount (net)
Note: Commas (,) and periods (.) are accepted as decimal separators.
Negative values are allowed for price discounts (e.g., -2.50)
weight
decimal(16,8)
Option weight in kg
Note: Commas (,) and periods (.) are accepted as decimal separators.
required
tinyint(1)
Option required field
  • 0: No (default)
  • 1: Yes - Customer MUST make a selection
Important: For type=hide and type=show_only, this is automatically set to 0 (cannot be changed).
sort
int(11)
Option Sort Order
pre_select
tinyint(1)
Option preselected
  • 0: No (default)
  • 1: Yes - This option is preselected when the page is loaded
Important: Only ONE value can be preselected per option (same name). If there are multiple pre_select=1, the first entry takes precedence.
text_type_details
varchar(255)
Option text attributes (relevant only for option types text or textarea )
May contain validation rules, placeholders, or other specifications for text fields.

Master/Slave Items (Product Families)

Variants of an item (e.g., package sizes or colors) are represented via a product family. The assignment is made exclusively via the element ` family`:

  • All items in a group share the same value for ` family`.
  • The master is precisely the item whose ` model ` is identical to its ` family `.
  • All other items with the same ` family ` automatically become its variants.

The store calculates the internal links itself. There is no “ products_master ” element in the XML import.

<product>
  <model>ABC-100</model>              <!-- Master: model == family -->
  <family>ABC-100</family>
  <products_family_type>3</products_family_type>
  <groups><group><id>0</id><price>19.90</price></group></groups>
</product>
<product>
  <model>ABC-100-250</model>          <!-- Variante -->
  <family>ABC-100</family>
  <products_family_type>3</products_family_type>
  <groups><group><id>0</id><price>19.90</price></group></groups>
</product>
<product>
  <model>ABC-100-1000</model>         <!-- Variante -->
  <family>ABC-100</family>
  <products_family_type>3</products_family_type>
  <groups><group><id>0</id><price>59.90</price></group></groups>
</product>

Notes:

  • The order in the feed does not matter—the master item may also appear after its variants.
  • family is limited to 128 characters and must match exactly.
  • If family is empty in a subsequent feed, the group will be dissolved. For pure inventory or price feeds, include this value—or deselect both products_family and products_master from the import field selection.
  • products_family_type Set all items in the group to the same value.
  • The price comes from groups/group with id set to 0 (default customer group). An price directly under groups is not read.

Sample XML

The XML file must follow this naming convention:
Products(.)*.xml

Download examples:

Download sample file

Download Master/Slave Example File

Download XSL Definition (not XSD!)

Last updated: August 27, 2026