2011-11-25 129 views
0

我是Magento新手,我需要的是添加自定義字段以在後端訂購,並在PDF上打印該值。添加要在magento中訂購的自定義字段

我想要在訂單從後臺添加後,訂單中保存銷售人員姓名,並在PDF上打印銷售人員姓名。

任何想法?任何更好的模塊或什麼?

回答

1

假設你要添加mageigniter_sales_person到您的訂單分貝和輸入字段添加到您的管理員創建訂單和訂單詳細信息視圖顯示它

在/ app /代碼/本地/ MageIgniter/CustomOrderSalesPerson的/ etc/config.xml中

<?xml version="1.0"?> 
<config> 
    <modules> 
     <MageIgniter_CustomOrderSalesPerson> 
      <version>1.1</version> 
     </MageIgniter_CustomOrderSalesPerson> 
    </modules> 

    <global> 
     <fieldsets> 
      <sales_convert_quote>       
       <mageigniter_sales_person><to_order>*</to_order></mageigniter_sales_person> 
      </sales_convert_quote> 

      <sales_convert_order>            
       <mageigniter_sales_person><to_quote>*</to_quote></mageigniter_sales_person> 
      </sales_convert_order> 
     </fieldsets> 
     <helpers> 
      <customordersalesperson> 
       <class>MageIgniter_CustomOrderSalesPerson_Helper</class> 
      </customordersalesperson>    
     </helpers> 

     <models> 
      <customordersalesperson> 
       <class>MageIgniter_CustomOrderSalesPerson_Model</class> 
       <resourceModel>customordersalesperson_mysql4</resourceModel> 
      </customordersalesperson> 
     </models> 
     <resources> 
      <customordersalesperson_setup> 
       <setup> 
        <module>MageIgniter_CustomOrderSalesPerson</module> 
        <class>Mage_Sales_Model_Mysql4_Setup</class> 
       </setup> 
       <connection> 
        <use>core_setup</use> 
       </connection> 
      </customordersalesperson_setup> 
      <customordersalesperson_write> 
       <connection> 
        <use>core_write</use> 
       </connection> 
      </customordersalesperson_write> 
      <customordersalesperson_read> 
       <connection> 
        <use>core_read</use> 
       </connection> 
      </customordersalesperson_read> 
     </resources> 

     <events> 
      <adminhtml_sales_order_create_process_data_before> 
       <observers> 
        <customordersalesperson> 
         <type>singleton</type> 
         <class>customordersalesperson/observer</class> 
         <method>saveCustomData</method> 
        </customordersalesperson> 
       </observers> 
      </adminhtml_sales_order_create_process_data_before> 
     </events> 

     <blocks> 
      <customordersalesperson> 
       <class>MageIgniter_CustomOrderSalesPerson_Block</class> 
      </customordersalesperson> 
     </blocks> 
    </global> 
</config> 

在/app/code/local/MageIgniter/CustomOrderSalesPerson/sql/customordersalesperson_setup/mysql4-install-1.1.php

<?php 
$installer = $this; 
$installer->startSetup(); 

$installer->addAttribute("order", "mageigniter_sales_person", array("type"=>"varchar")); 
$installer->addAttribute("quote", "mageigniter_sales_person", array("type"=>"varchar")); 
$installer->endSetup(); 

在/app/code/local/MageIgniter/CustomOrderSalesPerson/Model/Observer.php

class MageIgniter_CustomOrderSalesPerson_Model_Observer 
{ 
    public function saveCustomData($event) 
    { 
     $quote = $event->getSession()->getQuote(); 
     $quote->setData('mageigniter_sales_person', $event->getRequestModel()->getPost('mageigniter_sales_person')); 

     return $this; 
    } 
} 

(你應該避免更改核心默認 - 你應該做一些研究,圍繞這種方式)

在/app/design/adminhtml/default/default/template/sales/order/create/form/account.phtml

