Jump to content

Kato2

Members
  • Posts

    8
  • Joined

  • Last visited

Profile Information

  • Activity
    Project Owner

Kato2's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. He estado de viaje y no he podido probar el código hasta esta misma tarde. Muchísimas gracias onlygoliat, ha funcionado a la primera. Te quedo muy agradecido. Doy el tema como solucionado.
  2. Hola onlygoliat, esa que me indicas es la página de producto. Yo me refiero a la página de confirmación de pedido o checkout, en la captura que adjunto lo señalado en rojo son los atributos del producto. Como ves aparecen uno a continuación de otro separados por una coma. Lo que quiero saber es cómo ponerlos en forma de lista, uno debajo de otro. Saludos y gracias por tu interés.
  3. Hola onlygoliat, gracias por interesarte por mi pregunta. El valor se muestra en el if del archivo /themes/mi_tema/shopping-cart-product-line.tpl siguiente: {if isset($product.attributes) && $product.attributes}<a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)|escape:'htmlall':'UTF-8'}">{$product.attributes|escape:'htmlall':'UTF-8'}</a>{/if} que da como resultado el código html siguiente, en los atributos que puse de ejemplo: <a href="https://passur.es/tienda/es/motores-para-puertas-abatibles-1-y-2-hojas/1-kit-pb-400.html#/fotocelula-sin_fotocelula/mandos-2_mandos/electrocerradura-sin_electrocerradura">Añade electrocerradura : Sin Electrocerradura, Añade fotocelulas a tu kit : Sin fotocelula, Añade Mandos a tu kit : 2 mandos</a> Archivo /themes/mi_tema/shopping-cart-product-line.tpl completo: <tr id="product_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}" class="cart_item{if isset($productLast) && $productLast && (!isset($ignoreProductLast) || !$ignoreProductLast)} last_item{/if}{if isset($productFirst) && $productFirst} first_item{/if}{if isset($customizedDatas.$productId.$productAttributeId) AND $quantityDisplayed == 0} alternate_item{/if} address_{$product.id_address_delivery|intval} {if $odd}odd{else}even{/if}"> <td class="cart_product"> <a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'small_default')|escape:'html'}" alt="{$product.name|escape:'htmlall':'UTF-8'}" {if isset($smallSize)}width="{$smallSize.width}" height="{$smallSize.height}" {/if} /></a> </td> <td class="cart_description"> <p class="s_title_block"><a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)|escape:'htmlall':'UTF-8'}">{$product.name|escape:'htmlall':'UTF-8'}</a></p> {if isset($product.attributes) && $product.attributes}<a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)|escape:'htmlall':'UTF-8'}">{$product.attributes|escape:'htmlall':'UTF-8'}</a>{/if} </td> <td class="cart_ref">{if $product.reference}{$product.reference|escape:'htmlall':'UTF-8'}{else}--{/if}</td> <td class="cart_unit"> <span class="price" id="product_price_{$product.id_product}_{$product.id_product_attribute}{if $quantityDisplayed > 0}_nocustom{/if}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}"> {if !empty($product.gift)} <span class="gift-icon">{l s='Gift!'}</span> {else} {if isset($product.is_discounted) && $product.is_discounted} <span style="text-decoration:line-through;">{convertPrice price=$product.price_without_specific_price}</span><br /> {/if} {if $priceDisplay} {convertPrice price=$product.price} {else} {convertPrice price=$product.price} {/if} {/if} </span> </td> <td class="cart_quantity"{if isset($customizedDatas.$productId.$productAttributeId) AND $quantityDisplayed == 0} style="text-align: center;"{/if}> {if isset($cannotModify) AND $cannotModify == 1} <span style="float:left"> {if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count} {else} {$product.cart_quantity-$quantityDisplayed} {/if} </span> {else} {if isset($customizedDatas.$productId.$productAttributeId) AND $quantityDisplayed == 0} <span id="cart_quantity_custom_{$product.id_product}_{$product.id_product_attribute}_{$product.id_address_delivery|intval}" >{$product.customizationQuantityTotal}</span> {/if} {if !isset($customizedDatas.$productId.$productAttributeId) OR $quantityDisplayed > 0} <div class="cart_quantity_button"> <a rel="nofollow" class="cart_quantity_up" id="cart_quantity_up_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" href="{$link->getPageLink('cart', true, NULL, "add=1&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_address_delivery={$product.id_address_delivery|intval}&token={$token_cart}")|escape:'html'}" title="{l s='Add'}"><img src="{$img_dir}icon/quantity_up.gif" alt="{l s='Add'}" width="14" height="9" /></a><br /> {if $product.minimal_quantity < ($product.cart_quantity-$quantityDisplayed) OR $product.minimal_quantity <= 1} <a rel="nofollow" class="cart_quantity_down" id="cart_quantity_down_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" href="{$link->getPageLink('cart', true, NULL, "add=1&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_address_delivery={$product.id_address_delivery|intval}&op=down&token={$token_cart}")|escape:'html'}" title="{l s='Subtract'}"> <img src="{$img_dir}icon/quantity_down.gif" alt="{l s='Subtract'}" width="14" height="9" /> </a> {else} <a class="cart_quantity_down" style="opacity: 0.3;" href="#" id="cart_quantity_down_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" title="{l s='You must purchase a minimum of %d of this product.' sprintf=$product.minimal_quantity}"> <img src="{$img_dir}icon/quantity_down.gif" width="14" height="9" alt="{l s='Subtract'}" /> </a> {/if} </div> <input type="hidden" value="{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count}{else}{$product.cart_quantity-$quantityDisplayed}{/if}" name="quantity_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}_hidden" /> <input size="2" type="text" autocomplete="off" class="cart_quantity_input" value="{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count}{else}{$product.cart_quantity-$quantityDisplayed}{/if}" name="quantity_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" /> {/if} {/if} </td> <td class="cart_total"> <span class="price" id="total_product_price_{$product.id_product}_{$product.id_product_attribute}{if $quantityDisplayed > 0}_nocustom{/if}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}"> {if !empty($product.gift)} <span class="gift-icon">{l s='Gift!'}</span> {else} {if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)} {if !$priceDisplay}{displayPrice price=$product.total_customization}{else}{displayPrice price=$product.total_customization}{/if} {else} {if $priceDisplay}{displayPrice price=$product.total}{else}{displayPrice price=$product.total}{/if} {/if} {/if} </span> </td> {if !isset($noDeleteButton) || !$noDeleteButton} <td class="cart_delete"> {if (!isset($customizedDatas.$productId.$productAttributeId) OR $quantityDisplayed > 0) && empty($product.gift)} <div> <a rel="nofollow" class="cart_quantity_delete" id="{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" href="{$link->getPageLink('order-opc', true, NULL, "delete=1&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_address_delivery={$product.id_address_delivery|intval}&token={$token_cart}")|escape:'html'}">{*{l s='Delete'}*}</a> </div> {/if} </td> {/if} </tr> Muchas gracias de antemano.
  4. Hola a todos, uso la plantilla por defecto en la versión 1.5.6.2 Cuando los tiene, los atributos seleccionados aparecen debajo del nombre del producto en forma de string o cadena de texto, separados por comas. A ver si alguien me puede decir como cambiar la presentación por defecto de los atributos del producto para que aparezcan como una lista. Creo que he encontrado donde se genera la cadena de texto, en el archivo /classes/Cart.php en la función cacheSomeAttributesLists(). Mirando el manual de PHP parece que utiliza la función implode() para crear el string a partir de un select a la base de datos. Lo que no se es cómo modificar esto para que los atributos aparezcan en forma de lista como en la imagen que pongo de ejemplo. public static function cacheSomeAttributesLists($ipa_list, $id_lang) { if (!Combination::isFeatureActive()) return; $pa_implode = array(); foreach ($ipa_list as $id_product_attribute) if ((int)$id_product_attribute && !array_key_exists($id_product_attribute.'-'.$id_lang, self::$_attributesLists)) { $pa_implode[] = (int)$id_product_attribute; self::$_attributesLists[(int)$id_product_attribute.'-'.$id_lang] = array('attributes' => '', 'attributes_small' => ''); } if (!count($pa_implode)) return; $result = Db::getInstance()->executeS(' SELECT pac.`id_product_attribute`, agl.`public_name` AS public_group_name, al.`name` AS attribute_name FROM `'._DB_PREFIX_.'product_attribute_combination` pac LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON ( a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.' ) LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON ( ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = '.(int)$id_lang.' ) WHERE pac.`id_product_attribute` IN ('.implode($pa_implode, ',').') ORDER BY agl.`public_name` ASC' ); foreach ($result as $row) { self::$_attributesLists[$row['id_product_attribute'].'-'.$id_lang]['attributes'] .= $row['public_group_name'].' : '.$row['attribute_name'].', '; self::$_attributesLists[$row['id_product_attribute'].'-'.$id_lang]['attributes_small'] .= $row['attribute_name'].', '; } foreach ($pa_implode as $id_product_attribute) { self::$_attributesLists[$id_product_attribute.'-'.$id_lang]['attributes'] = rtrim( self::$_attributesLists[$id_product_attribute.'-'.$id_lang]['attributes'], ', ' ); self::$_attributesLists[$id_product_attribute.'-'.$id_lang]['attributes_small'] = rtrim( self::$_attributesLists[$id_product_attribute.'-'.$id_lang]['attributes_small'], ', ' ); } } Agradecería cualquier indicación para resolver el problema. Muchas gracias de antemano.
  5. Lo de la suma total de precios de productos más los gastos de envío sin IVA cuando el carrito no está desplegado también lo he conseguido. Sólo me queda lo del paréntesis. La cantidad de productos originalmente sale sin paréntesis en el tema por defecto, pero yo quiero que salga entre paréntesis y como ya dije en el primer post, el paréntesis de apertura consigo que aparezca solo refrescando la página. Ya me quedan menos cosas.
  6. Hola, Trabajo con la versión 1.5.6.2 de Prestashop. Tengo en Parámetros avanzados/Rendimiento->Caché de plantillas: Forzar compilación y no usar caché. En todos los sitios donde aparecen los precios de los productos, necesito que aparezcan con IVA y sin IVA, menos en el carrito desplegable, que solo necesito que aparezcan el precio de los productos, el transporte y la suma total de ambos pero solo sin IVA, y en la parte del carrito que depende de blokuserinfo.tpl que necesito que salga la suma del precio de los productos del carrito sin IVA junto al número de productos del carrito (Ejemplo: 122,51 € (1 producto)) He probado las dos opciones que tiene Prestashop en Clientes/Grupos-Método de visualización de precios. Después de mucho trastear me he quedado con "Impuestos incluidos" porque me parecía la mejor opción, y consigo que esté todo correcto en casi todas partes modificando los distintos archivos tpl que intervienen, y aparece todo como yo quiero, menos: - en el carrito desplegable que no se cómo hacer para que aparezca el precio del tranporte sin IVA. - en el total del carrito que depende del archivo blockuserinfo.tpl, que si modifico esto: {if $cart_qties > 0} {if $priceDisplay == 1} {assign var='blockuser_cart_flag' value='Cart::BOTH_WITHOUT_SHIPPING'|constant} {convertPrice price=$cart->getOrderTotal(false, $blockuser_cart_flag)} {else} {assign var='blockuser_cart_flag' value='Cart::BOTH_WITHOUT_SHIPPING'|constant} {convertPrice price=$cart->getOrderTotal(true, $blockuser_cart_flag)} {/if} {/if} por esto otro: {if $cart_qties > 0} {if $priceDisplay == 1} {assign var='blockuser_cart_flag' value='Cart::BOTH_WITHOUT_SHIPPING'|constant} {convertPrice price=$cart->getOrderTotal(false, $blockuser_cart_flag)} {else} {assign var='blockuser_cart_flag' value='Cart::BOTH_WITHOUT_SHIPPING'|constant} {convertPrice price=$cart->getOrderTotal(false, $blockuser_cart_flag)} {/if} {/if} pasa que cuando añado un producto al carrito sale todavía el total con IVA, pero si refresco la página (que es cuando tira del archivo blockuserinfo.tpl) el total de la suma precio de los productos sale ya por fin sin IVA. También en este total hay un paréntesis que se pierde cuando añado un producto en el carrito y que reaparece cuando refresco la página. Una última cosa, cuando añado un producto al carrito, si supera cierta cantidad el envío es gratuito, y aparece en el carrito desplegable en Transporte "Envío gratuito" en vez de la cantidad, lo cual es correcto, pero al recargar la página aparece 0,0 € en vez de "Envío gratuito" y quisiera que también apareciera la frase en vez de la cantidad. Agradecería mucho que alguien pudiera orientarme.
  7. Hola a todos, soy José Antonio. Llevo bastante tiempo consultando el foro, que me ha sido de gran ayuda, aunque aún no me había presentado. Disculpas por la tardanza. Saludos.
×
×
  • Create New...