VirtueMart

 В разделе информация и учебные материалы по самому популярному среди пользователей интернет магазину. 

Заменить личинки дверных замков. Личинки замков замена .

 

VirtueMart - это просто огромное расширение. По некоторым данным, VirtueMart занимает второе место среди всех платформ электронной коммерции.

Практически все магазины на Virtuemart работают на версии 1.1, однако совсем недавно разработчики выпустили свежую версию Virtuemart 2.0. В данном уроке мы рассмотрим пример по миграции магазина на Virtuemart с версии 1.1 на 2.0.

тюнер для кардшаринга, кардшаринг через компьютер

 

Что нужно знать?

Перенос магазина с Virtuemart 1.1 на последнюю версию Virtuemart 2.0 можно осуществить с помощью специальной утилиты для миграции, встроенной в Virtuemart. Следует знать, что существует несколько подводных камней. Утилита для миграции переносит данные:

  • товары
  • заказы
  • категории товаров
  • производители
  • категории производителей
  • группы покупателей

Однако, встроенный мигратор не переносит следующие данные:

  • типы товаров
  • атрибуты товаров

Эти данные необходимо перенести вручную.

В этом уроке мы подробно рассмотрим процесс переноса магазина с версии 1.1 на версию 2.0.

Перед тем, как начать полноценную миграцию магазина, лучше потренироваться на тестовом полигоне, а не на рабочем сайте. Мы всегда советуем: НЕ СТОИТ ПЕРЕНОСИТЬ ДАННЫЕ НА ЖИВОМ, РАБОТАЮЩЕМ САЙТЕ. Ниже мы также расскажем, как создать рабочую копию сайта на Joomla.

Шаг 1: Скачайте файлы Virtuemart

 

Откройте http://virtuemart.net и скачайте следующие пакеты:

  • Дистрибутив Virtuemart 2.0
  • Если на вашем текущем магазине установлена более ранняя версия, чем Virtuemart 1.1.9, скачайте пакет обновлений до версии Virtuemart 1.1.9. На рисунке выше можно увидеть, что существуют специальные патчи для предыдущих версий магазина. Патчи можно скачать здесь: http://dev.virtuemart.net/projects/virtuemart/files. Вам необходимо обновить магазин до версии Virtuemart 1.1.9 перед тем, как осуществлять следующие шаги по миграции до версии 2.0.

Шаг 2. Перенесите медиа данные в /images/stories/virtuemart/

 

  • Используйте FTP утилиту или файловый менеджер и создайте папку для медиа файлов, расположенных по адресу /images/stories/virtuemart/.
  • Скопируйте все файлы, размещенные в /components/com_virtuemart/shop_image/ в эту новую папку по адресу /images/stories/virtuemart/.

 

Шаг 3. Переименуйте старые папки com_virtuemart

Перейдите в /components/com_virtuemart/ и переименуйте всю папку /com_virtuemart/, используя файловый менеджер или FTP утилиту. Я добавил слово ORIGINAL к прежнему названию, как показано на рисунке ниже, таким образом, теперь легко распознать старую версию магазина по названию папки /ORIGINALcom_virtuemart/.

 

Шаг 4. Отключите режим отладки Joomla, а также модули и плагины Virtuemart.

Теперь нам нужно открыть файл кофигурации Joomla и отключить режим отладки Joomla.

  • Открывайте Сайт > Глобальная конфигурация.
  • Идите в закладку “Система”.
  • Выбирайте “Нет” для режима отладки.
  • Нажимайте “Сохранить”.

 

Также нужно отключить все модули Virtuemart.

  • Идите в Расширения > Менеджер модулей.
  • Используйте Фильтр для сортировки всех модулей Virtuemart.
  • Нажимайте на чекбокс в верхней колонке для выделения всех модулей.
  • Нажимайте “Снять с публикации”.

Если остались еще зеленые иконки рядом с модулями Virtuemart, это индикатор того, что еще не все модули отключены - нужно, чтобы были красные иконки, указывающие на то, что модули VirtueMart отключены).

 

Следующий шаг - снятие с публикации плагинов Virtuemart:

  • Идите в Расширения > Менеджер плагинов
  • Используйте Фильтр для сортировки всех плагинов VirtueMart.
  • Отключайте все плагины Virtuemart.

 

И, наконец, если у вас установлен плагин Akeeba System - System Restore Points plugin, то снимайте его с публикации тоже.

Шаг 5. Установка языка по умолчанию

 

  • Идите в Расширения > Менеджер языков
  • Проверьте, язык по умолчанию должен быть тот же, что и в описании товаров. На этой иллюстрации приведен пример сайта с одним языком, но если у вас двуязычный сайт или более - удостоверьтесь, чтобы в таблицах базы данных были указаны правильные языки.

Шаг 6. Установка Virtuemart 2.0

Скачанный вами архив Virtuemart необходимо распаковать, что явно видно из названия архива, например: com_virtuemart.2.0.2_extract_first.zip. После распаковки вы получите следующие файлы:

  • com_virtuemart.2.0.2.zip
  • com_virtuemart.2.0.2_ext_aio.zip

Нам нужно сперва установить архив com_virtuemart.2.0.2.zip до того, как доберемся до второго установочного пакета под названием AIO (All-in-one - “всё в одном”). Установочный пакет AIO содержит все плагины и модули, которые нам нужны. Но это чуть позже.

Идите в Расширения > Установка / Деинсталляция (или Расширения > Менеджер расширений) в Joomla 2.5 и устанавливайте файлы для Virtuemart 2.0. Архив, который нам нужно загрузить, должен иметь название типа com_virtuemart.2.0.3.zip.

 

На изображении ниже показан пример экрана при успешной установке. Нам не требуется устанавливать демонстрационные данные.

 

Теперь можно перейти в Компоненты > Virtuemart и подтвердить, что все данные не повреждены и миграция была выполнена. Если всё было установлено успешно, вы увидите экран как на примере ниже. Если в процессе миграции возникли ошибки, вы получите соответствующее сообщение об ошибке, что является довольно распространённой проблемой, если судить по сообщениям на форуме. Тем не менее, решение весьма простое. Если у вас возникло сообщение об ошибке, деинсталлируйте Virtuemart 2.0 и установите его снова.

 

Шаг 7. Установка компонента VirtueMart AIO

Возвращайтесь к Расширения > установка / удаление > и загружайте компонент AIO (All In One - “Всё в одном”). Он будет называться примерно так:com_virtuemart.2.0.2_ext_aio.zip.

 

Шаг 8. Снятие с публикации несовместимого плагина

Если у вас сайт на Joomla 1.5, то при попытке посмотреть фронт сайта, получите сообщение об ошибке. Это вызвано тем, что при установке AIO компонента также устанавливается и плагин для Joomla 2.5. Поэтому на сайте под управлением Joomla 1.5 возникает ошибка. Исправить её можно следующим образом:

  • Открывайте панель администратора и идите в Расширения > Менеджер плагинов.
  • Используйте Фильтр для поиска плагинов Virtuemart.
  • Отключайте новый плагин под названием VM - Search, Virtuemart Product.
  • Открывайте фронтальную часть сайта и смотрите нет ли ошибок.

Если у вас нет доступа в панель администрирования, то можно отключить модуль при помощи phpMyAdmin, о чем рассказано в этом уроке.

 

Шаг 9. Включение режима обновления базы данных

  • Идите в Компоненты > Virtuemart.
  • Нажимайте Конфигурация.
  • Нажимайте в закладку Магазин и скроллируйте вниз.
  • Нажимайте enable database tools.
  • Нажимайте “Сохранить”

 

Шаг 10. Настройка миграции

  • Идите в Инструменты и нажимайте на закладку Миграция.
  • Увеличьте время выполнения в переменной max_execution. У себя я ставлю значение 100.
  • Увеличьте значение Memory Limit. Я выставляю 256MB.
  • Выделите радио баттон "everything". Необходимо это сделать до запуска миграции.
  • Нажимайте в Запуск миграции.

 

Если вы уже выставили нужные значения на предыдущем этапе, но хотите все же изменить значения вручную, откройте файл php.ini и с помощью редактора кода измените нужные параметры. Если с этим возникли проблемы, можете ознакомиться с двумя бесплатными уроками, которые позволят разобраться в настройке и установке Joomla.

  • Как найти файл php.ini
  • Решение общих вопросов по установке Joomla.

 

Как только миграция будет завершена, мы увидим экран как на изображении ниже. Если на экране большая часть залита голубым текстом - это хороший знак. Теперь можно не сильно беспокоиться относительно сообщений об ошибках. Однако нам всё ещё нужно поправить конфигурацию данных магазина, а это уже следующий шаг, по завершению которого мы сообщения об ошибках больше не будут появляться.

 

Теперь идите во фронтальную часть и проверяйте сайт. Как и следовало ожидать, все товары перенесены успешно и магазин работает без ошибок.

 

Поздравляю! На данный момент мы успешно завершили перенос магазина на Virtuemart 2.0 с помощью встроенной утилиты для миграции и уличной магии. :)

Теперь можно настроить магазин, перейдя в Компоненты > Virtuemart > Конфигурация. В сети также существует отличный урок по настройке Virtuemart, с данным уроком вы также можете ознакомиться.

Желаем удачи и хороших продаж вашему магазину на базе Virtuemart 2.0!

День добрый ребята! Столкнулся с задачей по подгонке шаблона VirtueMart под дизайн сайта. Уверен в том, что эта тема интересует не только меня, а поэтому очень востребована.

В этой статье я опишу структуру шаблона и расскажу о том, за что отвечает тот или иной файл шаблона VirtueMart. На самом деле все не так сложно как кажется с первого взгляда :)Прежде чем мы приступим, хочу заметить, что для того, чтобы воспользоваться данной информацией нужно обладать хотя бы начальными знаниями CSS, Html и PHP.

 

Оглавление статьи.

  1. Структура темы default.
  2. Структура шаблона VirtueMart.
  3. Подробнейший разбор папки templates.
  4. Содержание папки browse.
  5. Содержание папки checkout.
  6. Содержание папки product_details.
  7. Содержание папки comon.
  8. Содержимое папки order_emails.
  9. Содержимое папки pages.

Структура темы default

Здесь мы разберем за что отвечают папки и файлы находящиеся непосредственно в папке default.

Сам шаблон находится здесь:

/web/components/com_virtuemart/themes/default

В этой папке мы обнаруживаем вот что:

  1. images – здесь находятся все изображения шаблона.
  2. templates – здесь находятся шаблоны различных страниц магазина, тобишь корзина, оформление заказа, письма и пр. Ничего не поделаешь вот так устроен шаблон :)
  3. admin.css, admin.styles.css, theme.css –это таблицы стилей шаблона.
  4. theme.js, theme.prototype.js — скрипты шаблона.
  5. theme.config.php — в нем заключены все настройки шаблона.
  6. theme.php — функциональный файл. Для людей слабо знакомых с PHP даже не стоит заморачиваться.
  7. theme.xml — хранит в себе информацию о шаблоне.

