Merchants
API
Version 1
Orders

Table of Contents 📖

  1. Variables
  2. Orders

Variables

  • merchantAPIEndpoint: /api
  • orderId: 3001

Orders

1. Get Orders

GET {merchantAPIEndpoint}/orders

Parameters

ParameterDescription
statusSelect orders by status (e.g., https://merchant.api.shopflix.gr/api/orders?status=O)
date_fromSelect orders by date (e.g., api/orders?date_from=2022-01-01)
date_toSelect orders by date range (e.g., api/orders?date_from=2022-01-01&date_to=2022-01-05)
items_per_pageDefault is 10 (if not set), max is 100

Order status mapping

Status CodeStatusMapped OMS State
'O'Placedregistered
'G'Processingin-processing
'H'To be Shippedready-for-shipment
'J'Shippedpicked-by-courier
'S'Delivered to third partydelivered-to-clever-point
'L'Failed to Deliverdelivery-failed
'D'Rejectedrejected-by-merchant
'I'Cancelledcanceled
'C'Completedcompleted OR delivered-to-customer
example
GET {merchantAPIEndpoint}/orders?page=1&itemsPerPage=10

Response

Status: 200 OK

Content-Type: application/json

response
{
    "params": {
        "page": 1,  // Current page number
        "items_per_page": 10,  // Number of items displayed per page
        "total_items": 9,  // Total number of available orders
        "status": null,  // Order status filter (null means no filter applied)
        "date_from": "2020-01-01 00:00:00",  // Start date for order filtering
        "date_to": "2025-01-31 10:51:00"  // End date for order filtering
    },
    "orders": [
        {
            "order_id": 3005,  // The order ID in shopflix.gr
            "order_reference": "GR--3278--MER78",  // Reference code for the order
            "timestamp": 1738087382,  // Order registration date (Unix timestamp)
            "firstname": "Sarah",  // Customer's first name
            "lastname": "Muller",  // Customer's last name
            "company_id": "12345",  // The store ID in shopflix.gr
            "company": "",  // Company name of the customer
            "email": "sarah@example.com",  // Customer's email address
            "phone": "425-222-45-76",  // Customer's phone number
            "status": "G",  // Order status (G = In processing)
            "total": "48.92"  // Total order cost
        },
        {
            "order_id": 3004,
            "order_reference": "GR--3278--MER78",
            "timestamp": 1738079222,
            "firstname": "Sarah",
            "lastname": "Muller",
            "company_id": "12345",
            "company": "",
            "email": "sarah@example.com",
            "phone": "425-222-45-76",
            "status": "H",  // Order status (H = Ready for shipment)
            "total": "48.92"
        }
 
        // More orders can be listed here...
    ]
}

2. Retrieve a single order

example
GET {merchantAPIEndpoint}/orders/{orderId}

Response

Status: 200 OK

Content-Type: application/json

response
{
  "order_id": 3257,  // Order ID in shopflix.gr
  "user_id": 2,  // User ID who placed the order
  "order_reference": "GR--3257--MER78", // Reference code for the order
  "status": "H",  // Order status (H = Ready for shipment)
  "timestamp": 1757680716, // UNIX timestamp of the order creation
  "total": "22.00",  // Total order amount
  "subtotal": "1.00", // Subtotal before discounts
  "discount": 0,  // Discount applied
  "company_id": "",  // Vendor’s company ID (if any)
  "notes": null,  // Any notes for the order
  "firstname": "Maria", // Customer first name
  "lastname": "Williams",  // Customer last name
 
  // Billing address
  "b_firstname": "Maria",  // Billing first name
  "b_lastname": "Williams",  // Billing last name
  "b_address": "Αιόλου",  // Billing street address
  "b_address_2": "12",  // Additional billing address info
  "b_city": "ΑΘΗΝΑ",  // Billing city
  "b_state": "ΑΤΤ",  // Billing state code
  "b_country": "GR",  // Billing country code
  "b_zipcode": "10552",  // Billing postal code
  "b_phone": "",  // Billing phone number
 
  // Shipping address
  "s_firstname": "Maria",  // Shipping first name
  "s_lastname": "Williams",  // Shipping last name
  "s_address": "Σοφοκλέους",  // Shipping street address
  "s_address_2": "5",  // Additional shipping address info
  "s_city": "ΑΘΗΝΑ",  // Shipping city
  "s_state": "ΑΤΤ",  // Shipping state code
  "s_country": "GR",  // Shipping country code
  "s_zipcode": "10555",  // Shipping postal code
  "s_phone": "",  // Shipping phone number
  "s_address_type": "",  // Shipping address type
 
  "phone": "6973311422",  // Customer phone number
  "email": "maria.williams@spryker.com",  // Customer email
 
  // invoice details
  "fields": {
    "115": "Y", // Has invoice? (Y/N)
    "116": "Company Name",  // Invoice company name
    "117": "123 Main Street, Athens", // Invoice address
    "118": "1201",  // Tax office code (DOY)
    "119": "EL123456789",  // VAT number
    "120": "Athens A’ DOY",  // Tax office name (DOY name)
    "151": "N",  // Article 39 eligible? (Y/N)
    "152": "Passport",  // Article 39 identity type
    "153": "ΑΒ1234567",  // Article 39 identity number
    "154": "425-222-45-76",  // Article 39 mobile phone
    "155": "842315",  // Article 39 OTP
    "156": ""  // Occupation
  },
 
  "b_country_descr": "Greece",  // Billing country description
  "s_country_descr": "Greece",  // Shipping country description
  "b_state_descr": "ΑΤΤΙΚΉ",  // Billing state description
  "s_state_descr": "ΑΤΤΙΚΉ",  // Shipping state description
 
  "shipment_ids": [  // List of shipment IDs
    462
  ],
  "company_name": null,  // Vendor’s company name
  "last_order_change": "",  // Last order change timestamp
 
  "payment_method": {
    "payment": "cod"  // Payment method (cash on delivery)
  },
 
  "shipping": {
    "name": "Diakinisis (Diakinisis Standard)",  // Carrier name
    "method": "Diakinisis Standard",  // Carrier method
    "delivery_key": "diakinisis_standard"  // Delivery key
  },
 
  "products": {
    "307": {
      "item_id": 307,  // Order item ID
      "order_id": 3257,  // Parent order ID
      "product_id": "SF-1",  // Product ID
      "product_code": "213123123",  // Product SKU/code
      "price": "1.00",  // Price per unit
      "total_price": "1.00",  // Total price (amount * price)
      "status_a39": "0",  // Article 39 status
      "amount": 1,  // Quantity ordered
      "product": "Wireless Bluetooth Speaker", // Product name
      "product_status": "A",  // Product status
      "master_product_code": "SF-1",  // Master product code
      "company_id": "",  // Vendor’s company ID for product
      "base_price": "1.00",  // Base price
      "original_price": "1.00",  // Original price
      "ean": null,  // Barcode (if any)
      "product_url": "https://shopflix.gr/p/SF-1",  // Product URL
      "extended_attributes": [],  // Extra product attributes
      "extra": {
        "pickup_date": "17/09/2025",  // Pickup date
        "delivery_date": "18/09/2025"  // Delivery date
      }
    }
  }
}

Status: 400 BAD REQUEST

Content-Type: application/json

Error response if order not found

response
{
    "message": "The order with id {oderId} was not found"
}

3. Accept/Reject Order

example
PUT {merchantAPIEndpoint}/orders/{orderId}

Available Status Codes

CodeDescription
GAccept
DReject

Accept Order


Request Body

Content-Type: application/json

body
{
    "status":"G"
}
Response

Status: 200 OK

Content-Type: application/json

response
{
	"message": "success"
}

Status: 400 BAD REQUEST

The order cannot be accepted due to its current status.

response
{
    "message": "Cannot Accept Order"
}

Possible Reasons

  • The order has already been rejected or canceled.
  • The order is in a final state (e.g., already shipped or completed).
  • The order has already been accepted or is currently being processed.

Reject Order


Request Body

Content-Type: application/json

{
    "status":"D",
    "reason": "damaged" // optional
}
Available Reasons
out-of-stock
damaged
wrong-price
disabled-product
wrong-product
Response

Status: 200 OK

Content-Type: application/json

response
{
	"message": "success"
}

Status: 400 BAD REQUEST

The order cannot be rejected due to its current status.

response
{
    "message": "Cannot Reject Order"
}

Possible Reasons

  • The order has already been accepted, processed, or shipped.
  • The order is in a terminal state (e.g., completed, canceled).

The provided reason value does not match any of the allowed reasons.

response
{
    "message": "Reason Is Not Valid"
}