Jump to content

Stock para productos con atributos, aparece "Agotado" a pesar de que sus productos-atributos tengan stock


m4ndarina88

Recommended Posts

Hola, 

Mi consulta es, si alguien sabe como hacer para que cuando cargue mi módulo, para productos con atributos, considere el stock en total y NO el stock del producto por default  y no me aparezca la etiqueta de  "AGOTADO". 

Utilizo PrestaShop 1.7.2.4. 

 

Gracias

Captura.PNG

Link to comment
Share on other sites

  • 3 weeks later...

Lo resolví de la siguiente manera: 

Se agregó al requerimiento, que la variable Global de Configuración XXXXXSTOCK_PROD_AGOTADOS (tabla pst_configuration), cambie su valor dependiendo del id_warehouse.

  1. DESACTIVÉ EN EL BACK OFFICE EL BOTON DE "AÑADIR AL CARRITO", PARA QUE NO SE MUESTRE EN LOS CATÁLOGOS.
  2. PARA EL CATÁLOGO

.....themes\NOMBRE\templates\catalog\_partials\miniatures\product.tpl   (MODIFICAR)

La variable STOCK_VALIDATE y QUANTITY_TOTAL, las he creado y agregado al array del PRODUCT. 

image.thumb.png.343d8ecc219c0b34e0d370860a35d012.png

 

...classes\controller\ProductListingFrontController.php (AGREGAR)

image.thumb.png.e1fe89f674b8588fd0ef255c1ebfc013.png

 

PARA EL PRODUCTO Y SU ATRIBUTO

...override\controllers\front\ProductController.php   (MODIFICAR/AGREGAR)

image.thumb.png.f987c29da7d7762f0040d1ba3f79c38c.png

 

Realizando estos cambios, funcionó. Cualquier duda y/o comentario me escriben  =)

 

image.png

Edited by m4ndarina88 (see edit history)
Link to comment
Share on other sites

  • 1 year later...

Yo uso esta class para saber el stock real del producto y sus atributos

$id_product_attribute = 0;

StockAvailable::getQuantityAvailableByProduct($id_product,$id_product_attribute, $id_shop = null);


 

Si pongo el atributo, me dice el stock de ese atributo.

si lo uso en un foreach antes uso la orden

$combinations = $product->getAttributesResume($id_lang);

foreach($combinations as $combination){

$id_product_attribute = $combination['id_product_attribute'];

StockAvailable::getQuantityAvailableByProduct($id_product,$id_product_attribute, $id_shop = null);

}

 

Link to comment
Share on other sites

hace 9 horas, gusman126 dijo:

Yo uso esta class para saber el stock real del producto y sus atributos


$id_product_attribute = 0;

StockAvailable::getQuantityAvailableByProduct($id_product,$id_product_attribute, $id_shop = null);


 

Si pongo el atributo, me dice el stock de ese atributo.

si lo uso en un foreach antes uso la orden


$combinations = $product->getAttributesResume($id_lang);

foreach($combinations as $combination){

$id_product_attribute = $combination['id_product_attribute'];

StockAvailable::getQuantityAvailableByProduct($id_product,$id_product_attribute, $id_shop = null);

}

 

Muchas gracias por responder, me podrías indicar donde ponerlo? estoy en Prestashop 1.7.4.2, uso la plantilla por defecto de prestashop y el código que use pero tuve que quitar porque no me daba buen resultado es {if $product.quantity >0}<li class="product-fla"></li>{else}<li class="product-flag2">{l s='Agotado'}</li>{/if} el cual puse en themes/classic/templates/catalog/_partials/miniatures/product.tpl

Link to comment
Share on other sites

hace 9 horas, ChuChuah_2017 dijo:

Muchas gracias por responder, me podrías indicar donde ponerlo? estoy en Prestashop 1.7.4.2, uso la plantilla por defecto de prestashop y el código que use pero tuve que quitar porque no me daba buen resultado es {if $product.quantity >0}<li class="product-fla"></li>{else}<li class="product-flag2">{l s='Agotado'}</li>{/if} el cual puse en themes/classic/templates/catalog/_partials/miniatures/product.tpl

Disculpa, no habia visto que era una recuperación de un post antiguo

Me habia parecido que estabas haciendo cambios y un modulo para control de stock

Si añades el codigo y modificaciones que ha puesto el primer usuario y no funciona es posible que sea por los cambios en las versiones mayores a la que uso el.

A ver si ve las respuestas y contesta.

 

 

Link to comment
Share on other sites

hace 6 minutos, gusman126 dijo:

Disculpa, no habia visto que era una recuperación de un post antiguo

Me habia parecido que estabas haciendo cambios y un modulo para control de stock

Si añades el codigo y modificaciones que ha puesto el primer usuario y no funciona es posible que sea por los cambios en las versiones mayores a la que uso el.

A ver si ve las respuestas y contesta.

 

 

El problema es que no puedo poner el código que el utilizó porque no se escribirlo, no se poner (int) que el tiene puesto y al ponerlo así sin mas me dice que hay un error. si alguien puede ponerme escrito el código para yo copiarlo, se lo agradecería enormemente.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...