]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix(ERP-248): move $store lookup before if/else to fix undefined variable origin/feature_filippov_ERP-248_fix_store_scope
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Sun, 1 Mar 2026 19:52:15 +0000 (22:52 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Sun, 1 Mar 2026 19:52:15 +0000 (22:52 +0300)
$store was defined only inside the "new order" block (line 1252), but
referenced in 5 places inside the "existing order" else-block (lines
1692, 1735, 1770, 1828, 2017), causing "Undefined variable $store"
on production.

Moved $warehouseGuid and $store assignment before the if/else split
so both branches share the same variable scope.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
erp24/services/MarketplaceService.php

index e8f6d5582f9690a67d35c98e3c41cb90cc46a200..ce53564d3c9a2493e55046634b564b1d04c2cd65 100644 (file)
@@ -1225,6 +1225,8 @@ class MarketplaceService
                 }
 
                 $newRawData = json_encode($order, JSON_UNESCAPED_UNICODE);
+                $warehouseGuid = (string)$campaignId;
+                $store = $warehouseGuid ? MarketplaceStore::findOne(['warehouse_guid' => $warehouseGuid]) : null;
                 $marketplaceOrder = MarketplaceOrders::find()
                     ->where(['marketplace_order_id' => (string)$order->getId()])
                     ->with(['status', 'substatus'])
@@ -1247,9 +1249,7 @@ class MarketplaceService
                     $marketplaceOrder->cancel_requested = (int)$order->getCancelRequested();
                     $marketplaceOrder->guid = DataHelper::createGuidMy('08');
                     $marketplaceOrder->fake = (int)$order->getFake();
-                    $warehouseGuid = (string)$campaignId;
                     if ($warehouseGuid) {
-                        $store = MarketplaceStore::findOne(['warehouse_guid' => $warehouseGuid]);
                         if (!$store) {
                             $errorMessage = "Ошибка! Отсутствует запись MarketplaceStore для магазина {$warehouseGuid} ЯМ";
                             $errorMessage = TelegramService::escapeMarkdown($errorMessage);