none
MVC, Persistencia de dados e carrinhos de compras... (Curiosidade - Dúvida) RRS feed

  • Pergunta

  • Oi gente, esse aqui é um misto de dúvida com curiosidade e talvez um pouco de conceito.

    Queria saber a diferença e o tratamento para o caso pra mim hoje 'hipotético*' de um carrinho de compras anonimo e MVC.

    Estudo de caso(S):

    Anônimo entra no portal de compras de sua preferencia, navega nas páginas de produtos, escolhe os produtos X, Y e Z. 2 quantidades de X, uma de Y e uma de Z.

    Anônimo -  tem de ver todos os itens que adicionou ainda no carrinho

    • Ao logar o mesmo tem de ser mantido.

    Anônimo sai da página - Anônimo volta dias depois
    Anônimo Fecha Aba
    Anônimo Fecha Browser
    Anônimo Tem seu dispositivo reiniciado 

    • Ao voltar à pagina anônimo tem de ver todos os itens que adicionou ainda no carrinho.
    • Ao logar o mesmo tem de ser mantido.

    Anônimo partilha IP e login na rede com outras máquinas e as outras máquinas estão fazendo o mesmo processo com produtos e quantidades diferentes e repetindos os mesmos casos acima.**

    • Existe a chance de o carrinho aqui se misturar? Seja no momento do login, ou mesmo ao retorno do processo como descrito nos casos acima? Caso exista, como evitar?

    Existe algum tratamento especial necessário pra isso?, algum cuidado com session a mais?, algum problema, ou necessidade especial de tratamento para usuário logado no sistema?

    Alguém já passou por isso na prática? existe alguma diferença com MVC?

    Já trabalhei em projetos o 0 de commerce, usando o comerce server 2009 e o 2009 R2, mas ae é sharepoint, webforms e o sistema já tem lá tudo pronto em mais 'alto nível', dae fiquei com dúvida, até pela conversa contada em **.

    *hipotético, pois atualmente nem na empresa que presto consultoria, nem em meu trabalho pessoal tenho um caso como o descrito em minha dúvida.

    ** Certa vez em discussão sobre ASP.NET MVC ouvi e não pensei sobre, um caso de uma empresa corretora da bolsa de valores de nome '###', que por não ter tomado os devidos cuidados (acho que usaram Castle no projeto) muitas operações 'flutuavam' de uma tela pra outra em casos semelhantes como o descrito acima, o que gerou muita confusão por lá... e o caso foi explicado como um possível 'problema', ou 'caracteristica, do ASP.NET MVC.
    Procede?

    Abraços :D


    Aprendendo Ad Eternum Se minha resposta foi útil por favor marque, se minha resposta respondeu completamente sua dúvida, marque-a como resposta, se houve outra resposta melhor, marque ela. Assim facilita a busca e melhora a organização do fórum e o nosso aprendizado.

    sexta-feira, 1 de fevereiro de 2013 13:33

