08 марта 2023, 20:19 Как понял, в самом компоненте, в котором работал с контроллером. Использовал свой код + ваши подсказки и код в другом контроллере от zoomx и все сработало. Хотя до этого и там не работало. Вопросы / Что-то не то с формированием заказа через API 19 0
08 марта 2023, 20:06 в итоге получилось. Спасибо вам больше за помощь! Вопросы / Что-то не то с формированием заказа через API 19 0
08 марта 2023, 18:49 все вызывается и работает (заказ то создается), если отключить json_response, то я получу ответ в том виде, который я отдаю, но без id новосозданного заказа. Данный контроллер используется в api для построения фронта отдельно от modx Вопросы / Что-то не то с формированием заказа через API 19 0
08 марта 2023, 18:20 <?php class shopOrder2 extends shopBaseRestController { public $allowedMethods = array('post'); public function post() { // инициализируем miniShop2 $scriptProperties = [ 'json_response' => 1, ]; $miniShop2 = $this->modx->getService('minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties); // опции товара, если они необходимы $option = array(); /*$option = array( "option1" => "value1", "option2" => "value2", );*/ // инициализируем miniShop2 в текущем контексте $miniShop2->initialize($this->modx->context->key, $scriptProperties); $cart = $miniShop2->cart->get(); if (!count($cart)) { $result = [ 'message' => 'Корзина пуста', 'success' => false ]; return $this->failure('', $result); } //Получатель $email = $this->getProperty('email'); $phone = $this->getProperty('phone'); $receiver = $this->getProperty('name'); //Дата и время доставки //$soon = (bool)$this->getProperty('soon'); $delivery_date = $this->getProperty('delivery_date'); $delivery_time = $this->getProperty('delivery_time'); //Адрес $street = $this->getProperty('street'); $building = $this->getProperty('building'); $room = $this->getProperty('apartment'); $entrance = $this->getProperty('entrance'); $floor = $this->getProperty('floor'); $comment = $this->getProperty('comment'); //Доставка и оплата $payment = (int)$this->getProperty('payment'); $delivery = (int)$this->getProperty('delivery'); $miniShop2->order->add('payment', $payment); $miniShop2->order->add('delivery', $delivery); $miniShop2->order->add('receiver', $receiver); $miniShop2->order->add('email', $email); $miniShop2->order->add('phone', $phone); $miniShop2->order->add('soon', $soon); $miniShop2->order->add('delivery_date', $delivery_date); $miniShop2->order->add('delivery_time', $delivery_time); $miniShop2->order->add('street', $street); $miniShop2->order->add('building', $building); $miniShop2->order->add('room', $room); $miniShop2->order->add('entrance', $entrance); $miniShop2->order->add('floor', $floor); $miniShop2->order->add('comment', $comment); $result['r'] = json_decode($miniShop2->order->submit(),1); $result['r'] = $arr = json_decode($miniShop2->order->submit(),1); if($arr['success'] && $arr["data"]["msorder"] > 0){ $msOrder = $modx->getObject('msOrder', $arr["data"]["msorder"]); $order = $msOrder->toArray(); $result['orderId'] = $order; $resp['out'] = $pdo->parseChunk('@FILE cart/fastOrderSuccess.tpl',$arr); } $result['orderId'] = $response['data']['msorder']; return $this->success('', $result); } } Вопросы / Что-то не то с формированием заказа через API 19 0
08 марта 2023, 17:57 Не помогло, к сожалению. Повторил ваше получение заказа и все равно тот же вывод {"success":true,"message":"","data":{"msorder":56}} в виде html с игнорированием вообще каких-либо конструкций вывода информации. Что само по себе очень странно. Даже нет ошибки из-за отсутствия такого чанка как у вас (специально решил не менять, чтобы вызвать ошибку) Вопросы / Что-то не то с формированием заказа через API 19 0
08 марта 2023, 16:03 Действительно $scriptProperties = ['json_response' => 1]; помогает, но в таком случае ответ приходит в виде html с содержимым {«data»: {«msorder»:15}} и полностью игнорирует построение ответа. Вот пример: if (isset($response['success']) && $response['success'] == true) { $result['post'] = $this->properties; $result['response'] = $response; $result['orderId'] = $response['data']['msorder']; $miniShop2->cart->clean(); return $this->success('', $result); }и по идее, вывод должен быть таким только с наполненной data[]: { "success": true, "message": "", "object": { "post": { "payment": "1", "delivery": "1", "name": "Алекс", "email": "test@test.ru" }, "response": { "success": true, "message": "", "data": [] }, "orderId": null }, "code": 200 }а выведет при включенном json_response вот так: {"success":true,"message":"","data":{"msorder":53}}Причем в html формате. Никак не могу решить данную проблему Вопросы / Что-то не то с формированием заказа через API 19 0
08 марта 2023, 15:17 вот спустя почти 4 года проблема с $miniShop2->order->submit() осталась. Удалось кому-то решить? Вопросы / Что-то не то с формированием заказа через API 19 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
Использовал свой код + ваши подсказки и код в другом контроллере от zoomx и все сработало.
Хотя до этого и там не работало.
Спасибо вам больше за помощь!
Данный контроллер используется в api для построения фронта отдельно от modx
Повторил ваше получение заказа и все равно тот же вывод в виде html с игнорированием вообще каких-либо конструкций вывода информации. Что само по себе очень странно.
Даже нет ошибки из-за отсутствия такого чанка как у вас (специально решил не менять, чтобы вызвать ошибку)
Вот пример:
и по идее, вывод должен быть таким только с наполненной data[]:
а выведет при включенном json_response вот так:
Причем в html формате.
Никак не могу решить данную проблему
Удалось кому-то решить?