バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mii
投稿日時: 2019/4/6 9:12
対応状況: −−−
半人前
登録日: 2019/2/21
居住地:
投稿: 15
配送料の計算を変更したい
[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
居住地: 東京日本橋
投稿: 1343
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
居住地:
投稿: 15
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
居住地: 東京日本橋
投稿: 1343
Re: 配送料の計算を変更したい
そうですね、getNewDetailsの前だからです。

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


----------------
EC-CUBE3系4系 カスタマイズ ECのプロがシステム特急案件承ります。
公式インテグレートパートナー エンジニア募集中U-Mebius

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


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は52,557名です
総投稿数は93,818件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2010
4
468
1873
5
yuh
1610
6
red
1359
7
umebius
1343
8
h_tanaka
932
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
780
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 437


ネットショップの壺

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

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