public function updateItemInCart(Varien_Event_Observer $observer)
 {
     if ($this->_isEnabled && $this->_email && Mage::getStoreConfig('sailthru/email/abandoned_cart')) {
         try {
             if ($hasChanges = $observer->getCart()->hasDataChanges()) {
                 $response = Mage::getModel('sailthruemail/client_purchase')->sendCart($observer->getCart()->getQuote(), $this->_email, 'updateItemInCart');
             }
         } catch (Exception $e) {
             Mage::logException($e);
         }
         return $this;
     }
 }
Ejemplo n.º 2
0
 public function initCart(Varien_Event_Observer $observer)
 {
     if (Mage::getStoreConfig('saferpaycw/general/cancel_existing_orders')) {
         $cart = $observer->getCart();
         $customer = Mage::getSingleton('customer/session')->getCustomer();
         $query = 'SELECT product_id FROM sales_flat_quote_item WHERE quote_id = ' . $cart->getQuote()->getId();
         $resource = Mage::getSingleton('core/resource');
         $conn = $resource->getConnection('core_read');
         $productIds = $conn->query($query)->fetchAll();
         $orders = Mage::getResourceModel('sales/order_collection')->addAttributeToSelect('*')->addAttributeToFilter('customer_id', $customer->getId())->addAttributeToFilter('status', Customweb_SaferpayCw_Model_Method::SAFERPAYCW_STATUS_PENDING)->load();
         if (count($orders) > 0 && count($productIds) > 0) {
             foreach ($productIds as $productId) {
                 $product = Mage::getModel('catalog/product')->load($productId);
                 if (!$product->isSalable()) {
                     foreach ($orders as $order) {
                         $order->cancel();
                         $order->setIsActive(0);
                         $order->addStatusToHistory(Customweb_SaferpayCw_Model_Method::SAFERPAYCW_STATUS_CANCELED, Mage::helper('SaferpayCw')->__('Order cancelled, because the customer was too long in the payment process of Saferpay.'));
                         $order->save();
                     }
                     break;
                 }
             }
         }
     }
 }
Ejemplo n.º 3
0
 public function updatedItemsQtyValidate(Varien_Event_Observer $observer)
 {
     if (!Mage::helper('aitunits')->getAvailableStores()) {
         return false;
     }
     /* {#AITOC_COMMENT_END#}
        $performer = Aitoc_Aitsys_Abstract_Service::get()->platform()->getModule('Aitoc_Aitunits')->getLicense()->getPerformer();
        $ruler = $performer->getRuler();
        $groupId = Mage::app()->getGroup()->getId();
        if(!in_array($groupId, $ruler->getAvailableStores()))
        {
            return false;
        }
        {#AITOC_COMMENT_START#} */
     $cart = $observer->getCart();
     $info = $observer->getInfo();
     foreach ($info as $itemId => $itemInfo) {
         if (!isset($itemInfo['qty'])) {
             continue;
         }
         $item = $cart->getQuote()->getItemById($itemId);
         $this->_summQty = $item->getQty();
         $item = Mage::helper('aitunits')->getValidProduct($item);
         if ($item->getProductType() == 'simple' || 'virtual' || 'configurable') {
             $this->_validateProduct($item, $itemInfo['qty']);
         }
     }
 }
Ejemplo n.º 4
0
 /**
  * Updates the stock quantity for the item in MongoDB.
  *
  * @param Varien_Event_Observer $event
  * @return Hackathon_MongoOrderTransactions_Model_Observer
  */
 public function checkoutCartSaveAfter(Varien_Event_Observer $observer)
 {
     $quote = $observer->getCart()->getQuote();
     $mongodb = Mage::getModel('hackathon_ordertransaction/mongo');
     $mongodb->loadQuote($quote->getId());
     $mongodb->setQuoteId($quote->getId());
     $mongodb->setItems(array());
     foreach ($quote->getAllItems() as $item) {
         $mongodb->addItem($item->getProductId(), $item->getQty());
     }
     $mongodb->saveQuote();
     return $this;
 }
 public function sendAbandonedCart(Varien_Event_Observer $observer)
 {
     $customer = $observer->getEvent()->getCustomer();
     if ($this->_isEnabled && $customer->getEmail()) {
         try {
             $cart = $observer->getCart();
             $response = Mage::getModel('sailthruemail/client_purchase_abandoned')->sendCart($cart, $customer->getEmail());
         } catch (Exception $e) {
             Mage::logException($e);
         }
     }
     return $this;
 }
