2015-09-22 35 views
-2

我有一個超過3000個產品和1000個類別的magento商店。php腳本爲magento

Category I 
     Category 1 
     Category 2 
Category II 
     Category 3 
     Category 4 

我的問題是,所有的產品只在最深的類別。例如:類別3中的產品也必須屬於類別II,但事實並非如此。有沒有辦法通過所有的產品通過PHP腳本來做到這一點?

在此先感謝!

+0

正確的是,雖然它需要一些計劃來確保它能夠移動正確的產品:) – Epodax

+0

你能發佈一些你的實際結構,嘗試這個問題,最小的可驗證的例子......? –

+0

最簡單的可能是購買一些現有的模塊,像這樣:http://www.extendware.com/magento-category-copy.html 甚至可能有免費的替代品。 –

回答

0

您可以創建一個簡單的模塊,這將有一個單一的數據安裝腳本,像這樣的東西里面:

$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(); 
} 

基本上,$categoryi是你要分配給您的產品類別。 $category2是從中檢索您的產品的類別。

這個腳本只是一個例子。您將不得不修改它以適應您的類別ID,並可能添加一個循環,以便適用於所有類別!

0

你只需要激活選項是在類別錨點顯示子類別的產品就可以了。

0

我不認爲這需要任何編碼。你可以嘗試以下方法:

  • 開放分類1
  • 進入顯示設置
  • 組「錨」從「無」到「有」
  • 保存類別1
  • 轉到指數管理
  • 重新索引的索引項「類產品」

檢查前端。子類別中的產品現在也應顯示在父類別中。如果這項工作改變了所有類別。或者創建一個腳本來更新此類別設置。

祝你好運!