Official Documentation

ソーシャルギフト(eギフト)機能プラグイン
公式オンラインマニュアル

お届け先の住所を知らない相手にも、LINEやSNS、メール等でURLを共有するだけで手軽にギフトが贈れる「eギフト」機能をEC-CUBEへ追加します。
動くデジタルカード作成、複数商品のまとめ贈り、受取人住所の完全隔離、未入金出荷防止ガード、専用出荷CSV出力まで、現場の実務に即した運用機能を網羅しています。

プラグインコード: SocialGift
対応バージョン: EC-CUBE 4.2.0 〜 4.3.x
PHP要件: PHP 8.1 〜 8.3
ライセンス: オーナーズストア(審査中)
最終更新: 2026年9月

1. プラグイン概要・導入メリット

近年、LINEギフトをはじめとする「ソーシャルギフト(eギフト)」市場は急速に拡大しており、ECサイトにおけるギフト需要の重要なシェアを占めるようになりました。
「相手の現住所や在宅日時が分からない」「住所を改まって聞くのが気まずい」「サプライズで贈りたい」といった現代の購入者の心理的ハードルをゼロにすることで、新規顧客の獲得と客単価の向上を実現します。

💡 ソーシャルギフト(eギフト)とは?
購入者(贈り主)はお相手の住所や電話番号を知らなくても、商品購入後に発行される「受取専用URL」をLINEやSNS、メールで送信するだけでプレゼントが完了します。お届け先住所や希望配送日時は、ギフトを受け取った相手自身がスマートフォンから入力します。
🎬 背景動画付き動くメッセージカード
誕生日やお祝い、感謝など全6種類の背景ループ動画を用意。スマホ画面上でリアルタイムにプレビューしながら、最大500文字の温かいメッセージを添えて贈れます。
📦 複数商品の「カートまとめ贈り」対応
1商品・1個単位のギフトだけでなく、カート内の複数商品や複数個をひとつのギフトURLに束ねて贈ることができます。
🔒 受取人住所の完全隔離(プライバシー保護)
受取人が入力した配送先情報はプラグイン専用テーブルに厳重保管され、購入者の注文履歴やメールには一切開示されません。SNSのフォロワー同士でも安心です。
🛡️ 未入金誤出荷を防止する2重安全ガード
クレジットカード等の即時決済のみに制限可能。受取人が住所を入力しても、入金が確認されるまでは出荷可能ステータスへ進行しない安全設計です。
⏰ 受取有効期限&自動フェイルセーフ
受取有効期限(初期値7日)を管理。期限切れ前の自動リマインド通知や、期限切れ時に購入者住所へ自動配送を切り替える救済処理を備えています。
📊 専用出荷CSV出力&ワークフロー連動
EC-CUBEの「配送CSV」設定と自動連動し、受取人の実住所が反映された出荷用CSVを一括出力。BOM付きUTF-8でExcel文字化けも物理防止します。

2. 動作要件・システム環境

本プラグインは、EC-CUBE 4.2系および4.3系の最新アーキテクチャに完全準拠し、以下の環境で厳格な動作検証を行っております。

項目 要件・対応仕様
EC-CUBE バージョン EC-CUBE 4.2.0 〜 4.3.x(Symfony 5.4 / 6.4 両対応)
PHP バージョン PHP 8.1 / PHP 8.2 / PHP 8.3(PHP 8.2+ 厳格準拠)
データベース MySQL 5.7 / 8.0 / PostgreSQL 10〜16
フロントエンド Bootstrap 5、レスポンシブ設計(Mobile-First 完全最適化)
外部API / 通信依存 住所自動補完に日本郵便公式準拠の yubinbango.js(CDN)を使用。
管理画面やカード表示に外部有償SaaS等の契約は一切不要です。

3. インストール・初期セットアップ

インストールと有効化を行うだけで、必要なデータベーステーブルの作成、専用注文ステータスのマスタ登録、Symfony Workflow定義の展開がすべて自動実行されます。

  1. 1

    プラグインのインストールと有効化

    EC-CUBE管理画面の [オーナーズストア] > [プラグイン] > [プラグイン一覧] から本プラグインをインストールし、「有効化」をクリックします。

  2. 2

    基本設定画面の確認と決済手段の登録

    [設定] > [システム設定] > [eギフト設定] を開き、eギフト注文で使用を許可する決済方法(クレジットカード推奨)や受取有効期限を設定して保存します。

  3. 3

    対象商品のタグ設定

    [商品管理] > [商品一覧] または [商品登録] で、eギフト対応にしたい商品に自動生成された「eギフト対応」タグを設定します。

