バージョン選択
フォーラム
メニュー
オンライン状況
|
|
44 人のユーザが現在オンラインです。 (33 人のユーザが フォーラム を参照しています。) |
|
|
フロント機能
投稿者 |
スレッド |
paperyu |
投稿日時: 2016/4/6 19:30
対応状況: −−−
|
半人前 登録日: 2016/4/6 居住地: 投稿: 21 |
商品合計金額別、地域別で送料を変更したいのですが こんにちは。 初心者で非常に困っております。 Ver2.13.5です。 商品合計金額別、地域別で送料を変更したいのですが、送料が0円のまま反映されず、悪戦苦闘しております。 設定内容は下記のとおりです。 ■送料の設定 ◎北海道・沖縄は5,400円未満は1,080円/5,400円以上は送料無料 ◎北海道・沖縄以外4,320円未満は864円/4,320円以上は送料無料 参考に下記のページを参考にphpを修正していたのですが反映されません。 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=10073&forum=10&post_id=48332#forumpost48332何が違うのかどこがおかしいのか、お分かりの方がおられましたら、お教えいただけませんでしょうか? どうぞ宜しくお願い致します。 ■LC_Page_Shopping_Confirm.php
// 合計金額
//$this->tpl_total_inctax[$this->cartKey] = $objCartSess->
getAllProductsTotal($this->cartKey);
// 合計金額
$CartProductsTotalPrice = $objCartSess->
getAllProductsTotal($this->cartKey);
// 一時受注テーブルの読込
$arrOrderTemp = $objPurchase->getOrderTemp($this->tpl_uniqid);
switch ($arrData['deliv_pref']) {
case 1: // 北海道
if ($CartProductsTotalPrice <= 5399)
{ $hoge = 1080; break; }
case 2: // 青森県
case 3: // 岩手県
case 4: // 宮城県
case 5: // 秋田県
case 6: // 山形県
case 7: // 福島県
case 8: // 茨城県
case 9: // 栃木県
case 10: // 群馬県
case 11: // 埼玉県
case 12: // 千葉県
case 13: // 東京都
case 14: // 神奈川県
case 15: // 新潟県
case 19: // 山梨県
case 20: // 長野県
case 16: // 富山県
case 17: // 石川県
case 18: // 福井県
case 23: // 愛知県
case 22: // 静岡県
case 21: // 岐阜県
case 24: // 三重県
case 27: // 大阪府
case 26: // 京都府
case 28: // 兵庫県
case 25: // 滋賀県
case 29: // 奈良県
case 30: // 和歌山県
case 31: // 鳥取県
case 32: // 島根県
case 33: // 岡山県
case 34: // 広島県
case 35: // 山口県
case 36: // 徳島県
case 37: // 香川県
case 38: // 愛媛県
case 39: // 高知県
case 40: // 福岡県
case 41: // 佐賀県
case 42: // 長崎県
case 43: // 熊本県
case 44: // 大分県
case 45: // 宮崎県
case 46: // 鹿児島県
if ($CartProductsTotalPrice <= 4319) {$hoge = 864;
break; }
default: // 沖縄県
if ($CartProductsTotalPrice <= 5399) {
$hoge = 1080; break; } } $this->tpl_total_inctax[$this->cartKey] = $CartProductsTotalPrice;
■SC_CartSession.php
/*function calculate($productTypeId, &$objCustomer, $use_point = 0,
$deliv_pref = "", $charge = 0, $discount = 0, $deliv_id = 0)
{*/ function calculate($productTypeId, &$objCustomer, $use_point = 0,
$deliv_pref = "", $charge = 0, $discount = 0, $a) {
$objDb = new SC_Helper_DB_Ex();
$total_point = $this->getAllProductsPoint($productTypeId);
$results['tax'] = $this->getAllProductsTax($productTypeId);
$results['subtotal'] = $this->getAllProductsTotal($productTypeId);
$results['deliv_fee'] = 0; }
var_dump($hoge);
// 商品ごとの送料を加算
if (OPTION_PRODUCT_DELIV_FEE == 1) {
$cartItems = $this->getCartList($productTypeId);
foreach ($cartItems as $item) {
$results['deliv_fee'] += $item['productsClass']['deliv_fee'] * $item['quantity'];
}
}
// 配送業者の送料を加算
/*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); }*/
|
|
|
yuh |
投稿日時: 2016/4/7 17:59
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 商品合計金額別、地域別で送料を変更したいのですが SC_Helper_Delivery_Exに
public static function getDelivFee($pref_id, $deliv_id = 0,$total = 0)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
if (!is_array($pref_id)) {
$pref_id = array($pref_id);
}
$sql = <<< __EOS__
SELECT T1.fee AS fee
FROM dtb_delivfee T1
JOIN dtb_deliv T2
ON T1.deliv_id = T2.deliv_id
WHERE T1.pref = ?
AND T1.deliv_id = ?
AND T2.del_flg = 0
__EOS__;
$result = 0;
//------------------------------------------------------------------------
foreach ($pref_id as $pref) {
if(in_array($pref,array(1,47)) AND $total >= 5400 ){
$flag = false;
}elseif(!in_array($pref,array(1,47)) AND $total >= 4320 ){
$flag = false;
}else{
$flag = true;
}
if($flag === true){
$result += $objQuery->getOne($sql, array($pref, $deliv_id));
}
}
//------------------------------------------------------------------------
return $result;
}
を追加 SC_CartSessionのcalculate
// 配送業者の送料を加算
if (OPTION_DELIV_FEE == 1
&& !SC_Utils_Ex::isBlank($deliv_pref)
&& !SC_Utils_Ex::isBlank($deliv_id)) {
$results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id);
}
を
// 配送業者の送料を加算
if (OPTION_DELIV_FEE == 1
&& !SC_Utils_Ex::isBlank($deliv_pref)
&& !SC_Utils_Ex::isBlank($deliv_id)) {
//getDelivFeeに$results['subtotal']を渡す
$results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id,$results['subtotal']);
}
でできると思います。
|
|
|
paperyu |
投稿日時: 2016/4/8 9:32
対応状況: −−−
|
半人前 登録日: 2016/4/6 居住地: 投稿: 21 |
Re: 商品合計金額別、地域別で送料を変更したいのですが yuh様 お世話になります。 お教えいただきありがとうございます。 今、コードを入れ直してみたのですが、送料が反映されないようです。 SC_Helper_Delivery_Ex.phpにお教えいただいたコードを入れたところ、 追加した最初の行 public static function getDelivFee($pref_id, $deliv_id = 0,$total = 0) で[シンタックスエラー]が発生したと表示されました。 これが何か影響があるのでしょうか? 重ね重ねで本当に申し訳ありません。 どうかお教えいただけますと助かります。 ◆SC_Helper_Delivery_Ex.php
<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) 2000-2014 LOCKON CO.,LTD. All Rights Reserved.
*
* http://www.lockon.co.jp/
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
require_once CLASS_REALDIR . 'helper/SC_Helper_Delivery.php';
/**
* 配送方法を管理するヘルパークラス(拡張).
*
* LC_Helper_Delivery をカスタマイズする場合はこのクラスを編集する.
*
* @package Helper
* @author pineray
* @version $Id:$
*/ class SC_Helper_Delivery_Ex extends SC_Helper_Delivery
{
//put your code here
}
public static function getDelivFee($pref_id, $deliv_id = 0,$total = 0)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
if (!is_array($pref_id))
{ $pref_id = array($pref_id);
}
$sql = <<< __EOS__
SELECT T1.fee AS fee FROM dtb_delivfee T1
JOIN dtb_deliv T2
ON T1.deliv_id = T2.deliv_id
WHERE T1.pref = ?
AND T1.deliv_id = ?
AND T2.del_flg = 0
__EOS__;
$result = 0;
//------------------------------------------------------------------------
foreach ($pref_id as $pref) {
if(in_array($pref,array(1,47)) AND $total >= 5400 ){
$flag = false;
}elseif(!in_array($pref,array(1,47)) AND $total >= 4320 ){
$flag = false;
}else{
$flag = true; }
if($flag === true){
$result += $objQuery->getOne($sql, array($pref, $deliv_id));
}
}
//------------------------------------------------------------------------
return $result;
}
|
|
|
yuh |
投稿日時: 2016/4/8 14:10
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 商品合計金額別、地域別で送料を変更したいのですが class SC_Helper_Delivery_Ex extends SC_Helper_Delivery { //put your code here
ここに追加ですね。
}
|
|
|
paperyu |
投稿日時: 2016/4/8 14:58
対応状況: −−−
|
半人前 登録日: 2016/4/6 居住地: 投稿: 21 |
Re: 商品合計金額別、地域別で送料を変更したいのですが yuh様
重ねてご連絡いただきありがとうございます。 コードをお教えいただいた場所に入れましたところ、エラーが消えました。 ですが、送料自体が反映されずゼロ円のまま表示されてしまいます。
他配信設定やシステム設定がおかしいのでしょうか? 度々の質問で大変恐縮でございますが、何卒よろしくお願い申し上げます。
|
|
|
paperyu |
投稿日時: 2016/4/28 11:40
対応状況: −−−
|
半人前 登録日: 2016/4/6 居住地: 投稿: 21 |
Re: 商品合計金額別、地域別で送料を変更したいのですが yuh様
お世話になりました! 無事設定が反映され、地域別・商品合計金額別に送料を設定することが出来ました。 何度も何度も素人の私に真摯にお付き合いいただきありがとうございました。
|
|
|
|
統計情報
総メンバー数は88,956名です
総投稿数は110,019件です
|