Migra de Content API v2 a v2.1

En marzo de 2019, lanzamos la versión 2.1 de Content API for Shopping y, en abril de 2021, anunciamos que la versión 2 dejaría de estar disponible el 30 de septiembre de 2021. La versión v2 se desactivó. Realiza la migración a la versión 2.1 de inmediato.

Migra tu aplicación

La migración de la versión 2 a la 2.1 implica actualizar las URLs de los extremos para llamar a las nuevas versiones 2.1 y modificar las aplicaciones para tener en cuenta los cambios que generan interrupciones introducidos en la versión 2.1.

Actualiza tus llamadas a la API para usar los extremos de la versión 2.1

Para realizar llamadas a la versión 2.1, actualiza tus solicitudes para que usen los nuevos extremos de la versión 2.1.

Por ejemplo, para llamar al método products.get con la versión 2, usarías lo siguiente:

GET https://shoppingcontent.googleapis.com/content/v2/merchantId/products/productId

Para la versión 2.1, actualiza la URL a la siguiente:

GET https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/productId

Para obtener información completa sobre los servicios y extremos de la versión 2.1, consulta la Referencia de la API.

Realiza los cambios necesarios

Además de actualizar las URLs de las llamadas a la API, también debes actualizar tu aplicación para tener en cuenta varios cambios rotundos que se introdujeron en la versión 2.1. Revisa las siguientes secciones y actualiza tu aplicación según sea necesario.

1. Actualiza las integraciones con el servicio inventory

Se quitó el servicio inventory de la versión 2, y la funcionalidad equivalente está disponible con las siguientes funciones de la versión 2.1:

  • Usa los nuevos feeds complementarios o products.update para las actualizaciones parciales de productos. Se pueden realizar actualizaciones en todos los campos de productos mutables, incluidos todos los campos que se actualizaron anteriormente con inventory.set (excepto los exclusivos de localinventory). Consulta Migra a los feeds complementarios para obtener más detalles.

  • Usa el nuevo servicio localinventory para las actualizaciones de productos locales.

2. Actualiza las llamadas al servicio accounts

  • Las llamadas al método accounts.update en la versión 2.1 sobrescriben por completo el recurso accounts, en lugar de solo actualizar los campos incluidos en la solicitud. Para evitar borrar campos en el recurso accounts, actualiza tus solicitudes de llamada para incluir todos los campos.

  • Se quitó reviewsUrl.

  • Se quitó el estado del vínculo inactive para adsLinks, googleMyBusinessLink y youtubeChannelLinks.

3. Actualiza las llamadas al servicio products

  • Los atributos personalizados ya no contienen un tipo y una unidad. En cambio, las unidades se deben agregar al valor, y los tipos se deben detectar automáticamente.

  • El campo repetido productTypes reemplazó a productType y additionalProductTypes.

  • Los campos repetidos includedDestinations y excludedDestinations reemplazaron al campo repetido destinations.

  • Se cambió el nombre de los siguientes campos relacionados con AdWords:

    • adwordsGrouping -> adsGrouping
    • adwordsLabels -> adsLabels
    • adwordsRedirect -> adsRedirect
  • Se quitaron los siguientes campos:

    • aspects
    • destinations
    • onlineOnly
    • validatedDestinations
    • warnings
  • Se quitó el parámetro includeInvalidInsertedItems. En la versión 2.1, todos los productos se devuelven de forma predeterminada.

  • Ahora hay una demora de unos minutos antes de que se pueda recuperar un producto insertado a través de products.get o products.list.

  • Ya no se garantiza que el offerId que se devuelve sea el mismo que el offerId de entrada. La versión 2.1 quita los espacios en blanco iniciales y finales en offerId y combina varios caracteres de espacio en blanco en uno solo. Este cambio no afecta los valores de offerId que cumplen con la sintaxis de offerId recomendada.

  • Ahora los precios se validan antes de la inserción del producto. Solo se permiten los siguientes caracteres en la cadena de valor: +, -, . y dígitos (es decir, 0-9). Ya no se aceptan comas.

  • Las respuestas de una llamada products.insert o products.update solo contienen los siguientes atributos:

    • channel
    • contentLanguage
    • id
    • offerId
    • feedLabel
  • La opción includeAttributes de la versión 2 dejó de estar disponible. En su lugar, usa products.get con ProductId para ver la información completa del producto.

4. Actualiza las llamadas al servicio productstatuses

  • Se quitaron el atributo product y el parámetro includeAttributes. Para recuperar los atributos del producto correspondientes a un estado, usa el servicio products y pasa el valor del nuevo campo productId.

  • Se quitó el parámetro includeInvalidInsertedItems. Ahora se devuelve el productId de cada producto, independientemente de si es válido o no.

  • Los campos intention, approvalStatus y approvalPending de destinationStatuses se reemplazaron por status, que es una cadena que puede ser approved, disapproved o pending.

  • dataQualityIssues se reemplazó por itemLevelIssues.

