Track breaking changes, new endpoints, and removed endpoints between Shoplazza OpenAPI versions. Versions follow the vYYYYMM naming convention.
v202607
Version info
| Field | Value |
|---|
| Released | TBD |
| Status | Current |
| API prefix | /openapi/2026-07/ |
| Previous | /openapi/2026-01/ |
| Sunset | TBD |
| API reference | v202607 API Reference |
Summary
- This version is a routine release that increments the API prefix from 2026-01 to 2026-07.
- Existing integrations using the previous prefix will continue to work with the same functional behavior under the new prefix.
- Updating your API base path to
/openapi/2026-07/ is required to access this version; no other migration steps are needed.
v202601
Version info
| Field | Value |
|---|
| Released | TBD |
| Status | Supported |
| API prefix | /openapi/2026-01/ |
| Previous | /openapi/2025-06/ |
| Sunset | TBD |
| API reference | v202601 API Reference |
Summary
- Price rules and discount codes endpoints are fully replaced by a new unified Discounts API.
- New discounts endpoints support automatic and non‑automatic discounts, code lookup, combine configurations, batch operations, and cancellation.
- Asynchronous smart collection creation is introduced for better performance on large rules.
- Several legacy endpoints (flash sales, rebates, popups, sales pop config) are removed without replacement.
- Coupons API changes: listing (
GET /coupons) is removed; a new POST /coupons endpoint is added.
Breaking changes
Discounts & Price Rules
The existing /price_rules and /discount_codes endpoints are replaced by the new /discounts endpoints. Use the following mapping to migrate your code.
| Before (v2025-06) | After (v2026-01) |
|---|
GET /price_rules | GET /discounts |
POST /price_rules | POST /discounts/automatic or POST /discounts/non-automatic |
GET /price_rules/{price_rule_id} | GET /discounts/{id} |
PUT /price_rules/{price_rule_id} | PUT /discounts/automatic/{id} or PUT /discounts/non-automatic/{id} |
DELETE /price_rules/{price_rule_id} | DELETE /discounts/{id} |
GET /price_rules/{price_rule_id}/discount_codes | GET /discounts (filter by code) or GET /discounts/by-code/{discount_code} |
POST /price_rules/{price_rule_id}/discount_codes | POST /discounts/non-automatic (creates a discount with a code) |
GET /price_rules/{price_rule_id}/discount_codes/{discount_code_id} | GET /discounts/{id} or GET /discounts/by-code/{discount_code} |
PUT /price_rules/{price_rule_id}/discount_codes/{discount_code_id} | PUT /discounts/non-automatic/{id} |
DELETE /price_rules/{price_rule_id}/discount_codes/{discount_code_id} | DELETE /discounts/{id} |
GET /discount_codes | GET /discounts |
GET /discount_codes/lookup | GET /discounts/by-code/{discount_code} |
Coupons
GET /coupons (list coupons) has been removed. There is no direct replacement.
POST /coupons is added (see Additions).
Additions
The following new endpoints are introduced:
- Coupons
POST /coupons — Create coupon
GET /coupons/{id} — Get coupon
PUT /coupons/{id} — Update coupon
- Discounts
GET /discounts — List discounts
POST /discounts/automatic — Create automatic discount
PUT /discounts/automatic/{id} — Update automatic discount
POST /discounts/batch-delete — Batch delete discounts
GET /discounts/by-code/{discount_code} — Get discount by code
POST /discounts/cancel — Cancel discounts
PUT /discounts/combine — Configure which discount types can be combined
POST /discounts/non-automatic — Create non‑automatic discount
PUT /discounts/non-automatic/{id} — Update non‑automatic discount
POST /discounts/restart — Restart discount
GET /discounts/{id} — Get discount
DELETE /discounts/{id} — Delete discount
- Collections
POST /collections/async — Asynchronously create a smart collection
GET /collections/async-task/{id} — Get collection async task
PATCH /collections/{id}/smart-rule — Update smart collection rules
PATCH /collections/{id}/smart-rule/async — Asynchronously update smart collection rules
Changes (non‑breaking)
DELETE /products — Delete product (new method on existing path).
Removed without replacement
The following endpoints have been removed and have no direct replacement:
POST /coupons/receive — Receive coupon
GET /discount_flash_sales — List discount flash sales
GET /discount_rebates — List discount rebates
GET /popups — List popups
GET /price_rules/count — Get price rule count
POST /price_rules/{price_rule_id}/discount_codes/batch — Batch create discount codes
GET /salespops/config — Get sales pop config
Migration
- Price rules to discounts: Replace all calls to
/price_rules and /discount_codes with the corresponding /discounts endpoints listed in the Breaking changes table. Note that the new API requires distinguishing between automatic and non‑automatic discounts.
- Coupon listing: If your application relied on
GET /coupons to list coupons, use the new GET /discounts endpoint (which includes all discount types) or adopt the individual coupon retrieval via GET /coupons/{id}.
- Batch discount code creation: The batch endpoint is removed. Create discounts individually using
POST /discounts/non-automatic.
- Count endpoint: Use pagination (page/limit) on
GET /discounts instead of the removed /price_rules/count.
Schema & behavior
Field-level changes are not listed in this changelog. For detailed request/response schemas and behavior changes, refer to the API reference.
v202506
Version info
| Field | Value |
|---|
| Released | TBD |
| Status | Supported |
| API prefix | /openapi/2025-06/ |
| Previous | 202201 |
| Sunset | TBD |
| API reference | v202506 API Reference |
Summary
- Consolidated data analysis – Legacy data endpoints are replaced with a unified
/data-analysis API offering granular insights by SKU, SPU, landing page, and UTM.
- Modern inventory management – Full CRUD for inventory items and levels, plus location management with priority and deactivation support.
- Simplified payment & settlement – All
shoplazza-payment endpoints are now version‑prefixed, providing consistent access to balances, disputes, payouts, refunds, and settlements.
- Streamlined resource paths – Key resources (
orders, customers, procurements, script_tags, metafields) adopt cleaner, parameter‑consistent paths.
- New capabilities – App proxies, articles & blogs, gift card batch creation, theme file versioning, and advanced shipping schema management are now available.
Breaking changes
Carrier Services
- The
POST /carrier_services/ (with trailing slash) endpoint is removed. Use the new POST /carrier_services without trailing slash.
| Before | After |
|---|
POST /{ver}/carrier_services/ | POST /{ver}/carrier_services |
Data Analysis
- The legacy
GET /data/analysis, GET /data/count, GET /data/query, GET /data/task, and GET /data/tasks endpoints are removed without direct replacement. Use the new Data Analysis API instead.
| Before | After |
|---|
GET /{ver}/data/analysis | POST /{ver}/data-analysis (and related sub‑endpoints) |
GET /{ver}/data/query | POST /{ver}/data-analysis (and sub‑endpoints) |
GET /{ver}/data/task | POST /{ver}/data-analysis (and sub‑endpoints) |
GET /{ver}/data/tasks | POST /{ver}/data-analysis (and sub‑endpoints) |
GET /{ver}/data/count | (no replacement) |
Files
- The
GET method on /{ver}/file/{file_uri} is removed.
| Before | After |
|---|
GET /{ver}/file/{file_uri} | Use GET /{ver}/file/detail/{file_uri} |
Inventory & Locations
- The
GET /{ver}/statistics/inventory/cost_price and GET /{ver}/statistics/inventory/loss_quantity endpoints are removed. Use the new Inventory Items and Inventory Levels endpoints.
| Before | After |
|---|
GET /{ver}/statistics/inventory/cost_price | GET /{ver}/inventory_items (and related) |
GET /{ver}/statistics/inventory/loss_quantity | GET /{ver}/inventory_items (and related) |
Orders & Customers
- All order and customer sub‑endpoints now use
{order_id} and {customer_id} instead of {id}.
| Before | After |
|---|
GET/PUT/DELETE /{ver}/orders/{id} | GET/PUT/DELETE /{ver}/orders/{order_id} |
POST /{ver}/orders/{id}/cancel | POST /{ver}/orders/{order_id}/cancel |
POST /{ver}/orders/{id}/payment/success | POST /{ver}/orders/{order_id}/payment/success |
GET/POST /{ver}/orders/{id}/refund | GET/POST /{ver}/orders/{order_id}/refund |
GET/POST /{ver}/orders/{id}/transactions | GET /{ver}/orders/{order_id}/transactions |
GET /{ver}/orders/{id}/risks | Now GET /{ver}/orders/{order_id}/risks (no change in path) |
GET/PUT /{ver}/customers/{id} | GET/PUT /{ver}/customers/{customer_id} |
Payment App Callbacks
- The
POST /payments_apps/complete_callbacks and POST /payments_apps/notify_callbacks endpoints are removed. Use the new POST /payments_apps/configure for configuration; callback handling may be replaced by webhooks.
| Before | After |
|---|
POST /{ver}/payments_apps/complete_callbacks | (no direct replacement) |
POST /{ver}/payments_apps/notify_callbacks | (no direct replacement) |
Price Rules
- The
DELETE method on /{ver}/price_rules/{price_rule_id}/discount_codes is removed. Use DELETE /{ver}/price_rules/{price_rule_id}/discount_codes/{discount_code_id} to delete a single discount code.
| Before | After |
|---|
DELETE /{ver}/price_rules/{price_rule_id}/discount_codes | DELETE /{ver}/price_rules/{price_rule_id}/discount_codes/{discount_code_id} |
Procurements & Stock Management
- All procurement endpoints are moved from
/center/procurements and direct /procurements to a unified /procurements/{procurement_id} pattern.
| Before | After |
|---|
GET /{ver}/center/procurements | GET /{ver}/procurements/{procurement_id} (and list via search) |
GET /{ver}/center/procurements/{procurement_id} | GET /{ver}/procurements/{procurement_id} |
GET /{ver}/center/procurements/{procurement_id}/items | GET /{ver}/procurements/{procurement_id}/items |
GET /{ver}/procurements/{id} | GET /{ver}/procurements/{procurement_id} |
PUT /{ver}/procurements/{id} | PUT /{ver}/procurements/{procurement_id} |
PATCH /{ver}/procurements/{id}/cancel | PATCH /{ver}/procurements/{procurement_id}/cancel |
GET/POST/DELETE /{ver}/procurements/{id}/items | GET/PUT/POST/DELETE /{ver}/procurements/{procurement_id}/items |
PUT /{ver}/procurments/{id}/items (note typo) | PUT /{ver}/procurements/{procurement_id}/items |
PATCH /{ver}/procurements/{id}/receive | PATCH /{ver}/procurements/{procurement_id}/receive |
GET /{ver}/center/stock_adjust_orders | (use Inventory Levels) |
GET /{ver}/center/stock_adjust_orders/{id} | (use Inventory Levels) |
GET /{ver}/center/stock_adjust_orders/{id}/items | (use Inventory Levels) |
GET /{ver}/center/transfer_orders | (use Inventory Levels) |
GET /{ver}/center/transfer_orders/{id} | (use Inventory Levels) |
GET /{ver}/center/transfer_orders/{id}/items | (use Inventory Levels) |
Recurring Application Charges
- The path now uses
{charge_id} instead of {recurring_charge_id}.
| Before | After |
|---|
PUT /{ver}/recurring_application_charges/{recurring_charge_id}/customize | PUT /{ver}/recurring_application_charges/{charge_id}/customize |
GET/POST /{ver}/recurring_application_charges/{recurring_charge_id}/usage_charge | GET/POST /{ver}/recurring_application_charges/{charge_id}/usage_charge |
GET /{ver}/recurring_application_charges/{recurring_charge_id}/usage_charge/{usage_charge_id} | GET /{ver}/recurring_application_charges/{charge_id}/usage_charge/{usage_charge_id} |
- The old
script_tags_new endpoints are removed. Use the new /script_tags endpoints (without _new).
| Before | After |
|---|
GET/POST /{ver}/script_tags_new | GET/POST /{ver}/script_tags |
GET /{ver}/script_tags_new/count | GET /{ver}/script_tags/count |
GET/PUT/DELETE /{ver}/script_tags_new/{id} | GET/PUT/DELETE /{ver}/script_tags/{script_tag_id} |
- Metafield paths are restructured under
/metafields/{owner_resource}/{owner_id}. Shop‑level metafields are now under /metafields-shop.
| Before | After |
|---|
GET/POST /{ver}/{resource}/{resource_id}/metafields | GET/POST /{ver}/metafields/{owner_resource}/{owner_id} |
GET /{ver}/{resource}/{resource_id}/metafields/count | GET /{ver}/metafields/{owner_resource}/{owner_id}/count |
GET/PATCH/DELETE /{ver}/{resource}/{resource_id}/metafields/{id} | GET/PATCH/DELETE /{ver}/metafields/{owner_resource}/{owner_id}/{id} |
| (no shop metafields in old version) | GET/POST /{ver}/metafields-shop (new) |
Areas
- The area endpoint now uses
{country} instead of {country_code} and adds POST/DELETE support.
| Before | After |
|---|
GET /{ver}/areas/country/{country_code}/province | GET /{ver}/areas/country/{country}/province |
Discount Flash Sales
- Endpoint renamed from
discount_flashsales to discount_flash_sales.
| Before | After |
|---|
GET /{ver}/discount_flashsales | GET /{ver}/discount_flash_sales |
Themes
- Several theme endpoints are removed. Use the new theme versioning and file management endpoints.
| Before | After |
|---|
POST /{ver}/themes/upload | POST /{ver}/themes/{theme_id}/upgrade (for upgrades) |
POST /{ver}/themes/{theme_id}/doc-asset | PUT /{ver}/themes/{theme_id}/doc-rename (for file management) |
GET /{ver}/themes/{theme_id}/download | GET /{ver}/themes/task/{task_id} (for theme task status) |
Tracking
GET /{ver}/tracking-codes is removed. Use the new /tracking/carriers endpoints.
| Before | After |
|---|
GET /{ver}/tracking-codes | GET /{ver}/tracking/carriers (and /detect) |
Other Removals
GET /{ver}/salespops/datagraph is removed without replacement.
GET /{ver}/orders/after_sales_list is removed. Use GET /{ver}/orders/post_sales.
Additions
- App Proxies –
GET/POST /{ver}/app-proxies, GET /{ver}/app-proxies/count, GET/DELETE /{ver}/app-proxies/{id}
- Application Charges –
GET /{ver}/application_charges/{charge_id}/transactions
- Areas –
POST/DELETE /{ver}/areas/country/{country}/province, GET /{ver}/areas/{code}/children
- Articles & Blogs – Full CRUD for
/articles and /blogs (list, create, get, update, delete, count, authors)
- Categories –
GET /{ver}/categories
- Collects –
POST /{ver}/collects/batch
- Data Analysis –
POST /{ver}/data-analysis, /data-analysis/land-page, /data-analysis/sku, /data-analysis/spu, /data-analysis/utm
- Discount Flash Sales –
GET /{ver}/discount_flash_sales
- Files –
GET /{ver}/file/detail/{file_uri}
- Gift Cards –
POST /{ver}/gift_cards/batch
- Inventory – Full CRUD for
/inventory_items and /inventory_levels, plus /inventory_items/variant, /inventory_items/{inventory_item_id}, /inventory_levels/set
- Locations – Management endpoints: list, count, deactivate, default, priority, get by ID, list inventory levels per location
- Metafields – Shop‑level (
/metafields-shop) and resource‑level (/metafields/{owner_resource}/{owner_id}) with CRUD and count
- OAuth –
GET /{ver}/oauth/access_scopes
- Orders –
GET /{ver}/orders/post_sales
- Pages –
POST /{ver}/pages/details, DELETE /{ver}/pages/store-pages/batch, GET /{ver}/pages/store-pages/info
- Payment –
GET /{ver}/payment/channels
- Payment Apps –
POST /{ver}/payments_apps/configure
- Price Rules –
POST /{ver}/price_rules/{price_rule_id}/discount_codes/batch
- Procurements – Added methods
PUT and merge of /items (now includes batch update)
- Recurring Application Charges –
GET /{ver}/recurring_application_charges/{charge_id}/transactions
- Script Tags – Replaced
script_tags_new with /script_tags
- Shipping –
POST /{ver}/shipping-lines/available-lines, GET/POST /{ver}/shipping-schemas/general, POST /{ver}/shipping-schemas/shipping-zone, PUT/DELETE /{ver}/shipping-schemas/shipping-zone/{id}
- Shoplazza Payment – Added
GET /{ver}/shoplazza-payment/balance and GET /{ver}/shoplazza-payment/balance/details
- Themes –
GET /{ver}/themes/task/{task_id}, PUT /{ver}/themes/{theme_id}/doc-rename, multiple version‑related endpoints
- Tracking –
GET /{ver}/tracking/carriers, GET /{ver}/tracking/carriers/detect
- Transactions –
GET /{ver}/transactions/{transaction_id}
Changes
The following endpoints have new methods added without breaking existing calls:
POST /{ver}/carrier_services – New endpoint for creating a carrier service.
GET /{ver}/orders/{order_id}/risks – New method to retrieve order risk information.
DELETE /{ver}/pages/{id} – New method to delete a page.
DELETE /{ver}/price_rules/{price_rule_id}/discount_codes/{discount_code_id} – New method to delete a single discount code.
Removed without replacement
The following endpoints have been removed and no direct replacement is provided:
GET /{ver}/data/count
GET /{ver}/orders/after_sales_list
GET /{ver}/salespops/datagraph
GET /{ver}/statistics/inventory/cost_price
GET /{ver}/statistics/inventory/loss_quantity
POST /{ver}/themes/upload
POST /{ver}/themes/{theme_id}/doc-asset
GET /{ver}/themes/{theme_id}/download
POST /{ver}/payments_apps/complete_callbacks
POST /{ver}/payments_apps/notify_callbacks
Migration
-
Path & parameter updates – Update all requests to use the new parameter names ({order_id}, {customer_id}, {procurement_id}, {charge_id}, {script_tag_id}, etc.) and the new paths as shown in the Breaking changes tables. Remove the old /center/ prefix from procurement and stock endpoints.
-
Data analysis – Replace calls to the removed GET /data/* endpoints with the new POST /data-analysis endpoints. Use the appropriate sub‑endpoint for your analysis type (SPU, SKU, landing page, UTM). The old GET /data/count has no replacement.
-
Inventory statistics – The statistics/inventory endpoints are gone. Query inventory data using /inventory_items, /inventory_levels, and /locations.
-
Payment app callbacks – If you used complete_callbacks or notify_callbacks, migrate to the POST /payments_apps/configure endpoint and consider using webhooks for callback handling.
-
Theme uploads & downloads – Theme upload/download are removed. Use /themes/{theme_id}/upgrade to upgrade a theme and the new file management endpoints for asset operations.
-
Discount codes – Batch deletion of discount codes is no longer supported via DELETE /discount_codes. Delete individual codes using DELETE /discount_codes/{discount_code_id} or use the new POST /discount_codes/batch.
-
Metafields – Migrate from the dynamic /{resource}/{resource_id}/metafields pattern to the dedicated /metafields/{owner_resource}/{owner_id} paths. Shop metafields now have their own endpoints under /metafields-shop.
Schema & behavior
Field‑level changes are not listed in this changelog. For details on request/response schemas, refer to the API reference.
v202201
Version info
| Released | Status | API prefix | Previous | Sunset | API reference |
|---|
| TBD | Supported | /openapi/2022-01/ | — | TBD | /api/202201/openapi |
Summary
- This version establishes the initial changelog baseline for the 2022‑01 API.
- The API prefix is
/openapi/2022-01/, covering a total of 150 endpoints.
- All existing endpoints in this version remain unchanged; no prior version is available for comparison.
- This baseline serves as the reference point for all future breaking changes, additions, and removals.
- No client‑affecting changes exist in this version; it is provided solely to anchor the changelog history.