【制作事例】配布業務管理システムの構築

配布業務管理システムの構築事例

はじめに

チラシ配布などの配布業務を効率的に管理するための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対策(データのサニタイズ)

活用方法

業務フロー

  1. 案件登録
    管理者が配布案件の情報(案件名、配布期間、単価、エリアなど)を登録します。
  2. 配布員への割り当て
    各配布員に案件とエリアを割り当てます。
  3. 配布開始報告
    配布員がフォームから配布開始を報告します。案件を選択すると、割り当てられたエリアのみが表示されます。
  4. 配布終了報告
    配布完了後、配布員がフォームから配布終了を報告します。配布日が自動的に記録されます。
  5. 実績確認
    配布員は月次実績画面で自分の実績を確認できます。期間を指定して検索することも可能です。
  6. 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をベースとすることで、既存のインフラを活用しながら、 カスタム機能を柔軟に追加できる構成となっています。

併配管理や月次実績の自動集計など、配布業務特有の要件に対応し、 配布員の負担を軽減しながら、管理者の業務効率も向上させています。

本システムは顧客提供システムのため、実際の画面や顧客情報は公開できませんが、 同様の配布業務管理システムの構築をお考えの際は、ぜひご相談ください。

WordPress PHP システム開発 業務管理システム