Skip to content
This repository has been archived by the owner on Apr 24, 2023. It is now read-only.

Status dos pedidos com pagseguro sempre no state new #31

Closed
pguedesbr opened this issue Feb 10, 2017 · 8 comments
Closed

Status dos pedidos com pagseguro sempre no state new #31

pguedesbr opened this issue Feb 10, 2017 · 8 comments

Comments

@pguedesbr
Copy link

Todos os status de pedidos criados pelo pagseguro estão associados ao state new, mesmo após confirmação do pagamento ou cancelamento. Os status devem estar associados aos states correspondentes.

Como consequencia deste que considero um erro, os pedidos com status "Pagseguro cancelado", por exemplo, nunca são de fato cancelados, e vários plugins/observers deixam de rodar, fora que os produtos não são devolvidos ao estoque.

@gabriellucius
Copy link
Contributor

gabriellucius commented Feb 13, 2017

@pguedesbr na configuração do módulo você adicionou uma URL de notificação? A mesma é válida e permite acesso externo? Pois é a partir dessa URL que o PagSeguro se comunica com a loja para atualizar os status dos pedidos.

@pguedesbr
Copy link
Author

@gabriellucius o pagseguro atualiza os status dos pedidos sem erros. O problema é que todos os STATUS pertencem ao mesmo STATE New. Muito embora os status sejam alterados pra "Pagseguro Pago" ou "Pagseguro Cancelado", pro magento os pedidos continuam como New, não gera fatura quando pago, muito menos devolve os produtos ao estoque quando cancelados.

@gabriellucius
Copy link
Contributor

Agora entendi o problema @pguedesbr !
Vamos validar isso, parece ser um bug mesmo. A partir daí conseguimos trabalhar na correção.

Obrigado pela contribuição.

@ianitsky
Copy link
Contributor

O problema éstá no arquivo de instalação InstallData.php na linha 69

Ele faz um foreach nos status que sempre deixa todos os com o mesmo state.

foreach ($statuses as $code => $info) {
            $status[] = [
                'status' => $code,
                'label' => $info
            ];
            $state[] = [
                'status' => $code,
                'state' => 'new',
                'is_default' => 0,
                'visible_on_front' => '1'
            ];
        }

@ianitsky
Copy link
Contributor

Fiz uma modificação no código.
Só gostaria de confirmar os status com vocês antes de fazer o PR:

/**
 * PagSeguro Order Status
 */
$statuses = [
    'pagseguro_iniciado'  => ['label' => __('PagSeguro Iniciado'), 'state' => 'new'],
    'pagseguro_aguardando_pagamento' => ['label' => __('PagSeguro Aguardando Pagamento'), 'state' => 'pending_payment'],
    'pagseguro_cancelada' => ['label' => __('PagSeguro Cancelada'), 'state' => 'canceled'],
    'pagseguro_chargeback_debitado'  => ['label' => __('PagSeguro Chargeback Debitado'), 'state' => 'closed'],
    'pagseguro_devolvida'  => ['label' => __('PagSeguro Devolvida'), 'state' => 'closed'],
    'pagseguro_disponivel'  => ['label' => __('PagSeguro Disponível'), 'state' => 'complete'],
    'pagseguro_em_analise'  => ['label' => __('PagSeguro Em Análise'), 'state' => 'payment_review'],
    'pagseguro_em_contestacao'  => ['label' => __('PagSeguro Em Contestação'), 'state' => 'holded'],
    'pagseguro_em_disputa'  => ['label' => __('PagSeguro Em Disputa'), 'state' => 'holded'],
    'pagseguro_paga'  => ['label' => __('PagSeguro Paga'), 'state' => 'complete'],
];

foreach ($statuses as $code => $info) {
    $status[] = [
        'status' => $code,
        'label' => $info['label']
    ];
    $state[] = [
        'status' => $code,
        'state' => $info['state'],
        'is_default' => 0,
        'visible_on_front' => '1'
    ];
}

@pguedesbr @gabriellucius @s2it-moscou @esilvajr

@thiagogalvao
Copy link

Olá, uma vez alterado este trecho do código como faz para executar novamento este hook de instalação?
Obrigado!

@thiagogalvao
Copy link

Respondendo minha pergunta acima para "reinstalar" é preciso deletar o modulo da tabela setup_module e executar no command lind o setup:upgrade

@RoninX2
Copy link

RoninX2 commented Aug 27, 2020

oi Thiago

Respondendo minha pergunta acima para "reinstalar" é preciso deletar o modulo da tabela setup_module e executar no command lind o setup:upgrade

oi Thiago, estou com o mesmo problema, você utiliza o módulo oficial do pagseguro? Está utilizando em qual versão do Magento?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants