добавить настраиваемое поле для одностраничного оформления заказа в magento - PullRequest
1 голос
/ 21 августа 2010

Я пытаюсь добавить пользовательские поля на страницу оформления заказа magento.Я следовал примеру, который не работает в 1.4.1 из-за перехода к плоской таблице заказов (я думаю) http://inchoo.net/ecommerce/magento/adding-a-new-tab-under-one-page-checkout-full-working-module/

Я могу видеть свою пользовательскую вкладку на странице оформления заказа с моими пользовательскими полями, ноневозможно сохранить поля в базе данных.

  • Как добавить столбцы в таблицы котировок и заказов?это должно пойти в Mymod / sql / mymod_setup / mysql4-install-0.1.0.php или где-то еще?

  • Как сохранить поле в БД?Нужно ли сначала сохранять его в цитате?Я использую наблюдателя или что-то еще?Нужно ли иметь элемент в файле config.xml моего модуля?http://www.magentocommerce.com/boards/viewthread/19344/

Спасибо

1 Ответ

3 голосов
/ 22 августа 2010

Отказ от ответственности: я не трогал Magento в течение 6 месяцев. Теперь это сказано, если вы загляните в каталог app / code / core / Mage / Sales / sql / sales_setup /, вы найдете примеры того, как изменить таблицы заказов. Например, вот содержимое приложения / code / core / Mage / Sales / sql / sales_setup / mysql4-upgrade-0.9.12-0.9.13.php (без комментариев заголовка):

$installer = $this;
/* @var $installer Mage_Sales_Model_Mysql4_Setup */

$installer->addAttribute('quote', 'subtotal', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal', array('type'=>'decimal'));

$installer->addAttribute('quote', 'subtotal_with_discount', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal_with_discount', array('type'=>'decimal'));

$ это инициализируется из того, что находится в app / code / core / Mage / Sales / etc / config.xml после просмотра config / global / resources / sales_setup / setup / class в этом классе, и вы увидите он наследует от Mage_Eav_Model_Entity_Setup, класс установки по умолчанию, и переопределяет или добавляет некоторые методы (например, для поддержки плоских таблиц).

Чтобы ответить на ваш первый пункт (первый вопрос), вы можете добавить столбцы с помощью метода addAttribute () этого класса. И ответ на второй вопрос - да, но вы должны указать в файле config.xml вашего модуля, что вы хотите использовать Mage_Sales_Model_Mysql4_Setup в качестве класса установки. Это делается путем добавления того же элемента xml, который ранее находился в app / code / core / Mage / Sales / etc / config.xml (замените sales_setup на yourmod_setup). Таким образом, вы сбрасываете свою базу данных, проверяете, как она работает, используя get_class ($ this) в вашем файле mysql4-install-0.1.0.php, а затем восстанавливаете свою базу данных. И вы продолжаете писать в своем установочном файле, вдохновляясь тем, что вы видите в файлах в app / code / core / Mage / Sales / sql / sales_setup, и все должно быть хорошо! Теперь по второму пункту ... я не знаю ... надеюсь, это сработает автоматически! Удачи!

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