Magento2: Minicart está cheio enquanto o Carrinho está vazio

12

Muitos de nossos clientes reclamam que adicionam itens ao carrinho e, quando fazem o checkout, são redirecionados para um carrinho vazio.
Nós pensamos que isso poderia resultar de um tempo de sessão muito curto, por isso tentamos aumentar o tempo de vida do cookie / sessão para 86400 (no administrador e no servidor).
Depois disso, tentei reproduzir o problema e consegui obter um comportamento estranho, como você pode ver na imagem em anexo.
Eu adicionei produtos ao carrinho, voltei depois de 20 a 30 minutos e vi meus itens no minicart. então procedi ao checkout e ele me redirecionou para este carrinho vazio enquanto o minicart ainda estava mostrando meus itens (atualizar a página também não funcionou): insira a descrição da imagem aqui

-- Qualquer ideia?


ATUALIZAÇÃO: Até o momento, resolvemos esse problema alterando novamente a configuração da sessão para usar arquivos (Memcached desativado). Eu sei que o Magento recomenda o uso do Memcached e não tenho idéia do que causou esse problema ...

Pini
fonte

Respostas:

2

app \ code \ Vendor \ Extension \ etc \ frontend \ section.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd">
    <action name="extension/controller/action">
        <section name="cart"/>
    </action>
</config>

Neste nome de parâmetro de ação, você deve passar a ação completa (por exemplo, checkout / carrinho / add) na qual o carrinho é atualizado. Isso significa que você exclui ou adiciona programaticamente um produto ao carrinho no carrinho de compras.

Por fim, comente abaixo se tiver algum problema ao usar este código.

Feliz codificação!

Yuvrajsinh Engenheiro de TI
fonte
0

O Magento coloca todos os dados específicos do cliente (carrinho de compras, nome do cliente, etc ...) no armazenamento local para impedir o armazenamento em cache de proxies como o Varnish. Posteriormente, esses dados são inseridos na página usando JS. O comportamento que você observou é uma configuração incorreta da vida útil do cache. Idealmente, ele deve estar alinhado com a vida útil da sessão.

Andrey Konosov
fonte
Como eu disse, aumentamos a sessão e o cookie para 86400, o que não ajudou. A única coisa que parece corrigir o problema foi desativar o memcached (que foi configurado conforme sugerido pelos documentos do Magento). Paramos de verificar o problema depois disso, então não tenho idéia do que realmente o causou.
Pini