Opollo Open API (1.0.0)

Download Postman Collection:

Introduction

Welcome to the Opollo Open API Documentation. Our platform revolutionizes e-commerce businesses by seamlessly connecting their operations with numerous selling platforms, online stores, warehouses, and third-party logistics providers. This guide is designed for partners like you, providing elaborate instructions on how to integrate with the Opollo system

API Authentication

To begin using Opollo's Open API, you need to register for API access by contacting your brand team to create an API application on Opollo with the right API scopes related to your integration data such as warehousing fulfillment, delivery, selling channel or reporting.

After that, we recommend starting with these documents:

  1. Development Guide - Learn the process of API calling.
  2. API Best Practices - Learn how your system interacts with Opollo.
  3. Integration Workflow - Learn how Opollo interacts with your system and platforms.
  4. Webhook - Learn how to receive latest changes.
  5. Testing Guide - Learn how to test your integration.

Development guide

API calling process

APIs are called through HTTP requests. The process of calling an API is as follows:

  • Generate signature
  • Assemble the HTTP request
  • Get the HTTP response

Calling parameters

Headers

Name Type Required? Description
x-api-key string yes The provided API key.
x-timestamp integer yes The current epoch time (to second precision). Each request timestamp is valid in 5 minutes.
x-signature string yes The signature to be validated by us (detail in the next section).

Business parameters

Signature algorithm

The process of generating the signature for each request is as follows:

  • Use dots (.) to concatenate the query string, the minified JSON request body, and the current epoch time.
  • Use the provided secret key and SHA-256 to compute the HMAC of the concatenated string.

For example:

Give the following request information:

  • Query: query_foo=1&query_bar=abc
  • Minified request body: {"foo":"abc","bar":2}
  • Secret key: secret-key
  • Current epoch time is 1704067200 (2024-01-01T00:00:00.00Z)

