Commerce 1.11.0-rc3

Following the 1.11.0-rc2 and 1.11.0-rc1 releases for Commerce, we now have rc3 available for you with some big fixes.

PayPal Checkout updates

The new modern PayPal integration we introduced in 1.11.0-rc2 has been improved further:

  • Fixed a bug where the wrong country code was passed in the shipping's phone number, and introduce a PhoneCallingCodes helper to convert country codes into calling codes
  • Restored the full item breakdown, including the per-item tax, and shipping fees in the right order field
  • Fixed missing transaction fee

Easy click-through to Merchant Dashboard

Gateways can now implement a new `MerchantUrlGatewayInterface`, which simply provides Commerce with the URL to access a specific transaction in the merchant dashboard. 

This now allows you to click through from Commerce directly to your Mollie, PayPal, Stripe and other merchant dashboards if you need to refund a transaction or investigate it further. 

Large invoice fixes

Invoices in Commerce store a copy of the order at the time the invoice is created, a snapshot of the data the invoice was generated with. 

In some cases, for example with product bundles, or products with extensive multilingual descriptions, or large amounts of items, it was possible for that order copy to exceed 64kb; the size of the comInvoice.raw_data field storing that data. When that happens, invoice creation would fail with a blank invoice. 

To avoid that, we incorporated two fixes:

  1. We now store less data per order. Specifically, we are no longer storing product information; only order item information. 
    Product information is not typically used in invoices, but has the potential of adding a lot of data. If your site is the exception, you can use the commerce.invoice_copy_products system setting to restore product data in invoices. 
  2. Increased the comInvoice.raw_data column from text (max 64kb) to mediumtext (max 16mb) to allow even the largest of orders. 

This release is full of fixes because of issues reported by our clients, so as always, if you see any incorrect behavior please let us know! 

Full Changelog

  • [gateways] Add optional MerchantUrlGatewayInterface with getMerchantUrl(comTransaction) for linking to a payment in the provider dashboard; Stripe, PayPal Checkout, Mollie, Braintree, Authorize.net, and MultiSafePay implement it, and the transaction overview and order transactions grid show the link when available
  • [invoices] comInvoice.raw_data size increased from text (64kb) to mediumtext (16mb) to avoid cut-offs [S65897]
  • [invoices] Invoices no longer include product data by default; only order item data. If your invoices do use the product data, you can restore the old behavior with the commerce.invoice_copy_products system setting [S65897]
  • [paypal] PayPal Checkout now sends pre-tax line items with per-item tax, shipping in the shipping breakdown, and payment method fees as zero-tax line items; item discounts are not sent separately because they are already reflected in line totals
  • [paypal] PayPal Checkout now sources the payment method fee from the transaction being paid (so it is correctly sent as a line item) and no longer rewrites line item taxes to force totals to match; if the charge amount cannot be reconciled with the line-level breakdown, the itemized breakdown is omitted and the plain amount is sent instead
  • [paypal] Fix shipping phone country_code using ISO codes instead of dialing codes; normalize payer phone to full E.164 [S66141]
  • [core] Add a PhoneCallingCodes helper that provides dialing codes for ISO country codes and normalizes phone numbers to E.164 format [S66141]

We've recently disabled comments as we don't care for Disqus's ads and don't use it enough to warrant a subscription. We may implement another commenting system soon. If you have any questions or comments, please feel free to send us an email! We're always excited to hear from you.