### Get All Product Outlines Source: https://developers.merchants.zalando.com/docs/products-onboarding-cheatsheet This API call retrieves all available product outlines for a merchant. It's a starting point for understanding the structure of product data on Zalando. The response is a large JSON object containing extensive details. ```HTTP GET /merchants­/{merchant_id}/outlines ``` -------------------------------- ### Product Submission JSON Example Source: https://developers.merchants.zalando.com/docs/products-onboarding-cheatsheet An example of a valid JSON payload for submitting product information, using the 'sandals' outline. ```APIDOC ## POST /api/products/submissions ### Description Submits a new product to the Zalando platform. This endpoint requires a JSON payload adhering to a specific product outline. ### Method POST ### Endpoint /api/products/submissions ### Parameters #### Request Body - **outline** (string) - Required - The product outline to use (e.g., "sandals"). - **product_model** (object) - Required - Contains the product model details. - **merchant_product_model_id** (string) - Required - Unique identifier for the product model from the merchant. - **product_model_attributes** (object) - Required - Attributes of the product model. - **name** (string) - Required - The name of the product. - **brand_code** (string) - Required - The Zalando brand code for the product. - **size_group** (object) - Required - Information about the size group. - **size** (string) - Required - The size identifier. - **target_genders** (array) - Required - An array of target genders (e.g., ["target_gender_male", "target_gender_female"]). - **target_age_groups** (array) - Required - An array of target age groups (e.g., ["target_age_group_adult"]). - **product_configs** (array) - Required - An array of product configurations. - **merchant_product_config_id** (string) - Required - Unique identifier for the product configuration from the merchant. - **product_config_attributes** (object) - Required - Attributes of the product configuration. - **color_code.primary** (string) - Required - The primary color code. - **description** (object) - Required - Product description in multiple languages. - **en** (string) - Optional - English description. - **de** (string) - Optional - German description. - **ru** (string) - Optional - Russian description. - **material.upper_material_clothing** (array) - Optional - Information about upper material. - **material_code** (string) - Required - Material code. - **material_percentage** (number) - Required - Percentage of the material. - **media** (array) - Optional - Array of media objects. - **media_path** (string) - Required - URL of the media. - **media_sort_key** (integer) - Required - Sorting key for media. - **washing_instructions** (string) - Optional - Code for washing instructions. - **season_code** (string) - Optional - Season code (e.g., "fs20"). - **supplier_color** (string) - Optional - Supplier's color name. - **product_simples** (array) - Required - An array of product simples. - **merchant_product_simple_id** (string) - Required - Unique identifier for the product simple from the merchant. - **product_simple_attributes** (object) - Required - Attributes of the product simple. - **ean** (string) - Required - EAN (European Article Number). - **size_codes** (object) - Required - Size information. - **size** (string) - Required - The size value. ### Request Example ```json { "outline": "sandals", "product_model": { "merchant_product_model_id": "MODEL_ID_123", "product_model_attributes": { "name": "AIR FORCE SANDALS 1 '07 LV8 UTILITY", "brand_code": "ns1", "size_group": { "size": "4MU1000E2A" }, "target_genders": [ "target_gender_male", "target_gender_female" ], "target_age_groups": [ "target_age_group_adult" ] }, "product_configs": [ { "merchant_product_config_id": "7b077fc4-fde3-47d4-8b25-97af8792", "product_config_attributes": { "color_code.primary": "001", "description": { "en": "Nice sandals", "de": "Gute Sandale", "ru": "Отличные сандали" }, "material.upper_material_clothing": [ { "material_code": "li", "material_percentage": 97.5 }, { "material_code": "el", "material_percentage": 2.5 } ], "media": [ { "media_path": "https://hosting_of_your_choice/media/7b077fc4-fde3-47d4-8b25-97af8792/pic-1.jpg", "media_sort_key": 1 }, { "media_path": "https://hosting_of_your_choice/media/7b077fc4-fde3-47d4-8b25-97af8792/pic-2.jpg", "media_sort_key": 2 } ], "washing_instructions": "washing_instructions_4106", "season_code": "fs20", "supplier_color": "white" }, "product_simples": [ { "merchant_product_simple_id": "white-shoes-1105AA", "product_simple_attributes": { "ean": "9780679762881", "size_codes": { "size": "42" } } }, { "merchant_product_simple_id": "white-shoes-2216BB", "product_simple_attributes": { "ean": "9780679763992", "size_codes": { "size": "44.5" } } } ] }, { "merchant_product_config_id": "7b077fc4-fde3-47d4-8b25-97af8793", "product_config_attributes": { "color_code.primary": "608", "description": { "en": "Nice sandals", "de": "Gute Sandale", "ru": "Отличные сандали" }, "material": [ { "material_code": "li", "material_percentage": 87.5 }, { "material_code": "el", "material_percentage": 12.5 } ], "media": [ { "media_path": "https://hosting_of_your_choice/media/7b077fc4-fde3-47d4-8b25-97af8793/pic-1.jpg", "media_sort_key": 1 }, { "media_path": "https://hosting_of_your_choice/media/7b077fc4-fde3-47d4-8b25-97af8793/pic-2.jpg", "media_sort_key": 2 } ], "season_code": "fs20", "supplier_color": "mint" }, "product_simples": [ { "merchant_product_simple_id": "mint-shoes-3326CC", "product_simple_attributes": { "ean": "9813752182012", "size_codes": { "size": "44.5" } } } ] } ] } } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message upon successful submission. - **product_id** (string) - The unique identifier assigned to the submitted product. #### Response Example ```json { "message": "Product submitted successfully.", "product_id": "prod_12345abcde" } ``` #### Error Response (400) - **error** (string) - Description of the error (e.g., "Invalid JSON payload", "Missing required field: outline"). #### Error Response Example ```json { "error": "Invalid JSON payload" } ``` ``` -------------------------------- ### Get All Logistic Centers - Example Request Source: https://developers.merchants.zalando.com/docs/logistic-centers An example of how to make an HTTP request to the Zalando API to get all logistic centers for a given merchant ID. This example uses httpie and demonstrates how to include the authorization token. Ensure you replace '{merchant-id}' and '$YOUR_ACCESS_TOKEN' with your actual values. ```http http \ https://api.merchants.zalando.com/merchants/{merchant-id}/logistic-centers \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Implementation Best Practice Source: https://developers.merchants.zalando.com/docs/onboarding-new-products Recommends building a UI layer on top of the Product, Product Attributes, and Product Submissions API to simplify the product onboarding process, especially for large numbers of products. Mentions ongoing improvements to the onboarding experience. ```APIDOC ## Implementation Best Practice The current process for submitting new products has many steps. It is possible to manually construct a product submission JSON, but doing so may be time consuming, especially if you have a large number of products to onboard. We recommend building a UI layer on top of the Product, Product Attributes, and Product Submissions API to simplify the process. Reading through this section will help you understand how the process works, and how the APIs can be used in a custom solution. Improvements to the product onboarding experience are currently in development. Note We recommend updating all attributes once a month, since they might change. For breaking changes though, we will reach out beforehand to your technical contacts in zDirect. ``` -------------------------------- ### HTTPie Example with Sales Channel Filter Source: https://developers.merchants.zalando.com/docs/orders-api-get-deletion-requests An example using httpie to fetch orders deletion requests filtered by a specific sales channel ID, including authorization. ```HTTP http https://api-sandbox.merchants.zalando.com/merchants/{merchant_ID}/orders-deletion-requests \ sales_channel_id={sales_channel_id} \ Authorization:Bearer $YOUR_ACCESS_TOKEN ``` -------------------------------- ### Product Outline Example (Sandals) Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This section provides an example outline for the 'sandals' product model, detailing mandatory and optional types for model, config, and simple variants, along with restricted attributes and validation hints. ```APIDOC ## Product Outline Example The following is the outline for the product model `sandals`: ```json { "label": "sandals", "tiers": { "model": { "optional_types": [], "mandatory_types": [ "target_age_groups", "target_genders", "name", "brand_code", "size_group" ], "restricted_attributes": [] }, "config": { "optional_types": [ "condition", "color_code.secondary", "color_code.tertiary", "width", "shape", "decksohle", "material.filling", "futter", "heel_form", "insole_technology", "material_construction", "non_textile_but_animal_parts", "occasion", "padding_type", "pattern", "shoe_detail", "shoe_toecap", "shoe_width", "size_fits", "sole_material", "sport_qualities", "sport_shoe_details", "sport_shoe_insole", "sport_shoe_outer_sole", "sport_shoe_outer_sole_technology", "sport_type", "upper_material", "washing_instructions" ], "mandatory_types": [ "color_code.primary", "media", "season_code", "supplier_color", "description" ], "restricted_attributes": [ { "type": { "label": "washing_instructions", "version": "1.0.0" }, "values": [ "washing_instructions_4106", "washing_instructions_4107", "washing_instructions_6999", "washing_instructions_7858" ] } ], "validation_hints": { "material.filling": { "hint_type": "mandatory_if_applicable", "description": { "en": "Please specify the material composition if the product has filling." }, "related_types": [] } } }, "simple": { "optional_types": [ "metric.heel_height", "metric.platform_height", "metric.schafthoehe", "metric.schaftweite" ], "mandatory_types": [ "ean", "size_codes" ], "restricted_attributes": [] } } } ``` ``` -------------------------------- ### Onboarding Existing Products Source: https://developers.merchants.zalando.com/docs/products-api Instructions on using the Products API to map your product identifiers to an existing EAN in the Zalando Catalog. ```APIDOC ## Onboarding Existing Products ### Description For instructions on using the Products API to submit a mapping of product identifiers to an EAN, see Onboarding Existing Products in our Developer Guide. ``` -------------------------------- ### HTTP Example for Orders Deletion Requests Source: https://developers.merchants.zalando.com/docs/orders-api-get-deletion-requests An example of how to call the orders deletion requests endpoint using a Bearer token for authorization. Replace placeholders with actual values. ```HTTP http https://api-sandbox.merchants.zalando.com/merchants/{merchant_ID}/orders-deletion-requests \ Authorization:Bearer $YOUR_ACCESS_TOKEN ``` -------------------------------- ### Get Specific Order with Details - httpie Example Source: https://developers.merchants.zalando.com/docs/orders-getting This httpie command retrieves a specific order and its associated order items and lines. It uses the `include` parameter to request these additional details and includes the standard 'Accept' and 'Authorization' headers. ```httpie http https://api-sandbox.merchants.zalando.com\ /merchants/{merchant_id}/orders/{order_id} \ include=order_items,order_lines \ Accept:application/vnd.api+json \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Example Product Simple with Size and Length Codes Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This snippet shows a `product_simple` entry that includes both `size_codes.size` and `size_codes.length`, demonstrating how to handle products with multiple size attributes in the submission JSON. ```json "size_codes": { "size": "42", "length": "52" } ``` -------------------------------- ### Get Specific Order - httpie Example Source: https://developers.merchants.zalando.com/docs/orders-getting This httpie call retrieves a specific order using its ID. It targets the sandbox API, appends the order ID to the endpoint, and includes the 'Accept' and 'Authorization' headers for proper request processing. ```httpie http https://api-sandbox.merchants.zalando.com\ /merchants/{merchant_ID}/orders/{order_id} \ Accept:application/vnd.api+json \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Example Product Simple with Size Code Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This example demonstrates the complete structure for a `product_simple` entry, including the EAN and the `size_codes.size` attribute, which is essential for uniquely identifying a product variant. ```json "product_simples": [ { "merchant_product_simple_id": "sandals-1105AA", "product_simple_attributes": { "ean": "9780679762881", "size_codes": { "size": "2" } } } ] ``` -------------------------------- ### Get Specific Dispatch Item Set - JSON Response Example Source: https://developers.merchants.zalando.com/docs/zfs-dispatch-item-sets This example illustrates the structure of the JSON response when successfully retrieving a specific dispatch item set. It includes details about the items within the set, their quantities, and validation states. ```JSON { "self": "string", "items": [ { "ean": "0191476239145", "quantity": 0, "sku": "TH341G023-K1100XL000", "validation_state": "string" } ], "items_total": 0, "items_valid": 0, "validation_state": "string", "validation_description": "string" } ``` -------------------------------- ### Example assignment for variant Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This example shows how to assign a value to the 'variant' attribute within a product outline. The value must be one of the allowed strings provided by the attribute-types/attributes endpoint. ```json "variant": "non_material_variant:full_product" ``` -------------------------------- ### Get All Unexported Orders - httpie Example Source: https://developers.merchants.zalando.com/docs/orders-getting This httpie command retrieves all unexported orders from the Zalando Merchants API. It specifies the sandbox API endpoint, filters for unexported orders using `exported=false`, and includes necessary headers for content type and authorization. ```httpie http https://api-sandbox.merchants.zalando.com\ /merchants/{merchant_ID}/orders \ exported=false \ Accept:application/vnd.api+json \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Example HTTPie Request for Cross-Border Movements Source: https://developers.merchants.zalando.com/docs/cross-border-movements An example using httpie to make a GET request to the Cross-Border Movements API. This includes specifying the merchant ID, date range, and the required Authorization header with an access token. The base URL is for the sandbox environment. ```shell http GET \ https://api-sandbox.merchants.zalando.com/zfs\ /cross-border-movements/{merchant-id}\ ?from=2025-03-01&to=2025-03-31 \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Example Product Submission JSON Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This JSON object represents a complete and valid product submission for the Zalando API. It includes details for a product model, its configurations (color, material, media), and simple products (size, EAN). Ensure all product_config and product_simple tiers are included in a single submission. ```json { "outline":"sandals", "product_model":{ "merchant_product_model_id":"MODEL_ID_123", "product_model_attributes":{ "name":"AIR FORCE SANDALS 1 '07 LV8 UTILITY", "brand_code":"ns1", "size_group":{ "size":"4MU1000E2A" }, "target_genders":[ "target_gender_male", "target_gender_female" ], "target_age_groups":[ "target_age_group_adult" ] }, "product_configs":[ { "merchant_product_config_id":"7b077fc4-fde3-47d4-8b25-97af8793", "product_config_attributes":{ "color_code.primary":"608", "description":{ "en":"Nice sandals" }, "material.upper_material_clothing":[ { "material_code":"li", "material_percentage":87.5 }, { "material_code":"el", "material_percentage":12.5 } ], "media":[ { "media_path":"https://hosting_of_your_choice/media/7b077fc4-fde3-47d4-8b25-97af8793/pic-1.jpg", "media_sort_key":1 }, { "media_path":"https://hosting_of_your_choice/media/7b077fc4-fde3-47d4-8b25-97af8793/pic-2.jpg", "media_sort_key":2 } ], "season_code":"fs20", "supplier_color":"mint" }, "product_simples":[ { "merchant_product_simple_id":"mint-shoes-3326CC", "product_simple_attributes":{ "ean":"9813752182012", "size_codes":{ "size":"44.5" } } } ] } ] } } ``` -------------------------------- ### Products API - Outlines Source: https://developers.merchants.zalando.com/docs/products-onboarding-cheatsheet Endpoints for retrieving product outlines, which define the structure and available attributes for different product types. ```APIDOC ## GET /merchants/{merchant_id}/outlines ### Description Returns a JSON object containing all available product outlines for a given merchant. This is useful for understanding the general structure of product data. ### Method GET ### Endpoint `/merchants/{merchant_id}/outlines` ### Parameters #### Path Parameters - **merchant_id** (string) - Required - The unique identifier for the merchant. ### Request Example ``` GET /merchants/12345/outlines ``` ### Response #### Success Response (200) - **outlines** (object) - A JSON object where keys are outline labels and values are outline definitions. #### Response Example { "product_model": { ... }, "product_config": { ... }, "product_simple": { ... } } ``` ```APIDOC ## GET /merchants/{merchant_id}/outlines/{outline_label} ### Description Returns a specific product outline based on the provided outline label (product type). This allows you to retrieve the schema and required attributes for a particular category of products, such as 'sandals'. ### Method GET ### Endpoint `/merchants/{merchant_id}/outlines/{outline_label}` ### Parameters #### Path Parameters - **merchant_id** (string) - Required - The unique identifier for the merchant. - **outline_label** (string) - Required - The label identifying the specific product outline (e.g., 'sandals'). ### Request Example ``` GET /merchants/12345/outlines/sandals ``` ### Response #### Success Response (200) - **outline** (object) - A JSON object representing the detailed structure and attributes for the specified product outline. #### Response Example { "label": "sandals", "name": { "en": "Sandals" }, "attributes": [ { ... } ] } ``` -------------------------------- ### Get Inbound Recommendations - HTTP GET Request Source: https://developers.merchants.zalando.com/docs/zfs-shipping-notices-creating This example shows how to retrieve inbound recommendations from the Zalando API using an HTTP GET request. The request requires a Zalando advice ID obtained from the shipping notice creation response. It includes the endpoint, authorization header, and content type. This call helps identify available warehouses and dates for inbounding items. ```http http GET \ https://api-sandbox.merchants.zalando.com\n/zfs/inbound/recommendations?advice_id= \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" \ content-type:application/json ``` -------------------------------- ### Get Variant Attribute Type Source: https://developers.merchants.zalando.com/docs/onboarding-new-products Retrieves the attribute type information for 'variant'. This endpoint details its definition, label, usage, and provides an example of how to assign a value. ```APIDOC ## GET /merchants/$YOUR_MERCHANT_ID/attribute-types/variant ### Description Retrieves the attribute type details for `variant`. This attribute is a string and can be assigned specific values, indicated by its 'reference_by_value' usage. ### Method GET ### Endpoint /merchants/$YOUR_MERCHANT_ID/attribute-types/variant ### Parameters #### Path Parameters - **$YOUR_MERCHANT_ID** (string) - Required - The ID of the merchant. ### Request Example ```bash http https://api-sandbox.merchants.zalando.com/merchants/$YOUR_MERCHANT_ID/attribute-types/variant \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` ### Response #### Success Response (200) - **cardinality** (string) - Indicates the cardinality of the attribute (e.g., 'one'). - **definition** (object) - Contains the definition of the attribute type. - **type** (string) - The type of definition (e.g., 'StringDefinition'). - **label** (string) - The label of the attribute (e.g., 'variant'). - **name** (object) - The name of the attribute in different languages. - **type_variants** (array) - An array of type variants. - **usage** (string) - How the attribute is used (e.g., 'reference_by_value'). #### Response Example ```json { "cardinality": "one", "definition": { "type": "StringDefinition" }, "label": "variant", "name": { "en": "Material or Non-Material variant" }, "type_variants": [], "usage": "reference_by_value" } ``` ### Allowed Values Example To get the allowed values for the `variant` attribute, use the `attribute-types/attributes` endpoint: #### Request Example for Allowed Values ```bash http https://api-sandbox.merchants.zalando.com/merchants/$YOUR_MERCHANT_ID/attribute-types/variant/attributes \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` #### Response Example for Allowed Values ```json { "items": [ { "label": "decksohle", "name": { "en-gb": "decksohle" }, "value": { "string": "material_variant:decksohle" } }, { "label": "full_product", "name": { "en-gb": "full_product" }, "value": { "string": "non_material_variant:full_product" } } ] } ``` Example usage in a request body: ```json { "variant": "non_material_variant:full_product" } ``` ``` -------------------------------- ### Get All Product Outlines (HTTP) Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This httpie request retrieves all available product outlines for your merchant account. It requires authentication with an access token and the merchant ID. The response is a large JSON containing outlines for various product models. ```http http \ https://api-sandbox.merchants.zalando.com/merchants/$YOUR_MERCHANT_ID/outlines" \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Attribute Value Submission Example (JSON) Source: https://developers.merchants.zalando.com/docs/onboarding-new-products Demonstrates how to provide attribute values in a JSON object for product submissions. The format depends on the attribute's 'usage' field in its schema. ```json "name": "AIR FORCE SANDALS 1 '07 LV8 UTILITY" ``` ```json "brand_code": "ns1" ``` -------------------------------- ### Example Price Reporting API Response with Cursor Source: https://developers.merchants.zalando.com/docs/offers-price-reporting This is an example response from the Price Reporting API. It includes a 'cursors' object with a 'next' field containing a URL for a follow-up request if more results are available. The 'query' object shows the parameters used for the request, and the 'items' array contains the price update data. ```json { "cursors": { "next": "https://api-sandbox.merchants.com/merchants/e2ad171a-6b52-4db0-8ae3-54709720458b/price-attempts?cursor=ewpsYXN0OiAyNTkKb3JkZXI6IGFzYwp9" }, "query": { "sales_channels": [ "01924c48-49bb-40c2-9c32-ab582e6db6f4" ], "eans": [ "5901234123457" ], "modified_since": "2020-05-12T08:00:00Z", "modified_until": "2020-05-12T09:00:00Z", "page_size": 200 }, "items": [ { "ean": "5901234123457", "sales_channel_id": "01924c48-49bb-40c2-9c32-ab582e6db6f4", "base_price": { "regular_price": { "amount": 99.95, "currency": "EUR" }, "promotional_price": { "amount": 80.95, "currency": "EUR" }, "status": "ACCEPTED", "status_transitions": [ { "from": "RECEIVED", "to": "ACCEPTED", "timestamp": "2020-05-18T08:00:00Z", "messages": [] } ] }, "scheduled_prices": [ { "regular_price": { "amount": 99.95, "currency": "EUR" }, "promotional_price": { "amount": 25.95, "currency": "EUR" }, "start": "2020-05-20T08:00:00Z", "end": "2020-05-22T08:00:00Z", "status": "SCHEDULED", "status_transitions": [ { "from": "RECEIVED", "to": "SCHEDULED", "timestamp": "2020-05-18T08:00:00Z", "messages": [ { "severity": "WARNING", "message": "Promotional Price '25.95' is more than 70% below Regular Price '99.95'", "code": "REGULAR_PRICE_CHANGE_TOO_LOW" } ] } ] } ], "ignore_warnings": true } ] } ``` -------------------------------- ### Example Response for Offer Stock and Price Query Source: https://developers.merchants.zalando.com/docs/psr-api-overview This is an example JSON response for the `product_models` GraphQL query, demonstrating the structure of returned offer data. It includes details on stock, pricing, and fulfillment type for different sales channels. ```json { "data": { "psr": { "product_models": { "items": [ { "product_configs": [ { "product_simples": [ { "ean": "4351261305360", "zalando_product_simple_id": "VE042D04C-A60000M000", "offers": [ { "offer_status": [ { "status_detail_code": "ZAON_01", "status_cluster": "LIVE", "short_description": { "en": "You are selling this EAN" } } ], "country": { "code": "DE" }, "stock": { "amount": 42 }, "price": { "regular_price": { "amount": 69.95, "currency": "EUR" }, "discounted_price": { "amount": 39.95, "currency": "EUR" } }, "fulfillment_type": "ZFS" }, { "offer_status": [ { "status_detail_code": "ZANOP_01", "status_cluster": "BLOCKED", "short_description": { "en": "Price is missing" } } ], "country": { "code": "NL" }, "stock": { "amount": 420 }, "price": null, "fulfillment_type": "PARTNER_FULFILLMENT" } ] } ] } ] } ] } } } } ``` -------------------------------- ### JSON Payload for Price Update Query by Start and End Timestamps Source: https://developers.merchants.zalando.com/docs/offers-price-reporting This JSON payload queries price update results within a specified start and end timestamp. It is an alternative to using 'modified_since' and 'modified_until'. The 'page_size' parameter controls the number of items per response. This query can be reused for follow-up requests. ```json { "sales_channels": ["01924c48-49bb-40c2-9c32-ab582e6db6f4"], "eans": ["5901234123457"], "start": "2020-05-12T08:00:00Z", "end": "2020-05-18T08:00:00Z", "page_size": 200 } ``` -------------------------------- ### JSON Payload to Get All Price Updates Between Timestamps Source: https://developers.merchants.zalando.com/docs/offers-price-reporting This JSON payload retrieves all price updates submitted between a specified start and end timestamp. It does not require specifying EANs or sales channels, returning all updates within the date range. The 'page_size' limits the results per page. This query can be used for pagination. ```json { "start": "2020-05-12T08:00:00Z", "end": "2020-05-18T08:00:00Z", "page_size": 200 } ``` -------------------------------- ### Sandbox Testing for Products API Source: https://developers.merchants.zalando.com/docs/onboarding-new-products Provides guidance on sandbox testing for the Products Attributes and Product Submissions APIs, highlighting that read operations return different data in the sandbox and that sandbox submissions are not persisted. ```APIDOC ## Sandbox Testing The Products Attributes and Product Submissions APIs support sandbox mode. Warning Read operations in the sandbox and production environments will return different data. Regardless of the merchant, the sandbox environment provides all available outlines and attribute types, but only generic attribute values. For more information, see the Sandbox section of the Product Attributes API Overview in our API Reference. Warning Product submissions made in the sandbox environment are not persisted or propagated. New products submitted in the sandbox will not be visible in your Product Status Report, and they will not be added to the Zalando Catalog. Product submissions made during sandbox testing will be subjected to the first stage of automated validation as described in Submission and Validation. If you receive an `HTTP 200 OK` response upon sandbox submission, you can be confident that your JSON is well formed, that you did not omit any required attributes. Additional validation only takes place in the production environment. For more information, see the Sandbox section of the Products API Overview. ``` -------------------------------- ### Get All Outlines Source: https://developers.merchants.zalando.com/docs/onboarding-new-products Retrieve all available product outlines for your merchant account. This is useful if you need to browse or select from multiple outline types. ```APIDOC ## GET /merchants/$YOUR_MERCHANT_ID/outlines ### Description Retrieves all product outlines available for the authenticated merchant. ### Method GET ### Endpoint https://api-sandbox.merchants.zalando.com/merchants/$YOUR_MERCHANT_ID/outlines ### Parameters #### Path Parameters - **YOUR_MERCHANT_ID** (string) - Required - Your unique merchant identifier. #### Query Parameters None #### Request Body None ### Request Example ```bash http \ https://api-sandbox.merchants.zalando.com/merchants/$YOUR_MERCHANT_ID/outlines \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` ### Response #### Success Response (200) - **[Outlines Object]** (object) - A JSON object containing outlines for various product models. #### Response Example (Example response would be a large JSON containing multiple outline definitions) ``` -------------------------------- ### Get Returned Items Report (httpie) Source: https://developers.merchants.zalando.com/docs/zfs-tracking-stock-movements Example using httpie to request returned items, demonstrating how to include the Authorization header for API access. Requires a Zalando access token. ```Shell http GET \ https://api-sandbox.merchants.zalando.com/zfs\ /stock-movements/returned-items/{merchant_ID}\ ?from=2020-02-25T09:00:00Z&to=2020-02-26T18:00:00Z \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Get Received Items Report (httpie) Source: https://developers.merchants.zalando.com/docs/zfs-tracking-stock-movements Example of how to fetch received items using the httpie command-line tool, including necessary authentication headers. Requires a Zalando access token. ```Shell http GET \ https://api-sandbox.merchants.zalando.com/zfs\ /stock-movements/reports/received-items/{merchant_ID}\ ?from=2025-02-25T09:00:00Z&to=2025-02-26T18:00:00Z \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Example Product Model with Size and Length Groups Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This snippet illustrates how to specify both `size_group.size` and `size_group.length` within the product model JSON when a product requires dual-dimensional sizing, such as pants with waist and inseam measurements. ```json "size_group": { "size": "4MU1000E2A", "length": "5AAU000012" } ``` -------------------------------- ### Product Outline Example for 'sandals' Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This JSON structure defines the outline for a product model, specifically 'sandals'. It includes mandatory and optional types for different tiers like 'model', 'config', and 'simple', as well as restricted attributes and validation hints. This serves as a schema for product data. ```json { "label": "sandals", "tiers": { "model": { "optional_types": [], "mandatory_types": [ "target_age_groups", "target_genders", "name", "brand_code", "size_group" ], "restricted_attributes": [] }, "config": { "optional_types": [ "condition", "color_code.secondary", "color_code.tertiary", "width", "shape", "decksohle", "material.filling", "futter", "heel_form", "insole_technology", "material_construction", "non_textile_but_animal_parts", "occasion", "padding_type", "pattern", "shoe_detail", "shoe_toecap", "shoe_width", "size_fits", "sole_material", "sport_qualities", "sport_shoe_details", "sport_shoe_insole", "sport_shoe_outer_sole", "sport_shoe_outer_sole_technology", "sport_type", "upper_material", "washing_instructions" ], "mandatory_types": [ "color_code.primary", "media", "season_code", "supplier_color", "description" ], "restricted_attributes": [ { "type": { "label": "washing_instructions", "version": "1.0.0" }, "values": [ "washing_instructions_4106", "washing_instructions_4107", "washing_instructions_6999", "washing_instructions_7858" ] }, ... ], "validation_hints": { "material.filling": { "hint_type": "mandatory_if_applicable", "description": { "en": "Please specify the material composition if the product has filling." }, "related_types": [] }, ... } }, "simple": { "optional_types": [ "metric.heel_height", "metric.platform_height", "metric.schafthoehe", "metric.schaftweite" ], "mandatory_types": [ "ean", "size_codes" ], "restricted_attributes": [] } } } ``` -------------------------------- ### Get ZRS Pure Returned Items by MerchantId and Item Identifier (httpie) Source: https://developers.merchants.zalando.com/docs/zrs-pure-return-stock-movement-overview Example using httpie to call the ZRS Pure Return Stock Movement API to get returned item details. Requires MerchantId and optionally Quality Label, SSCC, EAN, or Customer Order Number. Authentication is handled via an Authorization header. ```httpie http GET \ https://api-sandbox.merchants.zalando.com/merchants/{merchant-id} \ /returns/zrs-pure-items?quality_label={quality_label}&sscc={sscc}&ean={ean}&order_number={order_number}&page_size={page_size} \ 'Authorization: Bearer $YOUR_ACCESS_TOKEN' \ 'accept application/json' ``` -------------------------------- ### HTTPie Request for Intra-Community Movements Source: https://developers.merchants.zalando.com/docs/zfs-intra-community-movements Example of how to make a GET request to the Zalando API for intra-community movements using httpie. This command includes the API endpoint, date range parameters, and an Authorization header with a bearer token. ```httpie http GET https://api-sandbox.merchants.zalando.com/intra-community-movements/{merchant-id}\ ?from=2020-04-01&to=2020-04-30 "Authorization:Bearer $YOUR_ACCESS_TOKEN" ``` -------------------------------- ### Submit Product Data using httpie Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This command uses httpie to send a POST request to the Zalando Product Submissions API. It submits a local JSON file named 'product.json' containing product data. Ensure you replace placeholders like `$YOUR_MERCHANT_ID` and `$YOUR_ACCESS_TOKEN` with your actual credentials. ```bash http POST \ https://api-sandbox.merchants.zalando.com/merchants/$YOUR_MERCHANT_ID/product-submissions" \ "Authorization:Bearer $YOUR_ACCESS_TOKEN" < product.json ``` -------------------------------- ### Get Announced Item Sets Response Body Source: https://developers.merchants.zalando.com/docs/zfs-announced-item-sets Example structure of the JSON response when retrieving announced item sets. It includes a list of sets, each containing item details, validation states, and pagination information. ```json { "announced_item_sets": [ { "self": "string", "items": [ { "ean": "0191476239145", "quantity": 0, "sku": "TH341G023-K1100XL000", "validation_state": "string" } ], "items_total": 0, "items_valid": 0, "validation_state": "string", "validation_description": "string" } ], "next": "string" } ``` -------------------------------- ### Example Validation Hints Field Source: https://developers.merchants.zalando.com/docs/onboarding-new-products This snippet demonstrates the structure of the 'validation_hints' field within a product outline. It provides hints about attributes, indicating when they are 'mandatory_if_applicable' and offering descriptions for context. This is crucial for correctly defining product attributes according to Zalando's requirements. ```json { "validation_hints": { "material.filling": { "hint_type": "mandatory_if_applicable", "description": { "en": "Please specify the material composition if the product has filling." }, "related_types": [] } } } ```