Ejemplo n.º 1
0
 public function catalogProductPrepareSave(Varien_Event_Observer $observer)
 {
     if ($observer->getRequest()->getModuleName() == 'ampgrid') {
         $date = $observer->getProduct()->getData('created_at');
         $observer->getProduct()->setData('created_at', strtotime($date));
     }
 }
Ejemplo n.º 2
0
 public function salesQuoteItemSetCustomAttribute(Varien_Event_Observer $observer)
 {
     $item = $observer->getQuoteItem();
     $product = $observer->getProduct();
     $categories = $observer->getProduct()->getCategoryIds();
     //$item = Mage::getSingleton('checkout/session')->getQuote()->getItemByProduct($product);
     $price = $observer->getEvent()->getQuoteItem()->getPrice();
     $name = $observer->getEvent()->getQuoteItem()->getName();
     $qty = $observer->getEvent()->getQuoteItem()->getQty();
     $id = $observer->getEvent()->getQuoteItem()->getProductId();
     $sku = $observer->getEvent()->getQuoteItem()->getSku();
     $pid = Mage::getModel('catalog/product')->getResource()->getIdBySku($sku);
     $foundProduct = Mage::getModel('catalog/product')->load($pid);
     $price = $foundProduct->getPrice();
     $specialprice = $foundProduct->getSpecialPrice();
     $total_amount_setting = Mage::getStoreConfig('payumoneycharge/payumoneycharge_group/freeshippingtotal');
     $total_minimum_setting = Mage::getStoreConfig('payumoneycharge/payumoneycharge_group/minimumshippingamount');
     $total_each_setting = Mage::getStoreConfig('payumoneycharge/payumoneycharge_group/shipamounteach');
     /*if(in_array(165,$categories) || in_array(141,$categories))
     	{
     	$product = Mage::getSingleton('catalog/product')->load($id);
     	$moq = $product->getMinqtyforfreeshipping();
     	$shippingcost = $product->getShippingcost();	
     	$extraShippingCost = $moq - $qty * $shippingcost;
     	$item->setExtraShipping($extraShippingCost);
     	Mage::log("Bulk Shipping Charges:".$extraShippingCost);
     	}
     	else */
     if (in_array(154, $categories) || in_array(155, $categories) || in_array(156, $categories) || in_array(160, $categories) || in_array(163, $categories) || in_array(182, $categories) || in_array(188, $categories) || in_array(189, $categories) || in_array(180, $categories) || in_array(215, $categories)) {
         $product = Mage::getSingleton('catalog/product')->load($id);
         $shippingcost = $product->getShippingcost();
         $extraShippingCost = 0;
         $item->setExtraShipping($extraShippingCost);
         Mage::log("Civil Shipping Charges:" . $extraShippingCost);
     } else {
         if ($specialprice) {
             $row_total = $specialprice * $qty;
         } else {
             $row_total = $price * $qty;
         }
         if ($row_total >= 200) {
             if ($specialprice) {
                 $cartGrossTotal = $specialprice * $qty;
             } else {
                 $cartGrossTotal = $price * $qty;
             }
             $grand = $cartGrossTotal;
             $gtotal = (int) $grand / 100;
             $noofhun = (int) $gtotal - 1;
             $timesofhun = $total_minimum_setting + $noofhun * $total_each_setting;
         } else {
             $timesofhun = $total_minimum_setting;
         }
         $item->setShippingCost($timesofhun);
         Mage::log("Non Bulk Shipping Charges:" . $timesofhun);
         //Mage::log("Product Id:".$name);
         //Mage::log("Product Id:".$id);
     }
 }
