Jump to content

Actualizar una categoria entera de productos


Recommended Posts

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

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

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 by ventura (see edit history)
Link to comment
Share on other sites

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

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

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 by ventura (see edit history)
Link to comment
Share on other sites

Hola,

 

Estoy intentando ejecutar la consulta y esto me dice:

 

UPDATE ps_product_shop
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= 31)

 

#1054 - Unknown column 'out_of_stock' in 'field list'

Link to comment
Share on other sites

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

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

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

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

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...