Carrinho de compras

2 respostas
F

Qual a forma mais prática de se fazer um carrinho de compras?

Pensei em criar na sessão 2 variaveis, id_produto, qt_produto, para guardar o id do produto e quantidade que o cliente vai comprar, o problema é quando o cliente adicionar o segundo produto ao carrinho…

Tem como adicionar ao id_produto, oque ja contem nele, mais o id do outro produto separado por #? ficando tipo assim: 365#265#336

Depois tem alguma função para separar os id’s??
no php tem a função explode(’#’,$id_produto)

2 Respostas

C

um exemplo simples de carrinho de compras que vc anexa ao objeto
Session ( usando Servlet’s é claro )

public class Carrinho implements Serializable{
          private Hashtable itens;
          public Carrinho()
          {
               itens = new Hashtable();
          }
          
          public void AdicionaItem( ItemCarrinho item )
          {
               itens.put( String.valueOf(item.getID), item ); 
          }
          
          public Enumeration getEnumeration()
          {
               itens.elements();
          }

          public ItemCarrinho searchItem( int itemID )
          {
                return (ItemCarrinho ) itens.get( String.valueOf(itemID) );
          } 
          // outros metodos de serviço ....
     }
            
          
     public class ItemCarrinho implements Serializable{
          private int ID;
          private int qtd;
          
          public ItemCarrinho( int ID , int qtd )
          {
               this.ID = ID;
               this.qtd = qtd;
          }
          public int getID(){ return ID;}
          public int getQtd(){return qtd;}
          public int setQtd( int newQtd ){ qtd = newQtd;}
     }

assim vc pode separar os dados sobre os itens do carrinho e tambem ter um conceito de carrinho, pois os itens vão estar contidos dentro de um carrinho, nada mais simples. As classes implementam Serializable , pois precisar se anexadas ao objeto Session do ServletRequest.
Espero q te ajude a iniciar.
[]'s
Claudio Gualberto.

Guilherme_Silveira

Fungindo do escopo, tomar muito cuidado com a orientacao a objeto e padroes :), nome de metodo comeca com letra minuscula, e o metodo getEnumeration deve se chamar getItems ou algo do genero :slight_smile: afinal o carrinho pode ter outras funcionalidades que tambem precise retornar uma lista.

Voltando ao assunto do topico, as classes nao precisam implementar Serializable para ser anexadas ao objeto Session. O objeto session possui um mapa normal, entao nao eh necessario nada de especial :slight_smile:

Exitem milhares de jeitos de implementar um carrinho, e o melhor em java - na minha opiniao, eh criar um objeto que representa ocarrinho e anexa-lo ao session (assim como o Claudio fez).

Guilherme Silveira

Criado 1 de dezembro de 2002
Ultima resposta 2 de dez. de 2002
Respostas 2
Participantes 3