Jump to content

Recommended Posts

Buenos días:

Google webmaster tools me dice que tengo error en los datos estructurados de mis productos: me dice "falta price" el caso es que todos los productos tienen precio y en el comprobador de google el artículo sale con precio. 

Uso el tema por defecto y la versión es V1.6

¿A alguien le ha pasado lo mismo?

Gracias

 

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

No, detecté la posible solución en mi plantilla (warehouse), el código schema de offer lo cambié por price, pero nada, no he logrado nada. Tampoco encuentro nada por la red al respecto, ni en los foros de google, ni en la ayuda de schema.

 

Me uno a la petición. ¿Conseguisteis solucionarlo?

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 2 weeks later...

Mismo problema. Tambien uso Warehouse de plantilla, no tengo ningun problema, sin embargo de 249 productos, me sale el fallo en 10 con schema.org sobre el precio.

No lo entiendo, esta todo como el resto de productos que no dan problemas.

Uso la version 1.5.6.2 de Prestashop.

 

¿Alguien sabe algo?

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

  • 2 weeks later...
  • 3 weeks later...
  • 3 weeks later...

En mi caso, los errores de falta price están desapareciendo mediante la modificación del product.tpl y el product-list.tpl que indica la página de Nemos, justo en el apartado Price and Currency: "This is perhaps the most important part, because Google may decide not to add rich snippets for your site, if something is wrongly setup here (as I discovered with my own errors!)."

 

Explica precisamente el porqué del error y cómo solventarlo, haciendo que la etiqueta para microdatos referente al precio se muestre sin el símbolo del €.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

él intentado La Solución Que se PROPONE Aquí y me da Errores y he aquí que él Dejado estába como, sabeis si this Mejor Explicado en Otro Sitio, os ESTAS RESULTADO a Todos this solution?

 

muchas gracias, os dejo la web Que administro Por si quereis Echarle Vistazo de la ONU.

 

http://bibatools.com/

Yo lo he intentado que él y los Errores Siguen Ahí.

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

Así es cómo he dejado yo el product.tpl, alrededor de la línea 264:

                <p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                {if $priceDisplay >= 0 && $priceDisplay <= 2}
                {$rightPrice = {convertPrice price=$productPrice[spam-filter]
                    
                <span id="our_price_display" itemprop="price">{$rightPrice|regex_replace:"/[\\{$currencySign}]/":""}</span>
                    <meta itemprop="priceCurrency" content="{$currency->iso_code}" /> {$currencySign}
                    <!--{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))}
                        {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
                    {/if}-->
                {/if}
                </p>

En este punto, el signo de moneda ya está fuera de la etiqueta de precio con lo que Google se supone que acepta como correcto. Para el caso de productos con combinaciones, el signo saldrá repetido y por ello debemos modificar también el product.js situado en la carpeta /js/ del directorio de la plantilla.

 

Añadir justo debajo de la línea $('#our_price_display').text(our_price); sobre la linea 394 :

var re = new RegExp("\\"+currencySign, "g");
var signRemoved = our_price.replace(re, "");

$('#our_price_display').text(signRemoved);

La versión de PS que utilizo es la 1.5, para 1.6 también debería de funcionar. Recordad también que pueden pasar varios días hasta que Google rastree de nuevo vuestras páginas.

  • Like 1
Link to comment
Share on other sites

A mi me sucede lo mismo, lo que puedo observar es que los datos estructurados de los productos funcionan correctamente, el problema viene con la home y las categorías, que detecta varios productos pero sin datos estructurados.

 

Se podría solucionar de la misma manera? uso PS 1.6.

Link to comment
Share on other sites

muchas gracias xinito,

He hecho el cambio que propones en prestashop 1.6, con el product.tpl funciona perfectamente, pero en el product.js no encuentro en prestashop 1.6 la linea  $('#our_price_display').text(our_price); seria ideal que alguien nos dijera donde colocar este código.

Muchas gracias a todos por la ayuda

Link to comment
Share on other sites

Como lo que se busca es eliminar el signo de € para los productos con combinaciones, sin necesidad de tocar el product.js, podemos modificar la línea del product.tpl donde se invoca, quedando de la siguiente manera:

<p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
     {if $priceDisplay >= 0 && $priceDisplay <= 2}
         {$rightPrice = {convertPrice price=$productPrice[spam-filter]
                   
         <span id="our_price_display" itemprop="price">{$rightPrice|regex_replace:"/[\\{$currencySign}]/":""}</span>
         {if isset($groups)}<span></span>{else}<span class="price">{$currency->sign}</span>{/if}
     {/if}
</p>

Podría ser una solución, no sé si la mejor.

Un saludo.

Link to comment
Share on other sites

Voy a ver si puedo aclararos algo.

Para las versiones 1.6 modificar el pordut.js no funciona

 
Si lo modificáis según el documento explica y añadis esto:
var re = new RegExp("\\"+currencySign, "g");
var signRemoved = our_price.replace(re, "");
$('#our_price_display').text(signRemoved);
 
Al hacer cualquier cambio de combinación en el producto que afecte al precio no funcionará (por ejemplo cambiar un pote de pintura del formato de 1l a uno de 4l)
 
Para el product.js sólo hay que añadir:
 
var re = new RegExp("\\"+currencySign, "g");
 
Veréis que si lo haceís borra uno de los dos sinos del € pero el precio sale con 3 decimales. Hay que cambiar esta línea:
 
$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, currencySign, currencyBlank));
 
Por la siguiente (borra currencySign y lo cambiamos por un espacio)
 
$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, " ", currencyBlank));
 
El precio ya se verá sólo con 2 decimales.
 
En cuanto a los errores en las herramietas de webmaster poco o nada se puede hacer. Como comenta en el artículo:
 
"Google only accepts rich snippets for pages which have a single product (for some reason I still have to discover, I didn’t know it before they directly contacted me about my own product list: Product markup on listing pages is not supported
 
Los errores que os aparecen son las páginas de nuevos, populares, los más vendidos y tal y como está actualmente estrcuturado Google, de momento no desaparecerán. De todos modos el impacto negativo que puede tener en el posicionamiento es nulo. Lo importante es que las páginas de visualización del producto estén bien.
 
Un saludo.
 
 
 
 
Link to comment
Share on other sites

Ya edite el product.tpl desde el editor de codigo de Cpanel , pero me sigue saliendo el mismo error cuando pruebo las herramientas de datos estructurados. 

 

En price currency sale 1, no debería salir la moneda? parece que la plantilla no reconoce el cambio de divisa.

 

