Алексей Шумаев

Алексей Шумаев

Был в сети Вчера в 09:45
Заказы принимаю
Только что столкнулся с таким на modx3, ранее 1 раз видел на modx 2.8 — не было времени и мотивации разбираться.
Но проблема есть и она старая.

Клиническая картина такова: в обычном режиме плагин работает нормально, в статическом — реагирует на событие pdoToolsOnFenomInit (хотя оно не отслеживается данным плагином), код плагина игнорируется.
В кэше лежит правильный код плагина.

Пока предположение одно — причиной бага может быть pdoTools исходя из несанкционированной реакции на pdoToolsOnFenomInit. Попробую позже покопать.
Кто встречался — отпишите, будет полезно.
Вероятно баг: при использовании параметра includeThumbs первый товар в выборке дублируется столько раз, сколько есть вариантов в источнике файлов ms2, отличных от thumbs: disk.yandex.ru/i/qIOVBhhkd73VvA, disk.yandex.ru/i/aC4W4NmlW25FOQ
{'!msProducts' | snippet : ['includeThumbs' => 'small']}
Вероятно что-то с JOIN. Особенность — дубли только для первого товара в выборке.
Сейчас, к сожалению, нет возможности оперативно найти причину.

Проверил вызовом как msProducts, так и mFilter.
Желательно ставить disabled для кнопки «Сбросить», если не выбрано ни одного фильтра: disk.yandex.ru/i/PZliDL8USeHvAA

Тогда можно в зависимости от наличия disabled скрывать/показывать кнопку. Чаще всего логика показа кнопки такая: показываем кнопку сброса, если есть что сбрасывать.
Нюанс со сниппетом msCart: прерывание работы сниппета при наличии $_GET['msorder']: disk.yandex.ru/i/fOiDPWuW8xgXsg
Мне кажется, это ошибочное решение, т.к. данный сниппет, например может применяться для вывода мини-корзины и тогда будет просто пустота — ни чанка, на массива.
Крайне неожиданное поведение — ведь логика отображения должна быть исключительно в чанке.
Не думаю, что нужно просто глушить вывод сниппета от наличия этой переменной — может (и точно будет) приводить к проблемам и постоянным вопросам пользователей.

Предполагаю, что это сделано для случая вывода корзины и формы заказа на одной странице, но лучше таки оставить логику на стороне чанков/шаблона, чтобы это было контролируемо.
Например:
{if $.get.msorder is empty} // выводим корзину {/if}
В массиве $order (сниппет msOrder) значения cost, cart_cost (+возможно delivery_cost) содержат нечисловые значения: disk.yandex.ru/i/ezWUv4Sd6lyucA. Т.е. вместо чистого числа там строка с пробелом.
Это приводит к разным нюансам, а главное — к фатальной ошибке в случае применения к ним модификатора number pdoTools.
Пока лучше делать так, если используем эти параметры:
{$order.cost | replace : ' ' : '' | number : 0 : '.' : ' '}
Ещё момент: ошибка при создании покупателя через js CustomerAPI
Пробуем выполнить:
await ms3.customerUI.handleAdd('email', 'user@example.com')
В классе CustomerAPI (assets/components/minishop3/js/web/core/CustomerAPI.js) выполняется метод add,
отправляющий запрос на роут /api/v1/customer/add
disk.yandex.ru/i/QLb00kmT6NItWg, которого не существует: disk.yandex.ru/i/G1mWoPwSw0DmbA
Логично, т.к. такого роута нет в core/components/minishop3/config/routes/web.php

Возможно вместо handleAdd в CustomerUI должен быть метод handleRegister, использующий соответствующий роут. Я обратил на него внимание именно потому, что не понял, зачем нужен handleAdd.
Логично, что нужно зарегистрировать клиента через register, а если менять его поля, то это или PUT profile или PUT addresses если поля адресные. Ну или я что-то не понял.
Похоже баг с привязкой опций к категориям: disk.yandex.ru/i/Wq3XfDwgS0dkJw.
Не работает getTree в core/components/minishop3/src/Controllers/Api/Manager/OptionsController.php.
В качестве корня ($parent) передаётся 0, поэтому дерево будет строиться только в том случае, если корневой ресурс имеет класс msCategory. Вероятно нужно добавить настройку, определяющую корень каталога товаров.
Добрый день
Не то что бы заброшен заброшен, просто не обновляется ввиду отсутствия необходимости.
Исходя их описанных задач, данный компонент не подойдёт.
Я бы сделал специфичное решение под нужный функционал.
Тем более, что сейчас уже пришло время делать на базе MODX3.
Магазин в составе единой экосистемы pb очень интересен, особенно для modx3. Нет ли каких-то сроков, когда можно будет «пощупать»? Или пока хотя бы планируемый функционал.
Только что споткнулся об эту проблему, оставлю тут может кому поможет…
Решается правкой файла core/components/awss3mediasource/model/awss3mediasource/awss3mediasource.class.php, метод getObjectContents: установить $isBinary = true.
Проблема в том, что метод isBinary() отдаёт false, поэтому контент пуст и превью не создаются.
Почему метод отдаёт false пока не копал, не когда )
В облаке Beget всё заработало