API Docs
Home
Home
Developer GuideAPI
StatusWebhooks
Developer GuideAPI
StatusWebhooks
  1. Online Product
  • Config
    • List Pickup Address
      GET
    • List Box Dimension
      GET
    • List vendor
      GET
    • List store
      GET
  • Online Product
    • Options
      • List category
      • List brand
    • Create Single Product
      POST
    • Create Product From Product Inventory
      POST
    • List product
      GET
    • Product detail
      GET
  • Product Inventory
    • Options
      • List Outbound Strategy
      • List Product Type
      • List Material
      • List Storage Method
    • List product inventory
      GET
    • Product inventory detail
      GET
    • Create single inventory product
      POST
  • Order
    • Shipping Service
      • Preview shipping prices
        • List shipping service
        • List available courier
      • List available courier from order
      • List shipping service of courier
    • Create order B2C
      POST
    • Create order B2B
      POST
    • List order
      GET
    • Order detail
      GET
    • Cancel order
      PATCH
  • Shipment
    • Create shipment auto
      POST
    • [Retail][Ship by self] Create shipment with item
      POST
    • Cancel shipment
      PATCH
    • List shipment
      GET
    • Shipment detail
      GET
    • List shipment of order
      GET
  • Shipment Inbound
    • Create shipment inbound
    • Cancel shipment inbound
    • List shipment inbound
    • Shipment inbound detail
    • Shipment inbound items
  • Order Return
    • List return order
    • Return order detail
    • Create return order
    • Cancel Return Order
  • Courier
    • List courier service integrated
    • List courier operate
    • List courier integrated
  • Address Directory
    • Province
    • District
    • Ward
  1. Online Product

Create Single Product

POST
/api/v1/public/products/create
Create a new product online to the system with detailed product information.
Notes
Make sure the Authorization token is valid.
sku must be unique across the platform.
All mandatory fields (like store, sku, name, price) must be filled correctly.
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/api/v1/public/products/create' \
--header 'Authorization;' \
--header 'Content-Type: application/json' \
--data-raw '{
  "store": {{store_id}},
  "sku": "{{$helpers.fromRegExp('\''/[A-Z0-9]{4}-[A-Z0-9]{4}/'\'')}}",
  "name": "{{$food.vegetable}}",
  "original_price": "{{$commerce.price(min=1000,max=10000000,locale='\''vi'\'')}}",
  "discounted_price": "{{$commerce.price(min=1000,max=10000000,locale='\''vi'\'')}}",
  "condition": "NEW",
  "status": 200,
  "weight": 100,
  "package_length": 10,
  "package_width": 15,
  "package_height": 11,
  "product_brand": {{brand_id}},
  "product_category": {{category_id}},
  "info": {
    "description": "{{$food.description}}"
  },
  "video_image": [
    {
      "image_url": "{{$image.url(width=200,height=200)}}",
      "video_url": null,
      "thumbnail_url": null,
      "duration": 0,
      "priority": 1
    },
    {
      "image_url": "{{$image.url(width=200,height=200)}}",
      "video_url": null,
      "thumbnail_url": null,
      "duration": 0,
      "priority": 0
    }
  ],
  "is_dangerous": false,
  "is_pre_order": false,
  "config": {
    "create_inventory_sku": true
  }
}'
Response Response Example
200 - Success
{
  "status_code": 200,
  "data": {
    "product_id": 36062
  },
  "error": false,
  "error_code": null,
  "log_id": null,
  "messages": "",
  "total": 1
}

Request

Header Params
Authorization
string 
required
Default:
{{your_api_key_here}}
Body Params application/json
store
integer 
required
Store ID where the product is listed.
sku
string 
required
Unique product SKU code.
e.g. NH1234567
If left blank, we will automatically generate an SKU for this product.
<= 100 characters
name
string 
required
The product name should be at least 5 characters long and reflect basic information about the product for sale.
>= 5 characters<= 400 characters
original_price
integer 
required
Original price of the product.
>= 1000
discounted_price
integer 
required
Selling price after discount.
>= 1000
condition
string 
required
Product condition (NEW, USED, etc.).
status
integer 
required
Product status
200 : Active / On Sale (Đang bán) | The product is currently listed and available for purchase.
100 : Pending Listing (Chờ đăng bán) | The product is created but not yet listed for sale.
400 : Delisted (Hủy niêm yết) | The product has been unpublished or removed from the listing.
600 : Policy Violation (Vi phạm) | The product was removed due to a policy violation.
700 : Deleted (Đã xóa) | The product has been permanently deleted from the system.
701 : Deleted by Partner (Xoá bởi đối tác) | The product was deleted by the partner/seller.
Usage Notes:
Use 200 when the product is fully prepared and actively on sale.
Use 100 for draft or staging status before going live.
Use 400 when temporarily unlisting a product.
Use 600, 700, or 701 for compliance issues or permanent deletion cases.
weight
integer 
required
Product weight (grams).
>= 1<= 100000000000000
package_length
integer 
required
Package dimensions (cm).
>= 1<= 100000000000000
package_width
integer 
required
Package dimensions (cm).
>= 1<= 100000000000000
package_height
integer 
required
Package dimensions (cm).
>= 1<= 100000000000000
product_brand
integer 
required
Brand ID.
product_category
integer 
required
Category ID.
info
object 
required
description
string 
required
The product description includes technical specifications, materials, dimensions, usage time, etc.
<= 400 characters
video_image
array [object {5}] 
optional
List of product images/videos.
image_url
string 
required
Images that depict different angles of the product in .jpg, .jpeg, or .png format, with a maximum size of 2MB.
video_url
string 
optional
maximum size of 2MB.
thumbnail_url
string 
optional
maximum size of 2MB.
duration
integer 
optional
priority
integer 
optional
is_dangerous
boolean 
required
Whether the product is classified as dangerous goods
is_pre_order
boolean 
required
Whether the product is a pre-order item.
config
object 
required
create_inventory_sku
boolean 
required
Automatically create SKU in inventory if true.
Examples

Responses

🟢200OK
application/json
Body
status_code
integer 
optional
data
object 
required
product_id
integer 
required
error
boolean 
optional
error_code
string 
optional
log_id
integer 
optional
messages
string 
optional
total
integer 
optional
🟠400Bad Request
Previous
List brand
Next
Create Product From Product Inventory
Built with