Всего 123 791 комментарий

Артур Шевченко
26 декабря 2023, 14:49
0
Похоже ты там был, когда я как раз кое-что дорабатывал. Посмотри теперь.
brioni
26 декабря 2023, 14:27
0
Алексей, будет супер, если поиск по полю метка тоже будет работать
Евгений Webinmd
26 декабря 2023, 12:14
0
1) Количество товара в корзине не обновляется без перезагрузки
2) если сменить в сайдбаре опцию, то количество уже изменить нельзя
Артур Шевченко
25 декабря 2023, 20:27
0
if($msOrder->get('delivery_cost') === 0){
   $modx->event->output('Error');
}
newbmod
25 декабря 2023, 18:30
0
Спасибо за дополнение altHelper!
Заметил такую ошибку при выставлении уровня althelper_alt_from_title.
Если в содержании вставляется не путь к изображению а изображение из ms2gallery, к примеру
<img class="img-responsive" src="[[+ms2g.0.url]]" alt="" />
то тег alt заполняется, а вот само изображение пропадает. Видимо что-то с рендером страницы при наличии MODX-овских выражений
Dan
Dan
25 декабря 2023, 17:32
0
И ещё один вопрос, как отловить событие из плагина на js, чтобы вывести предупреждение на фронте?
Не нужно никаких js.
Расширяете msOrderHandler переопределив метод submit. В нем проверяете
if ($delivery_cost == 0) {
    return $this->error('Стоимость доставки не может быть равна нулю.'); //тут свое сообщение. Можно использовать ключи записей словаря
}
Dan
Dan
25 декабря 2023, 17:26
0
Интересное решение с использованием ZoomX!
Ну, как я и писал, мое решение не претендует на топ. Если будет критика и правки, я только за — поправлю на сайтах своих)
deleted
25 декабря 2023, 17:16
+1
Делал вот такое. Если что, там критика ниже, поправить статью пока руки не дошли.
modx.pro/howto/23874
Наумов Алексей
25 декабря 2023, 16:59
0
плагин на системное событие msOnBeforeCreateOrder, но похоже, что в него не поступают данные о стоимости доставки
Похоже, что должны поступать, судя по коду из msorderhandler.class.php:

// Раз
$delivery_cost = $this->getCost(false, true);
$cart_cost = $this->getCost(true, true) - $delivery_cost;
$num = $this->getNewOrderNum();

/** @var msOrder $msOrder */
// Два
$msOrder = $this->storageHandler->getForSubmit(
    compact('user_id', 'num', 'cart_cost', 'cart_status', 'delivery_cost')
);
// Три
$response = $this->ms2->invokeEvent('msOnBeforeCreateOrder', [
    'msOrder' => $msOrder,
    'order' => $this,
]);
Гоша
25 декабря 2023, 15:07
0
Регистрация на сайте prolekt.ru/ не возможна:
в ответном письме при регистрации отсутствует ссылка для активации?
Вячеслав Варов
25 декабря 2023, 14:31
0
В целом и второй вопрос тоже нашел ответ:

1) Создаем поле input tv type — hidden
2) Выбираем в Description is Code — yes
3) Вставляем в поле Desription тег img с нужным нам изображением, возможно там даже можно играться со стилями и тд, если у кого-то будут идеи или решения интереснее — буду признателен!)
Вячеслав Варов
25 декабря 2023, 14:22
0
Так по первому вопросу ответ нашел сам: modx.pro/howto/16558
Наумов Алексей
25 декабря 2023, 12:13
0
Может источник файлов не правильно настроен? Сложно сказать. Ошибки php в логах посмотрите.
Наумов Алексей
25 декабря 2023, 11:42
+1
Речь про объект cart в response? Там да, есть данные вроде товар id=3, кол-во 5. Вот только в метрику (как я понял) нужно передавать другое: не текущее кол-во товаров, а сколько именно его добавили в корзину или удалили. Ну типа было 5 товаров, мы 2 убрали нажатием на "-", осталось 3. Вот минишоп возвращает 3, а где взять 2 — вопрос.
Dan
Dan
25 декабря 2023, 11:33
0
С версии 4.1.4 кстати можно обойтись и без PHP, но тогда часть скрипта придется внедрять в скрипт от ms2. События remove и change с этой версии возвращают id товара и его кол-во в корзине. По сути нужно только category и name. Можно внедрить код в метод send в скрипте ms2 и в случае success получать объект формы, с которой была отправка и цеплять эти данные с дочерних метатегов.
Наумов Алексей
25 декабря 2023, 11:26
+1
Спасибо!
В принципе да, с miniShop2.Callbacks.Order.submit.response.success можно попробовать переписать скрипт, по идее должно сработать.

Про прием с расширением msCartHandler знаю, ведь хотелось обойтись без любого php кода, но такого способа в текущей реализации miniShop2 нет.