Tokurabo Takeout Orders:マニュアル

Web 制作の方・開発者・お店のサイトの担当の方へ。

お店のスタッフ向けの毎日の使い方はガイドにあります。最初の設定はガイドの「1. 最初の設定」をご覧ください。

1. 動作環境と Takeout Menu との関係

2. 設定の一覧

管理画面のメニューの Takeout Menu の下にあります。開けるのは管理者(manage_options)だけです。

Takeout Menu > Order settings(受付設定)

セクション設定説明
Taking orders(受付の状態)Stop taking orders(受付を停止)/Resume taking orders(受付を再開)押した瞬間に反映されます(Save Changes とは別)。メニューは表示されたままです。「+」と Add to cart が非表示になり、カートでは Checkout の代わりにメッセージが表示され、サーバーも新しい注文を受け付けません。
Message while paused(受付停止中のメッセージ)停止中にお客様に表示するメッセージ。空欄なら「ただいまオンラインのご注文を受け付けておりません。時間をおいてお試しください。」
Pickup times(受け取りの時刻)Preparation time(準備の時間)0〜240 分。初期値は 30。
Time slots(時刻の間隔)5・10・15・20・30・60 分ごと。初期値は 15。時刻は時計の区切りに合わせます(10:00、10:15 …)。
Days ahead(予約できる日数)1〜60 日(今日を含めて数える)。初期値は 7。
Daylight saving time(夏時間)お店のタイムゾーンで、今後1年以内に夏時間の切り替えがある場合だけ表示されます(日本では表示されません)。3 を参照。
Special days(臨時営業時間の設定)Date(日付)/Status(状態:Closed 休み・Special hours 臨時営業時間)/Hours(時間)ふだんの営業時間より優先されます。過ぎた日は保存するときに自動で削除されます。同じ日付が2つある場合は、後のほうを使います。
Checkout(注文フォーム)Notice to customers(注文フォームのお知らせ)注文フォームのいちばん上に表示されます。使えるのは改行・<strong>・<a> だけです。
Order emails(注文のメール)Shop name(店名)メールの送信者の名前と、件名・本文に使います。空欄ならサイトのタイトル。
From email address(お店のメールアドレス)注文のメールの差出人と、新しい注文の送り先を兼ねます。カンマで区切って5つまで(差出人は1つ目)。空欄ならサイト管理者のメールアドレス。正しくないアドレスがあると保存されません。4 を参照。
Send test email(テストメールを送る)保存した設定で、From email address のすべてのアドレスにテストメールを送ります。
Order numbers(注文番号)Prefix英数字 10 文字まで。英字の小文字は大文字になり、記号は取り除かれます。初期値は TO。
Order history(注文の記録)Keep orders for(記録を残す期間)… days after pickup0=無期限(初期値)。最大 3650。
Styles(スタイル)Use the plugin styles(プラグインのスタイルを使う)初期値はオン。オフにすると、カートと注文フォームの CSS を自分で設定できます。8 を参照してください。

Takeout Menu > Availability(取扱商品)

商品のチェックを外すと、その商品の注文受付を停止します。チェックを戻すまで「Sold out(売り切れ)」と表示され、同期しても元に戻りません。停止できるのは商品単位です(値段の種類やカスタマイズ単位ではありません)。カスタマイズを停止したい場合はレジアプリ(Square など)で売り切れにしてください。

3. 受け取り時間の決まり方

  1. お店の営業時間:レジに登録した店舗の営業時間(Square ならロケーションの営業時間。Takeout Menu 0.2.0 以上で取り込み。地域やレジアプリによっては設定できません)。ない場合は、お店の営業時間はありません(ほかのメニューの提供時間は使いません)。
  2. 選べる時刻:いずれかのメニューが提供されている時間。提供時間のないメニューは、お店の営業時間に従います。お店の営業時間もなければ、そのメニューにだけある商品は「お店から連絡して決める」になります(下の説明)。
  3. Special days(臨時営業時間の設定)が最優先です。休みの日は選べません。臨時営業時間はその日の営業時間になります(提供時間のあるメニューは、重なる時間だけ)。
  4. 今日は「現在時刻+Preparation time(準備の時間)」以降だけ。今日が営業日なら「ASAP」(できるだけ早く)も選べます。終了時刻ちょうどまで選べます(21:00 までなら 21:00 も)。0 時をまたぐ営業時間は翌日に続きます。
  5. カートの商品が選んだ時刻に用意できない場合は、注文フォームにその商品とふだんの提供時間が表示され、Place order(注文する)が押せなくなります。

