Прежде всего, ознакомьтесь с механизмом обновления magento SQL (он отличается, когда вы работаете с EAV - как таблицы клиентов - и обычные таблицы - как заказы).Создайте модуль, который будет иметь скрипт sql-update, например, в /YourNamespace/YourModule/sql/yourmodule_setup/mysql4-install-1.0.0.php.Вы должны использовать что-то вроде:
$installer = $this;
$installer->getConnection()->addColumn($installer->getTable('sales/order'), 'dealerid', 'decimal(12,4) NULL');
и в вашем config.xml:
<global>
(...)
<models>
(...)
<yourmodule>
<class>Mage_Sales_Model</class>
<resourceModel>yourmodule_mysql4</resourceModel>
</yourmodule>
<yourmodule_mysql4>
<class>YourNamespace_Yourmodule_Model_Mysql4</class>
<entities>
<order><table>sales_order</table></order>
</entities>
(...)
</yourmodule_mysql4>
(...)
</models>
<resources>
<yourmodule_setup>
<setup>
<module>YourNamespace_YourModule</module>
<class>YourNamespace_YourModule_Model_Mysql4_Setup</class>
</setup>
</yourmodule_setup>
</resources>
(...)
</global>
Не забудьте создать свои собственные классы: YourNamespace_YourModule_Model_Mysql4_Setup, YourNamespace_Yourmodule_Model_Mysql4.Проверьте в app / code / core / Mage / Sales / как они должны выглядеть (ничего особенного там не нужно, они просто должны наследовать от соответствующих базовых классов).Также проверьте app / code / core / Mage / Sales / sql и app / code / core / Mage / Sales / etc / config.xml.
Если вы хотите получить поле из одностраничной проверки, вы должны сделать несколько вещей ... Я не знаю, что вам действительно нужно от пользователя (и в какой части проверки он собираетсябыть взятым).Добавление входных данных осуществляется с помощью шаблонов (отредактируйте нужные файлы в app / design / frontend / yourskin / default / template / checkout).
Чтобы получить правильные данные, вы должны переписать контроллер извлечения с вашим собственным действием контроллера (посмотрите app / code / core / Mage / Checkout / Controllers / OnepageController.php), чтобы получить данные из формы исохранить его в сеансе проверки.После этого вы должны подключиться к событию checkout_type_onepage_save_order_after (оно находится в приложении / code / core / Mage / Checkou / Model / Type / Onepage.php), взять данные из вашего сеанса и поместить их в модель заказа (и сохранить их вкурс).Это своего рода стандартная процедура, поэтому у вас не должно возникнуть проблем.
Возможно, вам также потребуется добавить столбец в sales_flat_order (структура таблиц заказов изменилась в 1.4.xx, поэтому я 'я не уверен в этом - вам придется провести некоторые эксперименты).
Если вы хотите увидеть его в представлении заказа adminhtml, вам придется переопределить некоторые Core / Adminhtml / Blocks / Sales / Order (и, вероятно, шаблоны).
Это своего рода комплекспроцедуру, так что вам придется выяснить некоторые вещи самостоятельно.Этот пост представляет собой общее представление о том, как это сделать.