Как внедрить разметки Schema.org в Shopify? - PullRequest
0 голосов
/ 21 февраля 2019

Я недавно начал работать в косметической компании, которая хочет внедрить богатые фрагменты для своей страницы товаров.Я знаю, как работают разметки Schema.org, поскольку я скопировал общий Organization, который мой друг использовал для компании по разработке мобильных приложений.

Вот шаблон кода, на который я ссылаюсь:

<script type="application/ld+json">
 { "@context": "http://schema.org",
 "@type": "Organization",
 "name": "Company name",
 "legalName" : "Legal Name",
 "url": "Company URL",
 "logo": "internal logo link",
 "foundingDate": "founding date",
 "founders": [
 {
 "@type": "Person",
 "name": "Founder"
 } ],
 "address": {
 "@type": "PostalAddress",
 "streetAddress": "Street Address",
 "addressLocality": "City",
 "addressRegion": "Region",
 "postalCode": "Postcode",
 "addressCountry": "United Kingdom"
 },
 "contactPoint": {
 "@type": "ContactPoint",
 "contactType": "customer support",
 "telephone": "Phone Number",
 "email": "email contact"
 },
 "sameAs": [ 
 "Social Media Links"
 ]}
</script>

К несчастью для меня, сайт этой компании на базе Shopify .

В ходе моих бесконечных исследований я натолкнулся на множество разных сайтов и блогов, которые говорили мне просто добавить этоscript в файл theme.liquid, но я не могу найти способ правильно его реализовать. Это запись блога, которую я просматривал .

Кто-нибудь из вас имел опыт работы с этим, или я должен связаться с разработчиком Shopify и позволить ему выполнить работу?

Я уже пытался использовать этот шаблон кода (который я простоскопировал и вставил в файл жидкости):

<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "Product",
  "name": "{{ product.title }}",
  "sku": "{{ product.variants.first.sku }}",
  "gtin14": "{{ product.variants.first.barcode }}",
  "brand": "{{ product.vendor }}",
  "description": "{{ product.description | strip_html | escape }}",
  "image": "https:{{ product.featured_image.src | img_url: 'grande' }}",
    "offers": {
        "@type": "Offer",
        "priceCurrency": "{{ shop.currency }}",
        "price": "{{ product.price |money_without_currency  | strip_html }}",
        "itemCondition" : "http://schema.org/NewCondition",
        "availability" : "{% if product.available == true %}http://schema.org/InStock{% else %}http://schema.org/OutOfStock{% endif %}",
        "url" : "{{ shop.url }}{{ product.url }}"
    }
}
</script>

1 Ответ

0 голосов
/ 22 февраля 2019

Я не понимаю, что у вас не работает?

Как говорится в статье, поместите его в файл theme.liquid.

Но вместо того, чтобы просто разместить схему продукта, котораяесли нет в шаблоне продукта, это вызовет массу ошибок, потому что {{ product.title }} ничего не будет отображать;используйте шаблоны if, чтобы получить результаты для индекса, продукта и статьи.

Вот полный рабочий пример:

<script type="application/ld+json">
{%- if template == 'index' -%}
{
  "@context": "http://schema.org",
  "@type": "WebSite",
  "name": "{{ shop.name }}",
  "alternateName": "{{ shop.description }}",
  "url": "{{ shop.url }}"
}
{%- elsif template == 'product' %}
{
  "@context": "http://schema.org",
  "@type": "Product",
  "description": "{{ product.description | strip_html }}",
  "name": "{{ product.title }}",
  "image": "{{ product.featured_image | img_url: 'master' }}",
  "manufacturer": "{{ product.vendor }}",
  "category": "{{ collection.title }}",
  "sku": "{{ product.selected_or_first_available_variant.sku }}",
  "url": "{{ shop.url | append: product.url }}",
  "offers": {
    "@type": "Offer",
    "availability": "InStock",
    "price": "{{ product.price | money_without_currency }}",
    "priceCurrency": "{{ shop.currency }}"
  }
}
{%- elsif template == 'article' %}
{
  "@context": "http://schema.org",
  "@type": "NewsArticle",
  "image": {
    "@type": "imageObject",
    "url": "https:{{ article.image.src | img_url: 'original' }}",
    "width": "1024px",
    "height": "1024px"
  },
  "keywords": "{%- for tag in article.tags -%}{{ tag }}{%- unless forloop.last -%}, {%- endunless -%}{%- endfor -%}",
  "url": "{{ shop.url | append: article.url }}",
  "description": "{{ article.content | truncatewords: 100 | strip_html }}",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://google.com/article"
  },
  "headline": "{{ article.title }}",
  "datePublished": "{{ article.published_at }}",
  "dateModified": "{{ article.published_at }}",
  "author": {
    "@type": "Person",
    "name": "{{ article.author }}"
  },
  "publisher": {
    "@type": "Organization",
    "name": "{{ shop.name }}",
    "logo": {
      "@type": "ImageObject",
      "url": "{{ shop.url }}"
    }
  },
  "commentCount": "{{ article.comments_count }}"
}
{%- endif %}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...