Track breaking changes, new endpoints, and removed endpoints between Shoplazza OpenAPI versions. Versions follow the vYYYYMM naming convention.
v202601
Version info
| Field | Value |
|---|
| Released | TBD |
| Status | Current |
| API prefix | /openapi/2026-01/ |
| Previous | /openapi/2025-06/ |
| Sunset | TBD |
| API reference | /api/202601/openapi |
Summary
- Discount management is consolidated under a new
/discounts API, replacing all price_rules and discount_codes endpoints.
- Coupon endpoints are restructured: the
POST /coupons/receive endpoint is removed, and get for /coupons is replaced by a POST method. A dedicated coupons/{id} resource provides read and update.
- The
popups and salespops/config endpoints are removed without replacement.
- A
DELETE method is added to /products, enabling product deletion.
- A new
PATCH method on /collections/{id}/smart-rule allows updating smart collection rules.
Breaking changes
Discounts (Price Rules & Discount Codes)
All endpoints under /price_rules and /discount_codes are replaced by the new /discounts API. The following table maps the old endpoints to their new counterparts.
| Before (old endpoint) | After (new endpoint) |
|---|
GET /price_rules | GET /discounts |
POST /price_rules | POST /discounts/non-automatic or POST /discounts/automatic |
GET /price_rules/{id} | GET /discounts/{id} |
PUT /price_rules/{id} | PUT /discounts/non-automatic/{id} or PUT /discounts/automatic/{id} |
DELETE /price_rules/{id} | DELETE /discounts/{id} |
GET /price_rules/{id}/discount_codes | GET /discounts (list) or GET /discounts/by-code/{code} |
POST /price_rules/{id}/discount_codes | POST /discounts/non-automatic or POST /discounts/automatic |
POST /price_rules/{id}/discount_codes/batch | POST /discounts/batch-delete |
GET /price_rules/count | (no direct replacement) |
GET /discount_codes | GET /discounts |
GET /discount_codes/lookup | GET /discounts/by-code/{code} |
GET /price_rules/{id}/discount_codes/{code_id} | GET /discounts/{id} |
PUT /price_rules/{id}/discount_codes/{code_id} | PUT /discounts/non-automatic/{id} or PUT /discounts/automatic/{id} |
DELETE /price_rules/{id}/discount_codes/{code_id} | DELETE /discounts/{id} |
Additionally, GET /discount_flash_sales and GET /discount_rebates are removed without replacement.
Coupons
GET /coupons is replaced by POST /coupons. Existing integrations that relied on the GET method must now use POST (with the appropriate request body) to create coupons.
POST /coupons/receive is removed without replacement.
Additions
Collections
PATCH /collections/{id}/smart-rule — Update smart collection rules
Coupons
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 — Update discount combine
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
Changes (non-breaking)
DELETE /products — Delete products (new method added; existing GET and POST remain unchanged)
Removed without replacement
The following endpoints have been removed with no direct replacement in this version:
POST /coupons/receive
GET /discount_flash_sales
GET /discount_rebates
GET /popups
GET /salespops/config
Migration
- Replace price rule and discount code calls: Update all integrations that use
/price_rules or /discount_codes paths to use the corresponding /discounts endpoints as shown in the Breaking changes table.
- Update coupon listing: Replace
GET /coupons with POST /coupons to create coupons; use the new GET /coupons/{id} to retrieve a single coupon.
- Remove deprecated calls: Delete any references to
POST /coupons/receive, GET /discount_flash_sales, GET /discount_rebates, GET /popups, and GET /salespops/config.
- Utilise new capabilities: Use the new
DELETE /products endpoint for product deletion, and PATCH /collections/{id}/smart-rule for smart collection rule updates.
Schema & behavior
Field-level changes in request or response schemas are not listed in this changelog. Refer to the API reference for complete schema details.
v202506
Version info
| Field | Value |
|---|
| Released | TBD |
| Status | Supported |
| API prefix | /openapi/2025-06/ |
| Previous | /openapi/2022-01/ |
| Sunset | TBD |
| API reference | /api/openapi |
Summary
- Resource path restructuring – Many core endpoints (Orders, Customers, Procurements, Recurring Application Charges) have renamed path parameters (e.g.,
{id} → {order_id}) and updated prefixes, requiring code updates.
- New billing and payment capabilities – Added endpoints for application charge transactions and Shoplazza payment balance, expanding financial data access.
- Inventory management overhaul – Introduced dedicated inventory_items, inventory_levels, and locations endpoints, replacing legacy inventory statistics.
- Deprecation of legacy modules – Center-related (procurement/stock/transfer) endpoints and several data analysis endpoints are removed without direct replacement.
- Streamlined webhook and theme management – Script tags renamed, themes gain versioning and upgrade support, and payment app configuration is simplified.
Breaking changes
Customers
| Before | After |
|---|
GET /openapi/2022-01/customers/{id} | GET /openapi/2025-06/customers/{customer_id} |
PUT /openapi/2022-01/customers/{id} | PUT /openapi/2025-06/customers/{customer_id} |
Orders
| Before | After |
|---|
GET /openapi/2022-01/orders/{id} | GET /openapi/2025-06/orders/{order_id} |
PUT /openapi/2022-01/orders/{id} | PUT /openapi/2025-06/orders/{order_id} |
DELETE /openapi/2022-01/orders/{id} | DELETE /openapi/2025-06/orders/{order_id} |
POST /openapi/2022-01/orders/{id}/cancel | POST /openapi/2025-06/orders/{order_id}/cancel |
POST /openapi/2022-01/orders/{id}/payment/success | POST /openapi/2025-06/orders/{order_id}/payment/success |
GET /openapi/2022-01/orders/{id}/refund | GET /openapi/2025-06/orders/{order_id}/refund |
POST /openapi/2022-01/orders/{id}/refund | POST /openapi/2025-06/orders/{order_id}/refund |
GET /openapi/2022-01/orders/{id}/transactions | GET /openapi/2025-06/orders/{order_id}/transactions |
POST /openapi/2022-01/orders/{id}/transactions | Removed |
GET /openapi/2022-01/orders/{id}/risks | GET /openapi/2025-06/orders/{order_id}/risks |
GET /openapi/2022-01/orders/after_sales_list | GET /openapi/2025-06/orders/post_sales |
POST /openapi/2022-01/orders/{id}/partial_refund | Removed without replacement |
Procurements
| Before | After |
|---|
GET /openapi/2022-01/procurements/{id} | GET /openapi/2025-06/procurements/{procurement_id} |
PUT /openapi/2022-01/procurements/{id} | PUT /openapi/2025-06/procurements/{procurement_id} |
PATCH /openapi/2022-01/procurements/{id}/cancel | PATCH /openapi/2025-06/procurements/{procurement_id}/cancel |
GET /openapi/2022-01/procurements/{id}/items | GET /openapi/2025-06/procurements/{procurement_id}/items |
POST /openapi/2022-01/procurements/{id}/items | POST /openapi/2025-06/procurements/{procurement_id}/items |
DELETE /openapi/2022-01/procurements/{id}/items | DELETE /openapi/2025-06/procurements/{procurement_id}/items |
PATCH /openapi/2022-01/procurements/{id}/receive | PATCH /openapi/2025-06/procurements/{procurement_id}/receive |
PUT /openapi/2022-01/procurments/{id}/items (typo) | Replaced by PUT /openapi/2025-06/procurements/{procurement_id}/items (new method) |
Recurring Application Charges
| Before | After |
|---|
PUT /openapi/2022-01/recurring_application_charges/{recurring_charge_id}/customize | PUT /openapi/2025-06/recurring_application_charges/{charge_id}/customize |
POST /openapi/2022-01/recurring_application_charges/{recurring_charge_id}/usage_charge | POST /openapi/2025-06/recurring_application_charges/{charge_id}/usage_charge |
GET /openapi/2022-01/recurring_application_charges/{recurring_charge_id}/usage_charge | GET /openapi/2025-06/recurring_application_charges/{charge_id}/usage_charge |
GET /openapi/2022-01/recurring_application_charges/{recurring_charge_id}/usage_charge/{usage_charge_id} | GET /openapi/2025-06/recurring_application_charges/{charge_id}/usage_charge/{usage_charge_id} |
| Before | After |
|---|
POST /openapi/2022-01/script_tags_new | POST /openapi/2025-06/script_tags |
GET /openapi/2022-01/script_tags_new | GET /openapi/2025-06/script_tags |
GET /openapi/2022-01/script_tags_new/count | GET /openapi/2025-06/script_tags/count |
GET /openapi/2022-01/script_tags_new/{id} | GET /openapi/2025-06/script_tags/{script_tag_id} |
PUT /openapi/2022-01/script_tags_new/{id} | PUT /openapi/2025-06/script_tags/{script_tag_id} |
DELETE /openapi/2022-01/script_tags_new/{id} | DELETE /openapi/2025-06/script_tags/{script_tag_id} |
| Before | After |
|---|
POST /openapi/2022-01/{resource}/{resource_id}/metafields | POST /openapi/2025-06/metafields/{owner_resource}/{owner_id} |
GET /openapi/2022-01/{resource}/{resource_id}/metafields | GET /openapi/2025-06/metafields/{owner_resource}/{owner_id} |
GET /openapi/2022-01/{resource}/{resource_id}/metafields/count | GET /openapi/2025-06/metafields/{owner_resource}/{owner_id}/count |
GET /openapi/2022-01/{resource}/{resource_id}/metafields/{id} | GET /openapi/2025-06/metafields/{owner_resource}/{owner_id}/{id} |
PATCH /openapi/2022-01/{resource}/{resource_id}/metafields/{id} | PATCH /openapi/2025-06/metafields/{owner_resource}/{owner_id}/{id} |
DELETE /openapi/2022-01/{resource}/{resource_id}/metafields/{id} | DELETE /openapi/2025-06/metafields/{owner_resource}/{owner_id}/{id} |
Data Analysis
| Before | After |
|---|
GET /openapi/2022-01/data/analysis | POST /openapi/2025-06/data-analysis |
GET /openapi/2022-01/data/count | Removed (replaced by new data-analysis endpoints) |
GET /openapi/2022-01/data/query | Removed |
GET /openapi/2022-01/data/task | Removed |
GET /openapi/2022-01/data/tasks | Removed |
POST /openapi/2024-07/data-analysis/spu | POST /openapi/2025-06/data-analysis/spu (prefix change) |
Discount Flash Sales
| Before | After |
|---|
GET /openapi/2022-01/discount_flashsales | GET /openapi/2025-06/discount_flash_sales |
Areas / Province
| Before | After |
|---|
GET /openapi/2022-01/areas/country/{country_code}/province | GET /openapi/2025-06/areas/country/{country}/province |
Shoplazza Payment
All GET endpoints under /openapi/2024-07/shoplazza-payment/ are replaced by identical endpoints under /openapi/2025-06/shoplazza-payment/. No functional change, but the prefix has been updated.
| Before | After |
|---|
/openapi/2024-07/shoplazza-payment/disputes | /openapi/2025-06/shoplazza-payment/disputes |
/openapi/2024-07/shoplazza-payment/disputes/{id} | /openapi/2025-06/shoplazza-payment/disputes/{id} |
/openapi/2024-07/shoplazza-payment/payment-orders | /openapi/2025-06/shoplazza-payment/payment-orders |
/openapi/2024-07/shoplazza-payment/payment-orders/{id} | /openapi/2025-06/shoplazza-payment/payment-orders/{id} |
/openapi/2024-07/shoplazza-payment/payout/details | /openapi/2025-06/shoplazza-payment/payout/details |
/openapi/2024-07/shoplazza-payment/refunds | /openapi/2025-06/shoplazza-payment/refunds |
/openapi/2024-07/shoplazza-payment/refunds/{id} | /openapi/2025-06/shoplazza-payment/refunds/{id} |
/openapi/2024-07/shoplazza-payment/reserved-fund/details | /openapi/2025-06/shoplazza-payment/reserved-fund/details |
/openapi/2024-07/shoplazza-payment/settlements/details | /openapi/2025-06/shoplazza-payment/settlements/details |
Carrier Services
| Before | After |
|---|
POST /openapi/2022-01/carrier_services/ (trailing slash) | POST /openapi/2025-06/carrier_services (no trailing slash) |
Price Rules – Discount Codes
| Before | After |
|---|
DELETE /openapi/2022-01/price_rules/{price_rule_id}/discount_codes (removed) | DELETE /openapi/2025-06/price_rules/{price_rule_id}/discount_codes/{discount_code_id} |
GET /openapi/2022-01/tracking-codes | GET /openapi/2025-06/tracking/carriers (replacement) |
Pages
| Before | After |
|---|
DELETE /openapi/2022-07/pages/{id} | DELETE /openapi/2025-06/pages/store-pages/batch (batch delete) |
File
| Before | After |
|---|
GET /openapi/2022-01/file/{file_uri} | Removed (replaced by GET /openapi/2025-06/file/detail/{file_uri}) |
Additions
Application Charges
GET /openapi/2025-06/application_charges/{charge_id}/transactions — List one-time application charge transactions
Areas
POST /openapi/2025-06/areas/country/{country}/province — Create province
DELETE /openapi/2025-06/areas/country/{country}/province — Delete province
GET /openapi/2025-06/areas/{code}/children — List sub areas
Articles & Blogs
GET /openapi/2025-06/articles — List articles
POST /openapi/2025-06/articles — Create article
GET /openapi/2025-06/articles/authors — List authors
GET /openapi/2025-06/articles/count — Get article count
GET /openapi/2025-06/articles/{id} — Get article
PUT /openapi/2025-06/articles/{id} — Update article
DELETE /openapi/2025-06/articles/{id} — Delete article
GET /openapi/2025-06/blogs — List blogs
POST /openapi/2025-06/blogs — Create blog
GET /openapi/2025-06/blogs/count — Get blog count
GET /openapi/2025-06/blogs/{id} — Get blog
PUT /openapi/2025-06/blogs/{id} — Update blog
DELETE /openapi/2025-06/blogs/{id} — Delete blog
Categories
GET /openapi/2025-06/categories — List categories
Collects
POST /openapi/2025-06/collects/batch — Batch create collect
Data Analysis
POST /openapi/2025-06/data-analysis/land-page — Get data analysis land page
POST /openapi/2025-06/data-analysis/sku — Get data analysis by SKU
POST /openapi/2025-06/data-analysis/utm — Get data analysis UTM
Files
GET /openapi/2025-06/file/detail/{file_uri} — Get file
Gift Cards
POST /openapi/2025-06/gift_cards/batch — Batch create gift cards
Inventory
GET /openapi/2025-06/inventory_items — List inventory items
GET /openapi/2025-06/inventory_items/variant — List variant inventory items
GET /openapi/2025-06/inventory_items/{inventory_item_id} — Get inventory item
PUT /openapi/2025-06/inventory_items/{inventory_item_id} — Update inventory item
GET /openapi/2025-06/inventory_levels — List inventory levels
PUT /openapi/2025-06/inventory_levels — Update inventory level
POST /openapi/2025-06/inventory_levels — Create inventory level
DELETE /openapi/2025-06/inventory_levels — Delete inventory level
POST /openapi/2025-06/inventory_levels/set — Set inventory level
GET /openapi/2025-06/locations — List locations
GET /openapi/2025-06/locations/count — Count locations
POST /openapi/2025-06/locations/deactivate — Deactivate location
GET /openapi/2025-06/locations/default — Get default location
PUT /openapi/2025-06/locations/default — Change default location
POST /openapi/2025-06/locations/priority — Edit location priority
GET /openapi/2025-06/locations/{location_id} — Get location
GET /openapi/2025-06/locations/{location_id}/inventory_levels — List inventory levels
GET /openapi/2025-06/metafields-shop — List shop metafields
POST /openapi/2025-06/metafields-shop — Create shop metafield
GET /openapi/2025-06/metafields-shop/count — Get shop metafield count
GET /openapi/2025-06/metafields-shop/{id} — Get shop metafield
DELETE /openapi/2025-06/metafields-shop/{id} — Delete shop metafield
PATCH /openapi/2025-06/metafields-shop/{id} — Update shop metafield
OAuth
GET /openapi/2025-06/oauth/access_scopes — List access scopes
Orders
GET /openapi/2025-06/orders/post_sales — List post-sale orders
Pages
POST /openapi/2025-06/pages/details — Batch get pages
DELETE /openapi/2025-06/pages/store-pages/batch — Batch delete pages
GET /openapi/2025-06/pages/store-pages/info — Search page
Payment
GET /openapi/2025-06/payment/channels — Get list available payment channels
POST /openapi/2025-06/payments_apps/configure — Configure payment app
Price Rules
POST /openapi/2025-06/price_rules/{price_rule_id}/discount_codes/batch — Batch create discount codes
Procurements (new method)
PUT /openapi/2025-06/procurements/{procurement_id}/items — Batch update procurement items
Recurring Application Charges (new)
GET /openapi/2025-06/recurring_application_charges/{charge_id}/transactions — List recurring application charge transactions
Shipping
POST /openapi/2025-06/shipping-lines/available-lines — Get available shipping lines
GET /openapi/2025-06/shipping-schemas/general — Get general shopping schema
POST /openapi/2025-06/shipping-schemas/general — Save general shopping schema
PUT /openapi/2025-06/shipping-schemas/shipping-zone — Update shopping zone
POST /openapi/2025-06/shipping-schemas/shipping-zone — Create shopping zone
DELETE /openapi/2025-06/shipping-schemas/shipping-zone — Delete shopping zone
Shoplazza Payment (new)
GET /openapi/2025-06/shoplazza-payment/balance — Get balance
GET /openapi/2025-06/shoplazza-payment/balance/details — List balances
Themes
GET /openapi/2025-06/themes/task/{task_id} — Get theme task
PUT /openapi/2025-06/themes/{theme_id}/doc-rename — Rename theme file
GET /openapi/2025-06/themes/{theme_id}/doc/version-records — List theme file versions (all files)
GET /openapi/2025-06/themes/{theme_id}/doc/versions — List theme file versions (single file)
GET /openapi/2025-06/themes/{theme_id}/doc/versions/{version_id} — Get theme file version by ID
POST /openapi/2025-06/themes/{theme_id}/upgrade — Upgrade specific theme
Tracking
GET /openapi/2025-06/tracking/carriers — List carriers
GET /openapi/2025-06/tracking/carriers/detect — Detect carrier by tracking number
Transactions
GET /openapi/2025-06/transactions/{transaction_id} — Get app charge transaction
Removed without replacement
The following endpoints have been removed and there is no direct functional replacement in this version:
/openapi/2022-01/center/procurements (GET)
/openapi/2022-01/center/procurements/{procurement_id} (GET)
/openapi/2022-01/center/procurements/{procurement_id}/items (GET)
/openapi/2022-01/center/stock_adjust_orders (GET)
/openapi/2022-01/center/stock_adjust_orders/{stock_adjust_order_id}/items (GET)
/openapi/2022-01/center/stock_adjust_orders/{stock_adjust_orders_id} (GET)
/openapi/2022-01/center/transfer_orders (GET)
/openapi/2022-01/center/transfer_orders/{transfer_order_id} (GET)
/openapi/2022-01/center/transfer_orders/{transfer_order_id}/items (GET)
/openapi/2022-01/orders/{id}/partial_refund (POST)
/openapi/2022-01/salespops/datagraph (GET)
/openapi/2022-01/statistics/inventory/cost_price (GET)
/openapi/2022-01/statistics/inventory/loss_quantity (GET)
/openapi/2022-01/themes/upload (POST)
/openapi/2022-01/themes/{theme_id}/doc-asset (POST)
/openapi/2022-01/themes/{theme_id}/download (GET)
/openapi/2022-01/payments_apps/complete_callbacks (POST)
/openapi/2022-01/payments_apps/notify_callbacks (POST)
Migration
-
Update all path parameters – Replace {id} with {order_id}, {customer_id}, {procurement_id}, {charge_id}, and {script_tag_id} as shown in the Breaking changes tables. Update your API client configuration to use the new base URL /openapi/2025-06/.
-
Switch to new data analysis endpoints – Replace the previous GET /data/analysis, /data/count, /data/query, /data/task, and /data/tasks with the new POST /data-analysis and its sub-resources (/land-page, /sku, /spu, /utm).
-
Adopt the new metafield path pattern – Instead of /{resource}/{resource_id}/metafields, use /metafields/{owner_resource}/{owner_id}. Owner resources are now explicitly passed as path parameters.
-
Replace tracking codes and carrier services – Migrate from GET /tracking-codes to GET /tracking/carriers and POST /tracking/carriers/detect. For carrier services, ensure the trailing slash is removed from the endpoint path.
-
Handle removed endpoints – If you relied on center inventory operations, partial refund, salespop analytics, or theme upload/download, evaluate the new inventory management endpoints or consider alternative workflows. No direct replacement is provided for these.
Schema & behavior
Field-level changes are not listed in this changelog. For detailed request and response schemas, refer to the /api/openapi. Note that the POST /orders/{order_id}/transactions endpoint has been removed; use the new /transactions/{transaction_id} endpoint for retrieving transaction details. Also, the DELETE method on the discount codes list endpoint has been removed; use the per-code delete endpoint instead.
v202201
Version info
| Released | Status | API prefix | Previous | Sunset | API reference |
|---|
| TBD | Supported | /openapi/2022-01/ | N/A | TBD | /api/202201/openapi |
Summary
- This version is the first release of the Shoplazza OpenAPI and serves as the baseline for future changelogs.
- No breaking changes, additions, or removals exist in this version.
- All endpoints documented in this version are considered current and stable.
- Developers should refer to this baseline when upgrading to newer versions.