Skip to main content

Retino Products XML Feed

O
Written by Ondřej Průša
Updated over a week ago

The Retino Products XML feed is a key tool for synchronizing your e-shop's product catalog with the Retino system. This integration allows you to use advanced features such as creating stock claims, searching for products by code or EAN, and other advanced product management options.

What is the Retino Products XML feed for?

The product feed primarily serves these purposes:

  • Creating stock claims in the Supplier Complaints add-on without the need for an existing customer claim.

  • Quickly searching for products by code, name, EAN, or other parameters.

  • Obtaining precise product information, including prices, categories, and stock levels.

  • Detailed product descriptions for better claim management.

Important Note. If you are using the Shoptet platform, products are automatically synchronized from your e-shop via the API, and there is no need to configure the XML feed described in this article.

XML Feed Structure

The product feed has a clearly defined structure that must be followed for proper functionality:

Basic Document Structure

The feed begins with an XML header with version 1.0 and UTF-8 encoding (we only support UTF-8). Then follows the paired tag PRODUCTS, containing all products, each in a separate PRODUCT tag.

Example of basic structure:

<?xml version="1.0" encoding="UTF-8"?>
<PRODUCTS>
    <PRODUCT>
        <!-- product details -->
    </PRODUCT>
    <PRODUCT>
        <!-- details of another product -->
    </PRODUCT>
    <!-- other products -->
</PRODUCTS>

Individual Product Structure

Each product contains a number of tags with product information. Here's a complete example of a single product structure:

<PRODUCT>
    <!-- Identifiers -->
    <CODE>product-code</CODE>
    <EXTERNAL_ID>external-id-1</EXTERNAL_ID>
    <PRODUCT_ID>1234567890123</PRODUCT_ID>
    <EAN>1234567890123</EAN>    <!-- Description -->
    <NAME>Product 1</NAME>
    <DESCRIPTION>Product description</DESCRIPTION>
    <VARIANT>Variant</VARIANT>
    <SUPPLIER>Supplier</SUPPLIER>
    <MANUFACTURER>Manufacturer</MANUFACTURER>
    <CATEGORY>Category</CATEGORY>    <!-- Links -->
    <IMG_URL>http://www.example.com/image.jpg</IMG_URL>
    <URL>http://www.example.com/product.html</URL>    <!-- Price -->
    <PRICE>100</PRICE>
    <CURRENCY>EUR</CURRENCY>
    <VAT_PERCENT>20</VAT_PERCENT>
    <VAT_INCLUDED>0</VAT_INCLUDED>    <!-- Stock -->
    <STOCK_IS_AVAILABLE>1</STOCK_IS_AVAILABLE>
    <STOCK_QUANTITY>10</STOCK_QUANTITY>
    <STOCK_UNIT>pcs</STOCK_UNIT>    <!-- Offering other products -->
    <RELATED_PRODUCTS>related-product-code-1,related-product-code-2</RELATED_PRODUCTS>
    <ALTERNATIVE_PRODUCTS>alternative-product-code-1,alternative-product-code-2</ALTERNATIVE_PRODUCTS>
</PRODUCT>

Product Feed Field Descriptions

Field Name

Type

Required

Description

CODE

VARCHAR(255)

Yes

Product code visible to the customer

EXTERNAL_ID

VARCHAR(255)

Yes

External system product ID

PRODUCT_ID

VARCHAR(255)

Yes

Product ID

EAN

VARCHAR(255)

No

Product EAN code

NAME

VARCHAR(255)

Yes

Product name

DESCRIPTION

VARCHAR(255)

No

Product description

VARIANT

VARCHAR(255)

No

Product variant

SUPPLIER

VARCHAR(255)

No

Product supplier

MANUFACTURER

VARCHAR(255)

No

Product manufacturer

CATEGORY

VARCHAR(255)

No

Product category

IMG_URL

VARCHAR(255)

No

Product image URL

URL

VARCHAR(255)

No

Product URL on your e-shop

PRICE

DECIMAL

Yes

Product price (with or without VAT, depending on VAT_INCLUDED)

CURRENCY

VARCHAR(3)

Yes

Currency in ISO 4217 format (CZK, EUR...)

