> フロント機能 > カート内の商品IDと個数を取得したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kyou |
投稿日時: 2016/11/1 15:34
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2016/8/15 居住地: 投稿: 10 |
カート内の商品IDと個数を取得したい カートに入っている商品IDを参照し、
一部の商品IDに送料無料設定追加する [EC-CUBE] 3.0.10 [PHP] PHP 5.6.24 [ブラウザ] GoogleChrome [導入プラグインの有無] お問い合わせ管理、orderPDF,Cart推移しません、受注ステータス色分け、配送伝票番号、注文ステータス一括変更 下記の仕様を組み込みたくて 施行錯誤してみたのですがうまくいかずに困っています。 [現在] 20000円以上お買い上げで送料無料 [追加する仕様] 1.商品idが「1」の商品が3個購入されたら その注文での送料は20000円未満でも無料になる。 2.商品idが「2」の商品が1つでも購入されていれば その注文での送料は20000円未満でも無料になる。 3.それ以外の注文では20000円以上購入で送料無料となる。 ここのフォーラムで商品種別IDを利用して 商品別の少量設定をしているので対応箇所はわかったのですが 種別IDではなくて商品IDの方が取得できなくて困っています。 対応ファイル:ShoppingService.php 対応箇所:setDeliveryFreeAmount(Order $Order) 上記に条件文を入れて処理させたいです。 商品IDおよびそのIDの購入個数を取得する場合は ほかのファイルも手を加えなくては駄目でしょうか? 少しでも情報をお持ちの方がいればご教授願います ![]() |
hata |
投稿日時: 2016/11/2 21:17
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2015/8/3 居住地: 宮城県(2017/09末引退) 投稿: 156 |
Re: カート内の商品IDと個数を取得したい 試してはおりませんが、
既存の処理の後で送料がまだ無料になっていなかったら foreach ($Order->getOrderDetails() as $orderDetail) で回りながら $orderDetail->getProduct()->getId()で商品idをみて 商品id毎に$orderDetail->getQuantity()で数量を加算 商品id毎に送料無料にする条件をチェックして、無料になる場合は 既存の処理と同じように送料無料設定($Orderと$Shippingに)をしてから breakしてループを抜ける という流れでご期待の動作にならないでしょうか? 尚、ご参考程度ですので十分に検証・確認なさった上での実装をお願いいたします。 |
kyou |
投稿日時: 2016/11/4 17:09
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2016/8/15 居住地: 投稿: 10 |
Re: カート内の商品IDと個数を取得したい hata 様
教えて頂きありがとうございました ![]() おかげで希望通りの処理が組み込めました ![]() 本当に感謝です ![]() 一応記載した処理は [既存の送料無料処理] foreach ($Order->getOrderDetails() as $orderDetail) { // 商品ID:3 が3つ以上買われれば送料無料 if ($orderDetail->getProduct()->getId() == 3){ // 3つ以上であれば送料無料 if ($orderDetail->getQuantity() >= 3) { $Order->setDeliveryFeeTotal(0); // お届け先情報の配送料も0にセット $shippings = $Order->getShippings(); foreach ($shippings as $Shipping) { $Shipping->setShippingDeliveryFee(0); } break; } } // 商品ID:4 が1つ以上買われれば送料無料 else if ($orderDetail->getProduct()->getId() == 4){ // 1つ以上であれば送料無料 $Order->setDeliveryFeeTotal(0); // お届け先情報の配送料も0にセット $shippings = $Order->getShippings(); foreach ($shippings as $Shipping) { $Shipping->setShippingDeliveryFee(0); } break; } } |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |