RetrieveProducts メソッドが呼び出されたときには、最新のプロダクトのメタデータと、必要に応じて現在のユーザーのプロダクト所有状態を取得する必要があります。
自作のストアで初期化を行うにあたり、処理を完了させるにはIStoreCallback の OnProductsRetrieved メソッドを呼び出す必要があります。そして購入可能なプロダクトを表す ProductDescription のリストを引数として取得することができます。
プロダクトをユーザーが所有している場合は、自作のストアではレシートとトランザクション ID を使用して ProductDescription を上書きしても構いません。Unity IAPは、処理が完了していないトランザクションがあると ProcessPurchase メソッドを実行しようとします。
ユーザーがオフライン状態で接続が回復するまでストアとの接続をリトライする必要がある場合は、必要以上にリトライの再試行を行わないようにしてゲームパフォーマンスに影響を与えないよう注意してください(毎フレームでリトライするのではなく数秒ごとに、など)。
プロダクトが致命的なエラーが発生したために受け取れない場合は、ストアの構成に関するエラーとして IStoreCallback の OnSetupFailed メソッドを、エラー内容を表す InitializationFailureReason を引数として渡す必要があります。