-
Notifications
You must be signed in to change notification settings - Fork 254
Create a configurable product [Web API Tutorial]
Let keep the Default attribute set from changing and create one new attribute set where we can add anything we will need.
Endpoint
POST http://<host>/rest/all/V1/products/attribute-sets
HTTP headers
Content-Type application/json
Authorization: Bearer <admin_token>
Payload
{
"attributeSet": {
"attribute_set_name": "Configurable Hoodies and Sweatshirts",
"entity_type_id": 4
},
"skeletonId": 4
}
Response
Full information about the attribute set that was created with assigned attribute_set_id
equal to 9
Complete cURL request sample
curl -X POST "$endpoint/all/V1/categories" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $admin_token" \
-d '{"attributeSet":{"attribute_set_name":"Configurable Hoodies and Sweatshirts","entity_type_id":4},"skeletonId":4}' | json_pp
Place an attribute to the correct group
Endpoint
PUT /V1/products/attribute-sets/9/groups
{
"group": {
"attribute_group_id": "30",
"attribute_group_name": "Product Details",
"attribute_set_id": 9
}
}
Endpoint
POST /V1/products/attribute-sets/attributes
HTTP headers
Content-Type: application/json
Authorization: Bearer <admin_token>
Payload
{
"attributeSetId": 9,
"attributeGroupId": 30,
"attributeCode": "size",
"sortOrder": 0
}
Response
Complete cURL request
Endpoint
POST http://<host>/rest/all/V1/products/attributes
HTTP headers
Content-Type: application/json
Authorization: Bearer <admin_token>
Payload
{
"attribute": {
"attribute_code": "size",
"entity_type_id": "4",
"default_frontend_label": "Size",
"frontend_labels": [{
"store_id": 1,
"label": "Size"
},{
"store_id": 2,
"label": "Size"
}],
"is_required": true,
"default_value": "",
"frontend_input": "select",
"is_visible_on_front": true,
"is_searchable": true,
"is_visible_in_advanced_search": true,
"is_filterable": true,
"is_filterable_in_search": true,
"options": [{
"label": "S",
"value": "S",
"sort_order": 100,
"is_default": true,
"store_labels": [{
"store_id": 2,
"label": "Size S"
}, {
"store_id": 1,
"label": "Size S"
}]
}, {
"label": "M",
"value": "M",
"sort_order": 0,
"is_default": false,
"store_labels": [{
"store_id": 2,
"label": "Size M"
}, {
"store_id": 1,
"label": "Size M"
}]
}, {
"label": "L",
"value": "L",
"sort_order": 0,
"is_default": false,
"store_labels": [{
"store_id": 2,
"label": "Size L"
}, {
"store_id": 1,
"label": "Size L"
}]
}, {
"label": "XL",
"value": "XL",
"sort_order": 0,
"is_default": false,
"store_labels": [{
"store_id": 2,
"label": "Size XL"
}, {
"store_id": 1,
"label": "Size XL"
}]
}, {
"label": "XXL",
"value": "XXL",
"sort_order": 0,
"is_default": false,
"store_labels": [{
"store_id": 2,
"label": "Size XXL"
}, {
"store_id": 1,
"label": "Size XXL"
}]
}]
}
}
Complete cUrl request
curl -X POST "$endpoint/all/V1/products/attributes " \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $admin_token" \
-d '{"attribute":{"attribute_code":"size","entity_type_id":"4","default_frontend_label":"Size","frontend_labels":[{"store_id":1,"label":"Size"},{"store_id":2,"label":"Size"}],"is_required":true,"default_value":"","frontend_input":"select","is_visible_on_front":true,"is_searchable":true,"is_visible_in_advanced_search":true,"is_filterable":true,"is_filterable_in_search":true,"options":[{"label":"S","value":"S","sort_order":100,"is_default":true,"store_labels":[{"store_id":2,"label":"Size S"},{"store_id":1,"label":"Size S"}]},{"label":"M","value":"M","sort_order":0,"is_default":false,"store_labels":[{"store_id":2,"label":"Size M"},{"store_id":1,"label":"Size M"}]},{"label":"L","value":"L","sort_order":0,"is_default":false,"store_labels":[{"store_id":2,"label":"Size L"},{"store_id":1,"label":"Size L"}]},{"label":"XL","value":"XL","sort_order":0,"is_default":false,"store_labels":[{"store_id":2,"label":"Size XL"},{"store_id":1,"label":"Size XL"}]},{"label":"XXL","value":"XXL","sort_order":0,"is_default":false,"store_labels":[{"store_id":2,"label":"Size XXL"},{"store_id":1,"label":"Size XXL"}]}]}}'
Endpoint
POST http:///rest/all/V1/categories"
HTTP headers
Content-Type application/json
Authorization: Bearer <admin_token>
Payload
{
"category": {
"parent_id": 2,
"name": "Hoodies & Sweatshirts",
"is_active": true,
"level": 2,
"include_in_menu": true,
"custom_attributes": [{
"attribute_code": "is_anchor",
"value": "1"
}, {
"attribute_code": "url_key",
"value": "hoodies-sweatshirts"
}, {
"attribute_code": "url_path",
"value": "hoodies-sweatshirts"
}]
}
}
Response
Full information about the category that was created
Complete cURL request sample
curl -X POST "$endpoint/all/V1/categories" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $admin_token" \
-d '{"category":{"parent_id":2,"name":"Hoodies & Sweatshirts","is_active":true,"level":2,"include_in_menu":true,"custom_attributes":[{"attribute_code":"is_anchor","value":"1"},{"attribute_code":"url_key","value":"hoodies-sweatshirts"},{"attribute_code":"url_path","value":"hoodies-sweatshirts"}]}}' | json_pp
Endpoint
POST http://<host>/rest/test/V1/products
HTTP headers
Content-Type application/json
Authorization: Bearer <admin_token>
Payload
Response
Complete cURL request sample
Multi-Source Inventory developed by Magento 2 Community
- Technical Vision. Catalog Inventory
- Installation Guide
- List of Inventory APIs and their legacy analogs
- MSI Roadmap
- Known Issues in Order Lifecycle
- MSI User Guide
- 2.3 LIVE User Guide
- MSI Release Notes and Installation
- Overview
- Get Started with MSI
- MSI features and processes
- Global and Product Settings
- Configure Source Selection Algorithm
- Create Sources
- Create Stock
- Assign Inventory and Product Notifications
- Configure MSI backorders
- MSI Import and Export Product Data
- Mass Action Tool
- Shipment and Order Management
- CLI reference
- Reports and MSI
- MSI FAQs
- DevDocs Documentation
- Manage Inventory Management Modules (install/upgrade info)
- Inventory Management
- Reservations
- Inventory CLI reference
- Inventory API reference
- Inventory In-Store Pickup API reference
- Order Processing with Inventory Management
- Managing sources
- Managing stocks
- Link and unlink stocks and sources
- Manage source items
- Perform bulk actions
- Manage Low-Quantity Notifications
- Check salable quantities
- Manage source selection algorithms
- User Stories
- Support of Store Pickup for MSI
- Product list assignment per Source
- Source assignment per Product
- Stocks to Sales Channel Mapping
- Adapt Product Import/Export to support multi Sourcing
- Introduce SourceCode attribute for Source and SourceItem entities
- Assign Source Selector for Processing of Returns Credit Memo
- User Scenarios:
- Technical Designs:
- Module Structure in MSI
- When should an interface go into the Model directory and when should it go in the Api directory?
- Source and Stock Item configuration Design and DB structure
- Stock and Source Configuration design
- Open Technical Questions
- Inconsistent saving of Stock Data
- Source API
- Source WebAPI
- Sources to Sales Channels mapping
- Service Contracts MSI
- Salable Quantity Calculation and Mechanism of Reservations
- StockItem indexation
- Web API and How To cover them with Functional Testing
- Source Selection Algorithms
- Validation of Domain Entities
- PHP 7 Syntax usage for Magento contribution
- The first step towards pre generated IDs. And how this will improve your Integration tests
- The Concept of Default Source and Domain Driven Design
- Extension Point of Product Import/Export
- Source Selection Algorithm
- SourceItem Entity Extension
- Design Document for changing SerializerInterface
- Stock Management for Order Cancelation
- Admin UI
- MFTF Extension Tests
- Weekly MSI Demos
- Tutorials