Інформація про модуль MicrodataPro - специфікація


  • Модуль працює на всіх сучасних і нових версіях php
  • Підтримує Opencart (OcStore) 2.1 - 3.x
  • Версії Opencart 1.5 і 4 не підтримує
  • Має переклади на 3-х мовах: UA, RU, EN
  • На кожен пункт налаштувань є інструкція
  • Для інтеграції в магазин використовує стандартний ocmod
  • MicrodataPro не потрібен ioncube - код модуля відкритий
  • Код оптимізований і не робить зайвих запитів чи навантежень
  • Кешує дані які використовує
  • Дистрибутив займає 52 KB.
  • Місце на диску після розпаковки 252 KB.
  • Кількість файлів модуля 8:
    1. admin/controller/extension/module/microdatapro.php
    2. admin/language/en-gb/extension/module/microdatapro.php
    3. admin/language/english/extension/module/microdatapro.php
    4. admin/language/ru-ru/extension/module/microdatapro.php
    5. admin/language/uk-ua/extension/module/microdatapro.php
    6. admin/view/template/extension/module/microdatapro.tpl
    7. catalog/controller/extension/module/microdatapro.php
    8. system/library/microdatapro.php

MicrodataPro генерує мікророзмітку (структуровані дані) schema.org в форматі (синтаксисі) JSON-LD а також розмітку OpenGraph для соціальних мереж, месенджерів, X Card та hCard. В модулі все зроблено згідно документації і останніх рекомендацій google.


Структуровані дані для опису товарів та показу асортименту (Product, Review, Offer)

Використовується на сторінках Товару і Категорій. В налаштуваннях модуля вкладка Товар, Інше.
Документація google Опис товару та Показ асортименту
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Product",
    "url": "Посилання на сторінку",
    "category": "Категорія товару",
    "image": "Фото товару",
    "brand": {
      "@type": "Brand",
      "name": "Виробник"
    },
    "manufacturer": "Виробник",
    "model": "Модель",
    "gtin12": "Код товару",
    "gtin8": "Код товару",
    "productID": "ід товару",
    "mpn": "Код виробника",
    "sku": "Код товару",
    "aggregateRating": { //розмітка рейтингу
      "@type": "AggregateRating",
      "ratingValue": "Рейтинг товару",
      "reviewCount": "Кількість відгуків",
      "bestRating": "5",
      "worstRating": "1"
    },
    "description": "Опис",
    "name": "Назва",
    "offers": {
    "@type": "Offer",
    "availability": "https://schema.org/Наявність",
    "price": "Ціна товару",
    "priceSpecification": { //якщо є акція то розмітка старої ціни
    "@type": "UnitPriceSpecification",
      "priceType": "https://schema.org/StrikethroughPrice",
      "price": "Стара ціна товару",
      "priceCurrency": "Код валюти"
    },
    "priceValidUntil": "Ціна дійсна до",
    "url": "Посилання",
    "audience": "Для кого - стать",
    "color": "Колір",
    "material": "Матеріал",
    "size": "Розмір",
    "priceCurrency": "Код валюти",
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "Вартість доставки",
        "currency": "Код валюти"
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "Код країни"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": "Мінімальний час доставки",
          "maxValue": "Максимальний час доставки",
          "unitCode": "DAY"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": "Мінімальний час відвантаження",
          "maxValue": "Максимальний час відвантаження",
          "unitCode": "DAY"
        }
      }
    },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": "Код країни",
      "returnPolicyCountry": "Код країни",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": "Строк повернення товару",
      "returnMethod": "https://schema.org/ReturnByMail",
      "refundType": "https://schema.org/FullRefund",
      "returnFees": "https://schema.org/FreeReturn"
    },
    "itemCondition": "https://schema.org/Кондиція (новий)"
    },
    "review": [ //Відгуки про товар
      {
      "@type": "Review",
      "author": {"@type": "Person", "name": "Автор відгуку"},
      "datePublished": "Дата відгука",
      "description": "Текст відгука",
      "reviewRating": {
        "@type": "Rating",
        "bestRating": "5",
        "ratingValue": "Оцінка",
        "worstRating": "1"
        }
      },
      {
      "@type": "Review",
      "author": {"@type": "Person", "name": "Автор відгуку"},
      "datePublished": "Дата відгука",
      "description": "Текст відгука",
      "reviewRating": {
        "@type": "Rating",
        "bestRating": "5",
        "ratingValue": "Оцінка",
        "worstRating": "1"
        }
      },
    ],
    "isRelatedTo": [ //Рекомендовані товари
      {
      "@type": "Product",
      "image": "Фото",
      "url": "Посилання",
      "name": "Назва",
      "offers": {
        "@type": "Offer",
        "price": "Ціна",
        "priceCurrency": "Код валюти"
        }
      },
      {
      "@type": "Product",
      "image": "Фото",
      "url": "Посилання",
      "name": "Назва",
      "offers": {
        "@type": "Offer",
        "price": "Ціна",
        "priceCurrency": "Код валюти"
        }
      }

    ],
    "additionalProperty":[ //Атрибути
      {
      "@type": "PropertyValue",
      "name": "Назва атрибуту",
      "value": "Значення атрибуту"
      },
      {
      "@type": "PropertyValue",
      "name": "Назва атрибуту",
      "value": "Значення атрибуту"
      }
    ]
  }
  </script>>

