Skip to content

Full product export

A full product export can be requested by using the endpoint /shopwareexport. It is usually used to populate an e-commerce system. Continue reading to learn how to interpret the data.

Request body

The following properties must be sent with the POST request body:

json
{
  "language": "de",
  "country": "de",
  "filename": "",
  "factor": "0",
  "groups": [
    "D", "G", "V"
  ]
}

language and country can be one of the following: de, en, fr, it, es, nl, pl, da, sv, fi, no, tr, ro, sk, ru, be, sk, et, hu, cz

filename: has no effect

groups: The articles are divided into 3 main groups/categories. You have to define the category you want to query with the request body.

  • D - Camping Shop
  • G - Camper Van Conversion Shop
  • V - Spare Part Shop

Query parameter

WARNING

A response usually takes between 5 and ten minutes. Make sure to not run into a timeout on your end. Therefore, we advise to request a rather large amount of rows (~5.000 - 10.000) since the request will take that long no matter the size. (Requesting only 1 row will still take some minutes).

  • rows (optional, default 0): Specifies the number of article objects returned per page. (advised to use ~5.000)
  • page (optional, default 0): Specifies the page index to return, where 0 is the index of the first page. Continue by iterating this parameter taking the property total_pagesin the metaData object into account.
  • flatternMaster (optional, default false) true/false: Should be false if you want to retrieve the data in a hierarchical structure containing master articles.
  • startDate (optional, default empty): Format is yyyy-mm-dd.
  • endDate (optional, default empty): Format is yyyy-mm-dd.
  • factor deprecated - but make sure to send this parameter empty, since not sending it might break or return no result.

Pagination can be achieved using the parameters page and rows.

WARNING

The API is paginated, but the pagination is not working properly.

How to understand the response of /shopwareexport

The response of this endpoint contains the following arrays and objects.

  • metaData - object
  • articles - array
  • categories - array
  • classes - object
  • columns - object
  • suppliers - array

The metaData object - pagination

The response contains an object metaData. This object returns the following properties: Where the number of total_pages depends on the requests number of rows.

json
"metaData": {
    "total_rows": 41214,
    "total_pages": 9,
    "start": 0,
    "rows": 5000
}

🐞 known issues:

  • The total_rows and total_pages may not always be correct. Which means you will receive an empty articles array when requesting one of the last pages. When using the pagination you should stop after the first response where this empty array occurs.

The articles array

The response object contains an array called articles. The objects in this array contain information about articles. Therefore we will call them article objects.

For a detailed explanation see article/{atnr}

🐞 known issues:

  • If an article is present as a variant of a master article, it will later be repeated as a standalone article resulting in duplicate object for a single article number.

The categories array

The response object contains an array called categories. Depending on you request body the response contains articles from the given categories.

For a detailed explanation see categories

The suppliers array

The response object contains an array called suppliers.

The supplier is referenced by a key through the article property supplier:

json
"supplier": "REIMO"

INFO

Note that not every article has a supplier referenced.

The details for each supplier can be retrieved from the suppliers array. Where the following properties resolve the relation article.supplier <-> suppliers.shortname.

json
        {
            "shortname": "REIMO",
            "name": "REIMO",
            "images": [
                {
                    "url": "https://static.reimo-shops.de/supplier-imagepool/full/7f/e1/Reimo_logo.jpg?20240229093326",
                    "description": null,
                    "width": 0,
                    "height": 0,
                    "size": 0,
                    "id": 43838449,
                    "thumbnails": [
                        {
                            "url": "https://static.reimo-shops.de/supplier-imagepool/w200/7f/e1/Reimo_logo.jpg?20240229093326",
                            "width": 200,
                            "height": 200,
                            "size": 1
                        },
                        {
                            "url": "https://static.reimo-shops.de/supplier-imagepool/w500/7f/e1/Reimo_logo.jpg?20240229093326",
                            "width": 500,
                            "height": 500,
                            "size": 1
                        }
                    ]
                }
            ]
        }

The classes object

While the key of a product_class is always in German, the object data for this class can be fetched in different languages. Each object is keyed and the key is listed in the article/{atnr} as product_class. It contains two arrays: columns and columnsExt. columnsExt contains data and metadata about a list of properties that an article can have through valuesnew.

Through prefix and postfix you can retrieve information such as leading symbols e.g. Ø or the metric unit such as cm, kg, l etc.

Variation of a master article

To be able to display the variation of a master article in an e-commerce system, you need to evaluate the boolean property viewOnly. If true the property is only for display, if false the property should be used for variant selection if a value is given.

