]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавление параметров feature_fomichev_erp_149_flowwow_feed origin/feature_fomichev_erp_149_flowwow_feed
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 12 Nov 2024 15:24:21 +0000 (18:24 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 12 Nov 2024 15:24:21 +0000 (18:24 +0300)
erp24/services/MarketplaceService.php

index a227da0306b66fa6bfa891582bdebdbe3b779ea6..d663a559bac67465cbb75807e897e8ac53707503 100644 (file)
@@ -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),
 
         ];
     }