Структуровані дані для Организації та Місцевої компанії (Organization, LocalBusiness)

Використовується на Головній сторінці магазину. В налаштуваннях модуля вкладка Магазин.
Документація google Организація та Місцева компанія
В мікророзмітку йде підтип https://schema.org/LocalBusiness#subtypes Store OnlineStore або інші
  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "WebSite",
  "url": "Посилання на головну",
  "name": "Назва сайту",
  "alternateName": "Назва сайту",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "Рядок пошуку на сайті"
      },
    "query-input": "required name=search_term_string"
    }
  }
  </script>>

  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "OnlineStore", //Тут можна вибрати тип магазину з 30 представлених, або просто Store
  "name": "Назва сайту",
  "url": "Посилання на головну",
  "image": "Логотип",
  "logo": "Логотип",
  "telephone" : "Телефон",
  "email": "Пошта",
  "priceRange": "Код валюти",
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "applicableCountry": "Код країни",
    "returnPolicyCountry": "Код країни",
    "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
    "merchantReturnDays": "Повернення на протязі днів",
    "returnMethod": "https://schema.org/ReturnByMail",
    "refundType": "https://schema.org/FullRefund",
    "returnFees": "https://schema.org/FreeReturn"
  },
  "hasMap": "Посилання на google maps",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Населений пункт",
    "addressCountry": "Країна",
    "postalCode": "Поштовий код",
    "streetAddress": "Вулиця і номер"
    },
  "location": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Населений пункт",
      "addressCountry": "Країна",
      "postalCode": "Поштовий код",
      "streetAddress": "Вулиця і номер"
      },
    "geo": {
      "@type": "GeoCoordinates",
      "latitude": "Координати широти",
      "longitude": "Координати довготи"
      }
    },
  "potentialAction": {
    "@type": "SearchAction",
    "target": "Посилання на пошук на сайті",
    "query-input": "required name=search_term_string"
    },
  "contactPoint" : [
      {
        "@type" : "ContactPoint",
        "telephone" : "+38-097-777-77-88",
        "contactType" : "customer service"
        },
      {
        "@type" : "ContactPoint",
        "telephone" : "+38-097-777-77-99",
        "contactType" : "customer service"
        }
    ],
  "sameAs" : [
    "https://x.com/company",
    "https://facebook.com/company"
    ],
  "openingHoursSpecification":[
    {
    "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Monday",
      "opens": "10:00",
      "closes": "20:00"
      },
    "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Tuesday",
      "opens": "10:00",
      "closes": "20:00"
      },
    ]
  }
  </script>>

Структуровані дані для Каруселі, Опису товара (ItemList, Product, Review, Offer)

Використовується на сторінках Категорії та Виробника. В налаштуваннях модуля вкладка Інше.
Документація google Карусель та Опис товару
  <script type="application/ld+json">
  {
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Назва",
  "image": "Фото",
  "brand": {"@type": "Brand","name": "Бренд"},
  "description": "Опис",
  "sku": "Назва",
  "mpn": "Назва",
  "aggregateRating": {
    "@type": "AggregateRating",
    "bestRating": "5",
    "ratingValue": "Рейтинг",
    "ratingCount": "Кількість відгуків"
    },
  "offers": {
    "@type": "AggregateOffer",
    "lowPrice": "Мінімальна ціна",
    "highPrice": "Максммальна ціна",
    "offerCount": "Кількість пропозицій",
    "priceCurrency": "Код валюти"
    }
  }
  </script>

  <script type="application/ld+json">
  {
  "@context":"https://schema.org",
  "@type":"ItemList",
  "itemListElement":[
    {
    "@type":"ListItem",
    "position":1,
    "url":"Назва товару 1"
    },
    {
    "@type":"ListItem",
    "position":2,
    "url":"Назва товару 2"
    }
  ]
  }
  </script>