The computed HMAC is d12f057453d9462860bfe21b8120b16dc31f11e31315588666f72f67a5ea6fcc (try it on https://www.devglan.com/online-tools/hmac-sha256-online).

Request example

Give a request with the following information:

  • Endpoint: POST http://example.com/example-enpoint
  • Query: query_foo=1&query_bar=abc
  • Minified request body: {"foo":"abc","bar":2}

The provided keys:

  • API key: api-key
  • Secret key: secret-key

The current epoch time is 1704067200 (2024-01-01T00:00:00.00Z).

Generate signature

The process of generating the signature is as follows:

  • Concatenated request information: query_foo=1&query_bar=abc.{"foo":"abc","bar":2}.1704067200
  • Compute HMAC: d12f057453d9462860bfe21b8120b16dc31f11e31315588666f72f67a5ea6fcc
  • Uppercase the HMAC: D12F057453D9462860BFE21B8120B16DC31F11E31315588666F72F67A5EA6FCC

Assemble the HTTP request

curl --location 'http://example.com/example-enpoint?query_foo=1&query_bar=abc' \
--header 'x-api-key: api-key' \
--header 'x-timestamp: 1704067200' \
--header 'x-signature: D12F057453D9462860BFE21B8120B16DC31F11E31315588666F72F67A5EA6FCC' \
--header 'Content-Type: application/json' \
--data '{"foo":"abc","bar":2}'

API best practice

Warehouse outbound request operation

Status flow

B2C outbound request status flow

stateDiagram-v2 new --> packed packed --> ready_to_ship ready_to_ship --> cancel_requested cancel_requested --> handed_over ready_to_ship --> handed_over new --> cancelled packed --> cancelled cancel_requested --> cancelled note left of cancel_requested The outbound request has been cancelled by Opollo and waited for cancellation confirmation from the warehouse end note note right of cancelled The outbound request is cancelled by Opollo and in cancellable statuses, or confirmed by warehouse end note

B2B outbound request status flow

stateDiagram-v2 new --> processing processing --> handed_over new --> cancelled note left of cancelled The outbound request has been cancelled by Opollo end note

API call flow

B2C outbound request statuses and API call flow

stateDiagram-v2 new --> packed : /pack packed --> ready_to_ship : /confirm-rts ready_to_ship --> handed_over : /handover cancel_requested --> cancelled: /confirm-cancellation cancel_requested --> handed_over: /handover note left of packed the outbound request is packed and ready for creating 3PL order end note note right of ready_to_ship the outbound request is labeled and ready for handing over to 3PL end note note left of cancel_requested The outbound request has been cancelled by Opollo and waited for cancellation confirmation from the warehouse end note note left of handed_over the outbound request is handed over to 3PL end note note right of cancelled the outbound request is cancelled by warehouse end note

B2B outbound request statuses and API call flow

stateDiagram-v2 new --> processing : /process processing --> processing : /process processing --> handed_over : /handover note left of processing Outbound processing can be triggered multiple times end note

Warehouse inbound request operation

Status flow

stateDiagram-v2 new --> processing processing --> partial_inbound partial_inbound --> completed new --> cancelled note left of cancelled The inbound request has been cancelled by Opollo end note

API call flow

stateDiagram-v2 new --> processing : /start processing --> partial_inbound : /confirm-partial-inbound partial_inbound --> completed : /complete note left of partial_inbound Inbound processing can be triggered multiple times end note

Warehouse - Opollo integration workflow

Product management

Updating...

Inventory management

Whenever the warehouse has a change in inventory, the WMS needs to send a signal to update the inventory in Opollo. We recommend that the WMS update the inventory at a high frequency to ensure real-time inventory synchronization across platforms.

Outbound request management

B2C outbound request workflow

Workflow steps:

  1. Customer places an order on the selling platform.
  2. Opollo receives the order, locks the product stock, and sends a signal to the WMS for the new outbound request (OR).
  3. The WMS receives an OR from Opollo, locks the warehouse product stock, and updates the inventory in Opollo. When the OR is successfully created at the WMS, Opollo will decrease the committed stock.
  4. After packing the OR, the WMS sends a signal to confirm it is packed to Opollo. Our system will then confirm the packing on the selling platform to obtain the shipping label and send it to the WMS.
  5. The WMS receives the label, completes the packing process, and sends a signal to confirm it is ready to ship. Opollo will then send a signal to the Platform (or the Delivery partner) to pick up the goods from the warehouse.
  6. After handing over the package to the third-party logistics (3PL) provider, the warehouse needs to send a confirmation of the handover action and update the inventory in Opollo.
  7. Optional - If the package fails to be delivered, the delivery partner sends the package back to the warehouse. After receiving the package, the WMS sends a signal to confirm that the package has been returned.

B2B outbound request workflow

Workflow steps:

  1. After an outbound request has been created, Opollo will send a signal to the WMS for the new outbound request.
  2. The WMS receives an OR from Opollo, locks the stock at the warehouse, and updates the inventory in Opollo.
  3. After each packing session, the warehouse needs to send a signal to confirm processing, update the status, and provide the last actual outbound quantity to Opollo. (Outbound processing can be triggered multiple times).
  4. After handing over the package to the 3PL, the warehouse needs to confirm the handover and update the inventory in Opollo.

Outbound Request cancellation

For B2B outbound requests, Opollo only cancels warehouse orders that are not confirmed as "processing". The cancellation signal will be sent via webhook.

For B2C outbound requests, please refer to the workflow below:

Workflow steps:

  1. Opollo sends a signal to cancel a B2C outbound request (OR) to the WMS.

  2. If the OR has not been confirmed as ready to ship (RTS), it will be successfully canceled.

  3. If the OR has been confirmed as ready to ship:

    • If the cancellation request fails and the package has been handed over to the 3PL, WMS will take action to confirm the handover and update the inventory in Opollo.
    • If the OR has not yet been handed over to the 3PL, WMS will confirm the cancellation and perform the re-inbound process to update the inventory in Opollo.

Inbound request management

An Inbound request (IR) can originate from either Opollo or WMS.

Inbound request created by Opollo

Workflow steps:

  1. After an IR has been created, Opollo will send a signal to WMS for the new IR.
  2. WMS receives the IR from Opollo.
  3. The warehouse sends a "start processing" signal to Opollo upon the arrival of the supplier or delivery partner at the warehouse. The purpose of this signal is to confirm that the warehouse has received the goods and that Opollo cannot the IR anymore.
  4. The warehouse proceeds with QC, inbound, and putaway. For each batch received, the warehouse sends a partial inbound signal to update the actual received quantity and inbound status.
  5. In parallel, the warehouse updates the inventory of the SKU after stock synchronization.
  6. After completing the receiving process, the warehouse sends a "complete an inbound" signal to Opollo.

Inbound request created by WMS

Workflow steps:

  1. The user creates an IR on WMS.
  2. WMS sends a signal to create an IR with type "standard" to Opollo.
  3. The warehouse sends a "start processing" signal to Opollo upon the arrival of the supplier or delivery partner at the warehouse.
  4. The warehouse proceeds with QC, inbound, and putaway. For each batch received, the warehouse sends a partial inbound signal to update the actual received quantity and inbound status.
  5. In parallel, the warehouse updates the inventory of the SKU after stock synchronization.
  6. After completing the receiving process, the warehouse sends a "complete an inbound" signal to Opollo."

Inbound request cancellation

Inbound request cancellation is separated into two types:

Inbound request created by Opollo:

Opollo will send a signal to WMS via webhook when a user cancels an inbound request.

Inbound request created by WMS:

  1. When an inbound request is canceled in WMS, WMS sends a signal to cancel the inbound request to Opollo.
  2. Opollo performs validation of the inbound request's source, whether it is from Opollo or WMS:
    • If the IR's source is Opollo, Opollo will reject the cancellation request.
    • Otherwise, Opollo will check if the IR has not sent the "start processing" signal. If it has not, Opollo will accept the cancel signal from WMS.

Return management

The return order is an inbound request with the type "return" and can be created by Opollo or WMS.

Return order created by Opollo

Workflow steps:

  1. Customers directly contact Customer Service (CS) for returns. After verifying, CS creates an IR for returning.
  2. The warehouse receives the IR from Opollo.
  3. The warehouse sends a "start processing" signal to Opollo upon the arrival of the delivery partner at the warehouse.
  4. When the delivery partner hands over the goods to the warehouse, the warehouse receives the goods according to the IR.
  5. The warehouse proceeds with QC, inbound, and putaway.
  6. In parallel, the warehouse updates the inventory of the SKU after stock synchronization.
  7. When the inbound request is completed, the warehouse sends a "complete an inbound" signal to Opollo.

Return order created by WMS

Workflow steps:

  1. Delivery sends the package to the warehouse.
  2. The warehouse receives and checks the package's appearance.
  3. If the QC process fails, the warehouse can reject receiving the package.
  4. If the QC process passes, the warehouse checks if the order exists in WMS.
  5. If the order exists, the warehouse creates the return order and calls the API to "create an inbound request" with the type "return" and inputs one of two fields: "shipped_tracking_code" or "shipped_or_code".
  6. If the order doesn't exist, the warehouse needs to check with your brand team to identify Opollo's package.
  7. If the order doesn't exist in Opollo, return to step 3.
  8. If the order exists in Opollo, the brand team provides either the "shipped_or_code" (the original warehouse outbound request code) or the "shipped_tracking_code" (the original tracking code) for the warehouse to create a return order.
  9. Then, the warehouse follows the inbound request process to complete the inbound request with the type "return".

Webhook

Overview

Webhook provides a method to notify latest changes in the Opollo system to your system immediatetely.

To use this feature, you need to register by contacting your brand team to configure the Webhook URL for your application.

Request structure

Request headers

For security purposes, we use the method described in the API calling process section to generate the signature for each request. For each request, we use your provided API key and secret key to generate the signature. The signature does not include the request query string.

Request body

For all webhook requests, we use the POST method with the following structure:

{
  "topic": "[the webhook topic]",
  "data": {
    // The notified change
  }
}

Outbound request webhook

Common payload structure:

{
  "data": {
    "or_code": "[the outbound request code]",
    "ref_or_code": "[the warehouse reference outbound request code]",
    "status": "[the updated status]",
    "updated_at": "[the updated time in ISO-8601 format]",
    "warehouse_code": "[the warehouse code]"
  },
  "topic": "[the webhook topic]",
}

For the warehouse_outbound_request_delivery_informed, the payload is descrisbe by this structure:

{
  "data": {
    "delivery_name": "[the delivery service name]",
    "or_code": "[the outbound request code]",
    "pickup_name": "[the pickup service name]",
    "ref_or_code": "[the warehouse reference outbound request code]",
    "status": "[the updated status]",
    "shipping_label_url": "[the shipping label URL]",
    "tracking_code": "[the delivery tracking code]",
    "updated_at": "[the updated time in ISO-8601 format]",
    "warehouse_code": "[the warehouse code]"
  },
  "topic": "warehouse_outbound_request_delivery_informed"
}

List of topics:

topic description
warehouse_outbound_request_created An outbound request is created
warehouse_outbound_request_cancelled An outbound request is cancelled
warehouse_outbound_request_cancellation_requested An outbound request is requested to be cancelled
warehouse_outbound_request_delivery_informed An outbound request is informed for delivery information

Inbound request webhook

Common payload structure:

{
  "data": {
    "ir_code": "[the inbound request code]",
    "ref_ir_code": "[the warehouse reference inbound request code]",
    "status": "[the updated status]",
    "updated_at": "[the updated time in ISO-8601 format]",
    "warehouse_code": "[the warehouse code]"
  },
  "topic": "[the webhook topic]",
}

List of topics:

topic description
warehouse_inbound_request_created An inbound request is created
warehouse_inbound_request_cancelled An inbound request is cancelled

Product webhook

Common payload structure:

{
  "data": {
    "sku": "[the product SKU]",
    "updated_at": "[the updated time in ISO-8601 format]"
  },
  "topic": "[the webhook topic]",
}

List of topics:

topic description
warehouse_product_created A product is created
warehouse_product_updated A product is updated

Testing guide

For each partner who needs to integrate with the Opollo system, we provide a testing environment to ensure the integration is successful. The testing guide includes the following steps:

Setup testing environment

We use Postman for testing the Opollo Open API. To start testing, you need to follow these steps:

  1. Open URL: https://open.onpoint.vn

  2. Download the Postman collection by clicking on the Download button

  1. After downloading, you can import the collection to your Postman application.

  2. Create a new environment with the following variables:

  • api_key: your provided API key
  • secret_key: your provided secret key

Now you are ready to test the Opollo Open API.

Test B2C outbound requests

Create a new outbound request

  1. Open the provided sample store to create a new order.
  1. Select quantity to buy by clicking the + button for each product.

  2. Click the Buy (or Mua ngay) button to create a new order.

  3. Enter your information and complete your order

View outbound requests

  1. Log into the Opollo Admin with your provided testing account via this URL:

https://stg-admin.onpoint.vn/sign_in

  1. To view your B2C outbound request, you should go to the B2C Order page via this URL

https://stg-admin.onpoint.vn/orders?utm_source=sidebar

  1. An order may take 5-10 minutes to be processed in multiple steps (for example: applying promotions, checking stock, etc.) before it is successfully pushed to the warehouse when its status is wh_processing.
  1. Now you can see your B2C order via the Listing oubound request API

Note:

  • After you confirm packing an order and Opollo acknowledges the confirmation by confirming the order is packed on the platform, the platform will create a delivery order.
  • Depending on the platform, Opollo will receive the tracking code and shipping label from the platform and send them to the warehouse within 5-10 minutes after confirming packing.
  • After receiving the tracking code and shipping label, you can use the Confirming ready to ship API to confirm ready to ship the B2C outbound request.

Cancel an outbound request

  1. Find your order on Opollo

  2. Click the Show more button to show order's fulfillments

  3. Click the Cancel button to cancel an order fulfillment (the B2C outbound request in the warehouse)

Test purchase orders

  1. Access this URL to open the Purchase Orders page: https://stg-admin.onpoint.vn/purchase_order_v2/

  2. Click the Create New button to create a new purchase order

  1. Fill in the highlighted fields in the image below
  1. Add purchase order items by filling their SKU information
  1. Click the Submit button to save the purchase order.

  2. Click the Approve button, enter your password, and click the Confirm button to approve the purchase order.

Now you can see your purchase order inbound request via the Listing inbound requests API.

Test B2C return orders

  1. Create a B2C order with virtual delivery as the delivery type
  1. After the B2C outbound request is pushed to the warehouse, use the outbound request update API to update the ref_or_code value before packing.

  2. Access this URL to open the B2C orders page: https://stg-admin.onpoint.vn/orders?utm_source=sidebar

  3. Find your B2C order and click the Complete this order button to complete.

  1. After completing the order, click the "Create return order" button to create a B2C return order
  1. You will be navigated to the B2C return order detail page.

  2. Add B2C return order information by completing the highlighted fields and items shown in the image below.

  1. Click the "Push Order" button. Once pushed successfully, your order will appear in the Listing inbound requests API.

Contact

If you have any concerns, please feel free to contact our Tech team via email: opollo-tech@onpoint.vn.

Admin | Group brand

List group brands

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

Admin | Brand

List brands

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

Admin | Vendor

List vendors

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

Admin | Channel

List channel platforms

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List channels

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

Admin | Warehouse

List warehouse platforms

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List warehouses

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

Admin | Product

List product categories

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

List VAT groups

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List products

Retrieve list of products with cursor based pagination

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

vendor_code
string
Example: vendor_code=VD01

query by vendor code

brand_code
string
Example: brand_code=B01

query by brand code

category_code
string
Example: category_code=C01

query by category code

status
string (AdminProductStatus)
Enum: "active" "inactive" "deleted"

query by status

classification
string (AdminProductClassification)
Enum: "single" "physical_bundle" "virtual_bundle"

query by classification

type
string (AdminProductType)
Enum: "sell" "gift"

query by type

skus
string
Example: skus=P01,P02

The list of product SKUs, separated by the , character

updated_to
string
Example: updated_to=2024-01-02T00:00:00Z

Filters products that are updated before the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

updated_from
string
Example: updated_from=2024-01-01T00:00:00Z

Filters products that are updated after the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the updated_to value.

inserted_to
string
Example: inserted_to=2024-01-02T00:00:00Z

Filters products that are inserted before the given time in ISO-8601 format. The time range from inserted_from to inserted_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

inserted_from
string
Example: inserted_from=2024-01-01T00:00:00Z

Filters products that are inserted after the given time in ISO-8601 format. The time range from inserted_from to inserted_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the inserted_to value.

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

Create a product

Create a new product

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
sku
required
string

The product SKU

name
required
string

The product name

product_type
required
string
Enum: "sell" "gift"

The product type

classification
required
string
Enum: "single" "physical_bundle" "virtual_bundle"

The product classification

vendor_code
string

The vendor code

brand_code
required
string

The brand code

category_code
required
string

The category code

vat_in_code
required
string

The VAT in code

vat_out_code
string

The VAT out code. This field is required in case the system is configured to apply the VAT out.

business_model_type
string
Enum: "consignment" "outright" "outright_service" "service"

The business model type. This field is required in case the system is configured to apply the business model.

purchase_price
required
integer >= 0

The purchase price

retail_selling_price
required
integer >= 0

The retail selling price

selling_price
required
integer >= 0

The selling price

weight
integer >= 1

The weight (gram)

length
integer >= 1

The length (centimeter)

width
integer >= 1

The width (centimeter)

height
integer

The height (centimeter)

Array of objects (AdminProductBundle)

The product children. Applied in case the classification is physical/virtual bundle.

Responses

Request samples

Content type
application/json
{
  • "sku": "P01",
  • "name": "Product 01",
  • "product_type": "sell",
  • "classification": "virtual_bundle",
  • "vendor_code": "VD01",
  • "brand_code": "BR01",
  • "category_code": "C01",
  • "vat_in_code": 10,
  • "vat_out_code": 10,
  • "business_model_type": "service",
  • "purchase_price": 10000,
  • "retail_selling_price": 20000,
  • "selling_price": 20000,
  • "weight": 1,
  • "length": 1,
  • "width": 1,
  • "height": 1,
  • "children": [
    ]
}

Response samples

Content type
application/json
{
  • "sku": "P01",
  • "name": "Product 01",
  • "product_type": "sell",
  • "classification": "single",
  • "vendor_code": "VD01",
  • "brand_code": "BR01",
  • "category_code": "C01",
  • "uom": "each",
  • "vat_in_rate": 10,
  • "vat_in_code": 10,
  • "vat_out_rate": 10,
  • "vat_out_code": 10,
  • "business_model_type": "consignment",
  • "purchase_price": 10000,
  • "retail_selling_price": 20000,
  • "selling_price": 20000,
  • "weight": 1,
  • "length": 1,
  • "width": 1,
  • "height": 1,
  • "status": "active",
  • "children": [
    ],
  • "updated_at": "2024-01-01T00:00:00Z",
  • "inserted_at": "2024-01-01T00:00:00Z"
}

Update a product

Update a product

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
sku
required
string

The product SKU

name
string

The product name

product_type
string (AdminProductType)
Enum: "sell" "gift"
vendor_code
string

The vendor code

brand_code
string

The brand code

category_code
string

The category code

vat_in_code
string

The VAT in code

vat_out_code
string

The VAT out code

purchase_price
integer >= 0

The purchase price

retail_selling_price
integer >= 0

The retail selling price

selling_price
integer >= 0

The selling price

weight
integer >= 1

The weight (gram)

length
integer >= 1

The length (centimeter)

width
integer >= 1

The width (centimeter)

height
integer

The height (centimeter)

status
string (AdminProductStatus)
Enum: "active" "inactive" "deleted"

Responses

Request samples

Content type
application/json
{
  • "sku": "P01",
  • "name": "Product 01",
  • "product_type": "sell",
  • "vendor_code": "VD01",
  • "brand_code": "BR01",
  • "category_code": "C01",
  • "vat_in_code": 10,
  • "vat_out_code": 10,
  • "purchase_price": 10000,
  • "retail_selling_price": 20000,
  • "selling_price": 20000,
  • "weight": 1,
  • "length": 1,
  • "width": 1,
  • "height": 1,
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "sku": "P01",
  • "name": "Product 01",
  • "product_type": "sell",
  • "classification": "single",
  • "vendor_code": "VD01",
  • "brand_code": "BR01",
  • "category_code": "C01",
  • "uom": "each",
  • "vat_in_rate": 10,
  • "vat_in_code": 10,
  • "vat_out_rate": 10,
  • "vat_out_code": 10,
  • "business_model_type": "consignment",
  • "purchase_price": 10000,
  • "retail_selling_price": 20000,
  • "selling_price": 20000,
  • "weight": 1,
  • "length": 1,
  • "width": 1,
  • "height": 1,
  • "status": "active",
  • "children": [
    ],
  • "updated_at": "2024-01-01T00:00:00Z",
  • "inserted_at": "2024-01-01T00:00:00Z",
  • "group_brand_code": "GB01",
  • "manufacturer_barcode": 1234567890,
  • "manufacturer_system_code": "SC123456789",
  • "manufacturer_price": 20000,
  • "extra_values": {
    },
  • "warehouses": [
    ]
}

Push a product to warehouse

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
sku
required
string

The product SKU

warehouse_platform_code
required
string

The warehouse platform code

Responses

Request samples

Content type
application/json
{
  • "sku": "P01",
  • "warehouse_platform_code": "WHPL01"
}

Response samples

Content type
application/json
{
  • "sku": "P01",
  • "warehouse_platform_code": "WHPL01"
}

List product inventories

Retrieve list of product inventories

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
sku
required
string
Example: sku=SKU01

query by opollo product SKU

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List product channel inventories

Retrieve list of product channel inventories

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
sku
required
string
Example: sku=SKU01

query by opollo product SKU

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Admin | B2C order

List B2C orders

Retrieve list of B2C orders with cursor based pagination

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

channel_platform_code
string
Example: channel_platform_code=CP01

query by channel platform code

channel_code
string
Example: channel_code=C01

query by channel code

status
string (AdminB2COrderStatus)
Enum: "pl_processing" "new" "wh_pending" "wh_processing" "wh_completed" "dl_pending" "dl_intransit" "dl_delivered" "dl_returning" "returned" "cancelled" "completed" "lost" "damaged" "unknown"

query by status

platform_status
string
Example: platform_status=platform_pending

query by platform status

order_codes
string
Example: order_codes=C01-O123,C01-O789

The list of order codes, separated by the , character

platform_order_codes
string
Example: platform_order_codes=O123,O789

The list of platform order codes, separated by the , character

updated_to
string
Example: updated_to=2024-01-02T00:00:00Z

Filters orders that are updated before the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

updated_from
string
Example: updated_from=2024-01-01T00:00:00Z

Filters orders that are updated after the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the updated_to value.

created_to
string
Example: created_to=2024-01-02T00:00:00Z

Filters orders that are created before the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

created_from
string
Example: created_from=2024-01-01T00:00:00Z

Filters orders that are created after the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the created_to value.

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

List B2C order fulfillments

Retrieve list of B2C order fulfillments with cursor based pagination

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
cursor
string
Example: cursor=eyJwcmV2aW91c19pZCI6MX0=

The cursor

size
integer <= 100
Default: 20
Example: size=20

The page size

channel_code
string
Example: channel_code=C01

query by channel code

warehouse_code
string
Example: warehouse_code=WH01

query by warehouse code

status
string (AdminB2COrderFulfillmentStatus)
Enum: "odf_pending_payment" "odf_pending_cs_call" "odf_pending_promotion" "odf_pending" "odf_processed" "odf_packed" "odf_ready_to_ship" "odf_delivered" "odf_returned" "odf_cancelled" "odf_legacy" "odf_failed_to_deliver" "odf_failed_to_cancel" "odf_failed_to_transform" "odf_fulfilled_by_platform" "odf_fulfilled_by_3rd_party" "odf_pre_sale"

query by status

warehouse_status
string
Example: warehouse_status=wh_new

query by warehouse outbound request status

delivery_status
string
Example: delivery_status=dl_new

query by delivery order status

type
string (AdminB2COrderFulfillmentType)
Enum: "main" "refulfillment" "compensation" "return"

query by order fulfillment type

order_codes
string
Example: order_codes=C01-01,C01-02

The list of order codes, separated by the , character.

fulfillment_codes
string
Example: fulfillment_codes=C01-01-1,C01-01-2

The list of order fulfillment codes, separated by the , character.

warehouse_fulfillment_codes
string
Example: warehouse_fulfillment_codes=WHOR123,WHOR456

The list of warehouse reference order fulfillment codes, separated by the , character.

tracking_codes
string
Example: tracking_codes=TC123,TC456

The list of tracking codes, separated by the , character.

updated_to
string
Example: updated_to=2024-01-02T00:00:00Z

Filters order fulfillments that are updated before the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

updated_from
string
Example: updated_from=2024-01-01T00:00:00Z

Filters order fulfillments that are updated after the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the updated_to value.

created_to
string
Example: created_to=2024-01-02T00:00:00Z

Filters order fulfillments that are created before the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

created_from
string
Example: created_from=2024-01-01T00:00:00Z

Filters order fulfillments that are created after the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the created_to value.

Responses

Response samples

Content type
application/json
{
  • "next_cursor": "eyJwcmV2aW91c19pZCI6MX0=",
  • "entries": [
    ]
}

Admin | Finance

List B2C order fees

Retrieve list of B2C order fees with cursor based pagination

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
order_code
required
string
Example: order_code=O123

query by opollo B2C order code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Warehouse | Warehouse

List warehouses

Retrieve a list of managed warehouses with pagination

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Warehouse | Outbound request

List outbound requests

Retrieve a list of outbound requests

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
page
integer
Default: 1
Example: page=1

The current page number

size
integer <= 100
Default: 20
Example: size=20

The page size

warehouse_code
string
Example: warehouse_code=WH01

Filters the outbound requests by the given warehouse code.

type
string (OutboundRequestType)
Enum: "b2c" "b2b"

Filters the outbound requests by the given type.

status
string (OutboundRequestStatus)
Enum: "new" "packed" "ready_to_ship" "handed_over" "cancelled" "cancel_requested" "processing"

Filters the outbound requests by the given status.

ref_status
string
Example: ref_status=wh_new

Filters the outbound requests by the given warehouse reference status.

or_codes
string
Example: or_codes=OR123,OR456

The list of outbound request codes, separated by the , character.

ref_or_codes
string
Example: ref_or_codes=WHOR123,WHOR456

The list of warehouse reference outbound request codes, separated by the , character.

extra_values_1
string
Example: extra_values_1=STORE1,STORE2

The list of values for the first extra value, separated by the , character. By default, the first extra value is the store code.

extra_values_2
string
Example: extra_values_2=store_platform_1,store_platform_2

The list of values for the second extra value, separated by the , character. By default, the second extra value is the store's platform code.

extra_values_3
string
Example: extra_values_3=CLIENT1,CLIENT2

The list of values for the third extra value, separated by the , character. By default, the third extra value is the store's client code.

updated_to
string
Example: updated_to=2024-01-02T00:00:00Z

Filters the outbound requests that are updated before the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

updated_from
string
Example: updated_from=2024-01-01T00:00:00Z

Filters the outbound requests that are updated after the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the updated_to value.

created_to
string
Example: created_to=2024-01-02T00:00:00Z

Filters the outbound requests that are created before the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

created_from
string
Example: created_from=2024-01-01T00:00:00Z

Filters the outbound requests that are created after the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the created_to value.

Responses

Response samples

Content type
application/json
{
  • "page": 1,
  • "size": 1,
  • "total": 2,
  • "entries": [
    ]
}

Update an outbound request

Update information for an outbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
or_code
required
string

The outbound request code

ref_or_code
string

The reference code in the warehouse

ref_status
string

The reference status in the warehouse

attributes
object

The outbound request attributes

Responses

Request samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Pack a B2C outbound request

Confirm packed a B2C outbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
or_code
required
string

The outbound request code

ref_or_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The outbound request attributes

package_weight
integer >= 1

The package weight (gram)

package_length
integer >= 1

The package length (centimeter)

package_width
integer >= 1

The package width (centimeter)

package_height
integer >= 1

The package height (centimeter)

Responses

Request samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "package_weight": 1,
  • "package_length": 1,
  • "package_width": 1,
  • "package_height": 1
}

