【问题标题】:Magento - Custom attribute in customer address, not copied to sales_flat_order_address and sales_flat_quote_address on checkoutMagento - 客户地址中的自定义属性,结帐时未复制到 sales_flat_order_address 和 sales_flat_quote_address
【发布时间】:2011-11-21 15:15:05
【问题描述】:

我在客户地址中创建了一个新属性“县”。它工作正常,我可以从前端保存此字段中的值。

我希望此字段在订单地址中可用。 所以我在表格中添加了一列“县”

“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,
客户地址

但是当我做单页结账时,这个字段的值并没有复制到订单中的地址。我在结帐时选择一个现有地址,并在此字段中有值作为帐单地址和送货地址。

目前,我还没有在结帐时编辑任何模板文件以包含此字段。但是当我选择现有地址时,这应该不会导致问题,对吧?

我正在使用 magento 1.5.1.0。虽然我很了解 php,但我是 magento 的新手。

我已经检查了问题Magento: save custom address attribute in checkout 并按照答案中的说明做了所有事情。

我错过了什么吗?如果是这样,请提供您的建议。 谢谢。

【问题讨论】:

    标签: php magento attributes checkout


    【解决方案1】:

    您是否检查了 Sales/etc 中的 Config.xml,并查看了“sales_copy_order_billing_address”部分。

    这定义了从 table1 复制到 table2 中的“映射列”的列。

    因此,将县添加到列表中,将配送地址和帐单地址的数据复制到任何位置。

    当执行如下代码时会使用 XML 映射:

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

    第一个参数是“from table column”节点映射,第二个参数是“to table column”映射。

    希望这行得通。

    【讨论】:

      【解决方案2】:

      我已经尝试过了,它对我有用,请将此 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>
      

      【讨论】:

        【解决方案3】:

        在您的模块的 config.xml 文件之一中尝试此操作...

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

        确保您已在两个表(sales_flat_quote_addresssales_flat_order_address)中创建了 county 字段。

        【讨论】:

        • 您错过了 的结束部分
        【解决方案4】:

        您是否也清除/禁用了缓存? 也不要修改核心配置文件,最好自己创建模块和扩展字段集

        【讨论】:

        • 是的,我在清除缓存后试过了。现在我正在修改核心文件。如果它有效,那么我将扩展模块并在那里进行更改。谢谢。
        【解决方案5】:

        我已经让它工作了。我不必添加任何其他内容。

        问题是,我已将 config.xml 从 app/code/core/Mage/Sales/etc 复制到 app/code/local/Mage/Sales /etc 并在新的中进行了更改。

        当我对原始 config.xml 文件本身进行更改并进行测试时,自定义字段值已复制到结帐时的订单地址。

        谢谢。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-17
          • 2021-10-10
          相关资源
          最近更新 更多