バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ShoppingService.phpでの商品規格情報取得

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
ゲスト
投稿日時: 2017/12/11 23:41
対応状況: −−−
Re: ShoppingService.phpでの商品規格情報取得
ご丁寧にありがとうございます!
開発環境を触れる場所にいなかったため、返信遅くなってしまい申し訳ありませんでした。

記載いただいた通りにコードを変更してみましたが、やはりsmallItemQuantityもbigItemQuantityも0のままになってしまうようでした・・・

ご指摘いただいたとおり、getClassCategory1だけでなくその先のgetIdを行う必要がありそうなので、これでいけるかと思ったのですが。
他の部分に原因があるのかもしれないと思いましたので、現状setShippingDeliveryFeeの部分がどうなっているかを以下に記載いたします。

もし他にお気付きの点等あれば、ご指摘いただければ助かりますm(_ _)m


    /**
     * 配送料金の設定
     *
     * @param Shipping $Shipping
     * @param Delivery|null $Delivery
     */
    public function setShippingDeliveryFee(Shipping $Shipping, Delivery $Delivery = null)
    {
        $bigItemQuantity = 0;
        $smallItemQuantity = 0;
        $bigBoxQuantity = 0;
        $smallBoxQuantity = 0;
        // 配送料金の設定
        if (is_null($Delivery)) {
            $Delivery = $Shipping->getDelivery();
        }
        $deliveryFee = $this->app['eccube.repository.delivery_fee']->findOneBy(array('Delivery' => $Delivery, 'Pref' => $Shipping->getPref()));

        $Shipping->setDeliveryFee($deliveryFee);
        $Shipping->setDelivery($Delivery);

        // 規格別の本数を取得
        $shipmentItems = $Shipping->getShipmentItems();

        foreach ($shipmentItems as $ShipmentItem) {
            if(!is_null($ShipmentItem->getProductClass()->getClassCategory1())){
                $classCategoryId = $ShipmentItem->getProductClass()->getClassCategory1()->getId();
                if ($classCategoryId == 1){
                    $smallItemQuantity += $ShipmentItem->getQuantity();
                }
                if ($classCategoryId == 2){
                    $bigItemQuantity += $ShipmentItem->getQuantity();
                }
            }
        }

        // 箱(大・小)の数を算出
        if ($bigItemQuantity <= 0) {
            if ($smallItemQuantity <= 3){
                $smallBoxQuantity = 1;
            }else{
                $bigBoxQuantity = 1;
            }
        }else if ($bigItemQuantity <= 6) {
            if ($smallItemQuantity + $bigItemQuantity <= 8){
                $bigBoxQuantity = 1;
            }else if ($smallItemQuantity + $bigItemQuantity <= 11){
                $bigBoxQuantity = 1;
                $smallBoxQuantity = 1;
            }else{
                $bigBoxQuantity = 2;
            }
        }else {
            $bigBoxQuantity = 2;
        }

        // 商品ごとの配送料合計
        $productDeliveryFeeTotal = 0;
        if (!is_null($this->BaseInfo->getOptionProductDeliveryFee())) {
            $productDeliveryFeeTotal += $this->getProductDeliveryFee($Shipping);
        }

        $sizeFee = 240 * $smallBoxQuantity + 420 * $bigBoxQuantity;  //テスト段階のためここは定数ベタ打ちになっています。
        $Shipping->setShippingDeliveryFee($deliveryFee->getFee() * ($bigBoxQuantity + $smallBoxQuantity) + $sizeFee + $productDeliveryFeeTotal);
        $Shipping->setShippingDeliveryName($Delivery->getName());
    }
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   ShoppingService.phpでの商品規格情報取得 ゲスト 2017/12/10 10:43
     Re: ShoppingService.phpでの商品規格情報取得 minori 2017/12/11 10:59
       Re: ShoppingService.phpでの商品規格情報取得 ゲスト 2017/12/11 11:16
         Re: ShoppingService.phpでの商品規格情報取得 minori 2017/12/11 11:55
         » Re: ShoppingService.phpでの商品規格情報取得 ゲスト 2017/12/11 23:41
             Re: ShoppingService.phpでの商品規格情報取得 minori 2017/12/12 11:56
               Re: ShoppingService.phpでの商品規格情報取得 ゲスト 2017/12/12 14:11

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,610名です
総投稿数は110,128件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1656
8
red
1570
9
mcontact
1319
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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