Response samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "package_weight": 1,
  • "package_length": 1,
  • "package_width": 1,
  • "package_height": 1,
  • "status": "packed"
}

Confirm ready to ship a B2C outbound request

Confirm ready to ship a B2C outbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
or_code
required
string

The outbound request code

ref_or_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The outbound request attributes

Responses

Request samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "status": "ready_to_ship"
}

Hand over an outbound request

Hand over an outbound request to 3PL

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
or_code
required
string

The outbound request code

ref_or_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The outbound request attributes

required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "items": [
    ],
  • "status": "handed_over"
}

Confirm cancellation a B2C outbound request

Confirm cancellation a B2C outbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
or_code
required
string

The outbound request code

ref_or_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The outbound request attributes

Responses

Request samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "status": "cancelled"
}

Process a B2B outbound request

Process a B2B outbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
or_code
required
string

The outbound request code

ref_or_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The outbound request attributes

required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "or_code": "OR123456",
  • "ref_or_code": "WHOR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "items": [
    ]
}

Warehouse | Inbound request

List inbound requests

Retrieve a list of inbound requests

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
page
integer
Default: 1
Example: page=1

The current page number

size
integer <= 100
Default: 20
Example: size=20

The page size

warehouse_code
string
Example: warehouse_code=WH01

