Bug nella reportistica dei carrelli abbandonati

­Navigando nel report dei carrelli abbandonati di Magento (Reports > Shopping Cart > Abandoned Carts) di uno dei miei siti (versione 1.9.2.4) noto che risulta essere elencato un solo carrello, di un cliente creato direttamente dall'admin; tutti gli altri carrelli abbandonati (e ce ne sono) non risultano in lista.

Cercando di risolvere il problema scopro che è un bug di Magento, dalla versione 1.9.2.2 in poi; il problema dipende dal fatto che quando un utente viene creato via web, non viene generata la riga corrispondente nella tabella 'customer_entity_varchar' per l'attributo 'Middle Name' (attribute_id=6), se quest'ultimo non viene ovviamente compilato dall'utente.

Questo comportamento implica che la query della funzione 'addCustomerData' di­ 'app/code/core/Mage/Reports/Model/Resource/Quote/Collection.php' non carica i carrelli abbandonati di tali utenti visto che viene utilizzata una inner join proprio su quel campo.

La soluzione è usare una left join quindi fare l'override di 'app/code/core/Mage/Reports/Model/Resource/Quote/Collection.php' copiando il file in 'app/code/local/Mage/Reports/Model/Resource/Quote/Collection.php'.

Quindi, modificare il metodo 'addCustomerData($filter = null)' e sostituire 'joinInner' con 'joinLeft' nella riga 209.

Pulire la cache ed automaticamente tutti i carrelli compaiono nella pagina.

­

­

Categoria: