Buenas tardes,
acabo de hacer una instalación desde cero de mi plantilla con Joomla 3 y Virtuemart 3.
Esperaba que en las nuevas versiones de Virtuemart se mostraran desde las categorías los artículos sin stock, sin necesidad de entrar en cada artículo.
He estado leyendo en el foro y veo que hay un control de stock. He hecho pruebas con esas indicaciones pero no veo esa opción o no da la solución que busco ¿existe esa opción o debo instalar un módulo para esto? en ese caso ¿cuál me podrían recomendar?
Muchas gracias.
María.
URL del sitio: Contenido solo visible a usuarios registrados
Hola,
Para mostrar un mensaje de "Agotado" en los productos sin stock en el listado de productos edita el archivo templates/helena/html/com_virtuemart/category/default.php. Previa copia de seguridad localiza el siguiente código:
show_prices == '1') { if (($product->prices['discountAmount'] > '0.009' || $product->prices['discountAmount'] prices['discountAmount'] != '') { echo ''.$this->currency->createPriceDiv( 'basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices, TRUE ).''; } echo ''.$this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices, TRUE).''; /* if ($product->prices['salesPrice']images[0]->file_is_downloadable) { echo JText::_ ('COM_VIRTUEMART_PRODUCT_ASKPRICE'); } //todo add config settings if ($this->showBasePrice) { echo $this->currency->createPriceDiv ('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices); echo $this->currency->createPriceDiv ('basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $product->prices); } echo $this->currency->createPriceDiv ('variantModification', 'COM_VIRTUEMART_PRODUCT_VARIANT_MOD', $product->prices); if (round($product->prices['basePriceWithTax'],$this->currency->_priceConfig['salesPrice'][1]) != $product->prices['salesPrice']) { echo '' . $this->currency->createPriceDiv ('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices) . ""; } if (round($product->prices['salesPriceWithDiscount'],$this->currency->_priceConfig['salesPrice'][1]) != $product->prices['salesPrice']) { echo $this->currency->createPriceDiv ('salesPriceWithDiscount', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITH_DISCOUNT', $product->prices); } echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices); if ($product->prices['discountedPriceWithoutTax'] != $product->prices['priceWithoutTax']) { echo $this->currency->createPriceDiv ('discountedPriceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices); } else { echo $this->currency->createPriceDiv ('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices); } echo $this->currency->createPriceDiv ('discountAmount', 'COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT', $product->prices); echo $this->currency->createPriceDiv ('taxAmount', 'COM_VIRTUEMART_PRODUCT_TAX_AMOUNT', $product->prices); $unitPriceDescription = JText::sprintf ('COM_VIRTUEMART_PRODUCT_UNITPRICE', $product->product_unit); echo $this->currency->createPriceDiv ('unitPrice', $unitPriceDescription, $product->prices); */ } ?>
y pon este otro justo debajo:
product_in_stock < 1) echo ''; ?>
Este mismo cambio lo puedes aplicar en el archivo templates/helena/html/com_virtuemart/virtuemart/default_products.php, para que también se muestre en los módulos que cargan productos.
Mil gracias, Pablo! es justo lo que necesitaba.
He aplicado ese código y funciona, sale el botón de agotado, pero el código debe fallar en algún punto porque me ha modificado el stock de todos los producto poniéndolos todos a cero, ¿cómo podría mantener el stock real?
¿Habría alguna manera de hacer lo mismo pero con las novedades?
Gracias de nuevo por la ayuda.
María.
Hola
Has quitado el código enviado por Pablo?, actualmente al consultar tu web no veo que aparezca el mensaje
Contenido solo visible a usuarios registrados
Veo además que el código no debería afectarte el precio, es posible que hayas colocado el código de manera incorrecta. Tendrías que adjuntar el archivo que has modificado para revisar el código que has puesto y donde lo has colocado, puedes adjutnar el archivo comprimido en .zip como adjunto.
Saludos.
Hola, Jhon,
tal vez me he equivocado.
Los precios no han cambiado sino el stock, todos los productos se han puesto a cero.
He comprobado que si subo el stock el botón desaparece, como debe hacer, pero al hacer una prueba de compra, comprando todo el stock y confirmando la compra, el botón de agotado no vuelve a aparecer porque el stock no baja, no se pone a cero.
Dejo el adjunto el archivo templates/helena/html/com_virtuemart/category/default.php como lo tengo ahora, marcado en amarillo el código añadido.
Muchas gracias por la ayuda.
María.
Hola
No creo que tenga que ver con la modificación que has realizado recientemente, esto lo puedes probar quitando la modificación y probando nuevamente.
Al parecer tu problema esta relacionado con alguna configuración que tienes, te sugiero revises :
https://www.webempresa.com/foro/30-VirtueMart-20/99316-Control-de-Stock-en-Virtuemart.html
Si aún tienes dudas respecto a este último tema mejor abrir un nuevo hilo de discusión con el título adecuado.
Saludos
Hola, Jhon,
ya lo he conseguido arreglar, todos los productos tienen stock a cero pero tiene fácil solución. ¡Realmente el código de Pablo Velasco funciona! :laugh: :silly: :laugh:
Me confundí cuando pensaba que el stock no se modificaba con las ventas porque sólo cambiaba el estado del pedido a "Confirmado" pero debía cambiarlo a "Enviado".
¡Esto está solucionado!
Me gustaría saber si algún código para que los productos nuevos se marquen como novedades, sería fantástico tener también esta posibilidad implementada en la página.
Muchas gracias por la ayuda.
María.
Hola.
Para no liar mas este tema ya que es muy largo y también para poder ayudar a usuarios que busca una solución en concreto, podridas realizar la otra consulta abriendo un nuevo hilo en el foro?
Cerramos este tema ya que esta parte esta solucionada.
Un saludo