Filters the inbound requests by the given warehouse code.

type
string (InboundRequestType)
Enum: "standard" "return"

Filters the inbound requests by the given type.

status
string (InboundRequestStatus)
Enum: "new" "processing" "partial_inbound" "completed" "cancelled"

Filters the inbound requests by the given status.

ir_codes
string
Example: ir_codes=OR123,OR456

The list of inbound request codes, separated by the , character.

ref_ir_codes
string
Example: ref_ir_codes=WHOR123,WHOR456

The list of warehouse reference inbound request codes, separated by the , character.

updated_to
string
Example: updated_to=2024-01-02T00:00:00Z

Filters the inbound requests that are updated before the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

updated_from
string
Example: updated_from=2024-01-01T00:00:00Z

Filters the inbound requests that are updated after the given time in ISO-8601 format. The time range from updated_from to updated_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the updated_to value.

created_to
string
Example: created_to=2024-01-02T00:00:00Z

Filters the inbound requests that are created before the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the current time.

created_from
string
Example: created_from=2024-01-01T00:00:00Z

Filters the inbound requests that are created after the given time in ISO-8601 format. The time range from created_from to created_to should be within a span of 15 days. In case the value is not provided, the default is set to the last 15 days before the created_to value.

Responses

Response samples

Content type
application/json
{
  • "page": 1,
  • "size": 1,
  • "total": 2,
  • "entries": [
    ]
}

