马本托批量更新相关产品的重量


Magento Bulk update Weight of associated products

>我创建了一个分组产品,并向其中添加了数量为 1 和重量的关联产品 0.so 当我在主页搜索中搜索此分组产品时,产品未显示,所以有没有办法批量更新产品的重量?我 http://www.magentocommerce.com/boards/viewthread/266066/引用了此链接并批量更新了重量,但因此搜索不起作用,但是当我从管理后端更新每个产品的重量时,我几乎有超过 100000 种产品,任何帮助都会不胜感激

我觉得这可能是

数据重新索引的问题,你可以通过这个答案

Magento 1.7 导入产品问题

如果您仍然遇到问题,请转到管理员>目录->属性->管理属性,然后单击权重进行编辑。在编辑屏幕上,您可以将"在产品列表中使用"的值设置为"否",如果设置为是并重新索引数据,我觉得它会解决您的问题。

我编写了简单的脚本来批量更新产品的权重。我有一个 csv,有 2 列,第一列是 sku,另一列是要更新的产品权重。下面是脚本

set_time_limit(0);
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
umask(0);
Mage::app('admin');
Mage::register('isSecureArea', 1);
 try{
$csv = new Varien_File_Csv();
$file = 'set_products_with_weight.csv';
$products = $csv->getData($file);
$count = 0;
$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$writeConnection = $resource->getConnection('core_write');
foreach($products as $product)
{
    $weight = (float) $product[1];
    $query = 'UPDATE catalog_product_entity_decimal set value = '.$weight.' WHERE attribute_id = 80 AND entity_id IN (SELECT entity_id FROM catalog_product_entity where sku ="'.$product[0].'")';
    $results = $writeConnection->query($query);

}
} catch(Exception $e) {
    print_r($e);
}

其中 80 是权重属性的attribute_id。您需要在数据库中检查这一点。或者,您可以使用 attribute_id 的内部联接更新查询,并按 attribute_code=权重进行筛选。