cancel
Showing results for 
Search instead for 
Did you mean: 

Adding cashondelivery information on the order

Adding cashondelivery information on the order

I'm using the cashondelivery ( core module ) and I would like to add informations in the email order. 

In the admin there is a field for informations. It's displaying during the checkout but I don't know how to display this field in the order confirmation mail.

I think I should create a file  cashondelivery.phtml in this folder

app/design/adminhtml/default/default/template/payment/info/

 

But I don't know what to put inside this file.

Can someone help me ?

 

2 REPLIES

Re: Adding cashondelivery information on the order

Did you solve this problem, I am facing this exact same issue. Please share if you have a solution.

Re: Adding cashondelivery information on the order

Hi

Make sure cash on delivery form coming at file path

app\design\frontend\base\default\template\payment\form\cashondelivery.phtml

So please copy base file to your theme at path app\design\frontend\Yourpackage\default\template\payment\form\cashondelivery.phtml and replace code from

<?php if ($this->getInstructions()): ?>
    <ul class="form-list checkout-agreements" id="payment_form_<?php echo $this->getMethodCode() ?>" style="display:none;">
        <li>
            <div class="<?php echo $this->getMethodCode() ?>-instructions-content agreement-content">
                <?php echo nl2br($this->getInstructions()) ?>
            </div>
        </li>
    </ul>
<?php endif; ?>

TO 

<?php $_code=$this->getMethodCode() ?>
<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
    <li>
        <?php echo  'add custom form code here....'?>
    </li>
<?php if ($this->getInstructions()): ?>
    <li>
        <div class="<?php echo $_code ?>-instructions-content agreement-content">
                <?php echo nl2br($this->getInstructions()) ?>
        </div>  
    </li>
<?php endif; ?>
</ul>

Since I already had 'companyname' as one of my attributes I retrieved the value of this field and passed it as a param in the following function

app/code/core/Mage/Sales/Model/Order.php

public function sendNewOrderEmail()
{
 /*Existing Code*/
 if ($this->getCustomerIsGuest()) {
        $templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_GUEST_TEMPLATE, $storeId);
        $customerId = Mage::getModel('customer/customer')->load($this->getCustomerId());
        $companyname = $customerId->getCompanyname();
        $customerName = $this->getBillingAddress()->getName();
    } else {
        $templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE, $storeId);
        $customerId = Mage::getModel('customer/customer')->load($this->getCustomerId());
        $companyname = $customerId->getCompanyname();
        $customerName = $this->getCustomerName();
    }
    /*Existing Code*/
    $mailer->setTemplateParams(array(
      'order'        =>  $this,
      'billing'      =>  $this->getBillingAddress(),
      'payment_html' => $paymentBlockHtml,
      'companyname'  => $companyname
   ));
   /*Rest of the code remains the same*/
 }

After making this change. I edited my Transactional Email to include this param. Since I wanted to display inside Shipping Address, I placed my variable just before this line in

 System > Transactional Emails > New Order Email 

     {{ var companyname }}
     {{var order.getShippingAddress.format('html')}}