Ejemplo n.º 3
0
 /**
  * Observer on payperrentals/inventory getquantity that removes quantity in maintenance from available quantity
  * We check both the quantity in the product EAV field maintenance_quantity and also
  * quantity that is under maintenance in a maintenance report when not using specific dates
  *
  * @param Varien_Event_Observer $observer
  */
 function removeMaintenanceFromGetQuantity(Varien_Event_Observer $observer)
 {
     $maintenanceQuantity = Mage::getResourceModel('catalog/product')->getAttributeRawValue($observer->getProduct(), 'maintenance_quantity', Mage::app()->getStore()->getStoreId());
     $maintenanceQuantityReports = Mage::helper('simaintenance')->getReportMaintenanceQuantity($observer->getProduct());
     $retQty = $observer->getResult()->getRetQty();
     $retQty = $retQty - ($maintenanceQuantity + $maintenanceQuantityReports);
     $observer->getResult()->setRetQty($retQty);
 }
 public function virtualZeroQty(Varien_Event_Observer $observer)
 {
     // the purpose is to set flag VirtualZeroQty to true if quantity less or equal 0 (and then use this flag in  the templates), by the client request in the #2014032010000224 ticket
     if ($observer->getProduct() && $observer->getProduct()->getTypeId() == 'virtual') {
         $_product = Mage::registry('product');
         if ($_product && $_product->getStockItem()->getManageStock() == 1 && $_product->getStockItem()->getQty() <= 0) {
             $observer->getProduct()->setVirtualZeroQty(true);
         }
     }
 }
Ejemplo n.º 5
0
 public function deleteImagesFromCloudinary(Varien_Event_Observer $event)
 {
     $cloudinaryImage = Mage::getModel('cloudinary_cloudinary/image');
     foreach ($this->_getImagesToDelete($event->getProduct()) as $image) {
         $cloudinaryImage->deleteImage($image['file']);
     }
 }
Ejemplo n.º 6
0
 /**
  * Creates two-way linking of related products after a product save, if
  * link data is available.
  *
  * @param Varien_Event_Observer $observer
  *
  * @return void
  */
 public function reverseLink($observer)
 {
     if (!Mage::helper('twowaylink')->isEnabled()) {
         return;
     }
     $product = $observer->getProduct();
     if (!$product) {
         return;
     }
     // Grab related product link data
     $relatedLinkData = $product->getRelatedLinkData();
     $relatedLinkData[$product->getId()] = array('position' => null);
     // Add back removed IDs so they can be removed in the loop
     if (!is_null($this->_idsToRemove) && !empty($this->_idsToRemove)) {
         $relatedLinkData += $this->_idsToRemove;
     }
     $relatedLinkData2 = $relatedLinkData;
     if (!empty($relatedLinkData)) {
         // For each of the products being assigned to $product, associate
         // each of the products to another (every possible combination).
         // Remove if it's appropriate.
         foreach ($relatedLinkData as $id => $position) {
             foreach ($relatedLinkData2 as $id2 => $position2) {
                 if ($id === $id2) {
                     continue;
                 }
                 if (isset($this->_idsToRemove[$id]) || isset($this->_idsToRemove[$id2])) {
                     Mage::getSingleton('twowaylink/link_api')->removeLink($id, $id2, Mage_Catalog_Model_Product_Link::LINK_TYPE_RELATED);
                 } else {
                     Mage::getSingleton('twowaylink/link_api')->createLink($id, $id2, Mage_Catalog_Model_Product_Link::LINK_TYPE_RELATED);
                 }
             }
         }
     }
 }
Ejemplo n.º 7
0
 /**
  * event: catalog_product_save_before
  *
  * @param Varien_Event_Observer $observer
  */
 public function handleMultipleQuantitiesPost(Varien_Event_Observer $observer)
 {
     if (!Mage::app()->getRequest()->isPost()) {
         return;
     }
     if (!isset($post['wgmulti_original_use_multiple_qty']) && !isset($post['wgmulti_use_multiple_qty'])) {
         return;
     }
     /** @var Mage_Catalog_Model_Product $product */
     $product = $observer->getProduct();
     $post = Mage::app()->getRequest()->getPost();
     // if multiple quantity was disabled
     if ($post['wgmulti_original_use_multiple_qty'] == 1 && $post['wgmulti_use_multiple_qty'] == 0) {
         Mage::getModel('wgmulti/warehouse_product')->getCollection()->addProductIdFilter($product->getId())->delete();
     }
     // if multiple quantity was enabled
     if ($post['wgmulti_use_multiple_qty'] == 1) {
         $totalQty = 0.0;
         foreach ($post['wgmultiqty'] as $warehouseId => $qty) {
             Mage::getModel('wgmulti/warehouse_product')->getCollection()->addWarehouseIdFilter($warehouseId)->addProductIdFilter($product->getId())->getFirstItem()->setWarehouseId($warehouseId)->setProductId($product->getId())->setQty($qty)->save();
             $totalQty += $qty;
         }
         $product->getStockItem()->setQty($totalQty);
     }
 }
