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
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
Где можно править тексты и заголовки писем? «Управление словарями» находится в панели администратора по пути: меню Система (иконка в виде шестеренки) -> Управление словарями.
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Токены для ИИ-агентов, чтобы они могли работать с доской. Подробнее написал тут Баг проверю и постараюсь исправить.
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Лучше автоматический ci/cd настроить и не править прод напрямую. Это самый безопасный вариант. Другое дело, что далеко не каждый владелец сайта и далеко не каждый сайт готовы в авт...
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
Использовал свой код + ваши подсказки и код в другом контроллере от zoomx и все сработало.
Хотя до этого и там не работало.
Спасибо вам больше за помощь!
Данный контроллер используется в api для построения фронта отдельно от modx
Повторил ваше получение заказа и все равно тот же вывод в виде html с игнорированием вообще каких-либо конструкций вывода информации. Что само по себе очень странно.
Даже нет ошибки из-за отсутствия такого чанка как у вас (специально решил не менять, чтобы вызвать ошибку)
Вот пример:
и по идее, вывод должен быть таким только с наполненной data[]:
а выведет при включенном json_response вот так:
Причем в html формате.
Никак не могу решить данную проблему
Удалось кому-то решить?