Magento- пользовательский атрибут вызывает пустой номер заказа - PullRequest
0 голосов
/ 17 марта 2010

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

Это мой 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>

Спасибо.

Ответы [ 4 ]

1 голос
/ 29 июня 2010

Я не верю, что это ошибка. Я столкнулся с той же самой проблемой некоторое время назад. Проблема заключается в том, что вы не включаете всю необходимую информацию в 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'
                )
            )
        )
    );
}
0 голосов
/ 19 марта 2010

Я решил это путем удаления файла setup.php и в моем mysql4-install-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 голосов
/ 11 июня 2010

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

Кажется, перезаписывают поля increment_model и increment_per_store.

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

Кстати, отправим это на багтрекер Magento.

0 голосов
/ 18 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...