/** * Prepare order item before price calculation * * @param \XLite\Model\OrderItem $item Order item * @param array $attributes Attributes * * @return void */ protected function prepareItemBeforePriceCalculation(\XLite\Model\OrderItem $item, array $attributes) { parent::prepareItemBeforePriceCalculation($item, $attributes); if ($item && $item->getProduct()->mustHaveVariants()) { $variant = $item->getProduct()->getVariantByAttributeValuesIds($attributes); if ($variant) { $oldVariant = $item->getVariant(); if (!$oldVariant || $oldVariant->getId() != $variant->getId()) { \XLite\Core\Request::getInstance()->oldAmount = null; } $item->setVariant($variant); } } return $item; }