]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавление обработки Яндекс
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 13 Oct 2025 11:19:37 +0000 (14:19 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 13 Oct 2025 11:19:37 +0000 (14:19 +0300)
erp24/media/controllers/NotificationController.php
erp24/services/MarketplaceService.php

index 815e89fac2e6964e2ccbd7247977532abd1fe9e2..24902e34ce0eefaa2457908bf6e8d2a3f120b3d4 100644 (file)
@@ -6,6 +6,7 @@ use JsonException;
 use OpenAPI\Client\ObjectSerializer;
 use Yii;
 use yii\filters\AccessControl;
+use yii\helpers\ArrayHelper;
 use yii\helpers\Json;
 use yii\rest\Controller;
 use yii\web\BadRequestHttpException;
@@ -18,9 +19,11 @@ use yii_app\records\CreateChecks;
 use yii_app\records\ExportImportTable;
 use yii_app\records\Files;
 use yii_app\records\Images;
+use yii_app\records\MarketplaceOrder1cStatuses;
 use yii_app\records\MarketplaceOrderDelivery;
 use yii_app\records\MarketplaceOrderItems;
 use yii_app\records\MarketplaceOrders;
+use yii_app\records\MarketplaceOrderStatusTypes;
 use yii_app\records\MatrixErp;
 use yii_app\records\MatrixErpProperty;
 use yii_app\records\Products1c;
@@ -101,6 +104,18 @@ class NotificationController extends Controller
         }
         */
 
+        $statuses = MarketplaceOrderStatusTypes::find()
+            ->select(['id', 'code'])
+            ->indexBy('code')
+            ->asArray()
+            ->all();
+        $cancelledStatusId = $statuses[MarketplaceOrderStatusTypes::CANSELLED_CODE]['id'];
+        $status1cWithCancelledId = ArrayHelper::getColumn(MarketplaceOrder1cStatuses::find()
+            ->where(['order_status_id' => $cancelledStatusId])
+            ->andWhere(['marketplace_id' => 2])
+            ->asArray()
+            ->all(), 'id');
+
         $rawBody = Yii::$app->request->getRawBody();
 //        if (!is_dir(self::getPathNotification())) {
 //            mkdir(self::getPathNotification(), 0777, true);
@@ -289,16 +304,6 @@ class NotificationController extends Controller
                     $campaignId = $data['campaignId'];
                     $orderId    = $data['orderId'];
                     $orderData  = MarketplaceService::fetchOrder($campaignId, $orderId);
-                    $order = MarketplaceOrders::find()
-                        ->where(['marketplace_order_id' => (string)$orderId])
-                        ->one();
-                    if ($order) {
-                        $order->cancelled_order_source = 'Yandex Market';
-                        $order->cancelled_order_date = date('Y-m-d H:m:s');
-                        if (!$order->save()) {
-                            Yii::error('Ошибка сохранения заказа ' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE));
-                        }
-                    }
 
                     if (empty($orderData)) {
                         Yii::$app->response->statusCode = 400;
@@ -310,6 +315,17 @@ class NotificationController extends Controller
                         ]);
                     }
                     $result = MarketplaceService::processOrders($orderData);
+                    $order = MarketplaceOrders::find()
+                        ->where(['marketplace_order_id' => (string)$orderId])
+                        ->one();
+                    if ($order) {
+                        $order->cancelled_order_source = 'Yandex Market';
+                        $order->status_processing_1c = $status1cWithCancelledId;
+                        $order->cancelled_order_date = date('Y-m-d H:m:s');
+                        if (!$order->save()) {
+                            Yii::error('Ошибка сохранения заказа ' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE));
+                        }
+                    }
                     return $this->asJson([
                         'version'   => '1.0.0',
                         'name'      => 'БазаЦветов24',
index 4b41b3fa0ec5ee0d928e51cb5df8aabaa266c7b1..f39bf1d8d57e68d361eee173b5df9614ee004551 100644 (file)
@@ -2336,7 +2336,7 @@ class MarketplaceService
                 // отмена или успешное выполнение
                 if ($index == self::SUBJECT_INDEX[self::SUBJECT_CANCELLED]) {
                     /** @var $marketplaceOrder MarketplaceOrders */
-                    $marketplaceOrder->cancelled_order_source = 'Yandex Market';
+                    $marketplaceOrder->cancelled_order_source = 'Flowwow';
                     $marketplaceOrder->cancelled_order_date = date('Y-m-d H:m:s');
                 }
                 if ($marketplaceOrder->save()) {