Структура шаблона VirtueMart « default»

Далее я опишу структуру шаблона, папки которые вы найдете по этому адресу:

/web/components/com_virtuemart/themes/default/templates

Именно в этой папке находится все то, что позволит нам изменить дизайн нашего шаблона.

  1. basket — шаблон корзины товаров. Отвечает за отображение блока корзины товаров.
  2. browse — шаблон списка товаров. Отвечает за отображение списка товаров в определенной категории.
  3. flypage — шаблон страницы товара. Отвечает за отображение страницы с товаром, появляющаяся при переходе по товару из категории.
  4. checkout — шаблон страницы заказа. Отвечает за вывод страниц оформления заказов (метод оплаты, доставка, регистрация и т.п.)
  5. order_emails — шаблон писем. Отвечает за отображение писем, отсылаемых в процессе работы с магазином.
  6. pages — шаблон дополнительных страниц.
  7. product_details — внешний вид страницы заказа.

Далее мы перейдем к разбору каждого пункта папки templates.

Подробнейший разбор папки templates.

Содержание папки basket.

1)basket_b2c.html.php — Вступает в силу если в настройках VirueMart мы отмечаем пункт «Показать «(включая XX% налогов)», когда они применяются?» (b2c - рис. ниже)

2) basket_b2b.html.php – шаблон по умолчанию если мы не включили вышеуказанный пункт.

3) ro_basket_b2c.html.php – появляется на последнем шаге, где информация уже не может быть изменена покупателем. (b2c - рис. ниже)

3) ro_basket_b2b.html.php – полная аналогия с его собратом при отключенной функции включения налогов.

Содержание папки browse.

Уверен в том, что подробное описание каждого файла поможет Вам более наглядно понять суть шаблона VirtueMart.

1) browse_1.php – этот шаблон отвечает за отображения списка товаров по одному в строке. Смотрим ниже:

2) browse_2.php, browse_3.php, browse_4.php, browse_5.php — как Вы поняли отвечают за вывод более одного товара в строке.

3) browse_lite_pdf.php шаблон служит  для конвертации списка товаров в формат PDF. Не содержит в себе никаких пользовательских данных.

4) Папка includes.

  • addtocart_form.tpl.php — шаблон кнопки добавления в корзину.

  • browse_header_all.tpl.php – шаблон заголовка страницы в «Списке всех товаров»

  • browse_header_category.tpl.php – шаблон заголовка страницы browse и иконки RSS, в «Списке товаров категории»

  • browse_header_keyword.tpl.php – шаблон заголовка страницы в списке товаров при поиске. В расширенном поиске по характеристикам не работает:

  • browse_header_manufacturer.tpl.php – шаблон заголовка страницы в списке производителей товаров. Возможно увидеть установив модуль отображения производителей.

  • (1) browse_layouttable.tpl.php, (2) browse_listtable.tpl.php, (3) browse_notables.tpl.php) – это 3 варианта шаблонов вывода списка товаров.
  • browse_orderbyfields.tpl.php – файл, содержащий коды для возможных полей сортировки товаров на странице browse. можете ничего не редактировать там :)
  • browse_orderbyform.tpl.php – отображает внешний вид формы сортировки на странице browse;
  • 9) browse_pagenav.tpl.php – шаблон отображения номеров страниц для списка товаров со ссылками «следующая», «предыдущая» и.т.д.

  • browse_searchparameter_form.tpl.php – этот шаблон отвечает за отображения заголовка при расширенном поиске по дополнительным характеристикам:

Переходим к следующему пункту.

Содержание папки checkout.

  • checkout_bar.tpl.php – шаблон процесса оформления нашего заказа:

  • customer_info.tpl.php – шаблон информации о покупателе:

  • get_final_confirmation.tpl.php – шаблон предварительной информации на этапе «Завершить заказ»

  • get_payment_method.tpl.php – шаблон заголовка выбора способа оплаты на этапе «Способ оплаты»

  • get_shipping_address.tpl.php – выбор адреса доставки:

  • get_shipping_method.tpl.php – выбор способа доставки:

  • list_payment_methods.tpl.php – способа оплаты:

  • list_shipping_methods.tpl.php – способа доставки:

 

 

  • list_shipto_addresses.tpl.php – адрес доставки:

 

  • login_registration.tpl.php – шаблон страницы оформления заказа для незарегистрированных пользователей.

Содержание папки product_details.

  • flypage.tpl.php – этот файл отвечает за стандартный шаблон страницы товара.

Внимание! В этом файле возможно редактировать только значения общих элементов.

  • flypage_images.tpl.php – отображения страницы товара с дополнительными изображениями.

  • flypage_lite_pdf.tpl.php – служит для удобного конвертирования в PDF. Использоваться в том случае, когда VirtueMart работает как каталог.

  • flypage_new.tpl.php – другой вид страницы:

  • flypage- ask.tpl.php – еще раз другой вид страницы:

  • garden_flypage.tpl.php – отвечает за отображение рисунка справа:

Теперь пришла очередь папки includes. Заглянем внутрь :)

  • addtocart_advanced_attribute.tpl.php – отвечает за отображение свойств и атрибутов товара на странице товара:

  • addtocart_custom_attribute.tpl.php –  отображения свойств, вводимых вручную:

  • addtocart_drop.tpl.php – отвечает за выпадающий список атрибутов и свойств.
  • addtocart_form.tpl.php – форма добавления товара в нашу корзину:

  • addtocart_list_multi.tpl.php – шаблон добавления товара в корзину:

addtocart_list_single.tpl.php – шаблон добавления товара в корзину с одной кнопкой:

  • quantity_box_general.tpl.php – отвечает за ввод количества товара перед добавлением в корзину:

  • quantity_box_radio.tpl.php – шаблон формы ввода количества товара перед добавлением в корзину, при стиле отображения «ratio».

Содержание папки common.

  • availability.tpl.php – шаблон информации о доступности товара:

  • buttons.tpl.php – шаблон иконок печати, pdf, сообщения:

  • categoryChildlist.tpl.php – отвечает за отображение подкатегорий данной категории на странице товара:

  • couponField.tpl.php – этот файл определяет поле ввода купона, которое находится в разделе корзины:

  • featuredProducts.tpl.php – отвечает за оформление рекомендуемых товаров.

  • login_form.tpl.php – формы авторизации после нажатия ссылки «оформить заказ» в корзине:

  • minicart.tpl.php – шаблон мини-корзины, которая отображается через главный модуль VirtueMart.
  • moreImages.tpl.php – пустой файл
  • pathway.tpl.php – шаблон пути к товару.

  • price.tpl.php – шаблон цены товара.
  • productsnapshot.tpl.php – шаблон сопутствующих товаров.

  • recent.tpl.php – шаблон недавно просмотренных товаров на странице товара:

  • relatedProducts.tpl.php – выводит список товаров, которые мы поштучно описываем в файле productsnapshot.tpl.php.
  • reviewform.tpl.php – форма добавления отзыва на странице товара.
  • reviews.tpl.php – шаблон отзывов на странице товара.
  • shopIndex.tpl.php – заголовок главной страницы VirtueMart.
  • voteform.tpl.php –  отвечает за форму голосования за товар на странице товара.
  • votes_allvotes.tpl.php – шаблон отображения голосов за товар на странице списка товаров.

Содержимое папки order_emails.

  • confirmation_email.tpl.php Данный файл отвечает за внешний вид письма, которое получает покупатель после оформления заказа.
  • enquiry_email.tpl.php данный файл также отвечает за внешний вид письма, но с наличием заданного вопроса по покупаемому товару.

Содержимое папки  pages.

  • account.index.tpl.php отвечает за отображение основной страницы редактирования учетной записи зарегистрированного пользователя.

  • account.billing.tpl.php шаблон станицы редактирования контактной информации и информации об оплате зарегистрированного пользователя.

  • account.order_details.tpl.php шаблон страницы информации о заказе:

  • account.shipping.tpl.php отвечает за вывод страницы информации о доставке зарегистрированного пользователя.

  • account.shipto.tpl.php шаблон страницы добавления адреса доставки зарегистрированного пользователя.

  • checkout.thankyou.tpl.php – отвечает за вывод  страницы последнего шага оформления заказа.

  • shop.ask.tpl.php – отвечает за шаблон формы « Задайте вопрос по этому товару»

  • shop.cart.tpl.php – отвечает за вывод  кнопки «Оформить заказ»

  • shop.infopage.tpl.php отвечает за вывод страницы контактной информации о магазине (информация о продавце)

  • shop.manufacturer.tpl.php вывод страницы информации о производителе.

shop.waiting_list.tpl.php – файл шаблона уведомления администрации о о отсутствии товара:

  • shop.waiting_thanks.tpl.php страница на которую попадает покупатель после нажатия кнопки «Уведомить»:

Вот и все! На этом ставим жирную точку, берем данную статью на вооружение и подгоняем, создаем, правим шаблон VirtueMart под Ваш сайт :) Лично для меня это статья крайней необходимости и является по своей сути шпаргалка.

Все, кто работает с Виртумартом знают, что артикул у товара должен быть уникальным. Отсюда есть некоторые сложности с работой с товарами, ведь со временем забываются номера артикулов. Хорошо, если у вас в магазине немного товаров. А если ваша торговая площадка предлагает с тысячами товарных единиц. Конечно, немудрено и запутаться во всем этом добре. Лучше попробуем настроить Virtuemart таким образом, чтобы система сама подставляла нужные значения артикулов. Почему бы и нет? Для этого в файле: administrator\components\com_virtuemart\classes\ps_product.php

Фильтры для воды корейские. Купить товары раздела фильтры для воды. Бытовые фильтры для воды.

Нужно заменить код:

1
2
3
4
if (empty( $d["product_sku"])) {
$vmLogger->err( $VM_LANG->_('VM_PRODUCT_MISSING_SKU',false) );
$valid = false;
}

На такой:

1
2
3
4
5
6
7
8
if (empty( $d["product_sku"])) {
$q = "SELECT MAX(product_id) AS product_id FROM j25_{vm}_product";
$db->query( $q );
$db->next_record();
$list_sku = intval($db->f("product_id"))+1;
$d['product_sku'] = $list_sku;
$valid = true;
}

И всё будет работать, как ночные звезды !

