Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #3
Отправить деньги
04 декабря 2021, 10:53
0
Вот хочу ответить, так чтобы было полезно, но не знаю как.
Можно ли как-то получить ID дополнительной категории товара
Конечно же можно. Дополнительные категории хранятся в таблице modx_ms2_product_categories, там всего два поля product_id и category_id. Таким образом используя API Modx ты можешь получить как все категории товара, так и все товары категории. Сниппет msProducts выводит в категории все товары, вне зависимости от того основная ли это категория для конкретного товара или нет.
28 ноября 2021, 22:08
0
Можно использовать 1 плагин на 2 события.
Вероятно я мы по-разному считаем количество плагинов))) А по поводу остального, это было моё предположение.
28 ноября 2021, 22:05
0
Так ты проверил, событие срабатывает?
28 ноября 2021, 19:18
0
Я бы сделал так. Перед добавлением товара в корзину (msOnBeforeAddToCart) проверял бы сколько товаров уже есть в ней, если 3 и больше обнулял стоимость, соответственно при удалении товара из корзины (msOnRemoveFromCart) делал бы аналогичную проверку, но возвращал товару с нулевой стоимостью его первоначальную цену. На всё это нужно два плагина, но возможно, я не учёл какие-то нюансы.
28 ноября 2021, 17:44
+1
Если XParser создаёт ресурсы через процессоры, то скорее всего срабатывают системные события, значит можно попробовать на OnDocFormSave отменять публикацию.
26 ноября 2021, 21:57
0
Судя по вопросу Вам надо в документацию, поскольку и class_key и id это названия полей ресурса. Ну и да выше я написал плагин на событие OnDocFormSave
24 ноября 2021, 23:39
0
Не знаю как ты создавал дополнительные поля, но предположу, что по инструкции из сети, и тогда, скорее всего, данные сохраняются в поле properties в формате json, в этом случае можно из получить так
$extFields = json_decode($order->get('properties'),1); // в результате получишь массив
24 ноября 2021, 22:02
0
Во-первых, если ты укажешь несуществующий чанк письма, скорее всего ничего не придёт, а в логах будет ошибка о том, что ты пытаешься отправить пустое письмо.
Во-вторых, если ты не используешь Fenom, то именовать поля нужно так email1, email2 и т.д., а в чанке письма выводить так [[$email1]], [[$email2]] и т.д.
Если ты используешь fenom, то можно именовать так emails[], phones[], а в чанке можно выводить так {$emails[0]}, {$emails[1]}, {$phones[0]}, {$phones[1]} и т.д. Или именовать так fields[0][email], fields[0][phone], fields[1][email], fields[1][phone], а в чанке выводить так
{foreach $fields as $field index=$i}
{$field[phone]}
{$field[email]}
{/foreach}
24 ноября 2021, 21:45
0
$order = $modx->getObject('msOrder', $id);
22 ноября 2021, 21:37
0
Я не знаю, что за поле «Прежняя цена», но вот плагин для автоматического заполнения поля старая цена если новая цена меньше, той что была
<?php
if($resource->get('class_key') == 'msProduct'){
    $res = $modx->getObject('msProduct', $resource->get('id'));
    if($res->get('price') > $_POST['price']){
        $resource->set('old_price',$res->get('price'));
    }
}
20 ноября 2021, 11:14
+1
Есть предложение выкинуть капчу и сделать так. Создаешь скрытое поле с именем например secret. В вызове в параметре validate пишешь secret:contains=^Bdsvgfdbr^ и пишешь js который при загрузке страницы или при попадании любого поля формы в фокус будет заполнять secret значением Bdsvgfdbr (любой набор символов).
11 ноября 2021, 20:47
+1
Думаю нужно будет сделать как написано тут
10 ноября 2021, 10:17
0
У пользователя есть поле extended что по сути уже и есть поле migx, т.е. хранит данные в json. Если тебе нужно табличное представление данных, то можно создавать для каждого пользователя отдельный ресурс и указать этого пользователя создателем данного ресурса. А вообще, надо понимать какая именно задача стоит, возможно стоит создать свою таблицу в БД.
07 ноября 2021, 09:43
0
А что там сложного? Суммарно я дописал/изменил 50-60 строк кода, ну максимум 100, при этом основная логика создания заказа вообще никак не поменялась, что в теории позволит без проблем прикрутить оплату как это обычно делается в minishop2, и, вероятно, калькуляторы доставки, но как по мне это уже ни разу не заказ в 1 клик. А так да, можно и через FormIt. Вообще вариантов реализации можно придумать много, мне было интересно сделать меняя только js.
06 ноября 2021, 20:57
0
Не переключается, наверное, потому что Вы не переключаете. У msoptionprice2 есть событие
$(document).on('msoptionsprice_product_action', function (e, action, form, response) {
    console.log(action, form, response);
});
А в swiper есть метод swiper.slideTo(index, speed, runCallbacks)
Ваша задача в событии получить идентификатор модификации, по нему найти слайд и переключиться на него.
25 октября 2021, 14:05
0
Я не призываю к этому привыкать, этот вариант годится только для очень небольших сайтов, например, как в моём случае для маленького имага чисто протестировать нишу. Если проект зайдёт, тогда будут подключаться дополнения.
25 октября 2021, 07:26
0
Под быстротой я имею ввиду скорость создания поиска.
А сайт действительно до 100 страниц, если есть рекомендации по улучшению запроса, а именно как его переписать так, чтобы учитывался шаблон и чтобы он работал быстрее, буду признателен.
И да, я надеюсь query обрабатывается в pdoTools.
18 октября 2021, 19:15
0
Вставлю свои 5 копеек. Кто не хочет интегрироваться с CRM, может создать отдельную группу пользователей, на bootsrap набросать несколько форм и таблиц, и вынести управление заказами на фронт. Все проблемы по пересчёту сумм, отправке писем, запрете на удаление заказов сразу же будут решены)))
18 октября 2021, 18:57
0
Можно использовать AjaxForm + свой сниппет, в котором можно делать, всё что угодно.