Recherche d'une grille d'administration pour afficher l'historique des ventes de produits spécifiques, mais en obtenant l'erreur suivante lorsque vous tentez de filtrer par facturation nom:Magento: SQLSTATE [42S22]: Colonne non trouvée: 1054 Colonne inconnue 'billing_name' dans 'clause where'
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'billing_name' in 'where clause'
Voici ce que j'utilise:
protected function _prepareCollection() {
$productId = $this->getProduct()->getId();
$ordersId = $this->getOrderIds($productId);
$collection = mage::getModel('sales/order')
->getCollection()
->addFieldToFilter('main_table.entity_id', array('in' => $ordersId))
->join('sales/order_address', '`sales/order_address`.entity_id=billing_address_id', array('billing_name' => "concat(firstname, ' ', lastname)"));
$this->setCollection($collection);
return parent::_prepareCollection();
}
Et puis d'ajouter la colonne de la grille pour le nom de facturation:
protected function _prepareColumns() {
$this->addColumn('billing_name', array(
'header' => Mage::helper('AdvancedStock')->__('Bill to Name'),
'index' => 'billing_name',
'sortable' => true
));
return parent::_prepareColumns();
}
La colonne retourne tous les noms de facturation des commandes contenant le produit correctement, je ne peux tout simplement pas filtrer la colonne par son nom. Des idées?
Vous avez ajouté le nom de facturation au modèle mais pas à la base de données? Existe-t-il lorsque vous affichez la table 'sales_flat_order' (ou est-ce la table' sales_flat_order_address')? – CD001
@ CD001 Je crois que c'est dans 'sales_flat_order_address' bien que je n'ai pas accès à phpMyAdmin pour vérifier les tables – AJ47