Google Merchant Feed

Google Merchant Feed
Бесплатно Демо
От 50 до 100 установок.
Установить модуль вы можете через раздел «Магазин приложений» в центре администрирования HostCMS.

Хотите предложить покупателям свой офлайн- и онлайн-ассортимент? Загрузите сведения о товарах в Google Merchant Center, и о них узнают миллионы пользователей со всего мира. Вы в любой момент сможете обновить данные, чтобы они всегда были актуальны.

Для формирования XML-файла экспорта в Google Merchant создайте узел в структуре сайта под узлом интернет-магазина (стандартно узел имеет путь /shop/), укажите для созданного узла название раздела, например, google_merchant, заполните основные атрибуты страницы, выберите раздел типовой динамической страницы «Google Merchant», страницу «Экспорт в Google Merchant». Выберите из выпадающего списка магазин, для которого необходимо создать экспорт.

В Google Merchant добавляете адрес фида, например, http://www.site.ru/shop/google_merchant/
Спецификация сведений о товарах https://support.google.com/merchants/answer/7052112?hl=ru

Доступные методы:

/**
 * - additionalImages(array()) массив tag_name дополнительных свойств для изображений.
 * - modifications(TRUE|FALSE) экспортировать модификации, по умолчанию TRUE.
 * - checkAvailable(TRUE|FALSE) проверять остаток на складе, по умолчанию TRUE. Если FALSE, то товар будет выгружаться доступным назвисимо от остатка на складе.
 * - checkRest(TRUE|FALSE) не экспортировать товары с нулевым остатком, по умолчанию FALSE. Если TRUE, то товар будет выгружаться только при наличии остатка на складе.
 * - onStep(3000) количество товаров, выбираемых запросом за 1 шаг, по умолчанию 500
 * - stdOut() поток вывода, может использоваться для записи результата в файл. По умолчанию Core_Out_Std
 * - delay() временная задержка в микросекундах, используется на виртульных хостингах с ограничнием на ресурсы в единицу времени, по умолчанию 0. значение 10000 - 0,01 секунда.
 * - mode('between'|'offset') вариант перебора элементов, по умолчанию 'between'. Если у вас большая разница между идентификаторами товаров или групп, выберите 'offset'.
 * - utm_source() определяет рекламодателя, например, google
 * - utm_medium() определяет рекламный или маркетинговый канал (цена за клик, баннер, рассылка по электронной почте).
 * - field() поле таблицы по которому идет отбор товаров, по умолчанию 'yandex_market'. Возможно указать 'google_merchant'
 * - priceMode('item'|'shop') режим формирования цен, по умолчанию 'item'. Если необходимо выгружать товары в валюте магазина, укажите 'shop'.
 */

Экспорт товаров, присутствующих на складе

Опция checkRest(TRUE) позволяет выгружать только те товары, которые присутствуют на складах.

$Shop_Controller_GoogleMerchant = new Shop_Controller_GoogleMerchant($oShop);
$Shop_Controller_GoogleMerchant
    ->checkRest(TRUE)
    ->show();

Экспорт модификаций

Стандартно модификации экспортируются совместно с товарами, управлять экспортом модификаций позволяет опция modifications() контроллера Shop_Controller_GoogleMerchant

$Shop_Controller_GoogleMerchant = new Shop_Controller_GoogleMerchant($oShop);
$Shop_Controller_GoogleMerchant
    ->modifications(FALSE)
    ->show();

Поле импорта

Опция field('google_merchant') позволяет выгружать только те товары, у которых отмечен параметр "Экспорт в Google Merchant".

$Shop_Controller_GoogleMerchant = new Shop_Controller_GoogleMerchant($oShop);
$Shop_Controller_GoogleMerchant
    ->field('google_merchant')
    ->show();

Выгрузка дополнительных изображений

Опция additionalImages(array()) позволяет выгружать дополнтельные изображения из доп. свойств, указывается массив tag_name.

$Shop_Controller_GoogleMerchant = new Shop_Controller_GoogleMerchant($oShop);
$Shop_Controller_GoogleMerchant
    ->additionalImages(array('dop_image'))
    ->show();

Указание категории товара в соответствии с классификацией Google

У товара создайте доп. свойство с XML-тегом google_product_category

Классификации Google категорий https://www.google.com/basepages/producttype/taxonomy-with-ids.ru-RU.xls

Передача UTM-меток