✓ 自動登録される専用マスタデータ
プラグイン有効化時、以下のデータがEC-CUBE本体に自動登録されます:
  • 商品タグ:eギフト対応
  • 注文ステータス:eギフト受取待ち (ID: 1001) / eギフト配送待ち (ID: 1002) / eギフト期限切れ (ID: 1003)
  • Symfony Workflow設定:app/config/eccube/packages/social_gift_workflow.php

4. 管理画面の設定項目一覧

EC-CUBE管理画面の [設定] > [システム設定] > [eギフト設定] より、ショップの運用方針に合わせた柔軟な設定が可能です。

設定項目 初期値 説明および運用上の推奨方針
eギフト機能の有効化 有効 (ON) フロントの商品詳細画面やカート画面でeギフト購入ボタンを表示するかどうかを制御します。一時的に機能を停止したい場合はチェックを外します。
eギフト利用可能決済方法 未選択 (全OFF) eギフト注文手続き時に選択可能な決済手段を指定します。
※推奨:クレジットカード等の即時決済のみを選択してください。
郵便振替や銀行振込などの後払い・前払い決済を許可する場合でも、未入金誤出荷防止ガードが作動しますが、入金待ちによる期限切れリスクを防ぐため即時決済の指定を強く推奨します。
受取有効期限(日数) 7 日 注文完了日時から受取人がお届け先を入力できる有効期間(1〜90日)を指定します。食品や生花など賞味期限が短い商品は短め(3〜7日)の設定が適しています。
期限切れ前リマインド通知 2 日前 受取人が未入力のまま期限が迫っている場合、贈り主(購入者)へリマインドメールを自動送信するタイミング(1〜30日前)を指定します。
有効期限切れ時の処理ポリシー 購入者住所へ配送 受取人が期限内に住所を入力しなかった場合の自動対応方針を選択します:
  • 購入者(贈り主)の住所へ自動配送: 食品など既に手配が進んでいる場合や売上を確定させたい場合に推奨。
  • 注文キャンセル・返金処理: ギフト不成立として注文を取り消す場合。
  • 購入者自身に注文画面で選択させる: 購入者がギフト注文時にどちらかを選択できる柔軟モード。
eギフト専用配送料
(全国一律・税込)
0 円 eギフト購入時点では受取人の配送先都道府県が未定のため、全国一律の配送料を適用します。
クール便代金やギフト包装資材費をあらかじめ含めた配送料(例: 990円)を設定することを推奨します。
沖縄・離島などへの配送除外 無効 (OFF) チェックを有効にすると、受取人入力画面において配送に日数がかかる離島・遠隔地への配送除外メッセージを表示し、品質維持が困難な地域への発送を未然に防止します。

5. 対象商品の設定(タグ管理)

本プラグインは、全商品を一律でeギフトにするのではなく、「eギフト対応」タグが付与された商品のみを対象とします。

🏷️ タグ付与の手順
1. EC-CUBE管理画面の [商品管理] > [商品登録/編集] を開きます。
2. 「タグ」項目にある 「eギフト対応」 のチェックボックスをオンにします。
3. 画面下部の [登録] ボタンをクリックして保存します。
※ これだけで、対象商品の詳細画面に「eギフトで贈る」ボタンが即時反映されます。

eギフト運用時の商品選定アドバイス

  • 推奨商品: スイーツ、冷凍・冷蔵食品(ヨーグルト・アイス等)、カタログギフト、雑貨、コスメ、ギフトセットなど、プレゼント需要が高い商品。
  • 非推奨・除外すべき商品: 賞味期限が発送日含め1〜2日しかない超短命商品、大型家具・重量物など特殊配送が必要な商品、定期購入・サブスクリプション商品。

6. 購入者(贈り主)の操作フロー

贈り主は、相手の住所を聞き出す必要なく、直感的でおしゃれなメッセージカードを作成しながらスムーズにお買い物を完了できます。

6-1. 商品詳細からのギフト購入(動くデジタルカード作成)

「eギフト対応」タグが付いた商品詳細ページには、通常注文ボタンの隣に [eギフトで贈る] ボタンが表示されます。

🎨 デジタルメッセージカード作成モーダル

ボタンをクリックすると、洗練されたカード作成モーダルが開きます:

  • 背景デザインの選択: 誕生日(Birthday)、お祝い(Celebration)、感謝(Thanks)、お中元、クリスマス、お歳暮の全6種類の背景ループ動画からシーンに合わせて選択。
  • リアルタイムプレビュー: 選択した動画ループアニメーションの上にメッセージがリアルタイム描画され、スマホでのお相手の見え方を即座に確認できます。
  • 贈り主名の入力: ニックネームや愛称、連名など自由に設定可能(最大30文字)。
  • メッセージ入力: お祝いや感謝の気持ちを伝える自由文(最大500文字)。