時刻はお店のタイムゾーン(Takeout Menu がレジから取り込んだもの。ない場合は WordPress のタイムゾーン)で計算します。時刻の表示形式は WordPress の 設定 > 一般 の時刻形式に従います。

お店から連絡して決める:提供時間のないメニューにだけある商品がカートにあり、レジに店舗の営業時間もなければ、お客様は時間を選びません。注文全体が To be arranged(未定(要連絡))になり、お店からお客様に連絡して決めます。このとき受付設定の Pickup times の下に説明が表示されます。どのメニューにも提供時間がなければ、すべての注文がこの形になり、黄色いお知らせが表示されます。レジでメニューの提供時間を設定すれば、次の同期で元に戻ります。

夏時間:時計が進むときに存在しなくなる時刻は表示しません。時計が戻るときに2回ある1時間は、1つの時刻が2つの時点を指してしまうため、設定でオンにした場合だけ表示します。

注文を受けたとき、サーバーで受け取り時間をもう一度確認します。すでに選べない時刻になっていれば、お客様に選び直してもらいます。

4. 注文・注文番号・メール

サーバーで確認すること

ブラウザが送るのは商品の ID・カスタマイズ・数量だけで、値段は送りません。サーバーが現在のメニューから注文を作り直します。商品とカスタマイズがサイトに表示中のメニューにあり、売り切れでないこと、必須の選択や選べる数を確認し、値段はメニューのページと同じ計算(税込か税抜かは Takeout Menu の設定どおり)で出します。時価の商品があれば、小計は「Price varies」(時価)になります。

注文番号

Prefix+月日+ランダムな4文字(0〜9・A〜F)。例 TO-1017-A3F9。

メール

wp_mail() で送信するテキストメールで、サイトの言語で届きます。

メール宛先件名(英語のサイトの例)返信先(Reply-To)
お客様へお客様のメールアドレスOrder received: TO-1015-A3F9 - 店名From email address の1つ目
お店へFrom email address(すべて)New order TO-1015-A3F9 - pickup Oct 17 12:00 pmお客様のメールアドレス

送信者(From)は「店名 <From email address の1つ目>」です(受付設定の Shop name・From email address。空欄ならサイトのタイトルとサイト管理者のメールアドレス)。SMTP のプラグインで送信元を固定している場合は、そちらの設定が使われます。迷惑メールに入る・届かない場合は SMTP のプラグインを使ってください(設定のしかたはガイドにあります)。小計のあとには、Takeout Menu の値段の見せ方に合わせて「(税込)」か「(税抜)」が付きます(カートと注文の一覧も同じ)。お客様へのメールとカートでは、見出しが「小計 (概算)」になります(税の端数の丸め方がレジと違い、1円ずれることがあるため。最終の金額はレジで計算します)。送信に失敗しても注文は記録され、お客様の画面には「確認のメールをお送りできませんでした。注文番号を控えておいてください。」と表示されます。

5. 注文の一覧・CSV・記録を残す期間

6. お客様のデータと個人情報

必要に応じて、サイトのプライバシーポリシーにこれらの内容を追記してください。

7. いたずら対策

キャッシュのプラグイン

受け取り時間は、注文フォームを開くたびに取得します(Cache-Control: no-store)。ページがキャッシュされていても、最新の時間が表示されます。REST のノンスはログイン中のユーザーにだけ付けるので、キャッシュされたページでも注文が失敗することはありません。

8. 見た目を変える

カートと注文フォームは、メニュー(ない場合はページ)の色とフォントを引き継いで使います。色の設定はありません。さらに変更したい場合は CSS を追加してください。クラス名は takeout-orders- で始まります。

/* カートのボタンの位置を変える */
:root {
  --takeout-orders-cart-right: 24px;
  --takeout-orders-cart-bottom: 24px;
}

CSS をすべて自分で書く

Order settings > Styles の Use the plugin styles(プラグインのスタイルを使う) をオフにします。カートのボタン、カート、注文フォーム、商品の画面の数量と Add to cart、メニューの「+」について、プラグインの CSS を読みこまなくなります。管理画面の CSS はそのままです。