Create a direct inbound request from a warehouse

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
warehouse_code
required
string

The warehouse code

ref_ir_code
required
string

The reference code in the warehouse

type
required
string (InboundRequestType)
Enum: "standard" "return"
expected_inbound_at
string

The inbound request expected inbound time in ISO-8601 format. Should be greater than the current time.

ref_status
required
string

The reference status in the warehouse

note
string

The inbound request note

shipped_tracking_code
string

The tracking code of the shipped package

shipped_or_code
string

The outbound request code of the shipped package

attributes
object

The user defined inbound request attributes

required
Array of objects (InboundRequestItemCreate)

Responses

Request samples

Content type
application/json
{
  • "warehouse_code": "WH01",
  • "ref_ir_code": "WHIR123456",
  • "type": "standard",
  • "expected_inbound_at": "2024-01-02T00:00:00Z",
  • "ref_status": "string",
  • "note": "string",
  • "shipped_tracking_code": "string",
  • "shipped_or_code": "string",
  • "attributes": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "warehouse_code": "WH01",
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "type": "standard",
  • "movement_type": "purchase_order",
  • "created_at": "2024-01-01T00:00:00Z",
  • "expected_inbound_at": "2024-01-02T00:00:00Z",
  • "status": "new",
  • "ref_status": "string",
  • "inbound_priority": "standard",
  • "note": "string",
  • "shipped_tracking_code": "string",
  • "shipped_or_code": "string",
  • "attributes": {
    },
  • "items": [
    ]
}