Alguien podría ayudarme ? me estoy volviendo loco porque de estar en la primera pagina de google, de pronto desapareció mi pagina debido a esos errores en la tienda en línea. 

 

Si quito el enlance a la tienda que está dentro de la página vuelvo a regresar al ranking de la primera página en google. 

 

Este es el error con el código ya modificado: 

 

 

offers:
Item 1
url: More offers:
Item 2
Error: Incomplete microdata with schema.org.
Item 1
type: http://schema.org/offer property:   price: $266.00 pricecurrency: 1
Item 2
type: http://schema.org/offer property:   availability: http://schema.org/InStock

 

 

muchas gracias por la ayuda

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

  • 2 weeks later...

El problema que está dando básicamente en algunas plantillas es que en las páginas de productos product-list.tpl

se está dejando información básica para la validación del schema.org desde webmasterstools.

 

Ocurre lo siguiente.

 

En algunas plantillas el campo pricecurrency del esquema lo deja = 0 cuando tiene que ser = EUR (en el caso de euros)

para arreglar esto en el product-list.tpl fijaros que tienen que quedar así todas las referencias a pricecurrency:

<meta itemprop="priceCurrency" content="{$currency->iso_code}" />

por otra parte es importante que el elemento del esquema que nos dice si el producto está en stock tiene que contener también el precio y la moneda igual que se muestra a continuación.

 

Item 1
type:	http://schema.org/offer
property:	
    availability:	http://schema.org/InStock
    price:	        50 €
    pricecurrency:	EUR

 

debería quedar más o menos así

<span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability">
    {if ($product.allow_oosp || $product.quantity > 0)}
    <span class="{if $product.quantity <= 0}out-of-stock{else}available-now{/if}">
        <link itemprop="availability" href="http://schema.org/InStock" />{if $product.quantity <= 0}{if $product.allow_oosp}{$product.available_later}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}
        <span itemprop="price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
    </span>
    {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
    <span class="available-dif">                                                                                
        <link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'}
        <span itemprop="price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
    </span>
    {else}
    <span class="out-of-stock">                                                                                
        <link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'}
        <span itemprop="price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>                                                                                
        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
    </span>
    {/if}
</span>
Edited by Lex-Luthor (see edit history)
  • Like 3
Link to comment
Share on other sites

 

El problema que está dando básicamente en algunas plantillas es que en las páginas de productos product-list.tpl

se está dejando información básica para la validación del schema.org desde webmasterstools.

 

Ocurre lo siguiente.

 

En algunas plantillas el campo pricecurrency del esquema lo deja = 0 cuando tiene que ser = EUR (en el caso de euros)

para arreglar esto en el product-list.tpl fijaros que tienen que quedar así todas las referencias a pricecurrency:

<meta itemprop="priceCurrency" content="{$currency->iso_code}" />

por otra parte es importante que el elemento del esquema que nos dice si el producto está en stock tiene que contener también el precio y la moneda igual que se muestra a continuación.

 

Item 1
type:	http://schema.org/offer
property:	
    availability:	http://schema.org/InStock
    price:	        50 €
    pricecurrency:	EUR

 

debería quedar más o menos así

<span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability">
    {if ($product.allow_oosp || $product.quantity > 0)}
    <span class="{if $product.quantity <= 0}out-of-stock{else}available-now{/if}">
        <link itemprop="availability" href="http://schema.org/InStock" />{if $product.quantity <= 0}{if $product.allow_oosp}{$product.available_later}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}
        <span itemprop="price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
    </span>
    {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
    <span class="available-dif">                                                                                
        <link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'}
        <span itemprop="price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
    </span>
    {else}
    <span class="out-of-stock">                                                                                
        <link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'}
        <span itemprop="price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>                                                                                
        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
    </span>
    {/if}
</span>

 

 

Quiero agradecerte muchísimo!!..

 

Ahora insetando tu código en el product-list.tpl me sale esto en google webmaster tools:

Item 1
type:	http://schema.org/offer
property:	
price:	3 825,00 $
pricecurrency:	MXN

Item 2
type:	http://schema.org/offer
property:	
availability:	http://schema.org/InStock
price:	3 825,00 $
pricecurrency:	MXN

Me salen como duplicados los datos , pero ya sale en price currency el valor de la moneda, antes salía el número 1.. 

 

Supongo que habría que esperar algo de tiempo a que google reconozca los cambios e indexe el contenido otra vez corrigiendo esos errores.. no? 

 

Abusando de tu amabilidad, quisiera saber si tienes idea de porque salen datos duplicados en los rich snippets? 

 

 

URL de página Elementos
clear.cache.gif
Elementos con errores
Detectado por última vez Nombre (name) Precio (price) Marca (brand) Modelo (model)
 
Errores
/tienda/
6
 
6
12/11/14
Mini Hexacoptero para vigilancia aerea Mini Hexacoptero para vigilancia aerea
3 825,00 $
Falta: price
Naze32 Acro Naze32 Acro
820,00 $
Falta: price
Mini Hexacoptero para vigilancia aerea Mini Hexacoptero para vigilancia aerea
3 825,00 $
Falta: price
Naze32 Acro Naze32 Acro
820,00 $
Falta: price
Mini Hexacoptero para vigilancia aerea Mini Hexacoptero para vigilancia aerea
3 825,00 $
Falta: price
Naze32 Acro Naze32 Acro
820,00 $
Falta: price
 
1

 

De verdad estoy super agradecido  con tu ayuda porque mi sitio de pronto bajó unas 4 páginas en su ranking debido al error precio.. No le he movido ninguna otra cosa adicional.

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

Yo he hecho los cambios que proponeis y la cosa continua igual al probar los datos. Así que ya no se que probar. Me siguen saliendo datos erroneos, la moneda no sale y que falta price.

 

Vuelvo a dejar los originales y a ver que se puede hacer, porque con tanto cambio y tanta versión ya me he perdido.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Buenas jjryeste, en tu caso debes modificar el archivo product.tpl de tu plantilla y buscar la línea (sobre la 177):

<div id="short_description_content" class="rte align_justify" itemprop="description">{$product->description_short}</div>

Hay que quitar el itemprop="description" que es la etiqueta que define el campo de descripción para los microdatos y ponerla en el sitio que corresponda a la descripción larga del producto. Más abajo en el mismo product.tpl, sobre la línea 476 aparece el div para ello, ahí debes insertar la etiqueta itemprop como ya viene señalado:

<div itemprop="description" class="rte">{$product->description}</div>

Link to comment
Share on other sites

Entiendo que la primera linea hay que ponerla asi

<div id="short_description_content" itemprop="description" class="rte align_justify" >{$product->description_short}</div>

y la segunda me aparece esto desde linea 465 a 475 tengo esto

 

<!--end Data sheet -->
        {/if}
        {if $product->description}
            <!-- More info -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='More info'}</h3>{/if}
                {if isset($product) && $product->description}
                    <!-- full description -->
                    <div  class="rte">{$product->description}</div>
            </section>
            <!--end  More info -->

 

 