Наконец-то мы подошли к долгожданной и, наверное, актуальной для многих теме массовой работы с товарами VirtueMart. Под «массовой работой» я подразумеваю автоматический импорт/экспорт/обновление базы товаров интернет-магазина. Для решения этой задачи я хочу предложить использовать компонент SimpleCSV. Что это за зверь, как его использовать, а также, почему не знаменитый CSV Improved, вы узнаете из этой статьи.

 

Поскольку далеко не все вообще знакомы с «массовой работой», начну я издалека. Не секрет, что разработать интернет-магазин – это только треть дела. Кроме этого нужно научиться управлять им, а также применить к нему стратегию, описанную в предыдущей статье. Сегодня мы говорим лишь про управление.

 

Предположим, вы полностью разобрались, как добавлять, редактировать и удалять товары, создавать позиции и свойства, типы, и.т.д. Но, думаю, вы могли заметить, что на добавление одного товара уходит приличное время. Многие, наверное, задумались, а что делать, если этих товаров тысячи, десятки тысяч? Не будешь же каждый добавлять отдельно? Да. Это действительно так. Способ работы с товарами, используемый в VirtueMart, хорош лишь тогда, когда их количество невелико. В противном случае работать становится нереально. Допустим, у нас изменились цены. Это обычное явление. В магазине, скажем, тысяча товаров. И что делать? Менять цену для каждого отдельно. Нет. Вот здесь-то мы и приходим к вопросу массовой работы. Но, к сожалению, в стандартном Virtuemart для этих целей ничего не предусмотрено. Было предусмотрено раньше. В версии VirtueMart для Joomla 1.0.x был встроен компонент CSV Improved, но затем он отделился и стал самостоятельным и платным. С тех самых пор для массовой работы с товарами приходится искать отдельное решение.

Почему не CSV Improved?

CSV Improved – замечательный компонент и с каждым годом становится все лучше и лучше. Разработчики совершенствую его непрерывно, поскольку он приносит им живые деньги. Но мне абсолютно не нравится подход разработчиков к его распространению. Они пошли по пути, лучшему для себя, и худшему для потребителей. CSV Improved платный. Но это не самое печальное. Казалось бы, такой замечательный компонент и купить можно. Но купить-то как раз и не получится. Можно лишь приобрести подписку (лицензию) на один год или несколько лет. При этом подписка на один год на данный момент стоит 35 евро. Не слабо, правда? И это на один домен. Таким образом, получается, что если вы собираетесь постоянно использовать сей замечательный компонент для своего интернет-магазина, вам каждый год придется платить разработчикам примерно по 30 евро. Во веки веков :-) . Ну это если все делать официально.

 

С другой стороны, можно поискать в Сети и ломаный CSV Improved, но это означает отсутствие обновлений и потенциальную угрозу безопасности (т.к. неизвестно, что туда подсадили, пока ломали).

 

До недавнего времени, так или иначе, приходилось использовать CSV Improved, поскольку работающих альтернатив ему просто не было. Но вот не так давно (в этом году), один товарищ, взял да создал альтернативу CSV Improved, да еще и выложил ее в виде Non-Commercial, т.е. берем и пользуемся. Называется компонент SimpleCSV. Конечно, по возможностям ему не сравниться с CSV Improved, но задачу массовой работы он вполне решает. Не знаю, сохранит ли автор SimpleCSV бесплатным в дальнейшем, но пока пользоваться можно. Потому мы остановимся именно на нем.

Возможно, позже я вернусь и к описанию CSV Improved, но пока мне это кажется не лучшей идеей. 

 

Работа с компонентом SimpleCSV.

Перед тем, как начать описание, хочу сказать несколько общих слов. Если вы собираетесь использовать массовую работу с базой товаров VirtueMart, то какой бы компонент вы не использовали, вам придется включить мозг. Просто установить, нажать одну кнопку и радоваться жизни здесь не получится. Готовьтесь к тому, что первые 10 блинов будут комом. А может и больше. Если никак ничего не получается, не отчаивайтесь, пробуйте и пробуйте еще. Могу точно сказать, что все работает.

Итак, начнем. Для начала нужно скачать и установить компонент. SimpleCSV устанавливается как и любой другой компонент Joomla. После установки переходим к компоненту «Компоненты –> SimpleCSV» и видим следующий экран:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

Здесь есть следующие разделы:

Режим – позволяет выбрать текущую операцию, а именно импорт, экспорт или обновление базы товаров;

Разделители – крайне важный раздел, в котором указываются символы разделения данных в CSV-файле. Здесь есть две опции: разделитель поля и разделитель текста. Первый символ выделяет данные одного поля в CSV-файле, второй разделяет поля товара. Так сложно объяснить, подобнее будет в примере ниже.

Последовательность полей – самый большой и сложный раздел. Именно он определяет то, как компонент будет интерпретировать CSV-файл. С настойкой этого раздела возникнет наибольшее количество проблем, поэтому я расскажу о нем отдельно чуть ниже.

CSV – здесь мы указываем CSV файл, из которого берутся данные в случае импорта и обновления.

 

Раздел «Последовательность полей»

Разберем подробнее данный раздел. Прежде всего, нужно понять процесс массовой работы изнутри, т.е. что такое экспорт, импорт, или обновление товаров с точки зрения технологии.

Все товары VirtueMart, а также данные по ним хранятся в соответствующих таблицах базы данных Joomla. Точнее говоря, базы данных компонента VirtueMart, который добавляет свои таблицы к таблицам Joomla. Для того чтобы увидеть все наглядно, запустим phpmyadmin и рассмотрим эти таблицы. Как туда попасть и что это вообще такое можно прочитать в статье «Твой Интернет». Часть 9. База данных Joomla. Открыв нашу базу данных в phpmyadmin, мы увидим слева список таблиц. Те, что относятся к VirtueMart, начинаются с «jos_vm_». Кликнем по таблице jos_vm_product. Появится окно, показанное ниже:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

В этой таблице содержаться все товары магазина и некоторые их свойства.

На рисунке выше мы видим не саму таблицу, а ее структуру, т.е. набор полей таблицы, их тип, и.т.д. Каждая из строк здесь обозначает определенное поле, т.е. столбец таблицы. Теперь взглянем непосредственно на таблицу. Для этого кликнем по ссылке «Обзор» в верхней части экрана:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

Теперь появилась наша таблица с товарами. Здесь мы видим названия полей уже в виде столбцов, а в строках хранятся как раз таки данные о товарах. Каждая строка таблицы соответствует одному товару. Теперь вы представляете, как храниться информация о товарах VirtueMart.

Задача SimpleCSV сводится к тому, чтобы взять CSV-файл (или, проще говоря, таблицу, сформированную в Excel) и перенести данные из нее в базу данных VirtueMart, т.е. просто перенести данные из одной таблицы в другую. А наша задача – объяснить компоненту, как правильно сделать это. (Правда работаем мы не с одной таблицей VirtueMart, а с несколькими, но это уже сложности которыми пока не стоит забивать голову).

Чтобы SimpleCSV правильно перенес данные, мы должны объяснить ему, что в нашем CSV-файле есть что, т.е. какие данные куда нужно записывать. Для этого и служит раздел «Последовательность полей». Но рассказывать о нем опять же, пока рано. Сначала нужно рассмотреть, что же представляет собой CSV-файл.

 

CSV-файл.

Что же такое CSV-файл? Говоря по-простому, это нечто среднее между файлом Excel (*.xls) и текстовым документом (*.txt). Данные в нем можно прочитать блокнотом, но они упорядочены таким образом, что Excel сможет построить их них таблицу. Ниже рассмотрим простейший CSV-файл, полученный путем экспорта из VirtueMart:

 

"1";"1";"Hand Shovel";"4.99000";"<p>Nice hand shovel to dig with in the yard.</p>  "
"2";"3";"Ladder";"49.99000";"A really long ladder to reach high places."
"3";"3";"Shovel";"24.99000";"Nice shovel.  You can dig your way to China with this one."
"4";"3";"Smaller Shovel";"19.99000";"This shovel is smaller but you'll be able to dig real quick."
"5";"1";"Nice Saw";"24.99000";"This saw is great for getting cutting through downed limbs."
"6";"1";"Hammer";"1.00000";"A great hammer to hammer away with."

 

На первый взгляд – жуть, но давайте разберемся. Некую упорядоченность все же заметить можно. Каждая из строк – отдельный товар. В строке данные выделены кавычками, а данные в кавычках разделены точкой с запятой. Именно кавычки и точки с запятой позволяют нам построить из этого файла таблицу. Ведь по сути это и есть таблица, только немного видоизмененная. Данные в кавычках тоже не случайны. Первые две цифры это, соответственно ID товара и ID категории, которой принадлежит товар. Далее идет название и цена товара. Далее краткое описание. Если такой файл открыть с помощью Excel, а не блокнота, то получится следующее:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

Как видим, таблица.

Теперь, когда мы знаем что такое CSV-файл, пришло время разобраться с разделом «Последовательность полей» компонента SimpleCSV. Здесь мы просто указываем в какие столбцы таблицы товаров VirtueMart какие данные CSV-файла записывать. Чтобы сделать это, нам нужно выбрать столбец таблицы базы данных и указать порядковый номер данных в строке CSV-файла. Т.е., в нашем случае «Последовательность полей» должна быть настроена следующим образом(на рисунке показана настройка экспорта, с помощью которой был получен файл , описываемый выше):

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

В колонке «Выбор» мы галочками отмечаем столбцы базы данных, в которые будем записывать (либо из которых будем брать (в случае экспорта)) данные, а в колонке «№» указываем порядковый номер этих данных в сроке CSV-файла. Например, если цена в нашем CSV-файле стоит на 4-м месте, то и указать в строке с ценой мы должны номер 4.

Также у нас есть колонка «Значение по умолчанию при импорте». В ней устанавливаются данные, обязательные для существования товара в VirtueMart. Как, например, для каждого товара мы обязательно должны установить будет он опубликован или нет, третьего не дано. Чтобы не усложнять CSV-файл и работу в целом, создана эта колонка.

Теперь весь процесс массовой работы должен быть понятен. Но «понять», не значит «сделать». Чтобы «блинов комом» было как можно меньше, ниже я приведу пошаговый процесс импорта товаров из файла Excel в VirtueMart с помощью компонента SimpleCSV.

Пример пошагового процесса импорта товаров из файла Excel в VirtueMart с помощью компонента SimpleCSV.

Исходные данные:

Предположим у нас есть 3 товара:

Артикул

Наименование

Описание

Стоимость, руб

00001
Воздушный шар
Синий, похож на маленькую тучку, которую не заметят пчелы

2

00002
Горшочек с медом
Сосуд для хранения меда. Содержит любимое лакомство одного известного медведя.
300
00003
Хвост
Мммм… редкий товар, встречающийся только тогда, когда кто-то его теряет.
1000

Кроме того, для каждого товара у нас есть изображение. Вот они:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

