Los feeds son operaciones pendientes de la base de datos.
These are pending operations in the database, generated each time an action is performed to create or update the parameters of a product, and this occurs asynchronously.
Feeds are identified by UUID. This identifier is returned after the successful submission of the original request.
What operations generate a Feed?
In product management, there are 4 APIs that operate asynchronously (feed):
- ProductCreate: Product creation
- ProductUpdate: Product update
- ProductRemove: Product deletion
- Image: Uploading images to the product
What restrictions exist?
In the Falabella Seller Center, each merchant has a limitation on the use of feeds. The first 50 calls for these 4 APIs can be made without restriction. However, after reaching this limit, subsequent calls must have an interval of at least 2 minutes between each one. This allows for a maximum of 770 calls per day. If this two-minute wait time is not respected, an error message will be generated indicating an excess of requests (StatusCode 429; too many attempts to create feeds).
What recommendations are there?
Based on the above, it is suggested to work in batches. For example, when creating products, instead of doing it one by one, it is recommended to send a request that includes all the products to be created or those requested in the last "X" hours.
The same applies to stock updates, especially for products with a high volume of stock. In these cases, it is not necessary to update one by one, but rather to schedule an automated task that, every few minutes, executes all updates for the queued products.
It is important to regularly check the status of the feeds to know the status of your requests or review the details in case of errors. Remember that you can configure a webhook (Here) to receive notifications of feed creation and completion.
Feed Limitations Depend on the Seller
This limitation applies to each seller separately (not to each credential).
Feed Creation
For example, if we submit this request ...
<?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>
... to this URL ...
```text
https://sellercenter-api.falabella.com/?Action=ProductCreate&Timestamp=2015-07-01T11%3A11%3A11%2B00%3A00&UserID=maintenance%40sellercenter.net&Version=1.0&Signature=3c32c572ad23d0e308c5ac7708478bc57666622ac1a93d210bbc6dfdc499c8ca
... the API returns this result:
<?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>
The feed identifier is the UUID returned within the RequestId tag, so in this example, it is 6a521aff-e74b-4fb6-b40f-d46b42f91652.
Feed Status
Sellers can request a list of feeds and errors from the Feed endpoints. Feeds can have one of several statuses:
Status Code | Description |
---|---|
Queued | The feed was successfully added to the queue and is pending processing. |
Processing | The server is currently processing the feed. |
Canceled | The seller canceled the feed. |
Finished | The feed has finished processing. |
Error | The feed finished with error(s). |
For example, we can use FeedStatus to check the status of our operation, like this ...
<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>
... and would find out that the operation failed and why it had failed:
<?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>
Two more things are notable in the context of feed status:
- Feeds with any status other than "Queued" will be automatically removed from the system 30 days after creation.
- Only feeds in the Queued status can be canceled.