Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

AMP for Product Pages


kamar87

Recommended Posts

Появился модуль для создания AMP страниц товаров

 

Модуль

 

Встал отлично, но в описании товара проблема с кодировкой. Может кто подскажет как исправить?

 

Пример на моем сайте

Надіслати
Поділитися на інших сайтах


А контроллер и вьюшку смотрели?
Как он формирует description для товара

Змінено користувачем thentru
  • +1 1
Надіслати
Поділитися на інших сайтах


Спасибо thentru за решение проблемы

 

Решение: в файле /catalog/view/theme/default/template/product/amp_product.tpl

Меняем часть кода

<?php 
 
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);
 
$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");
 
foreach($items as $item) {
  $item->removeAttribute("style");
}
 
$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', mb_convert_encoding($description, 'UTF-8')));  ?>

на

<?php
echo $description;
?>
Надіслати
Поділитися на інших сайтах


 

Спасибо thentru за решение проблемы

 

Решение: в файле /catalog/view/theme/default/template/product/amp_product.tpl

Меняем часть кода

<?php 
 
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);
 
$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");
 
foreach($items as $item) {
  $item->removeAttribute("style");
}
 
$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', mb_convert_encoding($description, 'UTF-8')));  ?>

на

<?php
echo $description;
?>

 

суть такая - если у вас в описании товаров нет тегов style и font можно упростить код

иначе - будет ошибка валидации AMP страницы

Змінено користувачем thentru
Надіслати
Поділитися на інших сайтах


суть такая - если у вас в описании товаров нет тегов style и font можно упростить код

иначе - будет ошибка валидации AMP страницы

Валидатор ругается на страницы товара у которых описание по ширине выровнено, а именно на тег <p ругается

Надіслати
Поділитися на інших сайтах


Валидатор ругается на страницы товара у которых описание по ширине выровнено, а именно на тег <p ругается

Верно, у него же есть атрибут style

Попробуем решить этот вопрос регуляркой

Надіслати
Поділитися на інших сайтах


Вообщем корректное решение такое

вместо

<?php 

$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);

$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");

foreach($items as $item) {
  $item->removeAttribute("style");
}

$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

используем

<?php 
$description = preg_replace('/style=(["\'])[^\1]*?\1/i', '', $description);
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

Проверяйте и тему можно считать закрытой

  • +1 1
Надіслати
Поділитися на інших сайтах


Вообщем корректное решение такое

вместо

<?php 

$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);

$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");

foreach($items as $item) {
  $item->removeAttribute("style");
}

$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

используем

<?php 
$description = preg_replace('/style=(["\'])[^\1]*?\1/i', '', $description);
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

Проверяйте и тему можно считать закрытой

Работает!!!!!!

Надіслати
Поділитися на інших сайтах


Смысл этого модуля для товаров?

AMP заточен под новости и крупные сайты. Из них выводит результаты в новостную карусель.

AMP - это не только новости. При поиске с мобильного наличие AMP - мощный фактор ранжирования.

Надіслати
Поділитися на інших сайтах


Гугл ругается на структурированные данные, действительно почему то в разметке нет значения кол-ва отзывов, сама переменная есть но ко-во пустое.

<meta itemprop='reviewCount' content='' />
Надіслати
Поділитися на інших сайтах


 

Гугл ругается на структурированные данные, действительно почему то в разметке нет значения кол-ва отзывов, сама переменная есть но ко-во пустое.

<meta itemprop='reviewCount' content='' />

Автор выпустил версию 1.0.5 там это исправлено

Надіслати
Поділитися на інших сайтах


  • 3 months later...

На данный момент ЧПУ модуль не поддерживает. Так же ссылки нужно добавить в каждый товар на amp страницу.

Add the following to the non-AMP page:
<link rel="amphtml" href="https://www.example.com/url/to/amp/document.html">

And this to the AMP page
<link rel="canonical" href="https://www.example.com/url/to/full/document.html">

Google не сможет найти страницы, если ссылки ему не дать.

Змінено користувачем kisluk
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Ничего не могу понять. У меня OC 1.5.

Скачал версию для него.

НО!

В версии нужен файл catalog/controller/startup/seo_url.php

Которого в 1.5.5.1.2 нет. 

А xml намерен его менять.

Решил проблему. Ниже xml с комментариями для ручной замены.

 

После замены вылезают ошибки в этой строке:

$url .= '/' . $query->row['keyword'] .'/amp/';

Undefined variable: query in  on line 95
Trying to get property of non-object in

 

 

