Php Magento批量更新关联产品的重量

Php Magento批量更新关联产品的重量,php,magento,Php,Magento,我创建了一个分组产品,并向其中添加了数量为1、重量为0的关联产品。因此,当我在home search中搜索此分组产品时,产品不会显示,因此是否有方法批量更新产品的重量?我参考了此链接并批量更新了重量,但因此搜索不起作用,但是,当我从管理后端更新了每个产品的重量时,它的工作效率几乎超过了100000个产品。任何帮助都是值得感谢的。我觉得这可能是数据重新索引的问题,你可以用这个答案来回答 如果仍然存在问题,请转到管理->目录->属性->管理属性,然后单击权重进行编辑。在编辑屏幕上,您可以将“用于产

我创建了一个分组产品,并向其中添加了数量为1、重量为0的关联产品。因此,当我在home search中搜索此分组产品时,产品不会显示,因此是否有方法批量更新产品的重量?我参考了此链接并批量更新了重量,但因此搜索不起作用,但是,当我从管理后端更新了每个产品的重量时,它的工作效率几乎超过了100000个产品。任何帮助都是值得感谢的。

我觉得这可能是数据重新索引的问题,你可以用这个答案来回答


如果仍然存在问题,请转到管理->目录->属性->管理属性,然后单击权重进行编辑。在编辑屏幕上,您可以将“用于产品列表”的值设置为“否”,如果将其设置为“是”,并重新编制数据索引,我认为这将解决您的问题。

我编写了简单的脚本来批量更新产品的重量。 我有一个csv,有两列,第一列是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是权重属性的属性_id。您需要在数据库中检查此项。或者,您可以使用属性id的内部联接更新查询,并按属性\u code=weight进行筛选。

很抱歉,前面的帖子出错了。这些问题仍然存在。我可以看到数据库值已更新,但仍然无法在搜索结果中看到产品。