Ejemplo n.º 8
0
 public function addedItemQtyValidate(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#} */
     $item = $observer->getProduct();
     $item = Mage::helper('aitunits')->getValidProduct($item);
     $params = Mage::app()->getRequest()->getParams();
     $itemType = $item->getTypeId();
     switch ($itemType) {
         case 'grouped':
             $products = $item->getTypeInstance(true)->getAssociatedProducts($item);
             $aProductQtys = $params['super_group'];
             foreach ($products as $product) {
                 $productQty = $aProductQtys[$product->getId()];
                 $this->_validateProduct($product, $productQty);
             }
             return;
         case 'simple' || 'virtual' || 'configurable':
             $itemQty = $params['qty'];
             $this->_validateProduct($item, $itemQty);
             return;
     }
 }
 /**
  * Clear the category list block for this product
  * 
  * @param Varien_Event_Observer $args
  */
 public function catalogProductSaveCommitAfter(Varien_Event_Observer $args)
 {
     $product = $args->getProduct();
     if ($product->getId()) {
         $tag = Mage_Catalog_Model_Product::CACHE_TAG . '_' . $product->getId();
         Mage::app()->cleanCache(array($tag));
     }
 }
Ejemplo n.º 10
0
 public function addToCartComplete(Varien_Event_Observer $observer)
 {
     if ($observer->getRequest()->getParam('return_url') || !Mage::getStoreConfig('suggestpage/general/show_after_addtocart')) {
         return;
     }
     if ($this->_isMobile() && !Mage::getStoreConfig('suggestpage/mobile/show_after_addtocart')) {
         return;
     }
     $observer->getResponse()->setRedirect(Mage::getUrl('suggest'));
     $session = Mage::getSingleton('checkout/session');
     $session->setNoCartRedirect(true);
     $session->setSuggestpageProductId($observer->getProduct()->getId());
     $session->setViewCartUrl(Mage::getUrl('suggest'));
     //ajaxpro integration
     $message = Mage::helper('checkout')->__('%s was added to your shopping cart.', Mage::helper('core')->htmlEscape($observer->getProduct()->getName()));
     $session->addSuccess($message);
 }
 public function catalogProductSaveBefore(Varien_Event_Observer $observer)
 {
     /** @var Mage_Catalog_Model_Product $product */
     $product = $observer->getProduct();
     $attributeSetId = $product->getAttributeSetId();
     $product->setAttributeSetFilter($attributeSetId);
     return $this;
 }
Ejemplo n.º 12
0
 /**
  * Add default ddq data to loaded product record.
  *
  * @param Varien_Event_Observer $observer
  */
 public function addDefaultDdqValues(Varien_Event_Observer $observer)
 {
     if ($this->_getHelper()->isEnabled()) {
         // we need to assign this to a variable in order to pass it as a reference to assignDefaultProductData
         $product = $observer->getProduct();
         $this->_getHelper()->assignDefaultProductData($product);
     }
 }
 public function productAfterLoad(Varien_Event_Observer $observer)
 {
     /**
      * @var Mage_Catalog_Model_Product | null
      */
     $product = $observer->getProduct();
     $product->setName($product->getName() . " - fcku yeah!!!");
 }
Ejemplo n.º 14
0
 /**
  * When added/update a product
  * @param Varien_Event_Observer $observer
  */
 public function productAddUpdate($observer)
 {
     if ($this->autoIndex) {
         $product = $observer->getProduct();
         $store_id = Mage::app()->getRequest()->getParam('store');
         $this->updateSolrIndex($product->getId(), $store_id);
     }
 }
