EC-CUBE4 送料計算をカスタマイズする
の編集
https://yassu.jp/pukiwiki/index.php?EC-CUBE4+%C1%F7%CE%C1%B7%D7%BB%BB%A4%F2%A5%AB%A5%B9%A5%BF%A5%DE%A5%A4%A5%BA%A4%B9%A4%EB
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
[[EC-CUBEめも]] 送料を計算するProcessorを以下の場所に作成します。~ app/Customize/Service/PurchaseFlow/Processor/DeliveryFeeProcessor.php 送料を100円に設定するには以下のような記述になります。~ ShoppingFlowアノテーションを書いておかないといけないのがポイントです。 アノテーションは @ShoppingFlow, @CartFlow, @OrderFlow が指定できます。~ インターフェイスには ItemHolderPreprocessor, ItemValidator, ItemHolderValidator などが指定できます。 ドキュメントには以下の記述がありますが、不要です。 > 独自に作成した Processor を有効にするには、 app/config/eccube/packages/purchaseflow.yaml の定義を修正します。 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); } } } } }
タイムスタンプを変更しない
[[EC-CUBEめも]] 送料を計算するProcessorを以下の場所に作成します。~ app/Customize/Service/PurchaseFlow/Processor/DeliveryFeeProcessor.php 送料を100円に設定するには以下のような記述になります。~ ShoppingFlowアノテーションを書いておかないといけないのがポイントです。 アノテーションは @ShoppingFlow, @CartFlow, @OrderFlow が指定できます。~ インターフェイスには ItemHolderPreprocessor, ItemValidator, ItemHolderValidator などが指定できます。 ドキュメントには以下の記述がありますが、不要です。 > 独自に作成した Processor を有効にするには、 app/config/eccube/packages/purchaseflow.yaml の定義を修正します。 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); } } } } }
テキスト整形のルールを表示する