<input id="mageigniter_sales_person" name="mageigniter_sales_person" value="<?php echo Mage::getSingleton('adminhtml/session_quote')->getQuote()->getMageigniterSalesPerson() ?>" class="input-text" type="text"> 

在/ app /設計/ adminhtml /默認/缺省的/模板/銷售/訂單/圖/info.phtml

<?php if($_order->getMageigniterSalesPerson()): ?> 
<tr> 
    <td class="label"><label><?php echo Mage::helper('sales')->__('Sales Person') ?></label></td> 
    <td class="value"><strong><?php echo $_order->getMageigniterSalesPerson() ?></strong></td> 
</tr> 
<?php endif; ?> 

您可以使用 $ _user = Mage :: getSingleton('admin/session')獲取當前的管理員名稱; $ user ['email'] = $ _user-> getUser() - > getEmail(); $ user ['firstname'] = $ _user-> getUser() - > getFirstname(); $ user ['lastname'] = $ _user-> getUser() - > getLastname();

在您的PDF,你應該能夠訪問$ _order-> getMageigniterSalesPerson(),看看@Add custom attribute to Magento’s PDF invoice

1

首先,你需要在billing.phtml文件中添加HTML文本字段。在這個文件中找到以下代碼。

<?php if ($this->canShip()): ?> 

添加略高於線

<li class="fields"> 

<div class="field"> 

<label for="billing:ssn" class="required"><em>*</em><?php echo $this->__('SSN') ?></label> 

<div class="input-box"> 

<input type="text" name="custom[ssn]" value="<?php echo $this->htmlEscape($this->getQuote()->getSsn()) ?>" title="<?php echo $this->__('SSN') ?>" class="input-text required-entry" id="billing:ssn" /> 

</div> 

</div> 

</li> 

現在你要救場的報價與訂單表

創建兩個表下面的代碼。銷售的'sales_quote_custom'和訂單的'sales_order_custom'。檢查phpmyadmin以確認兩個表是否都已創建。接下來在​​3210文件中寫一些事件觀察者。在<global>標記中加入以下代碼。

<events> 

<sales_quote_save_before> <!-- Event Called Before Quote Object is saved --> 

<observers> 

<save_before> 

<type>singleton</type> 

<class>Excellence_Custom_Model_Observer</class> <!-- Over Model Class --> 

<method>saveQuoteBefore</method> <!-- name of function --> 

</save_before> 

</observers> 

</sales_quote_save_before> 

<sales_quote_save_after> <!-- Event called After Quote Object is saved --> 

<observers> 

<save_after> 

<type>singleton</type> 

<class>Excellence_Custom_Model_Observer</class> <!-- Over Model Class --> 

<method>saveQuoteAfter</method> <!-- name of function --> 

</save_after> 

</observers> 

</sales_quote_save_after> 

<sales_quote_load_after> <!-- Event called when Quote Object is loaded --> 

<observers> 

<load_after> 

<type>singleton</type> 

<class>Excellence_Custom_Model_Observer</class> <!-- Over Model Class --> 

<method>loadQuoteAfter</method> <!-- name of function --> 

</load_after> 

</observers> 

</sales_quote_load_after> 

<sales_model_service_quote_submit_after> <!-- Event called after order placed --> 

<observers> 

<sales_model_service_quote_submit_after> 

<type>singleton</type> 

<class>Excellence_Custom_Model_Observer</class> <!-- Over Model Class --> 

<method>saveOrderAfter</method> <!-- name of function --> 

</sales_model_service_quote_submit_after> 

</observers> 

</sales_model_service_quote_submit_after> 

<sales_order_load_after> <!-- Event called after Order Object is loaded --> 

<observers> 

<sales_order_load_after> 

<type>singleton</type> 

<class>Excellence_Custom_Model_Observer</class> <!-- Over Model Class --> 

<method>loadOrderAfter</method> <!-- name of function --> 

</sales_order_load_after> 

</observers> 

</sales_order_load_after> 

</events> 

對於教程一步一步完成,請訪問:Add custom field to Order page

相關問題