タイプチェックボックスのカスタムオプションを持つ一連の製品があります。ただし、製品のセットアップからその特定のオプションのデフォルト状態を設定することはできません。
ユーザーが商品ページを入力したり、カテゴリページからカートに追加したりするときに、デフォルトでチェックされるチェックボックス(オプション)の少なくとも1つが必要です。
これはMagentoの管理から実行できますか、それともいくつかの追加の開発が必要ですか(そうであれば、これをどのように行うことができますか)?
タイプチェックボックスのカスタムオプションを持つ一連の製品があります。ただし、製品のセットアップからその特定のオプションのデフォルト状態を設定することはできません。
ユーザーが商品ページを入力したり、カテゴリページからカートに追加したりするときに、デフォルトでチェックされるチェックボックス(オプション)の少なくとも1つが必要です。
これはMagentoの管理から実行できますか、それともいくつかの追加の開発が必要ですか(そうであれば、これをどのように行うことができますか)?
回答:
拡張機能の推奨が有効な回答として数えられるかどうかはわかりませんが(賞金のある質問の場合)、誰かがここで、必要な機能を正確に実行する拡張機能を作成したと主張しています。拡張機能はこちらからダウンロードできます。私はそれをテストしていませんが、テストしたらすぐに投稿して更新します。私はコードを見ただけで、たくさんあります。2ファイルで興味がなくなりました。私はそれがあなたのために働くことを望みます。
[編集]
私は興味を取り戻しました。私はce-1.7.0.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'];
}
}
これでうまくいくはずです。
今いくつかのレビュー。
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();