1. Home
  2. Docs
  3. Current
  4. Guides
  5. Products
  6. Create new product request

Create new product request

I need to create product , Why TIKI called it is a “product request” ?

Because Tiki need to review your product data, document… both automatically and manually before bringing your products to the shelves.

TIKI product data is different from your original data so we need to transform it a bit. Base on TIKI ‘s product structure each variant will be become a brand new Tiki product. It means 1 product request made from 1 product from your side can create one or more product in Tiki side.

TIKI will update your request status step by step.

  • queuing -> processing | Create product request
  • From this you can track your request detail via this API
  • md_waiting_approve | After that legal team will check your certificate file please take a look at our theory here
  • bot_waiting_approve | TIKI have a AI system to help check your content automatically help your process faster
  • awaiting_approve | Finally , content team will check product content carefully
  • approved | your request become product , and its status will be inactive , please active it whenever you want to sell product in TIKI

Maybe it can be rejected by some reason such as image invalid,attribute not found,… please check via tracking method,
fix it then create a new one because product request was rejected can’t be updated anymore

Alright, you can create products on TIKI easily by following these steps:

  • Choose category of your product
  • Select list attribute by category
  • Mapping attribute from your system to TIKI attribute
  • Select list certificate files required by category & brand ( if existed )
  • Prepare the certificate files then upload it as image
  • OK Done, let’s create product in TIKI

Create product request flow

1. Search TIKI categories using this endpoint → map with your original category

GET

https://api.tiki.vn/integration/v2/categories

search categories example:

GET https://api.tiki.vn/integration/v2/categories

sample categories

{
    "data": [
        {
            "id": 6445,
            "name": "Magazines",
            "description": "English Magazines",
            "parent_id": 320,
            "is_primary": true,
            "is_product_listing_enabled": true,
            "no_license_seller_enabled": false
        },
        {
            "id": 218,
            "name": "Medical Books",
            "description": null,
            "parent_id": 320,
            "is_primary": true,
            "is_product_listing_enabled": false,
            "no_license_seller_enabled": true
        }
    ]
}
  • Default, this API list categories which used for non cross-border sellers. So if you are cross-border seller, let use param isCrossBorder=true to get cross-border categories.
  • You can search categories :
  • Until you got a primary category have "is_primary": true in response. It’s the smallest unit used to classify products at TIKI, one product belong to exactly one primary category.
  • Seller can not create products on an is_product_listing_enabled=false category.
  • Seller without license only can create products on categories which have no_license_seller_enabled=true

And you can get a category in detail with below API

GET

https://api.tiki.vn/integration/v2/categories/{category_id}?includeParents=true

Sample category detail

{
    "id": 20,
    "name": "Investment and Entrepreneurship",
    "lang": null,
    "parents": [
        {
            "id": 2,
            "name": "Root",
            "description": null,
            "parent_id": 1,
            "is_primary": null
        },
        {
            "id": 4,
            "name": "Business & Economics",
            "description": null,
            "parent_id": 320,
            "is_primary": null
        },
        {
            "id": 20,
            "name": "Investment and Entrepreneurship",
            "description": null,
            "parent_id": 4,
            "is_primary": null
        },
        {
            "id": 320,
            "name": "English Books",
            "description": null,
            "parent_id": 8322,
            "is_primary": null
        },
        {
            "id": 8322,
            "name": "Nhà Sách Tiki",
            "description": null,
            "parent_id": 2,
            "is_primary": null
        }
    ],
    "parent_id": 4,
    "is_primary": true
}

2. Get attribute from primary category you chosen → map with your original attribute

GET

https://api.tiki.vn/integration/v2/categories/{category_id}/attributes

Get category detail example:

GET https://api.tiki.vn/integration/v2/categories/20/attributes

sample category details

