【问题标题】:Magento 2 programmatically update product save empty value to product attributeMagento 2 以编程方式更新产品,将空值保存到产品属性
【发布时间】:2017-04-06 10:25:39
【问题描述】:

使用从csv文件中获取的值更新现有产品的(Magento CE 2.1.5)属性,当值不是空字符串时没有问题,但是当尝试保存空字符串时,产品属性值尚未更新

$product->setWidth("");
$product->save();

产品保存后的结果是属性值保持不变,即更新前的值。 尝试了其他几种方法,在其他地方提到过,但没有结果

$product->setWidth("");  //does nothing
$product->setData("width",""); //does nothing
$product->unsetData("width"); //does nothing
$product->setWidth(new \Zend_Db_Expr('')); //does nothing
$product->setData("width",null); //does nothing
$product->save();

所以问题是正确的方法是什么?那么想知道将 magento 2.x 属性设置为 emtpy 的正确方法是什么?

【问题讨论】:

  • 发现csv导入有bug报告,所以可能是这个问题与github.com/magento/magento2/issues/7468neverless从admin方面没有保存emtpy值的问题,所以必须找到正确的设置值 emtpy 的方法,尝试添加 _edit_mode 标志,但这也没有帮助。

标签: php attributes product magento2


【解决方案1】:

如果我们尝试将其设置为 null,则该属性将采用“默认”值。

改用$product->setWidth(' '),基本上设置一个空格而不是null就可以解决问题。

收集数据时,使用if (!empty($product->getWidth())) { ... }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多