送料を計算するProcessorを以下の場所に作成します。 送料を100円に設定するには以下のような記述になります。 アノテーションは @ShoppingFlow, @CartFlow, @OrderFlow が指定できます。 ドキュメントには以下の記述がありますが、不要です。
https://doc4.ec-cube.net/customize_service <?php namespace Customize\Service\PurchaseFlow\Processor; use Eccube\Annotation\ShoppingFlow; use Eccube\Entity\ItemHolderInterface; use Eccube\Service\PurchaseFlow\ItemHolderPreprocessor; use Eccube\Service\PurchaseFlow\PurchaseContext; /** * @ShoppingFlow */ class DeliveryFeeProcessor implements ItemHolderPreprocessor { /** * @param ItemHolderInterface $itemHolder * @param PurchaseContext $context */ public function process(ItemHolderInterface $itemHolder, PurchaseContext $context) { $this->updateDeliveryFeeItem($itemHolder); } /** * @param ItemHolderInterface $itemHolder */ private function updateDeliveryFeeItem(ItemHolderInterface $itemHolder) { /** @var Order $Order */ $Order = $itemHolder; /* @var Shipping $Shipping */ foreach ($Order->getShippings() as $Shipping) { /** @var OrderItem $item */ foreach ($Shipping->getOrderItems() as $item) { if ($item->isDeliveryFee()) { $item->setPrice(100); $item->setQuantity(1); } } } } } |