我刚刚将大约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;
答案 0 :(得分:3)
商店ID 0是管理商店 - 在进行自定义导入时,通常会设置此设置。除非您正在与多家商店合作,否则这不是问题。
更新产品的最快方法是转到目录 - >管理产品菜单,选择所有产品,然后选择“更新状态”并提交。然后,您可以在结果菜单上的网站选项卡中分配网站关联。
批量修改所有产品:
要使用代码来代替,您需要遍历产品集合并在那里设置网站或商店ID。一个例子:
$products = Mage::getModel('catalog/product')->getCollection();
foreach( $products as $product) {
$product->setStoreId($storeId);
try {
$product->save();
} catch(Exception $e) {
echo $e->getMessage();
}
}