Store 1.5 Update Notes

Store 1.5 has a brand new payment library, which allows much greater flexibility with payment handling. Because of this, there are a few things you need to be aware of before upgrading.

Submitting custom text as a payment method is no longer supported

Previously, if you wanted to accept manual payments, you could simply submit any text (or no text) as the payment method in the checkout. You must now specify all valid payment methods under Settings » Payment Methods. You can now create as many manual payment methods as you like here, and these will be accepted on the checkout.

Orders will no longer be accepted without a successful payment

Previously, if a payment failed, the user would be returned to the order summary page, where you had to give them the option to attempt payment again. This was not ideal, as it meant you needed to template the payment form in two places, and also because customers may become confused as to why their cart is now empty.

In Store 1.5, if a payment fails, the customer will simply remain on the final page of the checkout (or for off-site payment gateways, they will be returned to the checkout).

To display the payment errors, ensure you have the error_handling="inline" parameter in your checkout tag, and add the following code on the final page of your checkout:

{error:payment_method}

If you don’t template this error message, the customer will see the standard grey EE form error, with a link back to the checkout.

This means that the Payment Tag is no longer necessary in most cases.

Authorize/Capture/Refund support

Authorize/Capture/Refund support has been added for most payment gateways, where available. You can customize this under Store » Settings » Credit Card Payment Method. By default this is set to Purchase (Authorize & Capture), which is the same behavior as previous versions of Store.

Payment Gateway API change

To support the new payment process, the API for CI Merchant drivers has changed. If you have developed your own payment module, you may need to make some small changes to support the new API. Specifically, your driver should extend the Merchant_driver class, rather than CI_Driver. You also need to make sure your driver returns a valid Merchant_response object.

For specific details, please see the existing payment methods. If you need help, please create a gist of your code online, and post a link to it in our support forums.