>> デイトラShopifyコースが先着で1万円OFF!

【Shopify】メタフィールドをOrder Printerに出力する方法

Order Printer メタフィールド アプリ

Shopifyの明細書発行アプリ「Order Printer」にメタフィールドの値を出力したい。
しかし、一般的な出力構文である{{ resource.metafields.namespace.key }}では出力できなくて困っている。

こんなことを考えている方へ。

この記事のポイントは以下です。

・Shopifyの明細書発行アプリ「Order Printer」にメタフィールドの値を出力する方法
・結論、{{ resource.metafields.key.value }}で出力可能

Shopify飯店

Shopify飯店

【デイトラShopifyコース 新年の2023名限定キャンペーン!1月4日から全コース⛩️1万円割引⛩️セール❗️】
デイトラ」で1/4〜1/31の間、新春セールが開催されています。先着順で1万円割となる超お得なセールです。
2023年に人生を変えたい方は「デイトラShopifyコース」を受講してみてください。

 

スポンサーリンク

【Shopify】メタフィールドをOrder Printerに出力する方法

Shopify公式の明細書発行アプリ「Order Printer」でメタフィールドを出力する方法を解説します。

一般的なメタフィールドの出力構文ではOrder Printerへの出力ができないので注意が必要です。

これについてShopify公式サポートに問い合わせてみたところ、サポート対象外との回答でした。そこで、Shopifyコミュニティで質問をしてみたら解決しました。

 

メタフィールドを作成する

まずは「Order Printer」に出力するためのメタフィールドを作成します。

管理画面の「設定」を押します。

Order Printer メタフィールド

メニューの中の「メタフィールド」を選びます。

Order Printer メタフィールド

今回は例として「商品」のメタフィールドを作成します。「新しいフィールドを追加するストアの構成部分を選択します」で「商品」を選びます。

Order Printer メタフィールド

画面が切り替わったら、右上にある「定義を追加する」を押します。

Order Printer メタフィールド

「商品メタフィールドの定義を追加する」の画面で、

①名前
②ネームスペースとキー
③説明
④メタフィールドの種類

を入力します。

Order Printer メタフィールド

メタフィールドの種類はプルダウンの中から選ぶことができます。

Order Printer メタフィールド

メタフィールドは、

・単一行のテキスト
・複数行のテキスト
・整数
・小数
・商品
・ファイル

など、種類がいろいろあります。

単一行のテキストや複数行のテキストの場合、「検証」というエリアで入力ルールを決めることができます。

Order Printer メタフィールド

今回は例として「単一行のテキスト」を設定することにします。

設定が終わったら「保存」を押します。

Order Printer メタフィールド

すると、メタフィールドが追加されました。

Order Printer メタフィールド

 

メタフィールドに値を入力する

続いて、今作成したメタフィールドに値を入力してみます。管理画面の「商品管理」を開きます。

Order Printer メタフィールド

Shopifyに登録されている商品一覧が表示されるので、メタフィールドを入力したい商品を選択します。

Order Printer メタフィールド

商品の編集ページの最下部に「メタフィールド」のエリアがあります。ここに設定した「名前」のメタフィールドがあるはずです。

Order Printer メタフィールド

 

Order Printerのテンプレート編集を開く

では、値を入力した商品メタフィールドをOrder Printerに出力します。まずはアプリから「Order Printer」を選択します。

Order Printer メタフィールド

テンプレートが表示されます。テンプレート名をクリックすると、以下のようなLiquidのコードの編集画面が開きます。

Order Printer メタフィールド

このコードを編集することで、メタフィールドの値をOrder Printerに出力することができます。

 

{% for line_item in line_items %}{% endfor %}の中にメタフィールドの出力構文を書く

コードの中で、

{% for line_item in line_items %}
・・・中略・・・
{% endfor %}

の記述を見つけます。

この記述は、購入した商品を出力させるループ処理の記述です。だいたい50行目〜60行目付近にあります。

Order Printer メタフィールド

このループ処理の中に、

