/** * Correct product amount to add to cart * * @param \XLite\Model\OrderItem $item Product to add * @param integer $amount Amount of product * * @return integer */ protected function correctAmountToAdd(\XLite\Model\OrderItem $item, $amount) { if ($item && $item->getProduct()->mustHaveVariants()) { $item->setVariant($item->getProduct()->getVariantByAttributeValuesIds($item->getAttributeValuesIds())); } return parent::correctAmountToAdd($item, $amount); }
/** * Check order item and return true if this is valid * * @param \XLite\Model\OrderItem $entity Order item entity * * @return boolean */ protected function isValidEntity($entity) { $result = 0 < $entity->getAmount(); if ($result && ($entity->hasAttributeValues() || $entity->getProduct()->hasEditableAttributes())) { $result = array_keys($entity->getAttributeValuesIds()) == $entity->getProduct()->getEditableAttributesIds(); } return $result; }
/** * {@inheritDoc} */ public function getAttributeValuesIds() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getAttributeValuesIds', array()); return parent::getAttributeValuesIds(); }