Преобразование пользовательской информации о продажах для цитирования по ручным заказам
Вопрос
Hello Stackexchange Community.
Заранее извиняйтесь за то, что был расплывчатым по этому вопросу. Тем не менее, вот и мы.
У меня есть пользовательский атрибут продаж под названием «Примечания». Это краткое описание метода доставки, выбранного пользователем. Я построил небольшой модуль, который экономит эти заметки в цитате, а затем, в свою очередь, прикрывает их на заказ после совершения покупки. Это прекрасно работает для фронтальных платежей. При создании административного платежа все работает так далеко, как добавляется пользовательский атрибут таблицы sales_flat_quote. Тем не менее, он не преобразует его в заказ.
Я использую следующее в моем config.xml, чтобы справиться с этим:
<fieldsets>
<sales_convert_quote>
<notes><to_order>*</to_order></notes>
</sales_convert_quote>
</fieldsets>
Как уже говорилось, это отлично работает для заказов на фронта, но не конвертирует платежи администратора. У кого -нибудь есть идеи, почему? Есть ли что -то больше, чем sales_convert_quote, я мог бы попробовать? Любая точка в направлении будет очень оценен. Я буду рад опубликовать больше кода, если он полезен, однако я не думаю, что это необходимо, поскольку это единственная партия процесса, которая сломана.
Заранее благодарю за любую помощь.
Решение
В случае, когда кто -то наткнулся на этот вопрос, и, возможно, был та же проблема, с которой я был. Однако у меня есть резолюция, проблема была не то, что я думал. sales_convert_quote в порядке. Проблема заключалась в том, что диспетчерское событие, которое я использовал, заключалось в добавлении дополнительной информации в таблицу sales_flat_quote после вызова sales_convert_quote.
Мне просто нужно было изменить событие отправки, которое я использовал, чтобы добавить информацию в таблицу цитат при вызове AJAX для переключения методов доставки. Для вашей ссылки здесь мой конфигуратор XML
<adminhtml>
<events>
<core_block_abstract_to_html_after>
<observers>
<admin_before_order_save_new>
<class>Actioncameras_MatrixToOrder_Model_Observer</class>
<method>admin_before_order_save</method>
</admin_before_order_save_new>
</observers>
</core_block_abstract_to_html_after>
</events>
</adminhtml>
Тогда в моей модели/xearver.php вот моя функция:
class Packagename_ModuleName_Model_Observer {
public function admin_before_order_save($observer) {
if($observer->getEvent()->getBlock()->getNameInLayout() == "shipping_method")
{
$quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
$shippingAddress = $quote->getShippingAddress();
if(!$shippingMethod = $shippingAddress->getShippingMethod())
{
return false;
}
$shippingRate = $shippingAddress->getShippingRateByCode($shippingMethod);
$quote->setNotes($shippingRate->getMethodDescription());
$quote->save();
}
}
}