Merchant API: freeze products
About this article
This article explains how to freeze and unfreeze products via the Merchant API, what freezing does to your stock on connected channels, and when to freeze a product instead of deleting it.
Table of contents
Check whether a product is frozen
How freezing interacts with other features
Introduction
Freezing sets a product's stock to zero across all connected channels, which makes the product unavailable for sale without removing it from your product selection. Freezing gives you a window to investigate and fix an issue, and it is fully reversible: your stock value is preserved on ChannelEngine and reinstated when you unfreeze.
Common reasons to freeze a product:
- The stock has been lost or damaged.
- The stock or price is shown incorrectly on one or more marketplaces.
- The product content is wrong, or there is a compliance or fulfillment issue.
You can also freeze products in the ChannelEngine web interface, under Products, Products. See ChannelEngine: freeze products.
Overview
Refer to the flowchart below to visualize what happens between your system, ChannelEngine, and the channels when you freeze and unfreeze a product.
Requirements
- A ChannelEngine account with a Merchant API key, found under Settings, Merchant API keys, and your base API URL:
https://{your-subdomain}.channelengine.net/api. - The Merchant product number of each product you want to freeze or unfreeze.
Available API endpoints
-
Freeze or unfreeze products:
POST /v2/products/freeze
Use this endpoint to freeze or unfreeze one or more products in a single call. -
Check the freeze state:
GET /v2/products
Use this endpoint to retrieve your products and read theIsFrozenproperty.
Freeze a product
Send a POST request to /v2/products/freeze with an array of products. For each product, provide the Merchant product number, the action, and the reason for it. The reason is stored in the product's freeze history, so make it specific enough to be useful later.
[
{
"MerchantProductNo": "SKU-001",
"Reason": "Incorrect stock causing overselling on marketplace X",
"Action": "FREEZE"
}
]ChannelEngine then pushes a stock of 0 to all connected channels. The product stays visible on ChannelEngine and its data is unchanged.
Unfreeze a product
Once you have fixed the issue, send the same request with the unfreeze action. ChannelEngine restores the stock quantity held on ChannelEngine and resumes normal exports.
[
{
"MerchantProductNo": "SKU-001",
"Reason": "Stock discrepancy resolved",
"Action": "UNFREEZE"
}
]Check whether a product is frozen
Call GET /v2/products and read the IsFrozen property in the response body. When it is true, the product is frozen and its stock is exported as 0.
GET /v2/products?MerchantProductNoList=SKU-001
In the web interface, frozen products carry a snowflake icon, and you can filter for them with the Frozen products toggle under Additional filters. The Freeze history on the product details page shows each freeze and unfreeze action with its reason.
IsFrozen in a POST /v2/products payload when you create or update a product. To freeze an existing product, use POST /v2/products/freeze: it is faster, does not require the full product payload, and avoids overwriting other fields.
Freeze, zero stock, or delete
Refer to the table to learn the difference between freezing a product, setting its stock to zero, and deleting it.
| Action | What happens | Use it when |
| Freeze | ChannelEngine exports a stock of 0 while keeping your real stock value. Unfreezing restores it automatically. | The issue is temporary, and you want a clean rollback. |
| Set stock to 0 | Your stock value is overwritten. You need to remember the original value and restore it yourself. | The product is genuinely out of stock. |
| Delete | The product is deactivated and removed from channel exports. The Merchant product number cannot be reused. | The product is permanently discontinued. |
How freezing interacts with other features
- Stock limits and buffers. Freezing takes precedence over other stock settings, such as Stock limit and Stock buffer. Those configurations are ignored and the stock is set to 0 across all connected marketplaces.
- Product bundles. A bundle is a sellable product, so you can freeze it. Because a bundle's availability depends on its parts, freezing one component product also makes the bundle unavailable.
- Marketplace fulfillment. Freezing sets your merchant-fulfilled stock to 0. Marketplace-fulfilled stock, such as FBA, WFS, or ZFS, is managed by the marketplace and stays available for sale.
Common issues
| Issue | Cause | Solution |
| The product is still for sale after freezing. | The marketplace has not processed the offer update yet. | Allow 30 to 60 minutes, then check the offer status on ChannelEngine. |
| The product is still for sale on a marketplace that fulfills it. | Freezing only affects merchant-fulfilled stock, not the marketplace-fulfilled stock. | Adjust the listing directly with the marketplace. |
| Stock is not restored after unfreezing. | A stock update was sent while the product was frozen, replacing the stored value. | Resend the correct stock via the PUT /v2/offer/stock endpoint. |
| A product is frozen and nobody knows why. | The reason given at freeze time was too vague. | Provide specific reasons for freezing in future calls. |
| A bundle is unavailable although it is not frozen. | One of its products is frozen. | Check the freeze state of every part of the bundle. |
Next steps
- ChannelEngine: freeze products: freeze and unfreeze products in the web interface.
- Merchant API: main resources: update stock and price via the Offers endpoints.
Comments
0 comments
Article is closed for comments.