Blog

ShopifyのOrder Printerアプリで納品書を印刷【日本語化対応】

2022年1月25日

Shopifyでは注文管理のセクションで「明細書」という機能がありPDFで印刷できます。またこちらはLiquidコードで編集もできるのでカスタマイズ性も高いのですが、 「明細書」 ではなく「納品書」「発注書」を作成したい場合は無料のアプリの「Order Printer」をインストールします。

この記事の内容

「Order Printer」をインストール

Order Printer

「Order Printer」のテンプレートを編集&日本語化

インストールしたアプリでは複数のドキュメントの作成に対応しています。デフォルトのものをカスタマイズして納品書や発注書を作成します。日本語化については以下のページで丁寧に解説されていたので参考にさせていただきました。ありがとうございます。

[Shopify] 納品書アプリのテンプレートを日本対応に変更する(無料)

以下は私が作成した納品書です。

Liquidコード

作成したLiquidコードも記載しておきます。

<p style="float: right; text-align: right; margin: 0;">
  {{ created_at | date: "%Y/%m/%d" }}<br />
  注文番号 {{ order_name }}
</p>

<div style="float: left; margin: 0 0 1.5em 0;" >
<strong style="font-size: 2em;">納品書</strong><br /><br />
  <strong style="font-size: 1em;">{{ shop_name }}</strong><br /><br />
  〒{{ shop.zip | upcase }}<br />
  {{ shop.province | replace: 'Aichi', '愛知県' | replace: 'Akita', '秋田 県' | replace: 'Aomori', '青森県' | replace: 'Chiba', '千葉県' | replace: 'Ehime', '愛 媛県' | replace: 'Fukui', '福井県' | replace: 'Fukuoka', '福岡県' | replace: 'Fukushima', '福島県' | replace: 'Gifu', '岐阜県' | replace: 'Gunma', '群馬県' | replace: 'Hiroshima', '広島県' | replace: 'Hokkaidō', '北海道' | replace: 'Hyōgo', '兵庫県' | replace: 'Ibaraki', '茨城県' | replace: 'Ishikawa', '石川県' | replace: 'Iwate', '岩手県' | replace: 'Kagawa', '香川県' | replace: 'Yamanashi', '山梨県' | replace: 'Yamaguchi', '山口県' | replace: 'Kōchi', '高知県' | replace: 'Kumamoto', '熊本県' | replace: 'Kyōto', '京都府' | replace: 'Mie', '三重県' | replace: 'Yamagata', '山形県' | replace: 'Miyazaki', '宮崎県' | replace: 'Nagano', '長野県' | replace: 'Nagasaki', '長崎県' | replace: 'Nara', '奈良県' | replace: 'Niigata', '新潟県' | replace: 'Ōita', '大分県' | replace: 'Okayama', '岡山県' | replace: 'Okinawa', '沖縄県' | replace: 'Ōsaka', '大阪府' | replace: 'Saga', '佐賀 県' | replace: 'Saitama', '埼玉県' | replace: 'Shiga', '滋賀県' | replace: 'Shimane', '島根県' | replace: 'Shizuoka', '静岡県' | replace: 'Tochigi', '栃木県' | replace: 'Tokushima', '徳島県' | replace: 'Tottori', '鳥取県' | replace: 'Toyama', '富山県' | replace: 'Tōkyō', '東京都' | replace: 'Miyagi', '宮城県' | replace: 'Wakayama', '和 歌山県' | replace: 'Kanagawa', '神奈川県' | replace: 'Kagoshima', '鹿児島県' }}
  {{ shop.city }}
  {{ shop.address }}
  {{ shop.address2 }}<br />
  Tel: {{ shop.phone }}<br />
  Email: {{ shop.email }}<br />

</div>

<hr />

<h3 style="margin: 0 0 1em 0;">購入商品明細</h3>

<table class="table-tabular" style="margin: 0 0 1.5em 0;">
  <thead>
    <tr>
      <th>商品名</th>
      <th style="text-align: right;">単価 (税込)</th>
      <th style="text-align: right;">数量</th>
      {% comment %}
      {% if show_line_item_taxes %}
      <th style="text-align: right;">(内消費税)</th>
      {% endif %}
      {% endcomment %}
      <th style="text-align: right;">金額 (税込)</th>
    </tr>
  </thead>
  <tbody>
    {% for line_item in line_items %}
      <tr>
        <td>{{ line_item.title }}<br />
        {% if line_item.sku != blank %}({{ line_item.sku }}){% endif %}
        </td>
        <td style="text-align: right;">{{ line_item.price | money }}</td>
        <td style="text-align: right;">{{ line_item.quantity }}</td>
        <td style="text-align: right;">{{ line_item.line_price | money }}</td>
      </tr>
    {% endfor %}
  </tbody>
