Skip to content

Create a simple product [Web API Tutorial]

Ievgen Shakhsuvarov edited this page Jul 16, 2019 · 7 revisions

Create categories

At this point we are going to create 2 categories: Sports Equipment and Backpacks

Endpoint
POST http://<host>/rest/all/V1/categories"

HTTP headers
Content-Type application/json
Authorization: Bearer <admin_token>

Payload

{
	"category": {
		"parent_id": 2,
		"name": "Sports Equipment",
		"is_active": true,
		"level": 2,
		"include_in_menu": true,
		"custom_attributes": [{
			"attribute_code": "is_anchor",
			"value": "1"
		}, {
			"attribute_code": "url_key",
			"value": "sports-equipment"
		}, {
			"attribute_code": "url_path",
			"value": "sports-equipment"
		}]
	}
}

Repeat this with another payload:
Payload

{
	"category": {
		"parent_id": 3,
		"name": "Backpacks",
		"is_active": true,
		"level": 3,
		"include_in_menu": true,
		"custom_attributes": [{
			"attribute_code": "is_anchor",
			"value": "1"
		}, {
			"attribute_code": "url_key",
			"value": "backpacks"
		}, {
			"attribute_code": "url_path",
			"value": "backpacks"
		}]
	}
}

Response
Full information about the category that was created

Complete cURL request sample

default_category_id=2 && curl -X POST "$endpoint/all/V1/categories" \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $admin_token" \
 -d '{"category":{"parent_id":"'"$default_category_id"'","name":"Sport Equipment","is_active":true,"include_in_menu":true,"custom_attributes":[{"attribute_code":"is_anchor","value":"1"},{"attribute_code":"url_key","value":"sports-equipment"},{"attribute_code":"url_path","value":"sports-equipment"}]}}' | json_pp

sports_equipment_category_id=3 && curl -X POST "$endpoint/all/V1/categories" \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $admin_token" \
 -d '{"category":{"parent_id":"'"$sports_equipment_category_id"'","name":"Backpacks","is_active":true,"include_in_menu":true,"custom_attributes":[{"attribute_code":"is_anchor","value":"1"},{"attribute_code":"url_key","value":"backpacks"},{"attribute_code":"url_path","value":"backpacks"}]}}' | json_pp

Create a Simple product

After this step the simple product with SKU 'Simple Running Backpack' will be added to the products inventory.
Endpoint
POST http://<host>/rest/test/V1/products

HTTP headers
Content-Type application/json
Authorization: Bearer <admin_token>

Payload

{
	"product": {
		"sku": "Simple Running Backpack",
		"name": "Simple Running Backpack",
		"attribute_set_id": 4,
		"price": 70,
		"status": 1,
		"visibility": 4,
		"type_id": "simple",
		"weight": 0.8,
		"extension_attributes": {
			"website_ids": ["2"],
			"category_links": [{
				"position": 0,
				"category_id": "3"
			}],
			"stock_item": {
				"qty": 250,
				"is_in_stock": true,
				"is_qty_decimal": false
			}
		}
	}
}

Response
Magento returns new entity.

Complete cURL request sample

backpacks_category_id="3"; simple_product_SKU="Simple Running Backpack"; test_website_id="2" && curl -X POST "$endpoint/test/V1/products" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $admin_token" \
-d '{"product":{"sku":"'"$simple_product_SKU"'","name":"'"$simple_product_SKU"'","attribute_set_id":4,"price":70,"status":1,"visibility":4,"type_id":"simple","weight":0.8,"extension_attributes":{"website_ids":["'"$test_website_id"'"],"category_links":[{"position":0,"category_id":"'"$backpacks_category_id"'"}],"stock_item":{"qty":250,"is_in_stock":true,"is_qty_decimal":false}}}}' | json_pp

Products Catalog

◀️ Previous Step 📖 Table of Contents Next Step ▶️

MSI Documentation:

  1. Technical Vision. Catalog Inventory
  2. Installation Guide
  3. List of Inventory APIs and their legacy analogs
  4. MSI Roadmap
  5. Known Issues in Order Lifecycle
  6. MSI User Guide
  7. DevDocs Documentation
  8. User Stories
  9. User Scenarios:
  10. Technical Designs:
  11. Admin UI
  12. MFTF Extension Tests
  13. Weekly MSI Demos
  14. Tutorials
Clone this wiki locally