Автор Тема: Помогите настроить микроразметку в престашоп 1.6.0.9  (Прочитано 6200 раз)

15 Июль 2019, 21:28:50
Ответ #30
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Разместил микроразметку microdata schema.org для товара и ld+json.
Скрипты ld+json в <body>

<script type="application/ld+json">
{
    "@context" : "http://schema.org",
    "@type" : "Organization",
    "name" : "{$shop_name|escape:'html':'UTF-8'}",
    "url" : "{$link->getPageLink('index', true)|escape:'html':'UTF-8'}",
    "logo" : {
        "@type":"ImageObject",
        "url":"{$logo_url|escape:'html':'UTF-8'}"
    }
}
</script>
<script type="application/ld+json">
{
    "@context":"http://schema.org",
    "@type":"WebPage",
    "isPartOf": {
        "@type":"WebSite",
        "url":  "{$link->getPageLink('index', true)|escape:'html':'UTF-8'}",
        "name": "{$shop_name|escape:'html':'UTF-8'}"
    },
    "name": "{$meta_title|escape:'html':'UTF-8'}",
    "url":  "{if isset($force_ssl) && $force_ssl}{$base_dir_ssl|escape:'html':'UTF-8'}{trim($smarty.server.REQUEST_URI,'/')|escape:'html':'UTF-8'}{else}{$base_dir|escape:'html':'UTF-8'}{trim($smarty.server.REQUEST_URI,'/')|escape:'html':'UTF-8'}{/if}"
}
</script>
{if $page_name =='index'}
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "{$link->getPageLink('index', true)|escape:'html':'UTF-8'}",
"image": {
"@type": "ImageObject",
"url":  "{$logo_url|escape:'html':'UTF-8'}"
},
    "potentialAction": {
    "@type": "SearchAction",
    "target": "{'--search_term_string--'|str_replace:'{search_term_string}':$link->getPageLink('search',true,null,['search_query'=>'--search_term_string--'])}",
     "query-input": "required name=search_term_string"
}
}
</script>
{/if}
{if $page_name == 'product'}
<script type="application/ld+json">
    {
    "@context": "http://schema.org/",
    "@type": "Product",
    "name": "{$product->name|escape:'html':'UTF-8'}",
    "description": "{$product->description_short|strip_tags|escape:'html':'UTF-8'}",
    "sku": "{$product->reference}",
    "image": "{$link->getImageLink($product->link_rewrite, $cover.id_image, 'home_default')|escape:'html':'UTF-8'}",
{if $product->reference}"mpn": "{$product->id|escape:'html':'UTF-8'}",{/if}
    {if $product_manufacturer->name}"brand": {
        "@type": "Brand",
        "name": "{$product_manufacturer->name|escape:'html':'UTF-8'}"
    },{/if}
    {if isset($iCountReviews) && $iCountReviews && $aReview.rating.note}"aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "{$aReview.rating.note}",
        "reviewCount": "{$iCountReviews}"
    },{/if}
    {if empty($combinations)}
    "offers": {
        "@type": "Offer",
        "priceCurrency": "{$currency->iso_code|escape:'html':'UTF-8'}",
        "name": "{$product->name|escape:'html':'UTF-8'}",
        "price": "{$product->getPrice(true, $smarty.const.NULL, 2)|round:'2'|escape:'html':'UTF-8'}",
        "priceValidUntil": "2025-01-01",
        "url": "{$link->getProductLink($product)}",
        "image": "{$link->getImageLink($product->link_rewrite, $cover.id_image, 'home_default')|escape:'html':'UTF-8'}",
        {if $product->ean13}
        "gtin13": "{$product->ean13|escape:'html':'UTF-8'}",
        {else if $product->upc}
        "gtin13": "0{$product->upc|escape:'html':'UTF-8'}",
        {/if}
        "sku": "{$product->reference}",
        {if $product->condition == 'new'}"itemCondition": "http://schema.org/NewCondition",{/if}
        {if $product->condition == 'used'}"itemCondition": "http://schema.org/UsedCondition",{/if}
        {if $product->condition == 'refurbished'}"itemCondition": "http://schema.org/RefurbishedCondition",{/if}
        "availability":{if $product->quantity > 0} "http://schema.org/InStock"{else} "http://schema.org/OutOfStock"{/if},
        "seller": {
            "@type": "Organization",
            "name": "{$shop_name|escape:'html':'UTF-8'}"
        }
    }
    {else}
    "offers": [
      {foreach key=atomik item=combination from=$combinations}
        {
        "@type": "Offer",
        "name": "{$product->name|escape:'html':'UTF-8'} - {$combination.reference}",
        "priceCurrency": "{$currency->iso_code|escape:'html':'UTF-8'}",
        "price": "{$product->getPrice(true, $smarty.const.NULL, 2)|round:'2'|escape:'html':'UTF-8'}",
        "priceValidUntil": "2025-01-01",
        "url": "{$link->getProductLink($product)}",
        "image": "{$link->getImageLink($product->link_rewrite, $cover.id_image, 'home_default')|escape:'html':'UTF-8'}",
        {if $combination.ean13}
        "gtin13": "{$combination.ean13|escape:'html':'UTF-8'}",
        {else if $combination.upc}
        "gtin13": "0{$combination.upc|escape:'html':'UTF-8'}",
        {/if}
        "sku": "{$product->reference}",
        {if $combination.condition == 'new'}"itemCondition": "http://schema.org/NewCondition",{/if}
        {if $combination.condition == 'used'}"itemCondition": "http://schema.org/UsedCondition",{/if}
        {if $combination.condition == 'refurbished'}"itemCondition": "http://schema.org/RefurbishedCondition",{/if}
        "availability": {if $combination.quantity > 0}"http://schema.org/InStock"{else}"http://schema.org/OutOfStock"{/if},
        "seller": {
            "@type": "Organization",
            "name": "{$shop_name|escape:'html':'UTF-8'}"}
        } {if !$combination@last},{/if}         
     {/foreach}
    ]
    {/if}
}
</script>
{/if}
Так же в <head> прописал
<head prefix="og: http://ogp.me/ns#
fb: http://ogp.me/ns/fb#
product: http://ogp.me/ns/product#
og: http://opengraphprotocol.org/schema#
fb: http://www.facebook.com/2008/fbml#">

