2012-03-26 11 views
1

私たちは、ピックアップポイントのネットワークで動作する配送業者向けのプロジェクトに取り組んでいます。顧客は、チェックアウトのピックアップポイント(住所に最も近い)を選択し、注文が到着した時点でピックアップポイントをピックアップします。チェックアウト時にMagentoに配送先アドレスを保存しないようにする

私たちが直面している問題は、顧客が決済を通過してすぐに登録することを選択すると、保存されている顧客の配送先住所がピックアップポイントからのものであるということです。本当の問題は、ラベルなどを印刷できるように注文時にピックアップポイントアドレスが必要ですが、Magentoがその住所を顧客に保存しないようにする必要があるためです。以下のチェックアウトで可能な配送先住所。

アイデアは、これまでに試した:

  • オブザーバーを "customer_address_save_before" に。私は住所の保存を防ぐことができますが、私はそれがチェックアウトプロセスで呼び出されたかどうかを検出することはできません。
  • ピックアップポイントアドレスが保存されているオーバーライドを使用します。 "save_in_address_book"をfalseに設定しても何の効果もありません(登録していると思われます)。

私が持っている最後のアイデアは、ゲストのチェックアウトをシミュレートすることですが、どうすればいいのかわかりません。

誰かが正しい方向に向いていますか?

答えて

2

私はsave_beforeオブザーバーと一緒に行きました。デバッグやMage :: log() 'ingを試しましたか?オブザーバを設定する際に問題が発生している可能性があります。

save_beforeがトリックをしない場合、保存されたアドレスをクリアするsave_afterは安全であるはずです。

+0

私のオブザーバが適切に設定されていると、アクションが実行されます。問題は、customer_address_save_beforeアクションが、顧客が自分のアドレスを手動で追加または変更したときにも呼び出され、ユーザーがチェックアウトを介して登録するときにアドレスが保存されないようにしたいということです。 もちろん、これはcustomer_address_save_afterイベントと同じです。 – Jeroen

+0

ご清聴ありがとうございます。私はあなたが「それが呼び出されたかどうかを知ることができません」という意味では完全にはっきりしませんでしたが、今理解しています。 ユーザ入力アドレスをこれらのピックアップセンタの1つから確実に区別できるように、住所のカスタム属性を設定していますか? そうでない場合は、拡張機能を更新することができますが、それはあなたが望んでいたものよりもわずかに単純な解決策に過ぎません。 – kalenjordan

0

OnePageCheckoutを使用している場合は、opcheckout.jsを確認してください。これは、配送先アドレスがajax呼び出しを使用して保存されている場所です。