Domanda

Sto lavorando con Magento, ho ordini e lo stampa come questo:

echo $order->getId();
echo $order->getCustomerEmail();
.

Il mio problema è che non conosco tutto il nome dei metodi Get, quindi come o dove posso trovare tutto l'elenco di essere disponibili?

Il mio obiettivo è esportare tutti gli ordini in un database esterno, c'è un modo più veloce per farlo senza passare per ogni campo?

È stato utile?

Soluzione

I dati sull'ordine (o qualsiasi oggetto) si svolgono in una variabile di medicina protetta _dataTagCode che è un array. Questi dati derivano dalla tabella del database (s) (viene riempito dal modello di risorsa).

array dati

È possibile ottenere questo array e scaricarlo tramite:

print_r($order->getData());
// or
var_dump($order->getData());
.

Otterrai un'output come questo con print_r():

Array
(
    [entity_id] => 2
    [state] => new
    [status] => pending
// ...
.

getter

Ora puoi ottenere tutti questi dati con i getter magici dell'oggetto di Magento. Ogni valore è recuperabile sotto forma di $object->getValue() in cui Value è la versione assa in cammello della chiave dall'array.

Per i valori di cui sopra, utilizzare:

$order->getEntityId();
$order->getState();
$order->getStatus();
.

e per customer_id ad esempio è possibile chiamare $order->getCustomerId()

Override

I getter possono essere sovrascritti. La costruzione Getters è definita nella classe Varien_Object e ogni modello Magento potrebbe sovrascrivere un metodo Magic Gettter definendo esplicitamente un metodo. Quindi dovresti anche controllare i metodi del modello guardando il codice o l'utilizzo che suggerisce il tuo IDE.

Altri suggerimenti

Puoi semplicemente stampare tutto il campo disponibile nel tuo oggetto con:

print_r($order->getData())
.

Gli ordini non sono memorizzati in un formato EAV in modo che tutti i dati siano in un tavolo piatto.Caricando un'istanza del modello sales/order, carica una riga dalla tabella sales_flat_order, quindi qualsiasi colonna che vedi qui, è possibile tirare dall'oggetto dell'ordine, I.e Per tirare la colonna increment_id, è possibile chiamare $order->getIncrementId().Anche essere consapevole del fatto che ci sono alcuni metodi nell'oggetto Classe Mage_Sales_Model_Order per creare una certa quantità di dati per te, ad esempio getCustomerName() che restituisce il nome del cliente ma non si riferisce a una colonna customer_name nella tabella sales_flat_order.

Prova

foreach($order->getData() as $key => $value)
{
  //$key;
  //$value
}
.

Una soluzione di una riga:

array_keys($order->getData())
.

 $resource = Mage::getSingleton('core/resource');
 $readConnection = $resource->getConnection('core_read');  
 /**
  * Get the table name
  */
 $tableName = $resource->getTableName('sales/order');

 $saleafield=$readConnection->describeTable($tableName);
 var_dump($saleafield);
.

Da: https://stackoverflow.com/questions/25245862/-All-Names-field-names-from-magento-modello

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