Задайте контроллеру показа опции utm_source() и utm_medium(), при этом автоматически в utm_campaign будет передаваться элемент пути группы товара, а в utm_term — идентификатор товара *.

$Shop_Controller_GoogleMerchant
	->utm_source('google_merchant')
	->utm_medium('cpc')
	->show();

Создание статичных XML-файлов через cron для больших магазинов

Для больших магазинов мы рекомендуем

Разместите в cron/googlemerchant.php файл следующего содержания:

<?php

/**
 * Пример вызова:
 * /usr/bin/php /var/www/site.ru/httpdocs/cron/googlemerchant.php
 * Пример вызова с передачей php.ini
 * /usr/bin/php --php-ini /etc/php.ini /var/www/site.ru/httpdocs/cron/googlemerchant.php
 * Реальный путь на сервере к корневой директории сайта уточните в службе поддержки хостинга.
 */

@set_time_limit(9000);
ini_set("memory_limit", "512M");

require_once(dirname(__FILE__) . '/../' . 'bootstrap.php');

$aShops = Core_Entity::factory('Shop')->findAll(FALSE);

foreach ($aShops as $oShop)
{
	if ($oShop->Shop_Items->getCount())
	{
		$startFilePath = CMS_FOLDER . "~googlemerchant{$oShop->id}.xml";
		$endFilePath = CMS_FOLDER . "googlemerchant{$oShop->id}.xml";

		$oCore_Out_File = new Core_Out_File();
		$oCore_Out_File->filePath($startFilePath);

		$Shop_Controller_GoogleMerchant = new Shop_Controller_GoogleMerchant($oShop);
		$Shop_Controller_GoogleMerchant->stdOut($oCore_Out_File);
		//$Shop_Controller_GoogleMerchant->checkRest(TRUE);
		$Shop_Controller_GoogleMerchant->show();

		Core_File::rename($startFilePath, $endFilePath);

		echo "\nFile {$endFilePath} OK";
	}
}

Далее добавьте в на хостинге вызов данного файла. Проверьте работу, в корневой директории будут создаваться XML-файлы по схеме googlemerchant1.xml, где 1 — идентификатор магазина.

В Google Merchant добавляете адрес XML-файла, например, http://www.site.ru/googlemerchant1.xml

Поддержка/консультация не осуществляется, модуль распространяется «как есть»!

Подписаться на наш канал: t.me/morozovpimnev_n

Версии модуля

Версия Дата Описание Версия от Версия до
1.3 23.09.2021 добавлен параметр gtin (штрихкоды товаров) 6.5.4
1.2 11.05.2021

у товаров добавлена галочка "Экспортировать в Google Merchant" в контроллер добавлена опция priceMode('item'|'shop'), позволяющая выгружать цены в валюте магазина, а не в валюте товара в контроллер добавлена опция field('yandex_market'|'google_merchant') (поле показа товаров в фиде, по умолчанию 'yandex_market'), при формировании фида можно использовать поле 'google_merchant' или любое другое TINYINT из таблицы Если будете использовать поле 'google_merchant', то после установки выполните sql запрос:

UPDATE `shop_items` SET `google_merchant` = `yandex_market`
чтобы скопировать все отмеченные товары ранее yandex_market, иначе в фид по умолчанию будут выгружаться все товары улучшен файл CRON

6.5.4
1.1 04.09.2020

Оптимизация, исправление ошибок

6.5.4
1.0 02.04.2020 RSS 2.0 6.5.4

