2013-09-25 23 views

回答

2

如果你有機會到MySQL直接,你可以這樣做:

的關係,從配置和孩子的父母都在catalog_product_super_link 商店,讓所有的產品在這個表很簡單是一個配置的孩子的。

visbility存儲爲一個整數和「不單獨可見」表示爲「1」

現在我們可以使用這個查詢,但是如果你有一個本地或分期系統嘗試他們的第一次!

UPDATE catalog_product_entity_int AS pei 
JOIN 
    catalog_product_super_link AS sl ON pei.entity_id = sl.product_id 
JOIN 
    eav_attribute AS e ON e.attribute_code = 'visibility' 
     AND pei.attribute_id = e.attribute_id 
SET 
    pei.value = 1 

對於網站複選框使用插入SELECT語句,並用你的身份證

INSERT IGNORE INTO 
    catalog_product_website (product_id, website_id) 
SELECT product_id, {the website id} AS website_id FROM catalog_product_super_link; 
+0

謝謝,這是否也設置在網站下激活複選框? – user1424612

+0

沒有對不起,我錯過了,但我認爲你有你的答案:) –

+0

你會這麼好心地插入網站激活代碼? – user1424612

2

更換{網站ID}如果你沒有進入MySQL,我相信這也將工作:

$sites=Mage::app()->getWebsites(true); 
foreach($sites as $site){ 
    $site_list[]=$site->getWebsiteId(); 
} 

$products=Mage::getResourceModel("catalog/product_collection")->addAttributeToFilter("type_id","configurable"); 

foreach ($products as $product){ 
    $child_products = $product->getTypeInstance()->getAssociatedProducts(); 

    $child_product_ids=array(); 

    foreach($child_products as $child_product){ 
     array_push($child_product_ids,$child_product->getId()); 
    } 

    Mage::getSingleton('catalog/product_action')->updateAttributes(
     $child_product_ids, 
     array(
      'visibility' => "1", 
      'website_ids' => $site_list 
     ), 
     Mage::app()->getStore()->getId() 
    ); 

} 
+0

謝謝,我不是專家,但是是否激活了您的代碼中的網站複選框? – user1424612

+0

我已經更新了片段,因此它現在也應該這樣做。雖然正如Fantus所說,確保在開發環境中首先對其進行測試,如果您有一個:) –

+0

謝謝。我如何運行這個腳本? – user1424612

相關問題