Еще мы знаем, что все товары принадлежат категории товаров «Пух».

Теперь нам нужно перенести товары в VirtueMart. Этот процесс пройдет в несколько этапов:

1) Формирование Excel-таблицы и категории для товаров в VirtueMart.

Прежде всего, нам нужно создать в магазине категорию товаров «Пух». Делаем мы это вручную через панель администрирования. К сожалению, SimpleCSV позволяет пока работать массово только с товарами, но не с категориями. Категории придется создавать вручную. Это также может быть проблематично при большом их количестве. Однако, процесс импорта категорий из CSV-файла (такая возможность есть в CSV Improved) – задача далеко не простая, учитывая то, что возможны подкатегории неограниченной вложенности, и неизвестно, что займет больше времени: разобраться с импортом категорий и составить правильный файл импорта, или просто создать все категории вручную. У нас в примере категория всего одна и создаем мы ее вручную.

После создания категории, ей будет присвоен уникальный ID, который потребуется нам для импорта. Посмотреть его можно в списке категорий (самый правый столбец id). ID создается автоматически и у нас он равен 9.

Теперь пришло время формирования Excel-файла. Последовательность столбцов может быть любой. Для импорта это не важно. Важно другое. Изображения. Сами они не должны храниться в файле. В нем будут лишь их названия. Предположим, что наши картинки имеют названия shar.jpggorsh.jpg и hvost.jpg. Именно эти названия мы должны вписать в файл Excel. Сами же изображения мы загрузим отдельно, но об этом чуть позже.

Кто уже успел поработать с VirtueMart знает, что у каждого товара есть минимум два изображения: обычное и мини-изображение. Обычное используется при увеличении, либо на странице товара, а мини при просмотре категорий товара, и, возможно, также на странице товара. Минус массовой работы в том, что эти мини-изображения также должны у нас быть. Можно обойтись и без них, но ведь мы хотим все сделать на совесть? Все изображения, как и все мини-изображения должны иметь одинаковую ширину и высоту(в px), иначе на сайте получится полная котовасия.

В нашем случае я создал из исходных изображений shar.jpggorsh.jpg и hvost.jpg три мини-изображения с названиями shar_min.jpg,gorsh_min.jpg и hvost_min.jpg соответственно. Эти изображения отличаются от исходных только тем, что имеют меньший размер. Их названия мы также должны поместить в отдельную колонку Excel-файла, а сами файлы загрузить на сайт.

Теперь, что касается загрузки. Все изображения и мини-изображения товаров VirtueMart хранятся в папкеcomponents\com_virtuemart\shop_image\product. Т.е. наши картинки нужно загрузить именно в эту папку.

Вернемся к файлу Excel. Теперь он должен содержать в себе следующие столбцы.

– Артикул;
– Наименование;
– Описание;
– Стоимость, руб;
– Название файла изображения товара;
– Название файла мини-изображения товара;
– Категория VirtueMart, в которую нужно поместить товар

Итого 7 столбцов. В строках мы вносим соответствующие данные о товарах. Должно получиться примерно следующее:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

На этом первый этап закончен.

2) Сохранение Excel-таблицы в формате CSV.

Теперь, когда таблица создана, нам нужно сохранить ее в формате *.CSV. Это делается очень просто. В Excel выбираем «Файл –> Сохранить как» Тип файла: «csv (разделители – запятые)». Сохраняем (жмем «Ок» и «Да»). Смотрим, что получилось:

0001;Воздушный шар;Синий, похож на маленькую тучку, которую не заметят пчелы.;2;shar.jpg;shar_min.jpg;9
0002;Горшочек с медом;Сосуд для хранения меда. Содержит любимое лакомство одного известного медведя.;300;gorsh.jpg;gorsh_min.jpg;9
0003;Хвост;Мммм… редкий товар, встречающийся только тогда, когда кто-то его теряет.;1000;hvost.jpg;hvost_min.jpg;9

 

Если сравнивать с примером CSV-файла, который был выше, получилось тоже самое, только нет кавычек. Но это не страшно. Все прекрасно будет работать и без них.

Главное, что нужно сделать – преобразовать получившийся CSV-файл в кодировку UTF-8, без BOM!

Иначе текст не будет виден после импорта. Сделать это можно с помощью любого продвинутого текстового редактора, например Notepad++.

Теперь, когда наш CSV-файл готов, можно переходить к следующему этапу.

3) Импорт CSV-файла в VirtueMart.

Для импорта, мы откроем компонент SimpleCSV и заполним необходимые настройки:

– режим: «импорт»;
– разделитель поля: «;»
– разделитель текста: не имеет значения, т.к. в нашем файле отсутствует;
– CSV: выбираем наш CSV-файл.

Особое внимание к настройкам «Последовательность полей». Т.к. у нас в файле 7 столбцов, то отмечено 7 галочек, расставлен порядок, а также валюта по умолчанию выставлена в рубли. Точная настройка показана на рисунке ниже:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

После того, как все выставлено, жмем кнопку «Импорт / Экспорт / Обновление» в правом верхнем углу и вуаля…. Если все прошло правильно, вы увидите что-то наподобие этого:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

Теперь заходим в список товаров и видим наши импортированные товары:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

Также заходим на сайт и видим их и там:

 

Импорт и экспорт товаров VirtueMart с помощью SimpleCSV

 

На этом импорт завершен. Если у вас получиться выполнить его, то экспорт и обновление особого труда вызвать не должны, т.к. там все проще.

Мы рассмотрели наиболее простой случай массовой работы с товарами. При использовании всех возможностей VirtueMart задача значительно усложняется, но выполнить ее возможно, главное – не отступать

Данная статья по редактированию шаблона VirtueMart является завершающей, в ней я расскажу про две оставшиеся папки шаблона order_emails и pages. Также советую ознакомиться со статьями VirtueMart – интернет-магазин на Joomla. Часть 19. Редактирование шаблона VirtueMart (Начало). и VirtueMart – интернет-магазин на Joomla. Часть 20. Редактирование шаблона VirtueMart (Продолжение).

Начну, пожалуй, с папки order_emails. Как можно понять из названия, файлы этой папки отвечают за вид сообщений, отправляемых по E-mail. В папке всего 2 файла:

– confirmation_email.tpl.php этот файл наиболее важный. Он отвечает за внешний вид письма, отправляемого пользователю после оформления заказа. Думаю те, кто уже успел познакомиться с содержимым данного файла, согласятся, что, открывая его, ожидаешь увидеть нечто другое, совершенно не то, что видишь. Лично я, впервые открывая этот файл, почему-то надеялся увидеть некое подобие письма, ну или хотя бы какой-то текст из него, а увидел гору кода, без намека похожести на письмо. По началу это вводит в ступор, но если немного разобраться, все становится не так уж и сложно. Письмо, в нашем случае, это html-страница, формируемая таблицами и php-вставками. Уж не знаю почему, но в этом файле разработчики VirtueMart соизволили снабдить код комментариями (сами, наверное, начали путаться в том, что там написали :-)), которые существенно облегчают поиск нужных частей письма подтверждения. Комментарии, конечно, на английском, но читать их нужно обязательно, так что тем, кто «дон’т спик инглиш» гугл транслейтор в помощь.

– enquiry_email.tpl.php данный файл также отвечает за внешний вид письма, но совершенно другого. Те, кто уже достаточно близко познакомился с VirtueMart, знают, что в нем есть возможность использования поля «Задайте вопрос по этому товару» . Ссылка, ведущая на некоторое подобие формы обратной связи, позволяющей задать вопрос, относящийся к конкретному товару интернет-магазина.

 

Редактирование шаблона VirtueMart

 

 

Данный файл отвечает за вид письма с этим вопросом.

С папкой order_emails закончили. Теперь перейдем к папке pages.

Папка pages содержит в себе довольно много файлов, отвечающих за внешний вид как бы отдельных страниц VirtueMart. Т.е. не кусочка кода на станице, а чего-то целого… Непонятно получилось… Ну да ладно, при разборе страниц все прояснится.

 

– account.index.tpl.php шаблон основной страницы редактирования учетной записи зарегистрированного пользователя. Эта страница доступна только зарегистрированным пользователям. Для доступа к ней нужно перейти по ссылке «Управление учетной записью».

 

Редактирование шаблона VirtueMart

 

 

– account.billing.tpl.php шаблон станицы редактирования контактной информации и информации об оплате зарегистрированного пользователя. Попасть на эту страницу можно, перейдя по ссылке «Управление учетной записью» –> «Контактная информация плательщика»

 

Редактирование шаблона VirtueMart

 

 

– account.order_details.tpl.php шаблон страницы информации о каком-либо заказе зарегистрированного пользователя. Попасть на эту страницу можно, перейдя по ссылке «Управление учетной записью» –> «Информация о заказе» (Вид)

 

Редактирование шаблона VirtueMart

 

 

 

account.shipping.tpl.php шаблон страницы информации о доставке зарегистрированного пользователя. Попасть на эту страницу можно, перейдя по ссылке «Управление учетной записью» –> «Информация о доставке»

 

Редактирование шаблона VirtueMart

 

 

 

account.shipto.tpl.php шаблон страницы добавления адреса доставки зарегистрированного пользователя. Попасть на эту страницу можно, перейдя по ссылке «Управление учетной записью» –> «Информация о доставке» –> «Добавить адрес»

 

Редактирование шаблона VirtueMart

 

 

 

– checkout.thankyou.tpl.php – шаблон страницы последнего шага оформления заказа.

 

Редактирование шаблона VirtueMart

 

 

 

– shop.ask.tpl.php – шаблон формы " Задайте вопрос по этому товару"

 

Редактирование шаблона VirtueMart

 

 

 

– shop.cart.tpl.php – даже не знаю, как и назвать этот шаблон… короче говоря, смотрим рисунок:

 

Редактирование шаблона VirtueMart

 

 

 

– shop.infopage.tpl.php шаблон страницы контактной информации о магазине. Попасть на нее можно, зайдя на страницу любого товара и кликнув по ссылке «Информация о продавце»

 

Редактирование шаблона VirtueMart

 

 

– shop.manufacturer.tpl.php шаблон страницы информации о производителе. Попасть на нее можно, зайдя на страницу любого товара и кликнув по ссылке «( Manufacturer )» (производитель).

 

Редактирование шаблона VirtueMart

 

 

 

shop.waiting_list.tpl.php – файл шаблона запроса на уведомление о появлении товара в случае его отсутствия. Уф, как получилось… Проще говоря это вот что: если в настройках VirtueMart стоит галочка «Проверять наличие на складе?», то в случае отсутствия товара, при нажатии кнопки «Заказать» пользователь будет перенаправлен на страницу, где ему объясняют, что пока товара нет, но он может оставить свой e-mail для уведомления, когда товар появится. Собственно, за эту страницу и отвечает файл shop.waiting_list.tpl.php.

 

