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

Adaptando o plugin para permitir compra de assinaturas variáveis cujos planos são diferentes #70

Closed luiz-dalcico-vindi closed 3 years ago

luiz-dalcico-vindi commented 3 years ago

O que mudou

Agora o plugin permite compra de duas assinaturas que são variações do mesmo produto (ex.: tamanho P e G) e cujos planos são diferentes (ex.: um mensal e outro anual). As assinaturas são criadas separadamente na Vindi.

Motivação

Ao tentar comprar duas assinaturas variáveis de planos diferentes, o plugin criava uma única assinatura na Vindi acumulando os produtos num mesmo plano. É um comportamento incorreto. Para mais detalhes, ver #59 .

Solução proposta

Alteração no fluxo de pagamento prevendo o uso de assinaturas do tipo "subscription_variation", que ainda não estavam sendo tratadas em trechos do código.

Como testar

Tentar realizar a compra de duas assinaturas que são variações do mesmo produto no Woocommerce, e cujos planos sejam diferentes. O fluxo de pagamento / compra deve ocorrer normalmente e duas assinaturas separadas devem ser criadas na Vindi.

Closes #59

luiz-dalcico-vindi commented 3 years ago

Está dando o seguinte erro durante a finalização da compra das assinaturas variáveis: image

Consegui salvar o backtrace e está acontecendo um fatal_error:

2021-02-25T21:02:19+00:00 CRITICAL Uncaught TypeError: Argument 1 passed to VindiPaymentProcessor::is_subscription_type() must be an instance of WC_Product, null given, called in C:\xampp\htdocs\wordpress\wp-content\plugins\vindi-woocommerce-fix-creating-variation-subscriptions\src\utils\PaymentProcessor.php on line 949 and defined in C:\xampp\htdocs\wordpress\wp-content\plugins\vindi-woocommerce-fix-creating-variation-subscriptions\src\utils\PaymentProcessor.php:1227
Stack trace:
#0 C:\xampp\htdocs\wordpress\wp-content\plugins\vindi-woocommerce-fix-creating-variation-subscriptions\src\utils\PaymentProcessor.php(949): VindiPaymentProcessor->is_subscription_type(NULL)
#1 C:\xampp\htdocs\wordpress\wp-content\plugins\vindi-woocommerce-fix-creating-variation-subscriptions\src\utils\PaymentProcessor.php(295): VindiPaymentProcessor->create_subscription(1015545, Object(WC_Order_Item_Product))
#2 C:\xampp\htdocs\wordpress\wp-content\plugins\vindi-woocommerce-fix-creating-variation-subscriptions\src\utils\PaymentProcessor.php(244): VindiPaymentProcesso in C:\xampp\htdocs\wordpress\wp-content\plugins\vindi-woocommerce-fix-creating-variation-subscriptions\src\utils\PaymentProcessor.php on line 1227

Plugins que estou utilizando:

image

Se precisar de mais info, to aqui!

Sorry, removi um trecho de código indevidamente na subida

st3llaris commented 3 years ago

Agora o erro é esse:

image

Log:

02-25-2021 @ 21:16:09 - [Request #1877488519]: Nova Resposta da API.
200 OK
{"products":[]}
02-25-2021 @ 21:16:09 - [Request #1544814674]: Novo Request para a API.
GET https://sandbox-app.vindi.com.br/api/v1/products?query=code:WC-37

02-25-2021 @ 21:16:09 - [Request #1544814674]: Nova Resposta da API.
200 OK
{"products":[]}
02-25-2021 @ 21:16:09 - [Request #431665384]: Novo Request para a API.
POST https://sandbox-app.vindi.com.br/api/v1/subscriptions
{"customer_id":1015563,"payment_method_code":"bank_slip","installments":1,"product_items":[{"product_id":63,"quantity":1,"cycles":null,"pricing_schema":{"price":222,"schema_type":"per_unit"}}],"plan_id":"29161","code":"WC-79"}
02-25-2021 @ 21:16:10 - [Request #431665384]: Nova Resposta da API.
422 Unprocessable Entity
{"errors":[{"id":"invalid_parameter","parameter":"product_items","message":"não encontrado"}]}

Parece que esse product_id: "63" é setado hard-coded aqui 😖

codeclimate[bot] commented 3 years ago

Code Climate has analyzed commit f5af8c2c and detected 0 issues on this pull request.

View more on Code Climate.