Недавно портфолио MODX Клуба пополнилось еще одним замечательным интернет магазином. В этот раз наше расширение ShopMODX было использовано для разработки интернет-бутика элитного шоколада и шоколадных подарков «Шоколадный Восторг»
?

В основе магазина — расширение ShopModx

ShopMODX в очередной раз показал себя, как гибкая платформа для создания интернет-магазинов. В процессе разработки было использовано много интересных решений, улучшающих функционал магазина. В этом обзоре я расскажу про некоторые из них.
Навигация.
Было решено вынести навигационную панель в левый сайдбар. Пользователь, попадая на сайт, сразу видит категории товаров и может быстро переходить из одной в другую. По сути это быстрый поиск, который позволяет отфильтровать товары по бренду, происхождению, упаковке и типам продукции.
Ну а для тех, кто еще не определился с выбором есть каталог товаров.
Также для облегчения навигации по сайту и поиска необходимых товаров была сделана форма сортировки, позволяющая отфильтровать товары по разным параметрам.
?
Сервис «Хочу в подарок»
Данный сервис позволяет посетителю создать быстрый пост «Хочу в подарок» на своей стене в популярных социальных сетях. Пост будет содержать ссылку на товар в магазине. Данный сервис позволяет получить дополнительных посетителей из социальных сетей и будет очень полезным для любого интернет-магазина.
Сервис «Мне нравится»
Позволяет посетителю сохранить понравившийся товар в закладки на сайте, чтобы позже иметь быстрый доступ к этому товару без необходимости поиска по каталогам. Замечательный сервис для магазинов с широким ассортиментом товаров. Похожие сервисы используются во всех крупных интернет магазинах, таких как Amazon.
Два платежных агрегатора
Мы интегрировали две крупные системы интернет-платежей: Робокасса и Единый кошелек для того, чтобы покупателю было легко оплатить заказанный товар.
Интеграция с сервисом доставки Multiship.ru
Такие товары как элитный шоколад часто приобретаются в подарок, и пользоваться почтой для доставки в этом случае не лучшее решение. Обычная почта не слишком заботится о бережной доставке товара, что может негативно отразиться на его внешнем виде. Было решено использовать сервис multiship.ru, который объединяет топ-15 курьерских служб доставки и доставит товар в любую часть России.
Мы связали сервис доставки multiship.ru и ShopMODX для того, чтобы обеспечить покупателей магазина «Шоколадный Восторг» быстрой и удобной доставкой. Причем процедура оформления заказа при этом остается простои и понятной. Все, что требуется от покупателя – указать свой город. ShopMODX предложит все варианты доставки в соответствии с опциями multiship.ru, будь то самовывоз из специальных точек в вашем городе или курьерская доставка до двери. Как видите, ShopMODX позволяет и такое…
?
Бутик «Шоколадный Восторг» — очередное подтверждение того, что ShopMODX является прекрасной платформой для создания сложных и функциональных интернет-магазинов. Наше расширение это не просто витрина, это функциональный магазин с бизнес логикой, который можно гибко подстраивать под любые задачи. MODX Клуб профессионально занимается созданием интернет магазинов, и Вы всегда можете обратиться к нам.
UPD: А еще красиво оформлены письма.
?
В наш репозиторий выложил новый пакет — EdinayaKassa. Это дополнительный модуль оплаты для нашей сборки ShopModxBox. Таким образом, теперь на сайте можно использовать помимо Робокассы и Единую Кассу.
В самое ближайшее время выйдет новый релиз ShopModxBox с уже установленным и настроенным компонентом EdinayaKassa, но если для тех, у кого уже работает наша сборка, под катом подробно опишу как установить и настроить этот компонент.
Следует иметь ввиду, что данный компонент рассчитывался только для работы с ShopModxBox, так что если вы его хотите использовать отдельно, то он годится скорее только в качестве примера.
Установка и настройка компонента EdinayaKassa.
1. Регистрируемся в ЕдинойКассе.
2. Качаем из нашего репозитория и устанавливаем данный компонент.
?
?
?
3. Создаем документы для работы компонента. Особое внимание сразу же обратите на соответствие ID-шников спецдокументов в настройках. Само собой в настройки надо указывать актуальный ID. Так же имейте ввиду, что кроме валюты, все настройки будут пусты, их надо будет прописать самостоятельно.
?
3.1 В документ Result прописываем [[!edinayakassa.payResult]] Шаблон Пустой. Снимаем галочку «Использовать HTML редактор».
3.2 В документы Success и Failure прописываем произвольные сообщения об успешности или не успешности платежа. Шаблон Основной.
Все эти три документа снимаем галочки «Доступен для поиска», чтоы в sitemap.xml не попадали.
4. В шаблон страницы оплаты сразу после {assign var=order value=$result.object[0]} дописываем подключение директории шаблонов модуля и вызов сниппета.
{$modx->smarty->addTemplateDir("{$modx->getOption('core_path')}components/edinayakassa/templates/web/default/")} {snippet name="edinayakassa.getButton" params="&WMI_PAYMENT_AMOUNT=`{$order.sum}`&order_id=`{$smarty.get.order_id}`"}
Вообще Smarty хороша тем, что шаблоны можно переопределять. К примеру, в сниппете вызывается шаблон edinayakassa/button.tpl Так как он находится в папке шаблонов самого модуля EdinayaKassa, то нам и приходится указывать Smarty дополнительную директорию шаблонов.
{$modx->smarty->addTemplateDir("{$modx->getOption('core_path')}components/edinayakassa/templates/web/default/")}
Но, если вы создадите шаблон edinayakassa/button.tpl в основной директории шаблонов сайта, то будет использован ваш шаблон. Собственно, тогда можно и не подключать папку шаблонов EdinayaKassa.
5. Надо еще добавить в базу данных еще один платежный сервис (он будет учитываться в биллинге). Для этого заходим через PhpMyAdmin (или кто что использует) в базу данных, и в таблицу modx_billing_paysystems добавляем запись со значением name=EdinayaKassa.
?
Значение id новой записи указываем в системную настройку edinayakassa.bill_serv_id
Ну и все. Если все правильно сделано, то на странице появится кнопка оплаты через ЕдинуюКассу. ?
UPD: Выложил пакет на гитхаб. github.com/Fi1osof/EdinayaKassa
Добрый день.
Забыл в топик добавить, что плагин несколько дописался. Следовало еще учесть префикс кеша для разных языков. Возможно именно в этом проблема. Смотрите там обновленный код плагина.
Добрый день. Мне нужно был создать многоязычный сайт, для этого я использую смену параметра cultureKey вот код для примера:
<?php $string = $_SERVER['SERVER_NAME']; $langKey = ''; if (preg_match( '/.com/' , $string)) { $langKey = 'en'; } elseif (preg_match( '/.com.ua/' , $string)) { $langKey = 'ua'; } elseif (preg_match( '/.it/' , $string)) { $langKey = 'it'; } else { $langKey = 'ru'; } $_SESSION['cultureKey'] = $langKey; $modx->setOption('cultureKey', $modx->cultureKey); ?>
Проблема заключается в том что когда заходишь на сайт сначала он отображаться на стандартном языке (тому что указан в настройках), а только после перезагрузки страницы язык сайта изменяется. Помогите советом, как исправить проблему. Заранее благодарен.
Добрый день! У вас картинки для слайдера находятся в отдельном медиасурсе, в результате чего в БД записывается только относительный путь от корня этого медиасурса. Вот просто выведите значение {$imgb} и увидите только относительный путь без assets/images/ Для формирования полного пути в гетдата-процессоре предусмотрен метод получения полного пути. То есть получаем базовый путь для медиасурса, и создаем переменную пути картинки для объекта. Там правда чуть другой метод получения пути используется, но это просто наследство от старой версии движка.
Таким образом можно в процессор дописать получение вот такого пути, или просто в шаблоне через сниппет getSourcePath получить путь для медиасурса и добавить его к пути картинки.
1. Повторюсь: данная сборка требует знания в области веб-программирования. 2. [[+page.nav]] просто так не работает. Надо чтобы выполнился сниппет getPage, который и формирует данные для постраничности. Для этого просто в вызываемый процессор выборки товаров или документов надо передавать параметр getPage=>true. Вот еще наш специалист написал Smarty-плагин для постраничности: modxclub.ru/blog/dokumentatsiya-dlya-spetsialistov/268.html Тоже можете попробовать взять на вооружение.
Да, отображается так как надо при просмотре одного товара, при просмотре категории подставляется значения по умолчанию данного tv у каждого товара)
Пришлите в личку доступ в админку сайта и ссылку на проблемную страницу, посмотрю что у вас там в шаблонах. Судя по всему просто логическая ошибка.
Я менял тип данных с числа на текст и т.д. но та же картина.
Тип ввода влияет только на элемент ввода в админке, то есть на странице редактирования товара. На вывод это никак не влияет. Вряд ли у вас проблема в сервере, больше правды в следующем комментарии, там и отвечу остальное.
Скажите пож-та, в чем может быть проблема? Я собственно не программист, и куда надо смотреть не понимаю. Не работает постраничная навигация и все, на Вашем же шаблоне дефолтовом, его не изменял. Все настройки перепроверил — все нормально. Кеш MODX уже полностью в настройках отключил — результата нет. Версии php менял. Сам HTML код из файла tpl выводится. Все что должно быть на месте [[+page.nav]] в исходном коде пусто.