Avisos
Vaciar todo

Botón comprar no funciona en la página de categorias  

 
Virginia
 Virginia
Usuario experto

Hola a todos.

Hace tiempo ya habrí un hilo para poder insertar el botón de comprar en la página de categorías. El hilo en cuestión era este:
Cambiar enlace "Detalles del producto" por botón comprar

Ahora he activado el pop-up (creo que es Ajax) que aparece cuando compras un producto. En la ficha de cualquier producto este botón funciona correctamente (adjunto la imagen "captura_product-details.png").
Enlace: Ficha de producto

El problema viene cuando se intenta comprar desde la página de categorías. Si veis la imagen "captura_category.png" comprobaréis que el botón "Mostrar carro" no aparece y el producto no se actualiza en el carro, es decir, es como si no estuviésemos comprando.
Enlace: Categorias

Antes de activar la ventana "ajax" de virtuemart funcionaba el proceso de compra, pero ha sido al activarlo cuando ha empezado a funcionar mal pero sólo en la página de categorías (en el resto de páginas funciona bien). Por si acaso, he adjuntado el archivo default.php de la carpeta "category".

Seguro que el error está en el código que inserté en ese archivo para que pudiese aparecer el botón de comprar, pero he estado haciendo algunas modificaciones y sigue dando ese error.

Por favor, si alquien me puede ayudar se lo agradeceré eternamente.

URL del sitio: http://www.electronicajamer.es

Citar
Respondido : 24/07/2012 8:08 pm
Virginia
 Virginia
Usuario experto

Como no me ha dejado insertar el archivo default.php, a continuación pego el código de dicho archivo:

category',$this->category);
vmdebug('$this->category '.$this->category->category_name);
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
JHTML::_( 'behavior.modal' );
/* javascript for list Slide
  Only here for the order list
  can be changed by the template maker
*/
$js = "
jQuery(document).ready(function () {
	jQuery('.orderlistcontainer').hover(
		function() { jQuery(this).find('.orderlist').stop().show()},
		function() { jQuery(this).find('.orderlist').stop().hide()}
	)
});
";

$document = JFactory::getDocument();
$document->addScriptDeclaration($js);

/*$edit_link = '';
if(!class_exists('Permissions')) require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'permissions.php');
if (Permissions::getInstance()->check("admin,storeadmin")) {
	$edit_link = 'category->virtuemart_category_id.'">
		'.JHTML::_('image', 'images/M_images/edit.png', JText::_('COM_VIRTUEMART_PRODUCT_FORM_EDIT_PRODUCT'), array('width' => 16, 'height' => 16, 'border' => 0)).'';
}

echo $edit_link; */ ?>
category->category_description ; ?>
search) { if ($this->category->haschildren) { // Category and Columns Counter $iCol = 1; $iCategory = 1; // Calculating Categories Per Row $categories_per_row = VmConfig::get ( 'categories_per_row', 3 ); $category_cellwidth = ' width'.floor ( 100 / $categories_per_row ); // Separator $verticalseparator = " vertical-separator"; ?>
category->children)){ foreach ( $this->category->children as $category ) { // Show the horizontal seperator if ($iCol == 1 && $iCategory > $categories_per_row) { ?>
virtuemart_category_id ); // Show Category ?> <div class="category floatleft">

<a href="" title="category_name ?>"> category_name ?>
ids) { echo $category->images[0]->displayMediaThumb("",false); //} ?>

keyword)) { ?>

keyword; ?>

search !==null ) { ?> <form action="category->virtuemart_category_id ); ?>" method="get"> products)) { ?>
orderByList['orderby']; ?> orderByList['manufacturer']; ?>
vmPagination->getResultsCounter();?>vmPagination->getLimitBox(); ?>

category->category_name; ?>

perRow; $Browsecellwidth = ' width'.floor ( 100 / $BrowseProducts_per_row ); // Separator $verticalseparator = " vertical-separator"; // Count products $BrowseTotalProducts = 0; foreach ( $this->products as $product ) { $BrowseTotalProducts ++; } // Start the Output foreach ( $this->products as $product ) { // Show the horizontal seperator if ($iBrowseCol == 1 && $iBrowseProduct > $BrowseProducts_per_row) { ?>
<div class="product floatleft">
virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id ), $product->images[0]->displayMediaThumb( 'class="featuredProductImage" border="0"',false,'class="modal"' ) ); ?> showRating) { ?> :
votes->rating.'.gif'; // echo JHTML::image($img_url, $product->votes->rating.' '.JText::_('COM_VIRTUEMART_REVIEW_STARS')); // echo JText::_('COM_VIRTUEMART_TOTAL_VOTES').": ". $product->votes->allvotes; ?>
<span class="vmicon vm2-stock->stock_level ?>" title="stock->stock_tip ?>">

link, $product->product_name); ?>

product_s_desc)) { ?>

product_s_desc, 40, '...') ?>