Update an inbound request

Update information for an inbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
ir_code
required
string

The inbound request code

ref_ir_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The user defined inbound request attributes

Responses

Request samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Start processing an inbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
ir_code
required
string

The inbound request code

ref_ir_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The user defined inbound request attributes

Responses

Request samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "status": "processing"
}

Confirm partial inbound an inbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
ir_code
required
string

The inbound request code

ref_ir_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The user defined inbound request attributes

required
Array of objects (InboundRequestItemInboundPayload)

List of updated inbound request items.

Note: in each item, the sum of actual_inbound_good_quantity, actual_inbound_damaged_quantity, and actual_inbound_expired_quantity should be greater than 0. If the item is not inbound, it should not be included when calling this API.

Responses

Request samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "items": [
    ],
  • "status": "partial_inbound"
}

Complete an inbound request

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
ir_code
required
string

The inbound request code

ref_ir_code
string

The reference code in the warehouse

ref_status
required
string

The reference status in the warehouse

attributes
object

The user defined inbound request attributes

Responses

Request samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "ir_code": "IR123456",
  • "ref_ir_code": "WHIR123456",
  • "ref_status": "wh_status",
  • "attributes": {
    },
  • "status": "completed"
}

Warehouse | Inventory

List inventories

Retrieve a list of inventories with pagination

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
page
integer
Default: 1
Example: page=1