Ejemplo n.º 15
0
 /**
  * "Unload" a loaded product if the customer is not allowed to view it
  *
  * @param Varien_Event_Observer $observer
  * @return void
  */
 public function catalogProductLoadAfter(Varien_Event_Observer $observer)
 {
     $product = $observer->getProduct();
     $this->_applyGroupsCatalogSettingsToEntity($product);
     if ($product->getData('forbidden_by_groupscatalog2')) {
         $this->_applyHiddenEntityHandling(Mage_Catalog_Model_Product::ENTITY);
     }
 }
Ejemplo n.º 16
0
 public function catalogProductLoadBefore(Varien_Event_Observer $observer)
 {
     $action = Mage::app()->getFrontController()->getAction();
     if ($cpid = $action->getRequest()->getParam('cpid')) {
         $product = $observer->getProduct();
         $product->setCpid($cpid);
         $product->addCustomOption('cpid', $cpid);
     }
 }
Ejemplo n.º 17
0
 /**
  * @param Varien_Event_Observer $observer
  * @var item
  */
 public function applyDiscount(Varien_Event_Observer $observer)
 {
     $this->checkEmptyCart();
     $params = Mage::app()->getRequest()->getParams();
     $socialgift = isset($params['socialgift']) ? $params['socialgift'] : 0;
     $rule_id = isset($params['rule']) ? $params['rule'] : 0;
     /* check product id in social gift list */
     $session = Mage::getSingleton('checkout/session');
     $SocialGiftIds = $session->getSocialGiftIds() ? $session->getSocialGiftIds() : array();
     $item = $observer->getQuoteItem();
     $product_add_id = $item->getProduct()->getId();
     // check to add to cart this product social gift.
     if ($socialgift == 1 && in_array($product_add_id, $SocialGiftIds) && $rule_id > 0) {
         $ruleData = Mage::helper('mw_socialgift')->getRuleDataById($rule_id);
         // limit product with rule:
         if ($session->getNumberSocialGiftRule()) {
             $session->setNumberSocialGiftRule($ruleData['number_of_free_gift']);
         }
         $number_social_gift = $session->getNumberSocialGift();
         if (isset($number_social_gift) && $number_social_gift >= 0 && $number_social_gift < $ruleData['number_of_free_gift']) {
             $can_add_to_cart = TRUE;
         } else {
             $can_add_to_cart = FALSE;
         }
         $totalItemsInCart = Mage::helper('checkout/cart')->getItemsCount();
         if ($totalItemsInCart > 0 && $can_add_to_cart === TRUE) {
             $number_social_gift++;
             $session->setNumberSocialGift($number_social_gift);
             // Ensure we have the parent item, if it has one
             $item = $item->getParentItem() ? $item->getParentItem() : $item;
             // Load the custom price
             $ruleAmount = $ruleData['discount_amount'];
             $simple_action = $ruleData['simple_action'];
             $price = $this->_getPriceByItem($item->getProduct()->getPrice(), $ruleAmount, $simple_action);
             $qty = "1";
             // Set the custom price
             $item->setQty($qty);
             $item->setCustomPrice($price);
             $item->setOriginalCustomPrice($price);
             // add custom data option
             $SocialProductShared = $session->getSocialProductShared();
             $cart = Mage::getSingleton('checkout/cart');
             // $options = $item->getProduct()->getTypeInstance(TRUE)->getOrderOptions($item->getProduct());
             $infoRequest = unserialize($item->getOptionByCode('info_buyRequest')->getValue());
             $infoRequest['option'] = serialize(array('label' => Mage::helper('mw_socialgift')->__('Social Sharing Gift'), 'value' => $ruleData['name'], 'shared_by' => end($SocialProductShared)));
             $_options = array(array('label' => Mage::helper('mw_socialgift')->__('Social Sharing Gift'), 'value' => $ruleData['name'], 'print_value' => $ruleData['name'], 'option_type' => 'text', 'custom_view' => TRUE));
             $item->addOption(array('code' => 'additional_options', 'value' => serialize($_options)));
             $item->getOptionByCode('info_buyRequest')->setValue(serialize($infoRequest));
             $observer->getProduct()->addCustomOption('additional_options', serialize($_options));
             $item->getProduct()->setIsSuperMode(TRUE);
             $item->getQuote()->save();
             $cart->save();
             $this->updateListGift($product_add_id, 'remove');
         }
     }
 }