INFO

Please note that not every article has values for each class property.

Example of a possible translation of a valuesnew key

keydeennl
farbeFarbecolourkleur

Example data for Sonnendach/-segel

json
"Sonnendach/-segel": {
    "columns": [
        "farbe",
        "breite_in_cm",
        "tiefe_in_cm",
        "hohe-in-cm",
        "packmass",
        "packmass-lange",
        "packmass-breite",
        "packmass-hohe",
        "gewicht-in-kg",
        "gestangetyp",
        "material",
        "gramm_pro_qm",
        "wassersaule",
        "kederdurchmesser-a",
        "kederdurchmesser-b",
        "tasche"
    ],
    "columnsExt": [
        {
            "catalogColumn": false,
            "dbId": 17,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "dropdown",
            "key": "farbe",
            "mandatory": false,
            "name": "colour",
            "options": {},
            "position": 0,
            "postfix": "",
            "prefix": "",
            "viewOnly": false
        },
        {
            "catalogColumn": false,
            "dbId": 62,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "breite_in_cm",
            "mandatory": false,
            "name": "Width ",
            "options": {},
            "position": 10,
            "postfix": "cm",
            "prefix": "",
            "viewOnly": false
        },
        {
            "catalogColumn": false,
            "dbId": 63,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "tiefe_in_cm",
            "mandatory": false,
            "name": "Depth ",
            "options": {},
            "position": 20,
            "postfix": "cm",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 155,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "hohe-in-cm",
            "mandatory": false,
            "name": "Height ",
            "options": {},
            "position": 30,
            "postfix": "cm",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 370,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "packmass",
            "mandatory": false,
            "name": "Packing size",
            "options": {},
            "position": 40,
            "postfix": "cm",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 156,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "packmass-lange",
            "mandatory": false,
            "name": "Packing length",
            "options": {},
            "position": 50,
            "postfix": "cm",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 77,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "packmass-breite",
            "mandatory": false,
            "name": "Packing width",
            "options": {},
            "position": 60,
            "postfix": "cm",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 78,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "packmass-hohe",
            "mandatory": false,
            "name": "Packing dimension height",
            "options": {},
            "position": 70,
            "postfix": "cm",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 81,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "gewicht-in-kg",
            "mandatory": false,
            "name": "Weight",
            "options": {},
            "position": 80,
            "postfix": "kg",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": true,
            "dbId": 395,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "dropdown",
            "key": "gestangetyp",
            "mandatory": false,
            "name": "Rod type",
            "options": {},
            "position": 90,
            "postfix": "",
            "prefix": "",
            "viewOnly": false
        },
        {
            "catalogColumn": true,
            "dbId": 38,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "dropdown",
            "key": "material",
            "mandatory": false,
            "name": "material",
            "options": {},
            "position": 100,
            "postfix": "",
            "prefix": "",
            "viewOnly": false
        },
        {
            "catalogColumn": false,
            "dbId": 64,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "gramm_pro_qm",
            "mandatory": false,
            "name": "Gramm per sqm",
            "options": {},
            "position": 105,
            "postfix": "",
            "prefix": "",
            "viewOnly": false
        },
        {
            "catalogColumn": false,
            "dbId": 392,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "wassersaule",
            "mandatory": false,
            "name": "Water column",
            "options": {},
            "position": 110,
            "postfix": "mm",
            "prefix": "",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 393,
            "defaultValue": "",
            "displayWidget": "int",
            "inputWidget": "float",
            "key": "kederdurchmesser-a",
            "mandatory": false,
            "name": "Keder diameter A",
            "options": {},
            "position": 120,
            "postfix": "mm",
            "prefix": "Ø",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 394,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "float",
            "key": "kederdurchmesser-b",
            "mandatory": false,
            "name": "Keder diameter B",
            "options": {},
            "position": 130,
            "postfix": "mm",
            "prefix": "Ø",
            "viewOnly": true
        },
        {
            "catalogColumn": false,
            "dbId": 65,
            "defaultValue": "",
            "displayWidget": "unknown",
            "inputWidget": "dropdown",
            "key": "tasche",
            "mandatory": false,
            "name": "bag",
            "options": {},
            "position": 140,
            "postfix": "",
            "prefix": "",
            "viewOnly": false
        }
    ],
    "filterItems": null,
    "items": null,
    "itemsFounds": 0,
    "key": "Sonnendach/-segel",
    "name": "Sun canopy/sail",
    "numFounds": 0
},