Magento: сохраните пользовательский атрибут адреса при оформлении заказа


Вот что я сделал на своем веб-сайте: Администратор ->Клиенты->Атрибуты -> Управление атрибутами адресов клиентов и добавление нового атрибута, пользователь может видеть его в своем профиле, в разделе "Мои адреса", новый атрибут может быть отредактирован и сохранен при создании нового адреса, я также могу видеть его в бэкэнде и редактировать, пока здесь все в порядке, моя проблема в оформлении заказа, у меня уже есть поле в формах выставления счетов и доставки, и я хочу, чтобы новый атрибут был сохранен, когда пользователь нажимает кнопку "Оформить заказ", но, похоже, при оформлении заказа он ничего не знает о новом атрибуте, атрибут не сохраняется, и если я сохраню одно значение из профиля пользователя, проверка не загрузит его в поле.

Что я могу здесь сделать??

Спасибо

Author: Charles, 2011-04-10

1 answers

Просмотрев код magento и прочитав вики, я смог завершить, мой новый атрибут был сохранен в форме редактирования адреса в профиле, но не был сохранен, когда я ввел его в форму оформления заказа, это было потому, что мне нужно переопределить некоторые файлы ядра magento, первым шагом было добавление нового атрибута в app\code\core\Mage\Customer\etc\config.xml, я скопировал в app\code\core\Mycompany\Customer\etc\config.xml, так как мой новый код атрибута rfc, я нахожу запись <fieldsets> и

<customer_dataflow>
    ....
    <rfc><billing>1</billing><shipping>1</shipping></rfc>
</customer_dataflow>

Теперь мне нужно добавить новый атрибут к app\code\core\Mage\Customer\Model\Entity\Setup.php i сделал то же самое для переопределения, скопировал в мое локальное пространство имен, и в функции getDefaultEntities() я нахожу

'customer_address'=>array(
    ....
            'rfc' => array(
            'label'         => 'RFC',
            'required'      => false,
            'sort_order'    => 135,
    ),
)  

Теперь мне нужно сделать то же самое в app\code\core\Mage\Sales\etc\config.xml, но теперь должно выглядеть так

<sales_copy_order_billing_address>
    .....
    <rfc><to_order>*</to_order></rfc>
</sales_copy_order_billing_address>

<sales_copy_order_shipping_address>
    ......
    <rfc><to_order>*</to_order></rfc>
</sales_copy_order_shipping_address>

<sales_convert_quote_address>
    ........
    <rfc><to_order_address>*</to_order_address><to_customer_address>*</to_customer_address></rfc>
</sales_convert_quote_address>

<sales_convert_order_address>
    .........
    <rfc><to_quote_address>*</to_quote_address></rfc>
</sales_convert_order_address>

<customer_address>
    .......
    <rfc><to_quote_address>*</to_quote_address></rfc>
</customer_address>

Надеюсь, это может помочь кому-то другому

 10
Author: Castro Roy, 2011-04-12 18:16:33