{
  "data": [
    {
      "id": 2249,
      "code": "all_time_quantity_sold",
      "description": "",
      "display_name": "Số lượng sản phẩm đã bán",
      "display_name_en": "All_time_quantity_sold",
      "is_required": false,
      "default_value": "",
      "input_type": "text",
      "data_type": "varchar",
      "description_en": null
    },
    {
      "id": 498,
      "code": "author",
      "description": null,
      "display_name": "Tác giả",
      "display_name_en": "Author",
      "is_required": false,
      "default_value": null,
      "input_type": "multiselect",
      "data_type": "varchar",
      "description_en": null
    }
  ]
}
  • Note that only the primary category has the attribute to make the product request
  • Each category have some required attribute like origin have "is_required": true. You have to complete this field base on our example.
  • But your side don’t have anything to map to these or you still don’t have any idea about this then I can give you a small tips. It is you can complete required attribute with a dummy data like updating maybe it can bypass our automate review but I have to warn you if you abuse this TIKI content reviewer may reject your product request.
  • Remember id in response as attribute_id to use later.

With attributes have "input_type": "select" or "input_type": "multiselect", let call below API to get valid values.

GET

https://api.tiki.vn/integration/v2/attributes/{attribute_id}/values

Get attribute values example:

GET https://api.tiki.vn/integration/v2/attributes/540/values?q=phong&limit=3

Sample attribute values response

{
    "data": [
        {
            "id": 4509607,
            "value": "Báo Thiếu Niên Tiền Phong",
            "position": 0,
            "attribute_code": "publisher_vn"
        },
        {
            "id": 704931,
            "value": "BÁO TIỀN PHONG",
            "position": 0,
            "attribute_code": "publisher_vn"
        },
        {
            "id": 18877,
            "value": "Cẩm Phong Books",
            "position": 0,
            "attribute_code": "publisher_vn"
        }
    ],
    "paging": {
        "total": 29,
        "per_page": 3,
        "current_page": 1,
        "last_page": 10,
        "from": 1,
        "to": 3
    }
}
  • You can search values by substring with parameter q=something
  • You can search pagination by using page and limit parameter. By default, the pagination is limit 20 and page 1.

3. Prepare certificate files to verify your product

TIKI is an e-commerce platform specializing in providing high quality products with clear origins,
so every seller when selling products needs to provide legal documents and product origin.
Those certificate files base on the category & brand of your product so please take a look on them.
Note that not all documents are required for every brand, every category, so if possible, please check carefully before creating products.
For more detail you can read in TIKI theory

GET

https://api.tiki.vn/integration/v2/requests/requiredDocs?category_id={category_id}&brand_listdata_id={brand_listdata_id}

Example:

GET https://api.tiki.vn/integration/v2/requests/requiredDocs?category_id=20768&brand_listdata_id=123

response example

{
        "category": [
            {
                "id": 1,
                "name": "Giấy xác nhận công bố phù hợp quy định an toàn thực phẩm - Cục An toàn thực phẩm cấp/Sở Y tế",
                "position": 1,
                "created_at": "2018-03-12 08:15:23",
                "updated_at": "2021-03-19 15:45:47"
            },
            {
                "id": 4,
                "name": "Giấy chứng nhận hợp quy hoặc giấy tiếp nhận bản công bố hợp quy",
                "position": 4,
                "created_at": "2018-03-12 08:15:23",
                "updated_at": "2021-03-19 15:45:47"
            },
            {
                "id": 18,
                "name": "Quyết định xuất bản/ phát hành sách (Nếu Nhà bán là NXB/ phát hành) HOẶC Hợp Đồng Phân Phối kèm Hóa đơn GTGT/ Bảng kê có tựa sách  \nHoặc Giấy cam kết bảo lãnh NXB/ Công ty phát hành theo đúng mẫu Tiki (Tải tại : http://bit.ly/2qNwhBJ) (Nếu là đơn vị PP)",
                "position": 0,
                "created_at": "2019-03-27 07:42:26",
                "updated_at": "2021-03-19 15:45:47"
            }
        ],
        "brand_is_required": false
}