5. Actualiza las llamadas al servicio datafeeds

  • Se reemplazaron los siguientes campos de destino:

    • contentLanguage -> language
    • targetCountry -> country
    • intendedDestinations -> includedDestinations y excludedDestinations
  • Se quitaron los feeds de datos con contentType = "product inventory update".

6. Actualiza las llamadas a los servicios orders y TestOrders

  • En la versión 2.1, las llamadas no deben incluir datos fiscales, ya que estos se calculan automáticamente. Si el pedido se completa en un estado con una Ley de Equidad del Mercado (MFA) o similar, fallarán las llamadas que incluyan datos fiscales. Si el pedido se completa en un estado que no es miembro de la MFA, el impuesto se calcula según la configuración establecida en Merchant Center. Si no se configura, el impuesto calculado es 0.

  • Los campos InStoreRefundLineItem y ReturnRefundLineItem amountPretax y amountTax se reemplazaron por priceAmount y taxAmount, respectivamente. priceAmount puede ser antes o después de impuestos, según la ubicación del pedido.

  • Los campos ShipLineItem carrier, shipmentId y trackingId de la solicitud se movieron a shipmentInfos.

  • billingAddress y predefinedBillingAddress ahora son campos de nivel superior en orders y TestOrder, respectivamente.

  • customer.explicitMarketingPreference se reemplazó por customer.marketingRightsInfo.

  • El campo netAmount se dividió en netPriceAmount y netTaxAmount.

  • shippingOption se reemplazó por lineItems[].shippingDetails.

  • Se quitaron los campos CancelLineItem amount, amountPretax y amountTax de la solicitud. El importe reembolsado ahora se calcula automáticamente.

  • Se quitó CustomBatch.

  • Se quitó Refund. En su lugar, usa refundOrder o refundItem.

  • Se quitó el campo paymentMethod.

  • Los métodos orders.returnlineitem y orders.refund de la versión 2 se reemplazan por orderreturns.creatOrderReturn y orderreturns.process.

  • Se quitaron los campos customer.email, channelType y lineItem.product.channel.

  • El campo promotions se quitó del servicio TestOrder y su formato cambió en Order.

7. Actualiza las llamadas al servicio orderinvoice

  • Los campos amountPretax y amountTax se reemplazaron por priceAmount y taxAmount, respectivamente. El campo priceAmount puede incluir o no impuestos, según la ubicación del pedido.

  • Se quitaron los saldos (comerciante, cliente y Google) en invoiceSummary y los campos relacionados con el cargo de la promoción.

8. Se quitó la funcionalidad que no se incluye en la versión 2.1

En la versión 2.1 de Content API, se quitaron varias otras funciones. Revisa la siguiente lista y actualiza tu solicitud según sea necesario:

  • Ya no se admite XML. Para obtener más información sobre el cambio a JSON, consulta Retiro de la compatibilidad con XML en Content API for Shopping.

  • Se quitó el parámetro dryRun. Este cambio se aplica a todas las llamadas a la API.

  • Se quitaron todos los métodos HTTP BATCH. Usa customBatch en su lugar.

  • Se quitó el método patch de los siguientes servicios:

    • accounts
    • accounttax
    • datafeeds
    • liasettings
    • shippingsettings
  • Se quitó el servicio de orderpayments.

Prueba tu migración

Para obtener más información sobre cómo probar los cambios en tus aplicaciones después de migrar a la versión 2.1, consulta Cómo probar los usos de Content API for Shopping. Si tienes problemas mientras pruebas las actualizaciones, puedes comunicarte con nosotros.

Cambios adicionales en la versión 2.1

Además de los cambios que requieren actualizaciones, la versión 2.1 también presenta varias funciones nuevas y cambios que no interrumpen el funcionamiento:

  • Servicios nuevos:

    • El nuevo servicio localinventory te permite realizar actualizaciones de productos locales (en lugar del servicio inventory en la versión 2).

    • El nuevo servicio orderreturns facilita la administración de Comprar con Google (antes conocido como Acciones de Shopping), ya que te permite procesar devoluciones sin tener que usar el servicio orders.

  • Los feeds complementarios te permiten realizar actualizaciones parciales de los productos.

  • Cambios adicionales en el servicio de products:

    • Las solicitudes de products.insert ya no registran advertencias ni errores recuperables. Esto te permite insertar productos y realizar actualizaciones posteriores para resolver problemas a través de las reglas del feed en Merchant Center, tal como lo harías con los feeds administrados fuera de la Content API.

    • Se agregó products.update para permitirte actualizar un conjunto elegido de campos de productos. Para obtener más información sobre los posibles usos, consulta la guía.

    • Los valores no válidos para los siguientes atributos ya no activan errores de inserción y se devuelven como parte de itemLevelIssues por el servicio productstatus:

      • ageGroup
      • availability
      • condition
      • energyEfficiencyClass
      • gender
      • maxEnergyEfficiencyClass
      • minEnergyEfficiencyClass
      • sizeSystem
      • sizeType
    • Los atributos personalizados ahora son recursivos, lo que elimina la necesidad de crear grupos personalizados.

    • Los atributos personalizados ahora tienen un campo groupValues además del campo value original. Se debe establecer exactamente uno de los campos.