Структуровані дані для Метаданих фото (ImageObject)

Використовується на сторінках Товара, Категорії, Виробника, Інформаційних сторінках, Блогу. В налаштуваннях модуля вкладка Інше.
Документація google Метадані фото
  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "author": "Автор",
  "thumbnailUrl": "Фото",
  "contentUrl": "Фото",
  "creditText": "Автор",
  "creator": {"@type": "Person","name": "Автор"},
  "copyrightNotice": "Автор",
  "acquireLicensePage": "Сторінка контактної інформації",
  "license": "Сторінка умов використання",
  "datePublished": "Дата додавання",
  "description": "Назва",
  "name": "Назва"
  }
  </script>

  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "ImageGallery",
  "associatedMedia":[
    {
      "@type": "ImageObject",
      "author": "Автор",
      "thumbnailUrl": "Фото",
      "contentUrl": "Фото",
      "creditText": "Фото",
      "creator": {"@type": "Person","name": "Автор"},
      "copyrightNotice": "Автор",
      "acquireLicensePage": "Сторінка контактної інформації",
      "license": "Сторінка умов використання",
      "datePublished": "Дата додавання",
      "description": "Назва",
      "name": "Назва"
    }
  ]
  }
  </script>

Структуровані дані для Рядка навігації - хлібні крихти (BreadcrumbList)

Використовується на сторінках Товара, Категорії, Виробника, Інформаційних сторінках, Блогу.
В налаштуваннях модуля вкладка Товар (але налаштування примінюється на всі сторінки).
Документація google Рядок навігації
  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
    "@type": "ListItem",
    "position": 1,
    "item": {
      "@id": "/",
      "name": "Головна"
      }
    },
    {
    "@type": "ListItem",
    "position": 1,
    "item": {
      "@id": "Посилання",
      "name": "Сторінка на сайті"
      }
    }
  ]
  }
  </script>

Структуровані дані для Відео (VideoObject)

Використовується на сторінках Товара, Категорії, Виробника, Інформаційних сторінках, Блогу.
MicrodataPro сам аналізує сторінки і знаходить там всі відео в будь якому форматі.
Документація google Відео
  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Назва відео", //Автоматично береться з відео Youtube & Vimeo
  "description": "Опис відео", //Автоматично береться з відео Youtube & Vimeo
  "thumbnailUrl": "Фото для превʼю", //Автоматично береться з відео Youtube & Vimeo
  "uploadDate": "Дата завантаження", //Автоматично береться з відео Youtube & Vimeo
  "contentUrl": "Посилання на відеофайл", //Автоматично береться з відео Youtube & Vimeo
  "embedUrl": "Посилання на програвач відео" //Автоматично береться з відео Youtube & Vimeo
  }
  </script>

Структуровані дані для Статтей (Article)

Використовується на стандартних Інформаційних сторінках
Документація google Стаття
  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "Article",
  "mainEntityOfPage":{
  "@type":"WebPage",
  "@id": "Посилання на сторінку"
  },
  "headline": "Назва",
  "image": [
    {
    "@type": "ImageObject",
    "url": "Фото", //Тут всі фото які модуль знайшов в тексті автоматично
    "width": "Ширина зображення",
    "height": "Висота зображення"
    }
  ],
  "datePublished": "Дата додавання",
  "dateModified": "Дата оновлення",
  "author": {
    "@type": "Person",
    "name": "Автор",
    "url": "Посилання на сторінку"
    },
  "publisher": {
    "@type": "Organization",
    "image": "Логотип",
    "name": "Магазин",
    "logo": {
      "@type": "ImageObject",
      "url": "Логотип"
      }
  },
  "description":"Текст"
  }
  </script>

Структуровані дані для Блога (Article, NewsArticle, BlogPosting)

Використовується на сторінках Блогів (має підтримувати всі можливі блоги)
Документація google Стаття
  <script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "Article", //Тут можна вибрати тип блогу
  "mainEntityOfPage":{
  "@type":"WebPage",
  "@id": "Посилання на сторінку"
  },
  "headline": "Назва",
  "image": [
    {
    "@type": "ImageObject",
    "url": "Фото", //Тут всі фото які модуль знайшов в тексті автоматично
    "width": "Ширина зображення",
    "height": "Висота зображення"
    }
  ],
  "datePublished": "Дата додавання",
  "dateModified": "Дата оновлення",
  "author": {
    "@type": "Person",
    "name": "Автор блогу",
    "url": "Посилання на сторінку автора"
    },

    "publisher": {
      "@type": "Organization",
      "image": "Логотип",
      "name": "Магазин",
      "logo": {
        "@type": "ImageObject",
        "url": "Логотип"
        }
    },

  "publisher": {
    "@type": "Organization",
    "image": "Логотип",
    "name": "Магазин",
    "description": "Короткий опис магазину",
    "url": "Посилання на магазин",
    "logo": {
      "@type": "ImageObject",
      "url": "Логотип"
      }
  },
  "description":"Текст"
  }
  </script>

