Liquid、JavaScriptなどに関する質問
チェックアウト時にクーポンを利用せずに、直接小計から割引した金額を実際の購入金額にも適用したいのですが技術的に可能でしょうか?
可能な場合は方法をご教授いただきたいです。
※checkout.liquid で下記スクリプトを埋め込んで小計を取得できるところまでは確認できています。
<script>
//小計が1ドル以上かチェック
{% assign subtotal_price = checkout.subtotal_price %}
{% assign limit = 1 | times:100 %}
{% if subtotal_price >= limit %}
//小計から50パーセント割引
{% assign discount = 50 | times:0.01 %}
{% assign discount_amount = 1 | minus:discount %}
{% assign discount_subtotal_price = subtotal_price | times:discount_amount %}
console.log("元の小計:{{subtotal_price}}({{ subtotal_price | money }})");
console.log("割引後の小計:{{discount_subtotal_price}}({{ discount_subtotal_price | money }})");
{% endif %}
</script>
解決済! ベストソリューションを見る。
成功
検証してはいないのですが、Plusマーチャントですとご提示のようにcheckout.liquidでLiquidを使って表示変更はできますが、Shopifyのシステムの仕様として、購入金額は配送料や税、クーポンから計算されたもので行われるので、テーマで制御するのは難しいと思います。
どうしてもいうことであれば、Order APIやStorefront APIなどを使って独自のチェックアウト画面を作って、そこからAPI経由でチェックアウトさせる方法がありますが、決済もShopify Paymentなどを連動させるとなると、それ用の別審査が必要なPayment APIも必要になるので、かなり大掛かりな改修になるかと思います。
成功
検証してはいないのですが、Plusマーチャントですとご提示のようにcheckout.liquidでLiquidを使って表示変更はできますが、Shopifyのシステムの仕様として、購入金額は配送料や税、クーポンから計算されたもので行われるので、テーマで制御するのは難しいと思います。
どうしてもいうことであれば、Order APIやStorefront APIなどを使って独自のチェックアウト画面を作って、そこからAPI経由でチェックアウトさせる方法がありますが、決済もShopify Paymentなどを連動させるとなると、それ用の別審査が必要なPayment APIも必要になるので、かなり大掛かりな改修になるかと思います。
junichiokamura様
ご回答いただきありがとうございます。
ドキュメントに記載がなかったので購入金額を直接編集するのは難しとは思っておりました。。
独自実装も現実的ではないのでクーポンを使うことにします。
ありがとうございました。
最近知ったのですが、 shopify plusで使える 「Script Editor」アプリで、決済画面に任意のrubyコードを差し込めるようです!
https://apps.shopify.com/script-editor
Line item scripts affect line items in the cart and can change prices and grant discounts. Note: Theme modifications may be required to show the discount amount or messages in the cart and/or checkout.
shopify plusでないと使えないですが、決済画面自体を独自実装する以外で有効な方法かと思います!(未検証ですが、、)
今後のためにも共有としてコメント残しておきます!
そうですね、確かにPlus限定機能のScript Editorだと反映できたはずです。(見落としていました)。
内部的にはクーポン処理と同じことをやっているかと思うのですが、Plusマーチャントであれば、checkout.liquidよりも、Script Editor をまずお試しいただくのが良いかと思います。
情報ありがとうございます。
Script Editorは一応検証済なのですが、カート画面までしか反映できないようにみえました。
チェックアウト画面にも反映できるのは確かなのでしょうか・・・?
アプリのページを見ると、種類は3種類で、それぞれ反映されるスコープがあるようです。
https://apps.shopify.com/script-editor?locale=ja
Shopify スクリプトには3つの異なるタイプがあります。
項目スクリプトはカート内の項目に作用するため、価格の変更やディスカウントの付与を実行できます。メモ: カートおよび/またはチェックアウトでディスカウント金額やメッセージを表示するには、テーマの変更が必要になる場合があります。
配送スクリプトは配送と相互作用し、配送方法の名前の変更、表示、非表示、または再注文することができ、配送料金のディスカウントを提供できます。
決済スクリプトは決済と相互作用し、決済サービスの名前の変更、表示、非表示、再注文することができます。
これを見ると、項目(金額)変更はカート部分への反映で、それ以降に反映されるのは、配送料部分と、決済手段の部分なので、やはり、ご希望のアプローチは、ScriptEditorでは難しいかもしれませんね。。(メモにもそれと同様のことが書いてあります)。
詳細な情報ありがとうございます。
ちょっと認識誤っていました。「決済」であればカート画面以降でも反映可能なのですね。
今回やりたかったことはScript Editorでも難しそうということを再認識できて良かったです。
ありがとうございました。
Shopifyのチェックアウトは世界一コンバージョン率が高いチェックアウトです。2023年4月に実施された世界3大手マネジメントコンサルティング会社の共同調査によると、Sho...
By Minami_ Apr 11, 2024Shopifyのルーツ Shopifyは、スノーボードをオンラインで販売したいという夢を叶えるために2004年に誕生しました。当時は大企業だけがインターネットで販売す...
By JapanGuru Apr 7, 2024リエンゲージメントの自動化で売り上げ向上へ!素敵なオンラインストアを作成し、見込み顧客の携帯へ広告を直接に送信する、またはSNSなどで宣伝すると、お客様がストアに行き着...
By Mirai Mar 24, 2024