EC-CUBEで最初にやっておきたい10のカスタマイズ・6「定休日を考慮した、お届け日指定のカスタマイズ」

読了時間:約 8分25秒

EC-CUBEで最初にやっておきたい10のカスタマイズ・6「定休日を考慮した、お届け日指定のカスタマイズ」

引き続き、EC-CUBEを使ってECサイトを構築するときに、ぜひともやっておきたいカスタマイズをご紹介します。

今日は、「6.定休日を考慮した、お届け日指定のカスタマイズ」です。

 

EC-CUBEでは、注文画面の中でお客様がお届け日の指定をできるようになっています。

お客様からお届け日を伺うからには、必ずその日に届けなければなりません。

 

ネットショップの定休日は、発送業務もお休みすると思いますので、それを考慮して、実際にお届け可能な日のみを表示するようにしておきましょう。

もくじ

 

表示されるお届け日のしくみ

EC-CUBEでは、商品登録のときに設定した「発送日目安」の日数と、注文画面の「お届け日時の指定」に表示されるお届け日が連動しています。

 

【商品登録画面】

01

 

【注文画面】

02

 

たとえば、発送日目安を「即日」にした場合、お届け日の指定は翌日以降となり、発送日目安を「1〜2日後」にした場合、お届け日の指定は明々後日以降となります。

 

通常、定休日は発送業務もお休みすると思いますので、発送日目安を「即日」や「1〜2日後」などにしていると、お客様が指定したお届け日に間に合わなくなってしまう場合があります。

 

そこで、定休日前日と定休日に注文を受けた場合は、発送日の起点を翌営業日にずらすよう、カスタマイズしておきます。

 

ソースコード

EC-CUBEのバージョンは、2.12.5で動作確認済みです。

(参考サイト:【EC-CUBE】お届け日指定のカスタマイズ (Takeblo)

 

data/class/helper/SC_Helper_Purchase.php

の644行目あたり

[php]
/**
* お届け可能日のスタート値から, お届け日の配列を取得する.
*/
function getDateArray($start_day, $end_day) {
$masterData = new SC_DB_MasterData_Ex();
$arrWDAY = $masterData->getMasterData(‘mtb_wday’);
//お届け可能日のスタート値がセットされていれば
if ($start_day >= 1) {
$now_time = time();
[/php]

のあとに、

[php]
// カレンダーブロック表示用オブジェクトを生成し、定休日設定を取得
require_once(CLASS_REALDIR . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php");
$BlocCalendar = new LC_Page_FrontParts_Bloc_Calendar();
$BlocCalendar->arrRegularHoliday = $BlocCalendar->lfGetRegularHoliday();
$BlocCalendar->arrHoliday = $BlocCalendar->lfGetHoliday();
// 配達可能日の起点を指定「営業日」以降に変更
for ($i = 1, $j = 1; $j < $start_day; $i++ )
{
// 定休日管理で設定された休日と、日曜・土曜を休日とする
$tmp_time = $now_time + ($i * 24 * 3600);
list($y, $m, $d, $w) = explode(" ", date("Y m d w", $tmp_time));
$m = intval( $m );
$d = intval( $d );
$w = intval( $w );
if ( $BlocCalendar->lfCheckHoliday( $y, $m, $d ) )
{
continue;
}
// 日数加算
$j++;
}
// スタート値を調整
$start_day += $i – $j;
[/php]

を追記します。

 

これで、定休日前日と定休日に注文を受けた場合は、発送日の起点が翌営業日にずれるため、「お届け日の指定」には配達可能な日以降が表示されるようになります。

 

ちなみに、定休日は管理画面の「基本情報管理>SHOPマスター」で曜日を登録し、さらに「基本情報管理>定休日管理」で個別に日付で登録できます。

 

「お届け日時の指定」に注意書きの追加

ついでに、注文画面のお届け日指定の注意書きに
「『指定なし』が最短で届きます」と書いておくと親切ですね。

 

data/Smaty/templates/default/shopping/payment.tpl

の203行目あたり、

[html highlight=”2″]
<h3>お届け時間の指定</h3>
<p class="select-msg">ご希望の方は、お届け時間を選択してください。</p>
[/html]

のところを、

[html highlight=”2″]
<h3>お届け時間の指定</h3>
<p class="select-msg">ご希望の方は、お届け時間を選択してください。(「指定なし」が最短で届きます)</p>
[/html]

としてあげればOKです。

 

この記事が、EC-CUBEカスタマイズのお役に立てれば幸いです。

 

次回は「7.パンくずリストを設置する」を解説します!

RSSフィードを購読する

ITポケットでは、ビジネスや生活が向上するTipsを発信しています。
よろしければRSSフィードをご購読ください。

シェアする

このエントリーをはてなブックマークに追加

関連記事

コメント

お仕事のご依頼について

コーポレートサイト、ECサイト、CMS、ブログなど、あらゆるWebサイトの制作をお手伝いいたします。

企画からデザイン、その後の運営や保守まで対応することが可能です。

自らECサイト運営を行っていることもあり、顧客目線でのサイトづくりが得意です。

得意なこと

HTML5 / CSS3 / JavaScript

WordPress

ECサイト(EC-CUBE / Zen Cart / カラーミーショップ)

各ブログのカスタマイズ

 

クライアントのご要望にお答えし、予算やケースにあった選択で、臨機応変に対応いたします。

ご相談・ご質問や、お見積もりのご依頼など、お気軽にお問い合わせください。

プロフィール

菊地翼

菊地翼(きくちつばさ)
WEBクリエイター。株式会社ウイングフォレスト代表取締役。マカー歴18年。IT・ガジェット・ライフハックと甘いものが大好き!

詳しくはこちら 

サイト内検索