mkas

mkas

С нами с 11 августа 2021; Место в рейтинге пользователей: #11993
mkas
17 августа 2021, 11:36
0
Столкнулся с необходимостью сделать покупку в один клик. Кнопка находится в той же форме, что и обычная кнопка добавления товара. Логика такая: по нажатию на кнопку обратимся к php для очистки корзины, а новый товар добавится после силами могучего Minishop2.

HTML
<button type="submit" data-type="getOne">Купить в 1 клик</button>
JS
function startGetOneWork(){
        let getOneWork = document.querySelectorAll('[data-type="getOne"]');
        for(index = 0; index < getOneWork.length; index++){
            getOneWork[index].addEventListener('click', () => {
                console.log('Попытка очистки корзины');
                reset_button_podmena();
                clearOrderFixTresh();
                
                async function clearOrder(){
                    let url = "/minishop2-controller?type=clearOrder";
                    let headers = {
                        method: "POST"
                    }
                    let response = await fetch(url, headers);
                    if(response.ok){
                        console.log("Корзина очищена");
                    }else{
                        console.log("Ошибка очистки корзины");
                    }
                }
            });
        }
    }
    
    startGetOneWork();
PHP (создаете ресурс, в нем вызываете сниппет)
if($_SERVER["REQUEST_METHOD"] == "POST"){
        switch($_GET["type"]){
            case "clearOrder":
                $miniShop2 = $modx->getService('miniShop2');
                $miniShop2->initialize($modx->context->key);
                $miniShop2->cart->clean();
                break;
            default: return;
        }
    }
mkas
17 августа 2021, 11:09
0
А никак, они сами не знают)) Сделали мутанта, теперь поди разбери, как оно работает))
mkas
11 августа 2021, 12:34
0
Это от уровня понимания задачи зависит, кому то написать ИМ — кара небесная, кому то нет. Из того, что хорошо запомнилось: добавлял я новые поля в карточку заказа, можно было сделать это еще сложнее?
mkas
11 августа 2021, 12:32
0
Приятно строить из себя капитана очевидность?
mkas
11 августа 2021, 12:15
-1
Дополнение должно давать инструмент взаимодействия, а возможность этот инструмент создать.
Я не хочу изучать реализацию minishop2, я хочу его использовать.

Например сейчас, нужно сформировать заказ. Почему не сделать условный триггер-событие, по которому начнется валидация, а после, оформление? То же самое с добавлением товара, очисткой корзины. Честно, работаю с minishop2 три недели, задачи по работе. Основная задача разработчика — сделать жизнь других людей проще, а не наоборот.