vindi / vindi-woocommerce

Plugin Vindi para pagamento recorrente no Woocommerce
https://vindi.com.br
GNU General Public License v3.0
6 stars 12 forks source link

Não é possível efetuar uma compra com um produto de variável que não seja uma assinatura #179

Open devaguia opened 2 months ago

devaguia commented 2 months ago

O plugin não consegue finalizar uma compra com um produto variável que não seja uma assinatura. Ao tentar finalizar a compra ele da um erro: 'Não foi possível criar o pedido' e a compra não é registrada na Vindi.

Olhando os logs, podemos conferir que o plugin não está enviando o ID Vindi do produto na requisição. Mesmo que o produto esteja devidamente cadastrado e vinculado com a Vindi.

Isso acontece pois no plugin não há uma verificação se o produto é variável, e busca o registro do ID Vindi a partir do produto e não de suas variações.

O problema ocorre neste trecho da função _build_product_from_orderitem, presente no arquivo PaymentProcessor.php:

        if ('bill' === $order_type) {
            foreach ($order_items as $key => $order_item) {
                $product = $order_item->get_product();
                // Deveria haver uma verificação aqui, se o produto é variável e qual variação está sendo usada

                $order_items[$key]['type'] = 'product';
                $order_items[$key]['vindi_id'] = $this->routes->findProductByCode('WC-' . $product->get_id())['id'];
                $order_items[$key]['price'] = (float) $order_items[$key]['subtotal'] / $order_items[$key]['qty'];
            }
            return $order_items;
        }

psc @lucastgama