Entenda o sistema de estoque e reserva do Magento MSI
Não fique confuso com a nova funcionalidade de reserva de estoque do Magento MSI, no post explico como a reserva de estoque funciona.
Vejo vários lojistas e desenvolvedores confusos com a nova funcionalidade de reserva de estoque, então hoje explico como a reserva de estoque funciona e como você pode explicar isso para seu cliente quando ver a quantidade em estoque diferente da quantidade vendível como na imagem acima.
Apenas a reserva inicial (quando o pedido é feito) tem um valor de quantidade negativo, todas as reservas adicionais criadas durante o processamento do pedido devem compensar o inicial, quando o pedido chegar ao estado final (completo | cancelado) - a soma de todas as reservas criadas deve ser ZERO.
Magento MSI e reserva de estoque
Nesse exemplo demonstro como funciona internamente a lógica quando uma compra é feita, faturada e enviada.
Estoque inicial
Estoque total de 15 produtos, sendo 5 no seu CD (centro de distribuição) na França e outros 10 no seu CD na Itália.
Compra feita
Seu cliente faz uma compra de 5 itens.
Reserva feita
A reserva de 5 itens é adicionada, como eles foram comprados a reserva é de -5, mas o estoque continua o mesmo por que o produto continua com você.
Cliente cancela 3 dos itens
Seu cliente então cancela 3 dos itens mas o pedido pode continuar sendo processado.
Atualização da reserva
Uma nova atualização no cálculo da reserva é criada.
O envio dos produtos é feito
Reindexação é requerida já que agora você não tem os produtos em estoque.
Reserva atualizada
Quando é feita a entrega dos produtos eles não estão mais em seu estoque, então é feita a soma dos valores da reserva que deve ser zero, e o estoque é atualizado.
Limpeza da reserva
O cron é programado para diariamente executar a limpeza das reservas, caso a soma das reservas por pedido retornar zero.
Remoção das reservas completa
Então o pedido foi concluído a limpeza feita e a quantidade em estoque é a mesma que a quantidade vendível.