バックグラウンド
特定の製品で利用可能なオプションに関連/影響を与えるいくつかのカスタムエンティティを作成するモジュールを開発しています。仕組みは次のとおりです。
製品が読み込まれると、製品の2つの属性を使用してカスタムエンティティに対してクエリが実行されます。
クエリの結果を使用して、次のように2段階で表示します(顧客の最初の選択は、2番目の選択肢に影響します)。
チャレンジ
これが私がフロントエンドで達成する必要があると知っていることです:
1. Product view.phtmlの2つのロジックをオーバーライドします。
- - 最初:
<form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>
...がである場合にenctype="multipart/form-data"
のみ追加され、私の製品には実際に$_product->getOptions()
は追加されないことに気づくでしょうtrue
(これによりが返されますfalse
)
--- 2番目:
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
<?php echo $this->getChildChildHtml('container1', '', true, true) ?>
<?php endif;?>
...また、私の製品には実際にはカスタムオプションがないため、$this->hasOptions()
戻りfalse
、container1のレンダリングが妨げられます。
2.以下に示す ように、 'container1'-カスタムオプションのhtmlを「含む」子ブロック(ブロックですか?)を置換/上書き/上書きします。
view.phtml
直接コピーして編集することはこれを行う正しい方法ではないと主張するいくつかの投稿を読みましたが、代替手段は何ですか?
第二に、私が読んだIすることができますいずれかremove
または作品-私が使用する必要があり、その後、どのように私は正しく自分に置き換えてください方法?unSet
container1
container1
どうもありがとうございました!
catalog.xml
はそれをPRODUCT_TYPE_xxxxxx
ハンドルでどのように見るのですか?