Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Magento Extension (Ajuda)

$
0
0
Boas a todos, tenho este modulo que arranjei neste site https://inchoo.net/ecommerce/magento/magento-maximum-allowed-order-amount/. Que faz quase o que eu quero.

Mas preciso de em vez de ir buscar a quantia máxima quero que só seja possivel fazer um total de 60€ em compras trimestrais, para tal fiz este bocado dentro do 'Observer.php':

Código (PHP):
        public function enforceSingleOrderLimit($observer)
        {
                if (!$this->_helper->isModuleEnabled()) {
                        return;
                }

                $quote = $observer->getEvent()->getQuote();

                //Get current customer ID
                $customerId = Mage::getSingleton('customer/session')->getCustomer()->getId();

                //Get the resource model
                $resource = Mage::getSingleton('core/resource');

                //Retrieve the read connection
                $readConnection = $resource->getConnection('core_read');

                //Retrieve our table name
                $table = $resource->getTableName('sales/order');

                date_default_timezone_set('Europe/Lisbon');
                $date = strtotime(date('Y-m-d H:i:s'));
                $year = date('Y');

                if(strtotime($year . '-01-01 00:00:00') <= $date && $date <= strtotime($year . '-03-31 00:00:00')){
                        $date_begin = $year . '-01-01 00:00:00';
                        $date_end = $year . '-03-31 00:00:00';
                }else if(strtotime($year . '-04-01 00:00:00') <= $date && $date <= strtotime($year . '-06-30 00:00:00')){
                        $date_begin = $year . '-04-01 00:00:00';
                        $date_end = $year . '-06-30 00:00:00';
                }else if(strtotime($year . '-07-01 00:00:00') <= $date && $date <= strtotime($year . '-09-31 00:00:00')){
                        $date_begin = $year . '-07-01 00:00:00';
                        $date_end = $year . '-09-31 00:00:00';
                }else if(strtotime($year . '-10-01 00:00:00') <= $date && $date <= strtotime($year . '-12-30 00:00:00')){
                        $date_begin = $year . '-10-01 00:00:00';
                        $date_end = $year . '-12-30 00:00:00';
                }

                //query para ir buscar o total de compras feitas nesse trimestre
                $total_quadrante = $readConnection->fetchAll('SELECT base_subtotal FROM ' . $table
                        . ' WHERE '
                        . ' customer_id = ' . (int)$customerId
                        . ' AND (created_at BETWEEN '
                        . '"' . $date_begin . '"'
                        . ' AND '
                        . '"' . $date_end . '"' . ')');

                $gasto = 0;
                foreach($total_quadrante as $child) {
                        $gasto += $child['base_subtotal'];
                }

                $totals = Mage::getSingleton('checkout/session')->getQuote()->getTotals();
                $subtotal = $totals["subtotal"]->getValue(); //Subtotal value sem portes

                $max = (float)$this->_helper->getSingleOrderTopAmount();

                $max = $max+1; //+1 para ser possivel fazer compras até 60€ inclusive

                $restante = $max - $gasto; //valor disponivel para o cliente gastar nesse trimestre

                if ($subtotal > $restante) {
                        $formattedPrice = Mage::helper('core')->currency($this->_helper->getSingleOrderTopAmount(), true, false);
                        Mage::getSingleton('checkout/session')->addError(
                                $this->_helper->__($this->_helper->getSingleOrderTopAmountMsg(), $formattedPrice));

                        Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
                        Mage::app()->getResponse()->sendResponse();
                        exit;
                }
        }


até ai tudo bem, mas a partir do momento em que se está a aproximar do valor o botao de submeter compra quando se clica fica a pensar e não sai dali.

O que poderá ser ?

Viewing all articles
Browse latest Browse all 14700

Trending Articles