配布業務管理システムの構築事例
はじめに
チラシ配布などの配布業務を効率的に管理するためのWebシステムを構築しました。 本システムは、配布員の実績管理から支払い計算まで、配布業務に必要な機能を一元化し、 業務の効率化と正確性の向上を実現しています。
本システムは顧客提供システムのため、実際の画面キャプチャや顧客情報は掲載しておりません。 システムの構築要件や機能、活用方法についてご紹介いたします。
システム構築要件
技術スタック
- CMS: WordPress
- サーバーサイド: PHP 8.1
- データベース: MariaDB 10.6
- フォーム: Contact Form 7
- フロントエンド: jQuery, Bootstrap
主な要件
- 配布員ごとの実績管理と集計
- 案件ごとの配布状況の可視化
- 併配(複数案件の同時配布)の管理
- 月次実績の自動集計とCSV出力
- ログイン認証によるセキュアなアクセス制御
- 配布エリアと案件の紐付け管理
主な機能
1. 配布員管理機能
配布員の基本情報を管理し、各配布員に割り当てられた案件とエリアを一元管理します。 配布員ごとにアクセス可能な案件を制限し、セキュリティを確保しています。
- 配布員マスタ管理
- 案件・エリアの割り当て管理
- ログイン認証によるアクセス制御
2. 案件管理機能
配布案件の情報を管理し、配布期間、単価、併配設定などを一元管理します。 案件ごとに異なる単価設定(通常単価、併配単価など)に対応しています。
- 案件情報の登録・編集
- 配布期間の管理
- 単価設定(通常単価、併配単価)
- 併配タイプの設定
3. 併配管理機能
複数の案件を同時に配布する「併配」を効率的に管理します。 併配の親子関係を管理し、親案件の配布数に応じた単価計算を自動化しています。
- 併配の親子関係管理
- 併配単価の自動計算
- 超過分の単価計算(親案件の配布数を超えた分は通常単価)
- 併配タイプの表示(単配、親、子など)
4. 月次実績管理機能
配布員の実績を月単位で集計し、配布数、単価、支払金額を自動計算します。 期間指定による検索やCSV出力機能により、効率的な実績管理を実現しています。
- 期間指定による実績検索
- 配布日、案件番号、案件名、エリア別の実績表示
- 配布数、単価、支払金額の自動計算
- 併配タイプの表示
- CSV形式でのダウンロード機能
- 検索ボックスによる絞り込み機能
5. アクション履歴管理機能
Contact Form 7を活用したフォーム送信により、配布開始・終了の報告を管理します。 選択されたエリアごとに自動的にデータベースに登録され、配布状況をリアルタイムで把握できます。
- 配布開始・終了の報告フォーム
- 案件選択によるエリアの動的表示
- 複数エリアの一括選択
- 併配案件への自動連携
- アクション履歴の一覧表示
6. セキュリティ機能
ログイン認証によるアクセス制御を実装し、配布員ごとにアクセス可能な案件を制限しています。 また、SQLインジェクション対策やXSS対策など、セキュリティベストプラクティスを実装しています。
- WordPressのログイン認証を活用
- 配布員ごとの案件アクセス制御
- SQLインジェクション対策(プリペアドステートメント)
- XSS対策(データのサニタイズ)
活用方法
業務フロー
-
案件登録
管理者が配布案件の情報(案件名、配布期間、単価、エリアなど)を登録します。 -
配布員への割り当て
各配布員に案件とエリアを割り当てます。 -
配布開始報告
配布員がフォームから配布開始を報告します。案件を選択すると、割り当てられたエリアのみが表示されます。 -
配布終了報告
配布完了後、配布員がフォームから配布終了を報告します。配布日が自動的に記録されます。 -
実績確認
配布員は月次実績画面で自分の実績を確認できます。期間を指定して検索することも可能です。 -
CSV出力
実績データをCSV形式でダウンロードし、Excelなどで集計や分析に活用できます。
併配業務の活用
併配機能により、複数の案件を同時に配布する際の管理が効率化されます。 親案件の配布数までは併配単価が適用され、超過分は通常単価で計算されるため、 正確な支払い計算が可能です。
技術的な特徴
実装のポイント
-
動的なフォーム生成:
Contact Form 7のフィルターフックを活用し、ログインユーザーに応じて 案件リストやエリアリストを動的に生成しています。 -
併配計算の自動化:
複雑な併配の単価計算をSQLクエリとPHPの処理で自動化し、 配布員が意識することなく正確な計算が行われます。 -
CSV出力の最適化:
Excelで文字化けしないようBOM付きUTF-8で出力し、 ダブルクォートのエスケープ処理を実装しています。 -
Ajaxによる動的表示:
案件選択時にAjaxでエリアリストを取得し、 ユーザビリティを向上させています。
開発における課題と解決策
課題: 併配の複雑な単価計算
併配では、親案件の配布数までは併配単価、超過分は通常単価という 複雑な計算が必要でした。
解決策:
SQLクエリで親案件の配布数を取得し、PHP側で超過分を判定して
2つのレコードに分割する処理を実装しました。
課題: Contact Form 7の動的選択肢生成
Contact Form 7の選択肢をサーバー側で動的に生成する必要がありました。
解決策:
wpcf7_form_tagフィルターを活用し、
ログインユーザーに応じた案件リストとエリアリストを生成しました。
課題: エリアの動的表示制御
案件選択時に、該当案件のエリアのみを表示する必要がありました。
解決策:
JavaScriptとAjaxを組み合わせ、案件選択時にエリアリストを取得し、
表示/非表示を切り替える処理を実装しました。
まとめ
本システムは、配布業務の効率化と正確性の向上を実現するWebシステムとして構築されました。 WordPressをベースとすることで、既存のインフラを活用しながら、 カスタム機能を柔軟に追加できる構成となっています。
併配管理や月次実績の自動集計など、配布業務特有の要件に対応し、 配布員の負担を軽減しながら、管理者の業務効率も向上させています。
本システムは顧客提供システムのため、実際の画面や顧客情報は公開できませんが、 同様の配布業務管理システムの構築をお考えの際は、ぜひご相談ください。