Максим

Максим

С нами с 17 февраля 2022; Место в рейтинге пользователей: #5529
Максим
04 августа 2023, 12:57
0
У меня купить в один клик в виде модалки, после субмита появляется просто сообщение в виде спасибо. А в случае заказа через корзину, да, грузится страница мол ваш заказ такой-то, спасибо.
Через профиль пользователя не выйдет, т.к. заказы оформляются от анонимов. Пробовал через кэш, но пока не выходит. Видимо надо кэшировать куда-то в файл и потом забирать от туда же.
Максим
04 августа 2023, 10:18
0
Спасибо Николай за наводку. Не силен в бэке, по наитию сделал так. Заказ улетает, но корзина не восстанавливается с товарами из старой сессии. После отправки заказа корзина становится пустой:

$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']);
}
Максим
04 августа 2023, 08:42
0
Артур, может есть вариант как при реализации сделать отправку заказа именно 1 товара? Суть: когда в корзине лежит уже 10 товаров и посетитель на другом товаре оформляет купить в один клик, то в админку прилетеает не один товар, а 10+1. Заранее спасибо!
Максим
04 августа 2023, 08:36
0
Артур, может есть вариант как при реализации сделать отправку заказа именно 1 товара? Суть: когда в корзине лежит уже 10 товаров и посетитель на другом товаре оформляет купить в один клик, то в админку прилетеает не один товар, а 10+1. Заранее спасибо!
Максим
14 февраля 2023, 21:11
0
Специально у себя протестил.
Подключил js bootstrap 5, вставил все как в примере.
По итогу заказ с модалки улетает, но модалка не закрывается и нет уведомлений. Но это баг вероятнее всего из-за уже подключенных скриптов bs4. Если Артур поможет адаптировать скрипт под bs4, то можно было бы выложить пример для bootstrap 4. Сам не силен в скриптах.
Максим
14 февраля 2023, 18:35
0
Пример реализации автором написан под bootstrap 5! Если 3 или 4, то надо адаптировать кнопку, окно и скрипт под себя. У меня пока затык со скриптом…
Максим
14 февраля 2023, 17:04
0
И у меня НЕ пашет… ID в модалку не залетает. В кнопке ID подтягивается.
Кстати, модалка в примере под Bootstrap 5. Меняйте классы под себя.
Максим
17 октября 2022, 09:16
0
Да. Автор компонента что-то подправил и все стало работать как надо.
Максим
17 февраля 2022, 15:59
0
Ситуация 1 в 1. Не цепляются цены на обычные товары. Есть инфа где надо подшаманить чтобы заработало?