Elli - PIM API (1.0)

Download OpenAPI specification:Download

Team Festoni: team.festoni@elli.eco

The API provides information on products and prices. servers:

GET Products

Returns a list of all products.

Authorizations:
API-Key
query Parameters
locale
string^([a-z]{2})_([A-Z]{2})$
Default: "de_DE"
Example: locale=it_CH

Can be used for country and language differences

page
string^\d+$
Default: "1"

Requested page

Responses

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "offset": 0,
  • "limit": 0,
  • "maxLimit": 0,
  • "products": [
    ]
}

GET Product

Returns a product by SKU.

Authorizations:
API-Key
path Parameters
sku
required
string
Example: 2045698-01

If the transferred SKU is a Head SKU of a bundle, the MainPackage of the bundle is automatically returned. To be identified by the body attribute head_sku.

query Parameters
locale
string^([a-z]{2})_([A-Z]{2})$
Default: "de_DE"
Example: locale=it_CH

Can be used for country and language differences

Responses

Response samples

Content type
application/json
{
  • "sku": "2041593-01",
  • "ean": 4067989002285,
  • "head_sku": "2017743-72",
  • "item_group_sku": "string",
  • "otlg_id": "Z 467950 001",
  • "type": "WALLBOX",
  • "type_detailed": "Kit",
  • "product_line": "MGWB",
  • "name": "string",
  • "description": "string",
  • "components": [
    ],
  • "addons": [
    ],
  • "attributes": [
    ],
  • "display_description": "string",
  • "meta_description": "string",
  • "meta_title": "string",
  • "sales_markets": [
    ],
  • "brand": "string",
  • "categories": [
    ],
  • "status": "ACTIVE",
  • "priority": 0
}

GET Price list

Returns the a list of price informations.

Authorizations:
API-Key
query Parameters
country
string^[A-Z]{2}$
Default: "DE"
Example: country=CH

Needed for market differences in price

sku
string

Can be used for filtering the list

page
string

Requested page

Responses

Response samples

Content type
{
  • "sku": "string",
  • "headSku": "string",
  • "prices": {
    }
}

GET Price

Returns the price information of a product.

Authorizations:
API-Key
path Parameters
sku
required
string
Example: 2045698-01

If the transferred SKU is a Head SKU of a bundle, the MainPackage of the bundle is automatically returned. To be identified by the body attribute head_sku.

query Parameters
type
required
string^[A-Z]+[A-Z\\d]*$
Example: type=B2B

Needed to display prices in the correct context. May be any of CSM, OTLG, B2B, B2C, AMAZON and also those created through PIM admin.

country
string^[A-Z]{2}$
Default: "DE"
Example: country=CH

Needed for market differences in price

Responses

Response samples

Content type
application/json
{
  • "sku": "2041593-01",
  • "head_sku": "2017743-72",
  • "price_with_vat": {
    },
  • "price_without_vat": {
    },
  • "currency": "string",
  • "tax_rate": 0,
  • "customer_product_id": "test-01"
}

GET PriceTypes

Returns a list of all price types.

Authorizations:
API-Key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get shipping methods Deprecated

Retrieves available shipping methods and their pricing based on provided parameters.

If the prices are not available for specific PriceType/Market combination, an error code is returned for that shipping method. E.g. if you request prices for specific price type (e.g. VAR1) and they are not configured, it is resposibility of the client to handle this and request prices for another PriceType (e.g. B2B).

How it works

There are currently two shipping methods available - CEP and FREIGHT and each is calculated separately.

CEP

CEP is a standard box which is used to ship a wallbox (or spare parts). Each box is paid separately and in MAIN_PIM_IMPORT sheet there are prices defined for each wallbox box, spare part or charging card + Sales Market + Price Typ combination.

If the user orders 3 wallboxes and 2 spare parts, they pay 3*wallbox rate + 2*spare parts rate for the delivery.

Please note that currently the prices for spare parts and cards/vouchers are set to 0.

FREIGHT

Freight shipping is significantly more complex, because the products are packaged to pallets and the customer pays the delivery cost per pallet count. Interesting fact is that the cost per pallet is not linear, but must be provided by business (it costs less to delivery two pallets to an address than it costs to delivery a single pallet twice).

Therefore the calculation in PIM does an approximate calculation on how many pallets it will take to deliver the order. The result may differ from the situation in the real world - it may take more pallets (or less) to fit the products on, depending on how the products are packed and wrapped. Also we don't take into account the sizes and shapes of spare parts.

Plase note that charging cards or vouchers don't take any space on a pallet.

Following configuration options are available:

  • shipping_freight_boxes_count_per_pallet (default: 8) to define how many MGWB wallbox boxes fit onto one pallet
  • shipping_freight_spare_parts_count_per_box (default: 6) to define how many MGWB spare parts fit into one MGWB wallbox box
  • shipping_freight_next_gen_boxes_count_per_pallet (default: 32) to define how many AC NextGen wallboxes fit onto one pallet
  • shipping_freight_next_gen_spare_parts_count_per_next_gen_box (default: 6) to define how many AC NextGen spare parts fit into one AC NextGen wallbox box

