Monday, December 12, 2011

Redirecting the page In magento

If your are redirect in controller page use this code






 $this->_redirect('checkout/cart/');




id your redirecting other the controller like model, etc use this code




Mage::app()->getResponse()->setRedirect(Mage::getUrl("checkout/cart/"));

Friday, December 2, 2011

Avoid fraud from editing payment method through fire bug to free in magneto

Hi,

Today i come across one fraud in magneto checkout page

some user can edit payment method to free payment through fire bug and if submit order it will submit and place order

we can avoid this thing

just edit code or extend this model in your local folder in Mage_Sales_Model_Service_Quote i’e

app\code\core\Mage\Sales\Model\Service\Quote.php

in function _validate() add this code (around 293 )






//pradeep to avoid foud from select free in fire bug
            $qu=Mage::getModel('sales/quote')->load($this->getQuote()->getId());
            if($qu->getPayment()->getMethod()=='free' && $qu->getGrandTotal()!=0){
                Mage::throwException($helper->__('Invalid payment method'));
            }




so it will avoid placing order even if the subtotal is not zero in magneto

Thursday, December 1, 2011

Sending email with attachment in magento programmatically

Hi,

we can send custom email with attachment in magneto

i am sending email acc to date of orders. this email contain 2 csv file of both pending and invoiced orders

create a email template system->Transactional Emails

i’e


Template Name :-  Daily Order Reports
Template Subject :- {{var subject}}

Template Content
Hi
<p>
Please check attached csv  file  of  {{var subject}}
</p> 



save it u will get email Template id once u save this email

create one file in root folder of project paste this below code and save it


<?php
 define('MAGENTO', realpath(dirname(__FILE__)));
 require_once MAGENTO . '/../app/Mage.php';
 Mage::app();
 $storename='default';
 $string="sku,alu,name,qty,mrp,sold price,size,color,final price\n"; 
 function add_dateAction($givendate,$day=0,$mth=0,$yr=0,$hr=0,$min=0,$sec=0) {
  $cd = strtotime($givendate);
  $newdate = date('Y-m-d H:i:s', mktime(0+$hr,
     0+$min, 0+$sec, date('m',$cd)+$mth,
     date('d',$cd)+$day, date('Y',$cd)+$yr));
  return $newdate;
 }

  $from=add_dateAction(now(),-1,0,0);
  $report_date=date("d_M_y", mktime(0, 0, 0, date("m"),date("d")-1,date("Y")));
  echo 'Report On '.$report_date.'<br />';
  $to= add_dateAction(now(),-1,0,0,23,59,59);
  $orderCollection = Mage::getResourceModel('sales/order_collection');
  $orderCollection->addFieldToFilter('status', array('eq'=>'pending'))->addAttributeToSelect('entity_id');
  $orderCollection->getSelect()  
      ->where("main_table.created_at BETWEEN '".$from."' AND '".$to."'");
   // $orderCollection->printlogquery(true); exit;
  $i=0;
  foreach($orderCollection->getItems() as $order){
            $orderModel = Mage::getModel('sales/order');
            $orderModel->load($order['entity_id']);
   $i++;
         //echo $orderModel->getIncrementId().', '.$orderModel->getPayment()->getMethod().'<br />';
 
    foreach ($orderModel->getAllItems() as $_product) {
    $_loadedprod=Mage::getModel('catalog/product')->load($_product->getData('product_id'));
   $size=Mage::getModel('catalog/product')
                            ->load($_loadedprod->getId())
                            ->getAttributeText('size');
   $color=Mage::getModel('catalog/product')
                            ->load($_loadedprod->getId())
                            ->getAttributeText('color');
  
    $string .= $_product->getSku() . ',' .$_loadedprod->getData('alu') . ',' . $_product->getData('name') . ',' .$_product->getData('qty_ordered').  ',' .$_product->getData('orginal_mrp').  ',' .$_product->getData('original_price'). ',' .$size . ',' .$color . ',' .$_product->getData('base_row_total_incl_tax') . "\n";
        
            }
   
   
 
        }
  echo 'Total Pending orders:-'.$i.'<br />';
  
  //Invoice Order Report
  
  
 $string2="sku,alu,name,qty,mrp,sold price,size,color,final price\n";
   $orderCollection = Mage::getResourceModel('sales/order_invoice_collection')->addAttributeToSelect('entity_id');
  //$orderCollection->addFieldToFilter('status', array('eq'=>'pending'));
  $orderCollection->getSelect()       
      ->where("main_table.created_at BETWEEN '".$from."' AND '".$to."'");
   // $orderCollection->printlogquery(true); exit;
  $i=0;
  foreach($orderCollection->getItems() as $order){
 
            
   $i++;
         //echo $orderModel->getIncrementId().', '.$orderModel->getPayment()->getMethod().'<br />';
 
    foreach ($order->getAllItems() as $_product) {
   $orderitem=Mage::getModel('sales/order_item')->load($_product->getData('order_item_id'));
  
    $_loadedprod=Mage::getModel('catalog/product')->load($_product->getData('product_id'));
   $size=Mage::getModel('catalog/product')
                            ->load($_loadedprod->getId())
                            ->getAttributeText('size');
   $color=Mage::getModel('catalog/product')
                            ->load($_loadedprod->getId())
                            ->getAttributeText('color');
    $string2 .= $_product->getSku() . ',' .$_loadedprod->getData('alu') . ',' . $_product->getData('name') . ',' .$_product->getQty().  ',' .$orderitem->getOrginalMrp().  ',' .$_product->getPrice(). ',' .$size . ',' .$color . ',' .$_product->getData('base_row_total_incl_tax') . "\n";
        
            }
   
   
 
        }
  
 
  echo 'Total inviced orders:-'.$i.'<br />';
  
  
  
  
  $templateId =6;
   // Set sender information
  $senderName = 'report '; // Mage::getStoreConfig('trans_email/ident_support/name');
  $senderEmail = Mage::getStoreConfig('trans_email/ident_support/email');
  //$size = $this->getRequest()->getParam('size');
  $sender = array('name' => $senderName,
                'email' => $senderEmail);
 
  // Set recepient information
  $recepientEmail = 'youremail@doine.com'; //Mage::getStoreConfig('trans_email/ident_support/email'); //email from support admin side
  $recepientName =    'pradeep';     
 
  // Get Store ID
  $store = Mage::app()->getStore()->getId();
 
  // Set variables that can be used in email template
  $vars = array('subject' =>  'Daily Order Report 0n '.date("M d Y", mktime(0, 0, 0, date("m"),date("d")-1,date("Y"))));
  
  $translate  = Mage::getSingleton('core/translate');
  $transactionalEmail = Mage::getModel('core/email_template')->setDesignConfig(array('area'=>'frontend', 'store'=>1));
  $transactionalEmail->getMail()->createAttachment($string,'text/UTF-8')->filename = 'pending_orders_'.$report_date.'.csv';
  $transactionalEmail->getMail()->createAttachment($string2,'text/UTF-8')->filename = 'invoiced_orders_'.$report_date.'.csv';
  if($transactionalEmail->sendTransactional($templateId, $sender, $recepientEmail, "Admin", $vars)) {
   echo 'mail sent';
  //$this->getResponse()->setRedirect($url);
  }else{
          echo 'mail not sent';
        }
  
