Недавно столкнулся с проблемой. Был создан атрибут для customer'a. В него записывалось значение, он сохранялся в бд (видно через phpmyadmin), но при загрузке у него было нулевое значение. Самое интересное, что другие атрибуты, котрые были добавлены до меня, тоже странно работали. Но, все таки работали.
Самое первое, как я понял нужно делать, это обновлять кэш (в т.ч. удалять папку cache), а также делать обновление index'сов.
Решение проблемы, было очень простым.
Сначала нужно взять коллекцию пользователей:
protected function _getCustomers(){$collection = Mage::getResourceModel('customer/customer_collection');$collection->addAttributeToSelect('loyalty_reward_buy_start_date')->addAttributeToSelect('loyalty_reward_buy_end_date')->addAttributeToSelect('loyalty_reward_buy_points')->addAttributeToSelect('loyalty_reward_total_points')->addAttributeToSelect('loyalty_reward_buy_level')->addAttributeToSelect('loyalty_reward_all_coupons')->addAttributeToSelect('preferred_store_id');$collection->getSelect()->where('is_active = 1');return $collection;}
И, как видно из кода, нужно было добавить имя атрибута, в запрос используя метод addAttributeToSelect. Потом, из коллекции, выбираешь нужного customer'a и в нем благополучно будут загружены указаные атрибуты. Которые потом изменяешь и благополучно сохраняешь спомощью save().
Из этой проблемы я также выяснил, что плохо изучил взаимодействие magento с БД.
Комментариев нет:
Отправить комментарий