2011-06-26 13 views
5

Sales_order_grid tablosuna (Gönderi Açıklama metni) fazladan bir sütun eklemek için Ivan'ın öğreticisini (Adding order attribute to the orders grid in Magento 1.4.1) takip ediyorum ve sales_flat_order'den sales_order_grid'deki yeni sütuna eski verileri getirmediği için çalışıyor.Magento'da, sales_order_grid'deki yeni bir sütunu sales_flat_order veriyle nasıl doldurabilirim?

SQL yükleme komut dosyasım, sütuna doğru bir şekilde ekler ve ben de sales_flat_order ile aynı alan adını kullanıyorum çünkü bir gözlemciye ihtiyacım olduğunu düşünmüyorum, ancak varolan nakliye açıklamasına ait verilerin tümünü shipping_description içine alma kodu alan çalışmıyor.

Neyi yanlış yapıyorum?

My SQL komut yükleyin: Ben Magento 1.5.1 Community Edition kullanıyorum

<?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(); 

!

Yardımlarınız için teşekkürler!

cevap

4

bu çalışması gerekir: İsterseniz

$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')) 
    ) 
); 

, benim extension :)
HTH

+0

Mükemmel bir göz atın! Ben bir araya getirmeye çalışırken ve Ivan'ın yazı ve uzantısı arasında çok yakındı - ben sadece yanlış veri veriyorum yanlış alıyorum iken uzatma baktım :-) Ben çok daha sonra benim süper basit bir sürümü açmak için emin olacağım . Teşekkürler ! değerler // egzersiz $ this-> addColumn ('depo', array ile depo ( : – simonyoung

+0

aslında ben sales_flat_order ve sales_flat_order_grid tabloda sütun adı depo oluşturulur ve niteliğini oluşturdu satış siparişi ızgarada bir alan depo gerek 'header' => Mage :: helper ('sales') -> __ ('Depo'), 'index' => 'warehouse', 'type' => 'options', 'width' => ' 70px ', ' seçenekler '=> Mage :: getSingleton (' eav/config ') -> getAttribute (' catalog_product ',' warehouse '), )); hala çalışmıyor, izlemem gereken adımlar var mı? – Rathinam

+0

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

İlgili konular