Редактирование шаблона VirtueMart

 

 

 

– shop.waiting_thanks.tpl.php по аналогии с предыдущим файлом, этот файл отвечает за страницу, на которую будет перенаправлен пользователь после нажатия кнопки «Уведомить!»

 

Редактирование шаблона VirtueMart

 

 

Вот так выглядит устройство шаблона VirtueMart. После прочтения этой и двух предыдущих статей, вы должны понять, почему так сложно найти уже готовый шаблон VirtueMart. Да, в чем-то это устройство очень неудобно, но приходится работать с тем, что есть, т.к. достойных аналогов VirtueMart для Joomla пока нет.

Эта статья является продолжением статьи VirtueMart – интернет-магазин на Joomla. Часть 19. Редактирование шаблона VirtueMart (Начало). В ней я расскажу о назначении файлов шаблона VirtueMart в двух из оставшихся четырех папок: common и product_details. Данная информация пригодится всем тем, кому требуется изменить внешний вид интернет-магазина, сделанного на VirtueMart, настроив его под себя.

 

 

Итак, в предыдущей статье мы рассмотрели шаблоны корзины, страницы списка товаров и оформления заказа VirtueMart. Далее остаются шаблоны fly-страницы товара, e-mail-сообщения и некоторых других мест интернет-магазина. Начнем рассмотрение с fly-страницы товара, т.к. все дальнейшее описание будет строиться именно на ней.

Редактирование шаблона VirtueMart. Подпапка product_details.

Папка product_details содержит шаблоны возможных вариантов страницы товара и дополнительных включений в нее.

Шаблоны страницы:

1) flypage.tpl.php – стандартный шаблон страницы товара. Выглядит, как показано на рисунке:

Редактирование шаблона VirtueMart

Данный шаблон задается в настройках VirtueMart и в настройках категории товаров. В этом шаблоне редактируется положение всех общих элементов, но не сами элементы.

2) flypage_images.tpl.php – шаблон, предназначенный для отображения страницы товара с дополнительными изображениями. Кстати сказать, дополнительные изображения добавляются не в настройках товара, а при клике в списке товаров по ссылке в столбце «Медиа».

Редактирование шаблона VirtueMart

3) flypage_lite_pdf.tpl.php – данный шаблон предназначен для удобного конвертирования в PDF. Он не показывает некоторые элементы интернет-магазина, например, кнопку добавления в корзину, и должен использоваться когда VirtueMart работает только как каталог.

Редактирование шаблона VirtueMart

4) flypage_new.tpl.php – просто другой вид страницы. См. рисунок:

Редактирование шаблона VirtueMart

5) flypage-ask.tpl.php – просто другой вид страницы. См. рисунок:

Редактирование шаблона VirtueMart

6) garden_flypage.tpl.php – изображение справа. См. рисунок:

Редактирование шаблона VirtueMart

Хочу заметить, что данные шаблоны первоначально выглядят ужасно и требуют редактирования кода, для создания приятного глазу вида страницы товара. Для редактирования требуются знания html и CSS. Знание PHP здесь не критично.

Примечание

1) Вы смотрите страницу товара в браузере

2) Изменяете шаблон страницы товара в настройках категории

3) Обновляете страницу браузера

4) Видите все тот же старый шаблон.

В чем дело?

Дело в том, что шаблон задается в ссылке на страницу товара. При изменении шаблона в настройках магазина вид ссылки на страницу товара из категории изменяется, т.о. при переходе из категории, мы увидим новый шаблон, но при обновлении страницы ссылка не изменяется, потому видим старый. Будьте внимательны!

Таковы стандартные шаблоны страницы товара VirtueMart. Из качество оставляет желать лучшего, но в целом, они содержат в себе все необходимое для тонкой настройки.

В папке product_details имеется еще подпапка includes. Рассмотрим содержащиеся в ней файлы:

1) addtocart_advanced_attribute.tpl.php – шаблон отображения свойств и атрибутов товара на странице товара VirtueMart

Редактирование шаблона VirtueMart

2) addtocart_custom_attribute.tpl.php – шаблон отображения свойств, которые вводятся вручную. См. рисунок:

Редактирование шаблона VirtueMart

3) addtocart_drop.tpl.php – отвечает за выпадающий список атрибутов и свойств. Особо тут редактировать нечего.

4) addtocart_form.tpl.php – собственно, форма добавления товара в корзину. См. рисунок

Редактирование шаблона VirtueMart

5) addtocart_list_multi.tpl.php – с этим файлом вообще долгая история. Он отвечает за форму добавления товара в корзину, но применимо:

1) к дочерним товарам (я про это).

2) при отображении кнопки добавления сразу для всех дочерних товаров (включается в Товар –> Показать опции –> Установить «Использовать список "бокс" для зависимых товаров» – > Выбрать «Кнопка "Добавить в корзину" для каждого зависимого товара»). Такая вот мутотень. Вообще говоря, эта опция только для очень искушенных пользователей т.к.:

а) типы товаров уже сами по себе очень сложны для понимания

б) настройки, описанные мной выше нельзя применить сразу ко всем товарам, можно только к каждому отдельно. Конечно, есть SQL-запросы, но все это для продвинутых Web-мастеров.

Редактирование шаблона VirtueMart

6) addtocart_list_single.tpl.php – тоже самое, что и addtocart_list_multi.tpl.php, но: ….. «Одна кнопка "Добавить в корзину"».

Редактирование шаблона VirtueMart

Чтобы было более понятно как добиться такого отображения привожу рисунок с настройками:

Редактирование шаблона VirtueMart

7) quantity_box_general.tpl.php – шаблон формы ввода количества товара перед добавлением в корзину:

Редактирование шаблона VirtueMart

8) quantity_box_radio.tpl.php – шаблон формы ввода количества товара перед добавлением в корзину, при стиле отображения «ratio». Этот стиль отображения количества задается в настройках товара, но как-то плохо работает. Мне не удалось толком настроить отображение через radio, если у кого получится – пишите.

На этом шаблоны fly-страницы товара VirtueMart заканчиваются. Правда некоторые из них еще будут перекликаться с шаблонами из папок common и pages, которые мы рассмотрим далее.

 

Редактирование шаблона VirtueMart. Подпапка common.

Судя по названию в этой подпапке содержаться шаблоны VirtueMart, общие для многих частей интернет-магазина. Сюда  входят аж 18 файлов:

1) availability.tpl.php – шаблон информации о доступности товара:

Редактирование шаблона VirtueMart

2) buttons.tpl.php – шаблон иконок печати, pdf, сообщения:

Редактирование шаблона VirtueMart

3) categoryChildlist.tpl.php – шаблон отображения подкатегорий данной категории на странице товара. Рисунок скажет нагляднее:

Редактирование шаблона VirtueMart

4) couponField.tpl.php – как видно из названия, этот шаблон отвечает за поле ввода купона, которое находится в разделе корзины:

Редактирование шаблона VirtueMart

5) featuredProducts.tpl.php – шаблон рекомендуемых товаров, отображающихся на  странице списка товаров категории (browse)

Редактирование шаблона VirtueMart

6) login_form.tpl.php – шаблон формы авторизации после нажатия ссылки «оформить заказ» в корзине:

Редактирование шаблона VirtueMart

7) minicart.tpl.php – шаблон мини-корзины, которая отображается через главный модуль VirtueMart.

8) moreImages.tpl.php – пустой файл

9) pathway.tpl.php – как понятно из названия это шаблон пути к товару. Отображение этого пути должно быть включено в настройках шаблона VirtueMart.

Редактирование шаблона VirtueMart

10) price.tpl.php – шаблон цены товара. Относится как к странице товара, так и к странице категорий товаров! Именно в нем определяется вид зачеркнутых цен.

11) productsnapshot.tpl.php – шаблон сопутствующих товаров, отображаемых на странице товара. Для того, чтобы они показывались, нужно задать их в настройках товара, вкладка «Сопутствующие товары».

Редактирование шаблона VirtueMart

12) recent.tpl.php – шаблон недавно просмотренных товаров на странице товара:

Редактирование шаблона VirtueMart

13) relatedProducts.tpl.php – данный файл отвечает за тоже, что и файл productsnapshot.tpl.php, только если первый выводит именно единичный товар, то этот выводит список тех файлов. Бррр… Получилось ужасно. Еще раз. Файл productsnapshot.tpl.php это товар, а файл relatedProducts.tpl.php – цикл создающий несколько товаров из productsnapshot.tpl.php. В общем, как-то так. Не знаю зачем было делать все так сложно, но мы имеем именно такую структуру.

14) reviewform.tpl.php – шаблон формы добавления отзыва на странице товара.

15) reviews.tpl.php – шаблон отзывов на странице товара.

16) shopIndex.tpl.php – заголовок главной страницы VirtueMart.

17) voteform.tpl.php – теоретически этот файл должен отвечать за форму голосования за товар на странице товара(там, где звездочки), но у меня не отвечает. Код выглядит как-то по-другому, не так как должен. Честно говоря, не знаю, почему так. Если кто разберется – напишите, буду признателен.

18) votes_allvotes.tpl.php – шаблон отображения голосов за товар на странице списка товаров (browse)

Редактирование шаблона VirtueMart

Следующая статья будет завершающей в истории про редактирование шаблона. В ней я расскажу про оставшиеся папкиorder_emails и pages.

Наверное каждый, кому приходилось подгонять дизайн VirtueMart под определенный шаблон или под требования заказчика, знает, какое это муторное занятие. Основная проблема заключается в том, что практически каждый элемент VirtueMart, будь то страница товара, категории, кнопка «Добавить в корзину» и.т.д., хранится в отдельном файле. Все файлы подключаются друг к другу иерархически. Да, с одной стороны это удобно, т.к. не нужно выискивать каждый элемент в огромном коде, но с другой стороны, человек, мало знакомый с VirtueMart просто замучается искать нужный файл. Для того, чтобы немного упростить нелегкую жизнь веб-мастеров, делающих интернет-магазины, я решил написать эту статью, рассказав в ней о назначении всех файлов шаблона VirtueMart с графическими иллюстрациями.

 

Итак, для начала нам нужно увидеть общую структуру шаблона VirtueMart. Т.к. интернет-магазин приложение довольно сложное, то и структура получается соответствующая.

Шаблон VirtueMart состоит из следующих основных составляющих:

1) Шаблон категории товаров(browse) – данный шаблон отвечает за отображения списка товаров в определенной категории.

2) Шаблон страницы товара(flypage) – данный шаблон отвечает за отображение страницы с отдельным товаром, той, которая появляется при клике по товару из категории товаров.

