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
Подписаться на наш канал: 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"
Просто лишился возможности менять свои товары в магазине. очень прошу помощиБез темы
какая у вас версия системы, в текущей есть 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]
обновили версию
Комментарии