Magento:无法检索已保存的帐单邮寄地址

时间:2014-11-27 10:26:39

标签: php magento magento-1.7

我在结帐过程中尝试显示已保存的帐单邮寄地址时遇到问题。 基本上,现有代码(OnePageCheckout)使用以下代码显示包含现有地址的下拉列表:

<?php echo $this->getAddressesHtmlSelect('billing') ?> // For billing
<?php echo $this->getAddressesHtmlSelect('shipping') ?> // For shipping

问题是结算下拉列表与发货下拉列表的值相同。

显示下拉列表的代码如下:

<?php echo $this->getAddressesHtmlSelect('billing') ?>  // for billing
<?php echo $this->getAddressesHtmlSelect('shipping') ?> // for shipping

发货正确,结算显示发货价值。

但是如果我在DB上执行以下查询:

select *  from sales_flat_quote_address where customer_id = <my_customer_id>;

我可以清楚地看到2个地址,其中一个地址为address_type,另一个地址为address_type

报告的方法here存在同样的问题。

我被困了......任何提示都很受欢迎。感谢。

编辑:

MySQL SELECT:

SELECT address_id, same_as_billing, address_type FROM sales_flat_quote_address WHERE customer_id = 9419;

+------------+-----------------+--------------+
| address_id | same_as_billing | address_type |
+------------+-----------------+--------------+
|      28338 |               0 | shipping     |
|      28353 |               0 | billing      |
|      28354 |               0 | shipping     |
+------------+-----------------+--------------+

1 个答案:

答案 0 :(得分:1)

Magento保存客户的地址(仅限运费和账单),如sales_flat_quote_address中的销售报价属性,而不是客户属性。所以我们可以保留两个不同的地址。当然,您可以看到两种不同的地址计费和运输。但是该表中有一个名为same_as_billing的字段。看一下这个。此字段包含01。如果Magento包含1,它将显示相同的送货地址和结算地址,否则它将显示两个不同的地址(实际上在结账时有选项与送货地址相同)。我想我已经解决了你的问题。

<强>更新

客户没有必要拥有默认地址。