SOAP / REST API Add-On
Adds CRUD WebAPI endpoints for pricelists (pricelists, pricelist products, customer assignments, group assignments).
Package
- Composer package:
mageb2b/pricesystem-pricelist-api - Magento module:
MageB2B_PricesystemPricelistApi
Installation
composer config bearer.repo.softwaresilo.io composer config repositories.softwaresilo composer https://repo.softwaresilo.io/ composer require mageb2b/pricesystem-pricelist-api:* php bin/magento setup:upgrade php bin/magento cache:flush Endpoints (Overview)
Pricelist endpoints:
| Method | URL |
|---|---|
| GET | /V1/pricesystem/pricelist/:id |
| GET | /V1/pricesystem/pricelist/search |
| POST | /V1/pricesystem/pricelist |
| PUT | /V1/pricesystem/pricelist/:id |
| POST | /V1/pricesystem/pricelistbulk |
| DELETE | /V1/pricesystem/pricelist/:id |
| DELETE | /V1/pricesystem/pricelist/all |
Pricelist product endpoints:
| Method | URL |
|---|---|
| GET | /V1/pricesystem/pricelistproduct/:id |
| GET | /V1/pricesystem/pricelistproduct/search |
| POST | /V1/pricesystem/pricelistproduct |
| POST | /V1/pricesystem/pricelistproductbulk |
| PUT | /V1/pricesystem/pricelistproduct/:id |
| PUT | /V1/pricesystem/pricelistproductbulk |
| DELETE | /V1/pricesystem/pricelistproduct/:id |
Customer assignment endpoints:
| Method | URL |
|---|---|
| GET | /V1/pricesystem/pricelistcustomer/:id |
| GET | /V1/pricesystem/pricelistcustomer/search |
| POST | /V1/pricesystem/pricelistcustomer |
| PUT | /V1/pricesystem/pricelistcustomer/:id |
| DELETE | /V1/pricesystem/pricelistcustomer/:id |
| DELETE | /V1/pricesystem/pricelistcustomer/deleteByCustomerId/:customerId |
Customer group assignment endpoints:
| Method | URL |
|---|---|
| GET | /V1/pricesystem/pricelistgroup/:id |
| GET | /V1/pricesystem/pricelistgroup/search |
| POST | /V1/pricesystem/pricelistgroup |
| PUT | /V1/pricesystem/pricelistgroup/:id |
| DELETE | /V1/pricesystem/pricelistgroup/:id |
Authentication
All endpoints above require a valid admin bearer token.
curl -X POST "https://your-store.com/rest/V1/integration/admin/token" \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"***"}'Then call endpoints with:
-H "Authorization: Bearer " Request Payloads
The following payloads are the request wrappers expected by Magento WebAPI for this module.
Pricelist Requests
GET /V1/pricesystem/pricelist/:id
No request body.
GET /V1/pricesystem/pricelist/search
No request body. Use searchCriteria query parameters, for example:
/V1/pricesystem/pricelist/search?searchCriteria[filter_groups][0][filters][0][field]=name&searchCriteria[filter_groups][0][filters][0][value]=B2B&searchCriteria[filter_groups][0][filters][0][condition_type]=like&searchCriteria[currentPage]=1&searchCriteria[pageSize]=20POST /V1/pricesystem/pricelist and PUT /V1/pricesystem/pricelist/:id use wrapper key pricelist:
{ "pricelist": { "id": 12, "name": "B2B Winter 2026", "active": true, "priority": 10, "from_date": "2026-03-01", "to_date": "2026-12-31", "website_id": 1, "products": [ { "product_id": "24-MB01", "qty": 1, "price": "49.90", "price_application_type": 1, "start": "2026-03-01", "end": "2026-12-31", "price_attribute_id": 77 } ], "customers": "42,99", "groups": "1,3", "is_base_pricelist": false, "customer_attribute": "", "customer_attribute_value": "", "customer_address_attribute": "", "customer_address_attribute_value": "", "customer_attribute_combine": false } }POST /V1/pricesystem/pricelistbulk uses wrapper key pricelists:
{ "pricelists": [ { "name": "PL A", "active": true, "priority": 10, "website_id": 1 }, { "id": 12, "name": "PL B Updated", "active": true, "priority": 20, "website_id": 1 } ] }For the pricelist object, customers and groups are REST input strings (comma-separated), not arrays. For assignment workflows, prefer the dedicated endpoints: /V1/pricesystem/pricelistcustomer* and /V1/pricesystem/pricelistgroup*.
DELETE /V1/pricesystem/pricelist/:id and DELETE /V1/pricesystem/pricelist/all
No request body.
Pricelist Product Requests
GET /V1/pricesystem/pricelistproduct/:id
No request body.
GET /V1/pricesystem/pricelistproduct/search
No request body. Example:
/V1/pricesystem/pricelistproduct/search?searchCriteria[filter_groups][0][filters][0][field]=pricelist_id&searchCriteria[filter_groups][0][filters][0][value]=12&searchCriteria[filter_groups][0][filters][0][condition_type]=eqPOST /V1/pricesystem/pricelistproduct and PUT /V1/pricesystem/pricelistproduct/:id use wrapper key pricelistProduct:
{ "pricelistProduct": { "id": 55, "pricelist_id": 12, "product_id": "24-MB01", "qty": 1, "price": "49.90", "price_application_type": 1, "start": "2026-03-01", "end": "2026-12-31", "price_attribute_id": 77 } }POST /V1/pricesystem/pricelistproductbulk and PUT /V1/pricesystem/pricelistproductbulk use wrapper key pricelistProducts:
{ "pricelistProducts": [ { "id": 55, "pricelist_id": 12, "product_id": "24-MB01", "qty": 1, "price": "47.90", "price_application_type": 1 }, { "id": 56, "pricelist_id": 12, "product_id": "24-MB04", "qty": 5, "price": "37.90", "price_application_type": 5 } ] }DELETE /V1/pricesystem/pricelistproduct/:id
No request body.
Pricelist Customer Assignment Requests
GET /V1/pricesystem/pricelistcustomer/:id
No request body.
GET /V1/pricesystem/pricelistcustomer/search
No request body. Example:
/V1/pricesystem/pricelistcustomer/search?searchCriteria[filter_groups][0][filters][0][field]=pricelist_id&searchCriteria[filter_groups][0][filters][0][value]=12&searchCriteria[filter_groups][0][filters][0][condition_type]=eqPOST /V1/pricesystem/pricelistcustomer and PUT /V1/pricesystem/pricelistcustomer/:id use wrapper key pricelistCustomer:
{ "pricelistCustomer": { "id": 90, "pricelist_id": 12, "customer_id": "alice@example.com" } }DELETE /V1/pricesystem/pricelistcustomer/:id and DELETE /V1/pricesystem/pricelistcustomer/deleteByCustomerId/:customerId
No request body.
Pricelist Group Assignment Requests
GET /V1/pricesystem/pricelistgroup/:id
No request body.
GET /V1/pricesystem/pricelistgroup/search
No request body. Example:
/V1/pricesystem/pricelistgroup/search?searchCriteria[filter_groups][0][filters][0][field]=pricelist_id&searchCriteria[filter_groups][0][filters][0][value]=12&searchCriteria[filter_groups][0][filters][0][condition_type]=eqPOST /V1/pricesystem/pricelistgroup and PUT /V1/pricesystem/pricelistgroup/:id use wrapper key pricelistGroup:
{ "pricelistGroup": { "id": 77, "pricelist_id": 12, "group_id": 3 } }DELETE /V1/pricesystem/pricelistgroup/:id
No request body.
Field Notes
price_application_typevalues:1= fixed2= surcharge nominal3= surcharge percent4= discount nominal5= discount percent
product_idcan resolve from ID or SKU, depending onpricesystem/api/product_attribute_code.customer_idcan resolve from ID or email, depending onpricesystem/api/customer_attribute_code.website_idsupports numeric website ID and website code.
For the full list, see: Pricesystem SOAP / REST API