Ejemplo n.º 18
0
 /**
  * Output notice in catalog_product
  *
  * @param Varien_Event_Observer $observer observed object
  *
  * @return Mage_Core_Model_Session_Abstract
  */
 public function catalogProductEditFormRenderRecurring(Varien_Event_Observer $observer)
 {
     $product = $observer->getProduct();
     if ($product->getDealStatuses() == 'running' || $product->getDealStatuses() == 'automatically') {
         if ($product->getOldSpecialDateFrom() || $product->getOldSpecialDateTo() || $product->getOldSpecialPrice() != '-') {
             return Mage::getSingleton('adminhtml/session')->addNotice('Now activated the "Daily Deals" for this product. While it is activated you can not use standard special price. When "Daily Deals" will end will be returned your special data: <br/>special price: ' . $product->getOldSpecialPrice() . ' <br/>special date from: ' . $product->getOldSpecialDateFrom() . ' <br/>special date to: ' . $product->getOldSpecialDateTo());
         }
         return Mage::getSingleton('adminhtml/session')->addNotice('Now activated the "Daily Deals" for this product. While it is activated you can not use standard special price.');
     }
 }
 public function updatePurchasedOrders(Varien_Event_Observer $observer)
 {
     $product = $observer->getProduct();
     if ('downloadable' == $product->getTypeId()) {
         $orderItems = Mage::getModel('sales/order_item')->getCollection()->addFieldToFilter('product_id', $product->getId());
         foreach ($_POST['downloadable']['link'] as $link) {
             $linkId = $link['link_id'];
             $file = json_decode($link['file']);
             $fileStatus = $file[0]->status;
             // $link['link_id'] -> means the new file was added
             if ('0' == $linkId && $product->getLinksPurchasedSeparately() != 1) {
                 // This is a new file being added.  Insert a record into downloadable_link_purchased_item for each customer that has purchased this item.
                 try {
                     foreach ($orderItems as $orderItem) {
                         $order = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('entity_id', $orderItem->getOrderId())->getFirstItem();
                         $downloadPurchase = Mage::getModel('downloadable/link_purchased')->setOrderId($orderItem->getOrderId())->setOrderIncrementId($order->getIncrementId())->setOrderItemId($orderItem->getId())->setCreatedAt(date('Y-m-d H:i:s'))->setUpdatedAt(date('Y-m-d H:i:s'))->setCustomerId($order->getCustomerId())->setProductName($product->getName())->setProductSku($product->getSku())->setLinkSectionTitle('Links');
                         $downloadPurchase->save();
                         // linkId was already created and we need to get it to set up in our new order
                         $linkId = 0;
                         $allProductLinks = Mage::getModel('downloadable/product_type')->getLinks($product);
                         foreach ($allProductLinks as $key => $productLink) {
                             if ($productLink->getTitle() == $link['title']) {
                                 $linkId = $key;
                                 break;
                             }
                         }
                         //line from /app/code/core/Mage/Downloadable/sql/downloadable_setup/mysql4-upgrade-0.1.12-0.1.13.php
                         //strtr(base64_encode(microtime() . $row['purchased_id'] . $row['order_item_id'] . $row['product_id']), '+/=', '-_,')
                         $linkHash = strtr(base64_encode(microtime() . $downloadPurchase->getId() . $orderItem->getId() . $product->getId()), '+/=', '-_,');
                         $downloadItem = Mage::getModel('downloadable/link_purchased_item')->setProductId($product->getId())->setNumberOfDownloadsBought($link['number_of_downloads'])->setNumberOfDownloadsUsed(0)->setLinkTitle($link['title'])->setIsShareable($link['is_shareable'])->setLinkId($linkId)->setLinkFile($file[0]->file)->setLinkType('file')->setStatus('available')->setCreatedAt(date('Y-m-d H:i:s'))->setUpdatedAt(date('Y-m-d H:i:s'))->setLinkHash($linkHash)->setOrderItemId($orderItem->getId())->setPurchasedId($downloadPurchase->getId());
                         $downloadItem->save();
                     }
                 } catch (Mage_Core_Exception $e) {
                     Mage::getSingleton('adminhtml/session')->addError(Mage::helper('downloadable')->__('An error occurred in Gorilla_AllDownloadableFiles_Model_Observer.'));
                 }
             } elseif ($fileStatus == 'new') {
                 // the new PDF file was uploaded to existed Link
                 $purchasedItemCollection = Mage::getModel('downloadable/link_purchased_item')->getCollection()->addFieldToFilter('product_id', $product->getId())->addFieldToFilter('link_id', $linkId)->addFieldToFilter('order_item_id', array('notnull' => true));
                 try {
                     foreach ($purchasedItemCollection as $purchasedItem) {
                         if ($purchasedItem->getLinkFile() == $file[0]->file) {
                             continue;
                         }
                         $purchasedItem->setLinkFile($file[0]->file);
                         $purchasedItem->save();
                     }
                 } catch (Mage_Core_Exception $e) {
                     Mage::getSingleton('adminhtml/session')->addError(Mage::helper('downloadable')->__('An error occurred in Gorilla_AllDownloadableFiles_Model_Observer.'));
                 }
             }
         }
     }
 }
