我在结帐过程中尝试显示已保存的帐单邮寄地址时遇到问题。 基本上,现有代码(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 |
+------------+-----------------+--------------+
答案 0 :(得分:1)
Magento保存客户的地址(仅限运费和账单),如sales_flat_quote_address
中的销售报价属性,而不是客户属性。所以我们可以保留两个不同的地址。当然,您可以看到两种不同的地址计费和运输。但是该表中有一个名为same_as_billing
的字段。看一下这个。此字段包含0
或1
。如果Magento包含1
,它将显示相同的送货地址和结算地址,否则它将显示两个不同的地址(实际上在结账时有选项与送货地址相同)。我想我已经解决了你的问题。
<强>更新强>
客户没有必要拥有默认地址。