Олег Щавелев

Олег Щавелев

С нами с 20 января 2017; Место в рейтинге пользователей: #28

Бесплатная доставка по критерию производителя.

Всем привет.
У меня появилась задачка, суть в следующем, некоторые вендоры спонсируют бесплатную доставку, а не которые нет. Поэтому кретерий бесплатная доставка или платная является производитель. Как это сделать в МS2?

1) Первый шаг. Это сделать дополнительное поле в настройках. Я уже описывал как это сделать в отдельной статье "Добавить поле в опции MS вкладка «Производитель товара» msVendor"

Олег Щавелев
07 декабря 2019, 16:23
modx.pro
4
841
+13

Стоимость доставки отдельной строкой в оформление заказа MS2

На заметку.

Делаем колбеки miniShop2 для всех

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

Итак, приступим.

Сначала расширим класс msOrderHandler назовем его customOrderInterface

Олег Щавелев
02 декабря 2019, 03:01
modx.pro
14
2 868
+16

Плюс и минус в каунте корзины MS2

Досточно простой вопрос, который мучает начинающих разработчиков. Решил поделиться решением, как сделать кнопки плюс и минус в корзине MS2. Что бы все было «по-фуншую»

Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart

...
<td class="count">
<form method="post" class="ms2_form" role="form">
  <input type="hidden" name="key" value="{$product.key}"/>
  <div class="form-group">
    <div class="input-group input-group-sm qty">
      <span class="input-group-prepend">
      <span class="input-group-text minus input_count_action">-</span>
      </span>
      <input type="number" name="count" value="{$product.count}" class="form-control"/>
      <span class="input-group-append">
      <span class="input-group-text plus input_count_action">+</span>
      <span class="input-group-text">{'ms2_frontend_count_unit' | lexicon}</span>
      </span>
    </div>
      <button class="btn btn-sm" type="submit" name="ms2_action" value="cart/change">
      ↻</button>
  </div>
</form>
</td>
...
Олег Щавелев
02 декабря 2019, 02:08
modx.pro
14
2 817
+8

Как добавить JS скрипт ниже скрипта MS2 default.js

Подскажите пожалуйста.

Мне нужно вставить свой скрипт ниже script type=«text/javascript» src="/assets/components/minishop2/js/web/default.js?v=d62e73368c">

Как это сделать.
Олег Щавелев
26 ноября 2019, 11:46
modx.pro
1
833
0

Как добавить поле в MS2 опции msoption

Итак после не удачного опыта во вкладке «Производитель товаров» решил попробовать разобраться во вкладке «Опции» и как говориться первый блин комом.

1. Добавим плагин для того что бы подключить наш файлик ExtJS (у меня их много поэтому я предлагаю такую схему.

<?php
switch ($modx->event->name) {
    case 'msOnManagerCustomCssJs':
        switch ($page) {
            case 'orders':
            $modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addjsms2.js');
            break;
            case 'settings':
            $modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addjsms2vendor.js');
            $modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addms2option.js');
            break;
        }
        break;
}
Далее создадим данную дирректорию и наследуем нашу форму
Олег Щавелев
21 ноября 2019, 06:06
modx.pro
10
1 321
+12

Добавить поле в опции MS вкладка "Производитель товара" msVendor .

У меня задача добавить два поля в форму в настройках MS2, вкладка «Производитель»

1. Шаг добавляем JS файл на страницу настроек, я сделал плагин

<?php
switch ($modx->event->name) {
    case 'msOnManagerCustomCssJs':
        switch ($page) {
            case 'orders':
            $modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addjsms2.js');
            break;
            case 'settings':
            $modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addjsms2vendor.js');
            break;
        }
        break;
}
На событие msOnManagerCustomCssJs

Олег Щавелев
19 ноября 2019, 05:41
modx.pro
4
1 566
0

mFilter2 несколько полей в одной группе фильтров.

Здравствуйте.

У меня два вопроса по фильтру.

Мне нужно сгрупировать свойства.

ms|new
ms|favorite

Необходимо.

1. Отключить 0 (Нет) из выборки
2. Как сгругипировать несколько параметров и обернуть единой оберткой (присвоить единый заголовок оберткой)

Я понимаю можно сделать проверки, но хочется с более простой шаблонизацией.
Может кто-то сталкивался с данной задачей. Как сделать этого элегантнее.

Cпасибо.
Олег Щавелев
18 ноября 2019, 21:10
modx.pro
643
0

Как добавить поле заказа в MS2

Здравствуйте.

Хотел поделиться способом, как добавить новое поля заказа MS2. После чтения статьи от Николая (спасибо ему за статью) понял, что это мой путь и нужно сделать все по аналогии, так как задачи очень схожие.

Внимание! Если вы захотите попробовать решение. Сначала проверьте на тестовом проекте, а после тестирования делайте на боевом проекте. Помня что Бекап это наше все

Задачу поставим следующую. Давайте создадим поле «Адрес» как общее поле что бы клиент мог вписать весь адрес полностью (Улица, дом, подъезд этаж и т.д).

Что нужно для этого!

Олег Щавелев
17 ноября 2019, 01:01
modx.pro
5
1 794
+1

prepareSnippet передать значение в modResource

Задача простая и решить ее можно разными способами ну почему-то решил попробовать ее решить prepareSnippet

Задача заключается расчет экономии по двум простым формулам логику расписывать не будет и так будет понятно в коде

<?php
if (!is_array($row)) {
	return '{}';
}

$ms2_product_price = $modx->getOption('ms2_product_price');
$price = preg_replace("/\s+/", "", $row['price']);
$old_price = preg_replace("/\s+/", "", $row['old_price']);

if ($old_price > $price) {

switch ($ms2_product_price) {
    case 'procent': 
    $row['difference'] = round(100 - (100 * $price / $old_price));
    break;
    case 'num':
    $row['difference'] = $old_price - $price;
    break;
}

}

$rows = json_encode($row);
return($rows);
Вопрос очень простой как вывести данное значение в карточке товара. Как это можно сделать в одном месте.

Так как я разбираюсь только в MODx решил сделать плагином и записать в плейсхолдер. А плагин в приципе повторяет логику.

Четкий вопрос можно через PrepareSnippet передать значение в карточку товара? Если нет а как работают плейсхолдеры pricе и oldprice так как в карточке можно вызвать переменную шаблона к примеру 14000 и плейсхолдер уже со значением 14 000
Олег Щавелев
16 ноября 2019, 03:52
modx.pro
523
0

migx статус документа опубликовать и снять с опубликации

Все привет.

У меня возникла задача по снятию и опубликации документа в grid MIGX.

Если касаться управления в Grid я пришел к такой схеме интерфейса.



Для этого необходимо использовать настройку во вкладке «Columnbutton»



Так же используем рендер для вывода кнопок renderRowActions



Для MIGXdb есть кнопки снять с публикации и опубликовать но как их использовать в обычном MIGX.

У кого есть предложения буду рад услушать решения или идеи.

Спасибо.
Олег Щавелев
02 ноября 2019, 17:09
modx.pro
483
0