2014-11-27 2 views
1

У меня проблема с попыткой показать уже сохраненный платежный адрес в процессе оформления заказа. В принципе, существующий код (OnePageCheckout) использует следующий код, чтобы показать выпадающий список с существующими адресами:Magento: не удается получить сохраненный адрес фактурирования

<?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 

доставки правильно, Billing показывает значение Доставки.

Но если выполнить следующий запрос на БД:

select * from sales_flat_quote_address where customer_id = <my_customer_id>; 

я могу ясно видеть 2 адреса, один с address_type судоходства, один с address_type счетов.

Указанный метод here имеет ту же проблему.

Я застрял ... любые намеки приветствуются. Благодарю.

EDIT:

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

Magento сохраняет адрес клиента (доставку и только биллинг), как и в sales_flat_quote_address как продажи кавычки атрибут не как атрибут клиента. Таким образом, мы можем сохранить два разных адреса. И, конечно же, вы можете увидеть два разных адреса биллинга и доставки. Но в этой таблице есть поле same_as_billing. Проверь это. Эта заявка содержит 0 или 1. Magento будет отображать один и тот же адрес для отправки и выставления счетов, если он содержит 1, иначе он отобразит два разных адреса (на самом деле есть опция во время регистрации, такая же, как и адрес доставки). Думаю, я решил вашу проблему.

Update:

Это не является необходимым, что клиент должен иметь адрес по умолчанию.

+0

Спасибо за ваш ответ, просто отметившись на столе, пожалуйста, проверьте мой обновленный вопрос (чтобы отформатировать вывод запроса). –

+1

Похоже, что этот клиент еще не поставил ни одного заказа, и он не сохранил его (любой) адрес по умолчанию. Это означает, что у него нет адреса по умолчанию. Поэтому он вернет null. – Elavarasan