pfaffman
(Jay Pfaffman)
1
そこで、Discourse のインストールを購入できるようにする「CreateServer」という製品を作成しました。これにより、ユーザーは CreateServer グループに追加されます。サーバーが作成されると、そのユーザーはグループから除外されます。これは問題ありません。
しかし、ユーザーが 2 台目のサーバーを取得したい場合、すでに製品を購入しているため購入できません。同じ製品を複数回購入できるようにする方法はありますか?あるいは、プラグインで購入済みのサブスクリプションレコードを変更し、その後再度購入できるようにするという解決策もあります。インストール完了後にはすでに CreateServer グループから除外されています。
例えば、以下のような処理です。
product = DiscourseSubscriptions::Customer.find_by(user_id: 2, product_id: create_server_id)
product.product_id = 'install fulfilled'
product.save
これにより、ユーザーが再度購入できるようになります。他の機能に支障をきたす可能性はあるでしょうか?
「いいね!」 3
justin
(Justin DiRose)
2
ワンタイム決済を利用している場合、商品 ID を変更しても、決済履歴の確認機能を除き、問題が生じることはありません。
ただし、ユーザーがワンタイム購入商品を複数回購入できるようにする機能を追加する案には賛成です。
「いいね!」 5
pfaffman
(Jay Pfaffman)
4
それはどれほど難しいのでしょうか?私は少し驚きました。例えば、以前に期限切れになったサブスクリプションに対して、新しいサブスクリプションを購入することは可能なのでしょうか?
「いいね!」 3
Jay、もし最初のサブスクリプションがキャンセルされ、後で同じものを再購入する場合も同様でしょうか?つまり、月次サブスクリプションが1サイクル後にキャンセルされ、顧客が翌年に戻ってきた場合です。
「いいね!」 1
justin
(Justin DiRose)
7
いいえ、サブスクリプションがキャンセルされ、Subscriptions 側で処理が完了すれば、再度購入して復元できます。ただし、まだ有効なサブスクリプションが残っている場合(自動更新はキャンセルされている場合でも)、購入することはできません。
「いいね!」 3
pfaffman
(Jay Pfaffman)
8
では、一回限りの購入は自動的に非アクティブとしてマークされるのでしょうか?
「いいね!」 1
justin
(Justin DiRose)
9
Stripe では、単回購入は全く異なる仕組みのため、確認が必要です。アイデアはありますが、私のプラグイン開発の大部分は、新年以降まで見送られています。
「いいね!」 5
pfaffman
(Jay Pfaffman)
10
ああ!それで納得がいきました。私のプラグインには他にも理解できていない無数の部品が動いており、じっくり確認する時間がなかったのです。
それが事実でないことには、私は一切関わりたくありません!

「いいね!」 5
pfaffman
(Jay Pfaffman)
11
こんにちは、ジャスティンさん。再びこの件について触れています。実際には、複数のインストールを購入した顧客はほとんどいないため、複数の購入については気にしないことにしました。しかし、ユーザーが一度しか購入できない場合、サーバーインストールの購入テストが難しくなることに気づきました。
どうやら、serialize_product が製品がサブスクリプションかどうかを決定し、それが購入可能かどうかを決定しているようです。
ここで必要なのは、購入した製品がワンタイム製品である場合に subscribed を true に設定しないようにすることでしょうか?その情報が少なくともテーブル結合(あるいは別のリクエスト)を必要とするように見えるため、どのように実現すればよいかすぐにわかりません。
現時点では、テンプレートをハックして常に支払いリンク/ボタンを表示するようにしました({{#if product.subscribed_JP_disabled}} のようなもの)。これで複数の購入が可能になっていますが、参考までにお伝えします。
「いいね!」 6
justin
(Justin DiRose)
12
いいですね!それはリストに入っていますが、まずはより需要の高い機能を実装する予定です。具体的にはクーポン機能です。
「いいね!」 5
こんにちは、
この機能にも大変興味があります。アップデートを楽しみにしています!
「いいね!」 3
justin
(Justin DiRose)
14
ご投票ありがとうございました、ハッピーケイキデイ!
近々リストに追加する予定です 
「いいね!」 6
justin
(Justin DiRose)
16
遅れて申し訳ありませんが、これはすでにマージされました!
「いいね!」 5