Newsletter
GET /offers — fields for lightweight responses + Cdiscount salesChannelFeedback
  • Home
  • GET /offers — fields for lightweight responses + Cdiscount salesChannelFeedback
new-feature

Introduction

We’ve improved GET /offers to help you control payload size and retrieve Cdiscount marketplace insights when needed.

This release introduces:

  1. fields — select only the properties you need for faster, lighter responses
  2. expand=salesChannelFeedback (Cdiscount only) — retrieve detailed sales-channel feedback such as online status, best-offer info, offer quality (Qualiscore), and competing offers
Endpoint concerned

Use fields to fetch only what you need

Why it matters

The fields parameter lets you reduce response size and improve performance by returning only the data your workflow actually uses (e.g., GTIN + price + condition).

Important behavior

Even when you use fields, the API will always include these base fields:

offerId
sellerExternalReference
offerState
createdAt
updatedAt

This ensures each item remains identifiable and trackable in sync processes.

Example A — “light” offers payload (GTIN + price + condition)

Request

curl -X GET \
  "https://<API_HOST>/offers?salesChannelId=SELLZZ&limit=1000&fields=product.gtin,integrationPrice.price,condition" \
  -H "SellerId: <YOUR_SELLER_ID>"

Response (example)

{
  "items": [
    {
      "sellerExternalReference": "REF001",
      "salesChannelId": "CDISFR",
      "offerId": "1234_TES3499550358636_6_CDISFR",
      "offerState": "Active",
      "createdAt": "2025-04-26T01:28:53.0000000+00:00",
      "updatedAt": "2025-05-31T02:37:26.0000000+00:00",
      "condition": "New",
      "product": { "gtin": "3499550358636" },
      "integrationPrice": { "price": 19.9 }
    }
  ],
  "itemsPerPage": 1
}

Recommendations

Tip — Pair fields with incremental sync
If you run periodic synchronizations, combine fields with updatedAtMin to fetch only offers updated after a given RFC3339 timestamp.

Tip — Use dotted paths to target nested properties
You can request nested properties such as:

  • integrationPrice.price
  • facialPrice.price
  • product.gtin

2) Cdiscount: retrieve salesChannelFeedback (online status, best offer, quality, competition)

For Cdiscount (salesChannelId=CDISFR), you can retrieve sales-channel feedback data coming from the channel’s APIs. This typically includes:

  • whether the offer is online (isOnline)
  • displayed price & delivery cost
  • best-offer status and best-offer details
  • offer quality / qualiscore-like feedback and reasons
  • competing offers (other sellers and their displayed conditions)

Option 1 — The simple way: expand=salesChannelFeedback (Cdiscount only)

Request

curl -X GET \
  "https://<API_HOST>/offers?salesChannelId=CDISFR&limit=1000&expand=salesChannelFeedback" \
  -H "SellerId: <YOUR_SELLER_ID>"

Response (example)

{
  "items": [
    {
      "offerId": "1234_TES3499550358636_6_CDISFR",
      "offerState": "Active",
      "salesChannelFeedback": {
        "isOnline": true,
        "displayedOfferPrice": 19.9,
        "deliveryCost": 0,
        "updatedAt": "2025-03-07T16:11:30Z",
        "bestOfferDetails": {
          "isBestOffer": true,
          "isBestOfferUpdatedAt": "2025-03-07T16:11:30Z",
          "bestOffer": {
            "price": 19.9,
            "deliveryCost": null,
            "updatedAt": "2025-03-07T16:11:30Z"
          }
        },
        "offerQuality": {
          "offerScore": "E",
          "scoreReasons": [
            { "code": "longDeliverytime", "reason": "Long delivery times" }
          ],
          "updatedAt": "2025-03-07T16:11:30Z"
        }
      }
    }
  ],
  "itemsPerPage": 1
}

Option 2 — The “targeted” way: request only parts of feedback via fields

If you only need a specific subset (e.g., competition), request it directly with fields.

Request — competing offers only

curl -X GET \
  "https://<API_HOST>/offers?salesChannelId=CDISFR&limit=1000&fields=salesChannelFeedback.competingOffers" \
  -H "SellerId: <YOUR_SELLER_ID>"

Response (example)

{
  "items": [
    {
      "offerId": "1234_TES3499550358636_6_CDISFR",
      "offerState": "Active",
      "salesChannelFeedback": {
        "competingOffers": [
          {
            "sellerName": "ExampleSeller",
            "sellerRating": 4.5,
            "isOnline": true,
            "isBestOffer": false,
            "displayedOfferPrice": 33.99,
            "deliveryCost": 0,
            "updatedAt": "2025-03-07T16:11:30Z"
          }
        ]
      }
    }
  ],
  "itemsPerPage": 1
}

Warning
If you send both fields and expand in the same request, expand will be ignored. Choose one approach:

  • Use expand=salesChannelFeedback to get the full feedback block (Cdiscount)
  • OR use fields=... to retrieve exactly what you need (including salesChannelFeedback.* paths)