The current page number

size
integer <= 100
Default: 20
Example: size=20

The page size

warehouse_code
string
Example: warehouse_code=WH01

Filters the outbound requests by the given warehouse code.

product_skus
string
Example: product_skus=P01,P02

The list of product SKUs, separated by the , character

Responses

Response samples

Content type
application/json
{
  • "page": 1,
  • "size": 1,
  • "total": 2,
  • "entries": [
    ]
}

Update an inventory

Update an inventory for a product SKU at a warehouse

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
Request Body schema: application/json
good_quantity
integer >= 0

Total good items for a product at a warehouse

good_available_quantity
integer >= 0

number of good items that are not committed in outbound requests for a product at a warehouse

good_committed_quantity
integer >= 0

number of good items that are committed in outbound requests for a product at a warehouse

damaged_quantity
integer >= 0

Total damaged items for a product at a warehouse

damaged_available_quantity
integer >= 0

number of damaged items that are not committed in outbound requests for a product at a warehouse

damaged_committed_quantity
integer >= 0

number of damaged items that are committed in outbound requests for a product at a warehouse

expired_quantity
integer >= 0

Total expired items for a product at a warehouse

expired_available_quantity
integer >= 0

number of expired items that are not committed in outbound requests for a product at a warehouse

expired_committed_quantity
integer >= 0

