Actualización de st...
Avisos
Vaciar todo

Actualización de stock a través de url  

 
Alejandro Esteban
 Alejandro Esteban
Estimable Member

Hola, necesitamos actualizar el stock de nuestros productos a través de la siguiente URL que nos facilita el proveedor: http://petuky.com/ws/stock.php. ¿Hay alguna forma de hacerlo? Gracias

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 08/01/2016 3:13 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Tiene el formato de un archivo CSV separado por comas, podrías probar un script como el siguiente :

http://www.whiletrue.it/update-prestashop-product-quantities-csv-file/

Realiza primero en un sitio de pruebas

Saludos.

ResponderCitar
Respondido : 08/01/2016 6:28 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Alejandro Esteban
 Alejandro Esteban
Estimable Member

Gracias Jhon, antes que nada te voy a decir que nos han dicho que la actualización se hace a las 2:30 am, hace falta programar algo distinto o esto es algo que se hace automáticamente?

Aparte, No tengo un sitio de pruebas y la verdad es que no sé cómo hacerlo, intentarè investigarlo.

Por otro lado te pido si me puedes ayudar diciéndome dónde debo pegar este código y si debo modificarle algo.
Un saludo

ResponderCitar
Respondido : 08/01/2016 7:28 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

En la url enviada, la parte de Script code , debes copiar y pegar en un nuevo arcihvo .php , por ejemplo

migración.php, este arhivo debes colocarlo en la raiz de tu sitio web, para que se llame en base a tu dominio, por ejemplo :

Contenido solo visible a usuarios registrados

Esto tendrás que ejecutarlo manualmente cada vez que quieras una migración colocas esto en el navegador y ejectuas, lo otro es que se automatice por cpanel a través de un cron pero primero asegurate de que funione manualmente

No olvides de cambiar los parámetros indicados en el link

Saludos.

ResponderCitar
Respondido : 08/01/2016 9:13 pm

Cursos Gratuitos WordPress

Alejandro Esteban
 Alejandro Esteban
Estimable Member

hola jhon

he creado el archivo .php le he llamado stock.php
al abrir www.tiendawalkingdogs.com/stock.php se abre una ventana que dice error delservidor 500
cargar de nuevo
no se si he cometido algún error en el codigo o es porque el stock se actualiza a las 2:30 ( los provedores nos han dicho que se actualiza a las 2:30 am)

no se que será la url del stock es http://petuky.com/ws/stock.php y el codigo a quedado asi:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// MAIN CYCLE
$row_num = 0;
if (($handle = fopen($remote_csv_file, "r")) !== false) {
while (($data = fgetcsv($handle, 1000, ",")) !== false) {
$row_num++;
if ($row_num == 1) {
// SKIP FIRST LINE (HEADER)
continue;
}
if ($data[0] == '' || !is_numeric($data[1])) {
// SKIP EMPTY VALUES
continue;
}

// INPUT SANITIZATION
$reference = trim($data[0]);
$quantity = ($data[1] >= 0) ? $data[1] : 0;

try {
$res4 = $db->prepare("SELECT id_product, id_product_attribute from "._****_."product_attribute WHERE reference = :reference");
$res4->execute(array(':reference'=>$reference));

if ($res4->rowCount() > 0) {

// IT'S A PRODUCT COMBINATION

$row4 = $res4->fetch();

$res = $db->prepare("update "._****_."stock_available set quantity = :q where id_product_attribute = :id_product_attribute");
$res->execute(array(':q'=>$quantity, ':id_product_attribute'=>$row4['id_product_attribute']));

$res = $db->prepare("update "._*****_."product_attribute set quantity = :q where id_product_attribute = :id_product_attribute");
$res->execute(array(':q'=>$quantity, ':id_product_attribute'=>$row4['id_product_attribute']));

$res = $db->prepare("update "._****_."stock_available set quantity = quantity + :q where id_product = :id_product and id_product_attribute = 0");
$res->execute(array(':q'=>$quantity, ':id_product'=>$row4['id_product']));

$res = $db->prepare("update "._*****_."product set quantity = quantity + :q where id_product = :id_product");
$res->execute(array(':q'=>$quantity, ':id_product'=>$row4['id_product']));

} else {

// IT'S A SIMPLE PRODUCT

$res4 = $db->prepare("SELECT id_product from "._*****_."product WHERE reference = :reference");
$res4->execute(array(':reference'=>$reference));
if ($res4->rowCount() > 0) {
$row4 = $res4->fetch();

$res = $db->prepare("update "._*****_."stock_available set quantity = :q where id_product = :id_product and id_product_attribute = 0");
$res->execute(array(':q'=>$quantity, ':id_product'=>$row4['id_product']));

$res = $db->prepare("update "._*****_."product set quantity = :q where id_product = :id_product");
$res->execute(array(':q'=>$quantity, ':id_product'=>$row4['id_product']));
}

}
} catch (PDOException $e) {
echo 'Sql Error: '. $e->getMessage() .'

';
}
}
fclose($handle);
}

el nombre DB , usuario y contraseña les he sacado del Cpanel y el prefijo tambien (estos datos estan en ***)
espero respuesta, un saludo

ResponderCitar
Respondido : 11/01/2016 1:13 am
Luis Mendez Alejo
 Luis Mendez Alejo
Miembro Moderator

Hola Alejandro,

Al ser un tema que implica comprobación de configuraciones de tu cuenta de Hosting, tareas cron y posibles bloqueos de scripts externos es mejor que plantees la consulta por medio de Ticket para que el Departamento de Soporte la revise y te den las indicaciones oportunas.

Desde el Foro no podemos hacer mucho al respecto.

Saludos

ResponderCitar
Respondido : 11/01/2016 2:37 am