Jump to content

Javier1959

Members
  • Posts

    12
  • Joined

  • Last visited

Javier1959's Achievements

Newbie

Newbie (1/14)

1

Reputation

  1. He seguido tus indicaciones y va perfecto. Muchas gracias por tu ayuda fjberro. Saludos.
  2. Muchas gracias por tu respuesta, voy a probarlo hoy. Saludos
  3. ¿Hola fjberro, lo has aplicado tal cual o has hecho alguna modificación? ¿El CSV lo tienes separado con "," o con ";"? Saludos.
  4. Hola: He encontrado este script para actualizar los stocks y teóricamente sirve para todas las versiones igual o superiores a 1.6. ---------------------------------------------------------------------------------------------------------- <?php // PRESTASHOP SETTINGS FILE require_once ('config/settings.inc.php'); // REMOTE CSV FILE (CUSTOMIZE YOURCSVFILEPATH, CAN BE AN URL OR A LOCAL PATH) $remote_csv_file = 'YOURCSVFILEPATH.csv'; // DB CONNECTION (CUSTOMIZE YOURDBHOSTNAME AND YOURDBPORT) $db = new PDO("mysql:host=YOURDBHOSTNAME;port=YOURDBPORT;dbname="._DB_NAME_."", _DB_USER_, _DB_PASSWD_); $db->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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."product WHERE reference = :reference"); $res4->execute(array(':reference'=>$reference)); if ($res4->rowCount() > 0) { $row4 = $res4->fetch(); $res = $db->prepare("update "._DB_PREFIX_."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 "._DB_PREFIX_."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() .'<br /><br />'; } } fclose($handle); } ---------------------------------------------------------------------------------------------------------------- El enlace a blog del autor es : http://www.whiletrue.it/update-prestashop-product-quantities-csv-file/ No se si alguien lo habrá probado y si funciona correctamente. Yo necesito que lea el CSV de mi proveedor que tiene unas 7000 referencias y actualice el stock de unas 3000 que tengo en la base de datos, descartando el resto, y que no toque las referencias de otros proveedores distintos que hay en la base de datos. A priori creo que me podría servir, aunque no utilizo las combinaciones (¿quizás habría que comentar o eliminar las líneas que actualizan las combinaciones?) Como estoy muy pez en PHP, si alguien puede revisarlo y orientarme se lo agradecería mucho. Un saludo y gracias por adelantado.
  5. Hola: Estoy intentando usar un script para actualizar el stock sólo de productos (sin combinaciones), y he encontrado este script: <?php // PRESTASHOP SETTINGS FILE require_once ('config/settings.inc.php'); // REMOTE CSV FILE (CUSTOMIZE YOURCSVFILEPATH, CAN BE AN URL OR A LOCAL PATH) $remote_csv_file = 'YOURCSVFILEPATH.csv'; // DB CONNECTION (CUSTOMIZE YOURDBHOSTNAME AND YOURDBPORT) $db = new PDO("mysql:host=YOURDBHOSTNAME;port=YOURDBPORT;dbname="._DB_NAME_."", _DB_USER_, _DB_PASSWD_); $db->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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."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 "._DB_PREFIX_."product WHERE reference = :reference"); $res4->execute(array(':reference'=>$reference)); if ($res4->rowCount() > 0) { $row4 = $res4->fetch(); $res = $db->prepare("update "._DB_PREFIX_."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 "._DB_PREFIX_."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() .'<br /><br />'; } } fclose($handle); } Según dice es para versiones 1.6 y posteriores. Como estoy muy pez en PHP, ¿alguien lo ha probado? El enlace al blog del desarrollador es http://www.whiletrue.it/update-prestashop-product-quantities-csv-file/ El CSV que me facilita el proveedor contiene unas 7000 referencias, de las cuales sólo me interesan unas 3000, es decir el script tiene que leer si la referencia del CSV está en la base de datos de la tienda, y si está actualizar el stock, en caso contrario descartarla. Entiendo que este script cumple lo que necesito y que a lo sumo habría que eliminar las referencias a los atributos. ¿Alguien que se maneje bien en PHP podría revisarlo y aconsejarme antes de que haga alguna metedura de pata? Un saludo y gracias por anticipado a todos.
  6. Hola. Uso la 1.6.0.11 y tengo el módulo de Paypal desinstalado. El cajetín para introducir el código no aparece en ningún navegador, he probado hasta a instalar el módulo de Paypal y desengancharlo del header, pero nada. La solución de renombrar cart_voucher a cart_voucher2 no tengo clara como hacerla, por que las líneas que vienen descritas no coinciden con las de la versión 1.6.0.11. En el post inglés dice hacer el cambio en la línea: <td rowspan="{3+$total_discounts_num+$use_show_taxes+$total_wrapping_taxes_num}" colspan="2" id="cart_voucher" class="cart_voucher"> En el shopping_cart.tpl de la 1.6.0.11 la línea aparece como: línea 159 <td rowspan="{$rowspan_total}" colspan="2" id="cart_voucher" class="cart_voucher"> y en la 192 <td rowspan="{$rowspan_total}" colspan="2" id="cart_voucher" class="cart_voucher"> ¿Habría que hacer el cambio en las dos líneas aunque no coincidan exactamente con la que pone en el post inglés? Saludos.
  7. No, utilizo la que viene por defecto. Pues ni idea de que puedo estar haciendo mal, he probado los tres métodos y no consigo que desaparezca el contador. Volveré a probar de nuevo. No obstante muchísimas gracias por la respuesta.
  8. Hola: He intentado eliminar los contadores del número de productos siguiendo el post del enlace http://www.prestashop.com/forums/topic/328077-remove-or-change-product-count-on-sub-categories-in-p16/ pero no hay forma. He vaciado la caché, recompilado y todo lo que se me ha ocurrido pero nada. He buscado por todo el foro y no he encontrado nada excepto el enlace que he puesto. Si alguien pudiera echarme una manita se lo agradecería.
  9. El nombre del bloque CMS (INFORMACIONES) debería poderse cambiar desde el BO/modulos/Aplicaciones del Front Office/Bloque CMS 1.1/Configurar Verás el nombre del módulo (INFORMACIONES) la categoría, etc., le das al icono del lápiz y editas como quieras. Esa es la teoría, por que en local sin problemas, pero en el servidor web a mi no me deja de ninguna manera.
  10. Mira a ver si en la descripción corta hay alguna comilla (""), si es así eliminalas.
  11. Hola, la descripción corta si está creada en cada artículo, de hecho como ya he comentado aparece perfectamente en la página del producto y también si lo pongo en productos destacados en el inicio. Es exclusivamente cuando abro la categoría y veo todo el listado de productos, cuando no aparece la descripción corta. Gracias de todas formas y un saludo.
  12. Hola, estoy haciendo pruebas con la 1.3.1 en local y servidor y tengo un problema que me tiene loco y no entiendo. Creo un nuevo artículo, relleno todos los campos normalmente, y cuando voy a verlo a la tienda aparece todo correcto tanto en la página de inicio, como la ficha del producto. Sin embargo si voy a la página de la categoría no me aparece la descripcion corta de éste producto y si la de los que vienen de prueba en Prestashop. Todo lo demás está bien. La instalación está recien hecha, no tiene ninguna modificación de ninguna clase. He observado que sólo se ve mal en IE, en Crome sale bien. Si alguien pudiera orientarme o si conoce la solución le quedaría muy agradecido. Un saludo y gracias.
×
×
  • Create New...