简单产品的自定义选项的默认状态


11

我有一系列带有自定义选项类型复选框的产品。但是,我无法从产品设置中设置该特定选项的默认状态。

当用户进入产品页面/从类别页面添加到购物车时,默认情况下,我需要至少选中一个复选框(选项)。

Magento主管部门是否可以做到这一点,还是需要一些额外的开发(如果可以的话,该怎么做)?


不能在目录->管理属性->“您的属性”->管理标签/选项->默认选项旁边设置“默认”,如果您使用输入类型“是/否”,可以在属性属性下设置默认值
Stefan Gregori,2014年

实际上,现在可以通过admin产品页面中的“自定义选项”来设置选项。您的建议是将其转换为产品属性?它会保持产品价格相同的行为吗?
迈克

Answers:


16

我不知道推荐的扩展名是否算作有效答案(对于悬赏的问题),但是有人在这里声称他编写的扩展名完全可以满足您的需求。扩展程序可以从这里下载。我还没有测试过,但是,我会尽快发布和更新。我只浏览了代码,并且有很多。2个文件后,我失去了兴趣。我希望这个对你有用。

[编辑]
我又恢复了兴趣。我在上测试了扩展名,并且(几乎)可以正常工作。
如果在开发人员模式下使用它,则会出现一些错误。这是您需要进行更改以使其起作用的内容。
/app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.php第28行中是这样的:

$model->setData('value['.$option_id.']',$value[0]['option_type_id']);

这显示“未定义的索引”警告。为了避免这种情况,请将其包装在if语句中。

if (isset($value[0])){
    $model->setData('value['.$option_id.']',$value[0]['option_type_id']);
}

/app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.php第129行中是这样的:

foreach ($values as $value) {
    $valuesArr[$value['option_type_id']]=$value['title'];
}

$values 可能为null,因此将代码更改为此:

if (is_array($values)){
    foreach ($values as $value) {
        $valuesArr[$value['option_type_id']]=$value['title'];
    }
}

现在应该可以了。
现在一些回顾。

  1. PRO。非常适合下拉菜单和广播自定义选项
  2. 神经性的。多种选择和复选框自定义选项的种类。您只能为可用值选择一个值。
  3. 不方便,但我可以忽略它。为了设置默认值,您必须单击后端中的另一个菜单项,然后在列表中查找您的产品。
  4. 骗局。它不适用于文本,文本区域,日期,日期时间,时间,文件自定义选项。但是只需一点点工作,就可以将其更改为对于所有类型(也许文件除外)都可以正常工作。

1

Magento中不是默认设置。

可以这样实现。最好先备份后再继续。

$option = array(
    'title' => 'Your custom option title',  
    'type' => 'checkbox', // could be drop_down ,radio , multiple
    'is_require' => 1,
    'sort_order' => 0,
    'values' => getOptions()
    );

function getOptions(){
  return array(
     array(
       'title' => 'Option Value 1',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 1',
       'sort_order' => '1'
    ),
    array(
       'title' => 'Option Value 2',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 2',
       'sort_order' => '1'
    ),
  array(
       'title' => 'Option Value 3',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 3',
       'sort_order' => '1'
    )

); }

//假设我们正在创建一个新产品。

$product = Mage::getModel('catalog/product');
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

//或者如果我们要将选项添加到已创建的产品中。

$product = Mage::getModel('catalog/product')->load($id);
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

//不要忘记保存产品

$product->save();

这是一个很好的解释,说明如何通过代码为产品创建自定义选项,但我认为它不能回答问题。OP询问如何为自定义选项设置默认值。
马里乌斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.