Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CartItemOptionsProcessor.php
Go to the documentation of this file.
1 <?php
7 
9 
11 {
15  private $cartItemProcessors = [];
16 
20  public function __construct(CartItemProcessorsPool $cartItemProcessorsPool)
21  {
22  $this->cartItemProcessors = $cartItemProcessorsPool->getCartItemProcessors();
23  }
24 
30  public function getBuyRequest($productType, CartItemInterface $cartItem)
31  {
32  $params = (isset($this->cartItemProcessors[$productType]))
33  ? $this->cartItemProcessors[$productType]->convertToBuyRequest($cartItem)
34  : null;
35 
36  $params = ($params === null) ? $cartItem->getQty() : $params->setData('qty', $cartItem->getQty());
37  return $this->addCustomOptionsToBuyRequest($cartItem, $params);
38  }
39 
47  private function addCustomOptionsToBuyRequest(CartItemInterface $cartItem, $params)
48  {
49  if (isset($this->cartItemProcessors['custom_options'])) {
50  $buyRequestUpdate = $this->cartItemProcessors['custom_options']->convertToBuyRequest($cartItem);
51  if (!$buyRequestUpdate) {
52  return $params;
53  }
54  if ($params instanceof \Magento\Framework\DataObject) {
55  $buyRequestUpdate->addData($params->getData());
56  } elseif (is_numeric($params)) {
57  $buyRequestUpdate->setData('qty', $params);
58  }
59  return $buyRequestUpdate;
60  }
61  return $params;
62  }
63 
69  {
70  if (isset($this->cartItemProcessors['custom_options'])) {
71  $cartItem = $this->cartItemProcessors['custom_options']->processOptions($cartItem);
72  }
73  return $cartItem;
74  }
75 
81  public function addProductOptions($productType, CartItemInterface $cartItem)
82  {
83  $cartItem = (isset($this->cartItemProcessors[$productType]))
84  ? $this->cartItemProcessors[$productType]->processOptions($cartItem)
85  : $cartItem;
86  return $cartItem;
87  }
88 }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
__construct(CartItemProcessorsPool $cartItemProcessorsPool)
getBuyRequest($productType, CartItemInterface $cartItem)
addProductOptions($productType, CartItemInterface $cartItem)
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18