The calculation works this way:

  1. number of wallbox boxes is calculated
  2. number of boxes with spare parts is calculated (if there is one MGWB wallbox or MGWB spare part in the order, MGWB configuration is used, otherwise NextGen configuration is used)
  3. boxes are divided to pallets using the configured pallet size (again, if there is one MGWB wallbox or MGWB spare part in the order, MGWB configuration is used, otherwise NextGen configuration is used
  4. price for the resulting number of pallets is fetched from database

Examples

  1. 1 MGWB wallbox + 8 MGWB spare parts: 1 box for wallbox, 2 boxes for spare parts, resulting in 3 boxes, which fit onto one pallet
  2. 7 MGWB wallboxes + 6 MGWB spare parts: 7 boxes for wallboxes, 1 box for spare parts, resulting in 8 boxes, which fit onto one pallet
  3. 7 MGWB wallboxes + 7 MGWB spare parts: 7 boxes for wallboxes, 2 boxes for spare parts, resulting in 9 boxes, which fit onto two pallets
  4. 8 MGWB wallboxes + 1 charging card: 8 boxes for wallboxes, nothing for charging card, resulting in 8 boxes, which fit onto one pallet
  5. 4 MGWB wallboxes + 5 NextGen wallboxes: there are MGWB wallboxes, therefore we use MGWB sizes, resuling in 9 boxes which fit onto two pallets (in reality, this order will probably fit onto one pallet)
Request Body schema: application/json
country
string

The market for the order (e.g., DE).

priceType
string

PriceType (e.g., B2B).

Array of objects

List of products in the order.

Responses

Request samples

Content type
application/json
{
  • "country": "string",
  • "priceType": "string",
  • "products": [
    ]
}

Response samples

Content type
application/json
{
  • "shippingMethods": [
    ]
}

Get shipping methods

Retrieves available shipping methods and their pricing based on provided parameters.

If the prices are not available for specific PriceType/Market combination, an error code is returned for that shipping method. E.g. if you request prices for specific price type (e.g. VAR1) and they are not configured, it is resposibility of the client to handle this and request prices for another PriceType (e.g. B2B).

How it works

There are currently two shipping methods available - CEP and FREIGHT and each is calculated separately.

CEP

CEP is a standard box which is used to ship a wallbox (or spare parts). Each box is paid separately and in MAIN_PIM_IMPORT sheet there are prices defined for each wallbox box, spare part or charging card + Sales Market + Price Typ combination.

If the user orders 3 wallboxes and 2 spare parts, they pay 3*wallbox rate + 2*spare parts rate for the delivery.

Please note that currently the prices for spare parts and cards/vouchers are set to 0.

FREIGHT

Freight shipping is significantly more complex, because the products are packaged to pallets and the customer pays the delivery cost per pallet count. Interesting fact is that the cost per pallet is not linear, but must be provided by business (it costs less to delivery two pallets to an address than it costs to delivery a single pallet twice).

Therefore the calculation in PIM does an approximate calculation on how many pallets it will take to deliver the order. The result may differ from the situation in the real world - it may take more pallets (or less) to fit the products on, depending on how the products are packed and wrapped. Also we don't take into account the sizes and shapes of spare parts.

Plase note that charging cards or vouchers don't take any space on a pallet.

Following configuration options are available:

  • shipping_freight_boxes_count_per_pallet (default: 8) to define how many MGWB wallbox boxes fit onto one pallet
  • shipping_freight_spare_parts_count_per_box (default: 6) to define how many MGWB spare parts fit into one MGWB wallbox box
  • shipping_freight_next_gen_boxes_count_per_pallet (default: 32) to define how many AC NextGen wallboxes fit onto one pallet
  • shipping_freight_next_gen_spare_parts_count_per_next_gen_box (default: 6) to define how many AC NextGen spare parts fit into one AC NextGen wallbox box

The calculation works this way:

  1. number of wallbox boxes is calculated
  2. number of boxes with spare parts is calculated (if there is one MGWB wallbox or MGWB spare part in the order, MGWB configuration is used, otherwise NextGen configuration is used)
  3. boxes are divided to pallets using the configured pallet size (again, if there is one MGWB wallbox or MGWB spare part in the order, MGWB configuration is used, otherwise NextGen configuration is used
  4. price for the resulting number of pallets is fetched from database

Examples

  1. 1 MGWB wallbox + 8 MGWB spare parts: 1 box for wallbox, 2 boxes for spare parts, resulting in 3 boxes, which fit onto one pallet
  2. 7 MGWB wallboxes + 6 MGWB spare parts: 7 boxes for wallboxes, 1 box for spare parts, resulting in 8 boxes, which fit onto one pallet
  3. 7 MGWB wallboxes + 7 MGWB spare parts: 7 boxes for wallboxes, 2 boxes for spare parts, resulting in 9 boxes, which fit onto two pallets
  4. 8 MGWB wallboxes + 1 charging card: 8 boxes for wallboxes, nothing for charging card, resulting in 8 boxes, which fit onto one pallet
  5. 4 MGWB wallboxes + 5 NextGen wallboxes: there are MGWB wallboxes, therefore we use MGWB sizes, resuling in 9 boxes which fit onto two pallets (in reality, this order will probably fit onto one pallet)
Request Body schema: application/json
country
string

The market for the order (e.g., DE).

price_type
string

PriceType (e.g., B2B).

Array of objects

List of products in the order.

Responses

Request samples

Content type
application/json
{
  • "country": "string",
  • "price_type": "string",
  • "products": [
    ]
}

Response samples

Content type
application/json
{
  • "shipping_methods": [
    ]
}