Referencia: product_sku ?>
<div class="product_price_category" id="productPricevirtuemart_product_id ?>"> show_prices == '1') { if( $product->product_unit && VmConfig::get('vm_price_show_packaging_pricelabel')) { echo "". JText::_('COM_VIRTUEMART_CART_PRICE_PER_UNIT').' ('.$product->product_unit."):"; } if(empty($product->prices) and VmConfig::get('askprice',1) and empty($product->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); echo $this->currency->createPriceDiv('basePriceWithTax','COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX',$product->prices); echo $this->currency->createPriceDiv('discountedPriceWithoutTax','COM_VIRTUEMART_PRODUCT_DISCOUNTED_PRICE',$product->prices); echo $this->currency->createPriceDiv('salesPriceWithDiscount','COM_VIRTUEMART_PRODUCT_SALESPRICE_WITH_DISCOUNT',$product->prices); echo $this->currency->createPriceDiv('salesPrice','COM_VIRTUEMART_PRODUCT_SALESPRICE',$product->prices); 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); } ?>
End Boton Comprar Extra <form method="post" class="product" action="index.php" id="addtocartproductvirtuemart_product_id ?>"> product->customfieldsCart)) { ?>
product->customfieldsCart as $field) { ?><div style="display:inline-block;" class="product-field product-field-type-field_type ?>"> custom_title) ?> custom_tip, JText::_($field->custom_title), 'tooltip.png'); ?> display ?> custom_field_desc ?>

virtuemart_product_id as link to child product_id * custom_value is relation value to child */ if (!empty($this->product->customsChilds)) { ?>
product->customsChilds as $field) { ?> <div style="display:inline-block;" class="product-field product-field-type-field->field_type ?>"> field->custom_title) ?> field->custom_value) ?> display ?>

<input type="hidden" class="pname" value="product_name ?>"> <input type="hidden" name="virtuemart_product_id[]" value="virtuemart_product_id ?>" /> <input type="hidden" name="virtuemart_manufacturer_id" value="virtuemart_manufacturer_id ?>" /> <input type="hidden" name="virtuemart_category_id[]" value="virtuemart_category_id ?>" /> End Boton Comprar Extra

link, JText::_('COM_VIRTUEMART_PRODUCT_DETAILS'), array('title' => $product->product_name,'class' => 'product-details')); ?>

<!-- <label for="quantityproduct->virtuemart_product_id;?>" class="quantity_box">: --> product->product_in_stock) { $button_lbl = JText::_('COM_VIRTUEMART_CART_NOTIFY'); $button_cls = 'notify-button'; } ?> <input type="submit" name="addtocart" class="addtocart-button" value="" title="" />
products as $product ) // Do we need a final closing row tag? if ($iBrowseCol != 1) { ?>
vmPagination->getPagesLinks(); ?>vmPagination->getPagesCounter(); ?>
search !==null ) echo JText::_('COM_VIRTUEMART_NO_RESULT').($this->keyword? ' : ('. $this->keyword. ')' : '') ?>
ResponderCitar
Respondido : 24/07/2012 8:12 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Jhon
 Jhon
Soporte CMS Webempresa Moderator

HOla Virginia

No muestra correctamente la pantalla emergente, falta un botón.

Indícanos en que archivo y la línea de código en la que has insertado el código anterior para probar lo que comentas.

En el hilo de discusión http://forum.virtuemart.net/index.php?topic=90961.0 , hay hasta 7 páginas , revisa las últimas entradas que es posible que exista una variación del código a insertar.

Por otro lado es posible que esta funcionalidad de mostrar el botón de compra en la lista de productos de categorías sea incluida en futuras versiones de vm.

Saludos.

ResponderCitar
Respondido : 25/07/2012 8:20 pm
Virginia
 Virginia
Usuario experto

Hola de nuevo Jhon.

Exacto, falta un botón y la verdad es que no se porqué. El archivo es el default.php de la carpeta category y el código está en el segundo mensaje de este hilo.

El código que yo añadí está entre las líneas 293 y 369 (aprox.). Es este:

				
Boton Comprar Extra <form method="post" class="product" action="index.php" id="addtocartproductvirtuemart_product_id ?>"> product->customfieldsCart)) { ?>
product->customfieldsCart as $field) { ?> <div style="display:inline-block;" class="product-field product-field-type-field_type ?>"> custom_title) ?> custom_tip, JText::_($field->custom_title), 'tooltip.png'); ?> display ?> custom_field_desc ?>

virtuemart_product_id as link to child product_id * custom_value is relation value to child */ if (!empty($this->product->customsChilds)) { ?>
product->customsChilds as $field) { ?> <div style="display:inline-block;" class="product-field product-field-type-field->field_type ?>"> field->custom_title) ?> field->custom_value) ?> display ?>

<input type="hidden" class="pname" value="product_name ?>"> <input type="hidden" name="virtuemart_product_id[]" value="virtuemart_product_id ?>" /> <input type="hidden" name="virtuemart_manufacturer_id" value="virtuemart_manufacturer_id ?>" /> <input type="hidden" name="virtuemart_category_id[]" value="virtuemart_category_id ?>" /> End Boton Comprar Extra
<!-- <label for="quantityproduct->virtuemart_product_id;?>" class="quantity_box">: --> product->product_in_stock) { $button_lbl = JText::_('COM_VIRTUEMART_CART_NOTIFY'); $button_cls = 'notify-button'; } ?> <input type="submit" name="addtocart" class="addtocart-button" value="" title="" />

En el hilo del foro de virtuemart hay algunas personas que también tienen errores, algunas de las soluciones que proponen las he hecho pero al menos a mi no me funcionan. Seguiré leyendo el hilo a ver si me entero mejor de lo que dicen. De todas formas, cualquier ayuda será recibida con los brazos abiertos. 🙂

Gracias por responder Jhon.

ResponderCitar
Respondido : 26/07/2012 6:11 pm

Jhon
 Jhon
Soporte CMS Webempresa Moderator

HOla Virginia

Agrega el código del archivo adjunto, tal como se ve en el otro archivo adjunto de imagen, he realizado una prueba en un sitio web de ejemplo y funcionó correctamente.

Saludos.

ResponderCitar
Respondido : 27/07/2012 6:16 pm