Покопавшись по форумам понял, что вопрос экспорта в ЯМ хоть и актуален, но предложены только платные скрипты.
Ну что же, денег на покупку скрипта не выделяют, пришлось самому написать.
За основу взял какой-то скрипт для VM, переделал по JoomlaShopping.
Что сделано -
1. Выбирает все опубликованные товары, все категории.
2. Прописывает extra поля в виде параметров товара
3. Скрипт переписан с устаревших функций mysql_connect на PDO, что должно отразиться на скорости и безопасности
Возможные недоработки -
1. Не все дополнительные поля выводит, но я делал под магазин заказчика, может у других будет иначе.
2. Не совсем правильный запрос на товары. Из-за подзапроса к категориям идет выборка огромного количества полей, т.е. появляется много дублей. Скажем, у меня 300 товаров и 300 соотношений "категория-товар" - в итоге получается 900000 строк. Подавляется с помощью GROUP, да и сам скрипт вывода проверяет - был ли выведен уже товар или нет. Но это небольшой костыль. Буду рад помощи в оптимизации скрипта.
3. Не совсем недоработка, но все же. ЯМ предполагает по 1 категории на товар. Поэтому если в магазине больше 1 категории у товара, то выбирается только одна, тут уж ничего не поделаешь.
На 350 товаров в базе тратится что-то вроде 1 секунды на запрос, что с одной стороны быстро, но с другой - не достаточно оптимизированно.
Есть мысли по поводу более корректной выборки категорий?
И да, не забываем прописать в .htaccess в корне сайта
AddType application/x-httpd-php .php .html .phtml .htm .yml
Чтобы файлы с расширением yml обрабатывались как php скрипты. Возможно, на вашем хостинге это не сработает, тогда переименуйте yml в php. Яндексу без разницы.
Возможные ошибки:UPD. Проверку в Яндексе прошел, подправил 2 момента - заголовок сделал text/xml (не критично, просто чтобы браузер воспринимал как XML и красивенько рисовал деревья) и проверку на 0 цену. Т.е. если цена 0, то не выводит товар, ибо валидатор яндекса ругался.
UPD2 Проверили на Joomla 3 + JS 4 - возникает ошибка при выборке товаров, насколько я понял. Пока проблема присутствует.
UPD3 Сейчас ковыряю последнюю версию магазина и понимаю, что там значительно отличается структура хранения дополнительных характеристик, как минимум - введен мульти-выбор из списка, т.е. присутствует отдельная таблица Ключ -> Значение характеристики, а в таблице с продуктом хранится только ключ в дополнительном поле. Если указано несколько характеристик, то они хранятся через запятую. Это не учитывалось в данном модуле, поэтому требуются доработки.
[вложение удалено Администратором]