Magento - Пользовательский атрибут в адресе клиента, не копируется в sales_flat_order_address и sales_flat_quote_address при оформлении заказа - PullRequest
0 голосов
/ 21 сентября 2011

Я создал новый атрибут "county" в адресе клиента. Он работает нормально, и я могу сохранить значения в этом поле из внешнего интерфейса.

Я хочу, чтобы это поле было доступно в адресе заказов. Поэтому я добавил столбец «округ» в таблицах

‘sales_flat_quote_address’ и ‘sales_flat_order_address’

Затем я изменил Sales / etc / config.xml, чтобы включить это поле в наборы полей. Я добавил записи для этого поля в

sales_copy_order_billing_address,
sales_copy_order_shipping_address
sales_convert_quote_address
sales_convert_order_address
customer_address

Но когда я делаю одностраничную проверку, значение в этом поле не копируется в адрес в заказах. Я выбираю существующий адрес со значением в этом поле во время оформления заказа для адреса выставления счета и доставки.

Сейчас я не редактировал ни один файл шаблона в кассе, чтобы включить это поле. Но поскольку я выбираю существующий адрес, это не должно вызывать проблему, верно?

Я использую magento 1.5.1.0. Хотя я хорошо знаю php, я новичок в magento.

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

Я что-то упустил. Если это так, пожалуйста, предоставьте свое предложение. Спасибо.

Ответы [ 5 ]

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

Вы проверили Config.xml в Sales / etc и посмотрели разделы "sales_copy_order_billing_address".

Это определяет, какой столбец копируется из таблицы1 в «сопоставленные столбцы» в таблице 2.

Итак, добавьте округ в список, куда бы ни копировались данные для адреса доставки и адреса выставления счета.

Это отображение XML используется, когда выполняется код, подобный следующему:

Mage::helper('core')->copyFieldset('customer_address', 'to_quote_address', $address, $this);

Первый параметр - это сопоставление узла «из столбца таблицы», а второй параметр - это сопоставление «столбцу таблицы».

Надеюсь, это сработает.

1 голос
/ 28 ноября 2015

Я пробовал это, и это работает для меня, пожалуйста, добавьте этот код XML в наш файл config.xml модуля

<global>
        <fieldsets>
            <sales_convert_quote_address>
                <govt_id>
                    <to_order_address>*</to_order_address>
                    <to_customer_address>*</to_customer_address>
                </govt_id>
            </sales_convert_quote_address>
            <customer_address>
                <govt_id>
                    <to_quote_address>*</to_quote_address>
                </govt_id>
            </customer_address>
        </fieldsets>
    </global>
1 голос
/ 05 ноября 2014

Попробуйте это в одном из файлов config.xml вашего модуля ...

<global>
...
    <fieldsets>
        <customer_address>
            <county>
                <to_quote_address>*</to_quote_address>
                <to_order_address>*</to_order_address>
            </county>
         </customer_address>
    </fieldsets>
...
</global>

Убедитесь, что вы создали поле county в обеих таблицах ( sales_flat_quote_address и sales_flat_order_address ).

0 голосов
/ 23 сентября 2011

У меня это работает. Мне не нужно было добавлять что-либо еще.

Проблема была в том, что я скопировал файл config.xml из приложения / кода / core / Mage / Sales / etc в приложение / code / local / Mage / Sales / etc и сделал мои изменения в новом.

Когда я внес изменения в сам исходный файл config.xml и протестировал, значение настраиваемого поля было скопировано в адрес заказа при оформлении заказа.

Спасибо.

0 голосов
/ 21 сентября 2011

Вы также очистили / отключили кеш?Также не изменяйте конфигурационные файлы ядра, лучше создавайте модуль и расширяйте наборы полей своими

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