Ho difficoltà a partecipare al tavolo del cliente_enty_varchar alla tabella Sales_Flat_ORDER_GRID

magento.stackexchange https://magento.stackexchange.com//questions/63345

  •  12-12-2019
  •  | 
  •  

Domanda

Un client vuole un pezzo specifico di dati dal tavolo del cliente_entity_varchar da visualizzare al posto del cognome del cliente nella griglia dell'ordine di vendita.Sto cercando di unirmi alla tabella cliente_enty_varchar alla tabella sales_flat_order_grid, ma ha avuto problemi.Sono stato in grado di aderire con successo alla tabella Sales_Flat_order_Payment alla tabella Sales_Flat_Order_Grid per visualizzare il numero PO nella griglia;Presumibilmente a causa della natura simile dei tavoli.Ecco il join che ho provato inizialmente dalla classe Mage_Adminhtml_Block_Sales_Order_Grid.E sì, so non modificare i file core.Volevo solo assicurarmi che il codice fosse giusto prima di estendere il quadro.:)

protected function _prepareCollection()
{
    $collection = Mage::getResourceModel($this->_getCollectionClass());
    $resource = Mage::getSingleton('core/resource');
    $collection->getSelect()->join('customer_entity_varchar', 'main_table.customer_id = customer_entity_varchar.entity_id', array('value'));
    $this->setCollection($collection);
    return parent::_prepareCollection();
}
.

È stato utile?

Soluzione

Supponiamo che l'attributo code of PO Number is po_number Devi ottenere dettagli di attributi usando

Mage::getResourceModel('customer/customer') Model by attribute code .
.

Se il codice dell'attributo è STORE_STATE, è possibile ottenerlo Nome e attributo Attribute Attribute utilizzando il seguente codice.

$po_number  = Mage::getResourceModel('customer/customer')->getAttribute('po_number');
$tablename=$po_number->getBackend()->getTable();
.

$ Tabella è stata presa da Static.it può assumere dinamico dal codice sopra

$attributeId=$po_number>getAttributeId() 
.

Come tabella customer_entity_varchar ha lots of records con different attribute so you need to put attribute id in join query condition.

$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection>getSelect()->joinLeft(
    array('ccp' =>$po_number->getBackend()->getTable()),
    'ccp.entity_id = main_table.customer_id
    AND ccp.attribute_id = '.(int) $po_number->getAttributeId() . '
    ',
    array('$po_number-'=>'value')); 
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top