{{ line_item.resource.metafields.key.value }}

のルールで記述すればOKです。

今回は「商品」のメタフィールドなので、「resource」の部分が「product」になります。つまり、以下の記述を入れれば良いです。

{{ line_item.product.metafields.key.value }}

一般的なメタフィールドの出力構文で必要な「namespace」は不要です。「key」にはメタフィールド作成時に設定した値を入れます。

Order Printer メタフィールド

実際にコードに反映させると、以下のようになります。

Order Printer メタフィールド

繰り返しになりますが、「key」の部分には自分が設定したkeyを入れてください。

これでSaveを押します。

Order Printer メタフィールド

 

プレビューで表示を確認する

Order Printer メタフィールド

最後にプレビューで、メタフィールドが正しく出力されているかを確認します。これで無事、Order Printerにメタフィールドを出力することができました。

 

スポンサーリンク

【体験談】Order Printerにメタフィールドを出力したかった理由

Order Printerにメタフィールドを出力したかった理由は、

英語版の商品名をOrder Printerに出力したかった

です。

詳しく解説します。

 

越境ECで英語の商品名をOrder Printerに出力したかった

最近、越境ECのサイトをShopifyで制作しました。

ストアフロントの翻訳は、「T Lab ‑ AI Language Translate」を使って行っていました。無料で使える優秀な翻訳アプリです。

Order Printer メタフィールド

ストアフロントの翻訳は何も問題がなく完了しました。

次に考えないといけないのは、明細書の翻訳です。購入時に商品に同梱する明細書は「Order Printer」を使って出力することにしました。

今回のサイトの場合、

日本語で買った人・・・日本語版の明細書を送る
英語で買った人・・・英語版の明細書を送る

という仕組みにする必要があります。

日・英両方の明細書の設定を進めていたのですが、どうやっても「商品名」だけが翻訳できませんでした。

もちろん、「T Lab ‑ AI Language Translate」で商品名の翻訳はできます。しかし、このアプリで翻訳されるのはあくまでストアフロントです。「Order Printer」で出力する商品名まで翻訳することができないのです。

「Order Printer」では、商品名を出力する変数 {{ product.title }} を使うことができるのですが、もともと登録している日本語の商品名しか出力できませんでした。

どうしても英語の商品名が出力できない・・・

というわけで、

「英語の明細書用の商品名」のメタフィールドを作成して、英語版の明細書の商品名にはそのメタフィールドの値を出力させよう

と考えました。

 

「英語用商品名」というメタフィールドを作成した

「設定>メタフィールド>商品」と進み、「英語の明細書用の商品名」という「単一行のテキスト」のメタフィールドを作成しました。

Order Printer メタフィールド

商品の編集画面に行くと、「英語の明細書用の商品名」のフィールドができています。ここに、英語版の商品名を入力しました。

Order Printer メタフィールド

 

一般的なメタフィールドの出力構文ではOrder Printerへの出力ができない

あとはOrder Printerのコードを編集してメタフィールドの値を出力するだけ

と思っていたのですが、ここでも壁にぶつかります。

なんと、一般的な出力構文を書いても、Order Printerではメタフィールドの値を出力できなかったのです。ちなみに、一般的なメタフィールドの出力構文は以下です。

{{ resource.metafields.namespace.key }}

Order Printer メタフィールド

Order Printerではこのコードを書いても、メタフィールドを出力することができなかったんですよね。

 

Shopify公式サポートに問い合わせてみたがサポート対象外との回答

どうして出力できないのか分からなかったので、Shopifyサポートに問い合わせをしました。

しかし、サポートの対象外との返事がきました。その代わりに「Shopifyコミュニティで質問してみては?」との提案をしてもらいました。

メタフィールドの値を明細書に表示させたいとのことで、コードやご参照になられたコミュニティのリンクをご明記していただいてありがとうございます。

コード等に関してご報告いただいたのですが、コード編集、メタフィールドやAPIを使用したアプリ開発やストア開発作業については、当窓口のサポート対象外となります。

