質問 > フロント機能 > order_mail.tplの配送情報欄に配送料を追加したい。 |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
bio |
投稿日時: 2020/6/29 20:21
対応状況: 解決済
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: order_mail.tplの配送情報欄に配送料を追加したい。 nanasess様、
大変申し訳ございませんでしたが、dtb_shipment_itemからでは送信先都道府県ごとに異なる配送料を抽出することができない様でしたので、dtb_shippingにdeliv_feeというカラムを作成し、そちらに以下の様な内容で挿入し、注文メールで配送料が表示されているようでございます。ご多忙の中、お時間頂きまして大変感謝いたします。 SC_Helper_Purchase.php function registerShipping($order_id, $arrParams, $convert_shipping_date = true) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $table = 'dtb_shipping'; $where = 'order_id = ?'; $objQuery->delete($table, $where, array($order_id)); foreach ($arrParams as $key => $arrShipping) { $arrValues = $objQuery->extractOnlyColsOf($table, $arrShipping); if ($arrValues['shipping_pref01'] == '沖縄県'){ $arrValues['shipping_pref01'] = '1'; ~~~~~~~~~~~~~~~~~~~~~~~~~~ }else{ } ~~~~~~~~~~~~~~~~~~~~~~~~~~ $deliv_id = $_SESSION['deliv_id']; $pref = $arrValues['shipping_pref01']; $objQuery =& SC_Query_Ex::getSingletonInstance(); $deliv_fee = $objQuery->getOne('SELECT fee FROM dtb_delivfee WHERE deliv_id = ? AND pref = ? GROUP BY deliv_id desc', array($deliv_id,$pref)); ~~~~~~~~~~~~~~~~~~~~~~~~~~ $arrValues['deliv_fee'] = $deliv_fee; ~~~~~~~~~~~~~~~~~~~~~~~~~~ $objQuery->insert($table, $arrValues); } } order_mail.tpl <!--{foreach item=shipping name=shipping from=$arrShipping}--> ◎お届け先<!--{if count($arrShipping) > 1}--><!--{$smarty.foreach.shipping.iteration}--><!--{/if}--> お名前 :<!--{$shipping.shipping_name01}--> 様 ~~~~~~~~~~~~~~~~~~~~~~~~~~ <!--{foreach item=item name=item from=$shipping.shipment_item}--> 商品名: <!--{$item.product_name}--> 単価:¥ <!--{$item.price|sfCalcIncTax|number_format}--> 数量:<!--{$item.quantity}--> <!--{/foreach}--> 配送料:¥ <!--{$shipping.deliv_fee|number_format}--> <!--{/foreach}--> |
nanasess |
投稿日時: 2020/6/26 10:48
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: order_mail.tplの配送情報欄に配送料を追加したい。 dtb_shipment_item に追加する場合は、 SC_Helper_Purchase::registerShipmentItem() を修正する必要がありますが、いかがでしょうか?
|
bio |
投稿日時: 2020/6/23 15:58
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
order_mail.tplの配送情報欄に配送料を追加したい。 お世話になっております。アドバイスを頂けませんでしょうか。
注文メールであるorder_mail.tplの配送情報欄に以下のセクションがあり、以下の様に配送料という箇所を新たに設定したいと考えております。下記はSC_Helper_Mail.phpでdtb_shipment_itemから抽出されている様ですので、dtb_shipment_itemに商品毎に異なる(都道府県ごとに異なる送料)deliv_feeを挿入する設定にしたいと考え、 <!--{foreach item=item name=item from=$shipping.shipment_item}--> 商品コード: <!--{$item.product_code}--> 商品名: <!--{$item.product_name}--> <!--{$item.classcategory_name1}--> <!--{$item.classcategory_name2}--> 単価:¥ <!--{$item.price|sfCalcIncTax|number_format}--> 数量:<!--{$item.quantity}--> 配送料:¥ <!--{$item.deliv_fee}--> <!--{/foreach}--> (ここ以降は見当外れかもしれませんが)ファイルを調べると、SC_Helper_Purchase.phpで$_SESSION['shipiing']から$val['shipment_item']に配送に関する情報を渡している様なので、 $shippingTemp =& $this->getShippingTemp($isMultiple); foreach ($shippingTemp as $shippingId => $val) { $this->registerShipmentItem($order_id, $shippingId, $val['shipment_item']); } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function getShippingTemp($has_shipment_item = false) { if ($has_shipment_item) { $arrReturn = array(); foreach ($_SESSION['shipping'] as $key => $arrVal) { if (count($arrVal['shipment_item']) == 0) continue; $arrReturn[$key] = $arrVal; } return $arrReturn; } return $_SESSION['shipping']; } $_SESSION['shipiing']をたどってみると以下に行きつき、以下の関数の$arrItems['deliv_fee']で配送料の取得/挿入を試みた(以下の->印)のですが、エラーも出ない代わりにdtb_shipment_itemにdeliv_feeが挿入されません。本件実現へ向けてどのような設定にすればいいかご助言当お願いできませんでしょうか。 function setShipmentItemTemp($shipping_id, $product_class_id, $quantity) { // 配列が長くなるので, リファレンスを使用する $arrItems =& $_SESSION['shipping'][$shipping_id]['shipment_item'][$product_class_id]; $arrItems['shipping_id'] = $shipping_id; $arrItems['product_class_id'] = $product_class_id; $arrItems['quantity'] = $quantity; -> $deliv_id = $_SESSION['deliv_id']; -> $pref = $_SESSION['pref']; -> $objQuery =& SC_Query_Ex::getSingletonInstance(); -> $objQuery->setOrder('deliv_id DESC'); -> $deliv_fee = $objQuery->select('fee','dtb_delivfee','deliv_id = ? AND pref = ?', array($deliv_id, $pref)); -> $arrItems['deliv_fee'] = $deliv_fee; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $arrItems['price'] = $arrItems['productsClass']['price02']; $inctax = SC_Helper_DB_Ex::sfCalcIncTax($arrItems['price']); $arrItems['total_inctax'] = $inctax * $arrItems['quantity']; -> $arrItems['deliv_fee'] = $deliv_fee; } EC-CUBE 2.13.5 (データベース) MySQL5.0.77 (WEBサーバ) apache2 (OS) Windows XP (PHP) 5.0.22 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |