Diagram of matching `Product` with a leaf `Category` :
| Field name | Type/Size | Description |
|---|---|---|
| category_id | Int | Unique ID of the category. |
| category_name | String/200 | Name of the category. |
| marketplace_category_id | Int | Unique Id of the `Category` to provide on `Product` creation. Allows matching of a `Product` to its `leaf Category`. |
| is_leaf | Bool | If True, the `Category` does not have any child & `Products` can be associated with it. |
| attributes | Array[`Attributes`] | List of `Attributes` attached to a `leaf Category`. |
| childrens | Array[`Category`] | List of children `Categories`. Empty if is_leaf==True. |
| Field name | Type/Size | Description |
|---|---|---|
| field | String/200 | Field to provide during creation of a `Product`. |
| field_name | String/200 | Name of the `Attribute`. |
| type | Int |
0: "Decimal"
1: "Integer"
2: "String"
3: "Multiple_Choice"
|
| allowed_values | String/1000 | If `type` is "Multiple_Choice": accepted values separated by ",". |
| required | Bool | True if the attribute is mandatory to create the Product. |
| Field name | Type/Size | Description |
|---|---|---|
| product_id | String | Unique product Id. Provided by Back Market at the creation of a `Product` for purpose of matching to `Listings`. |
| Field name | Type/Size | Description |
|---|---|---|
| ean | String/13 | `EAN` used to match an already existing `Product`. A new `Product` is created if there is no match. Also used to match a Listing at its creation if the Back Markert ID is not provided. |
| category_id | Int | Matches the marketplace_category_id. Unique ID of a selected `Category`, to be provided during creation of a `Product`. Allows matching a `Product` to its `leaf Category`. |
| title | String/200 | Product title. |
| description | Text | Product description. |
| brand | String/100 | Product brand. |
| price_new | Decimal | Market price of the product sold new. |
| weight | Int > 1 | Weight in grams (g). |
| image1 | String/1000 | First image. |
| Field name | Type/Size | Description |
|---|---|---|
| image2 | String/1000 | Second image. |
| image3 | String/1000 | Third image. |
| image4 | String/1000 | Fourth image. |
| image5 | String/1000 | Fifth image. |
| image6 | String/1000 | Sixth image. |
| width | String/200 | Width. |
| height | String/200 | Height. |
| depth | String/200 | Depth. |
| Field name | Type/Size | Description |
|---|---|---|
| category_id | Int | Unique ID of the `Category`. |
| category_name | String/200 | Name of the `Category`. |
| marketplace_category_id | Int | Unique Id of the `Category` to provide during the creation of a `Product`. Allows matching a `Product` & its `leaf Category`. |
| is_leaf | Bool | If True, the `Category` does not have any children & `Products` can assigned to it. |
| attributes | Array[Attributes] | List of `Attributes` attached to a `leaf Category`. |
| childrens | Array[Category] | List of children `Categories`. Empty if is_leaf==True. |
| Field name | Type/Size | Description |
|---|---|---|
| field | String/200 | Field to provide at `Products` creation. |
| field_name | String/200 | Name of the `Attribute`. |
| type | Int |
0: "Decimal"
1: "Integer"
2: "String"
3: "Multiple_Choice"
|
| allowed_values | String/1000 | If `type` is "Multiple_Choice": accepted values separated by ",". |
| required | Bool | True if the `Attribute` is mandatory to create the `Product`. |
| Status code | Description |
|---|---|
| 200 | OK. |
| 400 | Bad request. |
| 403 | Forbidden. |
| 404 | Webservices unavailable. |
`Orders` workflow diagram :
`Orderlines` workflow diagram :
When a customer makes a payment on Back Market, an `Order` is to the merchants concerned. Each `Order` is composed of
one or several `Orderlines`. An `Orderline` is defined by a quantity of a specific listing from an order placed by a
customer to a specific merchant (`Ordeline` contains also specific information about the customer: billing,
shipping addresses etc.). [_cf._ Figure: _Summary of the Product/Listing structure_]
Diagram _Summary of the Product/Listing structure_, shows an example of a Customer Z who makes a payment to buy 1
Product A and 1 Product B from Merchant X, and 4 Products C from Merchant Y._
Merchants only have to deal with `Orderlines` inside of an `Order`. All `Orders` will be treated automatically by our
service. Therefore, the state of an `Order` cannot be modified by merchants. Merchants receive an `Order` with the
state 1. The processing of an `Order` is not over until all its `Orderlines` have reached a
final state (_cf._ Table 6).
During the shipping, all `Orderlines` are gathered in the same package. Therefore, it is not necessary to specify an
`Orderline ID` when updating an `Orderline` to the state 3 (All `Orderlines` of this
`Order` will be set to this state automatically).
### Table 5 - Order State
Color-codes for the `State`:
New Order, Temporary States,
Final States.
| State | Description |
|---|---|
| 0 | New `Order`. Payment validation is pending. We are doing verifications to check the customer identity. The `Orders` in this `State` must not be shipped. |
| 10 | `Order` is pending. The customer have ordered but still have time to pay. Merchant has to wait for payment, the `Orders` in this `State` must not be shipped. |
| 1 | Payment is checked & validated. The merchant has to process (accept or cancel) the `Orderlines`. |
| 3 | `Order` shipping is pending. The payment and the `Order` (all `Orderlines`) have been validated. The merchant has to ship the package to the customer. |
| 8 | Order is not paid. Payment process has failed, the merchant must ignore this `Order`. |
| 9 | Order processed. The merchant has shipped the package. |
| State | Description | Possible next states |
|---|---|---|
| 0 | New `Orderline`. The merchant has to wait for payment confirmation. | Not possible |
| 9 | `Orderline` is on hold. It needs to be validated by one of our partners before being accepted by the merchant. | Not possible |
| 8 | `Orderline` is pending. The customer have ordered but still have time to pay. Merchant has to wait for payment. | Not possible |
| 1 | `Orderline` is paid. The merchant has received the payment and must validate or cancel the `Orderline`. | State 2 or 4 |
| 2 | `Orderline` is accepted by the merchant, who must now prepare the `Product` for shipment. | State 3 or 5 |
| 3 | The merchant has deliver the `Orderline` to the shipping company. The package delivery is in progress. | State 6 |
| 4 | `Orderline` is cancelled. The customer will be refunded for the `Orderline`. | Not possible |
| 5 | Orderline is refunded before shipping. | Not possible |
| 6 | Orderline is refunded after shipping. The customer made a refund request. | Not possible |
| 7 | Orderline is not paid. The payment has been refused by the bank. | Not possible |
| Field name | Type/Size | Description |
|---|---|---|
| order_id | Int | Unique id of the `Order`. Used to update `Orderline(s)` of an `Order` . |
| merchant_id | Int | Unique id of the merchant. |
| shipping_address | Address | Shipping address: please refer to the Table 8 for address description. |
| billing_address | Address | Billing address: please refer to the Table 8 for address description. |
| price | Decimal | `Order` total price (including taxes) without the shipping price. |
| shipping_price | Decimal | Shipping total price (including taxes). |
| currency | String/3 | Used currency. |
| shipper | String/200 | Designated shipping company. |
| tracking_number | String/200 | Tracking number of the package. |
| tracking_url | String/300 | Tracking Url of the package. |
| date_creation | Datetime | Date of the Order in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339#section-5) format |
| date_modification | Datetime | Date of the last modification in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339#section-5) format |
| date_payment | Datetime | Date of the payment in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339#section-5) format |
| date_shipping | Datetime | Date of the shipping in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339#section-5) format |
| state | Enum (Int) | Refere to Table 5 for the Order states details. |
| orderlines | Array[OrderLine] | List of `Orderlines` indexed by SKU (stock keeping unit). |
| country_code | Enum (String) |
Accepted-values:
fr-fr: France (default)
fr-be: Belgium
es-es: Spain
de-at: Austria
de-de: Germany
it-it: Italy
ja-jp: Japan
en-au: Australia
en-gb: United Kingdom
en-us: United States
nl-nl: Netherlands
pt-pt: Portugal
en-ie: Ireland
el-gr: Greece
sk-sk: Slovakia
sv-se: Sweden
|
| Field name | Type/Size | Description |
|---|---|---|
| company | String/254 | Company name. |
| last_name | String/200 | Last name. |
| last_name_pronunciation | String/200 | Last name pronunciation. This field is only used to handle Kana names for Japan. |
| first name | String/200 | First name. |
| first_name_pronunciation | String/200 | First name pronunciation. This field is only used to handle Kana names for Japan. |
| street | String/254 | Street number and designation. |
| street2 | String/254 | Floor, door code. |
| postal_code | String/10 | Zip code. |
| city | String/200 | City. |
| country | String/100 | Country. |
| phone | String/14 | Phone number. |
| String/200 | Email address. |
| Field name | Type/Size | Description |
|---|---|---|
| listing | Listing | `Listing` that matches the `Orderline`. |
| quantity | Int | Quantity of products ordered |
| price | Decimal | Unitary price (including taxes) of the `Listing` without shipping costs. |
| shipping_price | Decimal | Unitary price of the shipping (including taxes). |
| currency | String/3 | Used currency. |
| state | Enum (Int) | Refere to Table 6 for Orderlines states description. |
| return_reason | Enum (Int) |
0: Stock mistake.
1: Withdrawal during the legal 14 day period.
11: Does not live at provided address.
12: The parcel did not reach its destination.
13: Lost parcel.
21: Faulty product on opening of the package.
22: Failure during first use.
23: Failure during warranty period.
24: Non-compliant product.
25: Other.
|
| return_message | String/500 | Message sent to the customer for a cancellation or a refund. |
| backcare | Bool | True if this orderline is covered by the Backcare service |
| backcare_price | Int | The backcare price in cents. |