nupani Posted April 12, 2014 Share Posted April 12, 2014 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 More sharing options...
rOoLeZ Posted May 3, 2014 Share Posted May 3, 2014 A mi me pasa igual, y no logro solucionarlo 1 Link to comment Share on other sites More sharing options...
OrgasmiX Posted May 20, 2014 Share Posted May 20, 2014 Me uno a la petición. ¿Conseguisteis solucionarlo? Link to comment Share on other sites More sharing options...
rOoLeZ Posted May 20, 2014 Share Posted May 20, 2014 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 More sharing options...
NAISA.es Posted June 4, 2014 Share Posted June 4, 2014 Alguien encontró una solución a este error con el precio?. Link to comment Share on other sites More sharing options...
Milen Posted June 11, 2014 Share Posted June 11, 2014 Me uno tengo el mismo error 3 paginas y 72 elementos con el error Falta: price Link to comment Share on other sites More sharing options...
Milen Posted July 15, 2014 Share Posted July 15, 2014 A ver si os ayuda esto http://jordiob.com/2013/03/mejorando-el-seo-de-tu-prestashop-con-schema-org-y-rda-data-para-facebook/ Link to comment Share on other sites More sharing options...
Juanmax Posted July 21, 2014 Share Posted July 21, 2014 sigue fallando Link to comment Share on other sites More sharing options...
Decorateca Posted August 2, 2014 Share Posted August 2, 2014 A nosotr@s nos da exactamente el mismo error en TODOS los productos (Falta price) en P. 1.6. ¿Alguna idea? Link to comment Share on other sites More sharing options...
ujin81 Posted August 8, 2014 Share Posted August 8, 2014 Me uno al problema. Saludos Link to comment Share on other sites More sharing options...
OTworks Posted August 13, 2014 Share Posted August 13, 2014 (edited) 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 August 13, 2014 by OTworks (see edit history) Link to comment Share on other sites More sharing options...
avpinedo Posted August 25, 2014 Share Posted August 25, 2014 Estoy igual, plantilla original de prestashop 1.6 y absolutamente todos los productos me salen con falta:price, nadie ha dado con la solución?, gracias a todos. Link to comment Share on other sites More sharing options...
JCOP Posted September 11, 2014 Share Posted September 11, 2014 Mismo problema missing price en WMT, 246 errores!! Link to comment Share on other sites More sharing options...
sirlanzalot Posted September 14, 2014 Share Posted September 14, 2014 Yo también tengo el mismo problema. 477 errores de 488 paginas. Nadie da con la solución? Link to comment Share on other sites More sharing options...
xinito Posted September 16, 2014 Share Posted September 16, 2014 El problema con el campo price puede venir por el formato que tiene. Al menos según esta guía de Nemos tenemos que adecuar unas líneas del product, o product-list en las que eliminamos el signo de la moneda y así Google acepte el itemprop price. Link to comment Share on other sites More sharing options...
jjcdlt Posted October 1, 2014 Share Posted October 1, 2014 Yo me estoy volviendo loco con el error de "falta price", nadie sabe nada? Link to comment Share on other sites More sharing options...
xinito Posted October 6, 2014 Share Posted October 6, 2014 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 €. 2 Link to comment Share on other sites More sharing options...
jjcdlt Posted October 7, 2014 Share Posted October 7, 2014 Gracias Xinito Link to comment Share on other sites More sharing options...
avpinedo Posted October 17, 2014 Share Posted October 17, 2014 he intentado la solución que se propone aquí y me da errores y lo he dejado como estaba, sabéis si esta mejor explicado en otro sitio, os estas resultado a todos esta solución? muchas gracias, os dejo la web que administro por si queréis echarle un vistazo. http://bibatools.com/ Link to comment Share on other sites More sharing options...
jjcdlt Posted October 17, 2014 Share Posted October 17, 2014 (edited) é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 October 17, 2014 by jjcdlt (see edit history) Link to comment Share on other sites More sharing options...
xinito Posted October 17, 2014 Share Posted October 17, 2014 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. 1 Link to comment Share on other sites More sharing options...
Losada Posted October 18, 2014 Share Posted October 18, 2014 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 More sharing options...
avpinedo Posted October 20, 2014 Share Posted October 20, 2014 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 More sharing options...
avpinedo Posted October 24, 2014 Share Posted October 24, 2014 Alguna idea sobre lo que comente hace unos dias sobre el product.js? gracias Link to comment Share on other sites More sharing options...
xinito Posted October 26, 2014 Share Posted October 26, 2014 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 More sharing options...
Ickey Woods Posted November 1, 2014 Share Posted November 1, 2014 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 More sharing options...
badstraw Posted November 6, 2014 Share Posted November 6, 2014 (edited) 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 November 6, 2014 by badstraw (see edit history) Link to comment Share on other sites More sharing options...
Lex-Luthor Posted November 14, 2014 Share Posted November 14, 2014 (edited) 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 November 14, 2014 by Lex-Luthor (see edit history) 3 Link to comment Share on other sites More sharing options...
badstraw Posted November 16, 2014 Share Posted November 16, 2014 (edited) 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 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 November 16, 2014 by badstraw (see edit history) Link to comment Share on other sites More sharing options...
Losada Posted November 17, 2014 Share Posted November 17, 2014 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 More sharing options...
jjryeste Posted November 29, 2014 Share Posted November 29, 2014 Hola a todos, a mi por ejemplo en el campo de description: en google structure data, la informacion que me sale es la de, la descripcion breve, en lugar de la que tengo puesta en descripcion, eso es asi, o se puede intercambiar los datos.gracias Link to comment Share on other sites More sharing options...
xinito Posted December 9, 2014 Share Posted December 9, 2014 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 More sharing options...
jjryeste Posted December 9, 2014 Share Posted December 9, 2014 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 More sharing options...
xinito Posted December 10, 2014 Share Posted December 10, 2014 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 More sharing options...
jjryeste Posted December 10, 2014 Share Posted December 10, 2014 ok lo pruebo y lo paso por google , gracias Link to comment Share on other sites More sharing options...
jjryeste Posted December 10, 2014 Share Posted December 10, 2014 supongo en el product-list.tpl no hay que hacer nada verda Link to comment Share on other sites More sharing options...
jjryeste Posted December 10, 2014 Share Posted December 10, 2014 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 More sharing options...
jjryeste Posted December 10, 2014 Share Posted December 10, 2014 perdon esto sale con el tpl cambiado 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 Link to comment Share on other sites More sharing options...
jjryeste Posted December 10, 2014 Share Posted December 10, 2014 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 More sharing options...
xinito Posted December 11, 2014 Share Posted December 11, 2014 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 More sharing options...
jjryeste Posted December 11, 2014 Share Posted December 11, 2014 voy a probarlo amigo a ver que tal . gracias por preocuparte Link to comment Share on other sites More sharing options...
jjryeste Posted December 11, 2014 Share Posted December 11, 2014 ahora sale asi Datos estructurados extraídos rdfa-node property: title: Segadores - Punto de Cruz url: http://www.punto-de-cruz.es/segadores.html type: product site_name: Punto de Cruz description: Patron punto de cruz segadores image: http://www.punto-de-cruz.es/1172-large_default/segadores.jpg 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 More sharing options...
xinito Posted December 12, 2014 Share Posted December 12, 2014 Creo que siguen estando mal puestas las etiquetas. Si puedes, pega aqui el contenido completo de tu product.tpl tal como lo tienes ahora mismo, le intento echar el ojo y te digo. Link to comment Share on other sites More sharing options...
jjryeste Posted December 13, 2014 Share Posted December 13, 2014 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
Recommended Posts