EC-CUBE3では、商品個別送料の計算はShoppingServiceクラスが請け負っています。
getProductDeliveryFeeメソッドが担当ですので、ご自身のビジネスに合わせてカスタマイズしたい場合はこのメソッドをごにょごにょしてください。
商品個別送料を商品ごとに1回のみ計算したい場合は、getDeliveryFee()にgetQuantity()を掛けないようにします。
/** * 商品ごとの配送料を取得 * * @param Shipping $Shipping * @return int */ public function getProductDeliveryFee(Shipping $Shipping) { $productDeliveryFeeTotal = 0; $shipmentItems = $Shipping->getShipmentItems(); foreach ($shipmentItems as $ShipmentItem) { $productDeliveryFeeTotal += $ShipmentItem->getProductClass()->getDeliveryFee() * $ShipmentItem->getQuantity(); } return $productDeliveryFeeTotal; }
EC-CUBE3はカスタマイズが楽になりましたね。
※具体的な動作確認はしていませんので、カスタマイズはご自身の判断で行ってください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。