Shopify アプリに関する話題はこちら
お世話になります。
表題の件、「アプリ内の設定では任意のテキストに変えられない」とShopifyサポートより回答がございましたので、
コーディング等でなんとか叶えることはできないかと思い、質問させていただきます。
こちらの画像のようなチャットボックスを開く前の表示
こちらを"ラベル"と呼ぶそうですが、これを「ご質問はお気軽に」に変更したいです。
方法をご存じの方いらっしゃいましたら、どうかご教授お願い致します。
解決済! ベストソリューションを見る。
成功
多少興味があったので試作してみました。
検討が浅い試作ですが以下のJSでとりえあず動作はするかなと思います。
<script>
const myChangeChatTitle = () => {
const myChatTitleText = "ご質問はお気軽に";
const myTargetNode = document.getElementById("ShopifyChat");
myTargetNode.shadowRoot.querySelector(".chat-title").textContent = myChatTitleText;
const myConfig = {
attributes: true,
attributeFilter: ["is-open"],
attributeOldValue: true };
const myCallback = (mutationList, observer) => {
for (const mutation of mutationList) {
if (mutation.oldValue === "true") {
document.getElementById("ShopifyChat").shadowRoot.querySelector(".chat-title").textContent = myChatTitleText;
}
}
};
const myObserver = new MutationObserver(myCallback);
myObserver.observe(myTargetNode, myConfig);
};
window.addEventListener("load", myChangeChatTitle,false);
</script>
テーマによっては不可能な場合がありますが簡単に確認するのであれば、テーマエディタのフッターにカスタムLiquidセクションを配置して上記JSを記載し保存すれば動作が確認できると思います。
以下留意点です。
参考:
https://developer.mozilla.org/ja/docs/Web/API/ShadowRoot
https://developer.mozilla.org/ja/docs/Web/API/Node/textContent
https://developer.mozilla.org/ja/docs/Web/API/Window/load_event
https://developer.mozilla.org/ja/docs/Web/API/MutationObserver/observe
※テーマエディタ内でも動作させる場合
以上です。動かない場合は申し訳ありません。
解説や修正などの追加対応は行いませんのでその点ご了承ください。
試作した感じではJSである程度は対応できるかなと思いますので、ちゃんとしたものが必要な場合はご自身で学ばれるかエキスパートやパートナーに依頼することをお勧めします。
成功
多少興味があったので試作してみました。
検討が浅い試作ですが以下のJSでとりえあず動作はするかなと思います。
<script>
const myChangeChatTitle = () => {
const myChatTitleText = "ご質問はお気軽に";
const myTargetNode = document.getElementById("ShopifyChat");
myTargetNode.shadowRoot.querySelector(".chat-title").textContent = myChatTitleText;
const myConfig = {
attributes: true,
attributeFilter: ["is-open"],
attributeOldValue: true };
const myCallback = (mutationList, observer) => {
for (const mutation of mutationList) {
if (mutation.oldValue === "true") {
document.getElementById("ShopifyChat").shadowRoot.querySelector(".chat-title").textContent = myChatTitleText;
}
}
};
const myObserver = new MutationObserver(myCallback);
myObserver.observe(myTargetNode, myConfig);
};
window.addEventListener("load", myChangeChatTitle,false);
</script>
テーマによっては不可能な場合がありますが簡単に確認するのであれば、テーマエディタのフッターにカスタムLiquidセクションを配置して上記JSを記載し保存すれば動作が確認できると思います。
以下留意点です。
参考:
https://developer.mozilla.org/ja/docs/Web/API/ShadowRoot
https://developer.mozilla.org/ja/docs/Web/API/Node/textContent
https://developer.mozilla.org/ja/docs/Web/API/Window/load_event
https://developer.mozilla.org/ja/docs/Web/API/MutationObserver/observe
※テーマエディタ内でも動作させる場合
以上です。動かない場合は申し訳ありません。
解説や修正などの追加対応は行いませんのでその点ご了承ください。
試作した感じではJSである程度は対応できるかなと思いますので、ちゃんとしたものが必要な場合はご自身で学ばれるかエキスパートやパートナーに依頼することをお勧めします。
Jizo_Inagakiさん
早速ご回答いただきとても嬉しいです。
高度なコード編集はまだまだできない身ですが、ご教示いただいた内容を試してみようと思います。
ありがとうございます。
ご指示いただいた方法で表示させることができました。(使用しているテーマ『Yuva』)
確かに、ぺージリロード後1秒ほどInboxで設定されている「何かお困りですか」が表示されますが、
その後「ご質問はお気軽に」に切り替わりました。
Inboxの機能も問題なく使えそうです。
ありがとうございました。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024