From: fomichev Date: Tue, 12 Nov 2024 15:24:21 +0000 (+0300) Subject: Добавление параметров X-Git-Tag: 1.6~13^2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=d5f84773b5ec887e2e624282ecd1a4d24238cc67;p=erp24_rep%2Fyii-erp24%2F.git Добавление параметров --- diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index a227da03..d663a559 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -531,8 +531,9 @@ class MarketplaceService } // Добавление веса и количества - // $offer->addChild('weight', $product['weight']); - + if (isset($product['weight']) ) { + $offer->addChild('weight', $product['weight']); + } if (!(isset($product['category_id']) && str_starts_with((string)$product['category_id'], '1'))) { $offer->addChild('qty', $product['qty']); } @@ -549,12 +550,12 @@ class MarketplaceService } // Добавление параметров - /* if (!empty($product['params'])) { + if (!empty($product['params'])) { foreach ($product['params'] as $paramName => $paramValue) { $param = $offer->addChild('param', $paramValue); $param->addAttribute('name', $paramName); } - }*/ + } @@ -628,7 +629,23 @@ class MarketplaceService } private static function getProductQty($productId) { return 9; } private static function getProductWeight($productId) { - return 0.5; + $product = MatrixErpProperty::find() + ->where(['guid' => $productId]) + ->one(); + + if (!$product) { + $message = "У товара {$product-> guid} отсутствует запись в таблице свойств."; + Yii::error($message, __METHOD__); + InfoLogService::setInfoLog( + __FILE__, + __LINE__, + $message, + 'No MatrixErpProperty' + ); + return null; + } + + return $product->weight ?? 0.5; } private static function getProductCategory($productId) { @@ -702,20 +719,65 @@ class MarketplaceService private static function getProductWidth($productId) { - // Здесь можно реализовать логику получения ширины продукта - return 18; // Пример значения + $product = MatrixErpProperty::find() + ->where(['guid' => $productId]) + ->one(); + + if (!$product) { + $message = "У товара {$product-> guid} отсутствует запись в таблице свойств."; + Yii::error($message, __METHOD__); + InfoLogService::setInfoLog( + __FILE__, + __LINE__, + $message, + 'No MatrixErpProperty' + ); + return null; + } + + return $product->width ?? 40; } private static function getProductHeight($productId) { - // Здесь можно реализовать логику получения высоты продукта - return 20; // Пример значения + $product = MatrixErpProperty::find() + ->where(['guid' => $productId]) + ->one(); + + if (!$product) { + $message = "У товара {$product-> guid} отсутствует запись в таблице свойств."; + Yii::error($message, __METHOD__); + InfoLogService::setInfoLog( + __FILE__, + __LINE__, + $message, + 'No MatrixErpProperty' + ); + return null; + } + + return $product->height ?? 30; } private static function getProductLength($productId) { - // Здесь можно реализовать логику получения длины продукта - return 9; // Пример значения + $product = MatrixErpProperty::find() + ->where(['guid' => $productId]) + ->one(); + + if (!$product) { + $message = "У товара {$product-> guid} отсутствует запись в таблице свойств."; + Yii::error($message, __METHOD__); + InfoLogService::setInfoLog( + __FILE__, + __LINE__, + $message, + 'No MatrixErpProperty' + ); + return null; + } + + return $product->lenghth ?? 20; } private static function getProductParams($productId) @@ -724,6 +786,7 @@ class MarketplaceService 'Ширина, См' => self::getProductWidth($productId), 'Высота, См' => self::getProductHeight($productId), + 'Длина, См' => self::getProductLength($productId), ]; }