テンプレートをパッケージングしながら作成中です。
テンプレ用に格納場所と概要を寄せ集めてみました。
デフォルトの状態では、下記に格納されています。
[html gutter=”false” highlight=”1,2″]
root/data/Smarty/templates/default
root/user_data/default
[/html]
以下フォルダ構成
“EC-CUBE テンプレートのファイル構成” の続きを読む
クリエイターと名乗ってみた。
テンプレートをパッケージングしながら作成中です。
テンプレ用に格納場所と概要を寄せ集めてみました。
デフォルトの状態では、下記に格納されています。
[html gutter=”false” highlight=”1,2″]
root/data/Smarty/templates/default
root/user_data/default
[/html]
以下フォルダ構成
“EC-CUBE テンプレートのファイル構成” の続きを読む
先日テスト用のEC-CUBEをインストール後、管理者パスワード控えるの忘れてましたorz
多分作ったのはtarコマンドで解凍の時・・・orz
どうしてもクライアント側で解凍すると権限が全部解除されてしまってインストールに挫折、なのでサーバー上で解凍しましたw
Chromeさんのキャッシュ機能にお任せしましたが、何個も同じフォルダに入れては消してのディレクトリだったのでパスワードが良くわからずw
でもまたサーバー上で新規に解凍してインストールするのもメンドクサイ・・・ググってみても旧バージョンの直し方しか出てこねぇ・・・orz
なので強制的にリセットの方法を発見・・・
再インストール(DBは初期化せず)w
インストール時に初期のIDとPASSを設定するのでリセットできます。
ここで注意。
データベースの初期化を行わないにチェックマークを入れておくこと・・・w
また、忘れる以前にテンプレいじってたりフロントいじってたら消えるかもね。
不安なら一応SQLも主要データもバックアップが必要かも。
(今回は急ぎだったのでしませんでしたがw)
まず管理画面にログインして、デザイン管理>PC>レイアウト設定 から、ページを新規入力します。
URLは review_list.php として、以下のコードを貼り付けて保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<div id="customervoice_area"> <h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_product_voice.jpg" alt="この商品に対するお客様の声" /></h2> <!--{if count($arrReview) > 0}--> <ul> <!--{section name=cnt loop=$arrReview}--> <li> <!--{$arrReview[cnt].title|h}--> <!--{$arrReview[cnt].create_date|sfDispDBDate:false}--> 投稿者:<!--{if $arrReview[cnt].reviewer_url}--><a href="<!--{$arrReview[cnt].reviewer_url}-->" target="_blank"><!--{$arrReview[cnt].reviewer_name|h}--></a><!--{else}--><!--{$arrReview[cnt].reviewer_name|h}--><!--{/if}--> おすすめレベル:<span class="recommend_level"><!--{assign var=level value=$arrReview[cnt].recommend_level}--><!--{$arrRECOMMEND[$level]|h}--></span> <!--{$arrReview[cnt].comment|h|nl2br}--> </li> <!--{/section}--></ul> <!--{/if}--></div> |
次に、html/user_data/review_list.php を開いて、次のように修正します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
<!--?php require_once '../require.php'; require_once CLASS_EX_REALDIR . 'page_extends/LC_Page_Ex.php'; /** * ユーザーカスタマイズ用のページクラス * * 管理画面から自動生成される * * @package Page */ class LC_Page_User extends LC_Page_Ex { /** * Page を初期化する. * * @return void */ function init() { parent::init(); $masterData = new SC_DB_MasterData_Ex(); $this--->arrRECOMMEND = $masterData->getMasterData("mtb_recommend"); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { //レビュー情報の取得 $this->arrReview = $this->lfGetReviewData(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } //商品ごとのレビュー情報を取得する function lfGetReviewData() { $objQuery =& SC_Query_Ex::getSingletonInstance(); //商品ごとのレビュー情報を取得する $col = "t1.create_date, t1.reviewer_url, t1.reviewer_name, t1.recommend_level, t1.title, t1.comment, t2.product_id, t2.name, t2.main_list_image"; $from = "dtb_review as t1 left join dtb_products as t2 using (product_id)"; $where = "t1.del_flg = 0 AND t1.status = 1 ORDER BY t1.create_date DESC"; $arrReview = $objQuery->select($col, $from, $where, $arrval); return $arrReview; } } $objPage = new LC_Page_User(); register_shutdown_function(array($objPage, 'destroy')); $objPage->init(); $objPage->process(); |
data/Smarty/templates/default/user_data/review_list.tpl を以下のように変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_product_voice.jpg" alt="この商品に対するお客様の声" /></h2> <!--{if count($arrReview) > 0}--> <ul> <!--{section name=cnt loop=$arrReview}--> <li> <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrReview[cnt].product_id|u}-->"> <img src="{$smarty.const.ROOT_URLPATH}resize_image.php?image={$arrReview[cnt].main_list_image|sfNoImageMainList|h}&width=40&height=40" alt="<!--{$arrReview[cnt].name|h}-->" /></a> <a href="<!--{$smarty.const.HTTP_URL}-->products/detail.php?product_id=<!--{$arrReview[cnt].product_id|u}-->"><!--{$arrReview[cnt].name|h}--></a> <!--{$arrReview[cnt].title|h}--> <!--{$arrReview[cnt].create_date|sfDispDBDate:false}--> 投稿者:<!--{if $arrReview[cnt].reviewer_url}--><a href="<!--{$arrReview[cnt].reviewer_url}-->" target="_blank"><!--{$arrReview[cnt].reviewer_name|h}--></a><!--{else}--><!--{$arrReview[cnt].reviewer_name|h}--><!--{/if}--> おすすめレベル:<span class="recommend_level"><!--{assign var=level value=$arrReview[cnt].recommend_level}--><!--{$arrRECOMMEND[$level]|h}--></span> <!--{$arrReview[cnt].comment|h|nl2br}--> </li> <!--{/section}--></ul> <!--{/if}--> |
以上。
ブロック化は以下。
デザイン管理>PC>ブロックの設定新規ブロックで下記を作成。
ブロック名:お客様の声一覧
ファイル名:review_list_bloc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<div id="customervoice_area"> <h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_product_voice.jpg" alt="お客様の声一覧" /></h2> <!--{if count($arrReview) > 0}--> <ul> <!--{section name=cnt loop=$arrReview}--> <li> <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrReview[cnt].product_id|u}-->"> <img src="{$smarty.const.ROOT_URLPATH}resize_image.php?image={$arrReview[cnt].main_list_image|sfNoImageMainList|h}&width=40&height=40" alt="<!--{$arrReview[cnt].name|h}-->" /></a> <a href="<!--{$smarty.const.HTTP_URL}-->products/detail.php?product_id=<!--{$arrReview[cnt].product_id|u}-->"><!--{$arrReview[cnt].name|h}--></a> <!--{$arrReview[cnt].title|h}--> <!--{$arrReview[cnt].create_date|sfDispDBDate:false}--> 投稿者:<!--{if $arrReview[cnt].reviewer_url}--><a href="<!--{$arrReview[cnt].reviewer_url}-->" target="_blank"><!--{$arrReview[cnt].reviewer_name|h}--></a><!--{else}--><!--{$arrReview[cnt].reviewer_name|h}--><!--{/if}--> おすすめレベル:<span class="recommend_level"><!--{assign var=level value=$arrReview[cnt].recommend_level}--><!--{$arrRECOMMEND[$level]|h}--></span> <!--{$arrReview[cnt].comment|h|nl2br}--> </li> <!--{/section}--></ul> <!--{/if}--></div> |
トップページのブロックで表示する場合、html直下のindex.php下記のような感じで書き換え。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
require_once './require.php'; require_once CLASS_EX_REALDIR . 'page_extends/LC_Page_Index_Ex.php'; // }}} // {{{ generate page //$objPage = new LC_Page_Index_Ex(); //register_shutdown_function(array($objPage, "destroy")); //$objPage->init(); //$objPage->process(); /** * ユーザーカスタマイズ用のページクラス * * 管理画面から自動生成される * * @package Page */ class LC_Page_User extends LC_Page_Ex { /** * Page を初期化する. * * @return void */ function init() { parent::init(); $masterData = new SC_DB_MasterData_Ex(); $this->arrRECOMMEND = $masterData->getMasterData("mtb_recommend"); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { //レビュー情報の取得 $this->arrReview = $this->lfGetReviewData(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } //商品ごとのレビュー情報を取得する function lfGetReviewData() { $objQuery =& SC_Query_Ex::getSingletonInstance(); //商品ごとのレビュー情報を取得する $col = "t1.create_date, t1.reviewer_url, t1.reviewer_name, t1.recommend_level, t1.title, t1.comment, t2.product_id, t2.name, t2.main_list_image"; $from = "dtb_review as t1 left join dtb_products as t2 using (product_id)"; $where = "t1.del_flg = 0 AND t1.status = 1 ORDER BY t1.create_date DESC"; $arrReview = $objQuery->select($col, $from, $where, $arrval); return $arrReview; } } $objPage = new LC_Page_User(); register_shutdown_function(array($objPage, 'destroy')); $objPage->init(); $objPage->process(); |
基本的には同じ作業。
画像とかは適当にかえましょう。
(レビュー自体未投稿だと空欄なので適当に用意しておきましょう。)
メモ
Netowl の Firebird というサーバーに EC-CUBE をインストールした場合、デフォルトのままでは注文完了時や通知のメールが送信されなかった。
送信できるようにするには、
/data/mtb_constants_init.php と
/data/cash/mtb_constants.php
の532 行目の
define(‘MAIL_BACKEND’, “smtp”);
を
define(‘MAIL_BACKEND’, “mail”);
に変更すれば解決した。
下記のコード追加でPHPをインクルード可能。
1 2 3 |
<!--{php}--> include('/XXXXpath/index.php'); <!--{/php}--> |
またはSmartyからPHPを実行することが出来ます。
パスは開いたときのURLからの相対パスorサーバーの絶対パス。
ファイルパスは下記で調べる。
1 2 3 |
// 1つ上のディレクトリにある index.php のサーバー上の絶対パスを取得し表示します。 $path = realpath("../index.php"); echo $path; |
コレで別のPHPアプリも起動可能。掲示板/Blogなど。
今日、特商法の部分を記入していたら文字数制限に到達w
なのでいじりましたw
/data/mtb_constants_init.php
/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tradelaw.php
/data/Smarty/template/admin/basis/tradelaw.tpl
この3つを主にいじります。
手順は二段階。
1.もともとの入力制限数を解除
2.文字数チェック自体要らないので削除
3.入力時に文字をカウントしてるので解除
1./data/mtb_constants_init.phpの変更点
1 2 3 4 |
/** 長い項目の文字数 (住所など) */ define('MTEXT_LEN', 200); /** 長中文の文字数 (問い合わせなど) */ define('MLTEXT_LEN', 1000); |
下記に変更。多分250行から260行付近です。
1 2 3 4 |
/** 長い項目の文字数 (住所など) */ define('MTEXT_LEN', 6000); /** 長中文の文字数 (問い合わせなど) */ define('MLTEXT_LEN', 2000); |
MTEXT_LEN が特商法の入力で一番文字数の必要なところ。
配送や返品に関してだと思います。
なのでありったけの文字数突っ込みましたw
2./data/class/pages/admin/basis/LC_Page_Admin_Basis_Tradelaw.php
入力して多かったらまた入力してくれ!みたいなことを行っている部分を削除します。
125から145行目あたりで解除したい項目の下記のコードを削除
「,」も削除してください。じゃないとエラーになるはず。
,”MAX_LENGTH_CHECK”
となりの「”EXIST_CHECK”」は未入力チェックっぽいのでいじらずw
3./data/Smarty/template/admin/basis/tradelaw.tpl
入力時のフォームで文字数をカウントしてるのでいっそのこと解除。
Smartyの都合か1.で変更してもなぜかすぐに反映されなくて、じれったかったので文字カウントごと消してやりました。
maxlength=””
この文が書いてあるような箇所で文字数増やしたいところを片っ端から削除。
これ消せばOKですが、あとはお好みで下記の文章も消しましょう。
(上限文字)
今日、もらった文章をそのままコピペで行こうかと思って突っ込んだら文字数制限で、ちょっとイラっとしながらも、どうせDBで制御してんだろ!とか思いながらDBのぞいてましたが見当たらず。
なので、ググりながらいじりながらようやく正解が出ましたよw
代引きとか配達方法の文言入れるの考えたらどうやったって200文字以上いくw
あとできれば古物商とか許可番号とかいろいろ増やせれば楽なのにねw
一応、特定商取引法の項目の追加も一度やっているのであとで書きます・・・・記憶のあるうちにw
ECCUBEのお問い合わせフォームの増やし方eccube2.11版
3時間くらい悩んだ末に解決w
まず、contactを総べてコピペでcontact2に変更後、最後に苦戦したのが、pagelayoutのDBを追加すること。
これやんないと表示されませんでした。
●data/class/page/contact→contact2を作成。
ファイル中の2つのphpのなかでcontactもcontact2に変更。
LC_Page_Contact_Complete 44行目付近。多分これ。
1 2 3 4 5 |
function init() { parent::init(); $this->tpl_title = 'お問い合わせ(完了ページ)'; $this->tpl_mainno = 'contact2'; } |
LC_Page_Contact.php 44行目付近もかな??
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function init() { parent::init(); if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) { $this->tpl_title = 'お問い合わせ'; } else { $this->tpl_title = 'お問い合わせ(入力ページ)'; } $this->tpl_page_category = 'contact2'; $this->httpCacheControl('nocache'); $masterData = new SC_DB_MasterData_Ex(); $this->arrPref = $masterData->getMasterData('mtb_pref'); } |
●data/class_extends/page_extends/contact→同様にcontact2を作成。phpの作業は同上。
LC_Page_Contact_Complete 28行目付近。多分これ。
1 |
require_once CLASS_REALDIR . 'pages/contact2/LC_Page_Contact_Complete.php'; |
LC_Page_Contact.php 28行目付近もかな??
1 |
require_once CLASS_REALDIR . 'pages/contact2/LC_Page_Contact.php'; |
●data/Smarty/templates/default/contact→contact2を作成。
フォルダ中の3つのtplで指定されているcontactをcontact2に変更。
contactの文字が見当たらなかった気がするのでパスw
●html/contact→contact2を作成。フォルダ中の2つのファイルのcontactをcontact2に変更。
complete.php 26行目付近
1 |
require_once CLASS_EX_REALDIR . 'page_extends/contact2/LC_Page_Contact_Complete_Ex.php'; |
index.php 25行目付近
1 |
require_once CLASS_EX_REALDIR . 'page_extends/contact2/LC_Page_Contact_Ex.php'; |
tpl作成まではこれで完了。
とここまでなら簡単にできましたが。
dbの追加が問題w
どこなのかわからなくて苦労しましたがw
phpMyAdminでみると、dtb_pagelayoutで挿入しました。
device_type_id =10(PC用)
page_id =29(デフォルトで行くとこのページレイアウトナンバー)
url =contact2/index.php(コピペした場所)
filename =contact2/index(拡張子なし)
あとはそのままでOKで実行ボタン押しました。
これをcompleteページ分も追加で表示されるようになりました。
URLはhttp://ドメイン/contact2/index.php
DBいじるので自己責任で加工願います、とくにやる前はDBのバックアップを。
挿入するところ間違えて削除ボタン押してDB復旧させましたよ・・・・w
で、つぎは加工しないとただのコピーで終わってしまうので、それはまたあしたやろーっとw
(一応アンケートフォームにしようかと思ってますw)
出来れば添付ファイルもつけれるといいなぁw
ヘッダーにカテゴリを表示します。
CSSハックでドロップダウンメニューにも対応。
一応管理画面からだけで設定可能なシンプル版です。 “ヘッダーにカテゴリを表示:ドロップダウンメニュー(CSS)” の続きを読む
編集データ
date/Smatry/template/default/products/detail.tpl
下記記述を変更
1 2 3 4 5 6 7 |
<!--▼メーカーURL--> <!--{if $arrProduct.comment1|strlen >= 1}--> <div><span class="comment1">メーカーURL: <a href="<!--{$arrProduct.comment1|h}-->"><!--{$arrProduct.comment1|h}--></a> </div> <!--{/if}--> <!--▼メーカーURL--> |
155行目付近を下記に変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<br style="clear:both" /> <!--▼メーカー名--> <!--{if $arrProduct.maker_name|strlen >= 1}--> <div><span class="comment1">メーカー : <a href="<!--{$arrProduct.comment1|h}-->"><!--{$arrProduct.maker_name|h}--></a></span> </div> <!--{/if}--> <!--▲メーカー名--> <!--▼メーカーURL--> <!--{if $arrProduct.comment1|strlen >= 1}--> <div><span class="comment1">メーカーURL: <a href="<!--{$arrProduct.comment1|h}-->"><!--{$arrProduct.comment1|h}--></a></span> </div> <!--{/if}--> <!--▲メーカーURL--> |
ヤマト家財便の発送料金をコードに追加することで商品登録時に家財便専用の送料を追加できます。
というか家財便のモノしか送れなくなります。
※ちなみに下記の設定は関東地区からの発送の場合になります。
管理画面-システム設定-パラメタ設定を下記に変更
DELIV_ADDR_MAX ・・・0
OPTION_DELIV_FEE ・・・1
OPTION_PRODUCT_DELIV_FEE ・・・1
まずさきにヤマト家財便のお届け地方が50コード(北海道4分割)存在するので変更。
[ec-cube既存の都道府県コード]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
1 = 北海道 2 = 青森県 3 = 岩手県 4 = 宮城県 5 = 秋田県 6 = 山形県 7 = 福島県 8 = 茨城県 9 = 栃木県 10 = 群馬県 11 = 埼玉県 12 = 千葉県 13 = 東京都 14 = 神奈川県 15 = 新潟県 16 = 富山県 17 = 石川県 18 = 福井県 19 = 山梨県 20 = 長野県 21 = 岐阜県 22 = 静岡県 23 = 愛知県 24 = 三重県 25 = 滋賀県 26 = 京都府 27 = 大阪府 28 = 兵庫県 29 = 奈良県 30 = 和歌山県 31 = 鳥取県 32 = 島根県 33 = 岡山県 34 = 広島県 35 = 山口県 36 = 徳島県 37 = 香川県 38 = 愛媛県 39 = 高知県 40 = 福岡県 41 = 佐賀県 42 = 長崎県 43 = 熊本県 44 = 大分県 45 = 宮崎県 46 = 鹿児島県 47 = 沖縄県 |
MySQLのDBを下記に変更
今回はmtb_prefテーブルを削除後に再度DB(下記)をid:1から50として変更追加
※先に顧客登録があると都道府県がズレます。なので初期インストール時に実行する為のもの。
(アップデート仕様のものは制作中)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
-- -- テーブルの構造 `mtb_pref` -- CREATE TABLE `mtb_pref` ( `id` smallint(6) NOT NULL DEFAULT '0', `name` text, `rank` smallint(6) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=ujis; -- -- テーブルのデータをダンプしています `mtb_pref` -- INSERT INTO `mtb_pref` (`id`, `name`, `rank`) VALUES (1, '札幌', 1) (2, '函館', 2) (3, '道北', 3) (4, '道東', 4) (5, '青森県', 5) (6, '岩手県', 6) (7, '宮城県', 7) (8, '秋田県', 8) (9, '山形県', 9) (10, '福島県', 10) (11, '茨城県', 11) (12, '栃木県', 12) (13, '群馬県', 13) (14, '埼玉県', 14) (15, '千葉県', 15) (16, '東京都', 16) (17, '神奈川県', 17) (18, '新潟県', 18) (19, '富山県', 19) (20, '石川県', 20) (21, '福井県', 21) (22, '山梨県', 22) (23, '長野県', 23) (24, '岐阜県', 24) (25, '静岡県', 25) (26, '愛知県', 26) (27, '三重県', 27) (28, '滋賀県', 28) (29, '京都府', 29) (30, '大阪府', 30) (31, '兵庫県', 31) (32, '奈良県', 32) (33, '和歌山県', 33) (34, '鳥取県', 34) (35, '島根県', 35) (36, '岡山県', 36) (37, '広島県', 37) (38, '山口県', 38) (39, '徳島県', 39) (40, '香川県', 40) (41, '愛媛県', 41) (42, '高知県', 42) (43, '福岡県', 43) (44, '佐賀県', 44) (45, '長崎県', 45) (46, '熊本県', 46) (47, '大分県', 47) (48, '宮崎県', 48) (49, '鹿児島県', 49) (50, '沖縄県', 50); |
mtb_constantsテーブルのid=DELIVFEE_MAXのレコードを47 -> 50に変更
/data/mtb_constants_init.phpのDELIVFEE_MAXのレコードを47 -> 50に変更
/data/cache/mtb_constants.php を削除
/data/cache/mtb_pref.php を削除
上記を削除してから「お客様情報入力」ページを開くと反映されていますとりあえずは都道府県の再登録完了。
管理画面>基本情報設定>配送設定 の中で48以降の県が増えているので一応料金を設定。(ここで設定した料金は支払い情報には反映されませんが。)
※離島・海外等の処理はまた後日
——————-
管理画面-システム設定-パラメタ設定で別のお届け先最大登録数
DELIV_ADDR_MAX に0を設定する。
商品送料を商品重量に変更する
data/Smarty/templates/admin/products/confirm.tpl
132行目 商品送料→送料ランク
135行目 円→/3辺合計
data/class/pages/admin/products/LC_Page_Admin_Products_Product.php
320行目
1 |
$objFormParam->addParam(“商品送料”, “deliv_fee”, PRICE_LEN, ‘n’, array(“NUM_CHECK”, “SPTAB_CHECK”, “MAX_LENGTH_CHECK”)); |
↓
1 |
$objFormParam->addParam(“送料ランク”, “deliv_fee”, PRICE_LEN, ‘n’, array(“EXIST_CHECK”, “NUM_CHECK”, “SPTAB_CHECK”, “MAX_LENGTH_CHECK”)); |
data\Smarty\templates\admin\products\product.tpl
198行目付近
商品送料をランクに変更↓
送料ランク *213行目
円→/3辺合計
data/class/SC_CartSession.php
609行目付近 「配送業者の送料を加算」の次に「配送ランクを加算」を追加
ここではサイズをcmではなくmmで設定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// 配送業者の送料を加算 if (OPTION_DELIV_FEE == 1 && !SC_Utils_Ex::isBlank($deliv_pref) && !SC_Utils_Ex::isBlank($deliv_id)) { $results['deliv_fee'] += $objDb->sfGetDelivFee($deliv_pref, $deliv_id); } // 配送ランクを加算 $deliv_rank = $results['deliv_fee']; switch ($deliv_pref[0]) { case 1: //札幌 if ($deliv_rank <= 600){ $results['deliv_fee'] = 1160;} elseif ($deliv_rank <= 800){ $results['deliv_fee'] = 1370;} elseif ($deliv_rank <= 1000){ $results['deliv_fee'] = 1580;} elseif ($deliv_rank <= 1200){ $results['deliv_fee'] = 1790;} elseif ($deliv_rank <= 1400){ $results['deliv_fee'] = 2000;} elseif ($deliv_rank <= 1600){ $results['deliv_fee'] = 2210;} elseif ($deliv_rank <= 2000){ $results['deliv_fee'] = 5600;} elseif ($deliv_rank <= 2500){ $results['deliv_fee'] = 10000;} elseif ($deliv_rank <= 3000){ $results['deliv_fee'] = 14500;} elseif ($deliv_rank <= 3500){ $results['deliv_fee'] = 23000;} elseif ($deliv_rank <= 4000){ $results['deliv_fee'] = 29900;} elseif ($deliv_rank <= 4500){ $results['deliv_fee'] = 39500;} else { $results['deliv_fee'] = 0;}; break; //以下割愛 }; |
とりあえず都道府県のコード1まで記述。
残りのコードはこちらのリンクから”ヤマト家財便 発送料金”
※関東地区からの発送の場合になります。
後は商品登録時に商品送料ランクの部分に三辺合計を指示するのみです。
「ヤマト家財便の発送料金をコードに追加することで商品登録時に家財便専用の送料を追加できます。」とか書いておきながら。
この設定では家財便のモノしか送れなくなります。なので別途で送料指定が可能なものを模索中・・・
商品種別を増やしてやればうまいこと行くかもしれないけれど・・・しかも家財便の場合代引きができないことも多いしな・・・
支払方法を増やすか支払方法でク分けるかor商品送料自体を2つにして2重チェック(?)したらいいんだろうか。
というか、書いてある「// 配送業者の送料を加算」コードの最終行(break;の次の行)に、下記追記で対応できますねw
1 2 3 4 5 |
default: if ($deliv_rank <=10000){ $results['deliv_fee'] = 1000;}//10000mmの場合1000円(基本4500mm以上の数字で設定。) elseif ($deliv_rank <= 15000){ $results['deliv_fee'] = 50;}//以下適当にelseifを必要な分だけ増やす。 else { $results['deliv_fee'] = 0;}; break; |
このdefault:文は試していないのでうまくいくかどうかは検証してみます。。。