6-2. 複数商品の「カートまとめ贈り」(複数商品・複数個対応)

カート画面(Cart/index.twig)では、各商品に「eギフト対応 / 非対応」のバッジが表示されます。
カート内のすべての商品がeギフト対応商品であれば、画面下部に [カート内の商品をまとめてeギフトで贈る] ボタンが表示され、複数商品・複数個をひとつのギフトURLに束ねて購入できます。

⚠️ カート内に非対応商品が含まれる場合
カート内に1点でもeギフト非対応商品が含まれている場合、まとめ贈りボタンは自動的に非活性(または案内アラート表示)となり、誤って混ざったまま決済へ進むトラブルを防止します。

6-3. ご注文手続き画面(不要項目の非表示化と固定配送料)

eギフト購入時は、ご注文手続き画面(Shopping/index.twig)および確認画面において、以下の専用最適化が自動適用されます:

  • お届け先入力の自動非表示: 受取人様が後から入力するため、「お届け先変更」「お届け先の追加」「お届け日時指定」フォームが自動的に非表示となり、「受取人様がお届け先を入力されます」という分かりやすい案内文に差し替わります。
  • eギフト専用全国一律配送料の適用: 管理画面で設定した専用固定配送料(例: 990円)が自動計算されて注文合計に加算されます。

6-4. ご注文完了・受取URLの発行とLINE共有

決済が完了すると、注文完了画面(Shopping/complete.twig)にギフト受取専用のURLが大きく発行されます。

📱 共有アクション機能
  • [LINEでギフトURLをシェア] ボタン: スマートフォンでタップするとLINEアプリが直接起動し、トーク画面でお相手を選んですぐにギフトURLを送信できます。
  • [ギフト受取URLをコピー] ボタン: ワンタップでクリップボードへコピー。InstagramのDM、X(Twitter)、メール等に貼り付けて送信できます。
  • 注文完了メール通知: 贈り主へ送信される「ご注文完了メール」の本文にも受取URLと有効期限が自動記載されるため、画面を閉じた後でもいつでも確認可能です。

7. 受取人(お届け先)の入力フロー

ギフトを受け取った相手が開くWebページは、スマートフォンでの操作性を極限まで高めた専用UI(Mobile-First)で構築されています。

7-1. スマホ専用受取画面と動画カード演出

受取専用URL(/gift/receive/{token})にアクセスすると、贈り主が指定した背景動画がフルスクリーンで心地よくループ再生され、メッセージカードが感動的に表示されます。
商品情報エリアには、プレゼントされた商品名や写真が一覧表示されますが、商品金額や決済情報、購入者の個人情報は一切表示されません

7-2. 郵便番号自動補完&日時指定

「お届け先を入力する」ボタンをタップすると、入力フォームへスムーズにスクロールします:

  • 郵便番号自動補完: 7桁の郵便番号を入力するだけで、都道府県・市区町村・町名が瞬時に自動入力され、スマホでの面倒なタイピングを最小限に抑えます。
  • お届け日時指定: ショップの配送設定に応じた希望日・希望時間帯をプルダウンから選択可能。
  • 離島配送制限: 管理画面で離島除外が設定されている場合、お届け先の選択時に鮮度維持に関する丁寧な注意書きが表示されます。

7-3. 二重入力防止と安全ロック機構

受取人が住所を登録して完了画面が表示された時点で、そのギフトURLは物理的にロック(STATUS_COMPLETED)されます。
再アクセス時は「お届け先の登録が完了しています」という案内画面のみが表示され、不正な上書きや他人による情報改ざんを確実に防ぎます。
また、登録完了と同時に贈り主へ「お相手様がお届け先を登録されました」という通知メールが自動配信されます。

8. 受注管理・出荷オペレーション

EC-CUBE管理画面の受注管理において、eギフト注文を通常注文と明確に区別し、事故のない確実な出荷業務を行える専用ツールが統合されています。

8-1. 受注一覧の専用バッジ表示と注文ステータス

EC-CUBEの「受注一覧」画面では、eギフト注文を通常注文と瞬時に識別し、誤出荷を物理的に防止するための専用ステータスバッジおよびお届け先プレビューリンクが各行に動的表示されます。

