<div dir="ltr">Thanks for all the responses. <div><br></div><div>So, it&#39;s just a matter of using standard Catalyst::Plugin:Session, and maybe also Catalyst::Plugin::Session::Store::DBIC and then write some business logic to either use the session_data from the sessions table (anonymous user) or the session_data from the users table (logged in user)? I&#39;d appreciate if you can share more details on the implementations (plugins you use/recommend?)</div><div><br></div><div>I&#39;m asking because we used to have an old catalyst app relying on Catalyst-Plugin-Session-PerUser for this, but it&#39;s currently broken. It used to work well with the older (deprecated) Authentication::Store::DBIC, but switching to the current Catalyst-Authentication-Store-DBIx-Class breaks it. </div><div><br></div><div>Anyway, I assume that so far, with the info we have, we will have to rewrite the logic within <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Catalyst-Plugin-Session-PerUser in our app. </span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Cheers,</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">--</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">fernan</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 26, 2018 at 11:54 AM, Hector Azpurua <span dir="ltr">&lt;<a href="mailto:h3ct0r.ml@gmail.com" target="_blank">h3ct0r.ml@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Fernan,<div><br></div><div>The I did for a small/medium size enterprise it was:</div><div><ul><li>Cart data is stored at DB level, so the information can be replicated among all devices and browsers sessions.</li><li>If an Anonymous user has cart data and then log in, then merge previous stored cart with the new cart (business rules apply here).</li></ul><div>It wasn&#39;t difficult to implement using the already available catalyst plugins and, if needed, JSON serialization.</div></div><div><br></div><div>Good luck!</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">2018-04-26 11:31 GMT-03:00 Fernan Aguero <span dir="ltr">&lt;<a href="mailto:fernan.aguero@gmail.com" target="_blank">fernan.aguero@gmail.com</a>&gt;</span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Hello,<div><br></div><div>what is the current recommended way of developing a persistent shopping-cart-style functionality in a catalyst app? </div><div><br></div><div>We would like to be able to support the following:</div><div>i) store session data in the server for logged in users </div><div>ii) keep session data across sessions, and across browsers (e.g. computer at home, resume session using computer at work)</div><div>iii) allow users to start working anonymously, then merge session data (shopping cart) smartly upon logging in </div><div><br></div><div>Thanks for any pointer. Cheers,<span class="m_-2374985954058019693HOEnZb"><font color="#888888"><br clear="all"><div><br></div>-- <br><div class="m_-2374985954058019693m_-3546893750833611541gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:12.8px">fernan</span></div></div></div>
</font></span></div></div>
<br></div></div><span class="">______________________________<wbr>_________________<br>
List: <a href="mailto:Catalyst@lists.scsys.co.uk" target="_blank">Catalyst@lists.scsys.co.uk</a><br>
Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" rel="noreferrer" target="_blank">http://lists.scsys.co.uk/cgi-b<wbr>in/mailman/listinfo/catalyst</a><br>
Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" rel="noreferrer" target="_blank">http://www.mail-archive.com/ca<wbr>talyst@lists.scsys.co.uk/</a><br>
Dev site: <a href="http://dev.catalyst.perl.org/" rel="noreferrer" target="_blank">http://dev.catalyst.perl.org/</a><br>
<br></span></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
List: <a href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br>
Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" rel="noreferrer" target="_blank">http://lists.scsys.co.uk/cgi-<wbr>bin/mailman/listinfo/catalyst</a><br>
Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" rel="noreferrer" target="_blank">http://www.mail-archive.com/<wbr>catalyst@lists.scsys.co.uk/</a><br>
Dev site: <a href="http://dev.catalyst.perl.org/" rel="noreferrer" target="_blank">http://dev.catalyst.perl.org/</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:12.8px">fernan</span></div></div></div>
</div>