|
送料を計算する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);
}
}
}
}
}
|