Jump to content

Recommended Posts

Hi Guys,

 

I saw a forum related to schema.org markup error where in product price is missing and giving an error in google developers tool.. 

 

Is there is any way i can remove this error.. The forum i saw had no definite solution and so i came with this question again ... Kindly share your answers

 

Thanks in advance..

Link to comment
Share on other sites

In the previous forum , the solution they gave is to remove the block of code from product-list.tpl .. If i remove that block, the instock schema gets removed .. I don't want that..

I want the instock schema and also the price schema to be visible to google ..

 

Kindly consider this point also ... Thanks.

Link to comment
Share on other sites

  • 3 weeks later...

Hi

None of the forums across the globe with genius brains around of prestashop have understood this problem as this is nothing to do with prestashop and it is more of google codes and the way google crawlers read the data and content of your website....

 

After my own research and going deep into the issue have found out the problem which completely resolves the issue of missing price without changing any code.

 

Vineet

Business head -Iambridal.com

India

Link to comment
Share on other sites

<span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability"> <span class="available-now"><link itemprop="availability" href="http://schema.org/InStock"/>In stock </span> </span> 

 

this error yet to find the solution without a delete code option....

 

 

otherwise main price errors in schema.org while doing the testing can be resolved simply without touching any code

 

Vineet

Link to comment
Share on other sites

Hi ,

 

Hey you know i went through many forum sites and found that people are removing the small schema code from the product page in order to remove the errors.. But really that is not the solution..

Finally i have also found a solution to this problem. The solution is not to remove a block of code from product-list.tpl instead we need to insert a 4 line code ... Here it is how to do....

 

Today I am going to explain How to rectify the error of " schema.org price missing" that appears in Google Mark up tool.

 

 

If you look at the product-list.tpl page in prestashop, you wont' be able to catch up where exactly the code is missing..

Let me first tell you where you find the product-list.tpl page .. It is located in root_directory/themes/your_theme/product-list.tpl

 

When you open this page in notepad, notepad ++ or other tool, you need to ctrl + F and search for

 <span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability"> .

 

Below this you will find one more line of code :

{if ($product.allow_oosp || $product.quantity > 0)}

 

Just below this line of code, place this code below :

 

 <span itemprop="price" class="price product-price{if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0} product-price-new{/if}">

                                        {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}

                                    </span>

 

Click on save to save the changes made.

Now its all done. Just go to https://developers.google.com/structured-data/testing-tool/

 

Enter your website URL and click on Validate. You will find the errors related Price schema.org is gone and it will show you a message ALL GOOD .

 

Do comment below and let me know if you have any doubts regarding this.. Thanks.

  • Like 1
Link to comment
Share on other sites

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

This problem is solved

 

there is another (if the product has accessories)

https://developers.google.com/structured-data/testing-tool?url=http%253A%252F%252Fwww.deltawings.fr%252Ffr%252Fmoniteurs%252F33-rc732-dvr-7-58ghz-32ch-lcd-diversity-receiver-fpv-monitor.html

 

122nehu.png

In general, Google does not like several products (schema.org) on a single page 

Maybe we should remove markings ?

 

/www/themes/yoar theme/sub/product_info

 

Tab.tpl

 

Prestashop 1.6.0.9

<script type="text/javascript">
$(document).ready(function(){
		$('.more_info_block .page-product-heading li:first, .more_info_block .tab-content section:first').addClass('active');
	});
