REST API: Products
URI: /products
Allows you to retrieve the list of all products with detailed information.
URL Structure: http://magentohost/api/rest/products
Version: 1
HTTP Method: GET /products
Description: Allows you to retrieve the list of all products with detailed information.
Notes: The list of attributes that will be returned in the response is configured in the Magento Admin Panel. The list of attributes differs for each type of user.
Authentication: Admin
Default Format: XML
Parameters:
No Parameters
| GET http://magentohost/api/rest/products |
Response Example: XML
<?xml version="1.0"?>
<magento_api>
<data_item>
<entity_id>1</entity_id>
<type_id>simple</type_id>
<sku>dress_test</sku>
<status>1</status>
<visibility>4</visibility>
<tax_class_id>2</tax_class_id>
<weight>1.0000</weight>
<price>1500.0000</price>
<special_price>1000.0000</special_price>
<name>Wedding dress</name>
<url_key>dress</url_key>
<country_of_manufacture>AO</country_of_manufacture>
<msrp_display_actual_price_type>2</msrp_display_actual_price_type>
<gift_message_available>1</gift_message_available>
<news_from_date>2012-03-21 00:00:00</news_from_date>
<news_to_date>2012-03-24 00:00:00</news_to_date>
<special_from_date>2012-03-21 00:00:00</special_from_date>
<special_to_date>2012-03-24 00:00:00</special_to_date>
<description>White wedding dress</description>
</data_item>
<data_item>
<entity_id>2</entity_id>
<type_id>simple</type_id>
<sku>black_sunglasses</sku>
<status>1</status>
<visibility>4</visibility>
<tax_class_id>2</tax_class_id>
<weight>0.2000</weight>
<price>500.0000</price>
<special_price>300.0000</special_price>
<name>Sunglasses</name>
<url_key>sunglasses</url_key>
<country_of_manufacture>AR</country_of_manufacture>
<msrp_display_actual_price_type>2</msrp_display_actual_price_type>
<gift_message_available></gift_message_available>
<news_from_date></news_from_date>
<news_to_date></news_to_date>
<special_from_date>2012-03-21 00:00:00</special_from_date>
<special_to_date>2012-03-24 00:00:00</special_to_date>
<description>Black sunglasses</description>
</data_item>
</magento_api>
Response Example: JSON
{"1":{"entity_id":"1","type_id":"simple","sku":"dress_test","status":"1","visibility":"4","tax_class_id":"2","weight":"1.0000","price":"1500.0000","special_price":"1000.0000","name":"Wedding dress","url_key":"dress","country_of_manufacture":"AO","msrp_display_actual_price_type":"2","gift_message_available":"1","news_from_date":"2012-03-21 00:00:00","news_to_date":"2012-03-24 00:00:00","special_from_date":"2012-03-21 00:00:00","special_to_date":"2012-03-24 00:00:00","description":"White wedding dress"},"2":{"entity_id":"2","type_id":"simple","sku":"black_sunglasses","status":"1","visibility":"4","tax_class_id":"2","weight":"0.2000","price":"500.0000","special_price":"300.0000","name":"Sunglasses","url_key":"sunglasses","country_of_manufacture":"AR","msrp_display_actual_price_type":"2","gift_message_available":null,"news_from_date":null,"news_to_date":null,"special_from_date":"2012-03-21 00:00:00","special_to_date":"2012-03-24 00:00:00","description":"Black sunglasses"}}
Authentication: Customer, Guest
Default Format: XML
Parameters:
No Parameters
| GET http://magentohost/api/rest/products |
Response Example: XML
<?xml version="1.0"?>
<magento_api>
<data_item>
<entity_id>1</entity_id>
<type_id>simple</type_id>
<sku>dress_test</sku>
<description>White wedding dress</description>
<short_description>dress</short_description>
<meta_keyword>white, dress</meta_keyword>
<name>Wedding dress</name>
<meta_title>dress</meta_title>
<meta_description>A nice wedding dress</meta_description>
<regular_price_with_tax>1500</regular_price_with_tax>
<regular_price_without_tax>1500</regular_price_without_tax>
<final_price_with_tax>1000</final_price_with_tax>
<final_price_without_tax>1000</final_price_without_tax>
<is_saleable>1</is_saleable>
<image_url>http://magentohost/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/1/2/wedding_dress.jpg</image_url>
</data_item>
<data_item>
<entity_id>2</entity_id>
<type_id>simple</type_id>
<sku>black_sunglasses</sku>
<description>Black sunglasses</description>
<short_description>Black sunglasses</short_description>
<meta_keyword>sunglasses, black</meta_keyword>
<name>Sunglasses</name>
<meta_title>sunglasses</meta_title>
<meta_description>black sunglasses</meta_description>
<regular_price_with_tax>500</regular_price_with_tax>
<regular_price_without_tax>500</regular_price_without_tax>
<final_price_with_tax>300</final_price_with_tax>
<final_price_without_tax>300</final_price_without_tax>
<is_saleable>1</is_saleable>
<image_url>http://magentohost/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/a/l/sunglasses-1.jpg</image_url>
</data_item>
</magento_api>
Response Example: JSON
{"1":{"entity_id":"1","type_id":"simple","sku":"dress_test","description":"White wedding dress","short_description":"dress","meta_keyword":"white, dress","name":"Wedding dress","meta_title":"dress","meta_description":"A nice wedding dress","regular_price_with_tax":1500,"regular_price_without_tax":1500,"final_price_with_tax":1000,"final_price_without_tax":1000,"is_saleable":"1","image_url":"http:\/\/magentohost\/media\/catalog\/product\/cache\/0\/image\/9df78eab33525d08d6e5fb8d27136e95\/1\/2\/wedding_dress.jpg"},"2":{"entity_id":"2","type_id":"simple","sku":"black_sunglasses","description":"Black sunglasses","short_description":"Black sunglasses","meta_keyword":"sunglasses, black","name":"Sunglasses","meta_title":"sunglasses","meta_description":"black sunglasses","regular_price_with_tax":500,"regular_price_without_tax":500,"final_price_with_tax":300,"final_price_without_tax":300,"is_saleable":"1","image_url":"http:\/\/magentohost\/media\/catalog\/product\/cache\/0\/image\/9df78eab33525d08d6e5fb8d27136e95\/a\/l\/sunglasses-1.jpg"}}
HTTP Method: GET /products/category_id=:id
Description: Allows you to retrieve the list of products of a specified category. These products will be returned in the product position ascending order.
In the following example, product with ID=4 has position equal to 7 and the product with ID=3 has position equal to 1. The list of products, therefore, is sorted by the product position in the category.
| GET http://magentohost/api/rest/products?category_id=5 |
Response Example: XML
<?xml version="1.0"?>
<magento_api>
<data_item>
<entity_id>4</entity_id>
<attribute_set_id>4</attribute_set_id>
<type_id>simple</type_id>
<tax_class_id>2</tax_class_id>
<weight>1.0000</weight>
<price>329.9900</price>
</data_item>
<data_item>
<entity_id>3</entity_id>
<attribute_set_id>4</attribute_set_id>
<type_id>simple</type_id>
<tax_class_id>2</tax_class_id>
<weight>1.0000</weight>
<price>550.0000</price>
</data_item>
</magento_api>
HTTP Method: POST /products
Description: Allows you to create a new simple product.
Authentication: Admin
Default Format: JSON
Parameters:
| Name | Description | Required | Type | Example Value |
|---|---|---|---|---|
| type_id | Product type. Can have the "simple" value. | required | string | simple |
| attribute_set_id | Attribute set for the product. | required | int | 4 |
| sku | Product SKU | required | string | new_product |
| name | Product name | required |
string | New product |
| meta_title | Product meta title | optional | string | new product |
| meta_description |
Product meta description | optional | string | This is a new product |
| url_key |
A friendly URL path for the product | optional | string | new-product |
| custom_design |
Custom design applied for the product page | optional | string | enterprise/default |
| page_layout |
Page template that can be applied to the product page | optional | string | one_column |
| options_container |
Defines how the custom options for the product will be displayed. Can have the following values: Block after Info Column or Product Info Column | optional | string | container2 |
| country_of_manufacture |
Product country of manufacture | optional | string | AD |
| msrp_enabled |
The Apply MAP option. Defines whether the price in the catalog in the frontend is substituted with a Click for price link | optional | int | 1 |
| msrp_display_actual_price_type |
Defines how the price will be displayed in the frontend. Can have the following values: In Cart, Before Order Confirmation, and On Gesture | optional | int | 2 |
| gift_message_available |
Defines whether the gift message is available for the product | optional | int | 1 |
| price | Product price | required |
string | 2000 |
| special_price |
Product special price | optional | string | 150 |
| weight | Product weight | required |
string | 0.5 |
| msrp |
The Manufacturer's Suggested Retail Price option. The price that a manufacturer suggests to sell the product at | optional | string | 140 |
| status | Product status. Can have the following values: 1- Enabled, 2 - Disabled. | required |
int | 1 |
| visibility | Product visibility. Can have the following values: 1 - Not Visible Individually, 2 - Catalog, 3 - Search, 4 - Catalog, Search. | required |
int | 4 |
| enable_googlecheckout |
Defines whether the product can be purchased with the help of the Google Checkout payment service. Can have the following values: Yes and No | optional | int | 1 |
| tax_class_id | Product tax class. Can have the following values: 0 - None, 2 - taxable Goods, 4 - Shipping, etc., depending on created tax classes. | required |
int | 7 |
| description | Product description. | required |
string | This is a new product. |
| short_description | Product short description. | required |
string | A new product. |
| meta_keyword |
Product meta keywords | optional | string | new |
| custom_layout_update |
An XML block to alter the page layout | optional | string | XML body |
| special_from_date |
Date starting from which the special price will be applied to the product | optional | string | 2012-03-15 00:00:00 |
| special_to_date |
Date till which the special price will be applied to the product | optional | string | 2012-03-15 00:00:00 |
| news_from_date |
Date starting from which the product is promoted as a new product | optional | string | 2012-03-15 00:00:00 |
| news_to_date |
Date till which the product is promoted as a new product | optional | string | 2012-03-15 00:00:00 |
| custom_design_from |
Date starting from which the custom design will be applied to the product page | optional | string | 2012-03-15 00:00:00 |
| custom_design_to |
Date till which the custom design will be applied to the product page | optional | string | 2012-03-15 00:00:00 |
| group_price |
Product group price | optional | array | array of group price |
| tier_price |
Product tier price | optional | array | array of tier price |
| stock_data |
Product inventory data | optional | array | array of stock data |
Array of Group Price attributes is as follows:
| Name | Description | Required | Type | Example Value |
|---|---|---|---|---|
| website_id | Website ID | optional | int | 0 |
| cust_group | Customer group | optional | int | 1 |
| price |
Group price | optional | string | 140 |
Array of Tier Price attributes is as follows:
| Name | Description | Required | Type | Example Value |
|---|---|---|---|---|
| website_id | Website ID | optional | int | 0 |
| cust_group | Customer group | optional | int | 1 |
| price | Tier price | optional | string | 140 |
| price_qty | Price quantity | optional | string | 10 |
Array of Stock Data attributes is as follows:
| Name | Description | Required | Type | Example Value |
|---|---|---|---|---|
| qty | Quantity of stock items for the current product | optional | string | 99 |
| min_qty | Quantity for stock items to become out of stock | optional | string | 5 |
| use_config_min_qty | Choose whether the Config settings will be applied for the Qty for Item's Status to Become Out of Stock option | optional | int | 1 |
| is_qty_decimal | Choose whether the product can be sold using decimals (e.g., you can buy 2.5 product) | optional | int | 1 |
| backorders |
Defines whether the customer can place the order for products that are out of stock at the moment. |
optional |
int | 0 |
| use_config_backorders |
Choose whether the Config settings will be applied for the Backorders option | optional |
int | 1 |
| min_sale_qty |
Minimum number of items in the shopping cart to be sold |
optional |
string | 10 |
| use_config_min_sale_qty |
Choose whether the Config settings will be applied for the Minimum Qty Allowed in Shopping Cart option | optional |
int | 1 |
| max_sale_qty |
Maximum number of items in the shopping cart to be sold |
optional |
string | 50 |
| use_config_max_sale_qty |
Choose whether the Config settings will be applied for the Maximum Qty Allowed in Shopping Cart option | optional |
int | 1 |
| is_in_stock |
Defines whether the product is available for selling. | optional |
int | 1 |
| notify_stock_qty |
The number of inventory items below which the customer will be notified | optional |
string | 5 |
| use_config_notify_stock_qty |
Choose whether the Config settings will be applied for the Notify for Quantity Below option | optional |
int | 1 |
| manage_stock |
Choose whether to view and specify the product quantity and availability and whether the product is in stock management. | optional |
int | 1 |
| use_config_manage_stock |
Choose whether the Config settings will be applied for the Manage Stock option | optional |
int | 1 |
| use_config_qty_increments |
Choose whether the Config settings will be applied for the Qty Increments option | optional |
int | 1 |
| qty_increments |
The product quantity increment value | optional |
string | 3 |
| use_config_enable_qty_inc |
Choose whether the Config settings will be applied for the Enable Qty Increments option | optional |
int | 1 |
| enable_qty_increments |
Defines whether the customer can add products only in increments to the shopping cart | optional |
int | 0 |
| is_decimal_divided |
Defines whether the stock items can be divided into multiple boxes for shipping | optional |
int | 0 |
| POST http://magentohost/api/rest/products |
Request Example: JSON
{
"custom_design" : "default/blank",
"custom_design_from" : "02/16/2012",
"custom_design_to" : "05/01/2012",
"description" : "Test description",
"gift_message_available" : 1,
"meta_description" : "Test meta",
"meta_keyword" : "Test keyword",
"meta_title" : "Test title",
"msrp" : 11.015000000000001,
"msrp_display_actual_price_type" : 1,
"msrp_enabled" : 1,
"name" : "Test",
"news_from_date" : "02/16/2012",
"news_to_date" : "16.02.2012",
"options_container" : "container1",
"page_layout" : "one_column",
"price" : 25.5,
"attribute_set_id" : "4",
"short_description" : "Test short description",
"sku" : "simple4f5490f31959f",
"special_from_date" : "02/16/2012",
"special_price" : 11.199999999999999,
"special_to_date" : "03/17/2012",
"status" : 1,
"stock_data" : { "backorders" : 1,
"enable_qty_increments" : 0,
"is_in_stock" : 0,
"is_qty_decimal" : 0,
"manage_stock" : 1,
"max_sale_qty" : 1,
"min_qty" : 1.5600000000000001,
"min_sale_qty" : 1,
"notify_stock_qty" : -50.990000000000002,
"qty" : 1,
"use_config_manage_stock" : 1,
"use_config_min_qty" : 1,
"use_config_min_sale_qty": 1,
"use_config_max_sale_qty" : 1,
"use_config_backorders": 1,
"use_config_enable_qty_inc":1,
"use_config_notify_stock_qty":1 },
"tax_class_id" : "2",
"type_id" : "simple",
"use_config_gift_message_available" : 0,
"visibility" : "4",
"weight" : 125
}
Request Example: XML
<?xml version="1.0"?> <magento_api> <attribute_set_id>4</attribute_set_id> <type_id>simple</type_id> <sku>test_dress</sku> <name>Test_dress</name> <country_of_manufacture>AD</country_of_manufacture> <price>2000.0000</price> <special_price>1500.0000</special_price> <weight>0.5000</weight> <status>1</status> <visibility>4</visibility> <tax_class_id>7</tax_class_id> <description>dress</description> <short_description>Wedding dress</short_description> </magento_api>
URI: /products/:id
Allows you to retrieve, update, and delete a specified product in Magento.
URL Structure: http://magentohost/api/rest/products/:id
Version: 1
HTTP Method: GET /products/:id
Description: Allows you to retrieve information on a required simple product.
Notes: The list of attributes that will be returned in the response is configured in the Magento Admin Panel. The list of attributes differs for each type of user.
Authentication: Admin
Default Format: XML
Parameters:
No Parameters
| GET http://magentohost/api/rest/products/8 |
Response Example: XML
<?xml version="1.0"?>
<magento_api>
<entity_id>8</entity_id>
<attribute_set_id>4</attribute_set_id>
<type_id>simple</type_id>
<sku>dress</sku>
<name>Dress</name>
<url_key>my-new-dress</url_key>
<country_of_manufacture>AD</country_of_manufacture>
<msrp_display_actual_price_type>2</msrp_display_actual_price_type>
<gift_message_available>1</gift_message_available>
<price>2000.0000</price>
<weight>0.5000</weight>
<status>1</status>
<visibility>4</visibility>
<tax_class_id>7</tax_class_id>
<description>dress</description>
<group_price>
<data_item>
<website_id>0</website_id>
<cust_group>1</cust_group>
<price>1400.0000</price>
</data_item>
</group_price>
<tier_price>
<data_item>
<website_id>0</website_id>
<cust_group>1</cust_group>
<price>1300.0000</price>
<price_qty>1.0000</price_qty>
</data_item>
</tier_price>
<stock_data>
<qty>50.0000</qty>
<min_qty>0.0000</min_qty>
<use_config_min_qty>1</use_config_min_qty>
<is_qty_decimal>0</is_qty_decimal>
<backorders>0</backorders>
<use_config_backorders>1</use_config_backorders>
<min_sale_qty>1.0000</min_sale_qty>
<use_config_min_sale_qty>1</use_config_min_sale_qty>
<max_sale_qty>0.0000</max_sale_qty>
<use_config_max_sale_qty>1</use_config_max_sale_qty>
<is_in_stock>1</is_in_stock>
<notify_stock_qty></notify_stock_qty>
<use_config_notify_stock_qty>1</use_config_notify_stock_qty>
<manage_stock>0</manage_stock>
<use_config_manage_stock>1</use_config_manage_stock>
<use_config_qty_increments>1</use_config_qty_increments>
<qty_increments>0.0000</qty_increments>
<use_config_enable_qty_inc>1</use_config_enable_qty_inc>
<enable_qty_increments>0</enable_qty_increments>
<is_decimal_divided>0</is_decimal_divided>
<use_config_enable_qty_increments>1</use_config_enable_qty_increments>
</stock_data>
</magento_api>
Response Example: JSON
{"entity_id":"8","attribute_set_id":"4","type_id":"simple","sku":"dress","name":"Dress","url_key":"my-new-dress","country_of_manufacture":"AD","msrp_display_actual_price_type":"2","gift_message_available":"1","price":"2000.0000","weight":"0.5000","status":"1","visibility":"4","tax_class_id":"7","description":"dress","group_price":[{"website_id":"0","cust_group":"1","price":"1400.0000"}],"tier_price":[{"website_id":"0","cust_group":"1","price":"1300.0000","price_qty":"1.0000"}],"stock_data":{"qty":"50.0000","min_qty":"0.0000","use_config_min_qty":"1","is_qty_decimal":"0","backorders":"0","use_config_backorders":"1","min_sale_qty":"1.0000","use_config_min_sale_qty":"1","max_sale_qty":"0.0000","use_config_max_sale_qty":"1","is_in_stock":"1","notify_stock_qty":null,"use_config_notify_stock_qty":"1","manage_stock":"0","use_config_manage_stock":"1","use_config_qty_increments":"1","qty_increments":"0.0000","use_config_enable_qty_inc":"1","enable_qty_increments":"0","is_decimal_divided":"0","use_config_enable_qty_increments":"1"}}
Authentication: Customer, Guest
Default Format: XML
Parameters:
No Parameters
| GET http://magentohost/api/rest/products/8 |
Response Example: XML
<?xml version="1.0"?> <magento_api> <entity_id>1</entity_id> <type_id>simple</type_id> <sku>dress_test</sku> <name>Wedding dress</name> <meta_title>dress</meta_title> <meta_description>A nice wedding dress</meta_description> <description>White wedding dress</description> <short_description>dress</short_description> <meta_keyword>white, dress</meta_keyword> <tier_price/> <is_in_stock>1</is_in_stock> <regular_price_with_tax>1500</regular_price_with_tax> <regular_price_without_tax>1500</regular_price_without_tax> <final_price_with_tax>1000</final_price_with_tax> <final_price_without_tax>1000</final_price_without_tax> <is_saleable>1</is_saleable> <image_url>http://magento/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/1/2/wedding_dress.jpg</image_url> <url>http://magento/index.php/catalog/product/view/id/1/s/dress/</url> <buy_now_url>http://magento/index.php/checkout/cart/add/uenc/aHR0cDovLzEyNy4wLjAuMS9Tb3VyY2VzL2FwaS9yZXN0L3Byb2R1Y3RzLzE,/product/1/</buy_now_url> <total_reviews_count>0</total_reviews_count> <has_custom_options></has_custom_options> </magento_api>
Response Example: JSON
{"entity_id":"1","type_id":"simple","sku":"dress_test","name":"Wedding dress","meta_title":"dress","meta_description":"A nice wedding dress","description":"White wedding dress","short_description":"dress","meta_keyword":"white, dress","tier_price":[],"is_in_stock":"1","regular_price_with_tax":1500,"regular_price_without_tax":1500,"final_price_with_tax":1000,"final_price_without_tax":1000,"is_saleable":"1","image_url":"http:\/\/magento\/media\/catalog\/product\/cache\/0\/image\/9df78eab33525d08d6e5fb8d27136e95\/1\/2\/wedding_dress.jpg","url":"http:\/\/magento\/index.php\/catalog\/product\/view\/id\/1\/s\/dress\/","buy_now_url":"http:\/\/magento\/index.php\/checkout\/cart\/add\/uenc\/aHR0cDovLzEyNy4wLjAuMS9Tb3VyY2VzL2FwaS9yZXN0L3Byb2R1Y3RzLzE,\/product\/1\/","total_reviews_count":"0","has_custom_options":false}
HTTP Method: PUT /products/:id
Description: Allows you to update an existing product.
Authentication: Admin
Default Format: JSON
Parameters:
Enter only those parameters which you want to update.
| PUT http://magentohost/api/rest/products/8 PUT for specific store http://magentohost/api/rest/products/8/store/3 |
Request Example: JSON
{
"attribute_set_id":"4",
"type_id":"simple",
"sku":"wedding dress",
"name":"Dress_test",
"meta_title":"dress",
"meta_description":"a wedding dress",
"price":"2000.0000",
"weight":"0.5000",
"status":"1",
"visibility":"4",
"enable_googlecheckout":"1",
"tax_class_id":"7",
"description":"dress",
"meta_keyword":"dress, wedding"
}
Request Example: XML
<?xml version="1.0"?> <magento_api> <attribute_set_id>4</attribute_set_id> <type_id>simple</type_id> <sku>wedding dress</sku> <name>Dress_test</name> <meta_title>dress</meta_title> <price>2000.0000</price> <weight>0.5000</weight> <status>1</status> <visibility>4</visibility> <enable_googlecheckout>1</enable_googlecheckout> <tax_class_id>7</tax_class_id> <description>dress</description> <meta_keyword>dress, wedding</meta_keyword> </magento_api>
HTTP Method: DELETE /products/:id
Description: Allows you to delete an existing product.
Authentication: Admin
Default Format: JSON
Parameters: no parameters
Request Example:
| DELETE http://magentohost/api/rest/products/1 |
Possible HTTP Status Codes
| Status Code | Message | Description |
|---|---|---|
| 404 | Resource not found. | The required resource is not found. |
| 405 | Resource method not implemented yet. | The required method is not implemented yet. |
| 405 | Resource does not support method. | The current resource does not support the specified method. |