API product Feature

The offer allows you to manage your catalog. With the offer feature, you will be able to :

  • Manage CDISCOUNT catalog but also Octopia sales channels

  • Create and update your offer information

  • Check your offer integration log

  • Set up commercial operations (Cdiscount only)

Endpoint

What is an offer ?

In order to understand what "offer" means for Octopia you can read the help center documentation. You will find :

  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

Offer workflow


Picture

Offers submission

How to submit offers with xml - step by step 

1/ Match the EAN codes

Use the Get product API to verify if the product exists in the product referential. 

If the product already exists, you can directly submit an offer on it. 

If the product does not exist, you will have to create it before submiting an offer on it. 

2/ Initiate the zip file

Download examples of package Full and/or Light.

2.1 The name of the zip file:

The name given to the Zip package has no importance. There is no specific norm.

2.2 The structure

The structure of the folder must respect the following structure :

Folder _rels containing the file .rels

Folder Content

File [Content_Types].xml

2.3 "Content" folder

The "Content" folder must contain the offers.xml 

2.4 "Offers.xml" file

The "Offers.xml" is containing all the data necessary to submit offers. 

3/ Fill the Offers.xml file

Several options for the offers.xml package 

For Cdiscount Marketplace:

You can use the Package Full or light (Stock & Price). You do not need to add the sales Channel id.

Download examples of package Full and Stock and Price (or light)

Cdiscount allows to submit offers with sales and flash sales 

Download example of package Flash Sales and Sales

For Octopia Marketplaces:

Only the Full Package is accepted on Ocotpia. You MUST add the sales channel id to target the right marketplace.

Download example of Package for Octopia sales channel

The attributes must be displayed like this (example for Casino Marketplace ; id : CASIFR) : 

<OfferPackage.OfferPublicationList>                                                                                                          <OfferPublicationList Capacity="1">                                                                                                      <PublicationPool SalesChannelId="CASIFR"/>                                                                                              </OfferPublicationList>                                                                                                                 </OfferPackage.OfferPublicationList>

The list of sales channels for each seller is available here.

3.1/ The specificities of some attributes

Mandatory attributes for a FULL offer package on Cdiscount AND Octopia : 

 Name ; PackageType ; SellerProductId ; ProductEan ; ProductCondition ; Price ; EcoPart ; DeaTax ; vat ; Stock ; Comment ; PreparationTime ; DeliveryMode ; ShippingCharges ; AdditionalShippingCharges 

Mandatory attributes for Cdiscount only: 

  • PurgeAndReplace : Allows to purge the offers and update only the offers of the current package. For Octopia sales channel, if this attribute is in the package, it is automaticaly put in false. 

Some other optional attributes only for Cdiscount:

  • StrikedPrice :  Allows you to display the strike price

  • PriceMustBeAligned : "Align" or "DontAlign"

  • MinimumPriceForPriceAlignment : the minimum price to be aligned

  • IsCDAV "true" or "false"

Shipping information: 

The available delivery methods to be informed for parcels under 30 kg :

Only Registered and Tracked are mandatory

<ShippingInformation AdditionalShippingCharges="0.95" DeliveryMode="Standard" ShippingCharges="1.0" />
<ShippingInformation AdditionalShippingCharges="1.95" DeliveryMode="Tracked" ShippingCharges="2.0" />
<ShippingInformation AdditionalShippingCharges="2.95" DeliveryMode="Registered" ShippingCharges="3.0" /
<ShippingInformation AdditionalShippingCharges="6.95" DeliveryMode="RelaisColis" ShippingCharges="7.5" />
<ShippingInformation AdditionalShippingCharges="7.95" DeliveryMode="SoColissimo" ShippingCharges="8.5" />
<ShippingInformation AdditionalShippingCharges="7.95" DeliveryMode="MondialRelay ShippingCharges="8.5" />


Commercial animations:

     There are 4 possible ones :

  • The strikedprice which corresponds to the price generally found in stores. It is not limited in time. Price is strictly lower than StrikedPrice.

  • Minimum price for alignement (MinimumpriceforPriceAlignment and PriceMustBeAligned) which is automatically aligned with the competition up to the fixed floor price. it is not limited in time. In your case, please note that you have entered "1.00", which means that you can lower the price by up to 1€.

  • Sales that are only active during the official sales period in France (January and June). Type=3 and DiscountUnit=1. The SalesreferencePrice is the price that will be applied to the sale (usually equal to the Price) and the DiscountValue is the discount percentage. Be careful, in your example, you make a discount of 99.90%. Not combinable with flash sales.

  • Flash sales. Limited to 72h maximum for each SKU with a mandatory 3x the time of the flash sale between each sale. Type=1 and DiscountUnit=1. The DiscountValue is applied directly on the Price. And the spacing between StartDate and EndDate must not exceed 48h. Not combinable with sales.

4/ Submit your offer package

Once your offer package is ready, you have to host it on a downloadable url then insert this url in the body of the API method : submit an offer.

The API will return a PackageId number with which you can consult the integration results.

Package log

How to get the offer package log ?

Thanks to the packageId, the seller can call the dedicated API in order to get the information about:

  • the status of integration of the package

  • the status of integration of each offer

  • the log message that gives the error code and detailled information on the integration result

  • the date of integration

Endpoints

Get offer package logs
GET /offer-integration-packages/{packageId}

Response attributes : integration state ; Offer integration status ; seller product id ; product EAN ; log message

Recommandations call frequency : Every time you push a package and by using the previous packageId

Submit offer package
POST/offer-integration-packages

Response attributes : Package id

Recommandations call frequency :
Full package : Between 2 to 4 times a day
Light package : As much as you want