Somar itens de carrinho não logado com itens do carrinho logado

Olá Povo Brasileiro que não desiste nunca.
Eu criei uma loja que deixa o usuario adicionar itens ao carrinho antes de logar.
Depois que ele loga eu copio os itens sem usuário atrelado e os repito para o usuário logado.

O legal disso é que se o usuário já tinha um carrinho e comprou mais produtos, estando deslogado, esses novos produtos se juntam aos outros produtos após o login.

Meu problema é que, se ele comprar um produto que ja havia comprado quandoestava logado, eu não consigo somar a quantidade desse produto, não logado, ao produto que já estava lá depois que ele logou.
O resultado acaba sendo o produto registrado 2x.

Tipo:
2x pasteis
1x batata frita
1x refrigerante
3x pasteis

em vez de:
5x pasteis ( a soma de 2 antes de logar + 3 que ja estava no carrinho logado ).
Alguem @renatoasse me ajuda?

Ola.
Não sei como voce esta fazendo a junção dos itens do carrinho deslogado com o carrinho logado., mas antes de voce fazer essa junção dos carrinhos , verifique se esse item já está no carrinho logado.
Se estiver some a quantidade do carrinho deslogado a quantidade do carrinho logado e faça uma alteração do item do carrinho logado para mudar somente a quantidade.
Se não tiver o item no carrinho locado, crie um novo item no carrinho logado. Voce pode fazer essa consulta ( se já exite ou não) na condição only when no workflow de criação dos itens no carrinho logado.

Muito obrigado pela sua resposta rápida.
Para juntar os itens do carrinho não logado com o carrinho logado eu joguei o UNIC ID do carrinho na URL ao logar, ele entrar no usuário e quando da “reload” na página com o UNIC ID ainda lá, ele copia tudo que está neste carrinho e joga para o carrinho logado. Isso foi bem simples de fazer.

Só que eu não sei como detectar quais itens estão repetidos nos 2 carrinhos. Esse é o grande problema. Não consigo detectar essa dualidade nem antes de juntar os itens no mesmo carinho nem depois de eles já estarem juntos.

Fiz um video para mostrar o que te disse, mas não consegui mandar por aqui.
No botão para passar os dados do carrinho deslogado para o carrinho logado
coloquei 2 custon states: rodar loop: yes/no e nome ( para colocar o nome do produto- no seu caso o id do produto).
No workflow creie um novo evento do tipo general - do every 5 seconds.
Dentro do evento mudei para cada 1 segundo e coloquei as seguintes ações:
1a ação: set state custon edit nome valor primeiro item do banco 1- grupo carrinho deslogado campo nome.
2a ação: data, make changes to thing onde thing to change : do the search for banco2( seu bando do carrinho logado) type banco2
add a new contraint nome = button, custon edit nome, ok - first item
change a field quant = rp banco1( carrinho deslogado) first item quantidade + banco2 quantidade
only when rpbanco2 list nome contain button custon edit nome and not empty
3o ação: create a new thing type banco2 fields nome e quantidade vindos do banco 1
only when rp banco2 nome doesn´t contain button custon edit nome e nome not empty
4 ação; delete firts item banco 1
5a ação set state button custon edit rodar lopp value 'no ’
only when rp banco 1 list count is 0

não sei se voce vai conseguir entender assim, se quizer mando o video para voce por whatassp ou telegran.

vi seu vídeo e agradeço imensamente pela valiosa contribuição no meu tão sonhado projeto. rsrs