ご連絡遅くなってしまい申し訳ありません。
DeliveryFeeFreeByShippingPreprocessor.phpを以下のように改修しました。
$total、$quantityはプロパティ化をしました。
商品規格別、複数配送でも送料無料条件が統一することが確認できました。
以下のソースの変更より簡単なやり方があれば
教えていただけますでしょうか。
変更したソースコード
/src/Eccube/Service/PurchaseFlow/Processor/DeliveryFeeFreeByShippingPreprocessor.php のfunction process()
foreach ($Order->getShippings() as $Shipping) {
foreach ($Shipping->getProductOrderItems() as $Item) {
$this->result_price += $Item->getPriceIncTax() * $Item->getQuantity();
$this->result_quantity += $Item->getQuantity();
}
}
$isFree = false;
foreach ($Order->getShippings() as $Shipping) {
// 送料無料(金額)を超えている
if ($this->BaseInfo->getDeliveryFreeAmount()) {
if ($this->result_price >= $this->BaseInfo->getDeliveryFreeAmount()) {
$isFree = true;
}
}
// 送料無料(個数)を超えている
if ($this->BaseInfo->getDeliveryFreeQuantity()) {
if ($this->result_quantity >= $this->BaseInfo->getDeliveryFreeQuantity()) {
$isFree = true;
}
}
if ($isFree) {
foreach ($Shipping->getOrderItems() as $Item) {
if ($Item->getProcessorName() == DeliveryFeePreprocessor::class) {
$Item->setQuantity(0);
}
}
}