number of expired items that are committed in outbound requests for a product at a warehouse

reserved_quantity
integer >= 0

Total reserved items for a product at a warehouse

product_sku
required
string

The product SKU

warehouse_code
required
string

The warehouse code

Responses

Request samples

Content type
application/json
{
  • "good_quantity": 2,
  • "good_available_quantity": 1,
  • "good_committed_quantity": 1,
  • "damaged_quantity": 2,
  • "damaged_available_quantity": 1,
  • "damaged_committed_quantity": 1,
  • "expired_quantity": 2,
  • "expired_available_quantity": 1,
  • "expired_committed_quantity": 1,
  • "reserved_quantity": 2,
  • "product_sku": "P01",
  • "warehouse_code": "WH01"
}

Response samples

Content type
application/json
{
  • "good_quantity": 2,
  • "good_available_quantity": 1,
  • "good_committed_quantity": 1,
  • "damaged_quantity": 2,
  • "damaged_available_quantity": 1,
  • "damaged_committed_quantity": 1,
  • "expired_quantity": 2,
  • "expired_available_quantity": 1,
  • "expired_committed_quantity": 1,
  • "reserved_quantity": 2,
  • "product_sku": "P01",
  • "warehouse_code": "WH01"
}

Warehouse | Product

List products

Retrieve a list of products with pagination

Authorizations:
(RequestApiKeyRequestTimestampRequestSignature)
query Parameters
page
integer
Default: 1
Example: page=1

The current page number

size
integer <= 100
Default: 20
Example: size=20

The page size

skus
string
Example: skus=P01,P02

The list of product SKUs, separated by the , character

warehouse_code
string
Example: warehouse_code=WH01

The warehouse code that the product can be managed

Responses

Response samples

Content type
application/json
{
  • "page": 1,
  • "size": 1,
  • "total": 2,
  • "entries": [
    ]
}