GRXinside Posted July 2, 2014 Share Posted July 2, 2014 Hola, tengo una consulta. Quisiera saber como puedo quitar el precio de todos los productos asociados a una subcategoria y dejarlo a 0. Por otro lugar a la misma vez que reseteo el precio a todos los productos de esa subcategoria que se marque en esa subcategoria todos esos productos como " Cuando no haya existencias " lo marque por defecto ya que todos los productos que voy añadiendo manualmente le digo permitir pedido. Lo que quiero hacer es quitar el precio y marcarlo como por defecto que es denegar pedidos si no hay un stock. Por otro lugar quisiera saber si hay alguna posibilidad de añadir un campo extra en una categoria que muestre un texto, es decir. Yo tengo varias categorias y me interesa poner de mis 20 categorias en 1 categoria concretamente en todos sus productos añadir un texto que diga por ejemplo " Llamar para consultar ". Espero que me puedan ayudar Gracias Link to comment Share on other sites More sharing options...
ventura Posted July 2, 2014 Share Posted July 2, 2014 Para poner un texto en todos los productos de una categoria tienes que editar el product.tpl de la plantilla que estas utilizando y añadir este codigo por ejemplo {if $product->id_category_default =='14'} {l s='Llamar para consultar'} {/if} donde 14 sería el numero de la categoria por defecto de los productos donde se mostrará el texto Para lo otro no te entendido muy bien lo que quierés hacer pero creo que se podría hacer con consultas sql a la base de datos Link to comment Share on other sites More sharing options...
GRXinside Posted July 2, 2014 Author Share Posted July 2, 2014 Hola gracias por responder, Lo otro me refiero que de una categoría quiero poner todos los precios a 0 y marcar los productos fuera de stock, no denegarlos si no dejarlo sin stock como indico arriba. Gracias Link to comment Share on other sites More sharing options...
ventura Posted July 2, 2014 Share Posted July 2, 2014 (edited) Lo mejor entonces es que lo hagas con consultas sql a la base de datos UPDATE ps_product LEFT JOIN ps_category_product ON ps_product.id_product = ps_category_product.id_product SET price=0 WHERE (ps_category_product.id_category= 3) Asi pondrías todos los productos de la categoria con id3 el precio en 0. Esta consulta tambian a tendrías que hacer a la tabla ps_product_shop Luego con esta pondrás todos los productos de la categoria 3 en la opción por defecto para pedidos sin stock UPDATE ps_product LEFT JOIN ps_category_product ON ps_product.id_product = ps_category_product.id_product SET out_of_stock = '2' WHERE (ps_category_product.id_category= 3) Lo mismo tambien en la tabla ps_product_shop Antes de realizar cualquier operacion en la base de datos muy recomendable hacer backup http://mypresta.eu/en/art/basic-tutorials/create-prestashop-database-backup.html Edited July 2, 2014 by ventura (see edit history) Link to comment Share on other sites More sharing options...
GRXinside Posted July 3, 2014 Author Share Posted July 3, 2014 Hola gracias por responder, Ahora voy a ejecutar las consultas para resetear eso. Sobre esto : {if $product->id_category_default =='14'} {l s='Llamar para consultar'} {/if} Debo de colocarlo en algún apartado especial de ese archivo que me indicas? He probado a meterlo pero no me salta nada con la ID de su categoría. Por ello mi pregunta si debo de encajarlo en algún sitio especial. Gracias Link to comment Share on other sites More sharing options...
ventura Posted July 3, 2014 Share Posted July 3, 2014 Depende de donde quierés que aparezca, utilizas la plantilla default ¿? Es conveniente que recompiles y vacies el cache Link to comment Share on other sites More sharing options...
GRXinside Posted July 3, 2014 Author Share Posted July 3, 2014 Hola, utilizo una plantilla comprada. Así lo he puesto y ya me aparece donde ya quiero. <!-- Consultar por telefono --> {if $product->id_category_default =='31'} {l s='Este producto solo se puede adquirir por telefono'} {/if} <!-- ---------------------------- --> <!-- availability --> <p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) OR ($product->quantity > 0 && !$product->available_now) OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}> <span id="availability_label">{l s='Availability:'}</span> <span id="availability_value"{if $product->quantity <= 0} class="warning_inline"{/if}>{if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}</span> </p> <p id="availability_date"{if ($product->quantity > 0) OR !$product->available_for_order OR $PS_CATALOG_MODE OR !isset($product->available_date) OR $product->available_date < $smarty.now|date_format:'%Y-%m-%d'} style="display: none;"{/if}> <span id="availability_date_label">{l s='Availability date:'}</span> <span id="availability_date_value">{dateFormat date=$product->available_date full=false}</span> </p> Bien, mi pregunta es la siguiente, En vez de texto puedo hacer que aparezca una imagen que le indique mejor? Y por otro lugar como podría hacer el texto un poco mas grande, de color y negrita y que pueda parpadear. Gracias espero una respuesta, me estas ayudando mucho! Link to comment Share on other sites More sharing options...
ventura Posted July 3, 2014 Share Posted July 3, 2014 (edited) Para que te aparezca una imagen {if $product->id_category_default =='31'} <img src="{$img_dir}only_tlf_{$lang_iso}.gif" alt="{l s='Este producto solo se puede adquirir por telefono'}" class="only_tlf_img"/> {/if} En la carpeta img de tu plantilla subes la imagen para cada idioma only_tlf_es.gif only_tlf_en.gif Si lo quieres con el texto pero editandolo como quieras, en el tpl asi: {if $product->id_category_default =='31'} <span class="only_tlf">{l s='Este producto solo se puede adquirir por telefono'}</span> {/if} Y en el global.css o archivo principal css de tu plantilla: .only_tlf { font-size:16px; font-weight:bold } Y lo pones como quieras Edited July 3, 2014 by ventura (see edit history) Link to comment Share on other sites More sharing options...
GRXinside Posted July 3, 2014 Author Share Posted July 3, 2014 Hola, Estoy intentando ejecutar la consulta y esto me dice: UPDATE ps_product_shopLEFT JOIN ps_category_product ON ps_product.id_product = ps_category_product.id_productSET out_of_stock = '2'WHERE (ps_category_product.id_category= 31) #1054 - Unknown column 'out_of_stock' in 'field list' Link to comment Share on other sites More sharing options...
ventura Posted July 3, 2014 Share Posted July 3, 2014 No te preocupes, me equivoque, solo tienes que hacerlo en el la tabla ps_product en ps_product_shop no existe esa columna Link to comment Share on other sites More sharing options...
GRXinside Posted July 3, 2014 Author Share Posted July 3, 2014 Hola Ventura, ejecute la consulta pero los productos de esta categoria no se cambian a Defecto: Denegar pedidos según lo establecido en las preferencias Sigo viendo que aparecen como lo deje. ¿Que puede ser? Saludos Link to comment Share on other sites More sharing options...
ventura Posted July 3, 2014 Share Posted July 3, 2014 En principio sería asi: 0 = DENEGAR PEDIDOS 1 = PERMITIR PEDIDOS 2 = LO ESTABLECIDO POR DEFECTO Haz esta tambien: UPDATE ps_stock_available LEFT JOIN ps_category_product ON ps_stock_available.id_product = ps_category_product.id_product SET out_of_stock = '2' WHERE (ps_category_product.id_category= 5) Link to comment Share on other sites More sharing options...
GRXinside Posted July 4, 2014 Author Share Posted July 4, 2014 Hola Ventura, los productos de toda una categoría se me han desactivado. Pero cuando pongo esto, UPDATE ps_product LEFT JOIN ps_category_product ON ps_product.id_product = ps_category_product.id_product SET price=0 WHERE (ps_category_product.id_category= 32) El precio sigue igual como estaba. He puesto también la tabla de _shop y hay me lanza error. Por lo otro me ha funcionad muy bien menos actualizar el precio completo de una categoría. Espero tu respuesta y muchas gracias Link to comment Share on other sites More sharing options...
ventura Posted July 4, 2014 Share Posted July 4, 2014 Tienes que hacer la consulta update a las dos tablas te daría error por algún sintax incorrecto UPDATE ps_product_shop LEFT JOIN ps_category_product ON ps_product_shop.id_product = ps_category_product.id_product SET price=0.00 WHERE (ps_category_product.id_category= 35) Y UPDATE ps_product LEFT JOIN ps_category_product ON ps_product.id_product = ps_category_product.id_product SET price=0.00 WHERE (ps_category_product.id_category= 35) Link to comment Share on other sites More sharing options...
GRXinside Posted July 4, 2014 Author Share Posted July 4, 2014 ¡Muchísimas gracias! Me has resuelto todo. Te lo agradezco demasiado. Gracias por tu ayuda Link to comment Share on other sites More sharing options...
ventura Posted July 4, 2014 Share Posted July 4, 2014 De nada , me alegro de que todo haya ido bien Link to comment Share on other sites More sharing options...
Recommended Posts