ご質問していただいている内容については、弊社開発者向けコミュニティでご質問を行っていただけると、コードやAPI関連の必要な知識と経験を持ったShopifyパートナーやご利用者様より回答が可能ですので、こちらのご活用をご検討お願い申し上げます。

Order Printer メタフィールド

 

Shopifyコミュニティで質問したら解決した

そんなわけで、Shopifyコミュニティにスレッドを立てて質問しました。

Order Printer メタフィールド

すると、他のユーザーから回答があり無事解決しました。

結論、Order Printerでメタフィールドを出力するには、以下の一般的なコードでは駄目で、

{{ resource.metafields.namespace.key }}

以下のコードじゃないと出力ができないようです。

{{ resource.metafields.key.value }}

「namespace」が不要で、「value」が新たに必要です。

 

スポンサーリンク

参考:Shopifyを学ぶ方法まとめ|本・動画教材・オンラインスクール

Shopify飯店

Shopifyを本格的に学ぶためにはネットの情報だけは足りません。本(参考書)、動画教材(Udemy)、オンラインスクールを活用して、効果的に学習しましょう。

思い切って有料の教材を買って体系的に学ぶことで、操作に悩む時間が減りますし、より高度なカスタマイズや提案ができるようになり、仕事の幅が広がります。

仕事でShopifyを扱っている筆者が、おすすめの学習教材をまとめました。くわしくは以下の記事をご覧ください。

【関連記事】Shopifyのおすすめ学習方法まとめ【現役エンジニアが紹介】

Shopifyのおすすめ学習方法まとめ【現役エンジニアが紹介】
現役フリーランスエンジニアがShopifyの勉強方法をまとめました。オンラインスクールで学ぶ、本で学ぶ、Udemyで学ぶ、公式のYoutubeで学ぶの4つです。おすすめはオンラインスクールで学ぶことです。

【関連記事】【2022年最新】デイトラShopifyコースは買うべき?【レビュー】
1/4〜1/31まで新春セール開催中!先着2023名が1万円割引!

デイトラShopifyコースは買うべきか?徹底レビュー【2023年最新】(1/31まで先着で1万円割引セール中!)
デイトラShopifyコースを大解剖します。内容、強み、評判、身につくスキルをShopify構築を仕事にしている筆者が解説します。

【関連記事】Shopifyの学習におすすめの動画教材(Udemy)まとめ

【日本語のみ】Shopifyの学習に最適なUdemyの教材まとめ
日本語で受講できるUdemyのShopify講座をまとめました。新講座が出るたびに随時、記事を更新します。初心者向けの講座から上級者向けの講座まで紹介しています。また、筆者が実際にUdemyの講座を受講したレビューも紹介しています。

【関連記事】Shopifyの学習におすすめの本まとめ

Shopifyの学習におすすめの本まとめ【参考書7選を紹介】
本記事ではShopifyを学ぶのにオススメな本・参考書をまとめています。

【関連記事】【Shopifyの独学】勉強方法のまとめ【初心者向け】

【Shopifyの独学】勉強方法のまとめ【初心者向け】
本記事ではShopifyの独学方法をロードマップとしてまとめています。筆者はShopifyを独学して3年ほど経ちました。ノウハウが溜まってきたので、Shopify独学のロードマップを整理して記事にしました。
【Udemyでセールが開催中!】
2023年2月1日(水)まで、Shopifyの動画教材が1,800円から買える!
Udemyはセールのタイミングに買うべきです。通常1万〜2万円の商品がセール中だと80%OFF〜90%OFF程度の値段で購入できます。
・Udemyでセール中のShopifyの講座一覧をまとめて見る icon

 

スポンサーリンク

まとめ

この記事のポイントをまとめます。

・Order Printerでメタフィールドを出力するには {{ resource.metafields.key.value }} の形式でコードを記述すればOK
・一般的なメタフィールドの出力構文である {{ resource.metafields.namespace.key }} は使えない。

今回の記事はここまでです。

タイトルとURLをコピーしました