</table>

<h3 style="margin: 0 0 1em 0;">お支払い内訳</h3>

<table class="table-tabular" style="margin: 0 0 1.5em 0;">
  <tr>
    <td>小計 (税込):</td>
    <td>{{ subtotal_price | money }}</td>
  </tr>
  {% for discount in discounts %}
  <tr>
    <td>割引コード "{{ discount.code }}"</td>
    <td>{{ discount.savings | money }}</td>
  </tr>
  {% endfor %}
  <tr>
    <td>内消費税:</td>
    <td>{{ tax_price | money }}</td>
  </tr>
  {% if shipping_address %}
    <tr>
      <td>送料 (税込):</td>
      <td>{{ shipping_price | money }}</td>
    </tr>
  {% endif %}
  <tr>
    <td><strong>総合計 (税込):</strong></td>
    <td><strong>{{ total_price | money }}</strong></td>
  </tr>
  {% if total_paid != total_price %}
    <tr>
      <td><strong>総お支払い合計 (税込):</strong></td>
      <td><strong>{{ total_paid | money }}</strong></td>
    </tr>
    <tr>
      <td><strong>Outstanding Amount:</strong></td>
      <td><strong>{{ total_price | minus: total_paid | money }}</strong></td>
    </tr>
  {% endif %}
</table>

{% if note %}
  <h3 style="margin: 0 0 1em 0;">備考</h3>
  <p>{{ note }}</p>
{% endif %}

{% if shipping_address %}
  <h3 style="margin: 0 0 1em 0;">お届け先</h3>

  <div style="margin: 0 0 1em 0; padding: 1em; border: 1px solid black;">
    〒{{ shipping_address.zip | upcase }}<br/>
    {{ shipping_address.province | replace: 'Aichi', '愛知県' | replace: 'Akita', '秋田 県' | replace: 'Aomori', '青森県' | replace: 'Chiba', '千葉県' | replace: 'Ehime', '愛 媛県' | replace: 'Fukui', '福井県' | replace: 'Fukuoka', '福岡県' | replace: 'Fukushima', '福島県' | replace: 'Gifu', '岐阜県' | replace: 'Gunma', '群馬県' | replace: 'Hiroshima', '広島県' | replace: 'Hokkaidō', '北海道' | replace: 'Hyōgo', '兵庫県' | replace: 'Ibaraki', '茨城県' | replace: 'Ishikawa', '石川県' | replace: 'Iwate', '岩手県' | replace: 'Kagawa', '香川県' | replace: 'Yamanashi', '山梨県' | replace: 'Yamaguchi', '山口県' | replace: 'Kōchi', '高知県' | replace: 'Kumamoto', '熊本県' | replace: 'Kyōto', '京都府' | replace: 'Mie', '三重県' | replace: 'Yamagata', '山形県' | replace: 'Miyazaki', '宮崎県' | replace: 'Nagano', '長野県' | replace: 'Nagasaki', '長崎県' | replace: 'Nara', '奈良県' | replace: 'Niigata', '新潟県' | replace: 'Ōita', '大分県' | replace: 'Okayama', '岡山県' | replace: 'Okinawa', '沖縄県' | replace: 'Ōsaka', '大阪府' | replace: 'Saga', '佐賀 県' | replace: 'Saitama', '埼玉県' | replace: 'Shiga', '滋賀県' | replace: 'Shimane', '島根県' | replace: 'Shizuoka', '静岡県' | replace: 'Tochigi', '栃木県' | replace: 'Tokushima', '徳島県' | replace: 'Tottori', '鳥取県' | replace: 'Toyama', '富山県' | replace: 'Tōkyō', '東京都' | replace: 'Miyagi', '宮城県' | replace: 'Wakayama', '和 歌山県' | replace: 'Kanagawa', '神奈川県' | replace: 'Kagoshima', '鹿児島県' }}
    {{ shipping_address.city }}
    {{ shipping_address.address1 }}
    {{ shipping_address.address2 }}<br/>
    {% if shipping_address.company %}
      {{ shipping_address.company }}<br/>
    {% endif %}
    {{ shipping_address.last_name }} {{ shipping_address.first_name }} 様<br/>
    Tel:: {{ shipping_address.phone}}<br />
  </div>
{% endif %}

<p>ご不明な点がございましたら、<u>{{ shop.email }}</u> までご連絡ください。</p>