У меня есть метод сбора в модели .. код приведен ниже. < /p>
Код: Выделить всё
namespace Mageniks\Alltest\Model\Total;
class Fee extends \Magento\Quote\Model\Quote\Address\Total\AbstractTotal
{
protected $quoteValidator = null;
protected $_checkoutSession;
public function __construct(\Magento\Quote\Model\QuoteValidator $quoteValidator, \Magento\Checkout\Model\Session $checkoutSession)
{
$this->quoteValidator = $quoteValidator;
$this->_checkoutSession = $checkoutSession;
}
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);
$exist_amount = 0; //$quote->getFee();
$giftprice = $this->_checkoutSession->getGiftwrapprice();
$fee = $giftprice;
$balance = $fee - $exist_amount;
$total->setTotalAmount('fee', $balance);
$total->setBaseTotalAmount('fee', $balance);
$total->setFee($balance);
$total->setBaseFee($balance);
$total->setGrandTotal($total->getGrandTotal() + $balance);
$total->setBaseGrandTotal($total->getBaseGrandTotal() + $balance);
return $this;
}
protected function clearValues(Address\Total $total)
{
$total->setTotalAmount('subtotal', 0);
$total->setBaseTotalAmount('subtotal', 0);
$total->setTotalAmount('tax', 0);
$total->setBaseTotalAmount('tax', 0);
$total->setTotalAmount('discount_tax_compensation', 0);
$total->setBaseTotalAmount('discount_tax_compensation', 0);
$total->setTotalAmount('shipping_discount_tax_compensation', 0);
$total->setBaseTotalAmount('shipping_discount_tax_compensation', 0);
$total->setSubtotalInclTax(0);
$total->setBaseSubtotalInclTax(0);
}
public function fetch(\Magento\Quote\Model\Quote $quote, \Magento\Quote\Model\Quote\Address\Total $total)
{
$giftprice = $this->_checkoutSession->getGiftwrapprice();
return [
'code' => 'fee',
'title' => 'Giftwrap',
'value' => $giftprice
];
}
public function getLabel()
{
return __('Giftwrap');
}
}
https://magento.stackexchange.com/quest ... dd-fee-to- Заказы Totals-in-magento2
Но это не может добавить дополнительную плату в счет администратора. < /p>
Любая помощь будет оценена. /> Спасибо < /p>
Подробнее здесь: https://stackoverflow.com/questions/415 ... in-invoice
Мобильная версия