Introduccion

Actualizar precios y stock en una tienda PrestaShop puede convertirse en una tarea compleja si dependes de un proveedor externo o gestionas múltiples canales. Automatizar este proceso desde un archivo CSV externo permite mantener el catálogo actualizado, evitar errores manuales y ahorrar tiempo de gestión.

En este artículo, aprenderás cómo sincronizar precios y stock en PrestaShop de forma segura, eficiente y escalable, leyendo datos desde un archivo CSV alojado en tu servidor o proveniente de una URL externa.

  1. ¿Por qué sincronizar desde CSV?
  • 🔁 Algunos proveedores no ofrecen API, pero sí un CSV diario
  • ✅ Es una solución simple y ligera frente a integraciones complejas
  • 🧩 Permite conectarse con ERPs, Excel, Google Sheets, FTP, etc.
  • 🛒 Útil para dropshipping, marketplaces, almacenes externos
  1. Requisitos del archivo CSV y estructura esperada

Formato recomendado:

reference,price,quantity

REF-001,19.95,24

REF-002,14.50,0

REF-003,33.25,12

      • reference: código único del producto en PrestaShop (clave principal)
      • price: nuevo precio (float)
      • quantity: stock disponible (entero)

💡 El CSV puede estar en el mismo servidor o ser descargado desde una URL externa:

$url = 'https://proveedor.com/data/precios-stock.csv';
  1. Lógica de actualización: qué campos modificar

Campo

Tabla

Método PHP sugerido

Precio

ps_product / ps_product_attribute

setPrice() y setRegularPrice()

Stock

ps_stock_available

StockAvailable::setQuantity()

Se puede trabajar tanto con productos simples como combinaciones, pero en este ejemplo usaremos productos base identificados por referencia.

  1. Script PHP completo para sincronización
<?php
require(dirname(__FILE__).'/config/config.inc.php');
require(dirname(__FILE__).'/init.php');
$file = fopen('precios.csv', 'r');
$first = true;
while (($line = fgetcsv($file, 1000, ",")) !== FALSE) {
if ($first) { $first = false; continue; }
list($ref, $price, $qty) = $line;
$id = (int)Product::getIdByReference($ref);
if (!$id) continue;
$product = new Product($id);
$product->setPrice($price);
$product->setRegularPrice($price);
$product->save();
StockAvailable::setQuantity($id, 0, (int)$qty);
}
fclose($file);
echo "Actualización completa.";
?>
  1. Cómo proteger y validar el archivo CSV
  • Verifica el MIME Type del archivo antes de procesarlo
  • Usa Tools::file_get_contents() para CSV remoto y asegúrate de que es seguro
  • Añade validaciones de tipo y formato antes de procesar cada línea
if (!is_numeric($price) || !is_numeric($qty)) continue;
  1. Automatización con cron

Puedes programar la sincronización diaria, cada hora o semanalmente:

0 */6 * * * php /var/www/tienda/sincronizar-precios.php

Así el CSV se puede actualizar automáticamente sin intervención manual.

  1. Comparativa con módulos del marketplace

Método

Ventajas

Inconvenientes

Script propio

Gratuito, control total

Requiere conocimientos técnicos

Módulo CSV Pro

Interfaz amigable, soporte

Coste, dependencia externa

API personalizada

Escalable, integrable

Requiere infraestructura compleja

Conclusión

Sincronizar precios y stock desde un CSV externo en PrestaShop es una forma efectiva de mantener tu catálogo al día, especialmente si trabajas con proveedores que actualizan sus datos regularmente. La clave está en validar bien la información, automatizar el proceso y asegurarte de que no afecta el rendimiento o la integridad de los productos.

Ir al contenido