You can use the Merchant API to manage local (in-store) and regional inventory.

## Requests

Use the following request URL format for the [Merchant Inventories API](https://developers.google.com/merchant/api/guides/inventories/overview):

    POST https://merchantapi.googleapis.com/inventories/v1/{PARENT}/regionalInventories

    POST https://merchantapi.googleapis.com/inventories/v1/{PARENT}/localInventories

<var translate="no">{PARENT}</var> will have the format:
accounts/<var translate="no">{ACCOUNT_ID}</var>/products/<var translate="no"> {PRODUCT_ID}</var>.

> [!NOTE]
> **Note:** In Merchant API, the Merchant Inventories API and its related endpoints are referred using the plural form "inventories".

Here's a sample comparison for local inventory requests:

| Item | Content API for Shopping | Merchant API |
|---|---|---|
| **URL** | https://shoppingcontent.googleapis.com/content/v2.1/<var translate="no">{MERCHANT_ID}</var>/products/<var translate="no">{PRODUCT_ID}</var>/localinventory | https://merchantapi.googleapis.com/inventories/v1/<var translate="no">{PARENT}</var>/localInventories |
| **Identifiers** | `{MERCHANT_ID}/products/{PRODUCT_ID}` | `{NAME}` |

## Methods

The Merchant API introduces two new methods for inventory management:

- `list`: Lets you list local and regional inventory for your products.
- `delete`: Lets you delete local and regional inventory for your products.

Here's a comparison of the available methods to manage inventories:

| Method | Content API for Shopping | Merchant API |
| `customBatch` | Yes | No |
| `insert` | Yes | Yes |
| `list` | No | Yes |
| `delete` | No | Yes |
|---|:---:|:---:|

## Resources

Here's what's changed for local and regional inventories:

| Content API for Shopping | Merchant API | Description |
|---|---|---|
| Not supported | `name:string` | The field differentiates `LocalInventory` and `RegionalInventory` resources within a `product`. The Content API for Shopping identifies local inventory by `storeCode` and `productId`, and regional inventory by `regionId` and `productId`. |
| Not supported | `account:string` | Added new field to identify the Merchant Center account the `product` and `LocalInventory` belong to. |
| ` price: { https://developers.google.com/merchant/api/guides/compatibility/overview#price } ` | `price: {` ` https://developers.google.com/merchant/api/guides/compatibility/overview#price` `}` | `https://developers.google.com/merchant/api/guides/compatibility/overview#price` definition has changed. |
| `salePrice: {` ` https://developers.google.com/merchant/api/guides/compatibility/overview#price` `}` | `salePrice: {` ` https://developers.google.com/merchant/api/guides/compatibility/overview#price` `}` | `https://developers.google.com/merchant/api/guides/compatibility/overview#price` definition has changed. |
| `salePriceEffectiveDate: string` | `salePriceEffectiveDate: {` ` object (TimePeriod)` ` }` | `salePriceEffectiveDate` uses the new `TimePeriod` object in the Merchant Inventories API. |
| `kind:string` | Not supported | The API doesn't support `kind`. |
| `quantity:string` | `quantity:integer` | `quantity` takes an integer instead of string in the local inventory. |
| Not supported | `localShippingLabel:string` | Added new field to identify the merchant center account the `product` and `regionalInventory` belong to. |
| `"regionId": string` | `"region": string` | `regionID` is now called `region` for the regional inventory. |
| `string` type fields with defined set of values | `enum` type fields with defined set of values | Fields within inventory attributes with defined set of values (for example `availability`, `pickupMethod`) are now `enum` type. |

> [!NOTE]
> **Note:** The `channel` field within product identifier is no longer present in Merchant API. Products with `LOCAL` channel in Content API for Shopping should instead set the `legacy_local` field to true.