3) Шаблон корзины товаров (basket) – шаблон, отвечающий за внешний вид страницы, с изображением корзины товаров(не путать с модулем корзины товаров). Здесь речь идет о той странице, которая появляется после клика по ссылке «Показать корзину». Пример будет ниже.

4) Шаблон оформления заказа (checkout) – шаблон отвечающий за страницы, которые показываются в процессе оформления заказа, а именно выбор методов оплаты, доставки, регистрация и.т.д

5) Разные дополнительные шаблоны – самый большой класс шаблонов, отвечающих за всякие мелочи интернет-магазина. Подробно он будет рассмотрен ниже.

Пять шаблонов, описанных выше – понятие абстрактное, поскольку каждый из них состоит из нескольких файлов. Ниже рассмотрим их подробно.

 

Редактирование шаблона VirtueMart. Основной шаблон.

По умолчанию в VirtueMart встроен только один основной шаблон. Он называется Default. На сегодня подобрать другие шаблоны для VirtueMart довольно сложно, поскольку все они в основном коммерческие, да и тех очень мало. Таким образом, чаще всего новый шаблон приходится получать путем редактирования стандартного.

Стандартный шаблон находится в папке

components\com_virtuemart\themes\default

Сразу хочу отметить, что редактирование данного шаблона не несет изменений, связанных с ядром VirtueMart, поэтому проблем с обновлением компонента в дальнейшем не будет.

Стандартный шаблон состоит из следующих файлов и папок:

images – папка, содержащая все изображения шаблона (не путать с изображениями товаров и категорий. Их тут нет.);

templates – папка, содержащая все шаблоны страниц шаблона(получилось масло масляное… Скажем так, в основном шаблоне VirtueMart содержаться подшаблоны, отвечающие за вид различных элементов интернет-магазина);

admin.css – этот и два следующих файла являются таблицами стилей шаблона VirtueMart. Все CSS-стили шаблона содержаться в этих файлах.

– admin.styles.css

– theme.css

– theme.js, theme.prototype.js –скрипты шаблона. Отвечают за создание различных эффектов.

theme.config.php – конфигурационный файл шаблона. Содержит некоторые настройки шаблона VirtueMart по умолчанию(по аналогии с configuration.php Joomla)

theme.php – файл функций шаблона. Позволяет добавлять к шаблону дополнительные функции и классы (для тех, кто хорошо владеет php).

theme.xml – xml-файл шаблона. Создан по аналогии с xml-файлами шаблонов Joomla.

Во всей вышеописанной структуре прежде всего нас интересует папка templates, т.к. именно в ней храняться шаблоны всех элементов шаблона Default.

Далее рассмотрим ее подробно.

 

Редактирование шаблона VirtueMart. Папка templates.

Папка Templates состоит из семи подпапок:

basket – внешний вид корзины с товарами;

browse – внешний вид категорий товаров;

checkout – внешний вид процесса оформления заказа;

common – шаблоны, общие для всего магазина;

order_emails – шаблоны писем, посылаемых в процессе работы с магазином;

pages – шаблоны дополнительных страниц;

product_details – внешний вид страницы товара.

Теперь рассмотрим каждый из шаблонов подробно.

 

Редактирование шаблона VirtueMart. Подпапка basket.

Подпапка basket содержит 4 шаблона, которые делятся на 2 вида:

– b2b (Business to Business)

– b2c (Business to Customer)

Вид выбирается в зависимости от того, включена или отключена в настройка опция «Показать "(включая XX% налогов)", когда они применяются?». Если она включена, то используется вид b2c, иначе b2b.

1) basket_b2b.html.php – шаблон корзины вида b2b.

2) basket_b2с.html.php – шаблон корзины вида b2с. См. рисунок ниже:

 

Шаблон VirtueMart

 

3) ro_basket_b2b.html.php – шаблон корзины вида b2b только для чтения (read-only). Показывается на последнем шаге оформления заказа, где пользователь уже не может изменить введенные данные.

4) ro_basket_b2c.html.php – шаблон корзины вида b2c только для чтения (read-only). Показывается на последнем шаге оформления заказа, где пользователь уже не может изменить введенные данные.

 

Шаблон VirtueMart

 

Редактирование шаблона VirtueMart. Подпапка browse.

Как я уже писал выше, шаблоны данной подпапки используются для вывода списка товаров категории. Всего в этой подпапке 6 файлов и еще одна подпапка. Рассмотрим их по порядку:

1) browse_1.php – шаблон, предназначенный для отображения списка по одному товару в строке (кроме того, в категории должно быть указанно соответствующее количество товаров в строке).

 

Шаблон VirtueMart

 

2) browse_2.php – шаблон, предназначенный для отображения списка по два товара в строке (кроме того, в категории должно быть указанно соответствующее количество товаров в строке).

 

Шаблон VirtueMart

 

3) browse_3.php, browse_4.php, browse_5.php – 3, 4 и 5 товаров в строке соответственно.

4) browse_lite_pdf.php – шаблон, предназначенный  для легкой конвертации списка товаров в формат PDF. Отличается от предыдущих прежде всего тем, что не содержит в себе каких-либо пользовательских данных, например, рейтинга.

 

Шаблон VirtueMart

 

Если с файлами browse все довольно просто, то с подпапкой includes могут возникнуть проблемы. Рассмотрим содержащиеся в ней шаблоны(они все относятся именно к странице browse!):

1) addtocart_form.tpl.php – шаблон  кнопки добавления на карту;

 

Шаблон VirtueMart

 

2) browse_header_all.tpl.php – шаблон заголовка страницы в списке всех товаров

 

Шаблон VirtueMart

 

3) browse_header_category.tpl.php – шаблон заголовка страницы browse +RSS-иконка, в списке товаров категории

 

Шаблон VirtueMart

 

4) browse_header_keyword.tpl.php – шаблон заголовка страницы в списке товаров при поиске. Работает только в обычном поиске, но не в расширенном поиске по характеристикам;

 

Шаблон VirtueMart

 

5) browse_header_manufacturer.tpl.php – шаблон заголовка страницы в списке производителей товаров. Например, установив модуль отображения производителей и перейдя в нем в какую-либо категорию производителей к заголовку можно применить данный шаблон.

 

Шаблон VirtueMart

 

6) browse_layouttable.tpl.php (browse_listtable.tpl.php, browse_notables.tpl.php) – в VirtueMart список товаров browse может быть построен тремя способами:

а) с помощью таблиц:

 

Шаблон VirtueMart

 

б) плоским списком (по одному товару в строку с помощью таблиц):

 

Шаблон VirtueMart

 

в) без таблиц (с использованием DIV’ов):

 

Шаблон VirtueMart

 

Выбрать способ отображения можно в настройках шаблона VirtueMart («VirtueMart» –> «Настройки» –> «Сайт» –> «Выберите шаблон для магазина»(настройки) –> «Product List Style»). Данные три шаблона как раз отвечают за способ построения списка товаров.

Здесь очень тонкая грань с шаблонами browse_x. Важно ее понимать. Шаблоны browse_x отвечают за отображение одного товара в списке, а данные 3 шаблона – собственно, за формирование списка. Т.е. они как бы много раз повторяют шаблон browse_x.

7) browse_orderbyfields.tpl.php – файл, содержащий коды для возможных полей сортировки товаров на странице browse. Редактировать там особо нечего.

8) browse_orderbyform.tpl.php – внешний вид формы сортировки на странице browse;

9) browse_pagenav.tpl.php – шаблон отображения пагинации (номеров страниц со ссылками следующая, предыдущая и.т.д.) для списка товаров на странице browse

 

Шаблон VirtueMart

 

10) browse_searchparameter_form.tpl.php – шаблон отображения заголовка при расширенном поиске по дополнительным характеристикам.

 

Шаблон VirtueMart

 

 

Редактирование шаблона VirtueMart. Подпапка checkout.

Как упоминалось выше в данной подпапке содержаться шаблоны процесса оформления заказа. Рассмотрим их подробно:

1) checkout_bar.tpl.php – шаблон полоски процесса оформления заказа

 

Шаблон VirtueMart

 

2) customer_info.tpl.php – шаблон информации о покупателе на этапе «Адрес доставки»

 

Шаблон VirtueMart

 

 

3) get_final_confirmation.tpl.php – шаблон ранее введенной информации на этапе «Завершить заказ»

 

Шаблон VirtueMart

 

 

4) get_payment_method.tpl.php – шаблон заголовка выбора способа оплаты на этапе «Способ оплаты»

 

Шаблон VirtueMart

 

 

5) get_shipping_address.tpl.php – шаблон выбора адреса доставки на этапе «Адрес доставки»

 

Шаблон VirtueMart

 

6) get_shipping_method.tpl.php – шаблон заголовка выбора способа доставки на этапе «Варианты доставки»

 

Шаблон VirtueMart

 

 

 

7) list_payment_methods.tpl.php – шаблон выбора способа оплаты на этапе «Способ оплаты»

 

Шаблон VirtueMart

 

 

8) list_shipping_methods.tpl.php – шаблон выбора способа доставки на этапе «Варианты доставки»

 

Шаблон VirtueMart

 

 

9) list_shipto_addresses.tpl.php – шаблон списка адресов доставки на этапе «Адрес доставки»

 

Шаблон VirtueMart

 

10) login_registration.tpl.php – шаблон страницы «Оформить заказ» для незарегистрированных пользователей.

 

Шаблон VirtueMart

 

Мы разобрали три подпапки с шаблонами. Остается еще четыре. О них будет рассказано в следующей статье по VirtueMart.

Мне часто задают вопросы о том, как сделать, казалось бы, элементарную вещь – вывести категории товаров VirtueMart с изображениями на главной странице в виде таблицы, например, из 3 колонок. Такая, вроде простая, задача решается в VirtueMart отнюдь не просто. В этой статье я расскажу о том, как можно красиво вывести категории товаров VirtueMart на главную страницу сайта не прибегая к использованию ссылки на компонент(главную страницу VirtueMart).

Начнем с того, что определим для себя четко, что нужно сделать. Я подразумеваю вывод категорий в виде, показанном на рисунке:

Категории VirtueMart

Всего есть два варианта реализации подобной задачи, которые я знаю:

1) использовать в качестве главной страницы сайта главную страницу VirtueMart;

2) использовать сторонний модуль выводящий категории VirtueMart(т.к. стандартный выводит только список категорий без изображений).

Каждый из этих способов достоин внимания, поэтому я подробно расскажу и о том и о другом.

Использование в качестве главной страницы сайта главной страницы VirtueMart.

