Mam sklep magento z ponad 3000 produktów i 1000 kategorii.
Category I
Category 1
Category 2
Category II
Category 3
Category 4
Moim problemem jest to, że wszystkie produkty są tylko wnajgłębsze kategorie. Na przykład: produkt z kategorii 3 musi być również w kategorii II, ale nie jest. Czy istnieje sposób, aby to zrobić za pomocą skryptu php ze wszystkimi produktami?
Z góry dziękuję!
Odpowiedzi:
0 dla odpowiedzi № 1Możesz utworzyć prosty moduł, który będzie posiadał pojedynczy skrypt do instalacji danych z czymś takim w środku:
$categoryi = array(6);
$category2 = 20;
$category = Mage::getModel("catalog/category")->load($category2);
/* @var $category Mage_Catalog_Model_Category */
$productsCollection = $category->getProductCollection();
/* @var $productsCollection Varien_Data_Collection_Db */
$products = $productsCollection->getItems();
/* @var $products array of Mage_Catalog_Model_Product */
foreach($products as $product) {
/* @var $product Mage_Catalog_Model_Product */
$categories = $product->getCategoryIds();
$categories = array_unique(array_merge($categories, $categoryi));
$product->setCategoryIds($categories);
$product->save();
}
Gruntownie, $categoryi
to kategoria, którą chcesz przypisać do swoich produktów. $category2
to kategoria, z której można pobrać produkty.
Ten skrypt jest tylko przykładem. Będziesz musiał go zmodyfikować, aby pasował do identyfikatorów kategorii i być może dodać pętlę, aby działała we wszystkich kategoriach!
0 dla odpowiedzi nr 2
Wystarczy aktywować opcję Zakotwicz w kategoriach, aby wyświetlić na niej produkty kategorii podrzędnych.
0 dla odpowiedzi № 3
Nie sądzę, aby do tego potrzebne było jakiekolwiek kodowanie. Możesz spróbować następujących rzeczy:
- Otwórz kategorię 1
- Przejdź do ustawień wyświetlania
- Ustaw „Is Anchor” z „No” na „Yes”
- Zapisz kategorię 1
- Przejdź do zarządzania indeksem
- ponownie indeksuj element indeksu „produkty kategorii”
Sprawdź frontend. Produkty z podkategorii powinny być teraz wyświetlane także w kategoriach nadrzędnych. Jeśli to działa, zmień je dla wszystkich kategorii. Lub utwórz skrypt, aby zamiast tego zaktualizować to ustawienie kategorii.
Powodzenia!