</script>
<ul class="nav nav-tabs tab-info page-product-heading">
			{if (isset($quantity_discounts) && count($quantity_discounts) > 0)}
				<li><a href="#quantityDiscount" data-toggle="tab">{l s='Volume discounts'}</a></li>
			{/if}
			{if $product->description}
				<li class="active"><a href="#tab2" data-toggle="tab">{l s='More info'}</a></li>
			{/if}
			{if isset($features) && $features}
				<li><a href="#tab3" data-toggle="tab">{l s='Data sheet'}</a></li>
			{/if}
                        {if isset($HOOK_PRODUCT_TAB_CONTENT) && $HOOK_PRODUCT_TAB_CONTENT}
				{$HOOK_PRODUCT_TAB}
			{/if}
			{if isset($accessories) && $accessories}
				<li><a href="#tab4" data-toggle="tab">{l s='Accessories'}</a></li>
			{/if}			
                        {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}
                                <li ><a href="#tab5" data-toggle="tab">{l s='Download'}</a></li>
                            {/if}
                            {if isset($product) && $product->customizable}
                                    <li ><a href="#tab6" data-toggle="tab">{l s='Product customization'}</a></li>
                            {/if}
                        {/if}
                        {if isset($packItems) && $packItems|@count > 0}
                            <li ><a href="#blockpack" data-toggle="tab">{l s='Pack'}</a></li>
                        {/if}
		</ul>
		<div class="tab-content">
			{if (isset($quantity_discounts) && count($quantity_discounts) > 0)}
			<!-- quantity discount -->
			<section id="tabquantityDiscount" class="tab-pane page-product-box">
				
				<div id="quantityDiscount" class="tab-pane">
					<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 $product->description}
			<!-- More info -->
			<section id="tab2" class="tab-pane page-product-box active">
				
				{if isset($product) && $product->description}
					<!-- full description -->
					<div  class="rte">{$product->description}</div>
				{/if}
			</section>
			<!--end  More info -->
		{/if}
		{if isset($features) && $features}
			<!-- Data sheet -->
			<section id="tab3" class="tab-pane page-product-box">
				
				<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}
		<!--HOOK_PRODUCT_TAB -->		
                    {if isset($HOOK_PRODUCT_TAB_CONTENT) && $HOOK_PRODUCT_TAB_CONTENT}{$HOOK_PRODUCT_TAB_CONTENT}{/if}
		<!--end HOOK_PRODUCT_TAB -->
		{if isset($accessories) && $accessories}
			<!--Accessories -->
			<section id="tab4" class="tab-pane page-product-box">

				<div class="block products_block accessories-block clearfix">
					<div class="block_content">
						<div class="product_list grid row">
							{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)}
									<div class="product_block col-xs-6 col-sm-6 col-md-3 col-lg-3 item 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-container text-center product-block" itemscope itemtype="http://schema.org/Product">
	<div class="left-block">
		<div class="product-image-container image">
		   <div class="leo-more-info" data-idproduct="{$accessory.id_product}"></div>
			<a class="product_img_link"	href="{$accessory.link|escape:'html':'UTF-8'}" title="{$accessory.name|escape:'html':'UTF-8'}" itemprop="url">
				<img class="replace-2x img-responsive" src="{$link->getImageLink($accessory.link_rewrite, $accessory.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{if !empty($accessory.legend)}{$accessory.legend|escape:'html':'UTF-8'}{else}{$accessory.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($accessory.legend)}{$accessory.legend|escape:'html':'UTF-8'}{else}{$accessory.name|escape:'html':'UTF-8'}{/if}" itemprop="image" />
				<span class="product-additional" data-idproduct="{$accessory.id_product}"></span>
			</a>
			{if isset($quick_view) && $quick_view}
				<a class="quick-view btn-outline-inverse btn" href="{$accessory.link|escape:'html':'UTF-8'}" rel="{$accessory.link|escape:'html':'UTF-8'}" title="{l s='Quick view'}" >
					<i class="fa fa-eye"></i>
				</a>
			{/if}
			{if isset($accessory.new) && $accessory.new == 1}
				<span class="new-box">
					<span class="new-label product-label">{l s='New'}</span>
				</span>
			{/if}
			{if isset($accessory.on_sale) && $accessory.on_sale && isset($accessory.show_price) && $accessory.show_price && !$PS_CATALOG_MODE}
				<span class="sale-box">
					<span class="sale-label product-label">{l s='Sale!'}</span>
				</span>
			{/if}
		</div>
		{hook h="displayProductDeliveryTime" product=$accessory}
		{hook h="displayProductPriceBlock" product=$accessory type="weight"}
	</div>
	<div class="right-block">
		<div class="product-meta">
			{hook h='displayProductListReviews' product=$accessory}
			<h5 itemprop="name" class="name">
				{if isset($accessory.pack_quantity) && $accessory.pack_quantity}{$accessory.pack_quantity|intval|cat:' x '}{/if}
				<a class="product-name" href="{$accessory.link|escape:'html':'UTF-8'}" title="{$accessory.name|escape:'html':'UTF-8'}" itemprop="url" >
					{$accessory.name|truncate:45:'...'|escape:'html':'UTF-8'}
				</a>
			</h5>
			<p class="product-desc" itemprop="description">
				{$accessory.description_short|strip_tags:'UTF-8'|truncate:50:'...'}
			</p>
			{if (!$PS_CATALOG_MODE AND ((isset($accessory.show_price) && $accessory.show_price) || (isset($accessory.available_for_order) && $accessory.available_for_order)))}
				<div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="content_price">
					{if isset($accessory.show_price) && $accessory.show_price && !isset($restricted_country_mode)}
						<span itemprop="price" class="price product-price">
							{if !$priceDisplay}{convertPrice price=$accessory.price}{else}{convertPrice price=$accessory.price_tax_exc}{/if}
						</span>
						<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
						{if isset($accessory.specific_prices) && $accessory.specific_prices && isset($accessory.specific_prices.reduction) && $accessory.specific_prices.reduction > 0}
							{hook h="displayProductPriceBlock" product=$accessory type="old_price"}
							<span class="old-price product-price">
								{displayWtPrice p=$accessory.price_without_reduction}
							</span>
							{if $accessory.specific_prices.reduction_type == 'percentage'}
								<span class="price-percent-reduction">-{$accessory.specific_prices.reduction * 100}%</span>
							{/if}
						{/if}
						{hook h="displayProductPriceBlock" product=$accessory type="price"}
						{hook h="displayProductPriceBlock" product=$accessory type="unit_price"}
					{/if}
				</div>
			{/if}
			<div class="cart">
				{if ($accessory.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $accessory.available_for_order && !isset($restricted_country_mode) && $accessory.minimal_quantity <= 1 && $accessory.customizable != 2 && !$PS_CATALOG_MODE}
					{if (!isset($accessory.customization_required) || !$accessory.customization_required) && ($accessory.allow_oosp || $accessory.quantity > 0)}
						{if isset($static_token)}
							<a class="button ajax_add_to_cart_button btn btn-outline" href="{$link->getPageLink('cart',false, NULL, "add=1&id_product={$accessory.id_product|intval}&token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$accessory.id_product|intval}">
								<i class="fa fa-shopping-cart"></i>
								<span>{l s='Add to cart'}</span>
							</a>
						{else}
							<a class="button ajax_add_to_cart_button btn btn-outline" href="{$link->getPageLink('cart',false, NULL, 'add=1&id_product={$accessory.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$accessory.id_product|intval}">
								<i class="fa fa-shopping-cart"></i>
								<span>{l s='Add to cart'}</span>
							</a>
						{/if}
					{else}
						<div class="ajax_add_to_cart_button btn disabled btn-outline" title="{l s='Out of stock'}" >
							<i class="fa fa-shopping-cart"></i>
							<span>{l s='Out of stock'}</span>
						</div>
					{/if}
				{/if}
			</div>
			{if isset($accessory.color_list) && $ENABLE_COLOR}
				<div class="color-list-container">{$accessory.color_list} </div>
			{/if}
			<div class="product-flags">
				{if (!$PS_CATALOG_MODE AND ((isset($accessory.show_price) && $accessory.show_price) || (isset($accessory.available_for_order) && $accessory.available_for_order)))}
					{if isset($accessory.online_only) && $accessory.online_only}
						<span class="online_only label label-warning">{l s='Online only'}</span>
					{/if}
				{/if}
				{if isset($accessory.on_sale) && $accessory.on_sale && isset($accessory.show_price) && $accessory.show_price && !$PS_CATALOG_MODE}
					{elseif isset($accessory.reduction) && $accessory.reduction && isset($accessory.show_price) && $accessory.show_price && !$PS_CATALOG_MODE}
						<span class="discount label label-danger">{l s='Reduced price!'}</span>
					{/if}
			</div>
		

			{if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($accessory.show_price) && $accessory.show_price) || (isset($accessory.available_for_order) && $accessory.available_for_order)))}
				{if isset($accessory.available_for_order) && $accessory.available_for_order && !isset($restricted_country_mode)}				
					<div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability">
						{if ($accessory.allow_oosp || $accessory.quantity > 0)}
							<span class="{if $accessory.quantity <= 0 && !$accessory.allow_oosp}out-of-stock{else}available-now{/if}">
								<link itemprop="availability" href="http://schema.org/InStock" />{if $accessory.quantity <= 0}{if $accessory.allow_oosp}{if isset($accessory.available_later) && $accessory.available_later}{$accessory.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($accessory.available_now) && $accessory.available_now}{$accessory.available_now}{else}{l s='In Stock'}{/if}{/if}
							</span>
						{elseif (isset($accessory.quantity_all_versions) && $accessory.quantity_all_versions > 0)}
							<span class="available-dif">
								<link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'}
							</span>
						{else}
							<span class="out-of-stock">
								<link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'}
							</span>
						{/if}
					</div>
				{/if}
			{/if}
		
			{if $page_name !='product'}
				<div class="functional-buttons clearfix">				
					{if $ENABLE_WISHLIST}
					<div class="wishlist">
						{hook h='displayProductListFunctionalButtons' product=$accessory}
					</div>
					{/if}
					
					{if isset($comparator_max_item) && $comparator_max_item}
					<div class="compare">
						<a class="add_to_compare compare btn btn-outline-inverse" href="{$accessory.link|escape:'html':'UTF-8'}" data-id-product="{$accessory.id_product}" title="{l s='Add to compare'}" >
							<i class="fa fa-files-o"></i>
							<span>{l s='Add to compare'}</span>
						</a>						
					</div>
						
					{/if}
				</div>
			{/if}
		</div>
	</div>
