Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 791 Ответов
  • 139210 Просмотров
*

bombapiter

  • Захожу иногда
  • 71
  • 0 / 0
Добрый день, подскажите, после установки com_virtuemart и com_virtuemart_aio, версии 3.4.5.10063, перестает работать скрипт генерирующий YML. При запуске скрипта выводится ошибка: Error: Call to undefined method Error::get(): Class ‘vmVersion’ not found.


Такая же ошибка... Можно ли как исправить?
*

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
Можете просто использовать бесплатный компонент https://joomline.net/ru/extensions/yandex-market-xml.html поддержка virtuemart 3 и выше присутствует.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

russss

  • Новичок
  • 1
  • 0 / 0
хочу сказать спасибо разработчику за этот плагин!
а во вторых написать решение проблем, с которыми могут столкнуться пользователи при обновлении компонента VirtueMart. (по мотивам моего общения с Сергеем)
Итак, после обновления версии выйдет ошибка: Class 'vmVersion' not found
Во-первых, переносим файлы скрипта в корень.
Далее вносим изменения в сам скрипт
заменяем $version = substr(vmVersion::$RELEASE, 0, 1);
 на
$version = 3;
и  правим пути
define('JPATH_BASE', dirname(FILE).DS.'..');
заменяем на
define('JPATH_BASE', dirname(FILE));

Если хотите, чтобы XML файл формировался также в папке /market/
в конце редактируем эту строчку и правим путь.

   $xml_file = fopen('market/vm2_market.xml', 'w+');

Проверено на virtuemart 3.6.10 10211 и joomla 3.9.14
« Последнее редактирование: 06.01.2020, 09:48:59 от russss »
*

bgg87

  • Захожу иногда
  • 164
  • 2 / 0
  • Истина где-то рядом...
Можете просто использовать бесплатный компонент https://joomline.net/ru/extensions/yandex-market-xml.html поддержка VirtueMart 3 и выше присутствует.

После обновления и с этим компонентом возникает проблема:

Цитировать
revision: 6470735; Build date: 2020-03-10T15:46:26.000000Z (строка 0, столбец 0)
categories type: Unmmaped (строка 13, столбец 32)
20 has parent_id 128 which is not an existing category id. This parent_id will be removed. (строка 15, столбец 42)
scheme: delivery-options (строка 19, столбец 24)

Joomla! ‎3.9.12
VirtueMart 3.6.10 10211
Yandex Market XML Версия: 2.0.0
*

Pizzadox

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Добрый день, не подскажите как у товаров брать description и доп поля товаров и если они пустые, то оставлять пустым значение
Сейчас у меня не используется на сайте description для товаров, так оно и не отображается в выводе файла.
« Последнее редактирование: 01.05.2020, 16:59:25 от Pizzadox »
*

qcsbs-n

  • Новичок
  • 6
  • 0 / 0
Здравствуйте.
Как добавить в выгрузку цвет товара (Маркет начал требовать указание цвета)?
Например, я сделал дополнительное поле на сайте (виртуэмарт 2х..) с переменной color2. Как мне ее добавить в выгрузку, чтобы она отображалась в прайс-листе?
*

WooSuuP

  • Захожу иногда
  • 235
  • 11 / 1
  • Ословед Интерсвязи
Скачать
Срок регистрации домена кончился. Перезалей в облако пожалуйста!
*

djed9

  • Захожу иногда
  • 116
  • 2 / 0
Ребята, подскажите, как в выгрузке сделать, что бы товары не выгружались по производителям, что бы все товары определенного производителя выпадали из выгрузки?
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Срок регистрации домена кончился. Перезалей в облако пожалуйста!
Скачать

Старая версия

*

GeezMore

  • Новичок
  • 2
  • 0 / 0
Скопировал файл в корень. Попробовал обратиться к нему через браузер, ошибка 500.
Цитирую:
Цитировать
Произошла критическая ошибка
The server returned a "500 - Whoops, looks like something went wrong."
J! 4, VM4
В консоли следующее вижу:
Цитировать
Failed to load resource: the server responded with a status of 500 () v,4_market.php:1
Подскажите, что я делаю не так?
С уважением, Олег
*

anantaya

  • Новичок
  • 3
  • 0 / 0
Благодарю!
*

strongest

  • Новичок
  • 6
  • 0 / 0
Скачать

Старая версия



для Joomla 4 есть? 500 ошибка при вызове скрипта.


UPD вопрос решил, вот код если кому нужно

Код
<?php
/**
 * version 4
 * author Sergey Bordyzhan (bordyzhan@gmail.com)
 *
 * Donate:
 * Z272730060230 вебмани
 * 410011118020069 Юmoney
 */

