2010-03-17 3 views
0

Я создал простой пользовательский атрибут для объекта продаж/заказа. Теперь для новых заказов номер заказа равен NULL. Я посмотрел на таблицу sales_order, и, конечно же, increment_id имеет значение null ... может ли кто-нибудь помочь мне, я в тупике?Magento-custom атрибут вызывает пустой номер заказа

Это мой setup.php:

`общественная функция getDefaultEntities() {

 return array(
     'order' => array(
      'entity_model'  => 'sales/order', 
      //'attribute_model' => 'catalog/resource_eav_attribute', 
      'table'    => 'sales/order', 
      'attributes'  => array(
      'pr_email_sent'  => array(
        'label'    => 'prEmailSent', 
        'type'    => 'varchar', 
        'default'   => 'false' 
       ), 

      ) 
     ) 
    ); 

}`

Это мой config.xml

<fieldsets> 
      <sales_order> 
       <pr_email_sent><create>1</create><update>1</update></pr_email_sent> 
      </sales_order> 
     </fieldsets> 

Спасибо ,

ответ

0

Я решил это слом мой файл Setup.php, и в моей mysql4 установке-0.1.0.php сделал следующее:

<?php 

// file mysql4-install-0.1.0.php 


$installer = $this; 
$setup = new Mage_Eav_Model_Entity_Setup('sales_setup'); 
$installer->startSetup(); 

$setup->addAttribute('order', 'pr_email_sent', array('type' => 'text', 
                'default' => 'false' 
                ) 
        ); 

$installer->endSetup(); 

?> 

работает как шарм в настоящее время. Не уверен, в чем разница, помимо очевидного ... Отсутствие документации в Magento довольно скучно.

0

Создан ли ваш новый атрибут? Вы можете проверить таблицу eav_attribute, чтобы узнать, указан ли ваш атрибут.

+0

Эй, спасибо за ответ. Да, атрибут успешно переводит его в таблицу eav_attribute. Я могу getData() и setData() на нем также ... его просто, что теперь порядковые номера равны нулю. Может быть, мне нужно установить еще несколько свойств на setup.php? это очень запутанно. – frank

0

Просто наткнулся на это сам и сумел понять это. Используя функцию getDefaultEntities, мы завершаем переопределение атрибута increment_model для sales_order в таблице eav_entity_type.

Кажется, что необходимо переписать поля increment_model и increment_per_store.

Рад видеть, что вы поняли, используя приведенное выше. Я сам буду использовать это :-)

BTW, будет отправлено это на отслеживание ошибок Magento.

1

Я не верю, что это ошибка. Я снова столкнулся с тем же самым вопросом. Проблема заключается в том, что вы не включаете всю необходимую информацию в getDefaultEntities(). То, как вы закончили это, работает, но это не лучший способ сделать это. Вам просто не хватало нескольких частей настройки массива заказов. Вот как это должно выглядеть:

public function getDefaultEntities() 
{ 
    return array(
     'order' => array(
      'entity_model' => 'sales/order', 
      'table' => 'sales/order', 
      'increment_model' => 'eav/entity_increment_numeric', 
      'increment_per_store' => true, 
      'backend_prefix' => 'sales_entity/order_attribute_backend', 
      'attributes' => array(
       'pr_email_sent' => array(
        'label' => 'prEmailSent', 
        'type' => 'varchar', 
        'default' => 'false' 
       ) 
      ) 
     ) 
    ); 
} 
Смежные вопросы