Magento – Worldpay Module

I’ve used it on a few sites but I’m not a big fan of Worldpay in general.  From a completely non-Magento point of view some of the admin functionality in their web interface is just terrible –  I’ve had to help clients who were struggling to do basic things like export forms and locate specific transactions (things you would expect to be nice and easy – they weren’t!!).

Worldpay haven’t had the foresite to do what SagePay have done and commission a developer to create and support an official module which they give out for free, instead it’s been left to a German developer called Phoenix.  While they’ve done a great job, you find that the payment module is lagging behind the curve a bit – new versions of Magento somtimes aren’t supported for months after they’ve been released.

‘Select Junior’ as it’s called doesn’t allow the customer to checkout on site, and there is also no backend integration between the Worldpay system and Magento, so if you have to refund a customer you do it in Magento and then login to Worldpay and do it again there so the money is actually transferred back to the customer.

Anyway, the Magento Worldpay module page on Magento Connect has loads of entries from ‘developers’ who can’t get it to work, or claiming it doesn’t work on versions 1.5.1 etc etc.  A load of rubbish, it works fine.  They have configured it incorrectly and one of the reasons is probably that the templates for the extension have been automatically loaded into the wrong template directory.  I say ‘wrong’, actually it’s the correct template directory for modules requiring backwards compatibility (prior to Magento 1.3 the default/default directory was the place for templates and layout files for modules, it was later that base/default became the directory for those as the last stop on the fallback). The issue arises if your template is under the default package rather than a new third package (ie in addition to base and default – this is the preferred way of doing it). The result is that the whole extension works fine in the backend, it just falls over at the ‘Place Order’ stage in the checkout. It redirects to a blank page with /worldpay/processing/redirect/ in the url.

So, make sure that the directory in app/design/frontend/default/default/template/worldpay is moved to either the base folder or your active theme folder (depending on how you do things).  Suddenly in the one page checkout you will see that the messages like ‘You will be redirected to Worldpay website when you place an order’ appear.  You can change this of course.

The final step is to make sure that the layout file Worldpay.xml is moved from app/design/frontend/default/default/layout to your active theme’s layout folder. Flush the Magento cache and try again.