define('NAME', 'Название организации'); // название организации (не должно превышать 20 символов)
define('DESC', 'Описание организации'); // описание организации
define('CURRENCY', 'USD'); // валюта магазина (RUB, USD, EUR, UAH, KZT)
define('DELIVERY', 'false'); // наличие доставки в магазине (true - есть, false - нет)
define('EXCLUDE_CAT', '0'); // id категорий которые нужно исключить из выгрузки, перечислить через запятую, например define('EXCLUDE_CAT', '2,8,54,5')
define('EXCLUDE_PROD', '0'); // id товаров которые нужно исключить из выгрузки, перечислить через запятую, например define('EXCLUDE_PROD', '2,8,54,5')
define('FILE', 0); // 1 если нужно cоздать файл vm4_market.xml, 0 - выввод xml в браузер

define('_JEXEC', 1);

if (!defined('_JDEFINES'))
{
define('JPATH_BASE', dirname(__FILE__));
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';

use \Joomla\CMS\Factory;


// Boot the DI container
$container = \Joomla\CMS\Factory::getContainer();
$container->alias('session.web', 'session.web.site')
->alias('session', 'session.web.site')
->alias('JSession', 'session.web.site')
->alias(\Joomla\CMS\Session\Session::class, 'session.web.site')
->alias(\Joomla\Session\Session::class, 'session.web.site')
->alias(\Joomla\Session\SessionInterface::class, 'session.web.site');
// Instantiate the application.
$app = $container->get(\Joomla\CMS\Application\SiteApplication::class);
// $session = $container->get(\Joomla\CMS\Session\Session::class);

// Set the application as global app
\Joomla\CMS\Factory::$application = $app;
$app->createExtensionNamespaceMap();

// $app->initialise();
require_once(JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/config.php');
require_once(JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/calculationh.php');

VmConfig::loadConfig();

require_once(JPATH_ADMINISTRATOR.'/components/com_virtuemart/models/product.php');
$model = new VirtueMartModelProduct();
$lang = VmConfig::$defaultLang;

$db = Factory::getContainer()->get('DatabaseDriver');
$live_site = trim(Joomla\CMS\Uri\Uri::root(), '/');
$calculator = calculationHelper::getInstance();

function getImages($id) {

global $db, $live_site;

$query = 'SELECT a.file_url FROM #__virtuemart_medias a JOIN #__virtuemart_product_medias b ON b.virtuemart_media_id = a.virtuemart_media_id WHERE a.published = 1 AND b.virtuemart_product_id = '.$id.' ORDER BY b.ordering, b.id LIMIT 10';
$db->setQuery($query);
$rows = $db->loadObjectList();

$media = '';

if ($rows) {
foreach ($rows as $row) {
$media .= '<picture>'.$live_site.'/'.htmlspecialchars(str_replace(' ', '%20', $row->file_url)).'</picture>'."\n";
}
}

return $media;
}

if (!FILE) {
ob_start('ob_gzhandler', 9);
header('Content-Type: application/xml; charset=utf-8');
} else {
header('Content-Type: text/html; charset=UTF-8');
}

$xml = '<?xml version="1.0" encoding="utf-8"?>'."\n";
$xml .= '<yml_catalog date="'.date('Y-m-d H:i').'">'."\n";
$xml .= '<shop>'."\n";
$xml .= '<name>'.htmlspecialchars(NAME, 0, 20, 'UTF-8').'</name>'."\n";
$xml .= '<company>'.htmlspecialchars(DESC).'</company>'."\n";
$xml .= '<url>'.$live_site.'</url>'."\n";
$xml .= '<currencies>'."\n";
$xml .= '<currency id="'.CURRENCY.'" rate="1"/>'."\n";
$xml .= '</currencies>'."\n";
$xml .= '<categories>'."\n";

$query = 'SELECT a.category_parent_id, a.category_child_id, b.category_name FROM #__virtuemart_category_categories a RIGHT JOIN #__virtuemart_categories_'.$lang.' b ON b.virtuemart_category_id = a.category_child_id WHERE a.category_child_id NOT IN ('.EXCLUDE_CAT.') ORDER BY a.category_child_id';
$db->setQuery($query);
$rows = $db->loadObjectList();

$exclude_cat_arr = explode(',', EXCLUDE_CAT);

foreach ($rows as $row) {
$cat_parent_id = $row->category_parent_id;
$cat_child_id = $row->category_child_id;
$cat_name = htmlspecialchars(trim(strip_tags($row->category_name)));

if ($cat_parent_id == 0 || in_array($cat_parent_id, $exclude_cat_arr)) {
$xml .= '<category id="'.$cat_child_id.'">'.$cat_name.'</category>'."\n";
} else {
$xml .= '<category id="'.$cat_child_id.'" parentId="'.$cat_parent_id.'">'.$cat_name.'</category>'."\n";
}
}

$xml .= '</categories>'."\n";
$xml .= '<offers>'."\n";

$query = 'SELECT DISTINCT a.virtuemart_product_id, a.product_parent_id, a.product_sku, a.virtuemart_vendor_id, a.product_in_stock, b.product_name, b.product_desc, d.product_tax_id, d.product_discount_id, d.product_price, d.product_override_price, d.override, d.product_currency, e.mf_name, e.virtuemart_manufacturer_id, g.virtuemart_category_id FROM (#__virtuemart_product_categories g LEFT JOIN (#__virtuemart_product_prices d RIGHT JOIN ((#__virtuemart_product_manufacturers f RIGHT JOIN #__virtuemart_products a ON f.virtuemart_product_id = a.virtuemart_product_id) LEFT JOIN #__virtuemart_manufacturers_'.$lang.' e ON f.virtuemart_manufacturer_id = e.virtuemart_manufacturer_id LEFT JOIN #__virtuemart_products_'.$lang.' b ON b.virtuemart_product_id = a.virtuemart_product_id) ON d.virtuemart_product_id = a.virtuemart_product_id) ON g.virtuemart_product_id = a.virtuemart_product_id) WHERE a.published = 1 AND d.product_price > 0 AND b.product_name <> \'\' AND g.virtuemart_category_id NOT IN ('.EXCLUDE_CAT.') AND a.virtuemart_product_id NOT IN ('.EXCLUDE_PROD.') GROUP BY a.virtuemart_product_id';
$db->setQuery($query);
$rows = $db->loadObjectList();

foreach ($rows as $row) {

$product_name = htmlspecialchars(trim(strip_tags($row->product_name)));

$product_id = $row->virtuemart_product_id;
$product_cat_id = $row->virtuemart_category_id;
$row->categories = array($product_cat_id);

$model->getRawProductPrices($row, 0, array(1), 1);

$prices = $calculator->getProductPrices($row);

$type = $row->mf_name ? ' type="vendor.model"' : '';
$url = $live_site.JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$product_id.'&virtuemart_category_id='.$product_cat_id);

//$available = $row->product_in_stock > 0 ? 'true' : 'false';
//$xml .= '<offer'.$type.' id="'.$product_id.'" available="'.$available.'">'."\n";

$xml .= '<offer'.$type.' id="'.$product_id.'" available="true">'."\n";
$xml .= '<url>'.$url.'</url>'."\n";
$xml .= '<price>'.$prices['salesPrice'].'</price>'."\n";
$xml .= '<currencyId>'.CURRENCY.'</currencyId>'."\n";
$xml .= '<categoryId>'.$product_cat_id.'</categoryId>'."\n";

$xml .= getImages($product_id);

$xml .= '<delivery>'.DELIVERY.'</delivery>'."\n";

if ($row->mf_name) {
$xml .= '<vendor>'.htmlspecialchars($row->mf_name).'</vendor>'."\n";
$xml .= '<model>'.$product_name.'</model>'."\n";
} else {
$xml .= '<name>'.$product_name.'</name>'."\n";
}

//$xml .= '<vendorCode>'.htmlspecialchars($row->product_sku).'</vendorCode>';

if ($row->product_desc) {
$xml .= '<description><![CDATA['.$row->product_desc.']]></description>'."\n";
}

$xml .= '</offer>'."\n";
}

$xml .= '</offers>'."\n";
$xml .= '</shop>'."\n";
$xml .= '</yml_catalog>';

if (FILE) {
$xml_file = fopen('vm4_market.xml', 'w+');

if (!$xml_file) {
echo 'Ошибка открытия файла';
} else {
ftruncate($xml_file, 0);
fputs($xml_file, $xml);

echo 'Файл создан, url - <a href="'.$live_site.'/vm4_market.xml">'.$live_site.'/vm4_market.xml</a>';
}

fclose($xml_file);
} else {
echo $xml;
}
« Последнее редактирование: 03.07.2023, 10:42:25 от strongest »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT VirtueMart Bitrix24, плагин интеграции с CRM Битрикс24

Автор sergeytolkachyov

Ответов: 1
Просмотров: 2824
Последний ответ 17.11.2023, 10:27:16
от sergeytolkachyov
Ошибка после перехода в корзину VirtueMart

Автор max_max

Ответов: 4
Просмотров: 2407
Последний ответ 07.09.2021, 18:50:25
от max_max
Кнопки операций в VirtueMart не реагируют на клик

Автор max_max

Ответов: 0
Просмотров: 2330
Последний ответ 30.08.2021, 09:43:21
от max_max
Привязка товаров к категориям при импорте из csv

Автор max_max

Ответов: 8
Просмотров: 2847
Последний ответ 16.08.2021, 18:45:19
от max_max
csvi Pro 7.3.0. Игнорирование существующих полей пи импорте товаров

Автор Viktor

Ответов: 2
Просмотров: 2730
Последний ответ 13.12.2019, 22:44:43
от AlexB