Ejemplo n.º 20
0
 /**
  * @param Varien_Event_Observer $observer
  * @throws Mage_Core_Exception
  */
 protected function _checkItemsLimitPerProduct(Varien_Event_Observer $observer)
 {
     $maxItemsPerProduct = Mage::getStoreConfig('checkout/options/max_per_product_cart_qty');
     /** @noinspection PhpUndefinedMethodInspection */
     $productId = $observer->getProduct()->getEntityId();
     /** @var Mage_Sales_Model_Quote_Item $quoteItem */
     foreach ($this->_getQuoteItems() as $quoteItem) {
         if ($quoteItem->getProductId() === $productId && $quoteItem->getQty() > $maxItemsPerProduct) {
             Mage::throwException(Mage::helper('eeree_oneproductatatime')->__('You can not add any more products of this type to your cart. Max of %d has been reached', $maxItemsPerProduct));
         }
     }
 }
Ejemplo n.º 21
0
 /**
  * Delete product in Gemgento
  *
  * @param \Varien_Event_Observer $observer
  */
 public function product_delete($observer)
 {
     $product = $observer->getProduct();
     $stores = $this->gemgento_product_stores($product);
     if (sizeof($stores) > 0) {
         $data = array('product_id' => $product->getId(), 'gemgento_id' => $product->getGemgentoId());
         $id = $data['gemgento_id'];
         if ($id == NULL || $id == '') {
             $id = 0;
         }
         self::push('DELETE', 'products', $id, $data);
     } else {
         // Mage::log('PRODUCT IS NOT ACTIVATED FOR GEMGENTO: Product delete not pushed.');
     }
 }
Ejemplo n.º 22
0
 /**
  * This method will handle magento catalog_product_delete_after_done event for terapeak salesanalytics product selling data update
  * @param Varien_Event_Observer $observer
  *
  */
 public function catalogProductDeleteAfterDone(Varien_Event_Observer $observer)
 {
     $prodList = Mage::getModel('terapeak_salesanalytics/request_prodlist');
     $session = Mage::helper('salesanalytics/transport_user')->getAdminSession(NULL);
     if (!is_null($session) && !empty($session)) {
         $storeId = Mage::app()->getStore()->getStoreId();
         $channelInfo = Mage::helper('salesanalytics/transport_channel')->getLinkedMagentoChannelInfo($storeId);
         $channelId = $channelInfo['magentoChannelId'];
         $sellerName = $channelInfo['magentoSellerName'];
         $prodList->setSellerHandle($sellerName);
         $prodList->setState('Inactive');
         $data = $prodList->addListing($observer->getProduct());
         $transport = Mage::helper('salesanalytics/transport_product')->callToListingNotificationEndpoint($session, $data, $channelId);
     }
 }
 public function catalogProductDeleteCommitAfter(Varien_Event_Observer $observer)
 {
     $product = $observer->getProduct();
     $product_id = $product->getId();
     if ($product_id) {
         $media_post = $product->getMediaGallery();
         $media_post = @$media_post["images"];
         if (is_array($media_post)) {
             foreach ($media_post as $image) {
                 $image = $image["file"];
                 $image = Mage::getBaseDir('media') . "/catalog/product{$image}";
                 unlink($image);
             }
         }
     }
 }
