シンプル製品のカスタムオプションのデフォルト状態
-
16-10-2019 - |
質問
タイプチェックボックスのカスタムオプションを備えた一連の製品があります。ただし、製品のセットアップから、その特定のオプションのデフォルト状態を設定することはできません。
ユーザーが製品ページに入力する /カテゴリページからカートに追加するときに、デフォルトでチェックボックスの少なくとも1つをチェックする必要があります。
これはMagento政権から実行可能ですか、それとも追加の開発が必要になりますか(もしそうなら、これをどのように行うことができますか)?
解決
拡張機能を推奨することが有効な答えとしてカウントされるかどうかはわかりません(恵みのある質問の場合) 誰かがここで主張しています 彼があなたが必要とすることを正確に行う拡張機能を書いたこと。拡張機能は可能です ここからダウンロード. 。私はそれをテストしていませんが、私がそうするとすぐに、私は投稿して更新します。私はコードを調べただけで、それがたくさんあります。 2ファイル後に興味を失いました。私はそれがあなたのために働くことを願っています。
編集
私は興味を持っています。拡張機能をテストしました CE-1.7.0.2 そして、それは(ほぼ)機能します。
開発者モードで使用すると、いくつかのエラーが発生します。これがあなたがそれを機能させるために変更する必要があるものです。
の /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.php
28行目にこれがあります:
$model->setData('value['.$option_id.']',$value[0]['option_type_id']);
これは、「未定義のインデックス」警告を示しています。それを避けるために、それをanで包みます 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つの値のみを選択できます。
- 不便です しかし、私はそれを見落とすことができます。デフォルト値を設定するには、バックエンドの他のメニュー項目をクリックして、リスト内の製品を探す必要があります。
- con. 。テキスト、Textarea、日付、日付、時間、ファイルカスタムオプションでは機能しません。しかし、少しの作業では、すべてのタイプで正しく機能するように変更できます(ファイルを除く)。
他のヒント
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();