From 7dfc90f1c32f3c4be9a3e444cab500f9d3aa3199 Mon Sep 17 00:00:00 2001 From: Aleksey Filippov Date: Mon, 2 Mar 2026 23:25:19 +0300 Subject: [PATCH] fix(ERP-252): safe serialization of deliveryText in logs (array to string fix) $rawData['delivery'] can be array (JSON object), not just string. Use json_encode for non-string values in log messages. Co-Authored-By: Claude Opus 4.6 --- erp24/services/MarketplaceService.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index 5dc9ed35..89d9ef1c 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -1352,7 +1352,7 @@ class MarketplaceService if (empty($deliveryModel->street)) { $rawData = json_decode($marketplaceOrder->raw_data, true); $deliveryText = $rawData['delivery'] ?? null; - Yii::warning('[ERP-252-v3] new: street empty для заказа #' . $marketplaceOrder->id . ', address=' . ($address ? 'object' : 'null') . ', deliveryText=' . ($deliveryText ?: 'NULL'), 'marketplace'); + Yii::warning('[ERP-252-v3] new: street empty для заказа #' . $marketplaceOrder->id . ', address=' . ($address ? 'object' : 'null') . ', deliveryText=' . (is_string($deliveryText) ? $deliveryText : json_encode($deliveryText, JSON_UNESCAPED_UNICODE)), 'marketplace'); if ($deliveryText && is_string($deliveryText)) { $parsed = self::parseAddressFromDeliveryText($deliveryText); $deliveryModel->country = $deliveryModel->country ?: 'Россия'; @@ -1587,7 +1587,7 @@ class MarketplaceService if (empty($deliveryModel->street)) { $rawData = json_decode($marketplaceOrder->raw_data, true); $deliveryText = $rawData['delivery'] ?? null; - Yii::warning('[ERP-252-v3] update: street empty для заказа #' . $marketplaceOrder->id . ', address=' . ($address ? 'object' : 'null') . ', deliveryText=' . ($deliveryText ?: 'NULL'), 'marketplace'); + Yii::warning('[ERP-252-v3] update: street empty для заказа #' . $marketplaceOrder->id . ', address=' . ($address ? 'object' : 'null') . ', deliveryText=' . (is_string($deliveryText) ? $deliveryText : json_encode($deliveryText, JSON_UNESCAPED_UNICODE)), 'marketplace'); if ($deliveryText && is_string($deliveryText)) { $parsed = self::parseAddressFromDeliveryText($deliveryText); $deliveryModel->country = $deliveryModel->country ?: 'Россия'; @@ -1941,7 +1941,7 @@ class MarketplaceService if (empty($deliveryModel->street)) { $rawData = json_decode($marketplaceOrder->raw_data, true); $deliveryText = $rawData['delivery'] ?? null; - Yii::warning('[ERP-252-v3] existing: street empty для заказа #' . $marketplaceOrder->id . ', address=' . ($address ? 'object' : 'null') . ', deliveryText=' . ($deliveryText ?: 'NULL'), 'marketplace'); + Yii::warning('[ERP-252-v3] existing: street empty для заказа #' . $marketplaceOrder->id . ', address=' . ($address ? 'object' : 'null') . ', deliveryText=' . (is_string($deliveryText) ? $deliveryText : json_encode($deliveryText, JSON_UNESCAPED_UNICODE)), 'marketplace'); if ($deliveryText && is_string($deliveryText)) { $parsed = self::parseAddressFromDeliveryText($deliveryText); $deliveryModel->country = $deliveryModel->country ?: 'Россия'; -- 2.39.5