2011-06-26 11 views
5

मैं sales_order_grid तालिका (शिपिंग विवरण टेक्स्ट) में एक अतिरिक्त कॉलम जोड़ने के लिए इवान के ट्यूटोरियल (Adding order attribute to the orders grid in Magento 1.4.1) का पालन कर रहा हूं और यह काम कर रहा है सिवाय इसके कि यह sales_flat_order से पुराने डेटा को sales_order_grid में नए कॉलम में नहीं लाता है।Magento में, sales_flat_order से डेटा के साथ sales_order_grid में एक नया कॉलम कैसे बना सकता हूं?

मेरी एसक्यूएल इंस्टॉल स्क्रिप्ट कॉलम को सही तरीके से जोड़ती है और क्योंकि मैं उसी फ़ील्ड नाम का उपयोग sales_flat_order में कर रहा हूं, मुझे नहीं लगता कि मुझे पर्यवेक्षक की आवश्यकता है, हालांकि कोड शिपिंग_डिस्क्रिप्शन में सभी मौजूदा शिपिंग विवरण डेटा आयात करने के लिए कोड क्षेत्र नहीं चल रहा है।

मैं क्या गलत कर रहा हूं?

मेरे SQL स्क्रिप्ट स्थापित:

<?php 
/** 
* Setup scripts, add new column and fulfills 
* its values to existing rows 
* 
*/ 
/* @var $this Mage_Sales_Model_Mysql4_Setup */ 
$this->startSetup(); 

// Add column to grid table 
$this->getConnection()->addColumn(
    $this->getTable('sales/order_grid'), 
    'shipping_description', 
    "varchar(255) not null default ''" 
); 

// Add key to table for this field, 
// it will improve the speed of searching & sorting by the field 
$this->getConnection()->addKey(
    $this->getTable('sales/order_grid'), 
    'shipping_description', 
    'shipping_description' 
); 


// fill existing rows with data 
$select = $this->getConnection()->select(); 
$select->join(
    array('order'=>$this->getTable('sales/order')), 
    $this->getConnection()->quoteInto('order.entity_id = order_grid.entity_id',''), 
    array('shipping_description' => 'shipping_description') 
); 

$this->getConnection()->query(
    $select->crossUpdateFromSelect(
     array('order_grid' => $this->getTable('sales/order_grid')) 
    ) 
); 

$this->endSetup(); 

मैं Magento 1.5.1 समुदाय संस्करण का उपयोग कर रहा!

किसी भी सहायता के लिए धन्यवाद!

उत्तर

4

इस काम करना चाहिए:

$select = $this->getConnection()->select(); 
$select->join(
    array('order_shipping'=>$this->getTable('sales/order')),//alias=>table_name 
    $this->getConnection()->quoteInto(
     'order_shipping.entity_id = order_grid.entity_id', 
     Mage_Sales_Model_Quote_Address::TYPE_SHIPPING 
    ),//join clause 
    array('shipping_description' => 'shipping_description')//fields to get 
); 
$this->getConnection()->query(
    $select->crossUpdateFromSelect(
     array('order_grid' => $this->getTable('sales/order_grid')) 
    ) 
); 

यदि आप चाहते हैं, मेरे extension :)
HTH

+0

बिल्कुल सही पर एक नज़र डालें! मैंने आपके विस्तार को देखा था, जबकि मैं अपने साथ एक साथ रखने की कोशिश कर रहा था और इवान के पोस्ट और आपके एक्सटेंशन के बीच मैं बहुत करीब था - बस डेटा को पॉप्युलेट करने में गलत हो रहा था :-) मैं अपने सुपर सरल संस्करण को बाद में स्रोत खोलना सुनिश्चित करूंगा । धन्यवाद ! मूल्यों // कसरत $ this-> addColumn ('गोदाम', सरणी के साथ गोदाम ( : – simonyoung

+0

वास्तव में मैं में बिक्री आदेश ग्रिड एक क्षेत्र गोदाम मैं sales_flat_order और sales_flat_order_grid तालिका में बनाए गए स्तंभ नाम गोदाम और विशेषता बना की जरूरत है 'हेडर' => मेज :: सहायक ('बिक्री') -> __ ('वेयरहाउस'), 'अनुक्रमणिका' => 'गोदाम', 'प्रकार' => 'विकल्प', 'चौड़ाई' => ' 70px ', ' विकल्प '=> दाना :: getSingleton (' EAV/config ') -> getAttribute (' catalog_product ',' गोदाम '), )); अभी भी काम नहीं कर रहा है, क्या मुझे कोई कदम उठाने की ज़रूरत है? – Rathinam

+0

https://i.snag.gy/H0Sqrh.jpg – Rathinam

संबंधित मुद्दे

 संबंधित मुद्दे