4. Ask Tiki supporter for your inventory_type

inventory_type is generated automatically when you sign a contract to sell product in TIKI.

In the simplest case also the most common case ( have only 1 inventory_type ).
You don’t even need to know what is your inventory type because we will use the type in your contract as default value.

And if you still want to learn more about TIKI system , you can refer to the following definition :

  • inventory_type is a selected value answer some question
    • “Where are you from?”
    • “Tiki or seller have to bring product to the customer”
    • “TIKI come seller ‘s warehouse to take product or seller bring product to TIKI ‘s warehouse?”

Notes: In the case you have only one inventory type, TIKI will choose it as default value so you can ignore this field

5. Get seller warehouse

  • If product’s inventory_type is instock, you don’t need to fill in seller_warehouse
  • Otherwise, you need to get seller warehouse id.

Seller warehouse is warehouse of seller, that can transfer your product to. That help TIKI know
possibles warehouses can expected the product transfer to when customers placed order. It can be only one warehouse or multiple warehouses depend on you.

You can use get seller warehouse endpoint to get list of warehouse. The valid warehouse to create product must have status = 1 and type = 1 (status active and pickup warehouse)

Go to each endpoint details to see how to use them.

6. Let’s create product request.

POST

https://api.tiki.vn/integration/v2.1/requests

Create product request example

POST https://api.tiki.vn/integration/v2.1/requests

sample request body ( simple product – only 1 sku )

 {
    "category_id": 21458,
    "name": "Disney Women's MK2106 Mickey Mouse White Bracelet Watch with Rhinestones",
    "description": "this is description",
    "market_price": 100000,
    "attributes": {
        "bulky": 0,
        "origin": "american",
        "brand_origin" : "casio",
        "product_top_features": "White bracelet watch featuring rhinestone-accented bezel and mother-of-pearl dial with sparkling Mickey Mouse designn37-mm metal case with glass dial windownQuartz movement with analog displaynMetal alloy bracelet with jewelry-clasp closurenNot water resistantn",
        "brand": "Disney",
        "case_diameter": "37 millimeters",
        "filter_case_diameter": "37 millimeters",
        "band_material": "metal-alloy",
        "filter_band_material": "metal-alloy"
    },
    "image": "https://images-na.ssl-images-amazon.com/images/I/715uwlmCWsL.jpg",
    "images": [
        "https://images-na.ssl-images-amazon.com/images/I/6110JInm%2BBL.jpg",
        "https://images-na.ssl-images-amazon.com/images/I/41FuQMh3FUL.jpg"
    ],
    "option_attributes": [],
    "variants": [
        {
            "sku": "B0055QD0EC2",
            "min_code": 124235,
            "price": 99000,
            "inventory_type": "cross_border",
            "seller_warehouse": "1054,1233",
            "warehouse_stocks": [
                {
                    "warehouseId": 1054,
                    "qtyAvailable": 3
                },
                {
                    "warehouseId": 1233,
                    "qtyAvailable": 5
                }
            ]
        }
    ],
     "certificate_files": [
         {
             "url": "https://i.pinimg.com/236x/16/83/c3/1683c385af85d756f8fab83a93d48063.jpg",
             "type": "brand"
         },
         {
             "url": "https://kenh14cdn.com/2020/7/15/legialinhmeo672472714514751590239205770621637245080975n-15948258251531626115845.jpg",
             "type": "category",
             "document_id": 17
         },
         {
             "url": "https://i.pinimg.com/236x/16/83/c3/1683c385af85d756f8fab83a93d48063.jpg",
             "type": "category",
             "document_id": 18
         }
     ],
     "meta_data": {
        "is_auto_turn_on": true
      }
 }

Do you still remember these values I said you need to save before?

They are category_id , attributes, inventory_type, certificate_files

