### Multipromotion File Format Example Source: https://developer-qc.e-food.gr/en/documentation/promotions-sftp-use-cases Example CSV structure for creating multiple promotions in a single file. This format allows for bulk creation of promotions. ```csv SKU,reason,campaign_name,start_date,end_date,promotion_type,promotion_sub_type,discounted_price "12345","Summer Sale","Summer Discount","2025-06-14 14:44:38","2025-06-15","strikethrough","percentage_value_off",10.00 "67890","Winter Offer","Winter Special","2025-07-01 10:00:00","2025-07-31","same_item_bundle","free_item", "11223","Clearance","End of Season","2025-08-10","2025-08-20","strikethrough","absolute_value_off",5.00 ``` -------------------------------- ### Webhook Authorization Header Example Source: https://developer-qc.e-food.gr/en/documentation/pos-partner-picking-faq This example demonstrates how to construct the Authorization header for basic authentication with a username and password. The secret in Partner Portal should be the Base64 encoded string of 'username:password'. ```http Authorization: Basic cmFuZG9tcGFzc3dvcmQ= ``` -------------------------------- ### Basic Authentication Header Example Source: https://developer-qc.e-food.gr/en/documentation/pos-pelican-picking-faq This example demonstrates how to format a Basic Authentication header using Base64 encoding for webhook security. The secret is mandatory for enabling integrations. ```text Basic cmFuZG9tcGFzc3dvcmQ= ``` -------------------------------- ### Outlet Status Response Example Source: https://developer-qc.e-food.gr/en/documentation/outlet-management-api-use-cases-endpoints-explained Example JSON response when retrieving the status of an outlet using the GET /status endpoint. ```json { "vendor_id": "naez", "status": "CLOSED_UNTIL", "closed_reason": "TECHNICAL_PROBLEM", "closed_until": "2024-09-30T10:00:36Z" } ``` -------------------------------- ### Single Promotion File Format Example Source: https://developer-qc.e-food.gr/en/documentation/promotions-sftp-use-cases Example CSV structure for creating a single promotion. Includes product identifiers and campaign-level data. Ensure dates are in 'YYYY-MM-DD HH:MM:SS' or 'YYYY-MM-DD' format. ```csv SKU,reason,campaign_name,start_date,end_date,promotion_type,promotion_sub_type,discounted_price "12345","Summer Sale","Summer Discount","2025-06-14 14:44:38","2025-06-15","strikethrough","percentage_value_off",10.00 ``` -------------------------------- ### Finite Quantity Item Pricing - JSON Example Source: https://developer-qc.e-food.gr/en/documentation/pos-pelican-picking-faq Illustrates the pricing and original_pricing objects for items with finite quantities, where pricing_type is 'UNIT'. ```json { "pricing": { "pricing_type": "UNIT", "unit_price": 0.69, "vat_percent": 0, "total_price": 0.69, "quantity": 1, "min_quantity": 0, "max_quantity": 2 }, "original_pricing": { "pricing_type": "UNIT", "unit_price": 0.69, "vat_percent": 0, "total_price": 1.38, "quantity": 2, "min_quantity": 0, "max_quantity": 2 } } ``` -------------------------------- ### Customer Suggested Item Replacement Source: https://developer-qc.e-food.gr/en/documentation/faq/all Example of the 'replacement_preferences' object when a customer suggests items for replacement, setting 'reconciliation_option' to 'SUGGESTED_ITEMS'. ```json { "reconciliation_option":"SUGGESTED_ITEMS", "products":[ { "sku":"sku", "name":"name", "unit_price":1.0, "image_url":"http://www.example.org/pizza-salami.jpg" "max_quantity": 10 } ] } ``` -------------------------------- ### Get Catalog Source: https://developer-qc.e-food.gr/en/documentation/catalog-api-testing-the-integration Retrieves catalog information in a paginated format, including SKU, translations, product descriptions, and image URLs. ```APIDOC ## GET /catalog ### Description Retrieves catalog information in a paginated format. ### Method GET ### Endpoint /catalog ### Parameters #### Query Parameters - **page** (integer) - Optional - The page number for pagination. - **limit** (integer) - Optional - The number of items per page. ### Response #### Success Response (200) OK. Returns a paginated list of catalog items. #### Response Example ```json { "items": [ { "sku": "SKU123", "translations": {"en": "Product Name"}, "description": {"en": "Product Description"}, "image_url": "http://example.com/image.jpg", "price": 19.99, "active": true, "max_sales_quantity": 10 } ], "pagination": { "currentPage": 1, "totalPages": 10, "totalItems": 100 } } ``` ``` -------------------------------- ### GET /catalog/jobs/{job_id} Source: https://developer-qc.e-food.gr/en/documentation/catalog-api-use-cases Track the progress of your product creation from the POST `/catalog` endpoint. This endpoint allows you to monitor the status of your created jobs. ```APIDOC ## GET /catalog/jobs/{job_id} ### Description Track the progress of your product creation from the POST `/catalog` endpoint. This endpoint allows you to monitor the status of your created jobs. Check if your job is `QUEUED`, `IN_PROGRESS`, `COMPLETED` or `FAILED`. ### Method GET ### Endpoint `/v2/chains/{chain_id}/catalog/jobs/{job_id}` ### Parameters #### Path Parameters - **chain_id** (string) - Required - The ID of the chain. - **job_id** (string) - Required - The ID of the job to track. ### Response #### Success Response (200) - **status** (string) - The current status of the job (e.g., `QUEUED`, `IN_PROGRESS`, `COMPLETED`, `FAILED`). #### Response Example ```json { "status": "IN_PROGRESS" } ``` ``` -------------------------------- ### Order Cancellation with Post-Pickup - JSON Example Source: https://developer-qc.e-food.gr/en/documentation/pos-pelican-picking-faq Demonstrates the 'cancellation' object structure for orders cancelled after rider pickup, including the 'post_picked_up' field. ```json { "reason": "TECHNICAL_PROBLEM", "cancelled_by": "CUSTOMER", "post_picked_up": true } ``` -------------------------------- ### Get Store Availability Status (GET) Source: https://developer-qc.e-food.gr/en/documentation/outlet-management-api-how-to-integrate Use this GET endpoint to retrieve the current availability status of a specific store. Replace `{chain_id}` and `{vendor_id}` with the appropriate values. ```http GET https://efood.partner.deliveryhero.io/v2/chains/{chain_id}/vendors/{vendor_id}/status ``` -------------------------------- ### Get Outlet Status with GET Request Source: https://developer-qc.e-food.gr/en/documentation/outlet-management-api-use-cases-endpoints-explained Use this cURL command to retrieve the current status of a specific outlet. Requires an API token for authorization. ```curl curl --location --request GET 'https://efood.partner.deliveryhero.io/v2/chains/f9cc1b05-8610-4e14-b9f5-9dde917e143d/status' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: ••••••' ``` -------------------------------- ### Create a Promotion using PUT Source: https://developer-qc.e-food.gr/en/documentation/promotions-api-use-cases Use this cURL command to create a new promotion. Ensure you have a valid API token and provide all necessary promotion details. ```curl curl --location --request PUT 'https://e-food.partner.deliveryhero.io/v2/chains/f9cc1b05-8610-4e14-b9f5-9dde917e143d/promotion' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: ••••••' \ --data { "vendors": [ "s8ym" ], "type": "STRIKETHROUGH", "active": true, "reason": "COMPETITIVENESS", "display_name": { "en_SG": "Promotions" }, "conditions": { "start_time": "2025-03-28T15:59:59.895Z", "end_time": "2025-03-30T16:59:59.895Z" }, "discount": [ { "discount_subtype": "FINAL_PRICE", "discount_value": 15.11, "active": true, "sku": [ "ABCEx3" ] }, { "discount_subtype": "FINAL_PRICE", "discount_value": 5.31, "active": true, "sku": [ "D14" ] } ] } ``` -------------------------------- ### Retrieve Order History with GET Endpoint Source: https://developer-qc.e-food.gr/en/documentation/pos-partner-picking-use-cases The GET endpoint is used to retrieve historical order data, allowing for single order details or multiple order details. ```APIDOC ## GET /Orders ### Description This endpoint retrieves historical order information. It can be used to fetch details for a single order or a list of multiple orders. ### Method GET ### Endpoint /Orders ### Parameters #### Query Parameters - **order_id** (string) - Optional - The ID of the specific order to retrieve. - **limit** (integer) - Optional - The maximum number of orders to return. - **offset** (integer) - Optional - The number of orders to skip before returning results. ### Response #### Success Response (200) - **orders** (array) - A list of order objects. - **order_id** (string) - The unique identifier for the order. - **customer_name** (string) - The name of the customer. - **order_date** (string) - The date and time the order was placed. - **total_amount** (number) - The total amount of the order. - **status** (string) - The current status of the order. #### Response Example ```json { "orders": [ { "order_id": "12345", "customer_name": "John Doe", "order_date": "2023-10-27T10:00:00Z", "total_amount": 55.75, "status": "delivered" }, { "order_id": "67890", "customer_name": "Jane Smith", "order_date": "2023-10-26T15:30:00Z", "total_amount": 32.50, "status": "processing" } ] } ``` ``` -------------------------------- ### Webhook Basic Authentication Example Source: https://developer-qc.e-food.gr/en/documentation/pos-pelican-picking-faq Demonstrates how to configure basic authentication for your webhook by encoding credentials in Base64. This value should be used as the secret in the Partner Portal. ```text cmFuZG9tcGFzc3dvcmQ= ``` ```text Basic cmFuZG9tcGFzc3dvcmQ= ``` -------------------------------- ### Retrieve Catalog Information using GET /catalog Source: https://developer-qc.e-food.gr/en/documentation/catalog-api-testing-the-integration Fetches paginated catalog information, including SKU, translations, product descriptions, and image URLs. ```HTTP GET /catalog ``` -------------------------------- ### Retrieve Product List via GET Source: https://developer-qc.e-food.gr/en/documentation/catalog-api-use-cases Retrieve a paginated list of products with options to filter by name, SKU, category, locale, and active status. Control results per page and navigate through pages. ```bash curl --location --request GET 'https://efood.partners.deliveryhero.io/v2/chains/{chain_id}/vendors/{vendor_id}/catalog?query_term=milk&locale=en_GB&page=10&page_size=10' \ --header 'Authorization: Bearer test' ``` -------------------------------- ### Retrieve Single Order Details with GET Request Source: https://developer-qc.e-food.gr/en/documentation/pos-partner-picking-use-cases Use this endpoint to retrieve details of a specific order using its UUID. Only orders from the past 60 days are accessible. If the Order ID is not available, consider using the GET vendorID endpoint. ```curl curl --location --request GET 'https://foodora.partner.deliveryhero.io/v2/chains/9d4a63b5-3e07-4440-96af-aa04797da3a0/orders/807c225f-ac6d-445d-a074-ea960c892ca7' \ --header 'Accept: application/json' \ --header 'Authorization: ***' ``` -------------------------------- ### Get Categories Source: https://developer-qc.e-food.gr/en/documentation/catalog-api-testing-the-integration Retrieves a list of all available vendor categories. ```APIDOC ## GET /categories ### Description Retrieves a list of available vendor categories. ### Method GET ### Endpoint /categories ### Response #### Success Response (200) OK. Returns a list of categories. #### Response Example ```json [ { "category_id": "cat_001", "name": "Electronics" }, { "category_id": "cat_002", "name": "Groceries" } ] ``` ``` -------------------------------- ### Create New Products using POST /catalog Source: https://developer-qc.e-food.gr/en/documentation/catalog-api-testing-the-integration This endpoint allows for the creation of new products at the store or chain level. You can specify a list of vendors or use a wildcard (*) to apply to all vendors within a chain. A `202` response signifies acceptance, and the `job_id` should be saved to track the creation status. ```HTTP POST /catalog ``` -------------------------------- ### Get Store Availability Status Source: https://developer-qc.e-food.gr/en/documentation/outlet-management-api-how-to-integrate This endpoint retrieves the current availability status of a specific store. ```APIDOC ## GET /v2/chains/{chain_id}/vendors/{vendor_id}/status ### Description Gets the availability status of a given store. ### Method GET ### Endpoint /v2/chains/{chain_id}/vendors/{vendor_id}/status ### Parameters #### Path Parameters - **chain_id** (string) - Required - The ID of the chain. - **vendor_id** (string) - Required - The ID of the vendor (store). ### Response #### Success Response (200) *The response body schema is not provided in the source text.* #### Response Example *No example provided in the source text.* ``` -------------------------------- ### Weight-Based Item Pricing - JSON Example Source: https://developer-qc.e-food.gr/en/documentation/pos-pelican-picking-faq Shows the pricing and original_pricing objects for items with weight-based pricing, where pricing_type is 'KG'. The 'weight' field indicates the fulfilled weight. ```json { "pricing": { "pricing_type": "KG", "unit_price": 0.69, "vat_percent": 0, "total_price": 0.69, "quantity": 1, "weight": 1.0, "min_quantity": 0, "max_quantity": 2 }, "original_pricing": { "pricing_type": "KG", "unit_price": 0.69, "vat_percent": 0, "total_price": 0.69, "quantity": 1, "weight": 1.0, "min_quantity": 0, "max_quantity": 2 } } ``` -------------------------------- ### Get Order by ID Source: https://developer-qc.e-food.gr/en/documentation/pos-partner-picking-testing-the-integration Retrieves a specific order using its unique identifier. Orders will have final statuses. ```APIDOC ## GET /order_id ### Description Retrieves details of a specific order using its unique ID. The order will have a final status such as `CANCELLED` or `PICKED_UP`. ### Method GET ### Endpoint `/order_id` ### Parameters #### Path Parameters - **order_id** (string) - Required - The unique identifier of the order to retrieve. ### Response #### Success Response (200) - **order_id** (string) - The unique identifier for the order. - **status** (string) - The final status of the order (e.g., `CANCELLED`, `PICKED_UP`). - **items** (array) - A list of items in the order. - **total_price** (number) - The total price of the order. #### Response Example ```json { "order_id": "ORD12345", "status": "PICKED_UP", "items": [ { "sku": "ITEM_SKU_ABC", "name": "Sample Product", "quantity": 1, "price": 25.50 } ], "total_price": 25.50 } ``` ``` -------------------------------- ### Retrieve Vendor Categories using GET /categories Source: https://developer-qc.e-food.gr/en/documentation/catalog-api-testing-the-integration This endpoint retrieves a list of all available vendor categories. ```HTTP GET /categories ``` -------------------------------- ### Open Store with PUT Request Source: https://developer-qc.e-food.gr/en/documentation/outlet-management-api-use-cases-endpoints-explained Use this cURL command to open a store by setting its status to OPEN. The `closed_reason` field should be omitted when opening the store. Requires an API token for authorization. ```curl curl --location --request PUT 'https://efood.partner.deliveryhero.io/v2/chains/f9cc1b05-8610-4e14-b9f5-9dde917e143d/status' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: ••••••' \ --data { "vendor_id": "naez", "status": "OPEN" } ```