FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

Shopify管理画面で「アイテムを削除」「数量を調整」した場合、ユーザー画面>注文履歴画面に反映されない

Shopify管理画面で「アイテムを削除」「数量を調整」した場合、ユーザー画面>注文履歴画面に反映されない

takahiron
Shopify Partner
15 0 1

 

・設定>チェックアウト>顧客アカウント>アカウントを任意にする または アカウントを必要とする
と設定した場合に、ユーザー画面で確認できる下記2つのテンプレートについて、
不明点があり、質問を挙げさせていただきました。

 

 /account/     マイページ
 /account/orders/  注文履歴(詳細)

 

■質問内容
上記2つのテンプレートに、注文の合計金額が表示されますが、
・Shopify管理画面>注文管理>該当注文の詳細画面>編集>アイテムを削除
または
・Shopify管理画面>注文管理>該当注文の詳細画面>編集>数量を調整
の操作した場合でも、ユーザー画面の上記2テンプレートに変更が反映されず、
従来の内容のままとなっております。
※管理画面側は、正しく変更されております。
※テンプレートはDebutをカスタマイズせずに利用しております。

 

 

こちらテンプレートを調整し、改善できるなど
方法がありましたらご教授いただければ幸いです。

 

10件の返信10

junichiokamura
Community Manager
1201 280 509

以下の修正は参考になりますでしょうか?

 

customer/order.liquidの最初に以下のコードを挿入

{% assign cancelled_subtotal = 0 %}
{% for refund in order.refunds %}
{% for item in refund.refund_line_items %}
{% assign cancelled_subtotal = cancelled_subtotal | plus:item.line_item.price %}
{% endfor %}
{% endfor %}
{% assign final_cancelled_with_tax = cancelled_subtotal| times:1.1 %}
{% assign order_subtotal_with_tax = order.subtotal_price| times:1.1%}
{% assign shipping_with_tax = order.shipping_price| times:1.1%}
{% if final_cancelled_with_tax == order_subtotal_with_tax %}
{% assign final_cancelled_with_tax = final_cancelled_with_tax | plus:shipping_with_tax %}
{% endif %}


 {{ order.total_price | money }} を {{ order.total_price | minus:cancelled_subtotal | money }} に置き換え。

Senior Partner Solutions Engineer
ill_support
Shopify Partner
1 0 0

こちら私も同様の事で困っておりまして、頂きましたタグを挿入した際には、

/account/orders/  注文履歴(詳細)

の合計金額は変更が出来ました。

 

ただ、小計金額には、「アイテムを削除」「数量を調整」を考慮した金額が反映されておらず、

アイテムを削除した場合は、ユーザー側の注文履歴(詳細)からも削除したいのですが、

こちらは修正は可能なものでしょうか?

 

また、/account/

ページで表示される合計金額も「アイテムを削除」「数量を調整」を考慮した金額を表示したいのですが、可能でしょうか?

お手数をお掛けしますが、ご確認の程よろしくお願いします。

junichiokamura
Community Manager
1201 280 509

Liquidの知識が必要になりますが、

https://shopify.dev/docs/themes/liquid/reference/objects/order

>  ただ、小計金額には、「アイテムを削除」「数量を調整」を考慮した金額が反映されておらず、

{% for refund in order.refunds %}
{% for item in refund.refund_line_items %}

これを応用して、承継金額の表示部分も同じように修正する必要があると思います。

ページで表示される合計金額も「アイテムを削除」「数量を調整」を考慮した金額を表示したいのですが、可能でしょうか?

Liquidのcustomerから同様のorderが参照できるので、同じ修正が可能かと思います。

https://shopify.dev/docs/themes/liquid/reference/objects/customer#customer-orders

 

 

 

Senior Partner Solutions Engineer
Takuma
Shopify Partner
44 7 25

同じ現象で悩んだので、そういった明細に触るためのLIQUID例はこれ。

ご参考になれば。

{% for order in customer.orders %}

のループ内で、以下を入れれば返品や削除された商品を特定できます。

{% for refund in order.refunds %}
{% for item in refund.refund_line_items %}
{{ item.line_item.title}}
{% endfor %}
{% endfor %}
 
POSTMANとかでOrderAPIの結果を見るとどこにどういった要素でデータが入ってるので探せます。
YasutakaNishii
Shopify Partner
9 0 1

こちらの方法は現時点 (2022/03) で実施することはできないのでしょうか。

 

上記コードを入力してブラウザを開くと、Internal Liquid Error と表示されます。

また、公式ドキュメントから order.refunds が消えております。

Cheat Sheet に refund で検索してもでてこないです。

https://www.shopify.com/partners/shopify-cheat-sheet

junichiokamura
Community Manager
1201 280 509

元々refundsの情報は公式のLiquidドキュメントになかったかもですが、以下の、
https://shopify.dev/api/liquid/objects/order#order-total_refunded_amount

order.total_refunded_amountと、

order.transactionsの、
https://shopify.dev/api/liquid/objects/transaction

transaction.kindやtransaction.statusから、返金額とその取引明細は出せると思います。 
ひょっとすると、2021年後半のOS 2.0 への移行によって、いくつかの非公式のLiquidが廃止になっている可能性もあります。

Senior Partner Solutions Engineer
junichiokamura
Community Manager
1201 280 509

あとは、liquidのみでの解決ではなくなりますが、カスタムアプリ(パートナーダッシュボードから作成するタイプ)とapp proxiesの仕組みを使ってサーバーでAPIでデータを引いてそれをLiquidに反映する、といったアプローチも可能です。 

https://shopify.dev/apps/online-store/app-proxies

 

ログインしているcustomerのidをapp proxies経由でサーバーに渡して、customer -> order -> refunds -> refund line items と辿れば、元々のLiquidで参照できていたデータを取得できます。
https://shopify.dev/api/admin-graphql/2022-01/objects/RefundLineItem#fields

 

以下のようなマイページへのオーダー管理機能追加アプリは、同じようなことを内部でやっています。

https://apps.shopify.com/orderify?locale=ja

 

app proxiesについては、以下でも解説しています。

https://www.youtube.com/watch?v=w31mCsEWGhQ&list=PLkR3LRtxAZfqujVTfvuHGpNgVTdbrwJRK&index=12

Senior Partner Solutions Engineer
YasutakaNishii
Shopify Partner
9 0 1

回答ありがとうございました。

アイテム追加して、削除するとorder.total_refunded_amount にはデータが反映されないようです。

(¥ 0 のまま)

 

一方で

- transaction.kind

- transaction.status

- transaction.amount

を利用すれば、最終金額は取れるのでそちらで対応したいと思います。

クロスフィールド
Shopify Partner
24 0 5

同じ問題でこのページに辿り着きました。

素朴な疑問ですが、お客様から見たら単純な計算間違いであるこの問題にSopify側で対処されないのはなぜなのでしょうか。

マーチャントがリスクを負ってコード編集するのはおかしいと思います。

junichiokamura
Community Manager
1201 280 509

マイページは、新しいログイン方法に従って、テーマのLiquidによる記述方式から、Shopifyの提供するUIに変わりました。可能であれば、そちらもお試しいただければと思います。
https://help.shopify.com/ja/manual/customers/customer-accounts/new-customer-accounts

Liquidによるマイページは、実際はShopify本体ではなくて、テーマの開発者の実装に依存する方法でしたが、新しいマイページは、基本的な機能はShopify側で提供されています。
また、アプリによるカスタマイズも、Liquidとは違う方法で提供予定です。
https://shopify.dev/docs/apps/customer-accounts

 

Senior Partner Solutions Engineer