Ver.1.15 予約リストのCSVデータダウンロード機能追加

CSVファイルをExcelに読み込む

予約データには予約日時の他、予約者の名前や電話番号など予約者情報やオプション選択された情報が登録されています。これらの情報は管理画面の「予 約リスト」から参照する事ができます。しかし、外部にデータを出力するには、カットアンドペーストを利用する以外方法がありませんでした。

Ver.1.15では、管理画面の予約リストで「CSVデータのダウンロード」機能が、Ver.1.14の予約確認・完了メール送信機能の追加に続いて追加されました。

改善された検索機能

これまでの検索機能は、メニュー実行時のデフォルトでは操作している日付から、将来の予約データがリスト表示されていました。過去のデータは、検索キーの「予約品目」と予約日付の「年」・「月」を利用して表示しました。

管理画面の予約リスト

新しいバージョンでは、全予約データの一覧が操作している日付に関係なくシームレスで処理されるようになりました。データ表示の順番は今までと同様、予約IDの降順がデフォルトです。

そして検索キーの予約日付に新しく、「日」が追加されました。

これまでは月単位の表示しかできませんでしたが、Ver.1.15からは年単位、月単位、日単位で予約品目ごとの一覧表示ができるようになりました。

予約リストの絞り込み検索

ソートについて

ソート(並び替え)のキーとなる項目は今までと同様、「予約ID」と「予約日」です。デフォルト表示は予約IDの降順で表示されます。なおここの「予約ID」とはデータベース上のユニークIDデータコードで、予約時に発行する「予約ID」と異なりますのでご注意下さい。

降順・昇順の表示切替は、それぞれタイトルをクリックする事で画面が切り替わります。

 予約データのCSVダウンロード

予約リストの検索結果を、CSVファイルに変更してローカルPCへダウンロードする機能が追加されました。ダウンロードデータについて以下注意点になります。

  1. 最大件数は1000件まで
    画面表示は1画面20件ですが、ダウンロードは全検索データが一括でダウンロードされます。検索データは最大1000件までがダウンロードの対象です。
  2. 漢字コードはShift JIS
    Webサイトで漢字を取り扱う場合、通常は UTF-8 を利用しますが、ダウンロードデータは Shift JIS に変換されたデータです。
  3. 出力データは素の「予約データ」
    予約データに登録されている情報は、例えば予約品目なら「予約品目のデータベース上のID」で、予約品目名は登録されていません。出力データはデータベースに登録された「予約データ」の中身になります。
  4. 予約者に送信する「予約ID=reserve_id」とデータの「予約ID=booking_id」
    出力は「reserve_id」がデフォルトです。
  5. 予約日時のデータは「yyyy-mm-dd hh:mm」に変換
    登録データはUnix Time形式(メッセージフィルター機能を利用して変更可能)です。
  6. ダウンロードファイル名は「booking_list.csv」
    メッセージフィルター機能を利用して変更可能です。

ダウンロードデータ例:

ダウンロードテキストデータ

出力項目の変更について

出力項目は

  • 予約ID
  • 予約日時
  • 予約者名
  • 電話番号
  • E-Mailアドレス

がデフォルトです。

出力項目はメッセージフィルター機能を利用して変更可能です。その方法を以下に説明します。

メッセージフィルター「mtssb_download_list_order」を利用します。フィルター関数で、出力項目とカラムヘッダー名を対にした配列データを返すようにします。

デフォルトは次の通りです。

array(
    'reserve_id' => '予約ID',
    'booking_time' => '予約日時',
    'client.name' => '予約者',
    'client.tel' => '電話番号',
    'client.email' => 'E-Mail'
);

その他、出力可能な項目は次の通りです。

  • booking_id:予約ID
  • confirmed:予約確認フラグ(0 or 1)
  • article_id:予約品目ID
  • number:予約人数
  • created:登録日
  • article_name:予約品目名
  • series:連続予約時間割数
  • client.company:会社名
  • client.furigana:フリガナ
  • client.birthday:生年月日(yyyy-mm-dd)
  • client.gender:性別(male or female)
  • client.postcode:郵便番号
  • client.address1:住所1
  • client.address2:住所2
  • client.newuse:新規利用(0 or 1)
  • client.adult:大人人数
  • client.child:小人人数
  • client.baby:幼児人数
  • client.car:車台数
  • client.transaction_id:PayPal決裁時のTRANSACTION_ID
  • client.user_agent:利用ブラウザ情報
  • client.remote_addr:IPアドレス

以下は、メッセージ フィルター機能を利用して「データベースの予約ID」、「予約日時」、「大人人数」、「小人人数」、「登録日」を出力指定する例です。

add_filter('mtssb_download_list_order', 'download_list_order');
function download_list_order($items) {
    return array(
        'booking_id' => '予約ID',
        'booking_time' => '予約日時',
        'client.adult' => '大人人数',
        'client.child' => '小人人数',
        'created' => '登録日'
    );
}

 出力ファイル名、予約日時の出力変更のメッセージフィルター

出力ファイル名を「list.csv」に変更する例です。

add_filter('mtssb_download_list_name', 'download_list_name');
function download_list_name($name) {
    return 'list.csv';
}

予約日時を「yyyy年n月j日時AM(PM)」で表示する例です。

add_filter('mtssb_download_list_booking_time', 'download_list_booking_time', 10, 2);
function download_list_booking_time($datestr, $utime) {
    return date_i18n('Y年n月j日 g時A', $utime);
}

出力したCSVファイルはExcelなどの表計算アプリへ取り込めます。VBAなど利用して、予約システムをよりご活用いただける事と思います。