My shipping module has been working well on one of the sites I manage that uses Paypal Express Checkout. But the other day I installed it on a site that uses the newer Paypal Commerce Platform, and now on that site, Paypal doesn't show any shipping methods. Instead, the customer gets a message in the Paypal popup that says "http://www.example.com doesn't ship to this location. Please use a different address."
There are a couple of weird things with that. First, I watched the basketInfo table on a fresh cart, and even though Paypal responds with that message, I see that my module inserted some rates into basketInfo, so it definitely did find rates for the provided address. The second weird thing is that I didn't initially disable the other shipping module that was active on the site (instead I just modified the OSEL template to ignore any methods from that module). So even if my module didn't respond, Paypal still should have gotten methods from the existing module..
I thought it might be a timeout thing, that Paypal didn't like waiting for both my module and the existing module to get rates, so I disabled the existing one. Unfortunately Paypal still gives the same message though
Can anyone think of something obvious I might have missed?
EDIT:
Some testing has shown that disabling my module allows the existing module to return rates. So something about having my module enabled blocks all other modules from working.
I figured I'd try changing the `ShippingModule_Basket_Methods` to something extremely basic, but even so, Paypal still fails to see any methods..
There are a couple of weird things with that. First, I watched the basketInfo table on a fresh cart, and even though Paypal responds with that message, I see that my module inserted some rates into basketInfo, so it definitely did find rates for the provided address. The second weird thing is that I didn't initially disable the other shipping module that was active on the site (instead I just modified the OSEL template to ignore any methods from that module). So even if my module didn't respond, Paypal still should have gotten methods from the existing module..
I thought it might be a timeout thing, that Paypal didn't like waiting for both my module and the existing module to get rates, so I disabled the existing one. Unfortunately Paypal still gives the same message though
Can anyone think of something obvious I might have missed?
EDIT:
Some testing has shown that disabling my module allows the existing module to return rates. So something about having my module enabled blocks all other modules from working.
I figured I'd try changing the `ShippingModule_Basket_Methods` to something extremely basic, but even so, Paypal still fails to see any methods..
Code:
<mvFunction name="ShippingModule_Basket_Methods" parameters="module var, packages var, package_count, methods var" standardOutputLevel="text, html, compresswhitespace" > <mvComment> * ****FOR TESTING****, ignore everything this function might do, and do some other thing instead </mvComment> <mvIf expr="{1}"> <mvAssign name="l.methods" value=""> <mvAssign name="l.method_count" value=0> <mvAssign name="l.method" value=""> <mvAssign name="l.method:code" value="'fake'"> <mvAssign name="l.method:price" value="111.11"> <mvAssign name="l.method:name" value="'FakeShipping'"> <mvAssign name="l.method_count" value="{ miva_array_insert_var( l.methods, l.method, -1 ) }"> <mvFunctionReturn value="{ l.method_count }"> </mvIf> ... </mvFunction>
Comment