Magento - добавить поле в sales_flat_quote - PullRequest
0 голосов
/ 01 сентября 2011

Я создал модуль, для которого требуется добавить дополнительное поле в таблицу / модель sales_flat_quote.

В моем скрипте установки все работает нормально, и новое поле можно увидеть в базе данных.

При извлечении объекта цитаты и сохранении значения в моем новом поле значение никогда не записывается в базу данных. Метод save не создает ошибку или исключение, но значение никогда не сохраняется.

Если это имеет значение, я пытаюсь сохранить значение в цитате наблюдателя в процессе оформления заказа.

Вот код, который я использую в своем скрипте установки:

$setup = new Mage_Sales_Model_Mysql4_Setup('sales_setup');
$setup->getConnection()->addColumn(
        $setup->getTable('sales_flat_quote'),
        'test_attribute',
        'text NULL DEFAULT NULL'
    );

$setup->addAttribute('quote', 'test_attribute', array('type' => 'text', 'visible' => false));

Я что-то упускаю здесь очевидное?

1 Ответ

0 голосов
/ 03 сентября 2011

Не знаю, зачем вы создали этот объект $setup = new Mage_Sales_Model_Mysql4_Setup('sales_setup'); Если вы посмотрите, например, в \ app \ code \ core \ Mage \ Sales \ sql \ sales_setup \ mysql4-upgrade-1.3.99-1.4.0.0.php, вы увидите:

/* @var $installer Mage_Sales_Model_Entity_Setup */
$installer = $this;
$installer->startSetup();

/* Include code from mysql4-upgrade-0.9.38-0.9.39.php */
$installer->getConnection()->addColumn($installer->getTable('sales_flat_quote_item'),
    'store_id', 'smallint(5) unsigned default null AFTER `product_id`');

И, конечно, вы должны удалить кеш, измените версию вашего модуля в config.xml на номер, который больше, чем у вашего модуля в таблице core_resource.

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