バージョン選択

フォーラム

メニュー

オンライン状況

33 人のユーザが現在オンラインです。 (23 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 33
もっと...

サイト内検索

質問 > フロント機能 > /shopping/ ご注文手続き画面の伝票で新しい割引項目を追加表示したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
be-s
投稿日時: 2020/11/20 14:49
対応状況: −−−
常連
登録日: 2016/2/2
居住地: manchester
投稿: 53
/shopping/ ご注文手続き画面の伝票で新しい割引項目を追加表示したい
[EC-CUBE] 4.0.4
[レンタルサーバ] AWS
[OS] Linux
[PHP] 7.3.14
[データベース] MySQL 5.7.28
[WEBサーバ] Apache/2.4.25
[ブラウザ] Chrome
[現象]

まとめ売りのロジックをおかじさんの下記URLを参考に作成したのですが
https://qiita.com/okazy/items/47eb40bb15a413980870

「ご注文手続き画面」で「割引」というカテゴライズで伝票で表示されるため
「まとめ売り値引き」として伝票に「割引」とは別にに表示させたいのです。
どのようにおこなえばえばよろしいでしょうか?

/src/Eccube/Entity/Master/OrderItemType.php

mtb_order_item_typeに
「まとめ売り値引き」を追加したのですが

ご注文手続き画面で表示されませんでした。





下記まとめ売りの関数です。
/**
* まとめ売り割引計算処理
*
* @param ItemInterface $item カート内の商品情報
* @return int $discountSubTotalPrice まとめ売り小計値引き額
*/
function BandleSaleDiscountCalc($item){
$discountSubTotalPrice = 0; //まとめ売り小計値引額
//まとめ売り個数と割引率パターン
$arrayMultiDiscount =
[
107=>[//まとめ売り対象品番
50=>[1,40],//まとめ売り個数=>[割引率]
30=>[1,30],//まとめ売り個数=>[割引種類(1=定率割引2=定額割引),割引率or割引金額]
10=>[1,20],
2=>[2,1800]
],
108=>[
50=>[1,40],
30=>[1,30],
10=>[1,20],
2=>[2,1800]
]
];

$productClass = $item->getProductClass();
if($productClass){
$product = $productClass->getProduct(); //商品情報
$productId = $product->getId(); //商品ID
$productSaleType = $productClass->getSaleType(); //販売種別(※今後販売種別で処理分けする場合用)
$productQuantity = intVal($item->getQuantity()); //対象商品の注文個数
$productPrice = $item->getPrice(); //対象商品の単価(税抜)

//まとめ売り個数と割引率パターンを回して対象の商品IDがカートに入っているか確認
foreach ($arrayMultiDiscount as $targetProductId => $arrayDiscountPattern) {
if($productId == $targetProductId){
foreach($arrayDiscountPattern as $key => $arrayValue){
//まとめ売り個数と割引率を変数に入れる
$discountQuantityLimit = $key; //割引条件の個数
$discountType = $arrayValue[0]; //割引種類(1=定率割引2=定額割引)
$discountValue = $arrayValue[1]; //定率割引の時は割引率or定額割引の時は割引金額
//対象の商品がまとめ売りの個数に当てはまれば割引金額の計算をおこなう
if($productQuantity >= $discountQuantityLimit){
if($discountType == 1){//1の場合、定率割引の処理
$discountSubTotalPrice += intVal((intVal($productPrice*1.1)*$discountValue)/100)*$productQuantity;
}else{//1以外の場合、定額割引の処理
$discountSubTotalPrice += intVal($discountValue);
}
break;
}
}
}
}
}
return $discountSubTotalPrice;
}
468
投稿日時: 2020/11/20 16:57
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2696
Re: /shopping/ ご注文手続き画面の伝票で新しい割引項目を追加表示したい
ご注文手続きのページですがtwig側は
mtb_order_item_typeを参照して動的に項目が増える仕様になっていないと思います。

デフォルトの場合、
/src/Eccube/Resource/template/default/Shopping/index.twig 386~438行の間に
「まとめ売り値引き」を表示する記述を追記する必要があると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は67,470名です
総投稿数は98,836件です

投稿数ランキング

1
seasoft
7333
2
AMUAMU
2712
3
468
2696
4
nanasess
2116
5
umebius
1792
6
yuh
1612
7
red
1427
8
h_tanaka
1051
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.