感谢您的反馈!
In order to create product successful, typically you need to to do with following steps.
Before listing a product on Miravia, it’s important to map your product’s category to one of our approved categories. This is because only leaf categories are allowed when listing an item and they have specific attributes. Miravia provides different API endpoints to help you identify the right category for your product and its attributes.
example Category: MenFashion(62202415)>MenClothingandAccessories(62202416)> Accessories(62202417) > Belts(62202253)
you should select the lead category, in this case Belts with the category ID 62202253
Reference
Field Name |
Field Description |
name |
The name of the category given by Miravia |
leaf |
true/false |
category_id |
The id of the category given by Miravia |
permission |
yes/no |
It’s important that you map all your a categories with the ones that are leaf because it is the only value that Miravia will accept when listing products.
It is now clear that a proper product structure is crucial for listing an item in Miravia. One of the most important properties to consider is the category. To ensure that your product is displayed correctly within the platform, it is essential to map your product’s category to Miravia’s category.
Keep in mind that Miravia has some special categories, and you need to request permission to use them. We explain how to check which categories need this approval in the “Product Management” section.
GetCategoryAttributes Documentation
For most of categories that belong to Fashion vertical, configuring both the color_family and size is imperative when uploading products within these categories. Failing to do so could lead to a significant loss in visibility for those products if the customers use Miravia's filters to search items.
The importance of proper categorisation lies in the attributes associated with each category. These attributes play a crucial role in determining how your product is presented and found in the marketplace. Some of these attributes are mandatory and may have specific requirements or values that need to be met.
In order to ensure that your product is easily discoverable by potential buyers, it is essential to complete as many attributes as possible, following the way Miravia defines them in the category tree. By doing so, you increase the visibility of your product and make it easier for buyers to find what they are looking for. Filling out the required attributes accurately and thoroughly will also increase the chances of your product being selected by potential buyers, ultimately leading to increased success in the marketplace.
Category issues Errors:
Common Category Issues Errors |
|
Error code |
Error Message |
4143 |
BIZ_CHECK_RESTRICTED_CATEGORY |
All categories are not accessible to all sellers in Miravia. Because of this, you may face with the error code 4143, BIZ_CHECK_RESTRICTED_CATEGORY while listing your products. To fix this you can apply for specific categories at the Seller Center > Settings > Category > Apply for a Category.
Depending on the chosen category, Miravia provides a payload with the attributes for each of the categories along with the parameter description and some examples.
CreateProduct payload and parameter description
When listing your products on Miravia, brand allocation plays a crucial role in the process.
At Miravia, we follow a logical approach to brand management. By confirming the existence of brands before listing products, we ensure a consistent and reliable product database. This enhances the shopping experience for customers and builds trust in the marketplace. So, before creating your SKUs on the platform, it is important to verify that the brand already exists within Miravia’s database. If the brand is not currently listed, don’t worry! You can request its creation, ensuring accurate categorization.
It’s worth noting that certain brands may require permission from Miravia to be used. This helps maintain brand exclusivity and integrity. If you need more information regarding specific brand permissions, we recommend contacting Miravia directly.
If you try to create an item with a brand that doesn’t exist in our database, then the product will be listed as no branded.
Bellow you can find the logic in the posting:
By following these brand logic principles, we strive to create a reliable and trustworthy marketplace environment for both sellers and customers.
Common errors:
Common Brand Issues Errors |
|
Error code |
Error Message |
4146 |
BIZ_CHECK_BRAND_PERMISSION_TIER_ONE |
4147 |
BIZ_CHECK_BRAND_PERMISSION_TIER_TWO |
If you are getting the error code 4147, BIZ_CHECK_BRAND_PERMISSION_TIER_TWO while listing products, you can apply for permissions for specific brands at the Seller Center > Settings > Brand > Apply Brand Authorization
Otherwise, if you are getting the error code 4146, BIZ_CHECK_BRAND_PERMISSION_TIER_ONE you need to get in contact with your account manager in order to obtain the proper permissions.
Description
We have introduced a new "batchValidate" endpoint that allows you to validate your JSON before calling the feed API to create your product. The goal of this endpoint is to increase the success rate of your production creation and prevent errors that may occur during the process. Please note that while this validation endpoint covers some error checks, successfully validating your JSON does not guarantee a successful product creation, and the errors should be fixed by ISV or Sellers. Our focus is to improve the success rate of your production creation, and we will continue to work towards covering all possible errors to achieve maximum success.
When to Use this Validation and Best Practices
The purpose of our validation endpoint is to allow ISVs and sellers to validate their product and fix any errors before sending the product. Here are two best practices to follow when using our validation endpoint:
Input and Output of the Validation
We expect to receive a list of products for validation and will return a list of validation results. If no errors are found, we will return an empty list. Please keep in mind that the order of the output list will be the same as the input.
input
Output
1. validation_results : The validation results data will generate one validation result for each input validation product. If a product has no errors, an empty list will be returned. However, if a product has various errors, all errors will be returned.
Pseucode example
Example 1
Input :
output:
[ [], [Eean_code_error, category_error], [brand_error]]
explanation: we want to validate 3 products(p1, p2, p3), which p1 is pass all the validation, p2 has an eanCode error and category error, and P3 has a brand error. The exlude_validator_set is a empty that mean we will pass all the validators.
Example 2
input :
output: [ [], [Eean_code_error, category_error], []]
explanation: we want to validate 3 products(p1, p2, p3), which p1 has passed all the validation, p2 has an eanCode error and category error. The exlude_validator_set is excluding brand permission validator then we will ignore it.
Real example
{ "excludeValidatorSet": [], "validationJsonRequestList": [ "{\"Attributes\":{\"brand\":\"OlaplexTEST1231\",\"delivery_option_sof\":\"Optional\",\"description\":\"test descrip\",\"name\":\"test_20230527\"},\"Images\":{\"Image\":[\"https://fb-es.mrvcdn.com/kf/E0bff2f7c58f04aa5bf49b31f79b2ee6dc.png\"]},\"PrimaryCategory\":62205247,\"Skus\":{\"Sku\":[{\"Images\":{\"Image\":[\"https://fb-es.mrvcdn.com/kf/E0bff2f7c58f04aa5bf49b31f79b2ee6dc.png\"]},\"SellerSku\":\"4c6e990b-52e6-4fc6-82c0-1ee8bc1f91297\",\"ean_code\":\"3406843589301q\",\"package_content\":\"test_content\",\"package_height\":\"1\",\"package_length\":\"1\",\"package_weight\":\"1\",\"package_width\":\"1\",\"price\":\"900\",\"quantity\":100,\"special_price\":\"800\"}]}}", "{\"Attributes\":{\"brand\":\"Adidas123\",\"delivery_option_sof\":\"Yess\",\"description\":\"test descrip\",\"name\":\"test_20230527\"},\"Images\":{\"Image\":[\"https://fb-es.mrvcdn.com/kf/E0bff2f7c58f04aa5bf49b31f79b2ee6dc.png\"]},\"PrimaryCategory\":09876,\"Skus\":{\"Sku\":[{\"Images\":{\"Image\":[\"https://fb-es.mrvcdn.com/kf/E0bff2f7c58f04aa5bf49b31f79b2ee6dc.png\"]},\"SellerSku\":\"4c6e990b-52e6-4fc6-82c0-1ee8bc1f91298\",\"ean_code\":\"12345678909876\",\"package_content\":\"test_content\",\"package_height\":\"1\",\"package_length\":\"1\",\"package_weight\":\"1\",\"package_width\":\"1\",\"price\":\"900\",\"quantity\":100,\"special_price\":\"800\"}]}}" ], "scene": "PRODUCT_LISTING" }
{ "result": { "data": [ { "validation_results": [ { "error_value": "62205247", "error_key": "PrimaryCategory", "error_detail": "You do not have permissions to create product with this category, please apply here : https://sellercenter.miravia.es/apps/setting/category" }, { "error_value": "3406843589301q", "error_key": "ean_code", "error_detail": "eancode can only have a numeric and length should be 13 characters long" }, { "error_value": "OlaplexTEST1231", "error_key": "brand", "error_detail": "You do not have permissions to create product with this brand, please apply here : https://sellercenter.proyectoarise.es/apps/setting/brand/application?spm=a2a4n.27653341.page_title.d_apply_new.41dd4edfkrx8ol" } ] }, { "validation_results": [ { "error_value": "9876", "error_key": "PrimaryCategory", "error_detail": "We couldn't find the category 9876 . Kindly recheck your input and try again." }, { "error_value": "Adidas123", "error_key": "brand", "error_detail": "You do not have permissions to create product with this brand, please apply here : https://sellercenter.proyectoarise.es/apps/setting/brand/application?spm=a2a4n.27653341.page_title.d_apply_new.41dd4edfkrx8ol" } ] } ], "success": true }, "code": "0", "request_id": "21038fb816897639393003143" }
Use this API to create a single new product which may contain one or more SKUs.
1.1 Responde Parameters
Miravia- CreateProduct payload and parameter descriptionPATH: /product/create
Explain
Level1 |
Level2 |
Level3 |
Level4 |
Description |
data |
variation |
Variation1 |
name |
Sales attribute names, such as color family, size, etc.Form a ref relationship with "color_family" in the sku below. |
hasImage |
Sales attribute image settings, Only Variation1 Can set hasImage to true |
|||
customize |
Whether to customize sales attributes |
|||
options |
List of sales attribute value names |
|||
Variation2 |
name |
|||
hasImage |
||||
customize |
||||
options |
||||
Variation3 |
name |
Very few cases will set this property. This attribute is not available for most categories |
||
hasImage |
||||
customize |
||||
options |
||||
Variation4 |
name |
Very few cases will set this property. This attribute is not available for most categories |
||
hasImage |
||||
customize |
||||
options |
||||
skus |
Variation1-name |
Variation1-options[i] |
Reference the name and option of the variation declaration as the sales attribute and sales attribute valueThe name field of Variation1/Variation2/Variation3/Variation4 |
Error
Error Code |
Error Message |
VARIATION_CATEGORY_PROHIBITION |
The category is banned from using variation function. |
REMOVE_SKU_PROHIBITION |
The seller is prohibited from using the remove SKU function. |
VARIATION_SELLER_PROHIBITION |
The seller is prohibited from using the variation function. |
VARIATION_EMPTY |
The Variation is Empty |
VARIATION_SIZE_LIMIT |
The Variations Size Exceeds Maximum Size Limit, The Size Limit is: 20. |
VARIATION_CONTENT_EMPTY |
The Variation Content is Empty, The Variation Node is: VariationX |
VARIATION_NAME_EMPTY |
The Variation Name is Empty, The Variation Node is: VariationX |
VARIATION_IMAGE_MUST_SET_VARIATION1 |
Only Variation1 Can set hasImage to true, The Variation Node is: VariationX |
VARIATION_NAME_DUPLICATE |
The Variation Name Is Duplicate, The Variation Node is: VariationX, The Duplicate Name is: nameX |
VARIATION_NAME_LENGTH_LIMIT |
The Variation Name's Content Exceeds Maximum Length Limit, The Variation Node is: VariationX, The Length Limit is: 15, The Name is: nameX |
VARIATION_OPTIONS_EMPTY |
The Variation Options Is Empty, The Variation Node is: VariationX |
OPTIONS_SIZE_LIMIT |
The Variation Options Exceeds Maximum Size Limit, The Variation Node is: VariationX, The Size Limit is: 20, The Name is: nameX |
VARIATION_OPTION_EMPTY |
The Variation Option Is Empty, The Variation Node is: VariationX |
VARIATION_OPTION_LENGTH_LIMIT |
The Variation Name's Content Exceeds Maximum Length Limit, The Variation Node is: VariationX, The Length Limit is: 20, The Option is: optionX; |
VARIATION_OPTION_DUPLICATE |
The Variation Option Is Duplicate, The Variation Node is: VariationX, The Duplicate Option is: optionX, optionX |
VARIATION_IMAGE_SETTING_ERROR |
There is No HasImage Set In The VariationX, But Images Are Found In The SKU: " + sellerSKU |
SKU_VARIATION_OPTION_NOT_EXIST |
The SKU Variation Option is Not Exist, The SellerSKU is:SellerSkuX, The SKU Variation Name is: nameX, The SKU Variation Option is: optionX |
SKU_VARIATION_NAME_MISSING |
The SKU Variation Name is Missing, The SellerSKU is:is:SellerSkuX, The Missing SKU Variation Name is: nameX |
SKU_VARIATION_IMAGES_MISSING |
The Variation set hasImage true, But The SKU Not Found Images. The SellerSKU is: SellerSkuX, The Variation Name is: nameX |
VARIATION_CATEGORY_SIZE_IMAGE |
When size is passed in as a standard category attribute, it is not allowed to set hasImage true. |
VARIATION_CATEGORY_ATTRIBUTE_INVALID |
This attribute nameX is not found in the category attribute library. |
DEMO
CASE1
Create products with standard sales attributes
{ "Request": { "Product": { "PrimaryCategory": "10002019", "Images": { "Image": [ "https://test.jpg", "https://test1.jpg" ] }, "variation": { "variation1": { "name": "color_family", "hasImage": true, "customize": false, "options": { "option": [ "test" ] } } }, "Attributes": { "name": "test product", "description": "test description", "brand": "No Brand", "model": "test", "warranty_type": "Local seller warranty", "warranty": "1 Month", "short_description": "test short description", "Hazmat": "None", "material": "Leather", "laptop_size": "11 - 12 inches", "delivery_option_sof": "No" }, "Skus": { "Sku": [ { "SellerSku": "chase test 8", "quantity": "3", "price": "35", "color_family": "test", "ean_code": "456", "package_height": "10", "package_length": "10", "package_width": "10", "package_weight": "0.5", "package_content": "laptop bag", "Images": { "Image": [ "https://test.jpg" ] } } ] } } } }
CASE2
Standard sales attributes (1) + custom sales attributes (1)
{ "Request": { "Product": { "PrimaryCategory": "10002019", "Images": { "Image": [ "https://test1.jpg", "https://test2.jpg" ] }, "variation": { "variation1": { "name": "color_family", "hasImage": true, "customize": false, "options": { "option": [ "test" ] } }, "variation2": { "name": "test prop", "hasImage": false, "customize": true, "options": { "option": [ "test custom" ] } } }, "Attributes": { "name": "test product", "description": "test description", "brand": "No Brand", "model": "test", "warranty_type": "Local seller warranty", "warranty": "1 Month", "short_description": "test short description", "Hazmat": "None", "material": "Leather", "laptop_size": "11 - 12 inches", "delivery_option_sof": "No" }, "Skus": { "Sku": [ { "SellerSku": "chase test 81", "quantity": "3", "price": "35", "color_family": "test", "test prop": "test custom", "package_height": "10", "ean_code": "456", "package_length": "10", "package_width": "10", "package_weight": "0.5", "package_content": "laptop bag", "Images": { "Image": [ "https://test.jpg" ] } } ] } } } }
To standardize external resources such as images, we migrate the images on our server. Thus recovering the already migrated images and reusing them.
You can choose to process from a image file or a image URL from an external site. If you have image file in your machine, you can use UploadImage to upload an image to the Miravia server. If you have the URL of images on other sites, you can use MigrateImage or MigrateImages to migrate images to the Miravia server.
Tips : Only valid image URLs from Miravia servers can be linked to the product on Miravia.
You can use GetProduct to retrieve the SellerSKU which is the key of your product on Miravia.
With the image URLs, you can use SetImage to associate one or more image URLs to the existing product within one single request.
When you create a product that requires variants and variant options that are not existing in the system categories, you can custom variants to create products.
Level1 |
Level2 |
Level3 |
Level4 |
Description |
data |
variation |
Variation1 |
name |
Sales attribute names, such as color family, size, etc.Form a ref relationship with "color_family" in the sku below. |
hasImage |
Sales attribute image settings, Only Variation1 Can set hasImage to true |
|||
customize |
Whether to customize sales attributes |
|||
options |
List of sales attribute value names |
|||
Variation2 |
name |
|||
hasImage |
||||
customize |
||||
options |
||||
Variation3 |
name |
Very few cases will set this property. This attribute is not available for most categories |
||
hasImage |
||||
customize |
||||
options |
||||
Variation4 |
name |
Very few cases will set this property. This attribute is not available for most categories |
||
hasImage |
||||
customize |
||||
options |
Custom sales attributes (1) + Standard sales attributes (1) + SKU pictures
{ "data": { "created_time": "1626242071000", "updated_time": "1626763060000", "images": [ "https://sg-live-02.slatic.net/p/0ef9e15ad696adfc43333c646eec2ec4.jpg" ], "skus": [ { "Status": "active", "quantity": 1, "Images": [ "https://sg-live-02.slatic.net/p/42447e6aea05ea21f49f4f608b20b656.jpg" ], "SellerSku": "1884392091-1626242071365-0", "ShopSku": "1884392091_SGAMZ-10044238042", "Url": "https://www.lazada.sg/-i1884392091-s10044238042.html", "multiWarehouseInventories": [ { "occupyQuantity": 0, "quantity": 1, "totalQuantity": 1, "withholdQuantity": 0, "warehouseCode": "dropshipping", "sellableQuantity": 1 } ], "package_width": "1.00", "color_family": "Maroon", "package_height": "1.00", "fblWarehouseInventories": [], "special_price": 0.0, "price": 1000.0, "package_length": "1.00", "EditableQuantity": 1, "package_weight": "1", "Available": 1, "SkuId": 10044238042, "CustomProp1": "CustomOption1" }, { "Status": "active", "quantity": 1, "Images": [ "https://sg-live-02.slatic.net/p/0ef9e15ad696adfc43333c646eec2ec4.jpg" ], "SellerSku": "1884392091-1626242071365-1", "ShopSku": "1884392091_SGAMZ-10044238043", "Url": "https://www.lazada.sg/-i1884392091-s10044238043.html", "multiWarehouseInventories": [ { "occupyQuantity": 0, "quantity": 1, "totalQuantity": 1, "withholdQuantity": 0, "warehouseCode": "dropshipping", "sellableQuantity": 1 } ], "package_width": "1.00", "color_family": "Maroon", "package_height": "1.00", "fblWarehouseInventories": [], "special_price": 0.0, "price": 1000.0, "package_length": "1.00", "EditableQuantity": 1, "package_weight": "1", "Available": 1, "SkuId": 10044238043, "CustomProp1": "CustomOption2" } ], "item_id": 1884392091, "primary_category": 6583, "attributes": { "name": "Test Api Self Define Attributes By Boyan 0714001", "description": "<p style=\"margin: 0;\"><span style=\"font-family: none;\"></span></p>", "brand": "No Brand", "source": "asc", "delivery_option_sof": "0" }, "variation": { "Variation1": { "name": "CustomProp1", "label": "CustomProp1", "hasImage": true, "customize": true, "options": [ "CustomOption2", "CustomOption1" ] }, "Variation2": { "name": "Color Family", "label": "color_family", "hasImage": false, "customize": false, "options": [ "Maroon" ] } } }, "code": "0", "request_id": "0be6f58116276233235264430" }
All standard sales attributes (2)
{ "data": { "created_time": "1626764445000", "updated_time": "1626869157000", "images": [ "https://sg-live.slatic.net/p/42447e6aea05ea21f49f4f608b20b656.jpg" ], "skus": [ { "Status": "active", "quantity": 1, "Images": [], "SellerSku": "1901875545-1626764445757-0", "ShopSku": "1901875545_SGAMZ-10164106501", "Url": "https://www.lazada.sg/-i1901875545-s10164106501.html", "multiWarehouseInventories": [ { "occupyQuantity": 0, "quantity": 1, "totalQuantity": 1, "withholdQuantity": 0, "warehouseCode": "dropshipping", "sellableQuantity": 1 } ], "package_width": "1.00", "color_family": "Red", "package_height": "1.00", "size": "34", "fblWarehouseInventories": [], "special_price": 0.0, "price": 1000.0, "package_length": "1.00", "EditableQuantity": 1, "package_weight": "1", "Available": 1, "SkuId": 10164106501 }, { "Status": "active", "quantity": 2, "Images": [], "SellerSku": "1901875545-1626764445757-2", "ShopSku": "1901875545_SGAMZ-10164106503", "Url": "https://www.lazada.sg/-i1901875545-s10164106503.html", "multiWarehouseInventories": [ { "occupyQuantity": 0, "quantity": 2, "totalQuantity": 2, "withholdQuantity": 0, "warehouseCode": "dropshipping", "sellableQuantity": 2 } ], "package_width": "1.00", "color_family": "Blue", "package_height": "1.00", "size": "34", "fblWarehouseInventories": [], "special_price": 0.0, "price": 1000.0, "package_length": "1.00", "EditableQuantity": 2, "package_weight": "1", "Available": 2, "SkuId": 10164106503 }, { "Status": "active", "quantity": 1, "Images": [], "SellerSku": "1901875545-1626764445757-1", "ShopSku": "1901875545_SGAMZ-10164106502", "Url": "https://www.lazada.sg/-i1901875545-s10164106502.html", "multiWarehouseInventories": [ { "occupyQuantity": 0, "quantity": 1, "totalQuantity": 1, "withholdQuantity": 0, "warehouseCode": "dropshipping", "sellableQuantity": 1 } ], "package_width": "1.00", "color_family": "Red", "package_height": "1.00", "size": "38", "fblWarehouseInventories": [], "special_price": 0.0, "price": 1000.0, "package_length": "1.00", "EditableQuantity": 1, "package_weight": "1", "Available": 1, "SkuId": 10164106502 }, { "Status": "active", "quantity": 1, "Images": [], "SellerSku": "1901875545-1626764445757-3", "ShopSku": "1901875545_SGAMZ-10164106504", "Url": "https://www.lazada.sg/-i1901875545-s10164106504.html", "multiWarehouseInventories": [ { "occupyQuantity": 0, "quantity": 1, "totalQuantity": 1, "withholdQuantity": 0, "warehouseCode": "dropshipping", "sellableQuantity": 1 } ], "package_width": "1.00", "color_family": "Blue", "package_height": "1.00", "size": "38", "fblWarehouseInventories": [], "special_price": 0.0, "price": 1000.0, "package_length": "1.00", "EditableQuantity": 1, "package_weight": "1", "Available": 1, "SkuId": 10164106504 } ],