#
Carga masiva de productos
Si necesitas cargar muchos productos en Biteral, llamar a products()->ingest() por cada producto que quieres cargar es lento, y puede provocar errores por consumo excesivo de memoria.
En su lugar, usa productsBatchIngest()->ingest() , que está diseñado específicamente para cargas masivas. Este método agrupa los productos de forma óptima para maximizar la velocidad y reducir el riesgo de problemas relacionados con el uso de recursos. Mira cómo funciona:
// Obtén un ProductsBatchIngestService para poder reutilizarlo
$productsBatchIngestService = $client->productsBatchIngest();
// Inicia una sesión de ingestión de productos
$productsBatchIngestService->startIngestionSession();
// Recorre los productos en un bucle tal como lo harías normalmente con tu base de datos
while ($product = $query->getRow()) {
// Crea un objeto ProductPayload tal como hacías al cargar productos individualmente
$productPayload =
new ProductPayload(
code: $product->getCode(),
title: $product->getTitle(),
[...]
);
// Envía el producto para que sea cargado por bloques
$productsBatchIngestService->ingest($productPayload);
}
// Cuando el bucle haya terminado, no olvides cerrar la sesión de ingestión
$batchIngestResult = $productsBatchIngestService->finishIngestionSession();