Максим

Максим

Был в сети 05 марта 2026, 11:07
Заказы не принимаю
У меня купить в один клик в виде модалки, после субмита появляется просто сообщение в виде спасибо. А в случае заказа через корзину, да, грузится страница мол ваш заказ такой-то, спасибо.
Через профиль пользователя не выйдет, т.к. заказы оформляются от анонимов. Пробовал через кэш, но пока не выходит. Видимо надо кэшировать куда-то в файл и потом забирать от туда же.
Спасибо Николай за наводку. Не силен в бэке, по наитию сделал так. Заказ улетает, но корзина не восстанавливается с товарами из старой сессии. После отправки заказа корзина становится пустой:

$values = $hook->getValues();
$ms2 = $modx->getService('minishop2');
$ms2->initialize('web');

$count = (float)$values['count'] ?: 1;

// Step 1: Temporarily save the current cart to the session
$_SESSION['tmp_cart'] = $ms2->cart->get();

// Step 2: Clear the cart
$ms2->cart->clean();

// Step 3: Add the specific product to the cart with the desired quantity
$ms2->cart->add((int)$values['id'], $count, $values['options']);

$ms2->order->config['json_response'] = true; // Ask to return JSON

// Add fields to the order
$ms2->order->add('receiver', $values['receiver']);
$ms2->order->add('email', $values['email']);
$ms2->order->add('phone', $values['phone']);
$ms2->order->add('delivery', $values['delivery']);
$ms2->order->add('payment', $values['payment']);
$ms2->order->add('comment', $values['comment']);

// Step 4: Create a new order
$ms2->order->submit();

// Step 5: Add other cart items from the session back to the cart
if (isset($_SESSION['tmp_cart']) && is_array($_SESSION['tmp_cart']['products'])) {
    $ms2->cart->set($_SESSION['tmp_cart']);
}
Артур, может есть вариант как при реализации сделать отправку заказа именно 1 товара? Суть: когда в корзине лежит уже 10 товаров и посетитель на другом товаре оформляет купить в один клик, то в админку прилетеает не один товар, а 10+1. Заранее спасибо!
Артур, может есть вариант как при реализации сделать отправку заказа именно 1 товара? Суть: когда в корзине лежит уже 10 товаров и посетитель на другом товаре оформляет купить в один клик, то в админку прилетеает не один товар, а 10+1. Заранее спасибо!
Специально у себя протестил.
Подключил js bootstrap 5, вставил все как в примере.
По итогу заказ с модалки улетает, но модалка не закрывается и нет уведомлений. Но это баг вероятнее всего из-за уже подключенных скриптов bs4. Если Артур поможет адаптировать скрипт под bs4, то можно было бы выложить пример для bootstrap 4. Сам не силен в скриптах.