オフにしても、最小限の CSS だけは読みこみます。ロボット対策の隠し欄を隠す(お客様に見えて入力されると、注文を受け付けなくなるため)ほか、アイコンの大きさなど、いくつかの小さな指定です。ロボット対策の欄以外は詳細度 0(:where())なので、自分の CSS でそのまま上書きできます。

この設定は、Takeout Menu の同じ名前の設定とは別です。コードで切る場合は、tokurabo_takeout_orders_load_css フィルターを使います。

9. 開発者向け:フックと REST API

フィルター

フィルター変えられるもの
tokurabo_takeout_orders_store_hours曜日ごとのお店の営業時間(1=月 … 7=日 => 時間帯の配列)。
tokurabo_takeout_orders_prep_minutes準備時間(分)。いちばん早い時刻と ASAP に使います。保存した設定値は変わりません。
tokurabo_takeout_orders_open_periodsその日に選べる時間帯(引数:時間帯の配列、その日)。
tokurabo_takeout_orders_pickup_message受け取り時間の見出しの下に表示するメッセージ。初期値は空。
tokurabo_takeout_orders_checkout_fields注文フォームの最後に入力欄を追加:key・label・type(text/textarea)・required・maxlength・placeholder。1つの注文に1つずつ。
tokurabo_takeout_orders_check_fields追加した入力欄([ { key, label, value } ])を検証。WP_Error を返すと、そのメッセージを出して注文を受け付けません。
tokurabo_takeout_orders_email送信前のメール1通ずつ:kind(customer/store)・to・subject・body・headers と注文の中身。
tokurabo_takeout_orders_rate_limit[ 'ip' => [ 5, 600 ], 'email' => [ 5, 3600 ] ]。件数を 0 にすると制限しません。
tokurabo_takeout_orders_load_cssfalse を返すと、プラグインの CSS を読みこみません。Use the plugin styles をオフにするのと同じです。

追加プラグイン用の別のカート

追加のプラグインは、商品と受け取り時間を独自に持つ別のカートを、通常のカートとは別に作れます。カートのボタンと通常のカートには影響しません。

アクション

REST API(名前空間 tokurabo-takeout-orders/v1)

データベースのテーブル

{prefix}tokurabo_takeout_orders(注文1つを1行)と {prefix}tokurabo_takeout_order_items(商品1つを1行)。商品名と値段は、注文時点のものをコピーして保存します。

10. 困ったとき・ログ

こんなとき見るところ
メールが届かないまず迷惑メールのフォルダ、次に SMTP のプラグイン(ガイド)を確認してください。送信時のエラーはログで確認できます。
「Could not load pickup times.」(受け取りの時刻を読みこめませんでした。)REST API がブロックされている(セキュリティのプラグイン・サーバーの設定)か、サイトがエラーを返しています。/wp-json/tokurabo-takeout-orders/v1/pickup を開いて確認してください。
時刻が何時間かずれて表示されるレジアプリ(Square など)の店舗のタイムゾーンと、設定 > 一般 > タイムゾーン を確認してください。
「Too many orders. Please wait a few minutes and try again.」(注文が多すぎます。数分たってから、もう一度お試しください。)回数の上限に達しています。大勢が同じネットワークから注文していないか確認してください。tokurabo_takeout_orders_rate_limit フィルターで変更できます。
古い注文が削除されないWP-Cron が止まっているか、サイトへのアクセスが少ないためです。サーバーの cron から wp-cron.php を実行してください。

詳しいエラーは、wp-config.php で WP_DEBUG_LOG を有効にした場合だけ wp-content/debug.log に記録します。

プラグインを削除したとき

停止するだけなら何も削除されません。削除すると、注文(テーブル2つ)・設定・予約した処理がすべて削除されます。先に CSV に書き出してください。プラグインの一覧の「停止」の横に Export orders(注文をエクスポート)のリンクがあります。Takeout Menu とその設定は削除されません。

Takeout Orders を無料で手に入れる

Tokurabo Takeout Orders は、WordPress.org で無料で公開しています。

WordPress.org からダウンロード

WordPress の管理画面の プラグイン > 新規プラグインを追加 からもインストールできます。

注文が増えてきたら

Takeout Orders に追加して使う有料のプラグインです。

Takeout Order Board 有料

Takeout Orders に届いた注文を、お店のタブレットで随時対応できるオーダーボード機能を実装します。ボタン1つで注文を進めて、お客様にメールでお知らせ。混雑モード・季節の予約商品・注文履歴等の機能も充実しています。

Takeout Order Board を見る