Всего 123 794 комментария

Dan
Dan
24 мая 2023, 14:08
+1
Код тот же самый, просто замените в 1ой строчке моего кода, $resource->id на id вашего ресурса
$res = $modx->getObject('modResource', id_ресурса);
$words = json_decode($res->getTVValue('words'), true);
Андрей Шевяков
24 мая 2023, 12:33
1
+1
Мы вот этим пользуемся utmMark
Иван
24 мая 2023, 11:49
0
Тоже необходимо было оставить вариант вызова в текстовом редакторе, выкрутился следующим образом. Вызов в редакторе стандартный [[$galleryForResource?&gallery_id=`2`]], а в чанке через назначение новой переменной {var $gallery_id = [[+gallery_id]]} далее $gallery_id уже использовал в контексте fenom
Евгений
24 мая 2023, 11:29
0
а как обратиться к TV определенного ресурса ))))
например у него id=11 и TV со словами будет в нем
Алексей
24 мая 2023, 10:42
0
Я понял. Попробую потестить.
Dan
Dan
24 мая 2023, 10:39
0
Возможно я поторопился и кастомный сниппет может по скорости не будет лучше. Принцип подразумевал следующий:
1) Получаем коллекцию категорий товаров
2) Пробегаемся через коллекцию и получаем имеющихся производителей в каждой категории, путем запрос к msVendor с джойном msProduct.
3) Добавляем в вывод

Протестите вызов pdoResources, который я написал в комменте. Если он не критично влияет на скорость загрузки страницы, то можно и его оставить.
Алексей
24 мая 2023, 10:17
0
Спасибо еще раз. Сейчас обсуждаю вывод. Вы сможете написать сниппет?
Dan
Dan
24 мая 2023, 09:29
0
Как раз таки это не все, а производители внутри одной категории. Я же расписал все в комменте.
Вообще для меню этот скрипт конечно будет огромный, я бы скорее написал кастомный сниппет.
Dan
Dan
24 мая 2023, 09:28
0
В принципе такую задачу можно решить плагином на события msOnChangeOrderStatus, msOnRemoveOrder, msOnUpdateOrder и проверять в нем: если статус Новый, то игнорируем и выходим, чтобы не задерживать создание заказа во фронте для клиента. Если статус Оплачен то перебираем товары и уменьшаем значение поля остатков на кол-во этой позиции в заказе, а если статус Отменен, то увеличиваем кол-во, ибо это возврат. И соответственно если менеджер удалит заказ или удалит товар из него, производить те же самые действия.
Сергей Фещуков
24 мая 2023, 09:01
0
Добрый день. Да, компонент работает с товарами без свойств и модификаций.
Игорь
24 мая 2023, 08:59
0
Здравствуйте.
Хочу уточнить: для товаров без свойств и модификаций Ваш компонент будет работать?
Игорь
24 мая 2023, 08:55
0
Ну да, поле-то создать не проблема (хоть кастомное, хоть tv)… Загвоздка именно в функционале: чтобы остатки уменьшались при заказе, например…
Алексей
24 мая 2023, 08:52
0
Спасибо за ваш ответ, но это не то. У вас выводятся все производители, а мне надо что-бы в меню у каждой категории выводились производители этой категории. Вывод нужен в меню, на всех страницах. Пока удалось вывести только на странице категории.
Dan
Dan
24 мая 2023, 08:44
0
Из коробки пока такого функционала нет. Вопрос в том, какой функционал вы хотите привязать к полю «Остатки»?
Создайте кастомное поле minishop2 (если умеете), если нет, то можете попробовать использовать msAddField, правда не знаю актуален он или нет. Либо можете создать TV.
Далее все зависит от ваших задач.
Например, вы завели TV remaining и хотите вместо кнопки «Добавить в корзину» выводить «Нет в наличии», то код на странице товара например будет такой:
{if $_modx->resource.remaining > 0}
    <button type="submit" name="ms2_action" value="cart/add">Добавить в корзину</button>        
{else}
    <span>Нет в наличии</span>
{/if}
Прочие задачи, например проверка остатков при добавлении в корзину, решаются кастомными плагинами.
0verride
24 мая 2023, 01:13
0
Вопрос решился в апгрейде версии до 2.7.0 но с нюансами.
При апгрейде выдавало ошибку:
Deprecated: Array and string offset access syntax with curly braces is deprecated in /modinstallsmarty.class.php on line 75
Решение:
Изменить строку в файле:
setup/includes/parser/modinstallsmarty.class.php
эту: if ($dirname{strlen($dirname) — 1} == '/') $dirname = substr($dirname, 0, strlen($dirname) — 1);
на эту: if ($dirname[strlen($dirname) — 1] == '/') $dirname = substr($dirname, 0, strlen($dirname) — 1);

Всем спасибо!
Коллекции появились!
Андрей
24 мая 2023, 00:19
0
Должно всё работать, проверьте ошибки в логах modx, можно посмотреть ошибки в консоли браузера открыв ресурс. Попробовать переустановить компонент, возможно что то заглючило в момент установки, редко, но бывает.
Андрей
24 мая 2023, 00:18
0
«Актуальная это которая? Чтоб ничего не пострадало?
2.8.5-pl (rel. 7-Mar-2023) эта?»'

Да, всё должно обновиться нормально, ничего не пострадает.
0verride
24 мая 2023, 00:03
0
«Движок также стоит обновить до актуальной версии.»
Актуальная это которая? Чтоб ничего не пострадало?
2.8.5-pl (rel. 7-Mar-2023) эта?
0verride
23 мая 2023, 23:48
0
PHP Version 7.4.33
Версия базы данных: 5.7.35-38
Client API version: mysqlnd 7.4.33
Андрей
23 мая 2023, 23:28
0
Проверил, работает на 2.6.5. Сам компонент корректно установился? Какая версия php/mysql? Движок также стоит обновить до актуальной версии.