# アプリ「Order Printer」にメタフィールドの値を表示させたい

**URL:** <https://community.shopify.com/t/order-printer/132053>\
**Category:** Shopify アプリ\
**Created:** [July 1, 2022, 7:55am UTC](https://community.shopify.com/t/order-printer/132053 "2022-07-01T07:55:47Z")\
**Posts on this page:** 6\
**Page:** 1

## AI-generated summary

多言語ストアで、英語購入者向けにインボイス(Order Printer)へ英語の商品名を表示したい。翻訳アプリ T Lab - AI Language Translate の訳はOrder Printerに反映されないため、商品メタフィールドに英語名を保存して出力する方針。

一般的なLiquid構文の namespace.key と .value の有無を複数試すも、Order Printerでは出力されず。Storefront API公開設定も効果なし。公式サポートはコードカスタマイズ対象外。

検証により、Order Printerではメタフィールドの扱いが特殊で、namespaceが無視される挙動を確認。値の取得には .value が必要。

解決策:
- namespaceを外し、.value付きで出力すると成功。
  例: {% for line_item in line_items %} {{ line_item.product.metafields.en_product_name.value }} {% endfor %}

技術補足:
- メタフィールドは任意のカスタム項目。
- namespaceは通常グループ化に使うが、Order Printerでは不要。
- .valueはメタフィールドの値を取得するために必要。

現状: 目的の表示は達成し、スレッドは解決済み。T Labへの問い合わせは未回答だが、対応不要となった。

<div class="post-metadata">

**Author:** ![k371573](https://avatars.discourse-cdn.com/v4/letter/k/e95f7d/32.png) [@k371573](https://community.shopify.com/u/k371573)\
**Post date:** [July 1, 2022, 7:55am UTC](https://community.shopify.com/t/order-printer/132053/1 "2022-07-01T07:55:47Z")

</div>

Shopifyで日・英の多言語サイトを作成しています。

サイト上のテキストや商品名を英語訳するために「T Lab - AI Language Translate」を使っています。インボイスの発行には「Order Printer（ [https://apps.shopify.com/order-printer](https://apps.shopify.com/order-printer) ）」を使っています。

英語で購入されたお客さんには、英語の商品名が記載されたインボイスを渡したいと思っているのですが、翻訳アプリでの翻訳がOrder Printerに反映されないことは承知しています。

なので、代替案として「設定＞メタフィールド＞カスタムフィールド＞商品」で商品メタフィールドを使って、「英語の明細書に出力する用の英語商品名記載エリア」を作成し、その値をOrder Printerに出力しようと考えています。

参考にしたのは以下のコミュニティの記事です。

・Order Printer Metafield  
[https://community.shopify.com/c/shopify-apps/order-printer-metafield/td-p/317957](https://community.shopify.com/c/shopify-apps/order-printer-metafield/td-p/317957)

・Order Printer の明細内にメタフィールド表示  
[https://community.shopify.com/topic/1538622](https://community.shopify.com/topic/1538622)

これらのコミュニティの情報を参考に、以下のコードを書いてみましたが、メタフィールドが出力されませんでした。

```markup
{% for line_item in line_items %}
{{ line_item.product.metafields.custom.en_product_name.value }}
{% endfor %}

```

 ![image.png](https://canada1.discourse-cdn.com/shopifyforum/original/3X/c/5/c528338ca79885bcd8eb0581192a32acc0e15da4.png)

同じ問題を抱えていて解決された方がいましたら、アドバイスをいただけないでしょうか？

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [July 4, 2022, 12:44pm UTC](https://community.shopify.com/t/order-printer/132053/2 "2022-07-04T12:44:07Z")

</div>

動作確認をしておりませんが、

.valueが不要なのではないでしょうか？

```markup
{% for line_item in line_items %}
{{ line_item.product.metafields.custom.en_product_name }}
{% endfor %}

```

Shopifyのドキュメントを見る限り、

[https://shopify.dev/api/liquid/objects#metafield-access-metafields](https://shopify.dev/api/liquid/objects#metafield-access-metafields)

metafieldsの出力構文は、

{{ resource.metafields.namespace.key }}

ですので、

namespace = custom

key = en\_product\_name

となるはずです。

もし、すでに上記をお試しでしたら申し訳ございません。

ご参考まで。

(キュー田辺)

---

<div class="post-metadata">

**Author:** ![k371573](https://avatars.discourse-cdn.com/v4/letter/k/e95f7d/32.png) [@k371573](https://community.shopify.com/u/k371573)\
**Post date:** [July 5, 2022, 1:45am UTC](https://community.shopify.com/t/order-printer/132053/3 "2022-07-05T01:45:22Z")

</div>

アドバイスありがとうございます！  
Shopifyのドキュメントのリンクも貼っていただき、ありがとうございます。

＞.valueが不要なのではないでしょうか？  
これも既に試していたのですが、やはり出力されず・・・。  
普通のliquidファイル（product-template.liquidなど）ですと、ご記載の通り一般的な出力構文 {{ resource.metafields.namespace.key }}でメタフィールドの値が出力されるんですが、Order Printerは違うみたいです。。

---

<div class="post-metadata">

**Author:** ![k371573](https://avatars.discourse-cdn.com/v4/letter/k/e95f7d/32.png) [@k371573](https://community.shopify.com/u/k371573)\
**Post date:** [July 5, 2022, 1:48am UTC](https://community.shopify.com/t/order-printer/132053/4 "2022-07-05T01:48:24Z")

</div>

いままで試したことを追記します。

**【Shopify公式ヘルプへの問い合わせ】**  
公式に問い合わせたのですが、コードのカスタマイズに関することはサポート対象外とのことで、コミュニティを紹介していただきました。  
ですので、ここで相談した次第です。

**【いくつかの出力パターンを試してみる】**

```markup

日本語の商品名の出力記述→これは普通に本来の商品名（日本語）が出力される

{% for line_item in line_items %}
{{ line_item.title }}
{% endfor %}

試してみたもの①：「.value」をつける→何も出力されない

{% for line_item in line_items %}
{{ line_item.product.metafields.custom.en_product_name.value }}
{% endfor %}

試してみたもの②：「.value」をつけない→何も出力されない

{% for line_item in line_items %}
{{ line_item.product.metafields.custom.en_product_name }}
{% endfor %}

試してみたもの④：一般的な一般的な出力記述で「.value」をつけない→何も出力されない

{{ product.metafields.custom.en_product_name }}

試してみたもの⑤：一般的な一般的な出力記述で「.value」をつける→何も出力されない

{{ product.metafields.custom.en_product_name.value }}

```

**【ストアフロントAPIリクエストに公開】**  
設定＞メタフィールド＞商品＞作成したメタフィールドを選択＞「このメタフィールドをストアフロントAPIリクエストに公開します。ストアフロントAPIを使用して、アプリやストアフロントなどへの読み取りアクセスを許可します。」にチェックを入れる。  
→特に変化なし。

**【T Lab - AI Language Translate への問い合わせ】**  
ダメ元で「アプリで翻訳した商品名をOrder Printerに出力すうる方法」を聞いてみました。現在返事待ち。

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [July 5, 2022, 5:12am UTC](https://community.shopify.com/t/order-printer/132053/5 "2022-07-05T05:12:08Z")

</div>

なるほどです。

確かに、Order PrinterのMetafieldsの扱いは特殊なようですね。

下記のコードでOrder Printerにおける、Metafieldsの内容を確認してみました。

```markup
{% for field in line_item.product.metafields %}
{{ field }}
{% endfor %}

```

{{ field }}の内容を確認すると、どうやらnamespaceが不要なようです。

そして、おっしゃる通り、valueは必要なようです。

ですので、質問者様の場合ですと、下記のコードでうまくいくかと思います。

```markup
{% for line_item in line_items %}
{{ line_item.product.metafields.en_product_name.value }}
{% endfor %}

```

(Order Printerでmetafieldsにアクセスすると、namespaceは無視されるため、customを抜きました。)

ご参考まで。

(キュー田辺)

---

<div class="post-metadata">

**Author:** ![k371573](https://avatars.discourse-cdn.com/v4/letter/k/e95f7d/32.png) [@k371573](https://community.shopify.com/u/k371573)\
**Post date:** [July 5, 2022, 5:35am UTC](https://community.shopify.com/t/order-printer/132053/6 "2022-07-05T05:35:38Z")

</div>

株式会社Q (キュー) 田辺様

ありがとうござます！

ご教示いただいた以下のコードでメタフィールドの値を出力できました。

```markup
{% for line_item in line_items %}
{{ line_item.product.metafields.en_product_name.value }}
{% endfor %}

```

Order Printerでメタフィールドを出力するときは、namespaceが不要なのですね・・・。とても勉強になりました。本当にありがとうございました。
