Мы используем пользовательский модуль для расчета суммы, которую мы должны включить в общую сумму заказа, т. Е. С клиента будет взиматься плата за продукт ПЛЮС этой пользовательской суммы, но он устанавливается только как «Итого к оплате» и «Полоса».получает первоначальную стоимость товара и его доставку без нашего расчета.Код выглядит следующим образом:
class CustomAmount extends \Magento\Quote\Model\Quote\Address\Total\AbstractTotal
{
public function collect(
\Magento\Quote\Model\Quote $quote,
\Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment,
\Magento\Quote\Model\Quote\Address\Total $total
) {
parent::collect($quote, $shippingAssignment, $total);
$amount = 187; // fixed amount as example, but this will change
$total->setTotalAmount('installation', $amount);
$total->setBaseTotalAmount('installation', $amount);
$total->setCustomAmount($amount);
$total->setBaseCustomAmount($amount);
$total->addTotalAmount($this->getCode(), $amount);
$total->addBaseTotalAmount($this->getCode(), $amount);
return $this;
}
}
, и мы видим это на панели администратора
Мы пробовали использовать другие функции из \Magento\Quote\Model\Quote\Address\Total
, такие как замена $total->addTotalAmount($this->getCode(), $amount);
на $total->addGrandTotal($total->getGrandTotal() + $amount);
Мы хотим, чтобы пользовательская сумма была добавлена к общей сумме, которая фактически выплачивается через Stripe, в настоящее время мы видим это только как Due Amount
.