/** * Get Cart/Product From Request * * @param array $pluginSettings TypoScript Plugin Settings * @param Request $request Request * @param \Extcode\Cart\Domain\Model\Cart\TaxClass[] $taxClasses Tax Class Array * * @return \Extcode\Cart\Domain\Model\Cart\Product[] */ public function getProductsFromRequest(array $pluginSettings, Request $request, array $taxClasses) { if (!$this->pluginSettings) { $this->pluginSettings = $pluginSettings; } if (!$this->taxClasses) { $this->taxClasses = $taxClasses; } $multiple = 1; if ($this->pluginSettings['multiple']) { $argumentName = $this->pluginSettings['multiple']; if ($request->hasArgument($argumentName)) { $multiple = intval($request->getArgument($argumentName)); } } $products = []; $preCartProductSets = []; if ($multiple == 1) { $preCartProductSets[1] = $this->parserUtility->getPreCartProductSet($pluginSettings, $request); } else { // TODO: iterate over request } foreach ($preCartProductSets as $preCartProductSetKey => $preCartProductSetValue) { if ($preCartProductSetValue['contentId']) { $products[$preCartProductSetKey] = $this->getCartProductFromCE($preCartProductSetValue); } elseif ($preCartProductSetValue['productId']) { $products[$preCartProductSetKey] = $this->getCartProductFromDatabase($preCartProductSetValue); } } return $products; }
/** * Parse Data * * @return void */ protected function parseData() { // parse all shippings $this->shippings = $this->parserUtility->parseServices('Shipping', $this->pluginSettings, $this->cart); // parse all payments $this->payments = $this->parserUtility->parseServices('Payment', $this->pluginSettings, $this->cart); // parse all specials $this->specials = $this->parserUtility->parseServices('Special', $this->pluginSettings, $this->cart); }