multipleで紐付けた項目のupdateについて

###・現在Amazonのような購入できるアプリをadaloで作成しております。カート機能を作っており、支払いが完了した際に現在のカートに入っているものを削除し、現在カートに入っているものを購入履歴に追加したいと考えております。
・その際に両方multipleで紐づけているものをupdateしようとした際に項目からNo Changeしか選べずaddやremoveができない状況です。
どのようにすれば上記の設定ができるかご教示いただきたいです。

スクリーンショット

試したこと

商品のデーターベースから変えてみようかなと思いましたが、updateの際にlogged in user しか選べず失敗しました。
zapierなどでやるしかないのかなと思っております。

###補足情報
ChatGPTに聞いてみたところ下記のようにでましたがうまくいきませんでした。

  • 購入履歴に追加」アクション
  • コレクション: 「購入履歴」(User-Purchased Itemsのような新しいコレクションを作成するのもあり)
  • フィールド設定:
    • ユーザー: Logged In User
    • 商品: カートに入っている商品
  • アクション: Create Record(新しいレコードを作成)
  • 「カートから削除」アクション
  • コレクション: 「カート」
  • フィールド設定:
    • ユーザー: Logged In User
    • 商品: カートに入っている商品
  • アクション: Delete Record(レコードを削除)

何かわかることなどあればお願いいたします。

データの構成がわからないのですが、AdaloのAddとRemoveは、Updateの対象がN:Nで無いと表示されないです。

「No Change しか選べない」問題の原因CartProducts リレーションが 1:N になっている可能性M:N に修正しても同じということでしょうか?

参考のデータ

:small_blue_diamond: データ構造の確認

  1. カート(Cart)コレクション
  • User(ユーザー / Relationship: Users → Cart(1:N))
  • Products(カートに入っている商品 / Relationship: Products → Cart(N:N))
  • Total Price(合計金額)
  1. 購入履歴(Purchase History)コレクション
  • User(購入したユーザー / Relationship: Users → Purchase History(1:N))
  • Products(購入した商品 / Relationship: Products → Purchase History(N:N))
  • Purchase Date(購入日)

:small_blue_diamond: 設定手順

購入完了時に「購入履歴に追加」→「カートから削除」の順でアクションを実行する必要があります。

:one: 「購入履歴」に現在のカートの内容を追加

  1. 「ボタン(購入する)」のクリックアクションを設定
  2. 「購入履歴」にレコードを追加
  • Collection: 購入履歴

  • User: Logged In User

  • Products: Logged In User → Cart → Products(カートに入っている商品)

  • Purchase Date: Current Time

  • ProductsLogged In User → Cart → Products を渡すことで、カートにあるすべての商品をまとめて「購入履歴」に追加。

おそらくですが、データ構造の問題か(適切にRelationしてないか?)途中の遷移が間違っているだけだと思います。データ構造や、途中遷移のスクリーンショットなど、貼り付けてもらえれば、回答してもらいやすいかと思いますよ^^

「いいね!」 1

返信ありがとうございます。

ご指導の通り進めてみたのですが購入履歴にcreateする際の画面にProduct(N:Nのもの)が項目に出てきませんでした。
画像の選べるコスメがいわゆるProductのことです。
重ねての質問で恐縮ですがご指導のほどよろしくお願いいたします。


つまり、購入するボタンを押したときに、
すでに「選べるコスメ」で選んでいる複数のアイテムを
購入履歴に入れたいということですよね?

多分ですが、購入するボタンのところで、
購入履歴をCreateしてないのではないでしょうか?

CreateとAddは、同時に行えません。
また、今回Addする予定の購入履歴のコレクションは、購入時には作成されてない状態です。

なので、、、購入ボタンを押すときに、
:one: まず、購入履歴を Create(作成) する
:two: そのあと、作成した購入履歴に Update(更新してアイテムを追加) する

この2つのステップを「購入する」ボタンのアクションに設定すればOKだと思いますよー。

一つのボタンで、Create +Updateをする必要があります。


ご丁寧に実際にお手本まで作っていただきありがとうございます。

おかげさまで無事設定することができました。
一度createした後でということで実際にカートに入っているものを消すということもcreate→deleteでできました。

これからもわからないことがあった際には質問させていただくと思います、今後ともご指導ご鞭撻のほどよろしくお願いいたします。

「いいね!」 1