<?xml version="1.0" encoding="UTF-8"?>
<modification>
    <name>AMP for Product Page</name>
    <version>1.0.8</version>
    <author>yura dee</author> 
    <file path="catalog/controller/product/product.php">
        <operation>
            <search position="after"><![CDATA[$this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical');]]></search>
            <add><![CDATA[$this->document->addLink($this->url->link('product/amp_product', 'product_id=' . $this->request->get['product_id']), 'amphtml');
            ]]></add>
            <!-- Строка 233 -->
        </operation>
    </file>
    <file path="catalog/controller/common/seo_url.php">
        <!-- заменил местоположение на common -->
        <operation>
            <!-- 18 -->
            <search position="after"><![CDATA[foreach ($parts as $part) {]]></search>
            <add><![CDATA[if ( $part == 'amp') {
                    continue;
                } else
                ]]></add>
                </operation>
        <operation>
            <!-- Строка 19  -->
            <search position="before"><![CDATA[if ($url[0] == 'product_id') {]]></search>
            <add><![CDATA[if ($url[0] == 'product_id' && strpos($this->request->get['_route_'], "/amp/") !== FALSE) {
                        $this->request->get['aproduct_id'] = $url[1];
                    }
            ]]></add>
        </operation>
        <operation error="log">
            <!-- Строка 53 -->
            <search position="after"><![CDATA[
                if (!isset($this->request->get['route'])) {
            ]]></search>
            <add><![CDATA[
                if (isset($this->request->get['aproduct_id']) ) {
                    $this->request->get['route'] = 'product/amp_product';
            ]]></add>
        </operation>
        <operation error="log">
            <!-- Строка 43 -->
            <search position="replace"><![CDATA[
                if (isset($this->request->get['product_id'])) {
            ]]></search>
            <add><![CDATA[
                } elseif (isset($this->request->get['product_id']) ) {
            ]]></add>
        </operation>
        <operation error="log">
            <!-- Строка 70 -->
            <search position="replace"><![CDATA[
                ($data['route'] == 'information/information' && $key == 'information_id')
            ]]></search>
            <add><![CDATA[
                ($data['route'] == 'information/information' && $key == 'information_id') || ($data['route'] == 'product/amp_product')
            ]]></add>
        </operation>
        <operation>
            <!-- Строка 85 -->
            <search position="replace" index="1"><![CDATA[
                $url .= '/' . $query->row['keyword'];
            ]]></search>
            <add><![CDATA[
                if ($data['route'] == 'product/amp_product') {
                    $url .=  '/' . $query->row['keyword'] .'/amp/';
                }
                else {
                    $url .= '/' . $query->row['keyword'];
                }
            
            ]]></add>
        </operation>
    </file>
</modification>

 

Змінено користувачем Taury
Надіслати
Поділитися на інших сайтах


  • 1 month later...
  • 3 weeks later...

, thentru, Так все-же какого мнение ? 
стоит ли устанавливать этот модуль на рабочий магазин? будет ли толк от него?

kamar87, Есть ли какие-то изменения после установки данного модуля?

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...
В 27.03.2017 в 05:32, kikaridza123 сказал:

, thentru, Так все-же какого мнение ? 
стоит ли устанавливать этот модуль на рабочий магазин? будет ли толк от него?

kamar87, Есть ли какие-то изменения после установки данного модуля?

у меня на сайте по пирогам осетинским vkusno-pirogi.ru норм пашет!!! -вот отчитываюсь о проделываемой работе: https://vk.com/seo_osetinskie_pirogi 

у мя установлена первая версия на окстор 2.1 + журнал; в АМП гугле - 90 страниц и 0 ошибок! выдача в топ заходит на 2 день после публикациИ) особенно на мобилки

Змінено користувачем kostia7alania
=анкором вставил или хз как ето называется));
Надіслати
Поділитися на інших сайтах


On 05.09.2016 at 7:33 PM, Djon said:

А подскажите, что надо подправить, чтобы модуль работал с SEO PRO?

Чтобы всё работало с SEO PRO надо купить и поставить ещё один модуль:

SEO PRO for AMP for Product Pages

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=30324

Я купил и всё заработало. Вот пример на моём сайте:

https://obuv-pk.ru/amp/men/1-13231511

Большое спасибо автору за модуль!

Надіслати
Поділитися на інших сайтах


  • 1 month later...
В 19.04.2017 в 09:19, goreev сказал:

Чтобы всё работало с SEO PRO надо купить и поставить ещё один модуль:

SEO PRO for AMP for Product Pages

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=30324

Я купил и всё заработало. Вот пример на моём сайте:

https://obuv-pk.ru/amp/men/1-13231511

Большое спасибо автору за модуль!

Подскажите плиз, ссылка с атрибутом amphtml на amp страницу, и ссылка на amp странице с атрибутом canonical на основную страницу автоматически появляются? Или придется дополнительные манипуляции производить? Спасибо! 

Надіслати
Поділитися на інших сайтах


  • 3 months later...
В 13.06.2017 в 14:03, Safistik сказал:

Подскажите плиз, ссылка с атрибутом amphtml на amp страницу, и ссылка на amp странице с атрибутом canonical на основную страницу автоматически появляются? Или придется дополнительные манипуляции производить? Спасибо! 

автоматом

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.