From: Vladimir Fomichev Date: Thu, 2 Oct 2025 12:29:09 +0000 (+0300) Subject: Оставляем в фиде активные товары X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=e52300684e1b71f8abc247e6aa5a19c7b153d709;p=erp24_rep%2Fyii-erp24%2F.git Оставляем в фиде активные товары --- diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index 34c00bac..52d81640 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -29,6 +29,7 @@ use yii_app\records\MarketplaceOrderStatusHistory; use yii_app\records\MarketplaceOrderStatusTypes; use yii_app\records\MarketplacePriority; use yii_app\records\MarketplaceStore; +use yii_app\records\MatrixErp; use yii_app\records\MatrixErpMedia; use yii_app\records\MatrixErpProperty; use yii_app\records\Prices; @@ -420,8 +421,24 @@ class MarketplaceService $productQuantities = $storeData[$storeGuid]; + // Сначала получаем активные товары из MatrixErp с is_feed_active = 1 + $activeMatrixProducts = MatrixErp::find() + ->where(['group_name' => 'marketplace']) + ->andWhere(['active' => 1]) + ->andWhere(['is_feed_active' => 1]) + ->all(); + + // Извлекаем GUID'ы активных товаров + $activeProductGuids = array_map(function($matrixProduct) { + return $matrixProduct->guid; + }, $activeMatrixProducts); + + // Находим товары в Products1c только по активным GUID'ам из MatrixErp + // и которые есть на складе + $availableProductGuids = array_intersect($activeProductGuids, array_keys($productQuantities)); + $products = Products1c::find() - ->where(['id' => array_keys($productQuantities)]) + ->where(['id' => $availableProductGuids]) ->andWhere(['!=', 'components', '']) ->all();