VAT_PERCENT

DECIMAL

Yes

VAT rate in percentage (e.g., 21)

VAT_INCLUDED

1 or 0

Yes

Is VAT included? (1 = yes, 0 = no)

STOCK_IS_AVAILABLE

1 or 0

No

Is the product in stock? (1 = yes, 0 = no)

STOCK_QUANTITY

DECIMAL

No

Number of stock units

STOCK_UNIT

VARCHAR(255)

No

Stock unit (pcs, kg,...)

RELATED_PRODUCTS

VARCHAR

No

Comma-separated codes of related products

ALTERNATIVE_PRODUCTS

VARCHAR

No

Comma-separated codes of alternative products

How the Product Feed Synchronization Works

The process of synchronizing products from your e-shop to Retino is straightforward:

  1. Create an XML feed according to the structure above, containing all your products.

  2. Place the feed on a publicly accessible URL.

  3. Send this URL to [email protected].

  4. Retino will download the data from this address once a day.

Security Recommendations

Data transfer occurs over HTTPS, and we recommend securing it in one of these ways:

  • HTTP Basic Authentication - the most secure solution, requiring a username and password to access the feed.

  • "Unpredictable" URL - if HTTP Basic Authentication is not possible, place the feed on a URL with a random identifier, e.g., www.your-eshop.com/feeds/9b9972387feb11eabc550242ac130003.xml

Technical Note: Your server must return a response within 60 seconds of the request.

Correct Data Formatting in XML

When preparing the XML feed, pay attention to several technical aspects:

Working with Special Characters

The XML format does not allow certain characters like <, >, or & within strings. You have two options for handling this:

  1. Replace special characters with their XML entities:

    • < replaced with &lt;

    • > replaced with &gt;

    • & replaced with &amp;

  2. Wrap the tag content within a CDATA entity (recommended approach).

Incorrect example (XML parser will throw an error):

<NAME>Slim&Sun 100 tablet</NAME>

Correct example (using CDATA):

<NAME><![CDATA[Slim&Sun 100 tablet]]></NAME>

Format of Numerical Values

When entering numerical values in the PRICE, VAT_PERCENT, or STOCK_QUANTITY tags, follow these rules:

  • Use a decimal point (.) to separate decimal places.

  • Do not use a thousands separator.

  • Do not include the currency with the value (currency belongs to the CURRENCY tag).

Correct examples:

<PRICE>1299.90</PRICE>
<VAT_PERCENT>21</VAT_PERCENT>
<STOCK_QUANTITY>42</STOCK_QUANTITY>

Validating the Feed

To verify the correctness of your XML feed format, you can use the XSD schema that defines all allowed elements and their structure:

You can use this schema in various XML validators to check if your feed meets all requirements.

Using the Product Feed in Retino

After successfully synchronizing the product feed, you can utilize various features in Retino:

Creating Stock Claims

When creating a "Supplier Complaint" type ticket, you can search for products from your catalog:

  1. Enter at least 3 characters into the search field (name, code, EAN, etc.).

  2. The system will display matching products.

  3. Click the "+" button to add the product to the claim.

  4. Fill in the necessary claim details (reason, proposed solution, etc.).

Searching for Products by Various Parameters

The product feed allows searching for products based on various criteria:

  • By product code (CODE)

  • By EAN code

  • By product name

  • By supplier (SUPPLIER)

  • By manufacturer (MANUFACTURER)

This search is available wherever you work with products within the Retino system.

Frequently Asked Questions

How often is the product feed updated?

Synchronization typically occurs once a day. If you require more frequent updates, please contact us at [email protected].

What if my XML feed structure changes?

Any changes to the feed structure need to be discussed with our support team to avoid disrupting synchronization.

Is it possible to use a format other than XML?

Currently, we only support the XML format according to the defined structure. For the Shoptet platform, we use direct API integration.

Can I include products from multiple e-shops in one feed?

No, a separate feed should exist for each e-shop.

What should I do if some fields are unavailable?

Fill in all required fields. You can leave out optional fields if the information is unavailable.

Technical Support

If you need assistance with creating or implementing the product feed, please contact us:

Did this answer your question?