API Changelog
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 newPOST /couponsendpoint 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 /couponsis added (see Additions).
Additions
The following new endpoints are introduced:
- Coupons
POST /coupons— Create couponGET /coupons/{id}— Get couponPUT /coupons/{id}— Update coupon
- Discounts
GET /discounts— List discountsPOST /discounts/automatic— Create automatic discountPUT /discounts/automatic/{id}— Update automatic discountPOST /discounts/batch-delete— Batch delete discountsGET /discounts/by-code/{discount_code}— Get discount by codePOST /discounts/cancel— Cancel discountsPUT /discounts/combine— Configure which discount types can be combinedPOST /discounts/non-automatic— Create non‑automatic discountPUT /discounts/non-automatic/{id}— Update non‑automatic discountPOST /discounts/restart— Restart discountGET /discounts/{id}— Get discountDELETE /discounts/{id}— Delete discount
- Collections
POST /collections/async— Asynchronously create a smart collectionGET /collections/async-task/{id}— Get collection async taskPATCH /collections/{id}/smart-rule— Update smart collection rulesPATCH /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 couponGET /discount_flash_sales— List discount flash salesGET /discount_rebates— List discount rebatesGET /popups— List popupsGET /price_rules/count— Get price rule countPOST /price_rules/{price_rule_id}/discount_codes/batch— Batch create discount codesGET /salespops/config— Get sales pop config
Migration
- Price rules to discounts: Replace all calls to
/price_rulesand/discount_codeswith the corresponding/discountsendpoints 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 /couponsto list coupons, use the newGET /discountsendpoint (which includes all discount types) or adopt the individual coupon retrieval viaGET /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 /discountsinstead 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-analysisAPI 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-paymentendpoints 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 newPOST /carrier_serviceswithout 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, andGET /data/tasksendpoints 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
GETmethod 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_priceandGET /{ver}/statistics/inventory/loss_quantityendpoints 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_callbacksandPOST /payments_apps/notify_callbacksendpoints are removed. Use the newPOST /payments_apps/configurefor 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
DELETEmethod on/{ver}/price_rules/{price_rule_id}/discount_codesis removed. UseDELETE /{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/procurementsand direct/procurementsto 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} |
Script Tags
- The old
script_tags_newendpoints are removed. Use the new/script_tagsendpoints (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} |
Metafields
- 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_flashsalestodiscount_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-codesis removed. Use the new/tracking/carriersendpoints.
| Before | After |
|---|---|
GET /{ver}/tracking-codes | GET /{ver}/tracking/carriers (and /detect) |
Other Removals
GET /{ver}/salespops/datagraphis removed without replacement.GET /{ver}/orders/after_sales_listis removed. UseGET /{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
/articlesand/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_itemsand/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
PUTand merge of/items(now includes batch update) - Recurring Application Charges –
GET /{ver}/recurring_application_charges/{charge_id}/transactions - Script Tags – Replaced
script_tags_newwith/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/balanceandGET /{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/countGET /{ver}/orders/after_sales_listGET /{ver}/salespops/datagraphGET /{ver}/statistics/inventory/cost_priceGET /{ver}/statistics/inventory/loss_quantityPOST /{ver}/themes/uploadPOST /{ver}/themes/{theme_id}/doc-assetGET /{ver}/themes/{theme_id}/downloadPOST /{ver}/payments_apps/complete_callbacksPOST /{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 newPOST /data-analysisendpoints. Use the appropriate sub‑endpoint for your analysis type (SPU, SKU, landing page, UTM). The oldGET /data/counthas no replacement. -
Inventory statistics – The
statistics/inventoryendpoints are gone. Query inventory data using/inventory_items,/inventory_levels, and/locations. -
Payment app callbacks – If you used
complete_callbacksornotify_callbacks, migrate to thePOST /payments_apps/configureendpoint and consider using webhooks for callback handling. -
Theme uploads & downloads – Theme upload/download are removed. Use
/themes/{theme_id}/upgradeto 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 usingDELETE /discount_codes/{discount_code_id}or use the newPOST /discount_codes/batch. -
Metafields – Migrate from the dynamic
/{resource}/{resource_id}/metafieldspattern 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.