Actualización de precios y disponibilidad del producto

Nota:

La API de inventario solo está disponible para los participantes piloto cerrados. La API y la documentación están sujetas a cambios.

Si todo lo que necesita hacer es actualizar los precios y la disponibilidad de un producto en la tienda de Bing Merchant Center (BMC), debe usar el recurso Inventario en lugar del recurso Producto . Con el recurso Producto, debe proporcionar los detalles completos del producto, pero el recurso Inventario le permite especificar solo el precio y la disponibilidad.

Actualización de un solo producto

Para actualizar un solo producto, use la /bmc/{bmcMerchantId}/inventory/{storeCode}/products/{productUniqueId} plantilla en una solicitud HTTP POST. Establezca {bmcMerchantId} en el identificador de la tienda, {storeCode} en en línea y {productUniqueId} en el identificador completo del producto.

El cuerpo de la solicitud es un objeto Product que solo incluye los siguientes campos:

  • Precio
  • disponibilidad
  • salePrice
  • salePriceEffectiveDate

Los price campos y availability son necesarios; se produce un error en la llamada si no se especifican ambos campos. y salePricesalePriceEffectiveDate son opcionales. Si no los especifica, el precio de venta actual del producto y los valores de fecha efectiva se quitan de la oferta.

A continuación se muestra un ejemplo de solicitud POST.

POST https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/1234/inventory/online/products/online:en:US:5678 HTTP/1.1
AuthenticationToken: EwAAA3hl...
DeveloperToken: 0417...
Content-Type: application/json
Host: content.api.bingads.microsoft.com
Content-Length: 73

{
    "availability":"out of stock",
    "price":{
        "currency":"USD",
        "value":1234.0
    }
}

Si la solicitud se realiza correctamente, devuelve el código de estado 200 y el URI del producto actualizado en el encabezado Location.

HTTP/1.1 200 OK
Content-Type: application/json
Location: https://content.api.bingads.microsoft.com/shopping.svc/v9.1/bmc/1234/products/online:en:US:5678
WebRequestActivityId: e2c53946-e18c-4302-a40a-6d174429574a
Date: Fri, 09 Nov 2018 20:34:35 GMT
Content-Length: 46

{
  "kind": "content#inventorySetResponse"
}

Y si se produce un error en la respuesta, la solicitud devuelve el código de estado 400; el cuerpo contiene un objeto de respuesta de error que identifica el problema.

HTTP/1.1 400 Bad Request
Content-Type: application/json
Location: https://content.api.bingads.microsoft.com/shopping.svc/v9.1/bmc/1234/products/online:en:US:5678
WebRequestActivityId: d3d31a3f-8993-428e-858c-730032e32a46
Date: Sat, 10 Nov 2018 14:35:14 GMT
Content-Length: 305

{
  "error": {
    "errors": [
      {
        "reason": "invalid",
        "message": "Invalid value for: availability, stock is not a valid value",
        "domain": "global"
      }
    ],
    "code": "400",
    "message": "Invalid value for: availability, stock is not a valid value"
  }
}

Para obtener código de ejemplo que muestra cómo usar el recurso Inventario para actualizar un solo producto, consulte Actualización de precios y disponibilidad para un solo producto.

Actualización de varios productos

Para actualizar varios productos, use la /bmc/{bmcMerchantId}/inventory/batch plantilla en una solicitud HTTP POST. Establezca {bmcMerchantId} en el identificador de la tienda.

El cuerpo de la solicitud es un objeto Batch que puede contener un máximo de 400 productos para actualizar. Cada entrada del lote proporciona un identificador de lote definido por el usuario, un código de tienda que se establece en en línea, el identificador completo del producto y los campos de precios y disponibilidad del producto que se van a actualizar. El objeto Product solo puede incluir los siguientes campos:

  • Precio
  • disponibilidad
  • salePrice
  • salePriceEffectiveDate

Los price campos y availability son necesarios; se produce un error en la llamada si no se especifican ambos campos. y salePricesalePriceEffectiveDate son opcionales. Si no los especifica, el precio de venta actual del producto y los valores de fecha efectiva se quitan de la oferta.

A continuación se muestra un ejemplo de solicitud POST.

POST https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/1234/inventory/batch HTTP/1.1
AuthenticationToken: EwAAA3hl...
DeveloperToken: 0417...
Content-Type: application/json
Host: content.api.bingads.microsoft.com
Content-Length: 194

{
    "entries":[
        {
            "batchId":1,
            "storeCode":"online",
            "productId":"online:en:US:5678",
            "inventory":{
                "availability":"in stock",
                "price":{
                    "currency":"USD",
                    "value":4567.0
                }
            }
        },
        {
            "batchId":2,
            "storeCode":"online",
            "productId":"online:en:US:9012",
            "inventory":{
                "availability":"bad in stock",
                "price":{
                    "currency":"USD",
                    "value":678.0
                }
            }
        }
    ]
}

Dado que la solicitud intenta actualizar todos los productos del lote, devuelve el código de estado 200. Para determinar si se produjo un error en una actualización, debe recorrer en iteración todas las entradas del lote. Se produjo un error en una actualización si la entrada incluye el errors campo; de lo contrario, se realizó correctamente.

HTTP/1.1 200 OK
Content-Type: application/json
WebRequestActivityId: bf019ef5-fa76-4703-9132-7954b0323c81
Date: Fri, 09 Nov 2018 20:48:15 GMT
Content-Length: 172

{
  "kind": "content#inventoryCustomBatchResponse",
  "entries": [
    {
      "kind": "content#inventoryCustomBatchEntryResponse",
      "batchId": "1"
    },
    {
      "kind": "content#inventoryCustomBatchEntryResponse",
      "batchId": "2",
      "errors": {
        "errors": [
          {
            "reason": "invalid",
            "message": "Invalid value for: availability, bad in stock is not a valid value",
            "domain": "global"
          }
        ]
      }
    }
  ]
}

Para obtener código de ejemplo que muestra cómo usar el recurso Inventario para actualizar un lote de productos, consulte Actualización de precios y disponibilidad para un lote de productos.

Consulte también

Administración de ofertas de productos