Todas as Respostas

  • Nunca trabalhei com carrinho de compras mas acho que o ideal seria cookies ou o localStorage do js para guardar os ids dos itens.

    Session não ia ser bom pois como você mesmo disse, a lista de itens deve aparecer mesmo depois de dias.

    Sobre compartilhar itens com os pcs da rede isso não vai acontecer pois quase todos os sites usam cookies e nunca vi um pc acessar o do outro hehe.

    Quanto ao MVC tb acho que não a menos que o desenvolver esteja usando uma biblioteca bugada ou programar muito errado.

    Mas enfim, não tenho ctz disso pois nunca precisei fazer isso.

    +1 pra você pela boa pergunta :)


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    sexta-feira, 1 de fevereiro de 2013 15:06
  • Bom, sou programador a muito pouco tempo, e devido a isso, conheço muito pouco......rsrsrsr......mas, já implementei um sistema de carrinho......e diante deste contexto, só uma pergunta me vem a cabeça......por que ou pra que mostrar o carrinho do usuário cheio com produtos que ele já comprou ou simplesmente desistiu de comprar? Fazendo isso eu não estaria, por exemplo, aumentando muito o meu banco de dados? Pois seria necessário guardar estas informações em algum lugar.....(usuario x, no dia y, tentou ou comprou o produto z)....será que guardar um log das atividades não seria proveitoso? E depois um Reader neste log, possibilitaria ao usuario x visualizar todas as suas interações com o sistema?

    sexta-feira, 1 de fevereiro de 2013 16:02
  • Bom, sou programador a muito pouco tempo, e devido a isso, conheço muito pouco......rsrsrsr......mas, já implementei um sistema de carrinho......e diante deste contexto, só uma pergunta me vem a cabeça......por que ou pra que mostrar o carrinho do usuário cheio com produtos que ele já comprou ou simplesmente desistiu de comprar? Fazendo isso eu não estaria, por exemplo, aumentando muito o meu banco de dados? Pois seria necessário guardar estas informações em algum lugar.....(usuario x, no dia y, tentou ou comprou o produto z)....será que guardar um log das atividades não seria proveitoso? E depois um Reader neste log, possibilitaria ao usuario x visualizar todas as suas interações com o sistema?

    Que ele já comprou não, que ele vai comprar...

    pra que guardar o carrinho?

    Questões de B.I. por exemplo, se tiver curiosidade posso contar vários contextos.


    Aprendendo Ad Eternum Se minha resposta foi útil por favor marque, se minha resposta respondeu completamente sua dúvida, marque-a como resposta, se houve outra resposta melhor, marque ela. Assim facilita a busca e melhora a organização do fórum e o nosso aprendizado.

    sexta-feira, 1 de fevereiro de 2013 16:47
  • Guilherme,

    Como muito bem respondeu o Murilo, para que você tenha acesso as informações de um usuário mesmo após ele sair do site, e do browser, deve utilizar cookies ou o localStorage.

    Como o usuário é anonimo vc não tem como guardar isso no seu servidor, portanto, se ele entrar em outra máquina você não terá como descobrir os possíveis itens em carrinho de compras em outra máquinas.


    Alexsandre R. Almeida
    E-mail: alexsandrer@gmail.com
    Twitter: @AlexRAlmeida

    sexta-feira, 1 de fevereiro de 2013 16:48
  • Guilherme,

    Como muito bem respondeu o Murilo, para que você tenha acesso as informações de um usuário mesmo após ele sair do site, e do browser, deve utilizar cookies ou o localStorage.

    Como o usuário é anonimo vc não tem como guardar isso no seu servidor, portanto, se ele entrar em outra máquina você não terá como descobrir os possíveis itens em carrinho de compras em outra máquinas.


    Alexsandre R. Almeida
    E-mail: alexsandrer@gmail.com
    Twitter: @AlexRAlmeida

    Alxsandreer se guardar num cookie como vou fazer BI por exemplo?

    Quer um exemplo de utilidade pra uma loja desse artificio?

    Vou fingir que você disse que quer :p

    O adm da loja pode ver produtos que estão mais sendo esquecidos no carrinho, ou seja que se tem intenção de compra mas acabam não sendo finalizados e fazer promoções dirigidas dele (caso logado).

    No caso anonimo é interessante pra BI fazer analise dos carrinhos 'esquecidos'.

    E eu não sei se cookies seria a resposta, mas e o caso do '**'.

    não teria uma solução melhor?

    No caso do Commerce por exemplo:

    http://stackoverflow.com/questions/1532593/commerce-server-2009-for-how-long-an-anonymous-user-basket-information-is-stor

    http://www.c-sharpcorner.com/uploadfile/prasham/how-to-add-product-to-the-basket-in-commerce-server-2009/


    Aprendendo Ad Eternum Se minha resposta foi útil por favor marque, se minha resposta respondeu completamente sua dúvida, marque-a como resposta, se houve outra resposta melhor, marque ela. Assim facilita a busca e melhora a organização do fórum e o nosso aprendizado.


    • Editado Guilherme MA sexta-feira, 1 de fevereiro de 2013 17:11
    sexta-feira, 1 de fevereiro de 2013 17:10