Розмітка для соціальних мереж та месенджерів (Open Graph)

Використовується на всіх сторінках магазину
Документація ogp.me та Facebook
Розмітка Open Graph додає до тегу <html> додаткові дані: prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb# product: https://ogp.me/ns/product# business: https://ogp.me/ns/business# place: https://ogp.me/ns/place#"
  <meta property="og:locale" content="Код валюти">
  <meta property="og:rich_attachment" content="true">
  <meta property="og:site_name" content="Назва сайту">
  <meta property="og:type" content="Тип сторінки">
  <meta property="og:title" content="Заголовок">
  <meta property="og:description" content="Опис сторінки">
  <meta property="og:image" content="Фото">
  <meta property="og:image:secure_url" content="Фото">
  <meta property="og:image:width" content="Ширина фото">
  <meta property="og:image:height" content="Висота фото">
  <meta property="og:url" content="Посилання на сторінку">
  <meta property="business:contact_data:email" content="Пошта">
  <meta property="business:contact_data:street_address" content="Вулиця">
  <meta property="business:contact_data:locality" content="Населений пункт">
  <meta property="business:contact_data:postal_code" content="Поштовий код">
  <meta property="business:contact_data:country_name" content="Країна">
  <meta property="place:location:latitude" content="Координати широта">
  <meta property="place:location:longitude" content="Координати довгота">
  <meta property="business:contact_data:phone_number" content="Телефон">
  <meta property="fb:profile_id" content="Профіль на Facebook">

  //Також на сторінці товару
  <meta property="product:product_link" content="Посилання на сторінку">
  <meta property="product:brand" content="Бренд">
  <meta property="product:category" content="Категорія">
  <meta property="product:availability" content="Наявність">
  <meta property="product:age_group" content="Вікова група">
  <meta property="og:restrictions:age" content="18+"> //Якщо для дорослих
  <meta property="product:condition" content="Стан товару">
  <meta property="product:color" content="Колір"> //Якщо є в атрибутах
  <meta property="product:material" content="Матеріал"> //Якщо є в атрибутах
  <meta property="product:size" content="Розмір"> //Якщо є в атрибутах
  <meta property="product:target_gender" content="Стать для кого">
  <meta property="product:price:amount" content="Стара ціна"> //Якщо є акція
  <meta property="product:price:currency" content="Код валюти">
  <meta property="product:sale_price:amount" content="Ціна">
  <meta property="product:sale_price:currency" content="Код валюти">
  <meta property="og:see_also" content="Посилання на рекомендований товар"> //Якщо є
  <meta property="og:see_also" content="Посилання на рекомендований товар"> //Якщо є
  <meta property="og:see_also" content="Посилання на рекомендований товар"> //Якщо є

Розмітка для x.com (Summary Card)

Використовується на всіх сторінках магазину
Документація x.com
  <meta property="twitter:card" content="summary_large_image">
  <meta property="twitter:creator" content="Акаунт на x.com">
  <meta property="twitter:site" content="Заголовок">
  <meta property="twitter:title" content="Заголовок">
  <meta property="twitter:description" content="Опис сторінки">
  <meta property="twitter:image" content="Фото">
  <meta property="twitter:image:alt" content="Заголовок">

Розмітка для контактних даних - мікроформат (hCard)

Використовується на всіх сторінках магазину
Документація microformats.org
  <span class="vcard">
    <span class="fn org"><span class="value-title" title="Автор"></span></span>
    <span class="org"><span class="value-title" title="Автор"></span></span>
    <span class="url"><span class="value-title" title="Посилання на сайт"></span></span>
    <span class="adr">
      <span class="locality"><span class="value-title" title="Населений пункт"></span></span>
      <span class="street-address"><span class="value-title" title="Адреса"></span></span>
      <span class="postal-code"><span class="value-title" title="Поштовий код"></span></span>
    </span>
    <span class="geo">
      <span class="latitude"><span class="value-title" title="Координати широта"></span></span>
      <span class="longitude"><span class="value-title" title="Координати довгота"></span></span>
    </span>
    <span class="tel"><span class="value-title" title="Телефон"></span></span>
    <span class="photo"><span class="value-title" title="Логотип"></span></span>
  </span>