Этот метод используют многие web-мастера. Суть его в том, что в главное меню добавляется ссылка на компонент VirtueMart, которая ведет на, так называемую, главную страницу VirtueMart. Данная ссылка ставится на первое место в mainmenu и устанавливается главной станицей по умолчанию. Таким образом, при заходе на сайт, пользователи попадают на главную станицу VirtueMart. Данный способ неплох, но у него есть несколько очевидных недостатков. Во-первых, шаблон главной страницы редактируется в большей степени в коде, а не настройками, хотя кое-что можно настроить зайдя в «VirtueMart» –> «Настройки» –> Вкладка «Сайт» –> Окно «Вид» –> Ссылка «Настройки».

Файл шаблона главной страницы:

1
components\com_virtuemart\themes\[имя шаблона]\templates\common\shopIndex.tpl.php

Файл шаблона категорий главной страницы:

1
components\com_virtuemart\themes\[имя шаблона]\templates\common\categoryChildlist.tpl.php

Во-вторых, иногда требуется вывести на главной странице не только категории, но и какой-нибудь приветствующий текст, либо последние новости или что-то еще. В таком случае идеально подходит компонент главной страницы Joomla, но не VirtueMart.

Использование стороннего модуля, выводящего категории VirtueMart.

Вывод категорий VirtueMart через модуль, конечно, гораздо удобнее. Модуль можно вставить в любую позицию или даже в любое место в статье, показываемой на главной странице. Но когда я стал искать подобный модуль, то был крайне удивлен, что выбирать практически не из чего. Решение такой простой задачи, как вывод категорий товаров VirtueMart с картинками в модуле оказалось совсем не просто найти. Лучшим модулем, который я нашел, был «VirtueMart category list» от www.phoca.cz. Модуль оказался простейшим, но выводил товары не очень красиво. В частности, название категории было справа от изображения, что выглядело ужасно.

Я немного переделал этот модуль, приведя вывод категорий к виду, показанному на рисунке в начале статьи.

Расскажу немного о настройках модуля. Все они показаны на следующем рисунке:

Категории ViruteMart

Number of Columns (количество колонок) – здесь задается количество колонок, или количество товаров, показываемых в одной строке;

Display Image (показывать изображение) – здесь можно выбрать отображение уменьшенного изображения для категорий – «Yes(Thumbnail)»(уменьшенные изображения категорий должны существовать), отображение категорий с маленькими картинками папок – «Yes(Category)», или без изображений;

Display Categories (показывать категории) – здесь можно выбрать отображение либо всех категорий товаров, либо только корневых категорий (в этом случае подкатегории не показываются).

Остальные настройки аналогичны всем другим модулям Joomla.

Скачать данный модуль вы можете в конце статьи.

Оформление главной страницы с использованием категорий VirtueMart.

Теперь поговорим о оформлении главной страницы. Для начала, я должен сказать, что для того, чтобы все категории Virtuemart, выводимые через модуль, выглядели ровно и красиво, все картинки категорий должны иметь одинаковый размер. Хотя речь здесь идет об уменьшенных изображениях и если они формируются автоматически, то размер в любом случае будет одинаковым.

Примечания:

1) Под словом «размер» я понимаю разрешение изображения в пикселях (например, 150x150 px);

2) Задать размер для мини-изображений по умолчанию можно в  «Настройки» –> Вкладка «Сайт» –> ширина и высота мини-изображения соответственно.

Второй момент – вывод категорий где-нибудь в тексте главной страницы. Предположим, что основное содержимое главной не изменяется и должно включать в себя категории товаров. Для того, чтобы реализовать подобный функционал нам нужно:

1) Настроить главную страницу таким образом, чтобы на ней была показана только одна статья без всяких дополнительных кнопок и ссылок. Для этого идем в «Главное меню» и кликаем по ссылке «Главная». После этого откроется окно, в правой части которого можно задать все необходимые параметры.

Категории ViruteMart

Подробно останавливаться не буду, т.к. это стандартные настройки Joomla, скажу лишь, что основные параметры должны быть установлены, как на рисунке выше.

2) Теперь необходимо оставить для отображения на главной странице только один материал. Отображение на главной у всех остальных должно быть отключено. Это делается простой установкой опции в менеджере материалов.

3) Итак, у нас есть одна статья, которая отображается на главной странице сайта, и при этом выглядит как простой текст (т.к. иконки, даты создания и изменения, авторы, и.т.д. мы отключили в пункте 1). Остается лишь наполнить эту страницу необходимой информацией и вывести в ней модуль категорий товаров VirtueMart с картинками. Если с наполнением проблем быть не должно, то с выводом могут возникнуть трудности, т.к. многие не знают как вывести модуль в тексте статьи. Для того, чтобы сделать это, следуем пунктам ниже:

а) в менеджере плагинов нужно опубликовать плагин «loadmodule» или «Содержимое - Загрузка модуля в Материал»;

б) В настройках нашего модуля, в поле «Позиция» мы вписываем(!!!) любое название нашей новой позиции, например «mainpage». Главное, чтобы оно не совпадало с уже существующими позициями модулей. После этого сохраняем изменения.

в) В тексте статьи, в предполагаемом месте вывода списка категорий товаров вписываем

1
{loadposition mainpage}

Либо любое другое название позиции, которое вы задали в предыдущем пункте.

Сохраняем статью.

После этих манипуляций в приветственном тексте магазина, на главной странице, появится список категорий товаров с изображениями, что придаст вашему интернет-магазину красивый внешний вид и удобство навигации.

Дополнительные файлы: модуль VirtueMart category list redesigned by Wedal

Одной из важнейших составляющих интернет-магазина является оплата покупаемых товаров. Все вопросы, касающиеся денег, требуют особого внимания. Большим минусом VirtueMart является то, что все предустановленные системы оплаты ориентированны на Запад и отечественные системы приходится устанавливать и настраивать вручную. Настройка систем оплаты, в отличие от настройки самого магазина, не так проста. В большинстве случаев требуются дополнительные модули оплаты (файлы, настроенные на взаимодействие с той или иной системой). К счастью, VirtueMart получил широкое распространение и у нас. Поэтому появились некоторые готовые решения для работы с отечественными системами оплаты.

Сегодня я расскажу о том, что такое ROBOKASSA и как ее подключить к VirtueMart в автоматическом и полуавтоматическом режиме.

Еще одной сложностью при работе с системами интернет-оплаты является их многообразие. Если особо не задумываться, то можно назвать сразу несколько очень известных систем: Webmoney, Яндекс.Деньги, rbkmoney, SMS-оплата, оплата через терминалы, банковский перевод, и.т.д. Поскольку конкуренция на рынке велика и постоянно увеличивается, владелец магазина заинтересован в том, чтобы подключить как можно больше способов оплаты (ведь разным покупателям удобно платить через разные системы, а кто-то и вообще может отказаться от покупки, если удобной для него системы не будет в магазине). На этом этапе начинаются сложности как у web-мастера, который делает магазин, так и у заказчика. Web-мастеру приходится подключать множество систем оплаты у каждой их которых свой собственный интерфейс, а заказчику – оформлять документы и улаживать юридические вопросы с каждой из систем, что, поверьте, тоже далеко не просто. Все это существенно замедляет и усложняет процесс разработки интернет-магазина.

Многие это понимали и среди них нашлись предприимчивые люди, которые придумали как решить вышеописанную проблему и при этом заработать. Одна из систем, предоставляющих подобные услуги – ROBOKASSA.

 

Что такое ROBOKASSA? Это что-то вроде посредника между платежными системами и интернет-магазинами. ROBOKASSA берет на себя все сложности, связанные с оформлением документов и подключением платежных систем. Таким образом, web-мастеру требуется подключить к интернет-магазину всего одну систему оплаты – ROBOKASSA, а заказчику оформить отношение всего с одной стороной – ROBOKASSA. При этом интернет-магазин получает возможность принимать оплату через все платежные системы, подключенные к робокассе, коих очень много. А владельцу магазина уже не нужно беспокоиться о безопасности, т.к. все денежные операции проводятся на сайте ROBOKASSA, т.к. интернет-магазин только отправляет запрос на оплату и получает ответ об успешном или неудачном процессе оплаты.

Комиссия ROBOKASSA составляет ~5% от размера платежа (стоимости покупки). Это достаточно много, но допустимо. Особенно для небольших интернет-магазинов. Но при этом можно избавиться от многих проблем, описанных выше. Поэтому ROBOKASSA стала довольно популярной системой. Подключение ROBOKASSA к VirtueMart рассмотрим далее.

Многие модули подключения VirtueMart к ROBOKASSA продаются за деньги. Стоимость составляет порядка 600-1000руб. Если для вас это не деньги, то можно и купить такой модуль, получив при этом тех. поддержку разработчика. Если лишнюю тысячу рублей тратить не хочется, предлагаю вашему вниманию два бесплатных способа подключения VirtueMart к ROBOKASSA: полуавтоматический и автоматический.

Подключение к VirtueMart оплаты через ROBOKASSA. Полуавтоматический режим.

Способ подключения VirtueMart к ROBOKASSA в полуавтоматическом режиме прост как две копейки, но имеет один существенный недостаток – после оплаты заказа покупателем статус товара не изменяется на «Оплачен» автоматически. Его должен изменить администратор магазина (после оплаты администратору магазина приходит на e-mail письмо от ROBOKASSA, что произведена оплата заказа с порядковым номером N. После этого администратор должен зайти в управление заказами, найти заказ N и изменить его статус на «Оплачен»). С одной стороны этот режим хорош тем, что все операции, связанные с деньгами и товаром, контролируются человеком, что, в целом, исключает возможность ошибки. С другой стороны довольно неудобно постоянно менять статусы вручную. К тому же это нужно делать довольно оперативно, т.к. до смены статуса покупателю не придет письмо о подтверждении оплаты и он может не понять прошла оплата удачно или нет.

Использовать этот способ или автоматический, каждый решит для себя сам, а я опишу как его подключить.

В VirtueMart перейдем в «Магазин» –> «Способы оплаты». После чего появится список с доступными способами оплаты.

 

ROBOKASSA

 

Отключим все ненужные способы, кликая по зеленым галочкам в соответствующих строках списка.

После того, как ненужные способы оплаты отключены, добавим новый способ, кликнув по кнопке «Новый», которая находится над списком. Появится форма добавления способа оплаты, показанная на следующем рисунке:

 

ROBOKASSA

 

Заполняем ее следующим образом:

– Название способа оплаты: ROBOKASSA

– Код: ROBO

– Класс имени платежа: ps_payment

– Способ оплаты: HTML-форма (например, для PayPal)

– Группа покупателей: default

Далее – по желанию.

После этого переходим на вкладку «Настройки» (смотрите самый верх заполняемой формы) и в поле «Дополнительная информация по платежу» вводим следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?
// 1.
// Оплата заданной суммы с выбором валюты на сайте мерчанта
// Payment of the set sum with a choice of currency on merchant site 
 
