Google Merchant Feed
+7 (343) 288-299-8
Дополнительные опции
Хотите предложить покупателям свой офлайн- и онлайн-ассортимент? Загрузите сведения о товарах в Google Merchant Center, и о них узнают миллионы пользователей со всего мира. Вы в любой момент сможете обновить данные, чтобы они всегда были актуальны.
Для формирования XML-файла экспорта в Google Merchant создайте узел в структуре сайта под узлом интернет-магазина (стандартно узел имеет путь /shop/), укажите для созданного узла название раздела, например, google_merchant, заполните основные атрибуты страницы, выберите раздел типовой динамической страницы «Google Merchant», страницу «Экспорт в Google Merchant». Выберите из выпадающего списка магазин, для которого необходимо создать экспорт.
Доступные методы:
/**
* - 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
Передача 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
| Версия | Дата | Описание | Версия от | Версия до |
| 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"
Просто лишился возможности менять свои товары в магазине. очень прошу помощиБез темы
какая у вас версия системы, в текущей есть ExportImport
Без темы
Версия HostCMS: 6.8.0
до этого все было ок
Без темы
Перепроверили, вкладка ExportImport имеется в версии 6.8.0, проблемы быть не должно. Сейчас удалите временно модуль в списке модулей (Система - Модули).
Без темы
снова попробовал установить модуль, вот такая ошибка:
"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"Аналогичная проблема, подскажите решение?
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->installRe: Аналогичная проблема, подскажите решение?
у вас уже был установлен, модуль ранее и создано поле 'google_merchant' в `shop_items`, вы видимо делаете повтороную установку и система сообщает просто, что это дубликат, ничего в этом страшного нет, на установку это не влияет
Без темы
Удалите модуль из Корзины, затем удалите таблицу google_merchant, если она останется (в раздел Базы данных - Управление можно найти таблицу по названию и справа удалить), затем повторно установите модуль.
Без темы
такой таблицы нет, модуля в списке модулей тоже (возможно когда то удалялся как то неправильно, нет ни в папке с модулями ни в корзине).
Без темы
Модуль НЕ установился, как я и писал. но, как видно, какие-то следы оставил.
Без темы
из bootstrap.php удалите в самом конце подключение Shop_Controller_GoogleMerchant_Observer
Без темы
Получилось. Спасибо. А установить получится? Ошибку при установке я написал.
Без темы
Нужно на месте смотреть что у вас за ошибка, мы не являемся автором этого модуля.
-
Код GTIN[gtin]
Есть ли возможность в фид добавить передачу штрихкода (gtin)?
С некоторых пор это обязательный атрибутRe: Код GTIN[gtin]
обновили версию
Комментарии