Eu tenho a seguinte classe que estou usando para testar a adição ao carrinho de maneira personalizada;
use Magento\Framework\App\Action;
use Magento\Checkout\Model\Cart;
class Add extends Action\Action
{
protected $cart;
public function __construct(
Action\Context $context,
Cart $cart
){
$this->cart = $cart;
parent::__construct($context);
}
public function execute()
{
$this->cart->addProductsByIds([1])
->save();
}
}
Isso funciona muito bem. Quando você visualiza o carrinho, ele mostra meu item, tudo parece legal no banco de dados, etc. No entanto, o minicart ainda mostra como se não houvesse itens na cesta.
Se eu adicionar outro produto ao carrinho usando o botão "adicionar ao carrinho" no produto ou nas páginas de listagem, ele adiciona ao carrinho e atualiza o minicart para mostrar os dois itens.
Onde ele aciona o minicart para se atualizar ou como o minicart sabe que precisa atualizar?