Functional documentation

Offer feature V2

How to manage your catalog

API product Feature

  • SUBMIT OFFERS with json (Not available for Cdiscount)
  • SUBMIT OFFERS with xml 
  • GET OFFERS

Endpoint

What is an offer ?

  1. The difference between product and offer
  2. How to create and update offers via API
  3. How to delete an offer (not with API)
  4. How to apply commercial operations (only Cdiscount)

Help center documentation

Some definition

Glossary :

Offer: The offer data concern:

  • Stock
  • Price
  • Taxes
  • Product condition
  • Delivery information (Mode ; Cost ; Time)
  • Status (Active ; Inactive)

An offer is active if and only if ALL the above information are submitted by the seller.

Sales channel : Octopia allows to sell and manage offers on several marketplaces.

Currently, on the offer feature, there are differences of working between Cdiscount and other marketplaces of octopia.

SalesChannelid : This id is used to identify the targeted sales channel. It allows the seller to publish offer information on a specific sales channel.

OfferPoolId : this is a legacy id for the sales channel. It will be deprecated with the SOAP API. Octopia advise to use the sales channel id.

Submit offers : The seller can publish and/or modify the offer information through API’s.

Get offers : The seller can retrieve all the offer information from its catalog

Get offers

How to Get Offers information ?

There are currently two endpoints to get the offer information of your catalogue. 

  • POST Offer Search (will be deprecated)
  • GET Offers (new endpoint)

POST offer search 

It is a POST endpoint for legacy technical reason but it should not be. 

GET Offers 

This is the new endpoint for Octopia and Cdiscount 

Here is an overview of the attributes available in the Get Offers : 

