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:

MethodURL
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:

MethodURL
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:

MethodURL
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:

MethodURL
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]=20

POST /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]=eq

POST /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]=eq

POST /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]=eq

POST /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_type values:
    • 1 = fixed
    • 2 = surcharge nominal
    • 3 = surcharge percent
    • 4 = discount nominal
    • 5 = discount percent
  • product_id can resolve from ID or SKU, depending on pricesystem/api/product_attribute_code.
  • customer_id can resolve from ID or email, depending on pricesystem/api/customer_attribute_code.
  • website_id supports numeric website ID and website code.

For the full list, see: Pricesystem SOAP / REST API

Found an issue with this documentation? Let us know