Source model “customer_entity/address_attribute_source_country” not found for attribute “country_id”

Home / Blog / Source model “customer_entity/address_attribute_source_country” not found for attribute “country_id”

Powyższy błąd najczęściej pojawia się po upgrade Magento do nowszej wersji.

Zazwyczaj blokuje on edycje klienta oraz składanie zamówień w panelu administracyjnym.

Związane jest to z błędnym modelem źródłowym zapisanym w bazie w tabeli eav_attribute dla atrybutu country_id.

Rozwiązanie jest proste, wystarczy najlepiej z poziomy dowolnego pliku PHTML szablonu wykonać poniższy kawałek kodu PHP, który zmieni w/w model na poprawny dla nowszej wersji Magento.

$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$connection->beginTransaction();
$fields = array();
$fields['source_model'] = 'customer/entity_address_attribute_source_country';
$where = $connection->quoteInto('source_model like ?', 'customer_entity/address_attribute_source_country');
$connection->update('eav_attribute', $fields, $where);
$connection->commit();