Future ShopというCMSを使用したECサイトのLPを制作する案件があり、
そのLPの中で、特定の商品について、商品ページに飛ばさずに、ボタンを押したら直接カートインする仕様を実現することに。
Future Shopでは、CMSの管理画面の商品一覧ページにて、商品のSKU単位でダイレクトカートインのHTMLコードが発行できる。
しかし、このHTMLコードが、
<form action="https://aqua-cosme.com/fs/aquaaqua/ToCart.html" method="post">
<input type="hidden" name="goodsNo" value="A1WW-0265">【予約限定12%off】オーガニッククッションコンパクト カラーベース (リフィル&限定ケースセット)※制作中使用不可
<table cellspacing="4" cellpadding="0">
<tr>
<td>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td>カラー</td>
<td> </td>
</tr>
<tr>
<td>ピンク(トーンアップ)</td>
<td>
<input type="radio" name="variation_A1WW-0265" value="17_0"/></td>
</tr>
<tr>
<td>グリーン(ニキビ跡・赤みに)</td>
<td>
<input type="radio" name="variation_A1WW-0265" value="18_0"/></td>
</tr>
<tr>
<td>イエロー(シミ・年齢肌に)</td>
<td>
<input type="radio" name="variation_A1WW-0265" value="19_0"/></td>
</tr>
<tr>
<td>グロー(ツヤ肌を叶える)</td>
<td>
<input type="radio" name="variation_A1WW-0265" value="20_0"/></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>数量<input name="cnt_A1WW-0265" type="text" value="" size="5"></td>
</tr>
</table>
<input type="submit" value="カートへ">
</form>
のようにFORMタグを使う仕様になっており、
LPのボタンデザインに適用するためには、Aタグで置き換えできないかと思い、検索すると、やはりあった。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9SFRNTCVFMyU4MSVBRUElRTMlODIlQkYlRTMlODIlQjAlRTMlODElQTdQT1NUJUUzJTgxJTk5JUUzJTgyJThCJUU2JTk2JUI5JUU2JUIzJTk1JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz01MDlkNTMyZDUyOWYxNDU1MTA0ZjIyOWYxNjFjZTcyYQ&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBuZXh0MWthMnUmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWNkYTVjNTY4Yzk3YjBkZmY0OWJlMWFhZDUyZTRkYmE2&blend-x=142&blend-y=486&blend-mode=normal&s=02f52fa25b35c613ada142876c321753)
(2023年2月、上記の記事のやり方をちょっとだけ変えて、管理しやすいコードで以下を更新しました)
<a class="conversion_btn" href="javascript:lp01_01.submit();">購入する<img src="/wp-content/themes/aqua-c/assets/img/2023ss/lp01/cart.png" alt=""></a>
<form method="post" name="lp01_01" action="https://aqua-cosme.com/fs/aquaaqua/ToCart.html">
<input type="hidden" name="goodsNo" value="A1MS-0"><!--商品の品番のデータ-->
<input type="hidden" name="variation_A1MS-0" value="1_0"/><!--商品の持つSKUのバリエーションのデータ-->
<input name="cnt_A1MS-0" type="hidden" value="1"><!--数量-->
</form>
このように、Aタグのリンク指定でJavascriptを呼び、Javascriptのnameで指定したidのFORMタグの情報をPOSTできる。
もし、上記コードで動かない場合は、formタグのidが重複している可能性がある。formのidは重複していると正常に機能しない。
また、コード4行目の、inputタグ内のvalueの指定にも注意が必要だ。
ここのvalueの値が、冒頭で挙げた、futureshopから出力されるコードと違った値や、存在しない値にしても、正常に機能しない。
javascript:form1.submit()
の部分で、FORMタグのNAME情報で指定した”form1″(任意の名前でよい)を呼び出すことで実行できる。
![](https://prythmworks.tokyo/wp-content/uploads/cocoon-resources/blog-card-cache/e8dde7d291cc1be84994ea6bc0e2d1ac.jpg)
このLPの中の、以下のボタンがその実装部分。
![](https://prythmworks.tokyo/wp-content/uploads/2020/08/image-2.png)