ステータス・識別情報 状態説明および安全オペレーション
【識別タグ・バッジ】 🕒 eギフト:受取待ち
【対応状況(注文状態)】 eギフト受取待ち (ID: 1001)
【出荷可否】 ✕ 出荷不可 (物理ロック)
注文・決済は完了しているが、受取人様がまだお届け先住所を入力していない状態です。
お届け先欄には「eギフト受取待ち(受取先未入力)」が表示されます。
※誤って発送済みに変更しようとすると警告アラートが表示され操作がブロックされます。
【識別タグ・バッジ】 ⚠️ eギフト:入金待ち
【対応状況(注文状態)】 対応中 (未入金安全保留)
【出荷可否】 ✕ 出荷不可 (物理ロック・CSV除外)
受取人様がお届け先住所の入力を完了しているものの、銀行振込・郵便振替などの決済入金(payment_date)がまだ確認できていない状態です。
お届け先欄には受取人様の氏名・都道府県(「eギフトお届け先 山田 太郎 東京都」など)が表示されますが、ステータスは「配送待ち」へ昇格せず「対応中」のまま自動保留されます。
出荷CSVからも自動除外され、発送済みへの変更操作も物理的にブロックされるため、未入金商品の誤出荷を確実に防止します。
入金を確認して管理画面で「入金済み」へ変更するか入金日を登録すると、自動的に下記の「eギフト配送待ち」へ昇格します.
【識別タグ・バッジ】 🚚 eギフト:配送待ち
【対応状況(注文状態)】 eギフト配送待ち (ID: 1002)
【出荷可否】 ◯ 出荷可能 (CSV出力対象)
受取人様がお届け先を入力完了し、かつ入金確認(クレジットカード即時決済または入金日登録済み)が完了している状態です。
お届け先欄には「eギフトお届け先(氏名・都道府県)」が表示されます。
出荷作業を開始してよい注文です。 [eギフト配送CSV出力] ボタンで実住所を含む送り状データを出力できます。
【識別タグ・バッジ】 ✓ eギフト:発送済み
【対応状況(注文状態)】 発送済み (ID: 5)
【出荷可否】 - 出荷完了
配送会社への引き渡しが完了し、発送完了メールが送信された状態です。
【識別タグ・バッジ】 ⛔ eギフト:期限切れ
【対応状況(注文状態)】 eギフト期限切れ (ID: 1003) / 取消し
【出荷可否】 - 満了処理済
受取有効期限内に住所が入力されなかった状態です。基本設定のポリシーに従い、購入者住所への自動復元配送または注文キャンセルへ移行します。
⚠️ 誤出荷を物理的に防止する「操作ブロック・インターロック機構」
受注一覧画面において、スタッフが誤って「eギフト:受取待ち」または「eギフト:入金待ち」の注文の出荷状況チェックボックスをクリックして発送済みに変更しようとした場合、ブラウザ上で即座に警告アラート(ポップアップ)が表示され、処理が物理的に中断されます。
「住所未入力での誤出荷」や「未入金での商品発送」といったEC現場の致命的ヒューマンエラーをシステムが二重三重に防ぎます。

8-2. 受注詳細・お届け先代理編集

管理画面の受注詳細(Order/edit.twig)を開くと、画面上部に 「eギフトお届け先・メッセージ管理」 カードが挿入されます。
贈り主名、メッセージ内容、受取URL、受取状況、そして隔離保管されている「受取人の実際の氏名・住所・電話番号」が安全に確認できます。
お客様から「番地を間違えて入力してしまった」などの連絡があった場合は、カード内の [お届け先情報を編集] ボタンから管理者が代理修正を行うことも可能です。

8-3. 専用出荷CSVの一括出力(ショップ設定連動・BOM対応)

受注一覧画面の上部に配置された [eギフト配送CSV出力] ボタンをクリックすると、出荷可能な注文(eギフト配送待ち)のデータのみを抽出した専用CSVを一括ダウンロードできます。

📄 ショップの配送CSV設定に完全自動連動
本プラグインのCSV出力は、ショップ管理者が [設定] > [店舗設定] > [CSV出力設定] > [配送CSV] で設定したカラム項目、並び順、ヘッダー表示名に動的に自動連動します。
B2クラウド(ヤマト運輸)やe飛伝(佐川急便)向けにカスタマイズした配送CSVフォーマットを変更することなく、そのままの形式で受取人の実住所が出力されます。
さらに、UTF-8 BOMを標準付与しているため、日本のWindows Excelで直接開いても文字化けが一切発生しません。

8-4. 未入金誤出荷を防止する「2重安全ガード」の仕組み

