
Внимание! После обновления Joomla до 3.9.13 скрипт перестал работать. Для того, что бы исправить ошибку, необходимо исправить:
define('JPATH_BASE', dirname(__FILE__).DS.'..');
на
define('JPATH_BASE', realpath(dirname(__FILE__).DS.'..'));
Установка и настройка скрипта:
1. Перемещаем папку «market» в корневую директорию Вашего сайта.
2. Далее открываем файл vm2_market.php и производим минимальные но очень нужные настройки:
4. Теперь при добавлении Вашего магазина в Яндекс.Маркет, указываете ссылку: http://ваш_сайт/market/vm2_market.php
На этом настройка и интеграция Вашего интернет-магазина на Virtuemart с Яндекс.Маркетом закончена.
Некоторое время назад, для одного из сайтов, Яндекс.Маркет потребовал указать размер в <param>. В целом задача была довольно простая, если реализация на самом сайте была несколько проще. Но, вот с чем я столкнулся:
Эти обстоятельства, значительным образом усложнили задачу. Набросал решение на скорую руку (с небольшим количеством товаров работает нормально).
Где-нибудь после функции getImages() добавляем новую функцию:
function getParams($id) {
global $db;
$query = 'SELECT
virtuemart_product_id
FROM
#__virtuemart_products
WHERE
product_parent_id = '.$id.' AND
product_in_stock > 0';
$db->setQuery($query);
$child_products = $db->loadObjectList();
$params = '';
if ($child_products) {
foreach ($child_products as $child) {
$query = 'SELECT
c.customsforall_value_name
FROM
#__virtuemart_product_customfields AS a
CROSS JOIN
#__virtuemart_product_custom_plg_customsforall AS b
LEFT JOIN
#__virtuemart_custom_plg_customsforall_values AS c
ON
b.customsforall_value_id = c.customsforall_value_id
WHERE
a.virtuemart_product_id = '.$child->virtuemart_product_id.' AND
a.virtuemart_custom_id = 9 AND
b.customfield_id = a.virtuemart_customfield_id';
$db->setQuery($query);
$sizes = $db->loadObjectList();
foreach ($sizes as $size) {
$params .= '<param name="Размер">'.$size->customsforall_value_name.'</param>'."\n";
}
}
}
return $params;
}
Замените a.virtuemart_custom_id = 9 на ID поля вашего мульварианта.
Если коротко описать, что тут происходит:
Далее, где-нибудь после $xml .= getImages($product_id); вставляем строку:
$xml .= getParams($product_id);
Проверяйте, должно работать!
Материалов на данную тему не найдено