単純な製品のカスタムオプションのデフォルト状態


11

タイプチェックボックスのカスタムオプションを持つ一連の製品があります。ただし、製品のセットアップからその特定のオプションのデフォルト状態を設定することはできません。

ユーザーが商品ページを入力したり、カテゴリページからカートに追加したりするときに、デフォルトでチェックされるチェックボックス(オプション)の少なくとも1つが必要です。

これはMagentoの管理から実行できますか、それともいくつかの追加の開発が必要ですか(そうであれば、これをどのように行うことができますか)?


カタログ-> [属性の管理]-> [属性の管理]-> [ラベル/オプションの管理]->デフォルトのオプションのすぐ隣に「デフォルト」と設定しただけか、または入力タイプ「yes / no」を使用する場合属性プロパティの下でデフォルト値を設定できます
Stefan Gregori 2014年

実際、現在のオプションは、管理者の製品ページから「カスタムオプション」で設定されています。あなたの提案はそれを製品属性に変換することですか?製品価格に対して同じ動作を維持しますか?
マイク

回答:


16

拡張機能の推奨が有効な回答として数えられるかどうかはわかりませんが(賞金のある質問の場合)、誰かがここで、必要な機能を正確に実行する拡張機能を作成したと主張しています。拡張機能はこちらからダウンロードできます。私はそれをテストしていませんが、テストしたらすぐに投稿して更新します。私はコードを見ただけで、たくさんあります。2ファイルで興味がなくなりました。私はそれがあなたのために働くことを望みます。

[編集]
私は興味を取り戻しました。私は拡張機能をテストしましたが、(ほとんど)機能します。
開発者モードで使用すると、いくつかのエラーが発生します。これを機能させるために変更する必要があるのは次のとおりです。ライン28上でこのあります:
/app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.php

$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. プロ。ドロップダウンとラジオのカスタムオプションに最適
  2. 神経質。複数の選択およびチェックボックスのカスタムオプションの種類。使用可能な値として選択できる値は1つだけです。
  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は、カスタムオプションのデフォルト値をどのように設定できるかを尋ねました。
マリウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.