Magento,precomplete自定义选项,同时在管理中创建/编辑产品

wh6knrhe  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(143)

在Magento管理中创建或编辑产品的过程中,我试图预先完成自定义选项:在产品类型选择之后。
我在 Mage _Adminhtml_Block_Catalog_Product_Edit_Tabs _prepareLayout函数上添加了一个事件触发器,所以基本上当你打开一个产品的版本或创建时,事件就会被触发。
我的目标是:当你开始编辑你的新产品,3个自定义选项已经存在于“自定义选项”选项卡。
我不能用catalog_product_保存_before事件触发它,因为其中一个选项是下拉类型,必须由管理员填写。
因此,我编写了我的观察器,并成功地用setName()函数修改了产品名称,但我找不到如何预完成/添加自定义选项。
我尝试了以下博客的代码:http://kamal250.wordpress.com/2012/10/22/create-custom-option-programatically-while-creating-product/#comments
但似乎不起作用。
有人能帮我吗?
下面是我在观察器中的代码:

$option_data = array(
        'is_delete'         => 0,
        'is_require'        => true,
        'previous_group'    => '',
        'title'             => 'Height',
        'type'              => 'field',
        'price_type'        => 'fixed',
        'price'             => '0',
        'sort_order'        => 1,
        'values'            => array()
    );

    $product->setHasOptions(1);
    $product->setCanSaveCustomOptions(1);
    $product->setOptions(array($option_data));
    $product->setProductOptions(array($option_data));

    $opt = Mage::getSingleton('catalog/product_option');
    $opt->setProduct($product);
    $opt->addOption($option_data);
    $opt->saveOptions();
    $product->setOption($opt);
bf1o4zei

bf1o4zei1#

最后我找到了解决办法:我将触发器修改为打开自定义选项选项卡的操作。
下面是我在观察器中的代码:

$product = $observer->getProduct();

    $option_data = array(
        'is_delete'         => 0,
        'is_require'        => true,
        'previous_group'    => '',
        'title'             => 'Height',
        'type'              => 'field',
        'price_type'        => 'fixed',
        'price'             => '0',
        'sort_order'        => 1
    );

    $product->setHasOptions(1);
    $option = Mage::getModel('catalog/product_option')->setProductId($product->getId())->setStoreId($product->getStoreId())->addData($option_data);
    $option->save();
    $product->addOption($option);

希望它迟早会帮助到某个人。
再见了。

相关问题