/** * Correct product amount to add to cart. * * @param \XLite\Model\Product $product Product to add * @param integer|null $amount Amount of product * * @return integer */ protected function correctAmountAsProduct(\XLite\Model\Product $product, $amount) { if (is_null($amount) && $product->mustHaveVariants()) { $amount = 1; } else { $amount = parent::correctAmountAsProduct($product, $amount); } return $amount; }
/** * Get attribute value * * @param \XLite\Model\Product $product Product * * @return mixed */ public function getDefaultAttributeValue(\XLite\Model\Product $product) { $attributeValue = null; if ($product->mustHaveVariants()) { $variant = $product->getDefaultVariant(); if ($variant) { foreach ($variant->getValues() as $av) { if ($av->getAttribute()->getId() == $this->getId()) { $attributeValue = $av; break; } } } } return $attributeValue ?: parent::getDefaultAttributeValue($product); }
/** * {@inheritDoc} */ public function mustHaveVariants() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'mustHaveVariants', array()); return parent::mustHaveVariants(); }