StripeのInvoiceが変わったのをご存知ですか?
こんにちは。久しぶりにnoteを執筆したらエディターが新しくなっていて使える書式が増えていました。
これはStripe Advent Calendar2021の13日目のエントリーです。Stripe Customer Portalのことでもなにか書こうかなと思っていましたが(とはいえ特にネタがあったわけではない)、数日前にStripe公式がほどよいネタを投下してくれましたので、今日はそれについて書こうと思います。
StripeのInvoice PDFが変わりました
請求書・領収書のPDF上部にブランドカラーが差し込まれ、ロゴをPDFに配置することができるようになりました。
ブランドカラーの設定とロゴの設定はブランディングからできるようになっています。
PDFのヘッダーはこんな感じになります。
上部にブランドカラーが差し込まれています。ロゴを設定して「アイコンの代わりにロゴを使用」にチェックを入れると右上の部分がロゴになります。
なおロゴを設定すると請求書のPDFだけでなくCheckout、Payment Links、カスタマーポータルがアイコンではなくロゴに切り替わります。メール領収書、オンライン請求書はアイコンのままになるようです。
日本語ローカリゼーションはどうなの?
この機能がリリースされたのは12月10日でその時点では見出し部分が「Receipt」「Invoice」と表示されていて日本語化はされていませんでした。(見出し以外は日本語になっていました。)
ただ翌日確認したらすでに日本語対応していました。
あとはカタカナの「インボイス」が「請求書」になればベストですね!
請求先の表記について
リリース時点では請求先にCustomerのnameとemailが表示されるようになっていました。今まではnameがセットされていなければdescriptionが表示されるようになっていましたが、それが表示されなくなっていました。
翌日確認したところ、nameがセットされていない場合にはdescriptionが表示されるように改修されていました。
アドベントカレンダーなので技術的なネタとして、Customerのdescriptionをnameにコピーするコード(Java版)を載せておきます。Stripe側での対応が素早くされたので、このコードは実稼働はしていません。
Map<String, Object> params = new HashMap<>();
params.put("limit", 10);
Iterable<Customer> customers = Customer.list(params).autoPagingIterable();
for (Customer customer : customers) {
Map<String, Object> updateParams = new HashMap<String, Object>();
if (customer.getName() == null || "".equals(customer.getName())) {
updateParams.put("name", customer.getDescription());
customer.update(updateParams);
}
}
僕がStripeを使い始めた頃はCustomerにはdescriptionしかなかったのですが、その後nameが増えました。今後のことを考えると顧客名はnameにセットしておいてDescriptionには説明を記載するような運用にしておいたほうが良さそうです。
請求書・領収書の電話番号表記
請求書・領収書から電話番号の表記を消すことができるようになりました。
請求関連の連絡も含めて問い合わせはメールに集約したい、などのケースが想定されているのではないかと思います。
アカウントの詳細から設定を切り替えることができます。
StripeのAPIに関係ないところでも日々改善が進んでいますね。Stripeダッシュボードもいつの間にか増えている設定などがあるので、たまに見てみるとおもしろいです。