Пользовательский атрибут адреса Magento в серверной части - PullRequest
2 голосов
/ 24 января 2012

Я создал атрибут адреса клиента в Magento под названием «адрес-адрес», который представляет собой varchar с опциями радио «Жилой» и «Бизнес» на внешней стороне.

Атрибут сохраняется во время оформления заказа и отображается в базе данных. Клиенты могут редактировать свои профили, а я могу активно извлекать переменные, используя $address->getAddresstype();, чтобы проверить соответствующий переключатель.

Моя единственная проблема заключается в том, что в бэкэнде на отдельных страницах заказа на продажу переменная не передается. Я отредактировал /app/code/core/Mage/Customer/Block/Address/Renderer/Default.php (используя $address->getAddresstype()) и могу видеть атрибут в массиве, используя print_r($attributes = Mage::helper('customer/address')->getAttributes());

Он также помечен как is_visible в базе данных.

1 Ответ

4 голосов
/ 24 января 2012

Это связано с тем, что страницы заказа / счета на продажу извлекают информацию из разных таблиц (sales_flat_order_address).Предполагая, что он находится в нужном месте в первый раз (что, кажется, у вас), вам нужно просто заставить Magento скопировать правильную информацию.

<fieldsets>
    <sales_convert_quote_address>
        <your_attribute>
            <to_order>*</to_order>
        </your_attribute>
</fieldsets>

Возможно, вам также придется добавить другое полеустановить значение в, чтобы скопировать значение из адреса в адрес кавычки, с макушки головы, которую я не могу вспомнить.Если вы ищете в Magento код набора полей в * .xml, вы должны найти примеры.

...