You also have to provide some more field :

  • Name: the name of product that is displayed on TIKI
  • Price: the sell price of a product
  • Market price : the price before discount of a product
  • Description: describe the information of products
  • Category: the primary category that products are belong. You must choose over Tiki Information APIs carefully
  • Image: the avatar of product on TIKI
  • Images: the image gallery of product on TIKI
  • The other attributes are based on the category of products, like RAM/CPU/Screen. That’s why you need to choose category carefully at first

There are two kinds of product at TIKI: simple product and configurable products.

  • Simple products are the products that has attributes and only one instance/variant
  • Configurable products are the products that has many variants.

Configurable products has many variants. Example: an iPhone has many variants differ by colors.
They are called option_attributes.

7. If you want to create a configurable product

configurable product request body ( configurable product – 2 or more sku )

{
    "category_id": 21458,
    "name": "Disney Women's MK2106 Mickey Mouse White Bracelet Watch with Rhinestones",
    "description": "this is description",
    "market_price": 100000,
    "attributes": {
        "bulky": 0,
        "origin": "american",
        "brand_origin": "casio",
        "product_top_features": "White bracelet watch featuring rhinestone-accented bezel and mother-of-pearl dial with sparkling Mickey Mouse designn37-mm metal case with glass dial windownQuartz movement with analog displaynMetal alloy bracelet with jewelry-clasp closurenNot water resistantn",
        "brand": "Disney",
        "case_diameter": "37 millimeters",
        "filter_case_diameter": "37 millimeters",
        "band_material": "metal-alloy",
        "filter_band_material": "metal-alloy"
    },
    "image": "https://images-na.ssl-images-amazon.com/images/I/715uwlmCWsL.jpg",
    "images": [
        "https://images-na.ssl-images-amazon.com/images/I/6110JInm%2BBL.jpg",
        "https://images-na.ssl-images-amazon.com/images/I/41FuQMh3FUL.jpg"
    ],
    "option_attributes": [
        "size",
        "color"
    ],
    "variants": [
        {
            "sku": "B0055QD0EC2",
            "min_code": 12423534,
            "price": 99000,
            "option1": "XL",
            "option2": "red",
            "inventory_type": "cross_border",
            "seller_warehouse": "1054,1233",
            "warehouse_stocks": [
                {
                    "warehouseId": 1054,
                    "qtyAvailable": 3
                },
                {
                    "warehouseId": 1233,
                    "qtyAvailable": 5
                }
            ],
            "image": "https://images-na.ssl-images-amazon.com/images/I/715uwlmCWsLBY.jpg"
        },
        {
            "sku": "B0055QD0EC3",
            "min_code": 2395828523,
            "price": 99000,
            "option1": "L",
            "option2": "red",
            "inventory_type": "cross_border",
            "seller_warehouse": "1054,1233",
            "warehouse_stocks": [
                {
                    "warehouseId": 1054,
                    "qtyAvailable": 31
                },
                {
                    "warehouseId": 1233,
                    "qtyAvailable": 15
                }
            ],
            "image": "https://images-na.ssl-images-amazon.com/images/I/715uwlmCWsLBX.jpg"
        }
    ],
      "certificate_files": [
          {
              "url": "https://i.pinimg.com/236x/16/83/c3/1683c385af85d756f8fab83a93d48063.jpg",
              "type": "brand"
          },
          {
              "url": "https://kenh14cdn.com/2020/7/15/legialinhmeo672472714514751590239205770621637245080975n-15948258251531626115845.jpg",
              "type": "category",
              "document_id": 17
          },
          {
              "url": "https://i.pinimg.com/236x/16/83/c3/1683c385af85d756f8fab83a93d48063.jpg",
              "type": "category",
              "document_id": 18
          }
      ],
      "meta_data": {
        "is_auto_turn_on": false
      }
}

With configurable products:

  • A configurable product has many variants and each variant maybe has its own attribute (examples : name, color…)
  • The attributes that are used to differentiate two variants, are named option attributes. Example a T Shirt differ two variants by color and size but a phone differ by RAM & screen size.

