isActive() || false == $oModule->load(handler::D3OQMMODID) || false == $oModule->isActive() || empty($sAmount) || $blBundle != false ) { return parent::addToBasket( $sProductID, $sAmount, $aSel, $aPersParam, $blOverride, $blBundle, $sOldBasketItemId ); } startProfile(__METHOD__); $sNewAmount = $sAmount; $dAmount = handler::convertStrToFloat($sAmount); $dOldAmount = 0; $sBasketId = $this->getItemKey($sProductID, $aSel, $aPersParam, $blBundle); //get Article and load it /** @var $oArticle d3_oxarticle_oqm */ $oArticle = oxNew('oxarticle'); if ($oArticle->load($sProductID)) { $oD3OQMHandler = handler::getInstance(); $oD3OQMHandler->setCurrentArticle($oArticle); // get old amount from basket if ($oArticle->hasD3OQMAvailableOptions()) { if ($aBasketItems = $this->getContents()) { /** @var $oBasketItem BasketItem */ if ($oBasketItem = $aBasketItems[$sBasketId]) { $dOldAmount = $oBasketItem->getAmount(); } } $aConstellation = array( 'dAddedAmount' => $dAmount, 'dOldAmount' => $dOldAmount, 'basketId' => $sBasketId, 'aSel' => $aSel, 'aPersParam' => $aPersParam, 'blOverride' => $blOverride, 'blBundle' => $blBundle, 'sOldBasketItemId' => $sOldBasketItemId, ); $blOldOverRide = $blOverride; $sNewAmount = $oD3OQMHandler->validateAmount($aConstellation); $blOverride = true; if ($sNewAmount > 0 && false == $blOldOverRide && $dOldAmount != $sNewAmount) { Registry::getSession()->setVariable('blAddedNewItem', true); } $this->_aD3OQMDrifts = handler::getInstance()->getDrifts(); Registry::getSession()->setVariable('_aD3OQMDrifts', serialize($this->_aD3OQMDrifts)); } } stopProfile(__METHOD__); return parent::addToBasket( $sProductID, $sNewAmount, $aSel, $aPersParam, $blOverride, $blBundle, $sOldBasketItemId ); } /** * Simple Wrapper for the drifts * * @return array */ public function getD3OQMDrifts() { return unserialize(Registry::getSession()->getVariable('_aD3OQMDrifts')); } /** * Simple Wrapper for the drifts * */ public function resetD3OQMDrifts() { handler::getInstance()->resetDrifts(); Registry::getSession()->deleteVariable('_aD3OQMDrifts'); } }