Data Source Shipping Options
This document provides an overview of Data Source Shipping Options and their purpose. Shipping Options are essential components on the Checkout Page, to select the shipment type for an order. Typically, an order is associated with a single shipping option.
Seller Center Commerce applications have data sources which are sellers in the system. Since each data source can support different shipping options, a new structure known as Data Source Shipping Option has been implemented. This allows users to select a data source shipping option for each data source on their basket.
Sellers on the Seller Center system can support different shipping options, which are their data source shipping options. A seller can select any of available shipping options, making the DataSourceShippingOptions
available to them.
Setting the CHECKOUT_SHIPPING_OPTION_SELECTION_PAGE
dynamic setting as DataSourceShippingOptionSelectionPage
enables the DataSourceShippingOption
selection instead of standard shipping options. Otherwise, standard shipping options will be available for the entire order.
GET
List Data Source Shipping Options
This method is used to get the available data source shipping options for the current checkout.
Path: /orders/checkout/?page=DataSourceShippingOptionSelectionPage
Query Parameters
The following query parameters can be used to get a list of data source shipping options.
Parameter | Data Type | In | Description |
---|---|---|---|
page | string | query | The checkout page that the user makes a transaction. |
Example Request
To retrieve available data source shipping options, a GET request should be sent to the /orders/checkout/?page=DataSourceShippingOptionSelectionPage
endpoint.
import requests
url = "https://{commerce_url}/orders/checkout/?page=DataSourceShippingOptionSelectionPage"
payload={}
headers = {
'Accept': 'application/json',
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Example Response (200 OK)
In a successful response with a status code of 200 OK, the API returns the requested data source shipping options in a checkout context. The response includes the whole checkout page information of the user.
Parameter | Data Type | Description |
---|---|---|
data_sources | list | List of data sources on the basket. |
pk | int | The ID of the data source. |
name | string | The name of the data source. |
data_source_shipping_options | list | Available data source shipping options of related data sources. |
pk | id | The ID of the data source shipping option. |
shipping_amount | string | The cost of the data source shipping option. |
shipping_option_name | string | The name of the data source shipping option. |
shipping_option_logo | url | The URL of the image of the data source shipping option. |
This example response serves as a reference to understand the structure and data format returned when retrieving available data source shipping options successfully.
{
"page_context":{
"data_sources":[
{
"pk":1,
"name":"bayram ticaret",
"data_source_shipping_options":[
{
"pk":1,
"shipping_amount":"33.00",
"shipping_option_name":"B2B",
"shipping_option_logo":null,
"data_source":{
"pk":1,
"title":"Bayram Ticaret"
}
}
]
}
]
},
"page_name":"DataSourceShippingOptionSelectionPage",
"page_slug":"datasourceshippingoptionselectionpage"
}
POST
Select Data Source Shipping Options
This method is used to select data source shipping options for the data sources on the checkout.
Path: /orders/checkout/?page=DataSourceShippingOptionSelectionPage
Request Body
The following request body parameters can be used to select data source shipping options.
Parameter | Data Type | In | Required | Description |
---|---|---|---|---|
data_source_shipping_options | list | body | ✓ | The list of IDs of the selected data source shipping options. |
Example Request
import requests
import json
url = "https://{commerce_url}/orders/checkout/?page=DataSourceShippingOptionSelectionPage"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
payload = "data_source_shipping_options=[3, 4, 1]"
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Token {}'.format(api_token)
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response (200 OK)
In a successful response with a status code of 200 OK, the API indicates that a change has occurred on the checkout. First of all, error
field must be checked. If it is null, page_context
of the response contains the next page information. The set of data source shipping options is returned to the client in the pre-order using the following data structure.
{
"data_source_shipping_options":[
{
"pk":1,
"shipping_amount":"33.00",
"shipping_option_name":"B2B",
"shipping_option_logo":null,
"data_source":{
"pk":1,
"title":"Bayram Ticaret"
}
}
]
}
Example Bad Request Response (200 OK)
In an unsuccessful response with a status code of 200 but contains a non-null error field, the errors are like below.
{
"errors": {
"data_source_shipping_options": [
"Invalid pk \"1\" - object does not exist."
]
}
}
"errors":{
"data_source_shipping_options":"This field is required"
}