Korat

店舗のウェブサイトにチャットボタンを設置する

店舗のサイト(Wix、Webflow、Shopify、自作、あるいは外注で作ったものでも)に1行のコードを貼ると、Korat 上の店舗にすぐチャットを送れる浮かぶボタンが付きます。すでにアプリを使っているかたがスマートフォンから読み取れる QR も付いています。

このボタンは何か

店舗のウェブページに貼るだけの単一のスクリプトで、画面の隅(左下か右下を選べます)に浮かぶボタンを描きます。お客さまが押すと、新しいタブで https://koratland.com/m/<店舗のスラッグ> が開き、現在のページの URL が必ず一緒に渡されます(src パラメーター)。お客さまがどのページから話しかけてきたのかを店舗が分かるようにするためです。

お客さまがメッセージを送るには、必ず Korat にログインしている必要があります。アカウントがない、またはそのブラウザーでログインしていない場合は、先にログイン画面が表示されます。これは通常の動作で、意図してそうしています。お客さまがログイン画面を見てそこで止めても構いません。システムは無理に進ませたり、うまく誘導しようとしたりはしません。

そのため、ボタンにはQRコードも付いています(このスクリプトではなく、Korat のサーバー自身が描きます)。すでにスマートフォンに Korat アプリを入れていて(ログイン済みで)いるお客さまは、読み取るだけでパソコンで何も入力せずにチャットルームへ入れます。アプリを入れた Android のスマートフォンでは、同じリンクがアプリを直接開きます。

訪問者を追跡するツール(トラッカー)ではありません

このスクリプトはページの読み込み時にいっさいリクエストを送りません。閲覧の行動を記録せず、クッキーも設定せず、訪問者について何も読み取りません。起きることは1つだけで、お客さまが自分でボタンを押したときにはじめて、QRのパネルが Korat のサーバーから QR 画像を読み込みます(リクエスト1件、クッキーなし、src 以外のクエリーなし)。そして「Korat でチャットを開く」のリンクを押すと、ブラウザーが koratland.com への普通のリンクを1つ開きます。ボタンを押す前に、裏側で動いているものは何もありません。

始め方——1行をコピーして貼る

次のコードを </body> の直前(ページ内のどこでも構いません)に貼り、somtam-lardprao-42ご自身の店舗ページのスラッグ(日本語の店舗名ではなく、英数字のもの)に置き換えてください。スラッグの調べ方は次の項目にあります。

<script src="https://koratland.com/embed/korat-message.js"
        data-korat="somtam-lardprao-42" defer></script>

これで完了です。追加のインストールも依存関係もなく、店舗サイトの速度にも影響しません(単一ファイル、小さなサイズ、defer での読み込みなので、ページをブロックしません)。

店舗のスラッグはどこで分かるか

  • Korat の店舗ページ https://koratland.com/b/<スラッグ> を開きます。アドレスバーの URL の /b/ の後ろの部分がスラッグです
  • 同じスラッグを、チャットボタンにも QR にも使います

プラットフォームごとの貼り方

  • Wix——エディター → 要素を追加(Add)→ Embed Code → Custom Embeds → HTML iframe → 上のコードを貼り付け
  • Webflow——Add panel → Embed → Embed an HTML Code → コードを貼り付け → Publish
  • Shopify——Online Store → Themes → Edit code → theme.liquid を開く → </body> の前に貼り付け
  • WordPress——サイトが WordPress の場合は、専用の Korat プラグインをお使いください(ドキュメントの入り口をご覧ください)。管理メニューに設定用の補助があり、コードを編集する必要がありません。ご自身で貼りたい場合は、このページのスクリプトも同じように使えます
  • 自作・外注のサイト——<script> タグを HTML ファイルの </body> の直前にそのまま置きます

カスタマイズの項目(data-*)

属性既定値意味
data-korat必須。チャットのリンクを組み立てるのに使う店舗ページ /b/<スラッグ> のスラッグ
data-namedata-korat と同じQR パネルに表示する店舗名(ただの文字列で、URL には影響しません)
data-positionbrbr = 右下、bl = 左下
data-label言語ごとの標準の文言ボタンに表示する文言。自分で書けます
data-langthth または en
data-qr表示するdata-qr="0" を入れると QR パネルを隠します(チャットを開くリンクだけになります)

チャットの URL と QR 画像の URL に入る src は、常にボタンを埋め込んだページの location.href から取ります。スクリプト側で固定値に差し替える方法はありません。そうするとすべてのボタンが同じページから来たように見えてしまい、この機能の目的に反するからです。

すべてを指定した例です。

<script src="https://koratland.com/embed/korat-message.js"
        data-korat="somtam-lardprao-42"
        data-name="ソムタム・ラートプラーオ"
        data-position="bl"
        data-label="チャットで相談"
        data-lang="th"
        defer></script>

アクセシビリティ

  • ボタンは本物のボタンで、Tab キーで到達でき、aria-label が付いています
  • Esc キーで QR パネルを閉じられます
  • 利用者の端末の「視差効果を減らす」設定(prefers-reduced-motion)を尊重します
  • 明るい背景でも暗い背景でも十分なコントラストがあり、最近のスマートフォンのセーフエリアに合わせて画面の端から余白を取るため、画面下のジェスチャーバーを覆いません

店舗のサイトにとって安全である理由

  • UI を Shadow DOM で描くため、店舗サイトの CSS とボタンの CSS が衝突することはありません
  • 単一ファイルで外部の依存関係がなく、フォントやライブラリを追加で読み込みません
  • 何度読み込んでも、ボタンが重なって描かれることはありません
  • data-* に入力した値は、表示する前に必ずエスケープされます