shop = new Shop($shopId); Shop::setContext(Shop::CONTEXT_SHOP, $shopId); // Funkcja do pobrania produktów z danej kategorii w kontekście sklepu function getProductsFromCategory($categoryId, $shopId) { $sql = new DbQuery(); $sql->select('p.id_product, pl.name'); $sql->from('category_product', 'cp'); $sql->innerJoin('product', 'p', 'p.id_product = cp.id_product'); $sql->innerJoin('product_lang', 'pl', 'pl.id_product = p.id_product AND pl.id_lang = '.(int)Context::getContext()->language->id); $sql->where('cp.id_category = '.(int)$categoryId); $sql->where('p.id_shop_default = '.(int)$shopId); return Db::getInstance()->executeS($sql); } // Funkcja do aktualizacji kategorii produktu function updateProductCategory($productId, $newCategoryIds, $shopId) { $product = new Product($productId, false, (int)Context::getContext()->language->id, $shopId); $currentCategories = $product->getCategories(); $newCategories = array_unique(array_merge($currentCategories, $newCategoryIds)); $product->updateCategories($newCategories); if ($product->update()) { echo "Produkt ID $productId został przypisany do kategorii: " . implode(", ", $newCategoryIds) . ".
"; } else { echo "Błąd podczas aktualizacji produktu ID $productId.
"; } } // Pobranie produktów z kategorii o ID 128 dla sklepu o ID 1 $products = getProductsFromCategory(189, $shopId); // Przypisanie produktów do odpowiednich kategorii, zachowując oryginalną kategorię 128 foreach ($products as $product) { $productId = (int)$product['id_product']; $productName = (string)$product['name']; $newCategoryIds = [128]; // Zachowanie oryginalnej kategorii 128 if (strpos($productName, '155/200') !== false) { $newCategoryIds[] = 187; } elseif (strpos($productName, '135/200') !== false) { $newCategoryIds[] = 188; } elseif (strpos($productName, '200/220') !== false) { $newCategoryIds[] = 189; } // Aktualizacja kategorii produktu updateProductCategory($productId, $newCategoryIds, $shopId); } echo "Aktualizacja zakończona."; ?>