/** * Adds Variants of a CartProduct to Order Item * * @param \Extcode\Cart\Domain\Model\Cart\Product $product CartProduct * * @return void */ protected function addProductVariants(\Extcode\Cart\Domain\Model\Cart\Product $product) { foreach ($product->getBeVariants() as $variant) { /** * Cart Variant * @var \Extcode\Cart\Domain\Model\Cart\BeVariant $variant */ if ($variant->getBeVariants()) { $this->addVariantsOfVariant($variant, 1); } else { $this->addBeVariant($variant, 1); } } }
/** * @param \Extcode\Cart\Domain\Model\Cart\Product $product * * @param array $productVariantIds * * @return bool */ public function removeproduct($product, $productVariantIds = null) { if (is_array($productVariantIds)) { $product->removeBeVariants($productVariantIds); if (!$product->getBeVariants()) { unset($this->products[$product->getId()]); } $this->calcAll(); } else { $this->subCount($product->getQuantity()); $this->subGross($product->getGross()); $this->subNet($product->getNet()); $this->subTax($product->getTax(), $product->getTaxClass()); unset($this->products[$product->getId()]); } return true; }