Magento:批量更改产品商店ID

时间:2011-12-20 13:03:10

标签: magento

我刚刚将大约800个产品导入Magento,然后才意识到我将store_id设置为0,应该是1。

有谁知道更新这个的简单方法?我已经尝试将电子表格中的store_id更改为1并再次导入以更新它们,但它没有用。

我在http://www.magentocommerce.com/boards/viewthread/1798/发现了这个SQL,但是我遇到了语法错误和未知的列错误,所以我没有进一步使用它。

REPLACE INTO catalog_product_store (store_id, product_id) SELECT 1,entity_id from catalog_product_entity
update catalog_category_entity set store_id = 1 where store_id = 0;
update catalog_product_entity set store_id = 1 where store_id = 0;
update catalog_product_entity_datetime set store_id = 1 where store_id = 0;
update catalog_product_entity_decimal set store_id = 1 where store_id = 0;
update catalog_product_entity_gallery set store_id = 1 where store_id = 0;
update catalog_product_entity_int set store_id = 1 where store_id = 0;
update catalog_product_entity_text set store_id = 1 where store_id = 0;
update catalog_product_entity_tier_price set store_id = 1 where store_id = 0;
update catalog_product_entity_varchar set store_id = 1 where store_id = 0;

1 个答案:

答案 0 :(得分:3)

商店ID 0是管理商店 - 在进行自定义导入时,通常会设置此设置。除非您正在与多家商店合作,否则这不是问题。

更新产品的最快方法是转到目录 - >管理产品菜单,选择所有产品,然后选择“更新状态”并提交。然后,您可以在结果菜单上的网站选项卡中分配网站关联。

批量修改所有产品: Product Bulk Edit

要使用代码来代替,您需要遍历产品集合并在那里设置网站或商店ID。一个例子:

$products = Mage::getModel('catalog/product')->getCollection();

foreach( $products as $product) {
    $product->setStoreId($storeId);
    try {
        $product->save();
    } catch(Exception $e) {
        echo $e->getMessage();
    }
}