]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix(ERP-252): safe serialization of deliveryText in logs (array to string fix)
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Mon, 2 Mar 2026 20:25:19 +0000 (23:25 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Mon, 2 Mar 2026 20:25:19 +0000 (23:25 +0300)
$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 <noreply@anthropic.com>
erp24/services/MarketplaceService.php

index 5dc9ed3533084c392153fe726cbec61dd1e0f073..89d9ef1ce2d1b87912520dee47f339a3c75fda7e 100644 (file)
@@ -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 ?: 'Россия';