</div>
									</div>
								{/if}
							{/foreach}
						</div>
					</div>
				</div>	
			</section>
			<!--end Accessories -->
		{/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 id="tab5" class="tab-pane page-product-box">
				
				{foreach from=$attachments item=attachment name=attachements}
					{if $smarty.foreach.attachements.iteration %3 == 1}<div class="row">{/if}
						<div class="col-lg-4 col-md-4 col-xs-12">
							<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 id="tab6" class="tab-pane page-product-box">
				
				<!-- 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}
		</div>
		{if isset($packItems) && $packItems|@count > 0}
		<section id="blockpack" class="tab-pane page-product-box">
			<h3 class="page-product-heading">{l s='Pack content'}</h3>
			{include file="$tpl_dir./product-list.tpl" products=$packItems}
		</section>
		{/if}
                {if isset($HOOK_PRODUCT_FOOTER) && $HOOK_PRODUCT_FOOTER}{$HOOK_PRODUCT_FOOTER}{/if}
Edited by dmouradov (see edit history)
Link to comment
Share on other sites

https://developers.google.com/structured-data/testing-tool/?url=https://www.iambridal.com/engagement-rings

 

The error page after today's crawl ...we have placed the following code already in the product-list.tpl

 

<span itemprop="price" class="price product-price{if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0} product-price-new{/if}">

                                        {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}

                                    </span>

 

Kindly advise really running out of ideas to kill this issue

Link to comment
Share on other sites

Hi,

 

The errors found in your link http://www.iambridal.com/engagement-rings has a missing element in the <div> section.. Here is the solution for that ....

 

This is your code :

 

"  <div itemprop="offers" itemscope class="content_price"> <span itemprop="price" class="price product-price"> ₹ 10,408 </span><meta itemprop="priceCurrency" content="INR"/></div> "

 

Rectification :

 

"  <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="content_price"> <span itemprop="price" class="price product-price"> ₹2,400.00 </span><meta itemprop="priceCurrency" content="INR" /></div> "

 

Just add the small code and you will find no errors .... Even after doing this, errors persist... then reply back..

 

Thanks,...

Link to comment
Share on other sites

  • 1 month later...

I'm having a issue with this as well. It seems my product page comes up without error, but the category listing of the product comes up with price missing and required under offer. What can I do to fix this? I'd really appreciate a solution.

 

The site is www.vinefreshtees.com

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

  • 4 months later...

Hello, i has found solution for this, you can see http://schema.org/price , price must have structer

  1. <span itemprop="priceCurrency" content="USD">$</span><span
  2.           itemprop="price" content="1000.00">1,000.00</span>

That mean you must have 1 span for currency and 1 for price number, but in prestashop it convert to Price price number, so it alway showing 1000$

Solution is

