Monday 28 October 2013

Add gift options in invoice pdf in Magento

for Add gift message to Magento’s PDF packingslip you have to modified invoice.php file in (\app\code\local\Mage\Sales\Model\Order\Pdf\Invoice.php)
it is a core file ao you have to move this file in local directory
 then find getPdf($invoices = array()) function in it

before   $this->_afterGetPdf();  this line add below code in it.

/*    Draw gift options*/
                $message = Mage::getModel('giftmessage/message');
                   $oid= $item->getOrderItemId();
                  $sales =  Mage::getModel('sales/order_item')->load($oid);
           
        $gift_message_id = $sales->getGiftMessageId();
        if(!is_null($gift_message_id)) {
              $message->load((int)$gift_message_id);
              $gift_sender = $message->getData('sender');
              $gift_recipient = $message->getData('recipient');
              $gift_message = $message->getData('message');

              $page->drawText(Mage::helper('sales')->__('Message from:'), 55, $this->y, 'UTF-8');
              $page->drawText(Mage::helper('sales')->__($gift_sender), 120, $this->y, 'UTF-8');
             $this->y -=10;
              $page->drawText(Mage::helper('sales')->__('Message to:'), 55, $this->y, 'UTF-8');
              $page->drawText(Mage::helper('sales')->__($gift_recipient), 120, $this->y, 'UTF-8');
             $this->y -=15;
              $page->drawText(Mage::helper('sales')->__('Message:'), 55, $this->y, 'UTF-8');
              $page->drawText(Mage::helper('sales')->__($gift_message), 120, $this->y, 'UTF-8');
             
             // $gift_message = wordwrap($gift_message, 140, "\n", false);
              /*$token = strtok($gift_message, "\n");
              $y = 740;
              while ($token != false) {
              if ($y < 60) {
              $pdf->pages[] = ($page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4));
              $page->setStyle($style);
              }
              else {
              $page->drawText($token, 40, $this->y);
              $this->y-=10;
              }
              $token = strtok("\n");
              }*/

            }
                  /*    Draw gift options end*/

Wednesday 2 October 2013

delete existing order from invoice,shipment,credit memo.

http://www.magentocommerce.com/magento-connect/orders-eraser.html using of this extension you may delete order from sales > order> grid ,but if you want to delete same existing order id from invoice, shipment, creditmemo grid you have to customize little more in this extension.

For this you may change in function _erase2($orderId) in(\app\code\community\Wyomind\Orderseraser\Model\Orderseraser.php)
add below code:

$tablesfig = $resource->getTableName('sales_flat_invoice_grid');
$tablesfsg = $resource->getTableName('sales_flat_shipment_grid');
$tablesfcg = $resource->getTableName('sales_flat_creditmemo_grid');


$sql = "DELETE FROM " . $tablesfig . " WHERE order_id     = " . $orderId . ";";
$delete->query($sql);
$sql = "DELETE FROM " . $tablesfsg . " WHERE order_id     = " . $orderId . ";";
$delete->query($sql);
$sql = "DELETE FROM " . $tablesfcg . " WHERE order_id     = " . $orderId . ";";
$delete->query($sql);
      

magento summary rating of customers review in review list

put this code in(deault/default\template\review\product\view/list.phtml)
         <tbody>
                    <?php
                     $_percent = 0;
                    foreach ($_review->getRatingVotes() as $_vote){
                    $_percent = $_percent + $_vote->getPercent();
                    }
                      $_percent = $_percent / count($_review->getRatingVotes());?>
                    <tr>
                        <th class="label"><?php //echo $this->escapeHtml($_vote->getRatingCode()) ?>Aggregate rating:</th>
                        <td class="value">
                            <div class="rating-box">
                                <div class="rating" style="width:<?php echo  $_percent  ?>%;"></div>
                            </div>
                        </td>
                    </tr>
                    <?php //endforeach; ?>
                </tbody>


instead of

            <tbody>
                        <?php foreach ($_votes as $_vote): ?>
                        <tr>
                            <th><?php echo $this->escapeHtml($_vote->getRatingCode()) ?></th>
                            <td>
                                <div class="rating-box">
                                    <div class="rating" style="width:<?php echo $_vote->getPercent() ?>%;"></div>
                                </div>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>