Тест Google показал, что при использовании кода в <head> и скрипты ld+json блокируются значения тегов <meta...> в product.tpl

<span itemprop="offers" itemscope itemtype="http://schema.org/Offer" id="our_price_display" class="price" content="{$productPrice}">{convertPrice price=$productPrice|floatval}
<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
<meta itemprop="priceValidUntil" content="2025-01-01" />
<link itemprop="availability" href="http://schema.org/InStock" />
<meta itemprop="price" content="{$productPrice}" />
<link itemprop="url" href="{$link->getProductLink($product)}">
</span>

Можно ли использовать эту совокупность?
Как исправить эту проблему?

Спасибо.
15 Июль 2019, 23:30:24
Ответ #31
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Так нельзя, для страницы товара нужно свой header.tpl создавать.
{if {$page_name} == 'product' }
  <meta property="og:type" content="product">
  <meta property="og:url" content="{$urls.current_url}">
  <meta property="og:title" content="{$page.meta.title}">
  <meta property="og:site_name" content="{$shop.name}">
  <meta property="og:description" content="{$page.meta.description}">
  <meta property="og:image" content="{$product.cover.large.url}">
  <meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
  <meta property="product:pretax_price:currency" content="{$currency.iso_code}">
  <meta property="product:price:amount" content="{$product.price_amount}">
  <meta property="product:price:currency" content="{$currency.iso_code}">
{/if}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
15 Июль 2019, 23:33:27
Ответ #32
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Так нельзя, для страницы товара нужно свой header.tpl создавать.
{if {$page_name} == 'product' }
  <meta property="og:type" content="product">
  <meta property="og:url" content="{$urls.current_url}">
  <meta property="og:title" content="{$page.meta.title}">
  <meta property="og:site_name" content="{$shop.name}">
  <meta property="og:description" content="{$page.meta.description}">
  <meta property="og:image" content="{$product.cover.large.url}">
  <meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
  <meta property="product:pretax_price:currency" content="{$currency.iso_code}">
  <meta property="product:price:amount" content="{$product.price_amount}">
  <meta property="product:price:currency" content="{$currency.iso_code}">
{/if}
Этот код нельзя использовать в header.tpl от текущего шаблона?
Я не понял выражение "для страницы товара нужно свой header.tpl создавать".
Не могли бы Вы пояснить?
И... если использовать предлагаемый Вами код в header.tpl, то я так понимаю нужно удалить скрипты ld+json и удалить
<head prefix="og: http://ogp.me/ns#
fb: http://ogp.me/ns/fb#
product: http://ogp.me/ns/product#
og: http://opengraphprotocol.org/schema#
fb: http://www.facebook.com/2008/fbml#">
Это так?
Спасибо.
18 Июль 2019, 13:50:21
Ответ #33
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Так нельзя, для страницы товара нужно свой header.tpl создавать.
{if {$page_name} == 'product' }
  <meta property="og:type" content="product">
  <meta property="og:url" content="{$urls.current_url}">
  <meta property="og:title" content="{$page.meta.title}">
  <meta property="og:site_name" content="{$shop.name}">
  <meta property="og:description" content="{$page.meta.description}">
  <meta property="og:image" content="{$product.cover.large.url}">
  <meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
  <meta property="product:pretax_price:currency" content="{$currency.iso_code}">
  <meta property="product:price:amount" content="{$product.price_amount}">
  <meta property="product:price:currency" content="{$currency.iso_code}">
{/if}