donde pongo <div itemprop="description" class="rte">{$product->description}</div>

gracuias por preocuparte, estoy con prestashop 1.6

Link to comment
Share on other sites

En esa primera línea debes quitar el itemprop="description" quedando así:

 

<div id="short_description_content" class="rte align_justify" >{$product->description_short}</div>

 

En la segunda parte, añades esa etiqueta al div de la descripción larga, tal y como lo has pegado, quedaría así:

 

<!--end Data sheet -->
        {/if}
        {if $product->description}
            <!-- More info -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='More info'}</h3>{/if}
                {if isset($product) && $product->description}
                    <!-- full description -->
                    <div  class="rte" itemprop="description">{$product->description}</div>
            </section>
            <!--end  More info -->

 

 

Lo único que se hace es cambiar la etiqueta itemprop="description" del div de la descripción corta, al div de la descripción larga.

Un saludo.

Link to comment
Share on other sites

Hola , ya lo puse, antes me aparecia esto

data-object
product (source:MICRODATA) attribute:   image: http://www.punto-de-cruz.es/1172-large_default/segadores.jpg image: http://www.punto-de-cruz.es/1172-cart_default/segadores.jpg name: Segadores sku:   condition: Nuevo description:

Patron a punto de cruz con medidas 30x40 o 40x60 Ctm ,Tela Aida 14 ,50 colores de Hilos. Esquema a ,punto de cruz, en color, alta calidad.ENVIO GRATIS,Recibira un correo con la descarga de...

 

 

y ahora no aparece descripcion sale esto en la misma seccion

 

data-object
metatags (source:METATAGS) attribute:   viewport: width=device-width, minimum-scale=0.25, maximum-scale=1.6, initial-scale=1.0 apple-mobile-web-app-capable: yes og:title: Segadores - Punto de Cruz og:url: http://www.punto-de-cruz.es/segadores.html og:type: product og:site_name: Punto de Cruz og:description: PATRONES POR TEMAS og:image: http://www.punto-de-cruz.es/1172-large_default/segadores.jpg
Link to comment
Share on other sites

Creo qu elo qu esale es la meta descripcion

veras ejemplo de uno en este http://www.punto-de-cruz.es/virgen-del-carmen-chile.html

tengo puesto en breve descripcion

Patron a punto de cruz con medidas 30x40 o 40x60 Ctm ,Tela Aida 14 ,40 colores de Hilos. Esquema a ,punto de cruz, en color, alta calidad.ENVIO GRATIS,Recibira un correo con la descarga de su patron en Formato PDF.

 

en Descripcion

Punto de cruz Virgen del Carmen Chile.

Elaborado en alta calidad grafica, en color y diseño exclusivo.Listos para su impresion en A4 . Si desea este diseño de punto de cruz en otra medida , contacte con nosotros.

 

y en optimizacion para motores de busquedas meta descripcion esto

Patron a punto de cruz Virgen del Carmen Chile    ( y esto es lo que sale) en descripcion

Link to comment
Share on other sites

Creo que el problema viene por la plantilla, en mi caso es distinta y me funcionó el cambio que te he comentado, por eso no es molestia compartirlo.

 

En tu plantilla (product.tpl) el campo de descripción está fuera del div que engloba la info del producto, deduzco que por eso no lo está cogiendo bien. Tienes que buscar en el product.tpl la línea:

 

<div class="primary_block row" itemscope="" itemtype="http://schema.org/Product">

 

Puedes probar a quitar la parte itemscope="" itemtype="http://schema.org/Product" y pegarla justo en el div anterior, es decir, en el que va a englobar el campo de la descripción también, quedando así:

 

<div id="center_column" class="center_column col-xs-12 col-sm-9" itemscope="" itemtype="http://schema.org/Product">

 

Suerte!

Link to comment
Share on other sites

ahora sale asi

Datos estructurados extraídos
rdfa-node
property:  
title: Segadores - Punto de Cruz
type: product
site_name: Punto de Cruz
description: Patron punto de cruz segadores
Item 
type: http://schema.org/product property:   name: Segadores sku:   condition: Nuevo description: Patron a punto de cruz con medidas 30x40 o 40x60 Ctm ,Tela Aida 14 ,50 colores de Hilos. Esquema a ,punto de cruz, en color, alta calidad.ENVIO GRATIS,Recibira un correo con la descarga de... aggregaterating:
Item 1
Error: Page contains property "condition" which is not part of the schema.
Link to comment
Share on other sites

OK

 

 

