Наумов Алексей

Наумов Алексей

Был в сети 28 июля 2026, 14:21
Заказы принимаю
В чанке loft-site2:
1. {$lotnumber} — верная запись
2. {$_modx->resource.lotnumber} — конечно же нет, $_modx->resource это ТЕКУЩИЙ РЕСУРС
3. [[+lotnumber]] — верная запись
4. {$_modx->getPlaceholder('lotnumber')} если в плейсхолдер никто ничего не устанавливал — то он пуст.

п.1. возможно не работает, т.к. это migx поле, там наверняка есть скобки { } и парсер Fenom на них спотыкается… может сразу в массив это преобразовать?
Вот так выводит что-нибудь?
{$lotnumber | fromJSON | print}
Здесь нужно понимать, как работает парсер MODX. Это именно ПАРСЕР, а не шаблонизатор.
Он сначала ВСЕ парсит, а потом выполняет условия. Т.е. TicketComments вызывается всегда, каким бы ни был parent в вашем If.
Либо в отдельный шаблон убирайте, либо переводите сайт на шаблонизатор Fenom, который уже условия обрабатывать более привычно для человеческого восприятия.
Цена товара в корзине сохраняется, поэтому да, если поменять ее на сайте — в корзине будет старая.

Думаем, как поправить…
Нужно при каждом получении корзины (это плагин на событие msOnGetStatusCart, доступен объект $cart) пробегаться по корзине, получать товары и актуализировать цену.
Примеров с тем, как в корзине что-то менять — на сайте полно)
Добрый день.
Я так понимаю, у вас там некий файл с кодом, где нужны id товаров?

Сделайте запрос в бд напрямую, не запускайте сниппет.
Вот вырезка кода, только поправьте ее, я просто скопировал кусок:
// addPackage для загрузки модели
$modx->addPackage('msproductkits', MODX_CORE_PATH . 'components/msproductkits/model/');

// Build query
$c = $modx->newQuery('msProductKitItem');
$c->select($modx->getSelectColumns('msProductKitItem', 'msProductKitItem'));
$c->where(['active' => 1, $mode => $resource]);
$kitItems = $modx->getIterator('msProductKitItem', $c);
// далее foreach
Открываем Console,
пишем небольшой код для чтения csv файла (ну с этим то в интернете нет проблем)
далее цикл по товарам и запускаем:
$response = $modx->runProcessor('gallery/upload', array(
        'file' => $file, // Путь к файлу от корня сервера
        'id' => $product_id // id товара
    ),
    array('processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/mgr/')
);

if ($response->isError()) {
    echo 'ОШИБКА: '.implode(", ", $response->getAllErrors());
    echo '<br />';
}
если товаров много — то в стандартные 30 секунд скрипт не уложится…
Рациональность в этом всем есть… да…
У меня не было такой задачи… я вообще в основном все сделал только для того, чтобы в админке этим было удобно управлять.

Советую посмотреть в сторону msSetInCart, может он даст нужный функционал?
Один из простых вариантов — это создать пользователя Гость (Покупатель) и заказы плагином вешать на него. Но у данного лица есть поле email, а у заказа нет такого поля) вот тут будут проблемы, если вам при оформлении заказа нужна почта.