製品のカスタムオプションにデフォルト値を設定する


7

製品用に作成されたカスタムオプションがあります。ユーザーがフロントエンドをチェックするとデフォルトのオプションが「選択してください」の代わりに表示されるように、カスタムオプションのデフォルトとしていくつかのオプションを設定する必要があります。

ここに画像の説明を入力してください

シンプルな製品のカスタムオプションの拡張機能のデフォルトの状態を 1つ見つけました

でも、オプションをつくっているところに出せるか探しています。

回答:


4

に行く Mage/Catalog/Block/Product/View/Options/Type/Select.php::getValuesHtml()

コメント(59行目)のaddOption一部

$select->setName('options['.$_option->getid().']');
                ->addOption('', $this->__('-- Please Select --'));

すなわち

/ *- >addOption('', $this->__('-- Please Select --'));* /

これで問題が解決することを願っています。


いい案。私はこれをやっただけで、それは魅力のように働きました。私はそれを行う699ドルの拡張機能を検討していました(プラス少し追加)。次に、カスタムオプションの下の値の「順序」を変更するだけです。ありがとうございました!
NotJay 2015

私はメインの製品を0の価格で作成し、すべてのカスタム製品を実際の価格で作成しました。このオプションは製品の詳細ページでデフォルトオプションを設定するのに最適です。グリッドページはどうですか、価格0を取得しています。そこで更新するオプションはありますか?
マニー

なぜあなたのような専門家が1つの回答を投稿し、サイトを再開しないのかわからない。コミュニティはあなたのような人を必要としている....
Magentoの赤ちゃん'12年

0

私はあなたがその形で製品を持っていると思います:

    $product = Mage::getModel('catalog/product');

    $product->setWebsiteIds(array(1));//Your website id
    $product->setAttributeSetId(9);//Your attribute code

    $product->setName('A name');
    .
    .
    more attributes you want to set.

After that you need this code:

$optionInstance = $product->getOptionInstance()->unsetOptions();
$product->setHasOptions(true);

$optionInstance->addOption($this->makeCustomOptions());
$product->setCanSaveCustomOptions(true);
$optionInstance->setProduct($product);

$product->save();


protected function makeCustomOptions(){

        return $option = array(
            'title' => 'Licenses',
            'type' => 'drop_down',//That can be checkbox and more
            'is_require' => 0,//1 if required

            'values'=>array(//These are the options
                array(

                    'title'             => "30 Days",
                    'price'             => -5,
                    'price_type'        => "fixed",
                    'sku'               => "30"
                ),
                array(

                    'title'             => "365 Days",
                    'price'             => -3,
                    'price_type'        => "fixed",
                    'sku'               => "365"
                ),
                array(

                    'title'             => "730 Days",
                    'price'             => -2,
                    'price_type'        => "fixed",
                    'sku'               => "730"
                )
            )

        );
    }

それだけです。好きなように変更できます。


vbak、それは質問に答えません。Pradeepは、フロントエンドフィールドに「選択してください」が表示されないように、デフォルトとして1つのカスタムオプションを選択する方法を尋ねました。
Wojtek Naruniec 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.