?>

Creating xml file of all products fields in magento programmatically

Hi,

below code is used to create a xml file of all product for some 3ed party site
place this code in magento project root folder






<?php
 define('MAGENTO', realpath(dirname(__FILE__)));
 require_once MAGENTO . '/app/Mage.php';
 Mage::app();
 $storename='default';
 $file = "products_xml.xml";
if (file_exists($file)) { unlink ($file); }
 
?>


    <?php


$products = Mage::getModel('catalog/product')
   ->getCollection()
   ->addAttributeToSelect('*')
   ->addAttributeToFilter('status', array('eq' => '1'))
   ->addAttributeToFilter('type_id', array('eq' => 'simple'));

//process your product collection as per your bussiness logic


  $doc = new DOMDocument();
  $doc->formatOutput = true;
  
  $productsX = $doc->createElement( "products" );
  $doc->appendChild( $productsX );
  
foreach($products as $_product){
//print_r($_product->getData()); exit;
 /*echo $_product->getSku().'</br>';
 echo $_product->getName().'</br>';
 echo $_product->getData('image').'</br>';
 echo $_product->getData('small_image').'</br>';
 echo $_product->getData('thumbnail').'</br>'; 
 echo $_product->getData("url_key").'</br>';
 echo $_product->getShippingDelivery().'</br>';
 echo $_product->getShippingWeight() .'</br>';
 echo $_product->getAlu().'</br>'; 
 echo $_product->getUpsize().'</br>';
 echo $_product->getPrice().'</br>';
 echo $_product->getSpecialPrice().'</br>'; 
 echo $_product->getResource()->getAttribute('color')->getFrontend()->getValue($_product).'</br>'; 
 echo $_product->getResource()->getAttribute('status')->getFrontend()->getValue($_product).'</br>'; 
 echo $_product->getResource()->getAttribute('gender')->getFrontend()->getValue($_product).'</br>'; 
 echo $_product->getResource()->getAttribute('size')->getFrontend()->getValue($_product).'</br>';
 echo $_product->getResource()->getAttribute('season')->getFrontend()->getValue($_product).'</br>';
 echo $_product->getDescription().'</br>';
 echo Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty().'</br>'; 
 echo Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getIsInStock().'</br>';
 exit; */
 $product = $doc->createElement( "product" );
  
 $sku = $doc->createElement( "sku" );
 $sku->appendChild(
  $doc->createTextNode($_product->getSku())
 );
 $product->appendChild( $sku );
  
 $name = $doc->createElement( "name" );
 $name->appendChild(
  $doc->createTextNode( trim($_product->getName()) )
 );
 $product->appendChild( $name );
  
 $image = $doc->createElement( "image" );
 $image->appendChild(
  $doc->createTextNode( trim($_product->getData('image')) )
 );
 $product->appendChild( $image );
  
 $smallimage = $doc->createElement( "smallimage" );
 $smallimage->appendChild(
  $doc->createTextNode( trim($_product->getData('small_image')) )
 );
 $product->appendChild( $smallimage );
  
 $thumbnail = $doc->createElement( "thumbnail" );
 $thumbnail->appendChild(
  $doc->createTextNode( trim($_product->getData('thumbnail')) )
 );
 $product->appendChild( $thumbnail );
  
 $urlkey = $doc->createElement( "urlkey" );
 $urlkey->appendChild(
  $doc->createTextNode( trim($_product->getData('url_key')) )
 );
 $product->appendChild( $urlkey );
  
 $shippingdelivery = $doc->createElement( "shippingdelivery" );
 $shippingdelivery->appendChild(
  $doc->createTextNode( trim($_product->getShippingDelivery()) )
 );
 $product->appendChild( $shippingdelivery );
  
 $shippingweight = $doc->createElement( "shippingweight" );
 $shippingweight->appendChild(
  $doc->createTextNode( trim($_product->getShippingWeight()) )
 );
 $product->appendChild( $shippingweight );
  
 $alu = $doc->createElement( "alu" );
 $alu->appendChild(
  $doc->createTextNode( trim($_product->getAlu()) )
 );
 $product->appendChild( $alu );
  
 $upsize = $doc->createElement( "upsize" );
 $upsize->appendChild(
  $doc->createTextNode( trim($_product->getUpsize()) )
 );
 $product->appendChild( $upsize );
  
 $price = $doc->createElement( "price" );
 $price->appendChild(
  $doc->createTextNode( trim($_product->getPrice()) )
 );
 $product->appendChild( $price );
  
 $specialprice = $doc->createElement( "specialprice" );
 $specialprice->appendChild(
  $doc->createTextNode( trim($_product->getSpecialPrice()) )
 );
 $product->appendChild( $specialprice );
  
 $color = $doc->createElement( "color" );
 $color->appendChild(
  $doc->createTextNode( trim($_product->getResource()->getAttribute('color')->getFrontend()->getValue($_product)))
 );
 $product->appendChild( $color );
  
 $status = $doc->createElement( "status" );
 $status->appendChild(
  $doc->createTextNode( trim($_product->getResource()->getAttribute('status')->getFrontend()->getValue($_product)) )
 );
 $product->appendChild( $status );
  
 $gender = $doc->createElement( "gender" );
 $gender->appendChild(
  $doc->createTextNode( trim($_product->getResource()->getAttribute('gender')->getFrontend()->getValue($_product)) )
 );
 $product->appendChild( $gender );
  
 $size = $doc->createElement( "size" );
 $size->appendChild(
  $doc->createTextNode( trim($_product->getResource()->getAttribute('size')->getFrontend()->getValue($_product)) )
 );
 $product->appendChild( $size );
  
 $season = $doc->createElement( "season" );
 $season->appendChild(
  $doc->createTextNode( trim($_product->getResource()->getAttribute('season')->getFrontend()->getValue($_product)) )
 );
 $product->appendChild( $season );
  
 $description = $doc->createElement( "description" );
 $description->appendChild(
  $doc->createTextNode( trim($_product->getDescription()) )
 );
 $product->appendChild( $description );
  
 $qty = $doc->createElement( "qty" );
 $qty->appendChild(
  $doc->createTextNode( trim(Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty()) )
 );
 $product->appendChild( $qty );
  
 $availability = $doc->createElement( "availability" );
 $availability->appendChild(
  $doc->createTextNode( trim(Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getIsInStock()) )
 );
 $product->appendChild( $availability );

   $productsX->appendChild($product);  
    }
  //echo $doc->saveXML();
 file_put_contents($file,$doc->saveXML(),FILE_APPEND);
     ?>


you can check this post http://www.magentocommerce.com/boards/viewthread/267477/

Getting product Qty or quantity in magneto






<?php Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty()) ?>

<?php Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getIsInStock() ?>


Wednesday, November 30, 2011

How to display html code or tag in blogspot.com

use this link you can convert your html code to code which support blogspot post editor

http://francois.schnell.free.fr/tools/BloggerPaste/BloggerPaste.html

Wednesday, October 5, 2011

Giving hypering link for ceratin palce or perticular place in a full image or IMG Tag

Hi,

We can give hyper link to selected place from a image


<div class="slide" style="position: absolute; top: 0px; left: 990px; z-index: 0; display: block;"><img width="990" height="330" alt="" src="img1.png?1317798487966" usemap="#Map">
<map name="Map" id="Map">
<area target="_blank" href="giftcards.html" coords="961,299,840,262" shape="rect">
</map>
</div><div class="slide" style="position: absolute; top: 0px; left: 990px; z-index: 0; display: block;"><img width="990" height="330" alt="" src="img2.png" usemap="#Map2">
<map name="Map2" id="Map2">
<area target="_blank" href="ff.html" coords="1081,305,180,265" shape="rect">
</map>
</div>