【问题标题】:Magento Custom Options AutomaticallyMagento 自动自定义选项
【发布时间】:2016-03-21 22:33:30
【问题描述】:

我制作的这个扩展在我保存产品时运行良好。它只是添加了自定义选项。

这里是 config.xml

<?xml version="1.0"?>
<config>
<modules>
    <Custom_Options>
        <version>0.0.1</version>
    </Custom_Options>
</modules>
<global>
    <models>
        <custom_options>
            <class>Custom_Options_Model</class>
        </custom_options>
    </models>
</global>
<adminhtml>
    <events>
        <catalog_product_save_before><!-- observe the event -->
            <observers>
                <custom_options>
                    <class>custom_options/observer</class>
                    <method>autoMetaDescription</method>
                </custom_options>
            </observers>
        </catalog_product_save_before>
    </events>
</adminhtml>
</config>

Observer.php

<?php 
class Custom_Options_Model_Observer {
public function autoMetaDescription($observer) {
    $product = $observer->getEvent()->getProduct();

    //check that we haven't made the option already
    $options = $product->hasCustomOptions();
   if( $product->getData('has_options') && ($product->getTypeID() == 'simple')){

} else
 {
 $option6 = array(
        'title' => 'Hardware Finish',
        'type' => 'drop_down',
        'is_require' => 1,
        'sort_order' => 4,
        'is_delete' => '',
        'previous_type' => '',
        'previous_group' => '',
        'price' => '0.00',
        'price_type' => 'fixed',
        'sku' => '',
        'values' => array(
            array(
                'is_delete' => 0,
                'title' => 'Black Nickel',
                'price_type' => 'fixed',
                'price' => 0,
                'option_type_id' => -1,
            )

              );


           //don't use it like this because it has no effect
     //$product->setProductOptions($options);
    $product->setCanSaveCustomOptions(true);

   $product->getOptionInstance()->addOption($option6);

  //don't forget to state that the product has custom options
    $product->setHasOptions(true);
    //$product->save();
}
  }
 }

基本上有些产品没有自定义选项,但它总是会向它们添加选项。我认为有一种方法可以克服这个问题,就是在创建产品时使用调用的操作。 As In this image

请告诉我按下此按钮时调用了哪个动作或控制器,或者任何其他解决此问题的方法。

【问题讨论】:

    标签: php magento zend-framework magento-1.9 observer-pattern


    【解决方案1】:

    回答问题

    请告诉我按下此按钮时调用了哪个动作或控制器,或者任何其他解决此问题的方法。

    要观察产品的初始创建,您可以观察catalog_product_new_action

    听起来您正试图防止某些产品被您的观察者操纵。如果是这种情况,我建议您创建一个是/否的属性,以启用/禁用 AutoMetaDescription 功能。只需在操作产品之前检查属性的值即可。

    【讨论】:

    • 如果这对你有用,那就继续接受我的回答吧!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多