From: fomichev Date: Wed, 9 Apr 2025 11:00:28 +0000 (+0300) Subject: Получение статусов из ответа X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=811fb1892d84ec10f400706ee699f582e13bfb25;p=erp24_rep%2Fyii-erp24%2F.git Получение статусов из ответа --- diff --git a/erp24/api2/controllers/OrdersController.php b/erp24/api2/controllers/OrdersController.php index 9199e2a1..ba522123 100644 --- a/erp24/api2/controllers/OrdersController.php +++ b/erp24/api2/controllers/OrdersController.php @@ -43,7 +43,10 @@ class OrdersController extends BaseController LogService::apiErrorLog(Json::encode($err, JSON_UNESCAPED_UNICODE)); return $this->asJson($err); } - + $debug = false; + if (isset($data['status_update']) || is_array($data['status_update'])) { + $debug = true; + } $mess = []; // статусы маркетплейса @@ -117,13 +120,31 @@ class OrdersController extends BaseController in_array($statusId1C->status, ['Отказ', 'Собрано']) && $order->marketplace_id == 2 ) { - $updateResult = MarketplaceService::updateOrderStatus( - $order->warehouse_guid, - $order->marketplace_order_id, - $orderStatus1CToCodes[0], - $orderStatus1CToCodes[1] - ); - $mess["message_status_update"] = $updateResult; + if (!$debug) { + $updateResult = MarketplaceService::updateOrderStatus( + $order->warehouse_guid, + $order->marketplace_order_id, + $orderStatus1CToCodes[0], + $orderStatus1CToCodes[1] + ); + } else { + $updateResult = $data['status_update']; + } + $mess["message_status_update"] = $updateResult; + if (isset($updateResult[$order->warehouse_guid]) && is_array($updateResult[$order->warehouse_guid])) { + foreach ($updateResult[$order->warehouse_guid] as $updatedOrder) { + if ($updatedOrder['id'] == $order->marketplace_order_id) { + if (isset($statuses[$updatedOrder['status']]) && isset($statuses[$updatedOrder['substatus']])) { + $order->status_id = $statuses[$updatedOrder['status']]; + $order->substatus_id = $statuses[$updatedOrder['substatus']]; + } else { + Yii::error("Не найдены id для статусов: {$updatedOrder['status']} или {$updatedOrder['substatus']}."); + } + } + } + } else { + Yii::error("Неверная структура updateResult: отсутствует ключ для магазина {$order->warehouse_guid}."); + } } else { if (!empty($orderStatus1CToCodes)) { $order->status_id = $statusId;