Модуля onepagechekout у меня нет.
Опишу как можно добавить необходимый функционал в стандартное оформление заказа.
1. В БД добавить таблицу:
Код:
CREATE TABLE `ps_test` (
`id_cart` INT unsigned NOT NULL,
`text` text,
PRIMARY KEY (`id_cart`)
) DEFAULT CHARSET=utf8;
2. Открыть /controllers/front/OrderController.php и после:
Код:
$this->processAddress();
добавить:
Код:
Db::getInstance()->AutoExecute(_DB_PREFIX_.'test', array('id_cart' => (int)$this->context->cart->id, 'text' => Tools::getValue('text')), 'INSERT');
3.Открыть /themes/ваша-тема/order-address.tpl и добавить:
Код:
<div class="clearfix">
<p class="txt">Текст:</p>
<p class="textarea"><textarea name="text" rows="3" cols="60"></textarea></p></div>
4. Открыть /modules/mailalerts/mailalerts.php и после:
Код:
$template = 'new_order';
\
добавить:
Код:
$text = Db::getInstance()->getValue('SELECT `text` FROM `'._DB_PREFIX_.'test` WHERE `id_cart` = '.(int)$params['cart']->id);
после:
Код:
'{lastname}' => $customer->lastname,
добавить:
Код:
'{text}' => ($text ? $text : ''),
5. В шаблоне /modules/mailalerts/mails/исо-вашего-языка/new_order.html использовать:
Код:
{text}
Если в используемом модуле одна страница (ajax) - в отдельной таблице для сохранения поля и правках контроллеров prestashop нет необходимости.
Чтобы не вносить правки в файлы prestashop лучше весь этот код упаковать в отдельный модуль.