80 \
Magento\Framework\Event\ManagerInterface $eventManager,
83 $this->_eventManager = $eventManager;
84 $this->_salesModel = $salesModelFactory->create($salesModel);
143 $this->
_addAmount(self::AMOUNT_DISCOUNT, $discountAmount);
155 $this->
_setAmount(self::AMOUNT_DISCOUNT, $discountAmount);
166 return $this->
_getAmount(self::AMOUNT_DISCOUNT);
201 return $this->
_getAmount(self::AMOUNT_SHIPPING);
213 $this->
_addAmount(self::AMOUNT_SUBTOTAL, $subtotalAmount);
224 return $this->
_getAmount(self::AMOUNT_SUBTOTAL);
251 return array_merge($this->_salesModelItems, $this->_customItems);
296 if (!$this->_itemsCollectingRequired) {
300 $this->_itemsCollectingRequired =
false;
302 $this->_salesModelItems = [];
303 $this->_customItems = [];
307 $this->_eventManager->dispatch(
'payment_cart_collect_items_and_amounts', [
'cart' => $this]);
320 $this->_salesModelItems = [];
322 foreach ($this->_salesModel->getAllItems() as
$item) {
323 if (
$item->getParentItem()) {
331 $item->getOriginalItem()->getId()
335 $this->
addSubtotal($this->_salesModel->getBaseSubtotal());
336 $this->
addTax($this->_salesModel->getBaseTaxAmount());
337 $this->
addShipping($this->_salesModel->getBaseShippingAmount());
338 $this->
addDiscount(abs($this->_salesModel->getBaseDiscountAmount()));
348 if (!empty($this->_transferFlags[self::AMOUNT_DISCOUNT]) && $this->
getDiscount()) {
353 if (!empty($this->_transferFlags[self::AMOUNT_SHIPPING]) && $this->
getShipping()) {
358 foreach ($this->_customItems as
$item) {
370 $this->_transferFlags[$flagType] = (bool)
$value;
371 $this->_itemsCollectingRequired =
true;
381 $this->_amounts[$amountType] = (double)
$amount;
391 $this->_amounts[$amountType] += (double)
$amount;
402 return $this->_amounts[$amountType];
416 $item = new \Magento\Framework\DataObject([
'name' =>
$name,
'qty' => $qty,
'amount' => (
double)
$amount]);
419 $item->setData(
'id', $identifier);
433 self::AMOUNT_DISCOUNT => 0,
434 self::AMOUNT_SHIPPING => 0,
435 self::AMOUNT_SUBTOTAL => 0,
436 self::AMOUNT_TAX => 0,
__construct(\Magento\Payment\Model\Cart\SalesModel\Factory $salesModelFactory, \Magento\Framework\Event\ManagerInterface $eventManager, $salesModel)
_setAmount($amountType, $amount)
setTransferShippingAsItem()
addShipping($shippingAmount)
_collectItemsAndAmounts()
_setTransferFlag($flagType, $value)
$_itemsCollectingRequired
_createItemFromData($name, $qty, $amount, $identifier=null)
addDiscount($discountAmount)
addCustomItem($name, $qty, $amount, $identifier=null)
_calculateCustomItemsSubtotal()
_importItemsFromSalesModel()
addSubtotal($subtotalAmount)
_addAmount($amountType, $amount)
setDiscount($discountAmount)
setShipping($shippingAmount)
setTransferDiscountAsItem()
if(!isset($_GET['name'])) $name