Недавно портфолио 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]] в исходном коде пусто.