チェックアウトの前に住所と記載された郵便番号が一致するか確認する
注文フォームの郵便番号と市区町村の不一致は、小さな入力ミスに見えますが、やがて国内のまったく別の地域に荷物が送られる事態につながります。
複数のタイムゾーンにまたがって店舗を展開するあるフランチャイズには、誰も直そうと思わなかったWebサイトの問題がありました。各店舗ページの共通の「営業時間」セクションには、本部の誰かが一度書いて全店舗にコピーした同じスケジュールが表示されており、その店舗が実際にどのタイムゾーンで営業しているかは考慮されていませんでした。フランチャイズの営業エリアの西側にある店舗は、自分の時計で午後9時に閉店するのに、Webサイト上では実際より3時間早く閉まるように見えていました。営業時間が本部の時刻を基準に書かれ、店舗ごとに調整されていなかったからです。
これを直すには、「営業時間」を1つの共通コンテンツとして扱うのではなく、各店舗に実際のタイムゾーンを結び付ける必要がありました。この会社は、フランチャイズ各店舗の住所について/v1/forwardで座標を解決し、その座標を/v1/timezoneに渡しました。/v1/timezoneはその地点のIANAタイムゾーン名を返します。固定のオフセットではなくタイムゾーン名を保存することで、本部の誰かが年に2回忘れずに何かを更新しなくても、営業時間の表示は夏時間の切り替えを通じて自動的に正しく保たれました。
各店舗のタイムゾーンが登録されたことで、Webサイトは最初からやるべきだったことをようやく実現できました。特定の店舗が今営業中かどうかを、訪問者の時計でも本部の時計でもなく、その店舗自身の時計で正しく計算して訪問者に示すことです。国の反対側から、反対側の海岸にある店舗のページを閲覧している訪問者にも、その店舗の実際の現地時刻を反映した正確な「営業中」や「閉店中、午前8時に開店」が表示されました。これから車でそこへ向かう人にとって本当に役に立つのは、この形の情報だけです。
この会社は、店舗検索については特に、訪問者自身の所在地をこれに組み合わせました。/v1/ipで訪問した顧客のおおよその座標を解決し、他の検索ツールと同じ距離順の並べ替えに渡しました。これにより、最寄りの営業中の店舗を探す顧客には、距離と、その店舗が検索した時点で実際に営業しているかどうかの両方を考慮した結果が表示されました。営業中の店舗の中に現在閉店中の店舗がいくつも混ざった、距離順だけのリストではありません。
これは、Webサイトの訪問者が何かについて「タイムゾーンの正しい処理」のおかげだと考えることは決してないという意味で、小さくほとんど目に見えない修正でした。訪問者は、表示された営業時間が実際と合っていることに気づくか、おそらくは気づかないだけです。それは一般的に、行う価値のある修正であることの証しです。誰も褒めませんが、以前のバージョンで混乱していたはずの人は誰も混乱しなくなります。
ジオコーディングは一度きりの初期設定の一部として店舗ごとに1回実行しました。ほとんどのフランチャイズの店舗数を考えれば小さなバッチであり、1日の無料の割り当ての範囲内に十分収まります。訪問者向けの「営業中」機能のタイムゾーン検索は、店舗検索のトラフィックに連動するわずかな継続的なリクエスト量を加えるだけで、これも中規模のフランチャイズなら無料枠に十分収まります。全国規模のマーケティングキャンペーンで店舗検索が異常に急増した場合には、プリペイドクレジットを利用できます。
両方のエンドポイントのドキュメントは/docs/forward-geocoding/と/docs/timezone-lookup/にあります。