バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 配送料の計算を変更したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mii
投稿日時: 2019/4/6 9:12
対応状況: −−−
半人前
登録日: 2019/2/21
居住地:
投稿: 12
配送料の計算を変更したい
[EC-CUBE]3.017
[レンタルサーバ]ロリポップ
[OS]Win10
[PHP]5.6
[データベース]MySQL5.6

カスタマイズで、Eccube/Service/ShopingService.php内にて思う値が取れない状態でして、ご質問させていただきます。(ShoppingController.phpにも類似記述してる、省略)
カートからレジに移動間の計算で、Eccube/Entity/Shippingへ項目を追加しています。(名前:Kosu)

入れたい値は商品の個数合計(複数注文の場合はそれぞれの注文での個数合計)で、個数を取得できたらこれを元にいろいろ式をいじりたいのですが、今のところ0で取得できていません。以下の関数を修正して試しました
ShopingService.php内下記部位

public function setShippingDeliveryFee(Shipping $Shipping, Delivery $Delivery = null,Order $Order = null)
{/*←$Order追加*/
(省略)
$Shipping->setShippingDeliveryFee($deliveryFee->getFee() + $productDeliveryFeeTotal);

if(!empty($Order)){ /*↓ここから追加*/
$OrderDetailItems=$Order->getOrderDetails();
$itemQuantity=0;
foreach($OrderDetailItems as $OrderDetailItem){$itemQuantity+=$OrderDetailItem->getQuantity();}
$Shipping->setShippingDeliveryKosuu($itemQuantity);
}
}

umebius
投稿日時: 2019/4/6 9:22
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: 配送料の計算を変更したい
カートから確認画面へ移動した時、ShoppingServiceのregisterPreOrder内でShippingが生成されますが
$Order = $this->getNewDetails($Order);が呼ばれるまで個数の情報は入っていません。

カートから移動した時にsetShippingDeliveryFeeが呼ばれるのはその1つ前のgetNewShippingだから0なのではないでしょうか(ちゃんと確認してませんが)

また、Shipping内の個数を取得するならOrderDetailではなく、ShipmentItemから個数とった方が良いかもしれません。


----------------
EC-CUBE3系4系 カスタマイズ ECのプロがシステム特急案件承ります。
公式インテグレートパートナー (株)U-Mebius

mii
投稿日時: 2019/4/6 10:16
対応状況: −−−
半人前
登録日: 2019/2/21
居住地:
投稿: 12
Re: 配送料の計算を変更したい
ありがとうございます、確認してみました。
一応下記式に置き換えてみたのですが、やはり0になるのは$this->getNewDetailsの前だからという理由ですよね?

$itemQuantity = 0;
$shipmentItems=$Shipping->getShipmentItems();
foreach ($shipmentItems as $ShipmentItem) {
$itemQuantity += $ShipmentItem->getQuantity();
}
$Shipping->setShippingDeliveryKosu($itemQuantity);

個数を計算の必須条件にするとなると、どっかから引っ張ってくるってことになると思いますが、適切なのはカートとかでしょうか
umebius
投稿日時: 2019/4/6 23:37
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: 配送料の計算を変更したい
そうですね、getNewDetailsの前だからです。

ですので、getNewDetailsの後で、もう一度個数計算してみてはいかがでしょうか?
あるいはShippingエンティティに集計メソッド作って置けば良いと思います。CartエンティティのgetTotalQuantityのような形で。


----------------
EC-CUBE3系4系 カスタマイズ ECのプロがシステム特急案件承ります。
公式インテグレートパートナー (株)U-Mebius

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


 



ログイン


ec-cube.co

統計情報

総メンバー数は46,444名です
総投稿数は92,291件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1904
4
468
1791
5
yuh
1594
6
red
1313
7
umebius
1296
8
fukap
907
9
tsuji
840
10
shutta
835
11 ramrun 789
12
tao_s
758
13
h_tanaka
746
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.