バージョン選択
フォーラム
メニュー
オンライン状況
|
|
44 人のユーザが現在オンラインです。 (34 人のユーザが フォーラム を参照しています。) |
|
|
フロント機能
投稿者 |
スレッド |
harusame |
投稿日時: 2014/8/9 10:39
対応状況: −−−
|
半人前 登録日: 2014/7/30 居住地: 奈良 投稿: 27 |
Re: 2.13系メール便の対応について 投稿が遅くなり申し訳ございません。 修正後、エラーは無くなりました。 ありがとうございます。 ですが、 ・メール便のみ ・メール便&宅急便 ・宅急便のみ カート内が上記の状態で検証致しましたが、 配送方法に変化が見られませんでした。 (メール便を全ての時に選択可能でした。) もう少し頑張ってみます…。 ●EC-CUBE メール便では着日指定できないようにしておく http://tech.bandersnatch.jp/387上記のJS部分につきましてですが、 現在下記となっておりましたが、 <script type="text/javascript">//<![CDATA[
$(function() {
if ($('input[name=deliv_id]:checked').val()
|| $('#deliv_id').val()) {
showForm(true);
changeForm(deliv_id);
} else {
showForm(false);
}
$('input[id^=deliv_]').click(function() {
showForm(true);
var data = {};
data.mode = 'select_deliv';
data.deliv_id = $(this).val();
data['<!--{$smarty.const.TRANSACTION_ID_NAME}-->'] = '<!--{$transactionid}-->';
$.ajax({
type : 'POST',
url : location.pathname,
data: data,
cache : false,
dataType : 'json',
error : remoteException,
success : function(data, dataType) {
if (data.error) {
remoteException();
} else {
// 支払い方法の行を生成
var payment_tbody = $('#payment tbody');
payment_tbody.empty();
for (var i in data.arrPayment) {
// ラジオボタン
<!--{* IE7未満対応のため name と id をベタ書きする *}-->
var radio = $('<input type="radio" name="payment_id" id="pay_' + i + '" />')
.val(data.arrPayment[i].payment_id);
// ラベル
var label = $('<label />')
.attr('for', 'pay_' + i)
.text(data.arrPayment[i].payment_method);
// 行
var tr = $('<tr />')
.append($('<td />')
.addClass('alignC')
.append(radio))
.append($('<td />').append(label));
// 支払方法の画像が登録されている場合は表示
if (data.img_show) {
var payment_image = data.arrPayment[i].payment_image;
$('th#payment_method').attr('colspan', 3);
if (payment_image) {
var img = $('<img />').attr('src', '<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->' + payment_image);
tr.append($('<td />').append(img));
} else {
tr.append($('<td />'));
}
} else {
$('th#payment_method').attr('colspan', 2);
}
tr.appendTo(payment_tbody);
}
// お届け時間を生成
var deliv_time_id_select = $('select[id^=deliv_time_id]');
deliv_time_id_select.empty();
deliv_time_id_select.append($('<option />').text('指定なし').val(''));
for (var i in data.arrDelivTime) {
var option = $('<option />')
.val(i)
.text(data.arrDelivTime[i])
.appendTo(deliv_time_id_select);
}
}
changeForm(deliv_id);
}
});
});
/**
* 通信エラー表示.
*/
function remoteException(XMLHttpRequest, textStatus, errorThrown) {
alert('通信中にエラーが発生しました。カート画面に移動します。');
location.href = '<!--{$smarty.const.CART_URL}-->';
}
/**
* 配送方法の選択状態により表示を切り替える
*/
function showForm(show) {
if (show) {
$('#payment, div.delivdate, .select-msg').show();
$('.non-select-msg').hide();
} else {
$('#payment, div.delivdate, .select-msg').hide();
$('.non-select-msg').show();
}
}
function changeForm(deliv_id) {
var deliv_time_id_select = $('select[id^=deliv_time_id]');
var deliv_date_select = $('select[id^=deliv_date]');
if (deliv_id=='20') {
if(deliv_time_id_select){
deliv_time_id_select.attr("disabled", "disabled");
}
if(deliv_date_select){
deliv_date_select.attr("disabled", "disabled");
}
$('div.pay_area02_display_mail').show();
$('div.pay_area02_display').hide();
} else {
$('div.pay_area02_display').show();
$('div.pay_area02_display_mail').hide();
if(deliv_time_id_select){
deliv_time_id_select.removeAttr("disabled");
}
if(deliv_date_select){
deliv_date_select.removeAttr("disabled");
}
}
}
});
//]]></script>
上記から下記へ修正を行いました。 <script type="text/javascript">//<![CDATA[
$(function() {
if ($('input[name=deliv_id]:checked').val()
|| $('#deliv_id').val()) {
var deliv_id=null;
if($('input[name=deliv_id]:checked').val()){
deliv_id=$('input[name=deliv_id]:checked').val();
}
if($('#deliv_id').val()){
deliv_id=$('#deliv_id').val();
}
showForm(true);
changeForm(deliv_id);
} else {
showForm(false);
}
$('input[id^=deliv_]').click(function() {
showForm(true);
var deliv_id=null;
if($('input[name=deliv_id]:checked').val()){
deliv_id=$('input[name=deliv_id]:checked').val();
}
if($('#deliv_id').val()){
deliv_id=$('#deliv_id').val();
}
var data = {};
data.mode = 'select_deliv';
data.deliv_id = $(this).val();
data['<!--{$smarty.const.TRANSACTION_ID_NAME}-->'] = '<!--{$transactionid}-->';
$.ajax({
type : 'POST',
url : location.pathname,
data: data,
cache : false,
dataType : 'json',
error : remoteException,
success : function(data, dataType) {
if (data.error) {
remoteException();
} else {
// 支払い方法の行を生成
var payment_tbody = $('#payment tbody');
payment_tbody.empty();
for (var i in data.arrPayment) {
// ラジオボタン
<!--{* IE7未満対応のため name と id をベタ書きする *}-->
var radio = $('<input type="radio" name="payment_id" id="pay_' + i + '" />')
.val(data.arrPayment[i].payment_id);
// ラベル
var label = $('<label />')
.attr('for', 'pay_' + i)
.text(data.arrPayment[i].payment_method);
// 行
var tr = $('<tr />')
.append($('<td />')
.addClass('alignC')
.append(radio))
.append($('<td />').append(label));
// 支払方法の画像が登録されている場合は表示
if (data.img_show) {
var payment_image = data.arrPayment[i].payment_image;
$('th#payment_method').attr('colspan', 3);
if (payment_image) {
var img = $('<img />').attr('src', '<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->' + payment_image);
tr.append($('<td />').append(img));
} else {
tr.append($('<td />'));
}
} else {
$('th#payment_method').attr('colspan', 2);
}
tr.appendTo(payment_tbody);
}
// お届け時間を生成
var deliv_time_id_select = $('select[id^=deliv_time_id]');
deliv_time_id_select.empty();
var no_select_label='';
var arr_deliv_time_length=0;
for (var i in data.arrDelivTime) {
arr_deliv_time_length++;
}
if(arr_deliv_time_length>0){
no_select_label='指定なし';
}else{
no_select_label='指定できません';
}
deliv_time_id_select.append($('<option />').text(no_select_label).val(''));
if(arr_deliv_time_length>0){
for (var i in data.arrDelivTime) {
var option = $('<option />')
.val(i)
.text(data.arrDelivTime[i])
.appendTo(deliv_time_id_select);
}
}
changeForm(deliv_id);
}
}
});
});
/**
* 通信エラー表示.
*/
function remoteException(XMLHttpRequest, textStatus, errorThrown) {
alert('通信中にエラーが発生しました。カート画面に移動します。');
location.href = '<!--{$smarty.const.CART_URLPATH}-->';
}
/**
* 配送方法の選択状態により表示を切り替える
*/
function showForm(show) {
if (show) {
$('#payment, div.delivdate, .select-msg').show();
$('.non-select-msg').hide();
} else {
$('#payment, div.delivdate, .select-msg').hide();
$('.non-select-msg').show();
}
}
function changeForm(deliv_id) {
var deliv_time_id_select = $('select[id^=deliv_time_id]');
var deliv_date_select = $('select[id^=deliv_date]');
if (deliv_id=='20') {
if(deliv_time_id_select){
deliv_time_id_select.attr("disabled", "disabled");
}
if(deliv_date_select){
deliv_date_select.attr("disabled", "disabled");
}
$('div.pay_area02_display_mail').show();
$('div.pay_area02_display').hide();
} else {
$('div.pay_area02_display').show();
$('div.pay_area02_display_mail').hide();
if(deliv_time_id_select){
deliv_time_id_select.removeAttr("disabled");
}
if(deliv_date_select){
deliv_date_select.removeAttr("disabled");
}
}
}
});
//]]></script>
参考サイト内の通りへ変更致しましたところ、 配送方法「メール便」を選択すると、 お届け時間&お届け日の項目を消すことに成功しました。 ただし最上部の方にかきました通り、 宅急便商品でも、メール便商品でも、 配送方法「メール便」を選択できてしまう為、 最終的な解決まで至っておりません。
|
|
|
yuh |
投稿日時: 2014/8/9 19:12
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 2.13系メール便の対応について ちょっと気になってたんで、こちらのテストサイトでためしに作ってみましたが、正常に動作しますね・・・。 一応参考にしつつぱっと作ったんで、若干の差分があると思うんで内容を載せておきます。 SC_Helper_Delivery_Ex.php
#メール便対応商品
#メール便対応商品
public function getList($product_type_id = null, $has_deleted = false, $mailflag = false )
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$col = '*';
$where = '';
$arrVal = array();
if (!$has_deleted) {
$where .= 'del_flg = 0';
}
if (!is_null($product_type_id)) {
if (!$has_deleted) {
$where .= ' AND ';
}
$where .= 'product_type_id = ?';
$arrVal[] = $product_type_id;
}
if ( $mailflag === false ) {
if($where != ""){
$where .= ' AND';
}
$where .= ' deliv_id <> ?';
$arrVal[] = 5;//メール便のdeliv_id
}
$table = 'dtb_deliv';
$objQuery->setOrder('rank DESC');
$arrRet = $objQuery->select($col, $table, $where, $arrVal);
return $arrRet;
}
SC_Helper_Purchase_Ex.php
#メール便対応商品
public function checkMailDeliverAvailable($productTypeId, &$objCartSession)
{
$objQuery = SC_Query_Ex::getSingletonInstance();
$available = false;
// カート内の情報を取得
$items = $objCartSession->getCartList($productTypeId);
$idary = array();
foreach ( $items as $key => $value ) {
if ( $value['productsClass']['product_id'] AND preg_match('/^[0-9]+$/',$value['productsClass']['product_id']) ) {
$idary[] = $value['productsClass']['product_id'];
}
}
if ( count($idary) > 0 ) {
$query = '
SELECT
IF(MAX(mail_deliver_enabled) = MIN(mail_deliver_enabled),MAX(mail_deliver_enabled),MIN(mail_deliver_enabled))
FROM
dtb_products
WHERE
product_id IN('.implode(",", array_fill(0, count($idary), "?")).')
';
$check = $objQuery->getOne($query,$idary);
if ( $check == 1 ) {
return true;
} else {
return false;
}
}
return false;
}
LC_Page_Shopping_Payment.php
$flag = $objPurchase->checkMailDeliverAvailable($cart_key, &$objCartSess) ;
$this->arrDeliv = $objDelivery->getList($cart_key,false,$flag);
//↑ここを追加
// $this->arrDeliv = $objDelivery->getList($cart_key);
テストでUPしていて、 http://skip.ec-lab.net/products/list.php?category_id=7一部カート部分テスト中ですが、配送方法を取得する部分の処理自体は同じなので参考までに。
|
|
|
harusame |
投稿日時: 2014/8/10 11:06
対応状況: −−−
|
半人前 登録日: 2014/7/30 居住地: 奈良 投稿: 27 |
Re: 2.13系メール便の対応について 確かに正常に動作しておりますね…。 わざわざテストサイトにまで構築頂き、本当に、本当に、ありがとうございます。 お応えできるよう、必死で修正を行っていたのですが、 やはり、何かしらの不具合が発生してしまいます…。 まずSC_Helper_Delivery.phpの #メール便対応商品
public function getList($product_type_id = null, $has_deleted = false, $mailflag = false )
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$col = '*';
$where = '';
$arrVal = array();
if (!$has_deleted) {
$where .= 'del_flg = 0';
}
if (!is_null($product_type_id)) {
if (!$has_deleted) {
$where .= ' AND ';
}
$where .= 'product_type_id = ?';
$arrVal[] = $product_type_id;
}
if ( $mailflag === false ) {
if($where != ""){
$where .= ' AND';
}
$where .= ' deliv_id <> ?';
$arrVal[] = 20;//メール便のdeliv_id
}
$table = 'dtb_deliv';
$objQuery->setOrder('rank DESC');
$arrRet = $objQuery->select($col, $table, $where, $arrVal);
return $arrRet;
}
上記に書き換えると、 管理画面>基本情報管理>配送方法設定 から、メール便が消え去ります。 そして、ショップ購入ページからも、 配送方法選択に、メール便が一切出てこなくなり、宅急便のみとなります。 (カート内商品がどのパターンでも) 上記は、DB内dtb_delivへ、mailflagのカラムを増やすことでよろしかったでしょうか。 違っていたらすみません。 下記のように増やしました。 ・mailflag ┗smallint(6)|いいえ|0 そして、メール便のみ、mailflagを「0→1」へ変更しました。 根本的に間違っているかもしれませんが…。 どちらにしても、 カラム追加前、後、mailflag変更前、後、などなど、 全てにおいて、同じ現象(メール便が消え去る)となっております。 ------ SC_Helper_Purchase_Ex.phpの書き換えにつきましては、 特に変化無しでした。 ------ LC_Page_Shopping_Payment.phpにつきましては、 ↓現在 // 配送業者を取得
$mail_delivery_available = $objPurchase->checkMailDeliverAvailable($cart_key, $objCartSess);
$this->arrDeliv = $objDelivery->getList($cart_key, $mail_delivery_available);
$this->is_single_deliv = $this->isSingleDeliv($this->arrDeliv);
から、 $flag = $objPurchase->checkMailDeliverAvailable($cart_key, &$objCartSess) ;
$this->arrDeliv = $objDelivery->getList($cart_key,false,$flag);
//↑ここを追加
// $this->arrDeliv = $objDelivery->getList($cart_key);
上記に書き換えると、購入手続き画面にてエラー発生。 $flag = $objPurchase->checkMailDeliverAvailable($cart_key, &$objCartSess) ;
$this->arrDeliv = $objDelivery->getList($cart_key,false,$flag);
$this->is_single_deliv = $this->isSingleDeliv($this->arrDeliv);
こちらでも同じくエラー発生。 と、いうようになっております。 何かプラグイン等が競合してしまっているのでしょうか…。 ちなみにプラグインは、 「全ページ対応パンくずリスト表示プラグイン 0.3」 「カートブロック明細表示プラグイン 1.0.0」 「クロネコヤマト|送り状発行ソフトB2対応CSVダウンロード 4.1」 上記が有効状態となっております。 いろいろとお教え頂いているにも関わらず、 現状に苛立ちと、申し訳ない気持ちでいっぱいです…。 今しばらくお力をお貸し頂ければ幸いです。 現在も、いろいろと修正を続けておりますので、 何か変化があれば投稿を致します。
|
|
|
harusame |
投稿日時: 2014/8/10 11:34
対応状況: −−−
|
半人前 登録日: 2014/7/30 居住地: 奈良 投稿: 27 |
Re: 2.13系メール便の対応について 解決いたしました。 何がどうなったのかわからないのですが、 SC_Helper_Delivery_Ex.phpを参考サイト通り <?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) 2000-2013 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 function getList($product_type_id,$mail_delivery_available=true) {
$mail_deliv_id=20;
$objQuery = & SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder('rank DESC');
$where='product_type_id = ? AND del_flg = 0';
$arrval=array($product_type_id);
if(!$mail_delivery_available){
$where.=' AND deliv_id !=?';
$arrval[]=$mail_deliv_id;
}
return $objQuery->select('*', 'dtb_deliv', $where ,$arrval );
}
}
上記のような記述とし、 SC_Helper_Purchase_Ex.phpを <?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) 2000-2013 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_Purchase.php';
/**
* 商品購入関連のヘルパークラス(拡張).
*
* LC_Helper_Purchase をカスタマイズする場合はこのクラスを編集する.
*
* @package Helper
* @author Kentaro Ohkouchi
* @version $Id: SC_Helper_Purchase_Ex.php 22856 2013-06-08 07:35:27Z Seasoft $
*/
class SC_Helper_Purchase_Ex extends SC_Helper_Purchase
{
#メール便対応商品
function checkMailDeliverAvailable($productTypeId, &$objCartSession) {
$available = false;
// カート内の情報を取得
$items = $objCartSession->getCartList($productTypeId);
if (count(array_keys($items))) {
$available = true;
foreach (array_keys($items) as $key) {
$item = & $items[$key];
$product = & $item['productsClass'];
if ($product['mail_deliver_enabled'] == MAIL_DELIVER_ENABLED) {
continue;
} else {
$available = false;
}
}
}
return $available;
}
}
上記のようにしましたところ、 正常に動作いたしておりました。 全くどの部分での不具合だったのか、 どの部分で改善したのかがわからないのが納得いかないのですが、 結果、 メール便のみカートにある場合、メール便を表示、 宅急便も混ざっている場合、メール便非表示、 という状態とすることができました。 yuh様には、長期間に渡り、 本当に、本当に、細かいところまで親切にお教えいただき、 大変勉強になり、メール便対応サイトにもすることができ、 感謝してもしきれないほどです。 本当に、本当に、ありがとうございました。 本番サイトへ移行し、 問題が無ければ、解決済みとさせていただきます。
|
|
|
harusame |
投稿日時: 2014/8/10 11:50
対応状況: −−−
|
半人前 登録日: 2014/7/30 居住地: 奈良 投稿: 27 |
Re: 2.13系メール便の対応について 何度も申し訳ございません。 ショップ内は問題がないように思われるのですが、 管理画面>基本情報管理>配送方法設定 上記の一覧から、全ての登録情報が消え去りました…。 SC_Helper_Delivery_Ex.php内の #メール便対応商品
public function getList($product_type_id, $mail_delivery_available=true) {
$mail_deliv_id=20;
$objQuery = & SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder('rank DESC');
$where='product_type_id = ? AND del_flg = 0';
$arrval=array($product_type_id);
if(!$mail_delivery_available){
$where.=' AND deliv_id !=?';
$arrval[]=$mail_deliv_id;
}
return $objQuery->select('*', 'dtb_deliv', $where ,$arrval );
}
上記部分を削除すると、一覧も復活致します。 同時に、サイト内のメール便対応が解除されます…。 ちなみにですが、 SC_Helper_Delivery.php内は下記のように、初期状態のままです。 /**
* 配送方法一覧の取得.
*
* @param integer $product_type_id 商品種別ID
* @param boolean $has_deleted 削除された支払方法も含む場合 true; 初期値 false
* @return array
*/
public function getList($product_type_id = null, $has_deleted = false)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$col = '*';
$where = '';
$arrVal = array();
if (!$has_deleted) {
$where .= 'del_flg = 0';
}
if (!is_null($product_type_id)) {
if (!$has_deleted) {
$where .= ' AND ';
}
$where .= 'product_type_id = ?';
$arrVal[] = $product_type_id;
}
$table = 'dtb_deliv';
$objQuery->setOrder('rank DESC');
$arrRet = $objQuery->select($col, $table, $where, $arrVal);
return $arrRet;
}
一覧から消えた状態でもDBでいじれますし、 どうにもならない場合、現状でいこうかと思います…。
|
|
|
yuh |
投稿日時: 2014/8/10 12:17
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 2.13系メール便の対応について SC_Helper_Delivery.phpはミスで下記のコードが正常に動作します。
#メール便対応商品
public function getList($product_type_id = null, $has_deleted = false,$mailflag = false)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$col = '*';
$where = '';
$arrVal = array();
if (!$has_deleted) {
$where .= 'del_flg = 0';
}
if (!is_null($product_type_id)) {
if (!$has_deleted) {
$where .= ' AND ';
}
$where .= 'product_type_id = ?';
$arrVal[] = $product_type_id;
if ( $mailflag === false ) {
if($where != ""){
$where .= ' AND';
}
$where .= ' deliv_id <> ?';
$arrVal[] = 5;//メール便のdeliv_id
}
}
$table = 'dtb_deliv';
$objQuery->setOrder('rank DESC');
$arrRet = $objQuery->select($col, $table, $where, $arrVal);
return $arrRet;
}
管理画面確認してなかったです^^; すいません。
|
|
|
harusame |
投稿日時: 2014/8/10 12:28
対応状況: −−−
|
半人前 登録日: 2014/7/30 居住地: 奈良 投稿: 27 |
Re: 2.13系メール便の対応について ありがとうございます。
お教えいただいたコードへSC_Helper_Delivery.phpを変更致しました。
管理画面につきましては、改善されておりました…すみません。 キャッシュなのか、なんなのか、こちらも原因がわかりませんが、 通常通り、表示されておりました。 十分確認をせず、記載してしまい申し訳ございません。
今から、本番サイトへ移行作業をしてみます。
|
|
|
harusame |
投稿日時: 2014/8/10 13:32
対応状況: −−−
|
半人前 登録日: 2014/7/30 居住地: 奈良 投稿: 27 |
Re: 2.13系メール便の対応について 本番サイトへの移行が完了し、正常に動作致しました。 本当にありがとうございます。 ただ、 引用: 管理画面につきましては、改善されておりました…すみません。 キャッシュなのか、なんなのか、こちらも原因がわかりませんが、 通常通り、表示されておりました。 十分確認をせず、記載してしまい申し訳ございません。 と言いましたが、 やはり、管理画面の配送方法一覧が消えておりました。 先ほど、表示されていたのは、 コードを削除した状態で保存していた為でした。 やはり、 SC_Helper_Delivery_Ex.php内の、 #メール便対応商品
public function getList($product_type_id, $mail_delivery_available=true) {
$mail_deliv_id=20;
$objQuery = & SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder('rank DESC');
$where='product_type_id = ? AND del_flg = 0';
$arrval=array($product_type_id);
if(!$mail_delivery_available){
$where.=' AND deliv_id !=?';
$arrval[]=$mail_deliv_id;
}
return $objQuery->select('*', 'dtb_deliv', $where ,$arrval );
}
上記により、配送方法一覧が、表示&消去されてしまいました。 ※※※追記致します※※※ SC_Helper_Delivery_Ex.php内のコードは削除し、 SC_Helper_Delivery.php内のコード、 #メール便対応商品
public function getList($product_type_id = null, $has_deleted = false,$mailflag = false)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$col = '*';
$where = '';
$arrVal = array();
if (!$has_deleted) {
$where .= 'del_flg = 0';
}
if (!is_null($product_type_id)) {
if (!$has_deleted) {
$where .= ' AND ';
}
$where .= 'product_type_id = ?';
$arrVal[] = $product_type_id;
if ( $mailflag === false ) {
if($where != ""){
$where .= ' AND';
}
$where .= ' deliv_id <> ?';
$arrVal[] = 20;//メール便のdeliv_id
}
}
$table = 'dtb_deliv';
$objQuery->setOrder('rank DESC');
$arrRet = $objQuery->select($col, $table, $where, $arrVal);
return $arrRet;
}
のみにすると、改善されました…。 確証はありませんが、 こちらのコードだけでも、正常に動作しておりますので、 今のところ、問題はないかと思われます。 お騒がせいたしました。
|
|
|
yuh |
投稿日時: 2014/8/10 13:44
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 2.13系メール便の対応について
#メール便対応商品
public function getList($product_type_id, $mail_delivery_available=true) {
$mail_deliv_id=20;
$objQuery = & SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder('rank DESC');
$where='product_type_id = ? AND del_flg = 0';
$arrval=array($product_type_id);
if(!$mail_delivery_available){
$where.=' AND deliv_id !=?';
$arrval[]=$mail_deliv_id;
}
return $objQuery->select('*', 'dtb_deliv', $where ,$arrval );
}
上記のソースは色々混じってます。
#メール便対応商品
public function getList($product_type_id = null, $has_deleted = false,$mailflag = false)
{
$mail_deliv_id = 20;
$objQuery =& SC_Query_Ex::getSingletonInstance();
$col = '*';
$where = '';
$arrVal = array();
if (!$has_deleted) {
$where .= 'del_flg = 0';
}
if (!is_null($product_type_id)) {
if (!$has_deleted) {
$where .= ' AND ';
}
$where .= 'product_type_id = ?';
$arrVal[] = $product_type_id;
if ( $mailflag === false ) {
if($where != ""){
$where .= ' AND';
}
$where .= ' deliv_id <> ?';
$arrVal[] = $mail_deliv_id;//メール便のdeliv_id
}
}
$table = 'dtb_deliv';
$objQuery->setOrder('rank DESC');
$arrRet = $objQuery->select($col, $table, $where, $arrVal);
return $arrRet;
}
getlistの引数がデフォルトだとproduct_type_id, $has_deleted でその部分に追加で$mail_delivery_available を追加しているはずですが、$has_deletedが消えています。 管理画面から読み出す部分に関してはproduct_type_idを渡さずに と使用しているので、 $product_type_idがnullでproduct_type_id = NULL AND del_flg = 0とクエリが走り結果が0件となると思います。 自分で変更しているやつに関しては管理画面からのproduct_type_idがnullの場合にはメール便のチェックはスルーするようにしているので、下のソースを使用してみてください。 その際にpublic function getListからコピーしてお試しください。
|
|
|
harusame |
投稿日時: 2014/8/10 14:04
対応状況: 解決済
|
半人前 登録日: 2014/7/30 居住地: 奈良 投稿: 27 |
Re: 2.13系メール便の対応について 変更させていただきました。
管理画面につきましても、 問題無く表示いたしております。
また、 カート、購入画面などなどにつきましても、 動作に問題はないようです。
はじめは、ほとんど諦めておりましたので、 ご丁寧に教えて頂き、本当に感謝いたします。 本当にありがとうございました。
それでは、解決済みとさせていただきます。
yuh様に出会うことができ、本当によかったです!
|
|
|
|
統計情報
総メンバー数は89,041名です
総投稿数は110,020件です
|