From e1c593e565821f5b07aea9c9cfcb9070b97c3397 Mon Sep 17 00:00:00 2001 From: Aleksey Filippov Date: Sat, 28 Feb 2026 22:56:56 +0300 Subject: [PATCH] fix(ERP-247): skip item save on null subsidy/partner_warehouse_id, log Yii::error MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When getSubsidy() or getPartnerWarehouseId() returns null — log error with orderId + shopSku and skip saving the item (continue) instead of writing invalid fallback values (0 / 'N/A') to DB. Co-Authored-By: Claude Sonnet 4.6 --- erp24/services/MarketplaceService.php | 60 ++++++++++++++++----------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index b84aaffb..d774196d 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -1435,14 +1435,16 @@ class MarketplaceService $orderItem->shop_sku = $item->getShopSku(); $subsidy = $item->getSubsidy(); if ($subsidy === null) { - Yii::warning('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->subsidy = $subsidy ?? 0; + $orderItem->subsidy = $subsidy; $partnerWarehouseId = $item->getPartnerWarehouseId(); if ($partnerWarehouseId === null) { - Yii::warning('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->partner_warehouse_id = $partnerWarehouseId ?? 'N/A'; + $orderItem->partner_warehouse_id = $partnerWarehouseId; $orderItem->promos = json_encode($item->getPromos(), JSON_UNESCAPED_UNICODE); $orderItem->subsidies = json_encode($item->getSubsidies(), JSON_UNESCAPED_UNICODE); @@ -1675,14 +1677,16 @@ class MarketplaceService $orderItem->shop_sku = $item->getShopSku(); $subsidy = $item->getSubsidy(); if ($subsidy === null) { - Yii::warning('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->subsidy = $subsidy ?? 0; + $orderItem->subsidy = $subsidy; $partnerWarehouseId = $item->getPartnerWarehouseId(); if ($partnerWarehouseId === null) { - Yii::warning('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->partner_warehouse_id = $partnerWarehouseId ?? 'N/A'; + $orderItem->partner_warehouse_id = $partnerWarehouseId; $orderItem->promos = json_encode($item->getPromos(), JSON_UNESCAPED_UNICODE); $orderItem->subsidies = json_encode($item->getSubsidies(), JSON_UNESCAPED_UNICODE); @@ -1712,14 +1716,16 @@ class MarketplaceService $orderItem->shop_sku = $item->getShopSku(); $subsidy = $item->getSubsidy(); if ($subsidy === null) { - Yii::warning('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->subsidy = $subsidy ?? 0; + $orderItem->subsidy = $subsidy; $partnerWarehouseId = $item->getPartnerWarehouseId(); if ($partnerWarehouseId === null) { - Yii::warning('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->partner_warehouse_id = $partnerWarehouseId ?? 'N/A'; + $orderItem->partner_warehouse_id = $partnerWarehouseId; $orderItem->promos = json_encode($item->getPromos(), JSON_UNESCAPED_UNICODE); $orderItem->subsidies = json_encode($item->getSubsidies(), JSON_UNESCAPED_UNICODE); @@ -1742,11 +1748,13 @@ class MarketplaceService $updateNeeded = false; $subsidy = $item->getSubsidy(); if ($subsidy === null) { - Yii::warning('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } $partnerWarehouseId = $item->getPartnerWarehouseId(); if ($partnerWarehouseId === null) { - Yii::warning('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } $fields = [ 'offer_id' => $item->getOfferId(), @@ -1758,8 +1766,8 @@ class MarketplaceService 'count' => $item->getCount(), 'vat' => $item->getVat(), 'shop_sku' => $item->getShopSku(), - 'subsidy' => $subsidy ?? 0, - 'partner_warehouse_id' => $partnerWarehouseId ?? 'N/A', + 'subsidy' => $subsidy, + 'partner_warehouse_id' => $partnerWarehouseId, 'promos' => json_encode($item->getPromos(), JSON_UNESCAPED_UNICODE), 'subsidies' => json_encode($item->getSubsidies(), JSON_UNESCAPED_UNICODE), ]; @@ -1793,14 +1801,16 @@ class MarketplaceService $orderItem->shop_sku = $item->getShopSku(); $subsidy = $item->getSubsidy(); if ($subsidy === null) { - Yii::warning('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->subsidy = $subsidy ?? 0; + $orderItem->subsidy = $subsidy; $partnerWarehouseId = $item->getPartnerWarehouseId(); if ($partnerWarehouseId === null) { - Yii::warning('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->partner_warehouse_id = $partnerWarehouseId ?? 'N/A'; + $orderItem->partner_warehouse_id = $partnerWarehouseId; $orderItem->promos = json_encode($item->getPromos(), JSON_UNESCAPED_UNICODE); $orderItem->subsidies = json_encode($item->getSubsidies(), JSON_UNESCAPED_UNICODE); @@ -1976,14 +1986,16 @@ class MarketplaceService $orderItem->shop_sku = $item->getShopSku(); $subsidy = $item->getSubsidy(); if ($subsidy === null) { - Yii::warning('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getSubsidy() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->subsidy = $subsidy ?? 0; + $orderItem->subsidy = $subsidy; $partnerWarehouseId = $item->getPartnerWarehouseId(); if ($partnerWarehouseId === null) { - Yii::warning('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + Yii::error('getPartnerWarehouseId() вернул null для orderId=' . $marketplaceOrder->id . ', shopSku=' . $item->getShopSku(), 'marketplace'); + continue; } - $orderItem->partner_warehouse_id = $partnerWarehouseId ?? 'N/A'; + $orderItem->partner_warehouse_id = $partnerWarehouseId; $orderItem->promos = json_encode($item->getPromos(), JSON_UNESCAPED_UNICODE); $orderItem->subsidies = json_encode($item->getSubsidies(), JSON_UNESCAPED_UNICODE); -- 2.39.5