makeshopでは、お気に入りに追加するとカート(買い物かご)の画面にお気に入り商品が一覧表示される。

カート画面をオリジナルデザインで作っていたら、この画面にでてくる
・お気に入り商品の削除ボタン
・お気に入り商品をカートに入れるボタン

の2つが機能しなかった。

管理画面を読み込んでみたけどわからない。

しょうがないので、chromeの検証でコンソールを開いて、jsのエラーを確認して、javascriptから追いかけていって解決。

■結論から

wishlistの商品数入力ボックス(タグで言うと[WISH_QUANTITY] ) 
を記述してないとエラーになるっぽい。

とはいえ、デザイン上お気に入り商品一覧画面で商品数を入力させたくなかったので、ソース上は表示させつつ見た目には見えないようにした。

<div style="display:none">
[WISH_QUANTITY]
</div> 

これで解決!
 

■どうやって見つけたかも書いておく。

①chromeの検証でconsoleをひらいておく。 

②エラーとなる「お気に入りの削除」ボタンをクリック。するとconsoleにエラー文言がでる。
「602行目のvalueがエラーだよ」 
のようなのが出た。

③chromeのソースビューで602行目を探すと
document.getElementById("formwish" + temp).amount.value=0;
このような1文があった。 

④tempというのは上のほうを探っていくと一覧の番号であることがわかる。 ので、valueがエラーということは、id="formwish1"というタグの子要素にamountというのが存在しないためのエラーということがわかる。ソースをみていくと確かにそんなタグは出力されてない。

⑤なんか必要なタグいれわすれてんのかな?と疑って、makeshop独自デザインの買い物カゴ編集画面を見に行く。wishlistのあたりを見ていると、[WISH_QUANTITY]というのがある。
あぁ、amount(=量)って数量のことかってことでためしにこのタグをいれてみたら、解決。 


って感じで探したよ。