<span style="display: none" itemprop="priceCurrency" content="{$currency->iso_code}">{$currency->iso_code}</span>
<span style="display: none" itemprop="price" content="{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}">{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>

 

    <span content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" class="price product-price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
With this two first span, it will show correct structer of schema and google still understand it, the last span make price display correct, only display

I has tested and it worked

Link to comment
Share on other sites

  • 3 weeks later...

error.tifferror.tiffHi everyone !!

I need some help.

I have a shop in prestashop 1.6.1.5 and the google tool show me the following advertisement on the right column :

 

 

warningprice
42.00 € (42.00 € The property is not a valid specification price. Get more information in http://schema.org/price.)
 
When i click there, the left column shows the following :
<span id="our_price_display" class="price" itemprop="price">42,00 €</span>
 
Well, if I edit the "42,00 €" and leave it like this "42.00" google validate it.
 
So i think i have to change the "," by a "." and remove de "€" symbol.
 
But i don't know how.
 
Can you help me with that ??
 
Thanks in advance !!
 
My website is obedienciaysumision.com
 
 
 

 

Link to comment
Share on other sites

 

attachicon.giferror.tiffattachicon.giferror.tiffHi everyone !!

I need some help.

I have a shop in prestashop 1.6.1.5 and the google tool show me the following advertisement on the right column :

 

 

warningprice
42.00 € (42.00 € The property is not a valid specification price. Get more information in http://schema.org/price.)
 
When i click there, the left column shows the following :
<span id="our_price_display" class="price" itemprop="price">42,00 €</span>
 
Well, if I edit the "42,00 €" and leave it like this "42.00" google validate it.
 
So i think i have to change the "," by a "." and remove de "€" symbol.
 
But i don't know how.
 
Can you help me with that ??
 
Thanks in advance !!
 
My website is obedienciaysumision.com
 
 
 

 

You can read my post above, may be it's solution

Link to comment
Share on other sites

I just check class name, it's product.tpl

 

 

 

Hi, I'm sorry but. What is ( class name )  in my code there is no <Span> only <meta>

 

presta 1.6.0.9

<!-- 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}" />
										{hook h="displayProductPriceBlock" product=$product type="price"}
									{/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}
										{hook h="displayProductPriceBlock" product=$product type="old_price"}
										<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 -->
Link to comment
Share on other sites

 

Hi, I'm sorry but. What is ( class name )  in my code there is no <Span> only <meta>

 

presta 1.6.0.9

<!-- 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}" />
										{hook h="displayProductPriceBlock" product=$product type="price"}
									{/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}
										{hook h="displayProductPriceBlock" product=$product type="old_price"}
										<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 -->

Can you explain more ?

Link to comment
Share on other sites

Hello, i has found solution for this, you can see http://schema.org/price , price must have structer

  1. <span itemprop="priceCurrency" content="USD">$</span><span
  2.           itemprop="price" content="1000.00">1,000.00</span>

That mean you must have 1 span for currency and 1 for price number, but in prestashop it convert to Price price number, so it alway showing 1000$

Solution is

<span style="display: none" itemprop="priceCurrency" content="{$currency->iso_code}">{$currency->iso_code}</span>

<span style="display: none" itemprop="price" content="{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}">{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>

 

    <span content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" class="price product-price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>

With this two first span, it will show correct structer of schema and google still understand it, the last span make price display correct, only display

I has tested and it worked

 

 

Hi and thanks for the quick response.

 

version of my Presta 1.6.0.9  on line 261  havent </span>

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

 

you using other version of presta ? . 

 

Thanks

 

 

 

 

 

  1. <!-- prices -->
  2. <div class="price">
  3. <p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  4. {if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
  5. {if $priceDisplay >= 0 && $priceDisplay <= 2}
  6. <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>
  7. <!--{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
  8. {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
  9. {/if}-->
  10. <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
  11. {hook h="displayProductPriceBlock" product=$product type="price"}
  12. {/if}
  13. </p>
  14. <p id="reduction_percent" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}>
  15. <span id="reduction_percent_display">
  16. {if $product->specificPrice && $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if}
  17. </span>
  18. </p>
  19. <p id="old_price"{if (!$product->specificPrice || !$product->specificPrice.reduction) && $group_reduction == 0} class="hidden"{/if}>
  20. {if $priceDisplay >= 0 && $priceDisplay <= 2}
  21. {hook h="displayProductPriceBlock" product=$product type="old_price"}
  22. <span id="old_price_display">{if $productPriceWithoutReduction > $productPrice}{convertPrice price=$productPriceWithoutReduction}{/if}</span>
  23. <!-- {if $tax_enabled && $display_tax_label == 1}{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if} -->
  24. {/if}
  25. </p>
  26. {if $priceDisplay == 2}
  27. <br />
  28. <span id="pretaxe_price">
  29. <span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span>
  30. {l s='tax excl.'}
  31. </span>
  32. {/if}
  33. </div> <!-- end prices -->
Link to comment
Share on other sites

Hi !! thanks a lot for your time !!

I have a few questions : 

 

I was reading the schema.org/price and noticed about the structure but i don´t know how to do it.

So, i think i have to put this :

 

Hello, i has found solution for this, you can see http://schema.org/price , price must have structer

  1. <span itemprop="priceCurrency" content="USD">$</span><span
  2.           itemprop="price" content="1000.00">1,000.00</span>

That mean you must have 1 span for currency and 1 for price number, but in prestashop it convert to Price price number, so it alway showing 1000$

Solution is

<span style="display: none" itemprop="priceCurrency" content="{$currency->iso_code}">{$currency->iso_code}</span>
<span style="display: none" itemprop="price" content="{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}">{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>

 

    <span content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" class="price product-price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
With this two first span, it will show correct structer of schema and google still understand it, the last span make price display correct, only display

I has tested and it worked

 

To solve the problem, now the questions are :

 

Do i have to ADD this ?

Do i have to REPLACE some text with this ?? In this case, which is whats i have to erase ??

Are we still talking about the product.tpl file ???

 

Thanks in advance !!

 

PD: sorry if my english is not good enough...its not my mother lenguaje... :( 

Link to comment
Share on other sites

You can edit on product or product list if when check chema for price it say errors. Where have "<span content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" class="price product-price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>" or price display, delete itemprop attribute if have and add two line below
"<span style="display: none" itemprop="priceCurrency" content="{$currency->iso_code}">{$currency->iso_code}</span>
<span style="display: none" itemprop="price" content="{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}">{if !$priceDisplay}"

Hi !! thanks a lot for your time !!

I have a few questions : 

 

I was reading the schema.org/price and noticed about the structure but i don´t know how to do it.

So, i think i have to put this :

 

Hello, i has found solution for this, you can see http://schema.org/price , price must have structer

  1. <span itemprop="priceCurrency" content="USD">$</span><span
  2.           itemprop="price" content="1000.00">1,000.00</span>

That mean you must have 1 span for currency and 1 for price number, but in prestashop it convert to Price price number, so it alway showing 1000$

Solution is

<span style="display: none" itemprop="priceCurrency" content="{$currency->iso_code}">{$currency->iso_code}</span>
<span style="display: none" itemprop="price" content="{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}">{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>

 

    <span content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" class="price product-price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
With this two first span, it will show correct structer of schema and google still understand it, the last span make price display correct, only display

I has tested and it worked

 

To solve the problem, now the questions are :

 

Do i have to ADD this ?

Do i have to REPLACE some text with this ?? In this case, which is whats i have to erase ??

Are we still talking about the product.tpl file ???

 

Thanks in advance !!

 

PD: sorry if my english is not good enough...its not my mother lenguaje... :(

Link to comment
Share on other sites

Hi friend,

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

not effect, just add two line i was give to below price display (remember remove itemprop of schema attribute on price display, it just make price display), two line i was give will be display none but schema will understand it

 

Hi and thanks for the quick response.

 

version of my Presta 1.6.0.9  on line 261  havent </span>

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

 

you using other version of presta ? . 

 

Thanks

 

 

 

 

 

  1. <!-- prices -->
  2. <div class="price">
  3. <p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  4. {if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
  5. {if $priceDisplay >= 0 && $priceDisplay <= 2}
  6. <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>
  7. <!--{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
  8. {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
  9. {/if}-->
  10. <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
  11. {hook h="displayProductPriceBlock" product=$product type="price"}
  12. {/if}
  13. </p>
  14. <p id="reduction_percent" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}>
  15. <span id="reduction_percent_display">
  16. {if $product->specificPrice && $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if}
  17. </span>
  18. </p>
  19. <p id="old_price"{if (!$product->specificPrice || !$product->specificPrice.reduction) && $group_reduction == 0} class="hidden"{/if}>
  20. {if $priceDisplay >= 0 && $priceDisplay <= 2}
  21. {hook h="displayProductPriceBlock" product=$product type="old_price"}
  22. <span id="old_price_display">{if $productPriceWithoutReduction > $productPrice}{convertPrice price=$productPriceWithoutReduction}{/if}</span>
  23. <!-- {if $tax_enabled && $display_tax_label == 1}{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if} -->
  24. {/if}
  25. </p>
  26. {if $priceDisplay == 2}
  27. <br />
  28. <span id="pretaxe_price">
  29. <span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span>
  30. {l s='tax excl.'}
  31. </span>
  32. {/if}
  33. </div> <!-- end prices -->

 

Link to comment
Share on other sites

  • 4 weeks later...

Hi !! thanks a lot for your time !!

I have a few questions : 

 

I was reading the schema.org/price and noticed about the structure but i don´t know how to do it.

So, i think i have to put this :

 

Hello, i has found solution for this, you can see http://schema.org/price , price must have structer

  1. <span itemprop="priceCurrency" content="USD">$</span><span
  2.           itemprop="price" content="1000.00">1,000.00</span>

That mean you must have 1 span for currency and 1 for price number, but in prestashop it convert to Price price number, so it alway showing 1000$

Solution is

<span style="display: none" itemprop="priceCurrency" content="{$currency->iso_code}">{$currency->iso_code}</span>

<span style="display: none" itemprop="price" content="{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}">{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>

 

    <span content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" class="price product-price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>

With this two first span, it will show correct structer of schema and google still understand it, the last span make price display correct, only display

I has tested and it worked

 

To solve the problem, now the questions are :

 

Do i have to ADD this ?

Do i have to REPLACE some text with this ?? In this case, which is whats i have to erase ??

Are we still talking about the product.tpl file ???

 

Thanks in advance !!

 

PD: sorry if my english is not good enough...its not my mother lenguaje... :(

Hi, how did you solve the problem?

Thanks in advance

Link to comment
Share on other sites

  • 4 months later...

I'm trying to understand this.  My  product-list-tpl from prestashop 1.6.1.7 looks like this:

{*
* 2007-2016 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-2016 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{if isset($products) && $products}
	{*define number of products per line in other page for desktop*}
	{if $page_name !='index' && $page_name !='product'}
		{assign var='nbItemsPerLine' value=3}
		{assign var='nbItemsPerLineTablet' value=2}
		{assign var='nbItemsPerLineMobile' value=3}
	{else}
		{assign var='nbItemsPerLine' value=4}
		{assign var='nbItemsPerLineTablet' value=3}
		{assign var='nbItemsPerLineMobile' value=2}
	{/if}
	{*define numbers of product per line in other page for tablet*}
	{assign var='nbLi' value=$products|@count}
	{math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines}
	{math equation="nbLi/nbItemsPerLineTablet" nbLi=$nbLi nbItemsPerLineTablet=$nbItemsPerLineTablet assign=nbLinesTablet}
	<!-- Products list -->
	<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list grid row{if isset($class) && $class} {$class}{/if}">
	{foreach from=$products item=product name=products}
		{math equation="(total%perLine)" total=$smarty.foreach.products.total perLine=$nbItemsPerLine assign=totModulo}
		{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet}
		{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineMobile assign=totModuloMobile}
		{if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}
		{if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if}
		{if $totModuloMobile == 0}{assign var='totModuloMobile' value=$nbItemsPerLineMobile}{/if}
		<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-12 col-sm-4 col-md-3{else} col-xs-12 col-sm-6 col-md-4{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLine == 0} last-in-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1} first-in-line{/if}{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModulo)} last-line{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 0} last-item-of-tablet-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 1} first-item-of-tablet-line{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 0} last-item-of-mobile-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 1} first-item-of-mobile-line{/if}{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModuloMobile)} last-mobile-line{/if}">
			<div class="product-container" itemscope itemtype="https://schema.org/Product">
				<div class="left-block">
					<div class="product-image-container">
						<a class="product_img_link" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url">
							<img class="replace-2x img-responsive" src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" />
						</a>
						{if isset($quick_view) && $quick_view}
							<div class="quick-view-wrapper-mobile">
							<a class="quick-view-mobile" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}">
								<i class="icon-eye-open"></i>
							</a>
						</div>
						<a class="quick-view" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}">
							<span>{l s='Quick view'}</span>
						</a>
						{/if}
						{if (!$PS_CATALOG_MODE && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
							<div class="content_price" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
								{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
									<span itemprop="price" class="price product-price">
										{hook h="displayProductPriceBlock" product=$product type="before_price"}
										{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
									</span>
									<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
									{if $product.price_without_reduction > 0 && isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0}
										{hook h="displayProductPriceBlock" product=$product type="old_price"}
										<span class="old-price product-price">
											{displayWtPrice p=$product.price_without_reduction}
										</span>
										{if $product.specific_prices.reduction_type == 'percentage'}
											<span class="price-percent-reduction">-{$product.specific_prices.reduction * 100}%</span>
										{/if}
									{/if}
									{if $PS_STOCK_MANAGEMENT && isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
										<span class="unvisible">
											{if ($product.allow_oosp || $product.quantity > 0)}
													<link itemprop="availability" href="https://schema.org/InStock" />{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}
											{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
													<link itemprop="availability" href="https://schema.org/LimitedAvailability" />{l s='Product available with different options'}

											{else}
													<link itemprop="availability" href="https://schema.org/OutOfStock" />{l s='Out of stock'}
											{/if}
										</span>
									{/if}
									{hook h="displayProductPriceBlock" product=$product type="price"}
									{hook h="displayProductPriceBlock" product=$product type="unit_price"}
								{/if}
							</div>
						{/if}
						{if isset($product.new) && $product.new == 1}
							<a class="new-box" href="{$product.link|escape:'html':'UTF-8'}">
								<span class="new-label">{l s='New'}</span>
							</a>
						{/if}
						{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
							<a class="sale-box" href="{$product.link|escape:'html':'UTF-8'}">
								<span class="sale-label">{l s='Sale!'}</span>
							</a>
						{/if}
					</div>
					{if isset($product.is_virtual) && !$product.is_virtual}{hook h="displayProductDeliveryTime" product=$product}{/if}
					{hook h="displayProductPriceBlock" product=$product type="weight"}
				</div>
				<div class="right-block">
					<h5 itemprop="name">
						{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}
						<a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url" >
							{$product.name|truncate:45:'...'|escape:'html':'UTF-8'}
						</a>
					</h5>
					{capture name='displayProductListReviews'}{hook h='displayProductListReviews' product=$product}{/capture}
					{if $smarty.capture.displayProductListReviews}
						<div class="hook-reviews">
						{hook h='displayProductListReviews' product=$product}
						</div>
					{/if}
					<p class="product-desc" itemprop="description">
						{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}
					</p>
					{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
					<div class="content_price">
						{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
							{hook h="displayProductPriceBlock" product=$product type='before_price'}
							<span class="price product-price">
								{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
							</span>
							{if $product.price_without_reduction > 0 && isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0}
								{hook h="displayProductPriceBlock" product=$product type="old_price"}
								<span class="old-price product-price">
									{displayWtPrice p=$product.price_without_reduction}
								</span>
								{hook h="displayProductPriceBlock" id_product=$product.id_product type="old_price"}
								{if $product.specific_prices.reduction_type == 'percentage'}
									<span class="price-percent-reduction">-{$product.specific_prices.reduction * 100}%</span>
								{/if}
							{/if}
							{hook h="displayProductPriceBlock" product=$product type="price"}
							{hook h="displayProductPriceBlock" product=$product type="unit_price"}
							{hook h="displayProductPriceBlock" product=$product type='after_price'}
						{/if}
					</div>
					{/if}
					<div class="button-container">
						{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.customizable != 2 && !$PS_CATALOG_MODE}
							{if (!isset($product.customization_required) || !$product.customization_required) && ($product.allow_oosp || $product.quantity > 0)}
								{capture}add=1&id_product={$product.id_product|intval}{if isset($product.id_product_attribute) && $product.id_product_attribute}&ipa={$product.id_product_attribute|intval}{/if}{if isset($static_token)}&token={$static_token}{/if}{/capture}
								<a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product-attribute="{$product.id_product_attribute|intval}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{if isset($product.product_attribute_minimal_quantity) && $product.product_attribute_minimal_quantity >= 1}{$product.product_attribute_minimal_quantity|intval}{else}{$product.minimal_quantity|intval}{/if}">
									<span>{l s='Add to cart'}</span>
								</a>
							{else}
								<span class="button ajax_add_to_cart_button btn btn-default disabled">
									<span>{l s='Add to cart'}</span>
								</span>
							{/if}
						{/if}
						<a class="button lnk_view btn btn-default" href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}">
							<span>{if (isset($product.customization_required) && $product.customization_required)}{l s='Customize'}{else}{l s='More'}{/if}</span>
						</a>
					</div>
					{if isset($product.color_list)}
						<div class="color-list-container">{$product.color_list}</div>
					{/if}
					<div class="product-flags">
						{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
							{if isset($product.online_only) && $product.online_only}
								<span class="online_only">{l s='Online only'}</span>
							{/if}
						{/if}
						{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
							{elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
								<span class="discount">{l s='Reduced price!'}</span>
							{/if}
					</div>
					{if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
						{if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
							<span class="availability">
								{if ($product.allow_oosp || $product.quantity > 0)}
							 

									<span class="{if $product.quantity <= 0 && isset($product.allow_oosp) && !$product.allow_oosp} label-danger{elseif $product.quantity <= 0} label-warning{else} label-success{/if}">
										{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{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>
								{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
									<span class="label-warning">
										{l s='Product available with different options'}
									</span>
								{else}
									<span class="label-danger">
										{l s='Out of stock'}
									</span>
								{/if}
							</span>
						{/if}
					{/if}
				</div>
				{if $page_name != 'index'}
					<div class="functional-buttons clearfix">
						{hook h='displayProductListFunctionalButtons' product=$product}
						{if isset($comparator_max_item) && $comparator_max_item}
							<div class="compare">
								<a class="add_to_compare" href="{$product.link|escape:'html':'UTF-8'}" data-id-product="{$product.id_product}">{l s='Add to Compare'}</a>
							</div>
						{/if}
					</div>
				{/if}
			</div><!-- .product-container> -->
		</li>
	{/foreach}
	</ul>
{addJsDefL name=min_item}{l s='Please select at least one product' js=1}{/addJsDefL}
{addJsDefL name=max_item}{l s='You cannot add more than %d product(s) to the product comparison' sprintf=$comparator_max_item js=1}{/addJsDefL}
{addJsDef comparator_max_item=$comparator_max_item}
{addJsDef comparedProductsIds=$compared_products}
{/if}

 

Hello, i has found solution for this, you can see http://schema.org/price , price must have structer

  1. <span itemprop="priceCurrency" content="USD">$</span><span
  2.           itemprop="price" content="1000.00">1,000.00</span>

That mean you must have 1 span for currency and 1 for price number, but in prestashop it convert to Price price number, so it alway showing 1000$

Solution is

<span style="display: none" itemprop="priceCurrency" content="{$currency->iso_code}">{$currency->iso_code}</span>
<span style="display: none" itemprop="price" content="{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}">{if !$priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>

 

    <span content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" class="price product-price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
With this two first span, it will show correct structer of schema and google still understand it, the last span make price display correct, only display

I has tested and it worked

 

Can you post the code that will validate correctly so I can try "cut and paste"

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

  • 1 month later...

Hello,

i've a problem in Google Webmaster Tools in Schema.

 

Hundreds of products have this errors:

https://drive.google.com/file/d/0B7xDAYSl6fb8dWh5V2hWNTR2dzQ/view?usp=sharing

 

This is my Product-List.tpl file:

 

{*
* 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:
* 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
*}
{if isset($products) && $products}
{*define numbers of product per line in other page for desktop*}
{if $page_name !='index' && $page_name !='product'}
{assign var='nbItemsPerLine' value=3}
{assign var='nbItemsPerLineTablet' value=2}
{assign var='nbItemsPerLineMobile' value=3}
{else}
{assign var='nbItemsPerLine' value=4}
{assign var='nbItemsPerLineTablet' value=3}
{assign var='nbItemsPerLineMobile' value=2}
{/if}
{*define numbers of product per line in other page for tablet*}
{assign var='nbLi' value=$products|@count}
{math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines}
{math equation="nbLi/nbItemsPerLineTablet" nbLi=$nbLi nbItemsPerLineTablet=$nbItemsPerLineTablet assign=nbLinesTablet}
<!-- Products list -->
<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list grid row{if isset($class) && $class} {$class}{/if}">
{foreach from=$products item=product name=products}
{math equation="(total%perLine)" total=$smarty.foreach.products.total perLine=$nbItemsPerLine assign=totModulo}
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet}
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineMobile assign=totModuloMobile}
{if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}
{if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if}
{if $totModuloMobile == 0}{assign var='totModuloMobile' value=$nbItemsPerLineMobile}{/if}
<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-12 col-sm-6 col-md-6 col-lg-4{else} col-xs-12 col-sm-6 col-md-6 col-lg-4{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLine == 0} last-in-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1} first-in-line{/if}{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModulo)} last-line{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 0} last-item-of-tablet-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 1} first-item-of-tablet-line{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 0} last-item-of-mobile-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 1} first-item-of-mobile-line{/if}{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModuloMobile)} last-mobile-line{/if}">
<div class="product-container" itemscope itemtype="http://schema.org/Product">
<div class="list-tab-img">
<div class="img_content">
<a class="product_img_link" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url">
<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'large_default')|escape:'html'}"
alt="{$product.legend|escape:'html':'UTF-8'}"
class="img-responsive"/>
</a>
</div>
<div class="btn_content">
{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE}
{if ($product.allow_oosp || $product.quantity > 0)}
{if isset($static_token)}
<a class="exclusive ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, "add=1&id_product={$product.id_product|intval}&token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}">
<i class="icon-shopping-cart"></i>{l s='add to cart'}
</a>
{else}
<a class="exclusive ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, 'add=1&id_product={$product.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}">
<i class="icon-shopping-cart"></i>{l s='add to cart'}
</a>
{/if}
{else}
<span class="exclusive ajax_add_to_cart_button btn btn-default disabled">
<i class="icon-shopping-cart"></i>{l s='add to cart'}
</span>
{/if}
{/if}
<a title="{l s='Add to wishlist'}"
class="addToWishlist wishlistProd_{$product.id_product|intval}"
href="#"
onclick="WishlistCart('wishlist_block_list', 'add', '{$product.id_product|intval}', false, 1); return false;">
<i class="icon-heart"></i>
</a>
<a class="add_to_compare"
href="{$product.link|escape:'html':'UTF-8'}"
title="{l s='Add to compare'}"
data-id-product="{$product.id_product}">
<i class="icon-retweet"></i>
</a>
<a title="{l s='Quick view'}"
class="quick-view"
href="{$product.link|escape:'html':'UTF-8'}"
rel="{$product.link|escape:'html':'UTF-8'}">
{l s='quickview'}
</a>
</div>
</div>
{* <div class="countdown" >
{if isset($product.specific_prices)  && $product.specific_prices.to|date_format:"%Y" !=0 }
{hook h='timecountdown' product=$product }
<span id="future_date_{$product.id_category_default}_{$product.id_product}"
class="id_countdown"></span>
{/if}
</div> *}
<div class="clearfix"></div>
<div class="list-tab-info">
<div class="comment-box">
{hook h='displayProductListReviews' product=$product}
</div>
<div id="product_data_{$product.id_product}" class="info_left">
<div class="name_outer">
<a class="product-name" href="{$product.link|escape:'html'}" title="{$product.name|truncate:50:'...'|escape:'htmlall':'UTF-8'}">
{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}
</a>
<!-- zoorate feedaty product widget start -->
<div id="zoorate_widget_8acb41949199b142"></div>
<script src="//widget.zoorate.com/js/feed_v3.js" type="text/javascript"></script>
<script type="text/javascript">
var zoorate_params = {
"zoorate_ProductID": "{$product.id_product}",
"zoorate_site_key": "10ba997925a512f775b49408b0947d2e",
"zoorate_widget_css": "product_small.css",
"zoorate_widget_type": "product_small",
"zoorate_widget_id": "8acb41949199b142"+"|"+document.URL,
"zoorate_widget_server": "widget.zoorate.com",
"zoorate_div_id": "product_data_{$product.id_product}"
};
do_widget(zoorate_params);
</script>
<!-- zoorate widget end -->
{* Feedaty *}
</div>
<div class="price-box">
<span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>
{if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0}
<span class="old-price product-price">
{displayWtPrice p=$product.price_without_reduction}
</span>
{/if}
<meta itemprop="priceCurrency" content="{$priceDisplay}" />
</div>
<p class="product-desc" itemprop="description">
{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}
</p>
<div class="list-tab-button">
{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE}
{if ($product.allow_oosp || $product.quantity > 0)}
{if isset($static_token)}
<a class="exclusive ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, "add=1&id_product={$product.id_product|intval}&token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}">
<i class="icon-shopping-cart"></i>
{l s='Add to cart'}
</a>
{else}
<a class="exclusive ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, 'add=1&id_product={$product.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}">
<i class="icon-shopping-cart"></i>
{l s='Add to cart'}
</a>
{/if}
{else}
<span class="exclusive ajax_add_to_cart_button btn btn-default disabled">
<i class="icon-shopping-cart"></i>
{l s='Add to cart'}
</span>
{/if}
{/if}
<a title="{l s='Quick view'}"
class="quick-view"
href="{$product.link|escape:'html':'UTF-8'}"
rel="{$product.link|escape:'html':'UTF-8'}">
<i class="icon-eye-open"></i>
</a>
<a title="{l s='Add to wishlist'}"
class="addToWishlist wishlistProd_{$product.id_product|intval}"
href="#"
rel="{$product.id_product|intval}"
onclick="WishlistCart('wishlist_block_list', 'add', '{$product.id_product|intval}', false, 1); return false;">
<i class="icon-heart-empty"></i>
</a>
<a class="add_to_compare"
href="{$product.link|escape:'html':'UTF-8'}"
title="{l s='Add to compare'}"
data-id-product="{$product.id_product}">
<i class="icon-retweet"></i>
</a>
<div class="clearfix"></div>
</div>
<div class="clearfix"></div>
</div>
</div>
</div><!-- .product-container> -->
</li>
{/foreach}
</ul>
{addJsDefL name=min_item}{l s='Please select at least one product' js=1}{/addJsDefL}
{addJsDefL name=max_item}{l s='You cannot add more than %d product(s) to the product comparison' sprintf=$comparator_max_item js=1}{/addJsDefL}
{addJsDef comparator_max_item=$comparator_max_item}
{addJsDef comparedProductsIds=$compared_products}
{/if}
 
My Prestashop Version 1.6.0.14
What i've to do??
 
Thanks for your support,
 
Fabio
Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...
  • 4 months later...
  • 1 year later...

I used a tricky way and I hope it will be accepted by Google. I just copied the following code from an earlier point in product-list.tpl and placed it after line 136 (prestashop 1.6)

Here is the code (start...) 

<span itemprop="price" class="price product-price{if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0} product-price-new{/if}">
                    {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
  </span>

(...end of code)

What I really did is duplicate the already existing itemprop="price" and then I just placed it right after the line 135 (start of line... ) <span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability"> (...end of line). This way I informed Google that besides avaliability, there is also a price, even if this price was already mentioned. This happens because, according to the Google point of view, there should be only one product in the page...

I verified my solution with Google >> google.com/structured-data/testing-tool . I hope I helped...this might be useful to all versions, since the idea is to add markup atrribute and not to change the core code of prestashop.

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

  • 1 year later...

 

I can't believe that no one has yet provided exactly how to debug structured data on google

 

How can this problem not be optimized in the newer versions of Prestashop

I wasted a whole week of my time looking for ways to clear these errors, if they continue like this I will probably really give up the platform despite the fact that I paid a lot of money for modules and topics and what not.

 

Why not just some developer not to give accurate information and stop this search and writing and waste of people's time. Just see how much has been written on the topic and continues and no one has given specific methods and results. I expected 1.7 to be much more optimized !!!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...