En esta página, se explica cómo puedes subir y administrar tus productos de forma programática. Con la API de Merchant Products, puedes insertar o actualizar un producto en una fuente de datos, recuperar un producto de tu cuenta y borrar un producto de una fuente de datos.
La API de Merchant Products contiene dos recursos.
productInputs
representa las partes de entrada de tus productos.products
representa los productos procesados que se construyeron a partir de las partes de entrada.
productInputs
puede ser principal y complementario, según si se sube a una fuente de datos principal o a una fuente de datos complementaria.
Cada product
se construirá a partir de un solo productInput
principal y cualquier cantidad de productInputs
complementarios.
Puedes usar la API de Merchant Products para crear catálogos de tiendas en línea o locales, que son productos que pueden aparecer en varios destinos de compras.
Puedes usar el recurso productInputs
una vez que hayas creado tu cuenta de Merchant Center, configurado tu primera fuente de datos y tengas todo listo para subir un conjunto inicial de productos a través de la API.
Aunque los comercios pueden subir productos con un archivo llamado PrimaryProductDataSource, existen varias ventajas de crear y borrar productos con la API de Merchant. Estas ventajas incluyen un tiempo de respuesta más rápido y la capacidad de actualizar productos en tiempo real, sin necesidad de administrar archivos grandes. Los cambios en los productos realizados a través de llamadas a la API pueden tardar hasta varias horas en aparecer en la base de datos de Shopping.
Requisitos previos
Si no tienes una fuente de datos, crea una con la API de Merchant DataSources o Merchant Center.
Si ya tienes una fuente de datos que creaste con la IU de Merchant Center o con la API, puedes usar la API de Merchant Products para agregar tus productos. Si usas Content API for Shopping para agregar productos, consulta la guía de migración para obtener información sobre cómo comenzar a usar la API de Merchant Products.
Usted es responsable de cumplir con las políticas de anuncios de Shopping y de fichas gratuitas. Anuncios de Shopping se reserva el derecho de aplicar estas políticas y responder de manera adecuada si detectamos contenido o comportamientos que las infrinjan.
Recursos
El recurso products
te permite recuperar información de productos de la base de datos de Shopping.
El recurso productInput
representa los datos de entrada que envías para un producto. También proporciona métodos que te permiten actualizar o borrar la información de los productos uno por uno o muchos a la vez en el modo por lotes. Un recurso productInput
debe tener los siguientes campos:
channel
: Es el canal del producto.offerId
: Es el identificador único del producto.contentLanguage
: Es el código de idioma ISO 639-1 de dos letras del producto.feedLabel
: Es la etiqueta del feed del producto.
Sube una entrada de producto a tu cuenta
Para subir una entrada de producto a tu cuenta, usa el método accounts.productInputs.insert
. Debes pasar el identificador único de la fuente de datos principal o complementaria.
En la siguiente solicitud de muestra, se muestra cómo puedes usar el método accounts.productInputs.insert
para subir una entrada de producto a tu cuenta de comerciante. La solicitud establece el precio y la región de envío, y los atributos personalizados, como la fecha de fabricación y el tamaño.
POST https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE}
{
"name": "{PRODUCT_TITLE}",
"versionNumber": {VERSION_NUMBER},
"contentLanguage": "{CONTENT_LANGUAGE}",
"feedLabel": "{FEED_LABEL}",
"offerId": "{OFFER_ID}",
"channel": "ONLINE",
"attributes": {
"availability": "in stock",
"imageLink": "{IMAGE_LINK}",
"link": "{PRODUCT_LINK}",
"brand": "{BRAND_NAME}",
"price": {
"currencyCode": "{CURRENCY_CODE}",
"amountMicros": {PRICE}
},
"color": "red",
"productWeight": {
"value": 320,
"unit": "g"
},
"adult": false,
"shipping": [
{
"country": "GB",
"price": {
"amountMicros": {SHIPPING_COST},
"currencyCode": "{CURRENCY_CODE_SHIPPING}"
},
"postalCode": "{SHIPPING_POSTALCODE}",
"service": "",
"region": "{SHIPPING_REGION}",
"maxHandlingTime": "{MAX_HANDLING_TIME}",
"minHandlingTime": "{MIN_HANDLING_TIME}",
"maxTransitTime": "{MAX_TRANSIT_TIME}",
"minTransitTime": "{MIN_TRANSIT_TIME}"
}
],
"gender": "Female"
},
"customAttributes": [
{
"name": "size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
Reemplaza lo siguiente:
- {ACCOUNT_ID}: Es el identificador único de tu cuenta de Merchant Center.
- {DATASOURCE}: Es el identificador único de la fuente de datos. Debe tener el formato
accounts/
{ACCOUNT_ID}/dataSources/
{DATASOURCE_ID}. - {PRODUCT_TITLE}: Es el nombre del producto.
- {VERSION_NUMBER}: Es el número de versión del producto. Opcional.
- {CONTENT_LANGUAGE}: Es el código de idioma ISO 639-1 de dos letras del producto. Obligatorio.
- {FEED_LABEL}: Es el código de territorio CLDR de la región en la que deseas vender el producto. Si el valor proporcionado para
feedLabel
no es válido, no se propaga el campotargetCountry
. - {OFFER_ID}: Es el identificador único del producto. Obligatorio.
- {IMAGE_LINK}: Es el vínculo a la imagen del producto en tu sitio web. Opcional.
- {PRODUCT_LINK}: Es el vínculo al producto en tu sitio web. Opcional.
- {CURRENCY_CODE}: Es la moneda del precio con acrónimos de tres letras según la ISO 4217. Opcional.
- {PRICE}: Es el precio del producto representado como un número en micros. Opcional.
- {SHIPPING_COST}: Es el precio de envío fijo representado como un número. Opcional.
- {SHIPPING_POSTALCODE}: Es el intervalo de códigos postales en el que se aplica la tarifa de envío. Opcional.
- {MAX_HANDLING_TIME}: Es el tiempo de preparación máximo en días hábiles entre el momento en que se recibe el pedido y el momento en que se envía. Opcional.
- {MIN_HANDLING_TIME}: Es el tiempo de preparación mínimo en días hábiles entre el momento en que se recibe el pedido y el momento en que se envía. El valor 0 significa que el pedido se entrega el mismo día en que se recibe. Opcional.
- {MAX_TRANSIT_TIME}: Es el tiempo máximo en tránsito en días hábiles entre el momento en que se envía el pedido y el momento en que se entrega. Opcional.
- {MIN_TRANSIT_TIME}: Es el tiempo mínimo en tránsito en días hábiles entre el momento en que se envía el pedido y el momento en que se entrega. El valor 0 significa que el pedido se entrega el mismo día en que se envía. Opcional.
Cuando la solicitud se ejecuta correctamente, verás la siguiente respuesta:
{
"name": "{PRODUCT_NAME}",
"product": "{PRODUCT_ID}",
"channel": "ONLINE",
"offerId": "{OFFER_ID}",
"contentLanguage": "{CONTENT_LANGUAGE}",
"feedLabel": "{FEED_LABEL}",
"versionNumber": "{VERSION_NUMBER}",
"attributes": {
"link": "{PRODUCT_LINK}",
"imageLink": "{IMAGE_LINK}",
"adult": false,
"availability": "in stock",
"brand": "{BRAND_NAME}",
"color": "red",
"gender": "Female",
"price": {
"amountMicros": "{PRICE}",
"currencyCode": "{CURRENCY_CODE}"
},
"shipping": [
{
"price": {
"amountMicros": "{SHIPPING_COST}",
"currencyCode": "{CURRENCY_CODE}"
},
"country": "{SHIPPING_COUNTRY}",
"region": "{SHIPPING_REGION}",
"postalCode": "{SHIPPING_POSTALCODE}",
"minHandlingTime": "{MIN_HANDLING_TIME}",
"maxHandlingTime": "{MAX_HANDLING_TIME}",
"minTransitTime": "{MIN_TRANSIT_TIME}",
"maxTransitTime": "{MAX_TRANSIT_TIME}"
}
],
"productWeight": {
"value": 320,
"unit": "g"
}
},
"customAttributes": [
{
"name": "Size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
Cómo recuperar un producto procesado de tu cuenta
Para recuperar un producto procesado de tu cuenta, usa el método accounts.products.get
. El producto procesado puede tardar varios minutos en aparecer después de la inserción.
Puedes obtener el nombre del recurso del producto procesado del campo product
en la respuesta de accounts.productInputs.insert
.
Cómo borrar una entrada de producto de tu cuenta
Para borrar una entrada de producto de tu cuenta, usa el método accounts.productInputs.delete
. Para borrar un producto con la API de Merchant Products, debes pasar el identificador único de la fuente de datos principal o complementaria a la que pertenece el producto.
Cómo mostrar una lista de productos de tu cuenta
Para enumerar los productos procesados en tu cuenta, usa el método accounts.products.list
.