銀行振込等の後払い・前払い決済を利用した場合、受取人様が住所を入力完了しても、管理画面で入金日(payment_date)が登録されるか「入金済み」ステータスへ移行するまでは、ステータスが「eギフト配送待ち」へ昇格せず「対応中(入金待ち)」にとどまります

  • 視覚的警告: 受注一覧で注文番号の前に赤色の「⚠️ eギフト:入金待ち」バッジが目立つように点灯し、入金未確認であることが一目で分かります。
  • CSV出力からの自動除外: [eギフト配送CSV出力] を実行しても、未入金の注文データは自動的にフィルタリングされ、出力対象から物理的に除外されます。
  • 出荷操作のインターロック: 受注一覧で誤って発送済みチェックを入れようとしても、JavaScriptアラート(ポップアップ)により出荷処理が中断されます。

これにより、受取人様がお届け先を入力済みであっても、現場スタッフによる「未入金商品の誤出荷事故」がシステムによって二重三重にシャットアウトされます。

9. 有効期限の管理・自動化コマンド

ショップ管理者が毎日手動で期限をチェックする必要はありません。サーバーのCronに登録することで完全に自動稼働するSymfony Consoleコマンドを完備しています。

9-1. 期限前リマインドメール送信コマンド

設定したリマインド日数(例: 2日前)に該当する「未受取のギフト注文」を自動抽出し、購入者(贈り主)へ「お相手へのご連絡をお忘れではありませんか?」というリマインドメールを自動送信します。

# リマインドメール送信バッチの実行
$ bin/console gift:send-remind

9-2. 期限切れ自動判定・切替処理コマンド

受取期限(例: 7日間)を満了した未受取注文を自動検出し、設定されたポリシーに従って自動処理を実行します:

  • 購入者住所へ配送モードの場合: 本体の配送先(dtb_shipping)を購入者の住所情報で自動上書き復元し、ステータスを「新規受付」へ変更。購入者へ満了通知メールを送信。
  • 注文キャンセルモードの場合: 注文ステータスを標準の「注文取消し(CANCEL)」へ移行。購入者へキャンセル通知メールを送信。
# 期限切れチェック&切替バッチの実行
$ bin/console gift:check-expired

9-3. crontab設定例(日次自動実行)

サーバーの crontab に以下のように登録することで、毎日定時に完全自動でリマインド送信および期限切れ処理が実行されます。

# 毎日朝9:00にリマインドメール送信を実行
0 9 * * * /usr/bin/php /path/to/ec-cube/bin/console gift:send-remind > /dev/null 2>&1

# 毎日深夜0:15に期限切れチェックを実行
15 0 * * * /usr/bin/php /path/to/ec-cube/bin/console gift:check-expired > /dev/null 2>&1

10. よくある質問・FAQ

Q. 購入者は受取人が入力した住所を見ることはできますか?

いいえ、絶対に見ることはできません。受取人が入力した氏名・住所・電話番号はプラグイン専用テーブルに隔離保管され、EC-CUBE本体の注文履歴テーブル(dtb_shipping)にはダミー文言(「受取人様のプライバシー保護のため非表示」等)が登録されます。購入者のマイページやメール等に受取人の個人情報が漏洩することは物理的にありません。

Q. 通常注文とeギフト注文を同じカートで一緒に購入できますか?

eギフトは受取人への個別配送手続きとなるため、通常商品(自宅配送)と同時に同じ注文番号で決済することはできません。通常商品が入っているカートで「eギフトで贈る」を選択した場合は、カートがeギフト専用に切り替わります。なお、eギフト対応商品同士であれば「カートまとめ贈り」機能により複数商品・複数個をひとつのギフトとしてまとめて贈ることが可能です。

Q. 贈り主がLINEを使っていなくても利用できますか?

はい、問題なくご利用いただけます。受取URLは汎用的なWebリンクですので、メール、Instagramのダイレクトメッセージ(DM)、X(Twitter)、Facebookメッセンジャー、チャットワーク、Slackなど、テキストURLを送信できるあらゆる手段でお相手に届けることができます。

Q. 受取人が期限内に住所を入力しなかった場合、代金はどうなりますか?

管理画面の [eギフト設定] > [有効期限切れ時の処理ポリシー] で「購入者(贈り主)の住所へ自動配送」を選択している場合は、購入者自身の住所へ配送先が自動復元され、通常通り売上として成立します。「注文キャンセル」を選択している場合は注文取り消し処理が行われます。

Q. ヤマト運輸のB2クラウドや佐川急便のe飛伝で出荷できますか?

はい、完全に対応しています。管理画面の [eギフト配送CSV出力] は、ショップで設定済みの「配送CSV」フォーマットに自動連動して受取人の実住所を出力します。また、Excelでの文字化けを防ぐUTF-8 BOMを付与しているため、現場の運送会社送り状発行システムへそのまま取り込んで伝票印刷が可能です。