Комментарии

  • Ошибка, теперь не работает часть ЛК

    При установке вылезла ошибка - я даже ее копировать не стал, сейчас не восстановлю. Само приложение не установилось, но теперь на него ругается система - пытаюсь отредактировать любой товар, получаю ошибку: "Tab ExportImport does not exist.
    36 modules/core/exception.php
    311 modules/admin/form/action/controller/type/edit.php
    22 modules/shop/controller/googlemerchant/observer.php
    107 modules/core/event.php
    370 modules/admin/form/action/controller/type/edit.php
    66 modules/shop/item/controller/edit.php
    1153 modules/admin/form/controller.php
    1045 admin/shop/item/index.php"

    Просто лишился возможности менять свои товары в магазине. очень прошу помощи

    gkevrodom
    gkevrodom 01.02.2023 15:48:00

    Без темы

    какая у вас версия системы, в текущей есть ExportImport

    hostcms 01.02.2023 15:53:01

    Без темы

    Версия HostCMS: 6.8.0
    до этого все было ок

    gkevrodom
    gkevrodom 01.02.2023 15:59:16

    Без темы

    Перепроверили, вкладка ExportImport имеется в версии 6.8.0, проблемы быть не должно. Сейчас удалите временно модуль в списке модулей (Система - Модули).

    hostcms 01.02.2023 16:05:13

    Без темы

    снова попробовал установить модуль, вот такая ошибка:
    "Query error 42S21: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'google_merchant'. Query: ALTER TABLE `shop_items` ADD `google_merchant` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `yandex_market`;
    36 modules/core/exception.php
    569 modules/core/database/pdo.php
    100 modules/sql/controller.php
    756 modules/market/controller.php
    140 admin/market/index.php"

    gkevrodom
    gkevrodom 01.02.2023 16:21:54

    Аналогичная проблема, подскажите решение?

    Query error 42S21: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'google_merchant'. Query: ALTER TABLE `shop_items` ADD `google_merchant` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `yandex_market`;
    modules/core/database/pdo.php:674 Core_Exception->__construct
    modules/sql/controller.php:234 Core_DataBase_Pdo->query
    modules/sql/controller.php:121 Sql_Controller->_executeQuery
    modules/sql/controller.php:62 Sql_Controller->executeByString
    modules/market/controller.php:853 Sql_Controller->execute
    admin/market/index.php:140 Market_Controller->install

    vladimir.ruchkin
    vladimir.ruchkin 10.10.2023 16:59:02

    Re: Аналогичная проблема, подскажите решение?

    у вас уже был установлен, модуль ранее и создано поле 'google_merchant' в `shop_items`, вы видимо делаете повтороную установку и система сообщает просто, что это дубликат, ничего в этом страшного нет, на установку это не влияет

    alexpimnev 10.10.2023 17:24:47

    Без темы

    Удалите модуль из Корзины, затем удалите таблицу google_merchant, если она останется (в раздел Базы данных - Управление можно найти таблицу по названию и справа удалить), затем повторно установите модуль.

    hostcms 10.10.2023 17:02:29

    Без темы

    такой таблицы нет, модуля в списке модулей тоже (возможно когда то удалялся как то неправильно, нет ни в папке с модулями ни в корзине).

    vladimir.ruchkin
    vladimir.ruchkin 10.10.2023 17:10:25

    Без темы

    Модуль НЕ установился, как я и писал. но, как видно, какие-то следы оставил.

    gkevrodom
    gkevrodom 01.02.2023 16:14:04

    Без темы

    из bootstrap.php удалите в самом конце подключение Shop_Controller_GoogleMerchant_Observer

    hostcms 01.02.2023 16:29:35

    Без темы

    Получилось. Спасибо. А установить получится? Ошибку при установке я написал.

    gkevrodom
    gkevrodom 02.02.2023 08:34:29

    Re: Без темы

    напишите нам в телеграм @morozovpimnev

    alexpimnev 02.02.2023 18:51:34

    Без темы

    Нужно на месте смотреть что у вас за ошибка, мы не являемся автором этого модуля.

    hostcms 02.02.2023 09:57:17

    Без темы

    Не знаю, с чего вы решили, что модуль не установился. Рекомендация была удалить модуль, а не повторно устанавливать.

    hostcms 01.02.2023 16:23:08

    Без темы

    я это решил с того, что в списке установленных моделей его НЕТ

    gkevrodom
    gkevrodom 01.02.2023 16:24:34
  • Код GTIN[gtin]

    Есть ли возможность в фид добавить передачу штрихкода (gtin)?
    С некоторых пор это обязательный атрибут

    Barbaros
    Barbaros 23.09.2021 14:46:36

    Re: Код GTIN[gtin]

    обновили версию

    alexpimnev 23.09.2021 14:57:44

    Без темы

    Супер! Спасибо!

    Barbaros
    Barbaros 25.09.2021 18:04:41
  • Без темы

    Приветствую! В созданном фиде выводится всего 60 товаров. Установил по инструкции. Подскажите, где искать это ограничение?

    Barbaros
    Barbaros 24.12.2020 08:40:42

    Без темы

    Заменил ->checkRest(TRUE) на ->сheckAvailable(TRUE)
    Выгрузилось всё.

    Barbaros
    Barbaros 24.12.2020 12:10:45
Похожие