Cartのドル表記、エラーを修正する方法

いつもお世話になっております。

中口 聡明と申します。
当方、海外ですでに稼働しているshopifyで構築されたサイトの日本版作成業務を請け負っております。

オリジナルテーマで作成されており、そのテーマをダウンロードし構築しています。


ストア通貨は「円(JPY)」に変更済みですが、Cartの一部分に$表記が残ってしまいます。
これを円表記に修正したいです。


Cart下部に「translation missing: ja.layout.general.subtotal」などのエラーがでており、修正したい。

①②の修正方法がわからずお手数ですがお力をお貸しいただけないでしょうか。

よろしくお願いします。

該当箇所スクリーンショット


{% schema %}

{
  "name": "Cart page",
  "settings": [
    {
      "type": "richtext",
      "id": "message",
      "label": "Message"
    }
  ]
}

{% endschema %}

①> ストア通貨は「円(JPY)」に変更済みですが、Cartの一部分に$表記が残ってしまいます。> これを円表記に修正したいです。

オリジナルテーマを利用されているとのことで私の方で該当箇所を確認することができませんが、商品価格の箇所が以下のような形になっているかご確認をお願い致します。

おそらく「cart-template.liquid」ファイルの中に該当箇所があると思われます。

{{ item.original_price | money }}

②> Cart下部に「translation missing: ja.layout.general.subtotal」などのエラーがでており、修正したい。

こちらはテーマの言語設定に「layout.general.subtotal」が存在しないといったエラーになります。

確認したところ、おそらく以下のように変更すると正しく表示されるようになるかと思われます。

{{ 'cart.general.subtotal' | t }}

ご参考になれば幸いです。

2 Likes

KOICHI_KAMIZURU様

この度はありがとうございます!!

中口聡明と申します。

対応感謝いたします。

オリジナルテーマを利用されているとのことで私の方で該当箇所を確認することができませんが、商品価格の箇所が以下のような形になっているかご確認をお願い致します。> > おそらく「cart-template.liquid」ファイルの中に該当> > 箇所があると思われます。

{{ item.original_price | money }}

こちら確認いたしました。

「cart-template.liquid」にも上記liquidコードを確認したのですが、こちらのテンプレートファイルはテーマに連動していないようでした。

ただ別のファイルで「Asset/template.product.js」には似たコードはございました。

[t._v(t._s(t._f("dollar")(t.item.price)))])]) : t._e(), t._v(" "), 0 == t.item.price ? i("p", { staticClass: "cm-zero-price" }, [i("span", { staticClass: "free-amount" }, [t._v(t._s(t._f("dollar")(t.item.original_price)))])

上記のdollarを削除すると$マークは消えたのですが、下記のようになりました。

削除前の料金表示:「$1980.00」

削除後の料金表示:「198000」

正しい表示:「1980」

もともと質問からズレてきており、恐縮ですがもし原因がわかればお力おかしいただけないでしょうか。

②については表示が正しくできました!!

ありがとうございます!!!

1 Like

中口聡明 様

ご確認ありがとうございます。

上記のdollarを削除すると$マークは消えたのですが、下記のようになりました。> > 削除前の料金表示:「$1980.00」> > 削除後の料金表示:「198000」> > 正しい表示:「1980」

こちらの正しい表示にする方法ですが、少し無理やりですが以下を試していただけますでしょうか?

// 先頭に以下コードを追加
const formatter = new Intl.NumberFormat('ja-JP', {
  style: 'currency',
  currency: 'JPY'
});

// t.item.priceの箇所を以下に変更
formatter.format((t.item.price).toString().slice(0, -2))

// t.item.original_priceの箇所を以下に変更
formatter.format((t.item.original_price).toString().slice(0, -2))

私の方で「Asset/template.product.js」のコードをすべて確認できないため、何かJavaScriptのエラーが発生した場合はお知らせください。

宜しくお願い致します。

2 Likes

KOICHI_KAMIZURU様

お忙しいところありがとうございます。

対応感謝いたします。

下記該当箇所に反映してみました。

しかし該当ページが表示されないエラーがでてしまいました。

ご教示いただいたとおりに記載したとつもりなのですが、

当方jsの知識が薄く、指示通り対応できているか不安です。

申し訳ございませんが下記の記載で間違いないか確認いただけないでしょうか。

前後のソースコードも貼り付けております。

ご都合の良いときで結構ですのでよろしくお願いします。

[t.item.price != t.item.original_price ? i("span", { staticClass: "original-amount" }, const formatter = new Intl.NumberFormat('ja-JP', {  style: 'currency',  currency: 'JPY'})[t._v(t._s(t._f("dollar")formatter.format((t.item.original_price).toString().slice(0, -2))))])))]) : t._e(), t._v(" "), i("span", { staticClass: "amount" }, [t._v(t._s(t._f("dollar")formatter.format((t.item.price).toString().slice(0, -2)))])]) : t._e(), t._v(" "), 0 == t.item.price ? i("p", { staticClass: "cm-zero-price" }, [i("span", { staticClass: "free-amount" },

中口聡明 様

ご確認ありがとうございます。

すみません、エラーについてですが全行を確認してみないことにはなんとも言えませんので、一旦ファイルを元の状態に戻していただき以下を確認していただけますでしょうか?

  1. 「dollar」を「yen」に変更

完全に推測の域になるのですが、dollar形式の表示があるのであればyen表示も用意されているかもしれません。

  1. オリジナルテーマの制作者様に問合せ

こちらが一番確実かと思われます。

宜しくお願い致します。

1 Like

KOICHI_KAMIZURU様

ご対応ありがとうございます!!

  1. 「dollar」を「yen」に変更

完全に推測の域になるのですが、dollar形式の表示があるのであればyen表示も用意されているかもしれません。

→こちら試してみましたがダメでした。。。

  1. オリジナルテーマの制作者様に問合せ

こちらが一番確実かと思われます。

→やっぱりそうですよね。連絡が取りづらい上対応なんですがどうにかやってみます。

ご丁寧な対応感謝します。

1 Like