Los feeds son operaciones pendientes de la base de datos.

Son operaciones pendientes en la base de datos, se generan cada vez que se hace alguna acción de creación o actualización de los parámetros de un producto y esto ocurre de forma asincrónica.
Los feed se identifican por UUID. Este identificador se devuelve tras el envío satisfactorio de la solicitud original.

¿Qué operaciones generan un Feed?:

En la gestión de productos existen 4 APIS que operan asincrónicamente (feed)

  • ProductCreate: Creación de productos
  • ProductUpdate: Actualización de productos
  • ProductRemove: Eliminación de productos
  • Image: Carga de imágenes al producto

¿Qué restricciones existen?

En el Falabella Seller Center, cada comercio tiene una limitación en el uso de feeds. Los primeros 50 llamados para estas 4 APIs se pueden realizar sin restricción. Sin embargo, después de alcanzar este límite, los llamados subsiguientes deben tener un intervalo de al menos 2 minutos entre cada uno. Esto permite un máximo de 770 llamados al día. Si no se respeta este tiempo de espera de dos minutos, se generará un mensaje de error indicando un exceso de requerimientos (StatusCode 429; too many attempts to create feeds).

¿Qué recomendaciones hay?

Basándonos en lo anterior, se sugiere trabajar en lotes. Por ejemplo, al crear productos, en lugar de hacerlo uno por uno, se recomienda enviar una solicitud que incluya todos los productos a crear o aquellos solicitados en las últimas "X" horas.

Lo mismo aplica para las actualizaciones de stock, especialmente en productos con un alto volumen de existencias. En estos casos, no es necesario actualizar uno por uno, sino que se puede programar una tarea automática que, cada ciertos minutos, ejecute todas las actualizaciones de los productos en cola.

Es importante verificar regularmente el estado de los feeds para conocer el estado de tus solicitudes o revisar los detalles en caso de errores, para aquello recuerda que puedes configurar un webhook (Aquí) para recibir notificación de creación y finalización de un feed,

📘

Las limitaciones del feed dependen del vendedor

Esta limitación se aplica a cada vendedor por separado (no a cada credencial).

Creación de feeds

Por ejemplo, si publicamos esta solicitud ...

<?xml version="1.0" encoding="UTF-8" ?>
<Request>
  <Product>
    <SellerSku>4105382173aaee4</SellerSku>
    <ParentSku></ParentSku>
    <Status>active</Status>
    <Name>Dried Water</Name>
    <Variation>Family Pack</Variation>
    <PrimaryCategory>4</PrimaryCategory>
    <Categories>2,3,5</Categories>
    <Description>You need this!</Description>
    <Brand>Snake Oil</Brand>
    <Price>1.00</Price>
    <SalePrice>0.9</SalePrice>
    <TaxClass>default</TaxClass>
    <ShipmentType>dropshipping</ShipmentType>
    <ProductId>xyzabc</ProductId>
    <Condition>new</Condition>
    <ProductData/>
    <Quantity>1000000</Quantity>
  </Product>
</Request>

... a esta URL ...

https://sellercenter-api.falabella.com/?Action=ProductCreate&Timestamp=2015-07-01T11%3A11%3A11%2B00%3A00&UserID=maintenance%40sellercenter.net&Version=1.0&Signature=3c32c572ad23d0e308c5ac7708478bc57666622ac1a93d210bbc6dfdc499c8ca

... la API devuelve este resultado:

<?xml version="1.0" encoding="UTF-8"?>
<SuccessResponse>
  <Head>
    <RequestId>6a521aff-e74b-4fb6-b40f-d46b42f91652</RequestId>
    <RequestAction>ProductCreate</RequestAction>
    <ResponseType/>
    <Timestamp>2015-07-01T11:11:11+0000</Timestamp>
  </Head>
  <Body/>
</SuccessResponse>

El identificador del feed es el UUID que se devuelve dentro de la etiqueta RequestId, por lo que en este ejemplo es 6a521aff-e74b-4fb6-b40f-d46b42f91652.

Estado del feed

Los vendedores pueden solicitar una lista de feeds y errores de los endpoints de Feed. Los feeds pueden tener uno de varios estados:

Código de estadoDescripción
QueuedEl feed se agregó correctamente a la cola y está pendiente de procesamiento.
ProcessingActualmente, el servidor está procesando el feed.
CanceledEl vendedor canceló el feed.
FinishedEl feed ha terminado de procesarse.
ErrorEl feed ha terminado con error(es).

Por ejemplo, podemos usar FeedStatus para consultar el estado de nuestra operación, así ...

https://sellercenter-api.falabella.com/?Action=FeedStatus&FeedID=6a521aff-e74b-4fb6-b40f-d46b42f91652&Format=XML&Timestamp=2015-07-01T11%3A11%3A11%2B00%3A00&UserID=maintenance%40sellercenter.net&Version=1.0&Signature=9f541032e4a3745493b194e78d8af7d77298a701b4d14dcdbe985ce3d8b0f7fb

... y descubriría que la operación falló y por qué había fallado:

<?xml version="1.0" encoding="UTF-8"?>
<SuccessResponse>
  <Head>
    <RequestId/>
    <RequestAction>FeedStatus</RequestAction>
    <ResponseType>FeedDetail</ResponseType>
    <Timestamp>2015-07-01T11:11:11+0000</Timestamp>
    <RequestParameters>
      <FeedID>6a521aff-e74b-4fb6-b40f-d46b42f91652</FeedID>
    </RequestParameters>
  </Head>
  <Body>
    <FeedDetail>
      <Feed>6a521aff-e74b-4fb6-b40f-d46b42f91652</Feed>
      <Status>Finished</Status>
      <Action>ProductCreate</Action>
      <CreationDate>2015-07-01 11:11:11</CreationDate>
      <UpdatedDate>2015-07-01 11:11:11</UpdatedDate>
      <Source>api</Source>
      <TotalRecords>1</TotalRecords>
      <ProcessedRecords>1</ProcessedRecords>
      <FailedRecords>1</FailedRecords>
      <FeedErrors>
        <Error>
          <Code>0</Code>
          <Message>Field PrimaryCategory with value '4' has a problem: Primary category Id is invalid</Message>
        </Error>
        <Error>
          <Code>1</Code>
          <Message>Field Brand with value 'ASM' has a problem: This brand does not exist in our database. Please contact our support.</Message>
        </Error>
        <Error>
          <Code>2</Code>
          <Message>Field TaxClass with value 'default' has a problem: 'default' is an invalid Tax Class</Message>
        </Error>
      </FeedErrors>
    </FeedDetail>
  </Body>
</SuccessResponse>

Dos cosas más son notables en el contexto del estado del feed:

  • Los feeds con cualquier estado que no sea "Queued" (en cola) se eliminarán automáticamente del sistema 30 días después de su creación.
  • Sólo se pueden cancelar los feeds en cola.