NameLabel (Post Offer Search) will be DeprecatedLabel Get OffersDescriptionFormatExample
Seller identifiersellerIdSeller unique identifierInteger175
Seller External Referenceseller_product_idsellerExternalReferenceSellers reference indicated by the seller during the integration of an offerStringref_of_an_offer
Condition of a productproduct_condition_idconditionThe condition of the product isEnum:1: Like New2: Very Good State4: Average State6: New7: Refurbished Like New8: Refurbished Very Good State9: Refurbished Correct State6
Sales channel identifiersales_channel_idsalesChannelIdSales channel identifier. The list of sales channel id is evolving with new sales channel.String + CapitalFour first letters of the marketplace + Two first letter of the country codeMARJMA
Offer identifieroffer_idofferIdCombination of seller identifier, product, offer sub-status, and offer sales channelString:sellerId_productReference_condition_salesChannelId175_PLA4008789702944_6_MARJMA
Offer stateoffer_stateofferStateStatus of the offerThe “Offer Status” can have two main states:
Active: The offer can be available to the marketplace
Inactive: The offer cannot be available to the marketplaceActive offer:In order to activate an offer, it must meet all the following conditions:All the mandatory offer information are correctly filledThe seller is currently active on Octopia and has an active subscription on the marketplaceThe offer has a Best Logistic OfferDeactivated offer:An offer can be deactivated:Depending on the seller status: Suspended seller, forbidden to sell or in holiday modeSubscription to the marketplace suspended or terminatedDepending on the logistical information:Offer with stock zero
String:ActiveIncativeActive
Sales channel acceptance status(ONLY AVAILABLE FOR OCTOPIA SALES CHANNEL)salesChannelAcceptanceStatusAcceptance status on the marketplaceThe “Acceptance Status” represents the decision of the marketplace to publish or not a product on its marketplace.The possible acceptance statuses are :”Pending”: A “pending” product is not published on the marketplace. It can be accepted or rejected once the marketplace has processed it.”Accepted”: An “Accepted” product can be published on the marketplace when its offer is active.”Rejected”: A “Rejected” product cannot be published on the marketplace.StringAccepted
Productproduct_ean“product”: {“gtin”: ” … “,
“reference”: ” … “}
Product identifierGTIN/EAN code of the productReference : Octopia or Cdiscount reference generated automaticaly at the creation of the productproduct: Objectgtin: Integerreference: String4008789702944PLA4008789702944
Pricesinternational_integration_priceinternational_facial_price“integrationPrice”: {}
…”facialPrice”: {
}
integrationPrice: Is the price submitted by the seller at the integration of an offer.facialPrice: Is the price displayed on the marketplace. The difference between the integrationPrice and the facialPrice could be explained by:an automatic price alignement (only on cdiscount)the conversion into the currency of the marketpacePrice mark-up on replication modeObject
price_valuepriceValue of the integrationPrice and/or facialPriceNumber99.99
CurrencycurrencycurrencyCodeCode of the currecy in ISO 4217 formatStringEUR
Origin price (or stricked price)origin_priceoriginPriceValue of the stricked price to be displayed on the marketplaceNumber119.99
Taxes“taxes”: [
{
“value”: 0.0,
“category”: “DeaTax”,
“type”: “Amount”
},
“taxes”: [
{
“value”: 0.0,
“code”: “deaTax”,
“type”: “Amount”
},
Table of different tax valuesEach objects contain:the value of the taxThe code of the taxThe type: amount or ratetaxes: Object
value: Number
code: String from enum
type: String from enum
“taxes”: [
{
“value”: 0.0,
“code”: “deaTax”,
“type”: “Amount”
},
Delivery information“shipping_information_list”: [
{
shipping_charges additional_shipping_charges, min_lead_time
max_lead_time
delivery_mode_id
code
}best_shipping_charges
“deliveryOffers”: [
{
supplyMode
quantity
isBestDelivery”deliveryModes”: [
{
code
legacyDeliveryModeId
minDeliveryTime
maxDeliveryTime
cost
additionalCost
}
]
},
deliveryOffers: Object with a table of different delivery offers based on the supplyMode. The table can have Seller AND Fulfillment if the seller have an available stock on each supply mode.

supplyMode: The two main supply modes are Seller or Fulfillment.Seller: The seller is responsible of the delivery of its productsFulfillment: The seller has a Fulfillment subscription and stockquantity: Stock available for each supplymodepreparationTime: Only for the Seller supply mode. Represent the time needed by the seller before shipmentisBestDelivery:true: If the best logistic offer is better on the concerned supplymodefalse: If it is not the best logistic offerdeliveryModes: Object with a table of the different delivery modes available for this offercode: Enum of the code of delivery modes available on the concerned marketplacelegacyDeliveryModeId: Enum of the Cdiscount delivery modes
minDeliveryTime: Minimum calculated time before delivery to the customer
maxDeliveryTime: Minimum calculated time before delivery to the customer
cost: Delivery cost to be paid by the customer for this offer
additionalCost: Additional delivery cost to be paid by the customer for each additional product on this offer

deliveryOffers: Object
supplyMode: String
quantity: Number
isBestDelivery: StringdeliveryModes: Object
code: String
legacyDeliveryModeId: String
minDeliveryTime: Integer
maxDeliveryTime: Integer
cost: Number
additionalCost: Number
“deliveryOffers”: [
{
“supplyMode”: “Fulfillment”,
“quantity”: 25,
“isBestDelivery”: true,
“deliveryModes”: [
{
“code”: “THD”,
“legacyDeliveryModeId”: “None”,
“minDeliveryTime”: 4,
“maxDeliveryTime”: 8,
“cost”: 3.4,
“additionalCost”: 2.2
}
]
},
{
“preparationTime”: 2,
“supplyMode”: “Seller”,
“quantity”: 32,
“isBestDelivery”: false,
“deliveryModes”: [
{
“code”: “THD”,
“legacyDeliveryModeId”: “Tracked”,
“minDeliveryTime”: 6,
“maxDeliveryTime”: 10,
“cost”: 0,
“additionalCost”: 0
}
]
}
],
Best Offer(ONLY AVAILABLE FOR OCTOPIA SALES CHANNEL)N/AisBestOffer
“bestOffer”: {
currencyCode
price
deliveryCost
},
isBestOffer:true: If the seller has the best offer on this offerfalse: If it is not the best offerbestOffer: Object with the information of the best offer (best or not) If it is the best offer, the information will be the same as the price. If it is not, it gives the price and best logistic offer of the competitor Best offer.
currencyCode: Code of the currecy in ISO 4217 format
price: Value of the best offer
deliveryCost: Best logistic offer associated to the best offer
isBestOffer: String
bestOffer: Object
currencyCode: String
price: Number
deliveryCost: Number
“isBestOffer”: false,
“bestOffer”: {
“currencyCode”: “EUR”,
“price”: 32,
“deliveryCost”: 0
},
Creation datecreation_datecreatedAtDate of the creation of the offerDate2022-07-13T15:41:38.587Z
Update datelast_update_dateupdatedAtLast modification of the offerDate2023-05-10T16:52:04.984Z
Conversion dateconversionDateDate of the conversion of the price for the sales channel where the cirrecy is different than the integration currency.Date2023-05-10T16:52:04.984Z
Scroll to Top