{*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{include file="$tpl_dir./errors.tpl"}
{if $errors|@count == 0}
    {if !isset($priceDisplayPrecision)}
        {assign var='priceDisplayPrecision' value=2}
    {/if}
    {if !$priceDisplay || $priceDisplay == 2}
        {assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, $priceDisplayPrecision)}
        {assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
    {elseif $priceDisplay == 1}
        {assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, $priceDisplayPrecision)}
        {assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
    {/if}
    <div class="primary_block row" itemscope itemtype="http://schema.org/Product">
        {if !$content_only}
            <div class="container">
                <div class="top-hr"></div>
            </div>
        {/if}
        {if isset($adminActionDisplay) && $adminActionDisplay}
            <div id="admin-action">
                <p>{l s='This product is not visible to your customers.'}
                    <input type="hidden" id="admin-action-product-id" value="{$product->id}" />
                    <input type="submit" value="{l s='Publish'}" name="publish_button" class="exclusive" />
                    <input type="submit" value="{l s='Back'}" name="lnk_view" class="exclusive" />
                </p>
                <p id="admin-action-result"></p>
            </div>
        {/if}
        {if isset($confirmation) && $confirmation}
            <p class="confirmation">
                {$confirmation}
            </p>
        {/if}
        <!-- left infos-->  
        <div class="pb-left-column col-xs-12 col-sm-4 col-md-5">
            <!-- product img-->        
            <div id="image-block" class="clearfix">
                {if $product->new}
                    <span class="new-box">
                        <span class="new-label">{l s='New'}</span>
                    </span>
                {/if}
                {if $product->on_sale}
                    <span class="sale-box no-print">
                        <span class="sale-label">{l s='Sale!'}</span>
                    </span>
                {elseif $product->specificPrice && $product->specificPrice.reduction && $productPriceWithoutReduction > $productPrice}
                    <span class="discount">{l s='Reduced price!'}</span>
                {/if}
                {if $have_image}
                    <span id="view_full_size">
                        {if $jqZoomEnabled && $have_image && !$content_only}
                            <a class="jqzoom" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" rel="gal1" href="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox_default')|escape:'html':'UTF-8'}" itemprop="url">
                                <img itemprop="image" src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large_default')|escape:'html':'UTF-8'}" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" alt="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}"/>
                            </a>
                        {else}
                            <img id="bigpic" itemprop="image" src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large_default')|escape:'html':'UTF-8'}" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" alt="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" width="{$largeSize.width}" height="{$largeSize.height}"/>
                            {if !$content_only}
                                <span class="span_link no-print">{l s='View larger'}</span>
                            {/if}
                        {/if}
                    </span>
                {else}
                    <span id="view_full_size">
                        <img itemprop="image" src="{$img_prod_dir}{$lang_iso}-default-large_default.jpg" id="bigpic" alt="" title="{$product->name|escape:'html':'UTF-8'}" width="{$largeSize.width}" height="{$largeSize.height}"/>
                        {if !$content_only}
                            <span class="span_link">
                                {l s='View larger'}
                            </span>
                        {/if}
                    </span>
                {/if}
            </div> <!-- end image-block -->
            {if isset($images) && count($images) > 0}
                <!-- thumbnails -->
                <div id="views_block" class="clearfix {if isset($images) && count($images) < 2}hidden{/if}">
                    {if isset($images) && count($images) > 4}
                        <span class="view_scroll_spacer">
                            <a id="view_scroll_left" class="" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">
                                {l s='Previous'}
                            </a>
                        </span>
                    {/if}
                    <div id="thumbs_list">
                        <ul id="thumbs_list_frame">
                        {if isset($images)}
                            {foreach from=$images item=image name=thumbnails}
                                {assign var=imageIds value="`$product->id`-`$image.id_image`"}
                                {if !empty($image.legend)}
                                    {assign var=imageTitle value=$image.legend|escape:'html':'UTF-8'}
                                {else}
                                    {assign var=imageTitle value=$product->name|escape:'html':'UTF-8'}
                                {/if}
                                <li id="thumbnail_{$image.id_image}"{if $smarty.foreach.thumbnails.last} class="last"{/if}>
                                    <a
                                        {if $jqZoomEnabled && $have_image && !$content_only}
                                            href="javascript:void(0);"
                                            rel="{literal}[spam-filter]/literal}gallery: 'gal1', smallimage: '{$link->getImageLink($product->link_rewrite, $imageIds, 'large_default')|escape:'html':'UTF-8'}',largeimage: '{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox_default')|escape:'html':'UTF-8'}'{literal[spam-filter]{/literal}"
                                        {else}
                                            href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox_default')|escape:'html':'UTF-8'}"
                                            data-fancybox-group="other-views"
                                            class="fancybox{if $image.id_image == $cover.id_image} shown{/if}"
                                        {/if}
                                        title="{$imageTitle}">
                                        <img class="img-responsive" id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'cart_default')|escape:'html':'UTF-8'}" alt="{$imageTitle}" title="{$imageTitle}" height="{$cartSize.height}" width="{$cartSize.width}" itemprop="image" />
                                    </a>
                                </li>
                            {/foreach}
                        {/if}
                        </ul>
                    </div> <!-- end thumbs_list -->
                    {if isset($images) && count($images) > 4}
                        <a id="view_scroll_right" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">
                            {l s='Next'}
                        </a>
                    {/if}
                </div> <!-- end views-block -->
                <!-- end thumbnails -->
            {/if}
            {if isset($images) && count($images) > 1}
                <p class="resetimg clear no-print">
                    <span id="wrapResetImages" style="display: none;">
                        <a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" name="resetImages">
                            <i class="icon-repeat"></i>
                            {l s='Display all pictures'}
                        </a>
                    </span>
                </p>
            {/if}
        </div> <!-- end pb-left-column -->
        <!-- end left infos-->
        <!-- center infos -->
        <div class="pb-center-column col-xs-12 col-sm-4">
            {if $product->online_only}
                <p class="online_only">{l s='Online only'}</p>
            {/if}
    
            <h1 itemprop="name">{$product->name|escape:'html':'UTF-8'}</h1>
            <p id="product_reference"{if empty($product->reference) || !$product->reference} style="display: none;"{/if}>
                <label>{l s='Model'} </label>
                <span class="editable" itemprop="sku">{if !isset($groups)}{$product->reference|escape:'html':'UTF-8'}{/if}</span>
            </p>
            {capture name=condition}
                {if $product->condition == 'new'}{l s='New'}
                {elseif $product->condition == 'used'}{l s='Used'}
                {elseif $product->condition == 'refurbished'}{l s='Refurbished'}
                {/if}
            {/capture}
            <p id="product_condition"{if !$product->condition} style="display: none;"{/if}>
                <label>{l s='Condition'} </label>
                <span class="editable" itemprop="condition">{$smarty.capture.condition}</span>
            </p>
            {if $product->description_short || $packItems|@count > 0}
                <div id="short_description_block">
                    {if $product->description_short}
                        <div id="short_description_content" class="rte align_justify" itemprop="description">{$product->description_short}</div>
                    {/if}

                    {if $product->description}
                        <p class="buttons_bottom_block">
                            <a href="javascript:{ldelim}{rdelim}" class="button">
                                {l s='More details'}
                            </a>
                        </p>
                    {/if}
                    <!--{if $packItems|@count > 0}
                        <div class="short_description_pack">
                        <h3>{l s='Pack content'}</h3>
                            {foreach from=$packItems item=packItem}
                            
                            <div class="pack_content">
                                {$packItem.pack_quantity} x <a href="{$link->getProductLink($packItem.id_product, $packItem.link_rewrite, $packItem.category)|escape:'html':'UTF-8'}">{$packItem.name|escape:'html':'UTF-8'}</a>
                                <p>{$packItem.description_short}</p>
                            </div>
                            {/foreach}
                        </div>
                    {/if}-->
                </div> <!-- end short_description_block -->
            {/if}
            {if ($display_qties == 1 && !$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && $product->available_for_order)}
                <!-- number of item in stock -->
                <p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
                    <span id="quantityAvailable">{$product->quantity|intval}</span>
                    <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>
                    <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items'}</span>
                </p>
            {/if}
            {if $PS_STOCK_MANAGEMENT}
                <!-- availability -->
                <p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $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 class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity <= 0) || $allow_oosp || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
            {/if}
            <p id="availability_date"{if ($product->quantity > 0) || !$product->available_for_order || $PS_CATALOG_MODE || !isset($product->available_date) || $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>
            <!-- Out of stock hook -->
            <div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
                {$HOOK_PRODUCT_OOS}
            </div>
            {if isset($HOOK_EXTRA_RIGHT) && $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}
            {if !$content_only}
                <!-- usefull links-->
                <ul id="usefull_link_block" class="clearfix no-print">
                    {if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}
                    {*<li class="print">
                        <a href="javascript:print();">
                            {l s='Print'}
                        </a>
                    </li>*}
                    {if $have_image && !$jqZoomEnabled}{/if}
                </ul>
            {/if}
        </div>
        <!-- end center infos-->
        <!-- pb-right-column-->
        <div class="pb-right-column col-xs-12 col-sm-4 col-md-3">
            {if ($product->show_price && !isset($restricted_country_mode)) || isset($groups) || $product->reference || (isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS)}
            <!-- add to cart form-->
            <form id="buy_block"{if $PS_CATALOG_MODE && !isset($groups) && $product->quantity > 0} class="hidden"{/if} action="{$link->getPageLink('cart')|escape:'html':'UTF-8'}" method="post">
                <!-- hidden datas -->
                <p class="hidden">
                    <input type="hidden" name="token" value="{$static_token}" />
                    <input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" />
                    <input type="hidden" name="add" value="1" />
                    <input type="hidden" name="id_product_attribute" id="idCombination" value="" />
                </p>
                <div class="box-info-product">
                    <div class="content_prices clearfix">
                        {if $product->show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}
                            <!-- prices -->
                            <div class="price">
                                <p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                                    {if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
                                    {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                        <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>
                                        <!--{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
                                            {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
                                        {/if}-->
                                        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
                                    {/if}
                                </p>
                                <p id="reduction_percent" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}>
                                    <span id="reduction_percent_display">
                                        {if $product->specificPrice && $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if}
                                    </span>
                                </p>
                                <p id="old_price"{if (!$product->specificPrice || !$product->specificPrice.reduction) && $group_reduction == 0} class="hidden"{/if}>
                                    {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                        <span id="old_price_display">{if $productPriceWithoutReduction > $productPrice}{convertPrice price=$productPriceWithoutReduction}{/if}</span>
                                        <!-- {if $tax_enabled && $display_tax_label == 1}{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if} -->
                                    {/if}
                                </p>
                                {if $priceDisplay == 2}
                                    <br />
                                    <span id="pretaxe_price">
                                        <span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span>
                                        {l s='tax excl.'}
                                    </span>
                                {/if}
                            </div> <!-- end prices -->
                            <p id="reduction_amount" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'amount' || $product->specificPrice.reduction|floatval ==0} style="display:none"{/if}>
                                <span id="reduction_amount_display">
                                {if $product->specificPrice && $product->specificPrice.reduction_type == 'amount' && $product->specificPrice.reduction|intval !=0}
                                    -{convertPrice price=$productPriceWithoutReduction-$productPrice|floatval}
                                {/if}
                                </span>
                            </p>
                            {if $packItems|@count && $productPrice < $product->getNoPackPrice()}
                                <p class="pack_price">{l s='Instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p>
                            {/if}
                            {if $product->ecotax != 0}
                                <p class="price-ecotax">{l s='Include'} <span id="ecotax_price_display">{if $priceDisplay == 2}{$ecotax_tax_exc|convertAndFormatPrice}{else}{$ecotax_tax_inc|convertAndFormatPrice}{/if}</span> {l s='For green tax'}
                                    {if $product->specificPrice && $product->specificPrice.reduction}
                                    <br />{l s='(not impacted by the discount)'}
                                    {/if}
                                </p>
                            {/if}
                            {if !empty($product->unity) && $product->unit_price_ratio > 0.000000}
                                {math equation="pprice / punit_price"  pprice=$productPrice  punit_price=$product->unit_price_ratio assign=unit_price}
                                <p class="unit-price"><span id="unit_price_display">{convertPrice price=$unit_price}</span> {l s='per'} {$product->unity|escape:'html':'UTF-8'}</p>
                            {/if}
                        {/if} {*close if for show price*}
                        <div class="clear"></div>
                    </div> <!-- end content_prices -->
                    <div class="product_attributes clearfix">
                        <!-- quantity wanted -->
                        {if !$PS_CATALOG_MODE}
                        <p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
                            <label>{l s='Quantity:'}</label>
                            <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" />
                            <a href="#" data-field-qty="qty" class="btn btn-default button-minus product_quantity_down">
                                <span><i class="icon-minus"></i></span>
                            </a>
                            <a href="#" data-field-qty="qty" class="btn btn-default button-plus product_quantity_up ">
                                <span><i class="icon-plus"></i></span>
                            </a>
                            <span class="clearfix"></span>
                        </p>
                        {/if}
                        <!-- minimal quantity wanted -->
                        <p id="minimal_quantity_wanted_p"{if $product->minimal_quantity <= 1 || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
                            {l s='This product is not sold individually. You must select at least'} <b id="minimal_quantity_label">{$product->minimal_quantity}</b> {l s='quantity for this product.'}
                        </p>
                        {if isset($groups)}
                            <!-- attributes -->
                            <div id="attributes">
                                <div class="clearfix"></div>
                                {foreach from=$groups key=id_attribute_group item=group}
                                    {if $group.attributes|@count}
                                        <fieldset class="attribute_fieldset">
                                            <label class="attribute_label" {if $group.group_type != 'color' && $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'} : </label>
                                            {assign var="groupName" value="group_$id_attribute_group"}
                                            <div class="attribute_list">
                                                {if ($group.group_type == 'select')}
                                                    <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print">
                                                        {foreach from=$group.attributes key=id_attribute item=group_attribute}
                                                            <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'html':'UTF-8'}">{$group_attribute|escape:'html':'UTF-8'}</option>
                                                        {/foreach}
                                                    </select>
                                                {elseif ($group.group_type == 'color')}
                                                    <ul id="color_to_pick_list" class="clearfix">
                                                        {assign var="default_colorpicker" value=""}
                                                        {foreach from=$group.attributes key=id_attribute item=group_attribute}
                                                            <li{if $group.default == $id_attribute} class="selected"{/if}>
                                                                <a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" id="color_{$id_attribute|intval}" name="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}" style="background: {$colors.$id_attribute.value|escape:'html':'UTF-8'};" title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}">
                                                                    {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
                                                                        <img src="{$img_col_dir}{$id_attribute|intval}.jpg" alt="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" width="20" height="20" />
                                                                    {/if}
                                                                </a>
                                                            </li>
                                                            {if ($group.default == $id_attribute)}
                                                                {$default_colorpicker = $id_attribute}
                                                            {/if}
                                                        {/foreach}
                                                    </ul>
                                                    <input type="hidden" class="color_pick_hidden" name="{$groupName|escape:'html':'UTF-8'}" value="{$default_colorpicker|intval}" />
                                                {elseif ($group.group_type == 'radio')}
                                                    <ul>
                                                        {foreach from=$group.attributes key=id_attribute item=group_attribute}
                                                            <li>
                                                                <input type="radio" class="attribute_radio" name="{$groupName|escape:'html':'UTF-8'}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} />
                                                                <span>{$group_attribute|escape:'html':'UTF-8'}</span>
                                                            </li>
                                                        {/foreach}
                                                    </ul>
                                                {/if}
                                            </div> <!-- end attribute_list -->
                                        </fieldset>
                                    {/if}
                                {/foreach}
                            </div> <!-- end attributes -->
                        {/if}
                    </div> <!-- end product_attributes -->
                    <div class="box-cart-bottom">
                        <div{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || (isset($restricted_country_mode) && $restricted_country_mode) || $PS_CATALOG_MODE} class="unvisible"{/if}>
                            <p id="add_to_cart" class="buttons_bottom_block no-print">
                                <button type="submit" name="Submit" class="exclusive">
                                    <span>{l s='Comprar'}</span>
                                </button>
                            </p>
                        </div>
                        {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}<strong></strong>
                    </div> <!-- end box-cart-bottom -->
                </div> <!-- end box-info-product -->
            </form>
            {/if}
        </div> <!-- end pb-right-column-->
    </div> <!-- end primary_block -->
    {if !$content_only}
{if (isset($quantity_discounts) && count($quantity_discounts) > 0)}
            <!-- quantity discount -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='Volume discounts'}</h3>
                <div id="quantityDiscount">
                    <table class="std table-product-discounts">
                        <thead>
                            <tr>
                                <th>{l s='Quantity'}</th>
                                <th>{if $display_discount_price}{l s='Price'}{else}{l s='Discount'}{/if}</th>
                                <th>{l s='You Save'}</th>
                            </tr>
                        </thead>
                        <tbody>
                            {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'}
                            <tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}" data-discount-type="{$quantity_discount.reduction_type}" data-discount="{$quantity_discount.real_value|floatval}" data-discount-quantity="{$quantity_discount.quantity|intval}">
                                <td>
                                    {$quantity_discount.quantity|intval}
                                </td>
                                <td>
                                    {if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
                                        {if $display_discount_price}
                                            {convertPrice price=$productPrice-$quantity_discount.real_value|floatval}
                                        {else}
                                            {convertPrice price=$quantity_discount.real_value|floatval}
                                        {/if}
                                    {else}
                                        {if $display_discount_price}
                                            {convertPrice price = $productPrice-($productPrice*$quantity_discount.reduction)|floatval}
                                        {else}
                                            {$quantity_discount.real_value|floatval}%
                                        {/if}
                                    {/if}
                                </td>
                                <td>
                                    <span>{l s='Up to'}</span>
                                    {if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
                                        {$discountPrice=$productPrice-$quantity_discount.real_value|floatval}
                                    {else}
                                        {$discountPrice=$productPrice-($productPrice*$quantity_discount.reduction)|floatval}
                                    {/if}
                                    {$discountPrice=$discountPrice*$quantity_discount.quantity}
                                    {$qtyProductPrice = $productPrice*$quantity_discount.quantity}
                                    {convertPrice price=$qtyProductPrice-$discountPrice}
                                </td>
                            </tr>
                            {/foreach}
                        </tbody>
                    </table>
                </div>
            </section>
        {/if}
        {if isset($features) && $features}
            <!-- Data sheet -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='Data sheet'}</h3>
                <table class="table-data-sheet">            
                    {foreach from=$features item=feature}
                    <tr class="{cycle values="odd,even"}">
                        {if isset($feature.value)}                
                        <td>{$feature.name|escape:'html':'UTF-8'}</td>
                        <td>{$feature.value|escape:'html':'UTF-8'}</td>
                        {/if}
                    </tr>
                    {/foreach}
                </table>
            </section>
            <!--end Data sheet -->
        {/if}
        {if $product->description}
            <!-- More info -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='More info'}</h3>{/if}
                {if isset($product) && $product->description}
                    <!-- full description -->
                    <div  class="rte">{$product->description}</div>
            </section>
            <!--end  More info -->
        {/if}
        <!--HOOK_PRODUCT_TAB -->
        <section class="page-product-box">
            {$HOOK_PRODUCT_TAB}
            {if isset($HOOK_PRODUCT_TAB_CONTENT) && $HOOK_PRODUCT_TAB_CONTENT}{$HOOK_PRODUCT_TAB_CONTENT}{/if}
        </section>
        <!--end HOOK_PRODUCT_TAB -->
        {if isset($accessories) && $accessories}
            <!--Accessories -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='Accessories'}</h3>
                <div class="block products_block accessories-block clearfix">
                    <div class="block_content">
                        <ul id="bxslider" class="bxslider clearfix">
                            {foreach from=$accessories item=accessory name=accessories_list}
                                {if ($accessory.allow_oosp || $accessory.quantity_all_versions > 0 || $accessory.quantity > 0) && $accessory.available_for_order && !isset($restricted_country_mode)}
                                    {assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
                                    <li class="item product-box ajax_block_product{if $smarty.foreach.accessories_list.first} first_item{elseif $smarty.foreach.accessories_list.last} last_item{else} item{/if} product_accessories_description">
                                        <div class="product_desc">
                                            <a href="{$accessoryLink|escape:'html':'UTF-8'}" title="{$accessory.legend|escape:'html':'UTF-8'}" class="product-image product_image">
                                                <img class="lazyOwl" src="{$link->getImageLink($accessory.link_rewrite, $accessory.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{$accessory.legend|escape:'html':'UTF-8'}" width="{$homeSize.width}" height="{$homeSize.height}"/>
                                            </a>
                                            <div class="block_description">
                                                <a href="{$accessoryLink|escape:'html':'UTF-8'}" title="{l s='More'}" class="product_description">
                                                    {$accessory.description_short|strip_tags|truncate:25:'...'}
                                                </a>
                                            </div>
                                        </div>
                                        <div class="s_title_block">
                                            <h5 class="product-name">
                                                <a href="{$accessoryLink|escape:'html':'UTF-8'}">
                                                    {$accessory.name|truncate:20:'...':true|escape:'html':'UTF-8'}
                                                </a>
                                            </h5>
                                            {if $accessory.show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}
                                            <span class="price">
                                                {if $priceDisplay != 1}
                                                {displayWtPrice p=$accessory.price}{else}{displayWtPrice p=$accessory.price_tax_exc}
                                                {/if}
                                            </span>
                                            {/if}
                                        </div>
                                        <div class="clearfix" style="margin-top:5px">
                                            {if !$PS_CATALOG_MODE && ($accessory.allow_oosp || $accessory.quantity > 0)}
                                                <div class="no-print">
                                                    <a class="exclusive button ajax_add_to_cart_button" href="{$link->getPageLink('cart', true, NULL, "qty=1&id_product={$accessory.id_product|intval}&token={$static_token}&add")|escape:'html':'UTF-8'}" data-id-product="{$accessory.id_product|intval}" title="{l s='Comprar'}">
                                                        <span>{l s='Comprar'}</span>
                                                    </a>
                                                </div>
                                            {/if}
                                        </div>
                                    </li>
                                {/if}
                            {/foreach}
                        </ul>
                    </div>
                </div>    
            </section>
            <!--end Accessories -->
        {/if}
        {if isset($HOOK_PRODUCT_FOOTER) && $HOOK_PRODUCT_FOOTER}{$HOOK_PRODUCT_FOOTER}{/if}
        <!-- description & features -->
        {if (isset($product) && $product->description) || (isset($features) && $features) || (isset($accessories) && $accessories) || (isset($HOOK_PRODUCT_TAB) && $HOOK_PRODUCT_TAB) || (isset($attachments) && $attachments) || isset($product) && $product->customizable}
            {if isset($attachments) && $attachments}
            <!--Download -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='Download'}</h3>
                {foreach from=$attachments item=attachment name=attachements}
                    {if $smarty.foreach.attachements.iteration %3 == 1}<div class="row">{/if}
                        <div class="col-lg-4">
                            <h4><a href="{$link->getPageLink('attachment', true, NULL, "id_attachment={$attachment.id_attachment}")|escape:'html':'UTF-8'}">{$attachment.name|escape:'html':'UTF-8'}</a></h4>
                            <p class="text-muted">{$attachment.description|escape:'html':'UTF-8'}</p>
                            <a class="btn btn-default btn-block" href="{$link->getPageLink('attachment', true, NULL, "id_attachment={$attachment.id_attachment}")|escape:'html':'UTF-8'}">
                                <i class="icon-download"></i>
                                {l s="Download"} ({Tools::formatBytes($attachment.file_size, 2)})
                            </a>
                            <hr>
                        </div>
                    {if $smarty.foreach.attachements.iteration %3 == 0 || $smarty.foreach.attachements.last}</div>{/if}
                {/foreach}
            </section>
            <!--end Download -->
            {/if}
            {if isset($product) && $product->customizable}
            <!--Customization -->
            <section class="page-product-box">
                <h3 class="page-product-heading">{l s='Product customization'}</h3>
                <!-- Customizable products -->
                <form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm" class="clearfix">
                    <p class="infoCustomizable">
                        {l s='After saving your customized product, remember to add it to your cart.'}
                        {if $product->uploadable_files}
                        <br />
                        {l s='Allowed file formats are: GIF, JPG, PNG'}{/if}
                    </p>
                    {if $product->uploadable_files|intval}
                        <div class="customizableProductsFile">
                            <h5 class="product-heading-h5">{l s='Pictures'}</h5>
                            <ul id="uploadable_files" class="clearfix">
                                {counter start=0 assign='customizationField'}
                                {foreach from=$customizationFields item='field' name='customizationFields'}
                                    {if $field.type == 0}
                                        <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
                                            {if isset($pictures.$key)}
                                                <div class="customizationUploadBrowse">
                                                    <img src="{$pic_dir}{$pictures.$key}_small" alt="" />
                                                        <a href="{$link->getProductDeletePictureLink($product, $field.id_customization_field)|escape:'html':'UTF-8'}" title="{l s='Delete'}" >
                                                            <img src="{$img_dir}icon/delete.gif" alt="{l s='Delete'}" class="customization_delete_icon" width="11" height="13" />
                                                        </a>
                                                </div>
                                            {/if}
                                            <div class="customizationUploadBrowse form-group">
                                                <label class="customizationUploadBrowseDescription">
                                                    {if !empty($field.name)}
                                                        {$field.name}
                                                    {else}
                                                        {l s='Please select an image file from your computer'}
                                                    {/if}
                                                    {if $field.required}<sup>*</sup>{/if}
                                                </label>
                                                <input type="file" name="file{$field.id_customization_field}" id="img{$customizationField}" class="form-control customization_block_input {if isset($pictures.$key)}filled{/if}" />
                                            </div>
                                        </li>
                                        {counter}
                                    {/if}
                                {/foreach}
                            </ul>
                        </div>
                    {/if}
                    {if $product->text_fields|intval}
                        <div class="customizableProductsText">
                            <h5 class="product-heading-h5">{l s='Text'}</h5>
                            <ul id="text_fields">
                            {counter start=0 assign='customizationField'}
                            {foreach from=$customizationFields item='field' name='customizationFields'}
                                {if $field.type == 1}
                                    <li class="customizationUploadLine{if $field.required} required{/if}">
                                        <label for ="textField{$customizationField}">
                                            {assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
                                            {if !empty($field.name)}
                                                {$field.name}
                                            {/if}
                                            {if $field.required}<sup>*</sup>{/if}
                                        </label>
                                        <textarea name="textField{$field.id_customization_field}" class="form-control customization_block_input" id="textField{$customizationField}" rows="3" cols="20">{strip}
                                            {if isset($textFields.$key)}
                                                {$textFields.$key|stripslashes}
                                            {/if}
                                        {/strip}</textarea>
                                    </li>
                                    {counter}
                                {/if}
                            {/foreach}
                            </ul>
                        </div>
                    {/if}
                    <p id="customizedDatas">
                        <input type="hidden" name="quantityBackup" id="quantityBackup" value="" />
                        <input type="hidden" name="submitCustomizedDatas" value="1" />
                        <button class="button btn btn-default button button-small" name="saveCustomization">
                            <span>{l s='Save'}</span>
                        </button>
                        <span id="ajax-loader" class="unvisible">
                            <img src="{$img_ps_dir}loader.gif" alt="loader" />
                        </span>
                    </p>
                </form>
                <p class="clear required"><sup>*</sup> {l s='required fields'}</p>    
            </section>
            <!--end Customization -->
            {/if}
        {/if}
        {if isset($packItems) && $packItems|@count > 0}
        <section id="blockpack">
            <h3 class="page-product-heading">{l s='Pack content'}</h3>
            {include file="$tpl_dir./product-list.tpl" products=$packItems}
        </section>
        {/if}
    {/if}
{strip}
{strip}
{if isset($smarty.get.ad) && $smarty.get.ad}
{addJsDefL name=ad}{$base_dir|cat:$smarty.get.ad|escape:'html':'UTF-8'}{/addJsDefL}
{/if}
{if isset($smarty.get.adtoken) && $smarty.get.adtoken}
{addJsDefL name=adtoken}{$smarty.get.adtoken|escape:'html':'UTF-8'}{/addJsDefL}
{/if}
{addJsDef allowBuyWhenOutOfStock=$allow_oosp|boolval}
{addJsDef availableNowValue=$product->available_now|escape:'quotes':'UTF-8'}
{addJsDef availableLaterValue=$product->available_later|escape:'quotes':'UTF-8'}
{addJsDef attribute_anchor_separator=$attribute_anchor_separator|addslashes}
{addJsDef attributesCombinations=$attributesCombinations}
{addJsDef currencySign=$currencySign|html_entity_decode:2:"UTF-8"}
{addJsDef currencyRate=$currencyRate|floatval}
{addJsDef currencyFormat=$currencyFormat|intval}
{addJsDef currencyBlank=$currencyBlank|intval}
{addJsDef currentDate=$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
{if isset($combinations) && $combinations}
    {addJsDef combinations=$combinations}
    {addJsDef combinationsFromController=$combinations}
    {addJsDef displayDiscountPrice=$display_discount_price}
    {addJsDefL name='upToTxt'}{l s='Up to' js=1}{/addJsDefL}
{/if}
{if isset($combinationImages) && $combinationImages}
    {addJsDef combinationImages=$combinationImages}
{/if}
{addJsDef customizationFields=$customizationFields}
{addJsDef default_eco_tax=$product->ecotax|floatval}
{addJsDef displayPrice=$priceDisplay|intval}
{addJsDef ecotaxTax_rate=$ecotaxTax_rate|floatval}
{addJsDef group_reduction=$group_reduction}
{if isset($cover.id_image_only)}
    {addJsDef idDefaultImage=$cover.id_image_only|intval}
{else}
    {addJsDef idDefaultImage=0}
{/if}
{addJsDef img_ps_dir=$img_ps_dir}
{addJsDef img_prod_dir=$img_prod_dir}
{addJsDef id_product=$product->id|intval}
{addJsDef jqZoomEnabled=$jqZoomEnabled|boolval}
{addJsDef maxQuantityToAllowDisplayOfLastQuantityMessage=$last_qties|intval}
{addJsDef minimalQuantity=$product->minimal_quantity|intval}
{addJsDef noTaxForThisProduct=$no_tax|boolval}
{addJsDef oosHookJsCodeFunctions=Array()}
{addJsDef productHasAttributes=isset($groups)|boolval}
{addJsDef productPriceTaxExcluded=($product->getPriceWithoutReduct(true)|default:'null' - $product->ecotax)|floatval}
{addJsDef productBasePriceTaxExcluded=($product->base_price - $product->ecotax)|floatval}
{addJsDef productReference=$product->reference|escape:'html':'UTF-8'}
{addJsDef productAvailableForOrder=$product->available_for_order|boolval}
{addJsDef productPriceWithoutReduction=$productPriceWithoutReduction|floatval}
{addJsDef productPrice=$productPrice|floatval}
{addJsDef productUnitPriceRatio=$product->unit_price_ratio|floatval}
{addJsDef productShowPrice=(!$PS_CATALOG_MODE && $product->show_price)|boolval}
{addJsDef PS_CATALOG_MODE=$PS_CATALOG_MODE}
{if $product->specificPrice && $product->specificPrice|@count}
    {addJsDef product_specific_price=$product->specificPrice}
{else}
    {addJsDef product_specific_price=array()}
{/if}
{if $display_qties == 1 && $product->quantity}
    {addJsDef quantityAvailable=$product->quantity}
{else}
    {addJsDef quantityAvailable=0}
{/if}
{addJsDef quantitiesDisplayAllowed=$display_qties|boolval}
{if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'percentage'}
    {addJsDef reduction_percent=$product->specificPrice.reduction*100|floatval}
{else}
    {addJsDef reduction_percent=0}
{/if}
{if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'amount'}
    {addJsDef reduction_price=$product->specificPrice.reduction|floatval}
{else}
    {addJsDef reduction_price=0}
{/if}
{if $product->specificPrice && $product->specificPrice.price}
    {addJsDef specific_price=$product->specificPrice.price|floatval}
{else}
    {addJsDef specific_price=0}
{/if}
{addJsDef specific_currency=($product->specificPrice && $product->specificPrice.id_currency)|boolval} {* TODO: remove if always false *}
{addJsDef stock_management=$stock_management|intval}
{addJsDef taxRate=$tax_rate|floatval}
{addJsDefL name=doesntExist}{l s='This combination does not exist for this product. Please select another combination.' js=1}{/addJsDefL}
{addJsDefL name=doesntExistNoMore}{l s='This product is no longer in stock' js=1}{/addJsDefL}
{addJsDefL name=doesntExistNoMoreBut}{l s='with those attributes but is available with others.' js=1}{/addJsDefL}
{addJsDefL name=fieldRequired}{l s='Please fill in all the required fields before saving your customization.' js=1}{/addJsDefL}
{addJsDefL name=uploading_in_progress}{l s='Uploading in progress, please be patient.' js=1}{/addJsDefL}
{/strip}
{/if}
 

Link to comment
Share on other sites