---
title: "Upload Product Data"
method: POST
path: "/v1/merchant/product/{SKU}"
tags: ["Merchant API"]
---

# Upload Product Data

`POST /v1/merchant/product/{SKU}`

## Request

- Base URL: `http://{{base_url}}`
- URL: `http://{{base_url}}/v1/merchant/product/{SKU}`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/extensiv/apis/integration-manager-api-formerly-cartrover/docs/v1/merchant/product/:SKU/post.ts> (a function with typed inputs; its response is checked against the schema)

Update product and alias details for the specified product SKU.
<br/><br/>
**Note:** The SKU you use to lookup the product can be either a Master SKU in CartRover, or an alias code. Either match will update and return the product result. If no match is found, an error is returned.

**Note:** This endpoint can not currently create a new product. Only update existing ones. To create a new product, call [Update Inventory](#24668ac3-ce0b-4606-96bb-0ba2ff065987) which will create a new product if the SKU passed is new.

# Request

### Array Request Fields
|    Field Name    |    Data Type    |    Length    |    Required?    |    Description    |
|--------------------|-----------------|--------------|-----------------|----------------------------------------------------------------------|
|    name    |    String    |    150    |    N    |    Product Name    |
|    description    |    Long Text    |  |    N    |    Product Description    |
|    retail_price    |    Float    |  |  |    Retail Price    |
|    wholesale_price    |    String    |  |  |    Wholesale Price    |
|    weight_lbs    |    Float    |  |  |    Product Weight (In LBS)    |
|    wms_product_main_id    |    String    |    45    |    N    |    ID of Product in WMS System    |
|    warehouse_product_type    |    String    |    45    |    N    |    Product Type in WMS System    |
|    parent_sku    |    String    |    45    |    N    |    If this item is a variant, provide the parent SKU it belongs under    |
|    aliases    |    Array    |  |    N    |    Array containing list of Aliases to Add/Update    |
|    extra_fields    |    Array    |  |  N  |    Array containing additional custom fields to save with this product    |

### Aliases Array Fields
* Array Key: Alias Type Name. Eg. UPC, EAN, CUSTOM_ALIAS_TYPE
* Array Value: Alias Value. Must be Unique across all products.
    * Pass `NULL` to remove specified Alias Type from the product's Alias list.
    * You may also pass an array of values to load multiple values for the same key.
    * Any previous values for the given key will be removed

### Extra Fields Array Fields
* Array Key: Extra Field Name: Eg. supplier_code, tags
* Array Value: Extra Field Value.

**List of standard Extra Fields:**

If using these Extra Field Names, CartRover can sync full product details with any Order Source that supports Product Detail Sync.

* brand
* buy_price
* categories - json encoded array
* image_url
    * For multiple images you can also use image_url_X, where X starts at 1.
* image_name
    * Optional field if image_url doesn't include a useful name. Note, each cart will decide whether or not it needs to use the separate name.
    * For multiple images you can also use image_name_X, where X starts at 1.
* product_type
* supplier_code
* tags - json encoded array
* parent_name
    * Parent product name from WMS
* parent_id
    * Parent product id from WMS
* attribute_names - json encoded array of the attributes that make up this product. eg: [ "color", "size", "fabric" ]
    * Each attribute name/value should also be saved as a product extra field. Example below:
    * ` { "extra_fields": {"attribute_names": [ "color", "size", "fabric" ], "color": "red", "size": "large", "fabric": "silk"} }`
* country_of_manufacture
* sort_order - Use to provide preferred sort order of variants. Lowest sort comes first.
* min_order_qty
* ship_within_days - How many days will the warehouse guarantee to ship this item within? Int
* returns_allowed - true, false
* warranty - Provide Warranty text
* ca_prop_65 - Provide CA Prop 65 text
* status
    * Allowed values: active, disabled

**Marketplace Specific Fields**

**Ebay**

* ebay_category_id
    * See List: http://developer.ebay.com/Devzone/XML/docs/Reference/eBay/GetCategories.html 
* ebay_condition_id
    * See List: https://developer.ebay.com/devzone/finding/callref/Enums/conditionIdList.html
* ebay_return_cost_paid_by - Buyer, Seller
* ebay_format - Eg. FixedPrice
* ebay_duration - Always: GTC
* ebay_location - Provide Address
* ebay_postal_code
* ebay_refund_option - MoneyBack, MoneyBackOrReplacement
* ebay_returns_within_days
    * Provde an int or a string in the format: DAYS_X
* ebay_use_tax_table - true, false
* ebay_shipping_profile - Name: String
* ebay_return_profile - Name: String
* ebay_payment_profile - Name: String

**Joor**

* joor_category_id
    * JSON array of IDs. Eg: [123,987]
    * If not passed, the above categories list will be used instead and matched using the closest name in Joor.

### Response Fields - Same as Get Product Data
|    Field    |    Data Type    |    Length    |    Description    |
|-----------------------------|-----------------|--------------|------------------------------------------------------------|
|    sku    |    String    |    45    |    Always provided    |
|    name    |    String    |    150    |    Name if known    |
|    description    |    Long Text    |  |    Description if known    |
|    retail_price    |    Float    |  |  |
|    wholesale_price    |    Float    |  |  |
|    weight_lbs    |    Float    |  |  |
|    wms_product_main_id    |    String    |  |    Optional additional identifier provided by warehouse    |
|    last_updated_datetime    |    Timestamp    |  |    Time product data last changed    |
|    aliases    |    Array    |  |    List of aliases for this product    |

### Alias Fields
|    Field    |    Data Type    |    Length    |    Description    |
|-----------------|-----------------|--------------|-------------------------------|
|    code_type    |    String    |    45    |    Code type name. Eg: UPC    |
|    code    |    String    |    45    |    Alias code value    |

## Path parameters

- `SKU` string, required

## Headers

- `Content-Type` string

## Request body `*/*`

- string

## Response `200`

OK

- object

---

[API](https://skmtc.dev/extensiv/apis/integration-manager-api-formerly-cartrover.md) - [All operations](https://skmtc.dev/extensiv/apis/integration-manager-api-formerly-cartrover/llms.txt) - [OpenAPI document](https://skmtc.dev/extensiv/apis/integration-manager-api-formerly-cartrover/revisions/125e6deac675?raw)