В данный момент <head> имеет такой вид:
<!DOCTYPE HTML>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"{if isset($language_code) && $language_code} lang="{$language_code|escape:'html':'UTF-8'}"{/if}><![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8 ie7"{if isset($language_code) && $language_code} lang="{$language_code|escape:'html':'UTF-8'}"{/if}><![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9 ie8"{if isset($language_code) && $language_code} lang="{$language_code|escape:'html':'UTF-8'}"{/if}><![endif]-->
<!--[if gt IE 8]> <html class="no-js ie9"{if isset($language_code) && $language_code} lang="{$language_code|escape:'html':'UTF-8'}"{/if}><![endif]-->
<html{if isset($language_code) && $language_code} lang="{$language_code|escape:'html':'UTF-8'}"{/if}>
<head prefix="og: http://ogp.me/ns#
fb: http://ogp.me/ns/fb#
product: http://ogp.me/ns/product#
og: http://opengraphprotocol.org/schema#
fb: http://www.facebook.com/2008/fbml#">
<title>{$meta_title|escape:'html':'UTF-8'}</title>
{if isset($meta_description) AND $meta_description}
        <meta name="description" property="og:description" content="{$meta_description|escape:'html':'UTF-8'}" />
{/if}
        <meta property="og:site_name" content="{$shop_name|escape:'html':'UTF-8'}" />
        <meta property="og:title" content="{$meta_title|escape:'html':'UTF-8'}" />
        <meta property="og:type" content="{if $page_name == 'product'}product{else}website{/if}" />
{if $page_name == 'product'}
        <meta property="product:pretax_price:amount" content="{$product->price}" />
        <meta property="product:price:currency" content="{$currency->iso_code}" />
{/if}
        <meta property="og:url" content="{if isset($force_ssl) && $force_ssl}https://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}{else}http://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}{/if}" />
        <meta property="og:image" content="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'small_default')|escape:'html':'UTF-8'}" />
        <meta property="og:locale" content="{$meta_language}-{$lang_iso|upper}" />
{if isset($meta_keywords) AND $meta_keywords}
<meta name="keywords" content="{$meta_keywords|escape:'html':'UTF-8'}" />
{/if}
<meta name="generator" content="PrestaShop" />
<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />
<meta name="viewport" content="width=device-width, minimum-scale=0.25, maximum-scale=1.6, initial-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<link rel="icon" type="image/vnd.microsoft.icon" href="{$favicon_url}?{$img_update_time}" />
<link rel="shortcut icon" type="image/x-icon" href="{$favicon_url}?{$img_update_time}" />
{if isset($css_files)}
{foreach from=$css_files key=css_uri item=media}
{if $css_uri == 'lteIE9'}
<!--[if lte IE 9]>
{foreach from=$css_files[$css_uri] key=css_uriie9 item=mediaie9}
<link rel="stylesheet" href="{$css_uriie9|escape:'html':'UTF-8'}" type="text/css" media="{$mediaie9|escape:'html':'UTF-8'}" />
{/foreach}
<![endif]-->
{else}
<link rel="stylesheet" href="{$css_uri|escape:'html':'UTF-8'}" type="text/css" media="{$media|escape:'html':'UTF-8'}" />
{/if}
{/foreach}
{/if}
{if isset($js_defer) && !$js_defer && isset($js_files) && isset($js_def)}
{$js_def}
{foreach from=$js_files item=js_uri}
<script type="text/javascript" src="{$js_uri|escape:'html':'UTF-8'}"></script>
{/foreach}
{/if}
{$HOOK_HEADER}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,600&amp;subset=latin,latin-ext" type="text/css" media="all" />
<!--[if IE 8]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->

</head>
(так же ниже в <body> ранее указанный скрипт ld+json)

Пробовал в <head> заменить
{if $page_name == 'product'}
        <meta property="product:pretax_price:amount" content="{$product->price}" />
        <meta property="product:price:currency" content="{$currency->iso_code}" />
{/if}
на
{if {$page_name} == 'product' }
  <meta property="og:type" content="product">
  <meta property="og:url" content="{$urls.current_url}">
  <meta property="og:title" content="{$page.meta.title}">
  <meta property="og:site_name" content="{$shop.name}">
  <meta property="og:description" content="{$page.meta.description}">
  <meta property="og:image" content="{$product.cover.large.url}">
  <meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
  <meta property="product:pretax_price:currency" content="{$currency.iso_code}">
  <meta property="product:price:amount" content="{$product.price_amount}">
  <meta property="product:price:currency" content="{$currency.iso_code}">
{/if}
и на
{if $page_name == 'product' }
  <meta property="og:type" content="product">
  <meta property="og:url" content="{$urls.current_url}">
  <meta property="og:title" content="{$page.meta.title}">
  <meta property="og:site_name" content="{$shop.name}">
  <meta property="og:description" content="{$page.meta.description}">
  <meta property="og:image" content="{$product.cover.large.url}">
  <meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
  <meta property="product:pretax_price:currency" content="{$currency.iso_code}">
  <meta property="product:price:amount" content="{$product.price_amount}">
  <meta property="product:price:currency" content="{$currency.iso_code}">
{/if}
В обоих случаях на странице товара выходит чистая страница...
18 Июль 2019, 17:26:54
Ответ #34
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Модуль socialsharing установите, он добавит микроразметку на страницу товара. Не нужно менять шаблоны темы, в модуле шаблон с микроразметкой подключается на странице товара и заполняются мета теги.
Если нужно изменить микроразметку, меняйте файл /modules/socialsharing/views/templates/hook/socialsharing_header.tpl
Cоздание интернет сайтов Webstudio UwK
18 Июль 2019, 19:21:39
Ответ #35
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Модуль socialsharing установите, он добавит микроразметку на страницу товара. Не нужно менять шаблоны темы, в модуле шаблон с микроразметкой подключается на странице товара и заполняются мета теги.
Если нужно изменить микроразметку, меняйте файл /modules/socialsharing/views/templates/hook/socialsharing_header.tpl
Есть такой.
Спасибо.
19 Июль 2019, 06:47:03
Ответ #36
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Модуль socialsharing установите, он добавит микроразметку на страницу товара. Не нужно менять шаблоны темы, в модуле шаблон с микроразметкой подключается на странице товара и заполняются мета теги.
Если нужно изменить микроразметку, меняйте файл /modules/socialsharing/views/templates/hook/socialsharing_header.tpl
Можно ли при использовании этого модуля использовать скрипт ld+json и
<head prefix="og: http://ogp.me/ns#
fb: http://ogp.me/ns/fb#
product: http://ogp.me/ns/product#
og: http://opengraphprotocol.org/schema#
fb: http://www.facebook.com/2008/fbml#">
?
Или что то из этого нужно отключить?

И правильно ли будет выражение: <meta property="og:brand" content="{$product.manufacturer_name}"> чтобы использовать его в коде socialsharing_header.tpl
<meta property="og:type" content="product" />
<meta property="og:url" content="{$request}" />
<meta property="og:title" content="{$meta_title|escape:'html':'UTF-8'}" />
<meta property="og:site_name" content="{$shop_name}" />
<meta property="og:description" content="{$meta_description|escape:'html':'UTF-8'}" />
<meta property="og:brand" content="{$product.manufacturer_name}" />

Спасибо.
19 Июль 2019, 10:57:39
Ответ #37
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
<head prefix="og: http://ogp.me/ns#
fb: http://ogp.me/ns/fb#
product: http://ogp.me/ns/product#
og: http://opengraphprotocol.org/schema#
fb: http://www.facebook.com/2008/fbml#">
этот код в header.tpl вставить нужно
19 Июль 2019, 11:56:08
Ответ #38
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Понял.
Спасибо большое за разъяснения.
19 Июль 2019, 12:04:17
Ответ #39
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно ли использовать в socialsharing_header.tpl указывание "brand" следующим образом:

<meta property="og:brand" content="{$product.manufacturer_name}" />или
<meta property="og:brand" content="{$product_manufacturer->name}" />или
<meta property="og:brand" content="{$product_manufacturer->name|escape:'html':'UTF-8'}" />Как правильно?

Спасибо.
19 Июль 2019, 13:33:46
Ответ #40
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Нельзя использовать в socialsharing_header.tpl $product_manufacturer, так как эта переменая не определена в модуле.
19 Июль 2019, 13:51:18
Ответ #41
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нельзя использовать в socialsharing_header.tpl $product_manufacturer, так как эта переменая не определена в модуле.
Как это поправить?
19 Июль 2019, 16:42:32
Ответ #42
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нельзя использовать в socialsharing_header.tpl $product_manufacturer, так как эта переменная не определена в модуле.
Можно ли использовать добавление в частности по производителю в Nemops.com OpenGraph Module?
И какие вообще добавления через Nemops.com OpenGraph Module можно применить касаемо product и article (review, aggregateratings...)?

Спасибо.
20 Июль 2019, 11:33:04
Ответ #43
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В модуле смотреть нужно какие переменные определены те и можно использовать.
22 Июль 2019, 13:19:06
Ответ #44
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В модуле смотреть нужно какие переменные определены те и можно использовать.
Спасибо за ответ.
Не специалист, но попытаюсь...