solidus_paypal_commerce_platform icon indicating copy to clipboard operation
solidus_paypal_commerce_platform copied to clipboard

Incorrect javascript_sdk_url parameter conditions

Open RyanofWoods opened this issue 3 years ago • 5 comments

The commit and shipping_preference parameters rely on checking the Order checkout_steps. https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/blob/19c00c68220fa9b7490dcc6497030809cbbfda03/app/models/solidus_paypal_commerce_platform/payment_method.rb#L67

https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/blob/19c00c68220fa9b7490dcc6497030809cbbfda03/app/models/solidus_paypal_commerce_platform/payment_method.rb#L77

The checkout_steps get set here, attempting to use the order's checkout_steps, otherwise the Spree::Order model. However, order.checkout_steps returns an array of strings, and ::Spree::Order.checkout_steps.keys returns an array of symbols. As the conditionals currently rely on strings, the conditionals work incorrectly when relying on the Order model for checkout steps. This happens for example on the product page where no @order is given.

https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/blob/19c00c68220fa9b7490dcc6497030809cbbfda03/app/models/solidus_paypal_commerce_platform/payment_method.rb#L65


This is a simple fix, however, the shipping_preference param might be dropped due to issue https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/issues/149 and the javascript_sdk_url method changes a lot due to the https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/pull/148 PR. So this issue can wait until these get resolved to avoid conflicts.

RyanofWoods avatar Dec 16 '21 19:12 RyanofWoods