Ejemplo n.º 6
0
 public function applyDiscounts(Varien_Event_Observer $observer)
 {
     foreach ($observer->getCart()->getQuote()->getAllVisibleItems() as $item) {
         if ($item->getParentItem()) {
             $item = $item->getParentItem();
         }
         // Discounted 25% off
         $percentDiscount = 0.25;
         // This makes sure the discount isn't applied over and over when refreshing
         $specialPrice = $item->getPrice() - $item->getPrice() * $percentDiscount;
         // Make sure we don't have a negative
         if ($specialPrice > 0) {
             $item->setCustomPrice($specialPrice);
             $item->setOriginalCustomPrice($specialPrice);
             $item->getProduct()->setIsSuperMode(true);
         }
     }
 }
Ejemplo n.º 7
0
 /**
  * Set available quantity to quote item
  *
  * @param Varien_Event_Observer $observer observed object
  */
 public function checkoutCartSaveBefore(Varien_Event_Observer $observer)
 {
     $model = Mage::getModel('catalog/product');
     $helper = Mage::helper('dailydeals');
     $cartItems = $observer->getCart()->getItems();
     foreach ($cartItems as $cartItem) {
         $product = $model->load($cartItem->getProductId());
         if ($helper->isDealEnabled($product)) {
             if ($product->getDealQty() < $cartItem->getQty()) {
                 $cartItem->setQty($product->getDealQty());
                 Mage::getSingleton('core/session')->addError($helper->__('Only ' . $product->getDealQty() . ' deal "' . $product->getName() . '" left.'));
             }
         }
     }
 }
Ejemplo n.º 8
0
 /** 
  * Check do not allow update quantity product gift
  * Event checkout_cart_update_items_after
  * @var items
  */
 public function checkoutCartProductUpdateAfter(Varien_Event_Observer $observer)
 {
     // Ensure cart is not empty.
     $session = Mage::getSingleton('checkout/session');
     $OriginSocialGiftIds = $session->getOriginSocialGiftIds() ? $session->getOriginSocialGiftIds() : array();
     $items = $observer->getCart()->getQuote()->getAllVisibleItems();
     foreach ($items as $item) {
         if ($item->getQty() > 1 && in_array($item->getProduct()->getId(), $OriginSocialGiftIds)) {
             $qty = "1";
             $item->setQty($qty);
             Mage::getSingleton('core/session')->addError(Mage::helper('mw_socialgift')->__('The quantity of Social Gift is limited. You can not update the quantity of gift greater than 1.'));
             $item->getProduct()->setIsSuperMode(TRUE);
         }
     }
 }
Ejemplo n.º 9
0
 public function updateCustomPrice(Varien_Event_Observer $observer)
 {
     $cart = $observer->getCart()->getQuote()->getAllVisibleItems();
     $this->updateCart($cart);
 }
Ejemplo n.º 10
0
 /**
  * Reset prices which have been overridden in the shopping cart.
  *
  * @param Varien_Event_Observer $observer
  */
 public function resetOverridingPrices(Varien_Event_Observer $observer)
 {
     if (Mage::helper('ddq')->isEnabled()) {
         // array of requested items (grouped products for example adds several items at the same time)
         $items = $observer->getCart()->getQuote()->getAllVisibleItems();
         if (count($items)) {
             foreach ($items as $item) {
                 if (!$item->getParentItem()) {
                     $item->setCustomPrice(null)->setOriginalCustomPrice(null);
                 }
             }
         }
     }
 }
Ejemplo n.º 11
0
 public function updateCart(Varien_Event_Observer $observer)
 {
     if (Mage::getStoreConfig('deals/general/enabled')) {
         $quote = $observer->getCart()->getQuote();
         $items = $quote->getAllVisibleItems();
         foreach ($items as $item) {
             if ($item->getParentItem()) {
                 $item = $item->getParentItem();
             }
             $productId = $item->getProductId();
             $qty = $item->getQty();
             $deal = Mage::getModel('deals/deals')->getCollection()->addFieldToFilter('product_id', $productId)->addFieldToFilter('status', 2)->getFirstItem();
             if ($deal->getId()) {
                 $dealQty = $deal->getMaxDealQty();
                 if ($dealQty != '') {
                     if ($qty > $dealQty) {
                         $price = $deal->getPrice();
                         $specialPrice = $deal->getSpecialPrice();
                         $dealPrice = $price - $specialPrice;
                         $price = $item->getProduct()->getFinalPrice() + $dealPrice;
                     } else {
                         $price = $deal->getSpecialPrice();
                     }
                     $item->setCustomPrice($price);
                     $item->setOriginalCustomPrice($price);
                     $item->getProduct()->setIsSuperMode(true);
                 }
             }
         }
     }
 }