// регистрационная информация (логин, пароль #1)
// registration info (login, password #1)
$mrh_login = "логин в ROBOKASSA";
$mrh_pass1 = "пароль#1 в ROBOKASSA";
 
// номер заказа
// number of order
$inv_id = $db->f("order_id");
 
// описание заказа
// order description
$inv_desc = "ROBOKASSA Advanced User Guide";
 
// сумма заказа
// sum of order
$out_summ = $db->f("order_total");
 
// тип товара
// code of goods
$shp_item = 1;
 
// предлагаемая валюта платежа
// default payment e-currency
$in_curr = "PCR";
 
// язык
// language
$culture = "ru";
 
// кодировка
// encoding
$encoding = "utf-8";
 
// формирование подписи
// generate signature
$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item");
 
// HTML-страница с кассой
// ROBOKASSA HTML-page
print "<html><script language=JavaScript ".
"src='https://www.roboxchange.com/mrh_summpreview.asp?".
"MrchLogin=$mrh_login&OutSum=$out_summ&InvId=$inv_id&IncCurrLabel=$in_curr".
"&Desc=$inv_desc&SignatureValue=$crc&Shp_item=$shp_item".
"&Culture=$culture&Encoding=$encoding'></script></html>";
?>
 

После этого сохраняем  внесенные настройки. Все. Модуль оплаты через ROBOKASSA в полуавтоматическом режиме установлен.

Хочу заметить, что все будет работать корректно только после активации аккаунта в ROBOKASSA.

Подключение к VirtueMart оплаты через ROBOKASSA. Автоматический режим.

Для того, чтобы после оплаты  статус заказа изменялся на «Оплачен» автоматически, требуется несколько другой модуль подключения, включающий дополнительные файлы. Скачать его можно в конце статьи.

При настройке модуля нам понадобятся следующие данные:

– Пароль #1: пароль №1 в личном кабинете ROBOKASSA

– Пароль #2: пароль №2 в личном кабинете ROBOKASSA

При настройке ROBOKASSA следующие:

– Result URL: http://domen.ru/administrator/components/com_virtuemart/notify_rk.php

– Success URL: http://domen.ru/administrator/components/com_virtuemart/succes_rk.php

– Fail URL:http://domen.ru/administrator/components/com_virtuemart/succes_rk.php

– Метод отсылки данных по Result URL: POST

– Метод отсылки данных по Success URL: POST

– Метод отсылки данных по Fail URL: POST

Естественно, вместо «domen.ru» нужно подставить доменное имя вашего сайта.

Форма с заполняемыми данными показана на рисунке (раздел «Администрирование»)

 

ROBOKASSA

 

После настройки аккаунта ROBOKASSA нужно внести данные для авторизации в файлы модуля:

– notify_rk.php: пароль #2 в 3 и 260 строке;

– succes_rk.php: пароль #1 в 4 строке и доменное имя в 28 строке;

– ps_rk_out.php: логин и пароль #1 в 24 и 25 строках;

После того, как файлы отредактированы, их нужно добавить на сайт в соответствующие папки(можно просто скопировать папку Administrator в корень сайта. Файлы попадут на нужные места). Далее переходим к настройке модуля в VirtueMart.

Для настройки модуля переходим к списку модулей оплаты «Магазин» –> «Способы оплаты» и добавляем новый модуль. Форму заполняем следующим образом:

– Название способа оплаты: ROBOKASSA

– Код: rk

– Класс имени платежа: ps_robokassa (появится после добавления файлов модуля на сайт)

– Способ оплаты: HTML-форма (например, для PayPal)

– Группа покупателей: default

Далее – по желанию.

После этого переходим на вкладку «Настройки» (смотрите самый верх заполняемой формы), заполняем появившиеся поля и в поле «Дополнительная информация по платежу» вводим следующий код:

1
<?php require_once( CLASSPATH. 'payment/ps_rk_out.php' );?>

На этом настройка закончена. Остается только все проверить и протестировать оплату. Все будет работать корректно только после активации аккаунта в ROBOKASSA.

Дополнительные файлы: Модуль оплаты ROBOKASSA

Все способы доставки в VirtueMart содержаться в отдельных модулях. Посмотреть их список можно перейдя в «Магазин» –> «Список модулей доставки». Список модулей доставки показан ниже:

Спрашивай

Как видно, большинство вариантов доставки рассчитано на западные магазины, но есть два модуля, подходящие для России и при этом покрывающие необходимый функционал.

Это модули «Standard Shipping Module» (Стандартный Модуль Доставки) и «Flex» (гибкая доставка). Ниже рассмотрим подробно каждый из них…

 

Доставка в VirtueMart. Стандартный модуль доставки.

Стандартный модуль доставки будет подходящим в большинстве случаев. Его главное достоинство заключается в том, что он универсален. Это достигается возможностью создавать неограниченное количество вариантов и тарифов доставки. Единственный недостаток модуля – варианты и тарифы добавляются вручную, что достаточно трудоемко при их большом количестве.

Рассмотрим подробнее, что такое варианты и тарифы доставки. Хотя названия и говорят сами за себя, нужно внести некоторые пояснения. Вариант доставки – это, непосредственно, способ, которым будет доставлен товар. Например, «Курьер» или «Почта России». Тариф доставки – это стоимость доставки данным вариантом доставки, изменяющаяся в зависимости от различных условий, например региона доставки, веса доставки, габаритов доставки и.т.д. Каждый вариант доставки может содержать в себе множество тарифов доставки. Чтобы было понятнее, приведу пример:

Вариант доставки –> Тариф доставки –> Стоимость доставки

---------------------------------------------------------------------------------

Почта России –> Московская область, до 5 кг –> 50руб

Почта России –> Московская область, 5-10 кг –> 100руб

Почта России –> Московская область, 10-50 кг –> 300руб

Почта России –> Дальний восток, до 5 кг –> 200руб

Почта России –> Дальний восток, 5-10 кг –> 400руб

Почта России –> Дальний восток, 10-50 кг –> 1000руб

Курьер –> Москва, размер не более 20х40х60 –> 100руб

Курьер –> Москва, размер не более 60х80х100 –> 300руб

Курьер –> Московская область, размер не более 20х40х60 –> 200руб

Курьер –> Московская область, размер не более 60х80х100 –> 500руб

---------------------------------------------------------------------------------

По умолчанию модуль активирован и имеет предустановленные варианты и тарифы доставки DHL и UPS. В большинстве случаев эти варианты нам не нужны и их можно удалить. Для того, чтобы удалить вариант доставки, он не должен содержать в себе тарифов, поэтому сначала нужно удалить все тарифы для DHL и UPS. Для этого нужно перейти к списку всех тарифов: «Доставка» –> «Тарифы доставки». Список тарифов показан ниже:

Далее отмечаем галочками все ненужные тарифы и жмем «Удалить». После того, как тарифы удалены, нужно перейти к списку вариантов доставки: «Доставка» –> «Варианты доставки». Список вариантов доставки показан ниже:

Теперь мы можем удалить ненужные варианты и добавить требуемые.

Для добавления нового варианта доставки жмем значок «Новый». После этого откроется форма показанная ниже:

Здесь добавляем вариант доставки(в поле «Компания-доставки») и порядок отображения. Я добавлю варианты «Курьер» и «Почта России». Жмем «Сохранить». Все. Вариант доставки создан.

Далее создаем тарифы доставки. Для этого нужно снова перейти к списку тарифов доставки («Доставка» –> «Тарифы доставки») и нажать «Новый». Откроется форма добавления тарифов доставки, как показано ниже:

Все поля для заполнения здесь понятны и не требуют дополнительного разъяснения. Единственное, что стоит отметить, в выпадающем списке «Вариант доставки» доступны все варианты, созданные ранее. Их них нужно выбрать один, к которому будет относиться данный тариф.

После того, как все поля заполнены, жмем «Сохранить». Теперь, при оформлении заказа, на шаге «Доставка» для выбора будет доступен наши варианты «Курьер» и «Почта России» с созданными тарифами:

Аналогичным образом можно создать все требуемые варианты доставки с нужными тарифными ставками.

Доставка в VirtueMart. Гибкая доставка.

Единственный вариант, который не покрывает стандартный модуль доставки, это стоимость доставки, основанная на стоимости покупки. Для данного варианта применим модуль гибкой доставки. Также данный модуль подойдет в том случае, когда не хочется создавать множество вариантов доставки с разными тарифами, а требуется просто включить определенную стоимость доставки.

Для настройки модуля нужно перейти в «Магазин» –> «Список модулей доставки» и в строке с надписью «Flex» кликнуть по ссылке «Настроить вариант доставки». При этом откроется следующая форма:

Здесь всего 5 полей, доступных для заполнения:

– Charge flat shipping rate to this amount если сумма покупки меньше заданной величины, то стоимость доставки будет равна значению, заданному в поле Minimum Shipping Charge, если же сумма покупки больше заданной величины, то стоимость доставки будет равна проценту от суммы покупки, этот процент задается в поле Percentage to charge if total sale is over base;

– Minimum Shipping Charge – стоимость доставки при стоимости покупки менее, чем на Charge flat shipping rate to this amount;

– Percentage to charge if total sale is over base – процент, который составит стоимость доставки, от стоимости покупки, если стоимость покупки больше, чем Charge flat shipping rate to this amount;

Fixed Handling Charge если вы хотите использовать дополнительную фиксированную сумму для доставки, введите ее здесь. Она будет добавлена к стоимости доставки в любом случае;

– Класс налогов дополнительная плата за обработку.

После установки и сохранения всех настроек при оформлении заказа данный вариант будет выглядеть так:

Надпись на английском языке нас не устраивает. Чтобы поменять его на великий и могучий открываем файл administrator\components\com_virtuemart\classes\shipping\flex.php.

Находим строки 71 и 83:

$html .= "<label for=\"flex_shipping_rate\">Standard Shipping: ";

И заменяем на:

$html .= "<label for=\"flex_shipping_rate\">Стоимость доставки: ";

Если после этого на сайте вместо фразы отображаются кракозябры, то преобразуем файл flex.php в нужную кодировку. После этого страница выбора доставки будет выглядеть так:

Также стоит отметить, что лучше использовать только один из вышеописанных модулей доставки чтобы не водить покупателей в заблуждение. Для того, чтобы включить или отключить один из модулей идем в: «Настройки» –> «Настройки» –> Вкладка «Доставка» и снимаем/ставим галочки у соответствующих модулей.

На этом настройка закончена. После оформления заказа администратор интернет-магазина сможет увидеть какой способ доставки выбрал покупатель, а стоимость доставки будет включена в стоимость заказа .

Последние статьи