1

誰かが私のためにこれを書いてくれるとは明らかに期待していませんが、誰かがファイルの半詳細な説明と、これと同じくらい簡単なことをするためのアプローチを教えてくれませんか???

私はこれを2日間理解しようとしています。ここでの考え方は、一部の製品ではチェックアウト時に単純なライセンス キーを作成し、そのキーをサード パーティ システムに送信する必要があるということです。

これが当面のタスクです。

  1. 次のフィールドを持つ license_keys というデータベースに新しいテーブルを追加します: customer_id、transaction_id、license_key、および transaction_notes

  2. is_licensed_product という製品を構成するときに、新しいチェックボックスを追加します。

  3. このチェックボックスが [はい] の場合: チェックアウト時に、magento はこの形式でランダムな英数字キーを生成します ########-######## ここで、# は大文字または数字です。b. これは各項目に対して生成されます。c. これは、licence_keys db テーブルに transaction_id などとともに格納されます。リモート サーバーへの API 呼び出しが行われます。ラインアイテムごとにこの API が呼び出され、個々のライセンスがそこに送信されます。

  4. この情報が表示されるはずです。管理システムで b. クライアントに送信された領収書について c.チェックアウトページで

  5. a) ライセンス キーが生成されたとき、b) API 呼び出しが行われたとき、および c) API 応答が受信されたとき、このすべての情報も配列に入れ、db の transaction_notes に入れる必要があります。

4

1 に答える 1

3

これを行う方法はたくさんあります。おそらくsales_order_place_after[link]で、後処理を行うために使用できるオブザーバーが役立つ可能性があります。

オブザーバーで、配置されたばかりの注文オブジェクトを取得し、ライセンスキー付きの製品を探し、キーを生成し、挿入を行い、場合によっては API にアクセスするか、それをキューに入れます (応答が遅いまたは応答しないリモート システムの処理には注意してください) )。

このイベントを使用してセールス ルール使用の後処理を実行するコアの例については、Mage_SalesRule_Model_Observer::sales_order_afterPlace() [リンク]を参照してください。

于 2012-10-18T12:13:32.813 に答える