Ejemplo n.º 24
0
 public function smashit(Varien_Event_Observer $observer)
 {
     if (Mage::getStoreConfig('imagesmashit/setting/enable')) {
         $ProductImageDir = Mage::getBaseDir('media') . DS . 'catalog' . DS . 'product';
         $productMediaGallery = $observer->getProduct()->getMediaGallery();
         $images = $productMediaGallery['images'];
         foreach ($images as $image) {
             $pImage = $ProductImageDir . $image['file'];
             $default = new SmushIt($pImage, SmushIt::KEEP_ERRORS);
             $error = $default->error;
             $src = pathinfo($default->source, PATHINFO_EXTENSION);
             $dst = pathinfo($default->destination, PATHINFO_EXTENSION);
             if ($src == $dst and is_null($error) and copy($default->destination, $default->source)) {
                 Mage::log($default, null, 'imagesmushit.log');
             }
         }
     }
 }
 /**
  * Track newly added catalog products
  *
  * @param Varien_Event_Observer $observer
  * @return null
  */
 public function trackNewProduct(Varien_Event_Observer $observer)
 {
     $helper = Mage::helper('totango');
     $helper->log('Track new catalog product, Start...');
     if (!$helper->isEnabled()) {
         return;
     }
     if ($helper->isTrackerEnabled('product')) {
         $product = $observer->getProduct();
         $isProduct = Mage::getModel('catalog/product')->getCollection()->addFieldToFilter('entity_id', $product->getId())->setPageSize(1)->getItems();
         if (!$isProduct) {
             $productsCount = Mage::getModel('catalog/product')->getCollection()->getSize();
             $helper->track(array('user-activity' => array('action' => 'NewProduct', 'module' => 'Catalog'), 'account-attribute' => array('Number of Catalog Products' => $productsCount + 1)));
         } else {
             $helper->log(array('message' => 'Not a new catalog product!', 'level' => 5));
         }
     }
 }
Ejemplo n.º 26
0
 /**
  * Delete option images 
  * 
  * @event catalog_product_delete_after_done
  * @param Varien_Event_Observer $observer
  */
 public function deleteOptionImages($observer)
 {
     try {
         $product = $observer->getProduct();
         if ($product->getId()) {
             $collection = Mage::getModel('aydus_customconfigurable/optionimage')->getCollection();
             $collection->addFieldToFilter('product_id', $product->getId());
             if ($collection->getSize() > 0) {
                 foreach ($collection as $optionImage) {
                     $optionImage->delete();
                 }
             }
         }
     } catch (Exception $e) {
         Mage::log($e->getMessage(), null, 'aydus_customconfigurable.log');
     }
     return $this;
 }