Please fill data in option_attributes and option1,option2 field.

Let call below API to get option attributes:

GET

https://api.tiki.vn/integration/v2/categories/{{categoryId}}/optionLabels

Tiki support up to 2 option attributes ( size, color , capacity , … )
so if you have products with more than 2, combine them or create separate products before making a product request.

Example : you are selling iPhone by

  • Model : 7, 8, XS, XS max, ..
  • Color : Black , White , Gold , …
  • Storage : 32GB , 64GB , 128GB

You can combine 3 single attributes into 2 aggregate attributes model andcolor + storage
or split each iPhone model into 1 product containing 2 option attributes color and storage.

  • option1 is the value for the first option in option_attributes ( XL for size )
  • option2 is the value for the last option in option_attributes ( red for color )

Example : Product is iPhone have "option_attributes":["color","storage"] so your variant should be

  • “option1” : “Black” , “option2” : “32GB”
  • “option1” : “Black” , “option2” : “64GB”
  • “option1” : “White” , “option2” : “32GB”
  • “option1” : “White” , “option2” : “64GB”
  • “option1” : “White” , “option2” : “128GB”

If you want turn on product for sale after the request approved, use "is_auto_turn_on": true in "meta_data" block. Otherwise, that value set false.

FieldTypeMandatoryOverride rule(*)Description
skuStringYNovariant ‘s sku from source side
min_codeLongNNoidentifier from the manufactory
priceIntegerYNovariant ‘s sell price
market_priceIntegerNReplacevariant ‘s market price ( price before discount )
option1StringNNoattribute code of the first option attribute
option2StringNNoattribute code of the first second attribute
inventory_type(*)StringNNoinventory type of this variant
quantityIntegerYNonumber of products available for sell
seller_warehouse(*)StringYNosee detail below
nameStringNReplacename of this variant
descriptionStringNReplacedescription of this variant
attributesList<Attribute>NMergelist specific/addition attribute for this variant
imageStringNReplaceavatar url of this variant
imagesStringNReplacelist urls of variant product gallery

*Notes:

  • option1, option2 is required corresponding with the number of option attributes start from 1. The unused option value maybe null or empty or even don’t need to appear.That’s why it’s mandatory still equal “no”
  • Override rule describe how transform system will treat your product request if any field is conflict between variant and parent product. By default child product will inherit all of member from its parent.
  • No : Field can’t not override
  • Replace : Field of variant will replace the parent one.
  • Merge : attributes will merged from both side.

8. How do I know when a product request is made successfully?

Once you click send product request you will be received a response immediately

This response means that your product request has been queued for processing.
If there are not too many requests then it will probably be done right away

Then use tracking_id to track the next state of the request. Maybe you can be received an error like this
,just fix your payload based on the reason, after that send a new product request. Everything will be fine

GET

https://api.tiki.vn/integration/v2/tracking/{track_id}

After all , your product request ‘s status maybe become drafted or awaiting_approve.
Note that during the testing phase we temporarily change your state to drafted to double check both sides before we actually do it.
After both TIKI and seller confirm testing completed we will set the state to automatically skip drafted and switch to awaiting_approve from then on.
awaiting_approve means that your request is pending review by the team of TIKI content.

Your job is done, normally you will receive results after 2 to 3 hours of work.
By the time the status of the product request becomes approved, your product is ready on the TIKI website

9. Some common error while create product request

  • option_attributes not valid → TIKI support 2 option attributes at most so if you need more than 2 option , please merge some of them before create product
  • missing required attribute → try to map attribute → fill dummy data like “updating”
  • image error → TIKI support image at 500×500 px at least for the best UI/UX → so please resize your invalid image if you don’t want to miss them
  • certificate file is missing -> Check to see if categories and brands require documents -> provide them as image -> add to certificate_files array
Was this article helpful to you? Yes No

How can we help?

Leave a Reply

Your email address will not be published.