Ejemplo n.º 27
0
 public function saveProductFiles(Varien_Event_Observer $observer)
 {
     $product = $observer->getProduct();
     $ids = $product->getDownloadsFilesIds();
     $productId = $product->getId();
     $relation = Mage::getSingleton('downloads/relation');
     if ($productId && Mage::app()->getRequest()->getActionName() == 'save') {
         $relation->getResource()->deleteFilesProduct($productId);
     }
     if ($ids && $productId) {
         $ids = explode(',', $ids);
         $ids = array_unique($ids);
         foreach ($ids as $fileId) {
             $relation->setData(array('file_id' => $fileId, 'product_id' => $productId));
             $relation->save();
         }
     }
 }
 /**
  * Applies the tier pricing structure across different variants of configurable products.
  *
  * @param Varien_Event_Observer $observer
  *
  * @return Spranks_ConfigurableTierPrices_Model_Observer
  */
 public function catalogProductGetFinalPrice(Varien_Event_Observer $observer)
 {
     $product = $observer->getProduct();
     if (!Mage::helper('spranks_configurabletierprices')->isExtensionEnabled() || Mage::helper('spranks_configurabletierprices')->isProductInDisabledCategory($product) || Mage::helper('spranks_configurabletierprices')->isExtensionDisabledForProduct($product)) {
         return $this;
     }
     // do not calculate tier prices based on cart items on product page
     // see https://github.com/sprankhub/Spranks_ConfigurableTierPrices/issues/14
     if (Mage::registry('current_product') || !$product->isConfigurable()) {
         return $this;
     }
     // if tier prices are defined, also adapt them to configurable products
     if ($product->getTierPriceCount() > 0) {
         $tierPrice = $this->_calcConfigProductTierPricing($product);
         if ($tierPrice < $product->getData('final_price')) {
             $product->setData('final_price', $tierPrice);
         }
     }
     return $this;
 }
Ejemplo n.º 29
0
 /**
  * Tracking of single product click
  *
  * @param \Varien_Event_Observer $observer
  *
  * @internal param $product
  */
 public function sendClickTrackingForRedirectOnSingleResult(Varien_Event_Observer $observer)
 {
     $product = $observer->getProduct();
     $searchHelper = Mage::helper('factfinder/search');
     if (!Mage::getStoreConfig('factfinder/export/clicktracking') || !Mage::helper('factfinder')->isEnabled('tracking')) {
         return;
     }
     try {
         $idFieldName = Mage::helper('factfinder_tracking')->getIdFieldName();
         $customerId = Mage::getSingleton('customer/session')->getCustomer()->getId();
         if ($customerId) {
             $customerId = md5('customer_' . $customerId);
         }
         /** @var FACTFinder_Tracking_Model_Handler_Tracking $tracking */
         $tracking = Mage::getModel('factfinder_tracking/handler_tracking');
         $tracking->trackClick($product->getData($idFieldName), $searchHelper->getQuery()->getQueryText(), 1, $product->getData($idFieldName), Mage::helper('factfinder_tracking')->getSessionId(), null, 1, 1, $product->getSimilarity(), $product->getName(), $searchHelper->getPageLimit(), $searchHelper->getDefaultPerPageValue(), $customerId);
     } catch (Exception $e) {
         Mage::helper('factfinder/debug')->log($e->getMessage());
     }
 }
 public function autoBuyPromotions(Varien_Event_Observer $observer)
 {
     $quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
     $quote = Mage::getSingleton('sales/quote')->load($quoteId);
     $rules = Mage::getResourceModel('salesrule/rule_collection')->setValidationFilter(Mage::app()->getStore()->getWebsiteId(), $quote->getCustomerGroupId())->addAutoBuyPromotionFilter()->load();
     if ($rules->count() < 1) {
         return;
     }
     foreach ($rules as $rule) {
         $rule->afterLoad();
     }
     $fakeQuote = clone $quote;
     $fakeQuote->setId(null);
     $product = Mage::getModel('catalog/product')->load($observer->getProduct()->getId());
     $item = Mage::getModel('sales/quote_item')->setQuote($fakeQuote)->setProduct($product);
     $item->setAllItems(array($product));
     $item->getProduct()->setProductId($product->getEntityId());
     $item->setQty(1);
     $item->getQuote()->setData('items_collection', array($item));
     $addProductsToCart = array();
     foreach ($rules as $rule) {
         if ($rule->getIsActive()) {
             if ($rule->getConditions()->validate($item)) {
                 foreach ($rule->getProductId() as $productId) {
                     $cartProduct = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($productId);
                     if ($cartProduct->isAvailable()) {
                         $addProductsToCart[] = $cartProduct;
                     }
                 }
             }
         }
     }
     if (!empty($addProductsToCart)) {
         foreach ($addProductsToCart as $cartProduct) {
             $quote->addProduct($cartProduct);
         }
         $quote->collectTotals()->save();
     }
 }