Now that 2.0 is out, we should identify the major priorities for next releases. It's hard to list every possible issue that might be worked on, since client funding and newfound bugs/insights often change priorities, so we're focusing only on the "big wins" here, the issues that are essential to boosting Commerce adoption. These issues are not assigned to any specific release, they'll happen when they're done. We are also mostly including only features. All bugs are always on the roadmap.

There will be at least one Commerce release per quarter (3 months).

The following issues are (kinda) sorted by priority.

#2871483: Add checkout settings for payment method behavior
#2710107: Finalize the availability manager service
#2755529: Product variant bulk creation
General work on the admin order UI (including #2912996: Support admin order payments, transition UX, etc)
#2866864: Field Layout, experimental module, breaks viewing order as admin
#2903716: Implement the ability to add fees to an order
#2898215: [meta] Handle deletion of Commerce entities that are in use
#2913799: Rewrite the offsite example payment gateway

This covers the general Commerce work.

The Commerce Guys team is also devoted to improving the following contribs in the upcoming 4 months:

Done:

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

bojanz created an issue. See original summary.

bojanz’s picture

Issue summary: View changes
bojanz’s picture

I am encouraging other agencies involved in the ecosystem to add their own personal goals to this issue.

zerolab’s picture

I think it is worth adding a note about Commerce Recurring getting to at least an alpha

Sinan Erdem’s picture

Thank you for all the efforts Bojan, Matt.

We went a long way to build our new version of the site. We implemented some custom functionality mainly for address management, tax calculations, promotions, price formatters and checkout steps. We would be happy to share our experience about this with anyone interested in another medium. We saw that for the current state of Commerce, those issues were the most important for us, in priority from top to bottom.

#2897190: Tax calculations do not take discounts (promotions) into account
#2903716: Implement the ability to add fees to an order
#2805549: Expand the "Calculated price" formatter with the ability to show prices with promotions/taxes/fees
#2910193: Allow reusing profile values from another inline form ("Billing same as shipping")
#2831952: Create an entity_print renderer for orders (to allow order PDF output)
#2898215: [meta] Handle deletion of Commerce entities that are in use
#2902882: Allow for bulk creation of coupons

We also had an issue with calculating tax needing address. Many shops serve to one country only and tax doesnt change by location. We modified the tax code in a custom module, tax calculations to be made before address selection without taking the location into account. Maybe there can be an option for this somewhere.

bojanz’s picture

@Sinan Erdem
Thank you! This is precisely the kind of feedback that we need.

MegaChriz’s picture

My priority list:

  1. Extra address fields: additional name, house number, house number additive
    Currently solved by extending a bunch of address classes and replacing the default address field on the commerce customer profile with a custom one. May cause issues if we would add a credit card payment option on a later stage. Alternative solution would be to add extra fields on the customer profile, then show these fields between the other address fields by using a form alter.
  2. Integrate the RNG module with Drupal Commerce
  3. #2897190: Tax calculations do not take discounts (promotions) into account
  4. #2857157: Implement registration after guest checkout
  5. #2844920: Allow customer profiles to be reused
  6. Ability to use a checkout pane more than once (with different settings)
    Currently solved by extending the checkout pane in a custom module. Specifically the checkout panes that I want to reuse are the Review checkout pane and the Order Summary checkout Pane. Use case: the Review pane should be shown on top on each step after the first step and until the "Review" step. The Order Summary pane should be shown on the sidebar, except on the "Review" step where it should be shown on the main section of the checkout form.
    Remains custom
  7. Split the payment information pane into two panes: one for billing address, one for payment
    Currently solved by extending the billing information pane from the Commerce Checkout module and the payment information pane from the Commerce Payment module in a custom module.
    Remains custom
  8. #2910193: Allow reusing profile values from another inline form ("Billing same as shipping")
    Currently solved by extending the billing information pane and the shipping information pane in a custom module.
  9. Commerce Feeds
    This should be doable for me, as I'm the current maintainer of Feeds.
  10. iDEAL payment method
  11. Commerce Popup Cart
    Commerce add to cart confirmation
Sinan Erdem’s picture

We would also like to see this issue in the future:
#2915432: Fieldable Promotion and Coupon entities (and UI)

Currently we are using a custom module for this.

bojanz’s picture

11. Commerce Popup Cart

How is this different from the cart block that ships with 2.x?

Extra address fields: additional name, house number, house number additive
Currently solved by extending a bunch of address classes and replacing the default address field on the commerce customer profile with a custom one. May cause issues if we would add a credit card payment option on a later stage. Alternative solution would be to add extra fields on the customer profile, then show these fields between the other address fields by using a form alter.

Keep in mind that Address already supports the additional (middle) name, it's just not shown by default. People usually convert the second address line to hold the house number.

6. Ability to use a checkout pane more than once (with different settings)
Currently solved by extending the checkout pane in a custom module. Specifically the checkout panes that I want to reuse are the Review checkout pane and the Order Summary checkout Pane. Use case: the Review pane should be shown on top on each step after the first step and until the "Review" step. The Order Summary pane should be shown on the sidebar, except on the "Review" step where it should be shown on the main section of the checkout form.
7. Split the payment information pane into two panes: one for billing address, one for payment

These are "won't fix" on our side (we won't accept patches that target these changes).
#6 describes a very custom checkout process that makes more sense as a custom checkout flow plugin.
#7 doesn't make sense when allowing payment methods to be saved and reused (ala cardonfile), so it's a contrib that would only make sense on sites that use a single offsite gateway.

MegaChriz’s picture

11. Commerce Popup Cart

How is this different from the cart block that ships with 2.x?

Oops, I selected the wrong one. I meant Commerce add to cart confirmation. Apparently, I had forgotten the module name and figured it was called something like "popup".

7. Split the payment information pane into two panes: one for billing address, one for payment

#7 doesn't make sense when allowing payment methods to be saved and reused (ala cardonfile), so it's a contrib that would only make sense on sites that use a single offsite gateway.

In my use case I ask for the user's contact information (name, mail address, function, company, address) on the first step. On the second step, conference information is asked (which can influence the total price). The contact information needs to be asked earlier because these provided details have influence on what is being asked during the second step. And at the third step a payment method is asked (the total price is then final). In this scenario it does make sense to have separate panes for billing address and payment method. If you ask for address information on the first step, it doesn't make sense to ask for it again later in the process.
But I'm fine with keeping this custom. I just saw this request a couple of times in the issue queue, so I guess more people want a checkout workflow similar to the one described above.

MrPaulDriver’s picture

+1 for paperwork

#2831952: Create an entity_print renderer for orders (to allow order PDF output)

As for contrib. A start on commerce_pricelist would be good to see too.

bojanz’s picture

Our first post-release month is over.

Here's what we accomplished:
- A Commerce 2.1 release with bug fixes, the ability to lock adjustments, and Interval handling for License/Recurring.
- Commerce Braintree 8.x-1.0 with support for PayPal and PayPal Credit.
- Commerce Shipping 8.x-2.0-beta4 with conditions on shipping methods
- AdvancedQueue 8.x-1.0-beta1, fully functional.

Matt has done a lot of work on #2860840: Product variation not translated on "add to cart" form , but it wasn't ready for merging.
Community efforts:
- Daniel Wehner has spent significant time on the Recurring port, which I'm now cleaning up for drupal.org
- Joachim has pushed License close to a beta.

(And on non-D8 news, we tagged beta1 and beta2 of Commerce Discount 7.x with many improvements)

bojanz’s picture

Issue summary: View changes
bojanz’s picture

Issue summary: View changes
smccabe’s picture

Also, in october:

Commerce Migrate: 8.x-alpha3
Commerce POS: 8.x-alpha1

Migrate alpha 4 and Commerce POS alpha 2 will both land on Nov 8th

Wim Leers’s picture

#14: I love those kinds of no-nonsense, information-dense status updates! 👍

steveoliver’s picture

Issue summary: View changes
Londova’s picture

It makes sense to include Shipping as part of the Commerce.
Commerce without Shipping is an incomplete system. Almost about 90% commerce sites are for tangible products, and Shipping is a must.

rszrama’s picture

@Londova We've heard "Commerce without X is incomplete (or worse, worthless)" for years, but the reality is our small core has proven itself wise. Less than 50% of Commerce 1.x sites used the Commerce Shipping module - Drupal is unique in this regards vs. most other platforms in that we're widely used by events, non-profits, etc. that don't ship things.

That said, we've also always maintained Commerce Shipping along with Commerce core. https://www.drupal.org/project/commerce_shipping is more capable than ever for Commerce 2.x and has not had its progress hindered for being in a separate project than core. Keeping it up to date is part of our maintenance plan. : )

Gilles Lengy’s picture

Hello,

We are willing to use Drupal 8 and Commerce 2 to make our own marketplace. Is Commerce 2 mature enought ?

We noticed that : when you order several products from several shops, you have to check out for each shop. Which can be relunctant for customers... Have you planned a way to display the order for each shop but have ONE button to checkout wich will call a script that process all the orders at once and use a system of paiement specialised in marketplace.

Sorry for my english.

For your information I'm totally new to Drupal.

bojanz’s picture

@Gilles Lengy
No plans for that, it will have to be solved in contrib.

Gilles Lengy’s picture

@bojanz : Thank you for your quick answer.

bradjones1’s picture

@Gilles - I have a marketplace using Braintree's API set up in a fashion similar to what you are considering. Feel free to e-mail me or ping on Slack. It's based on https://www.drupal.org/project/commerce_braintree_marketplace

mglaman’s picture

Issue summary: View changes
mglaman’s picture

Issue summary: View changes

Removing #2723691: Add Panels integration for variation fields. It doesn't seem possible in Panelizer's current state. There will also field layouts in core and there hasn't been too much chatter about it.

Gildart’s picture

@bradjones1
Hello
I am working with Gilles and interested with informations regarding your Braintree setup.
I have a look at Braintree Marketplace but it seems to be only available in $ and US. But we are in Europe...
Can you confirm this is the features your are using ?
Thanks in advance
Gildart

bradjones1’s picture

@Gildart, I don't think anything in the Braintree Marketplace module should preclude you from using a non-USD currency, and the marketing indicates it's available in all countries they are present in, so if you need specific support on that please reach out to me directly.

s.messaris’s picture

Happy new year to everyone!

This is a nice list, most of the issues I needed to patch while setting up commerce are already on it! I would like to add #2770731: Add a display name to promotions

Also, since this is the 2nd Wednesday of January, I was wondering if this part of the summary still stands:

There will be a Commerce 2.x release every first Wednesday of the month.

Keep up the good work! :)

bojanz’s picture

@s.messaris
Holidays messed up the schedule a bit, I tagged 2.3 yesterday :)

In other news:
- Commerce AuthorizeNet now has a beta3, which uses the new Accept.js API (PCI level A-EP instead of D), and now supports ACH/eCheck payments. Next stop, RC1.
- Commerce Recurring has a beta2, with important fixes.

Also check out our 2017 in review blog post, for a better overview of our efforts: https://drupalcommerce.org/blog/114237/drupal-commerce-2x-2017-review

EDIT: Added notes on other things that happened in the leadup to 2.3

Londova’s picture

#21 rszrama
Commerce couldn't be considered ready without Shipping (even if it is a separate module). And the turnover of tangible products is still much higher. I do not want to be in the role of a critic but something is going wrong.

It may be a good idea to setup a marketplace for paid modules and to move on. From the point of view of the Project Manager, this is much better than to develop custom modules.

guidrup’s picture

Hi ,
i reposted stuff here ,
Only one thing trouble me , i didn't see any " customer rating / reviews product " feature ,
i dont understand it seams to be a basic feature and very important today . Did i miss it ?
I saw ' the fivestar ' module but this is not the same .
We need to allow customers who only purchased this product to rate / review this product .
I don't see how to code that and it is a very important basic ecommerce feature don't you think ?

zenimagine’s picture

@guidrup

It's a feature that interests me a lot. I had a problem with this for Drupal 7. Right now "Fivestar" is not usable and is not about to be used because of "Voting API". I have not found any voting solution for Drupal 8.

Maybe the solution could be the "Webform" module.

Jons’s picture

Thanks for great work
One comment - support partial payments better eg for 'offline' payment methods https://www.drupal.org/project/commerce/issues/2935337

guidrup’s picture

im sorry to admit that im switched (for the moment) into woocommerce for reasons i mentionned (lack review/rating for purshased customer),
i guess this is normal in beta but since the pb still here even in drupal commerce premious version ..
Im develloper and even i found the hard learning curve too hard .. I mean this is so a basic feature in ecommerce , very strange to me ..

Gildart’s picture

@@bradjones1
Thanks for your reply.
I presume it can be a legal issue with Euro zone. In this article (https://articles.braintreepayments.com/guides/braintree-marketplace/over...) they said :
Compatibility :
Both the master merchant and sub-merchants must be domiciled in the US and receive funding in USD
May be also this text is not updated ?
Do you know if there is a sandbox for marketplace tests in Braintree ?
Gildart

bojanz’s picture

Issue summary: View changes

Updating the list of things that were done.

bojanz’s picture

Commerce 2.4 is out with 30 issues fixed: https://www.drupal.org/project/commerce/releases/8.x-2.4

The definite highlight is #2805549: Expand the "Calculated price" formatter with the ability to show prices with promotions/taxes/fees, along with improvements to the Adjustment API.

We've also tagged Commerce Recurring 1.0-beta3, with the next batch of bug fixes: https://www.drupal.org/project/commerce_recurring/releases/8.x-1.0-beta3

bojanz’s picture

Issue summary: View changes
zenimagine’s picture

@bojanz

Super thanks for your work.
Currently if I disable product variations, the price, reference, and name of the variation will disappear.

Will there be soon, a way to replace the button "Add to cart" by a button "Not available" that is not clickable ?

Lukas von Blarer’s picture

@zenimagine This is not the right issue for this.

I guess you are looking for this issue: #2710107: Finalize the availability manager service

zenimagine’s picture

@Lukas von Blarer

yes that's it, thank you

Jons’s picture

re 'Commerce Stripe (getting an RC1 out once the community does more testing)' there is a pending patch for honouring proxy settings (https://www.drupal.org/project/commerce_stripe/issues/2906131) that it would be good to pull in.

bojanz’s picture

Issue summary: View changes

Commerce 2.5 is now out: https://www.drupal.org/project/commerce/releases/8.x-2.5

Highlights include:
#2856583: Allow free orders (checkout without payment)
#2902882: Allow for bulk creation of coupons
As well as add to cart form bugfixes (around view modes, translations, templating).
This release requires Drupal 8.5.0.

A large almost-ready patch is at: #2707721: Incorrect display of attribute field values on the Add To Cart form , give it a shot if you're encountering bugs with products that have uneven attributes.

bojanz’s picture

Issue summary: View changes
MrPaulDriver’s picture

Great work.

Any chance that issue/2923799 could receive some consideration?

bojanz’s picture

Released 2.6: https://www.drupal.org/project/commerce/releases/8.x-2.6

This release comes only 3 weeks after 2.5, so it doesn't have any roadmap items, just bug fixes. However, the 30 bug fixes included are definitely worth the update, they cover views, the cart form, the add to cart form, etc.

Highlighted fixes:
#2707721: Incorrect display of attribute field values on the Add To Cart form
#2946909: When a payment gateway error occurs, the order does not become unocked

bojanz’s picture

Issue summary: View changes

Here's what we've accomplished since mid-April (post-DrupalCon):

Lisa Streeter is our new documentation lead, expect great things! She has already added brand new Commerce Recurring docs

Commerce Authorize.net 1.0 rc1 brings support for Visa Checkout, 3D Secure, and many bug fixes. The first stable release is now around the corner.

Commerce Demo now has a beta1. It brings a more advanced version of the Commerce Kickstart v2 demo store to Drupal 8, with facetted search, 45 demo products and free-to-use-images. It also goes great with our (still in development) Belgrade theme. It is a great learning resource for site builders.

Commerce AvaTax is getting close to a first beta, the logic has been refactored into a TaxType plugin (by Jace from Acro Media), and Matt has done many fixes along the way.

Commerce Reports has had its first two alphas, and intense development work continues, lead by Matt.

Our two main libraries are now stable:
commerceguys/addressing v1.0.0
commerceguys/intl v1.0.0
They bring many bug fixes, and in the case of intl, performance optimizations for price formatting.

Address 1.4 brings a new field override UI that allows hiding any subfield, or making it always optional or required.

Inline Entity Form 1.0 rc1 brings many bug fixes and a "Duplicate" button for variations (and any other referenced entities). One less dependency in beta!

Commerce 2.7 ties it all together, it enables the Duplicate button, the ability to disable any address field at checkout (Company, Address line 2, or even all of them), adds the ability to edit stored payment methods (as needed by Commerce Authorize.net), adds a brand new CurrencyFormatter for formatting prices.

We're currently wrapping up #2499645: Start using the entity query access API on orders, products and stores which will allow us to tag an Entity API 1.0 rc1, as well as #2857157: Implement registration after guest checkout which was mentioned multiple times as important. June priorities include commerce_profile_select (address reuse), BOGO promotions (Buy X get Y free), #2901939: Move the variations form to its own tab next to (Product) Edit (which is almost ready).

bojanz’s picture

Issue summary: View changes
FileSize
277.84 KB

Commerce 2.8 is now out: https://www.drupal.org/project/commerce/releases/8.x-2.8

Please follow the release notes carefully, because the release has backwards compatibility breaks (custom promotion offers, tax types, possibly order processors).

The release is late due to the sheer volume of work that went into it.

The biggest bug fix is #2897190: Tax calculations do not take discounts (promotions) into account. To achieve it, we had to switch order item adjustments from per-unit to per-line in #2980713: Switch order item adjustments from per-unit to per-line rounding, and to create a service that splits order-level promotions across all order-items (landed in #2980195: Fixed order offers should reduce each order item).

Promotions have seen major improvements, sponsored by Ny Media:
We added a "Buy X Get Y" offer (#2866003: Add a "Buy X Get Y" promotion offer), which required a major refactoring of offer conditions done in #2980700: Introduce offer conditions.
We also added a "Product category" condition in #2917418: Add "Product categories" / "Order has product categories" conditions.
UX has been improved, and the ordering and labels of all conditions have been tweaked.

People using conditions on payment gateways and shipping methods now have access to the product / product category / product type / product variation type conditions.

Lisa Streeter added a great feature that allows you to create a product variation type when creating a product type: #2911346: When creating a product type, add option to create new variation type..

Jonathan Sacksick has released Commerce Avatax 1.0-beta2, with major improvements (promotions and shipments are now handled properly).

Also note that we've released Entity API 1.0-beta4, which brings us per-product-type view permissions! Major work happened for #2499645: Start using the entity query access API on orders, products and stores but it didn't make the cut, it will for the next release.

bojanz’s picture

Issue summary: View changes

Say hello to Commerce 2.10: https://www.drupal.org/project/commerce/releases/8.x-2.10

We now have a brand new products UI, implemented in the following roadmap issues:
#2690681: Simplify the variation UX when each product has a single variation
#2913797: Add the ability to duplicate variations
#2499645: Start using the entity query access API on orders, products and stores
Instead of Inline Entity Form, there is now a "Variations" tab next to the product "Edit" tab, similar to how Coupons appear in the promotion UI. This is a regular Drupal page, and allows modules to add their own links and operations (e.g. Commerce Pricelist can add a per-variation "Prices" link). This opens the door to adding bulk operations in one of the next releases, as well as finally implementing bulk generation of variations.

Product that always have a single variation can uncheck the "Allow each product to have multiple variations" on the product type form. This will hide the variations tab, and show the variation fields in a "Product information" fieldset on the product add/edit form.

Thanks to the work we've done in Entity API (8.x-1.0-rc1), Drupal now has an Entity Query Access API, which filters Views and entity queries to reflect the permissions that a user has. That means that going to an administration listing of products, orders, or stores will now show only the ones that the user is allowed to see ("view own", "view $bundle", etc). We'll extend this filtering to Search API in a future Entity API release (#3003566: Implement a query access alter for Search API). The Commerce issue (#2499645: Start using the entity query access API on orders, products and stores) has a code snippet for how the query access conditions can be altered, to restrict stores to the ones owned by the current user, for example.

The order/payment API has been improved:
#2804227: Add getTotalPaid() and getBalance() methods to orders
#2856586: Add an "order paid" event
#3003832: PaymentProcess needs to take the order balance into account
#3005796: Improve the DX of overriding the PaymentInformation / PaymentProcess panes
Note that if you have overridden the PaymentInformation or PaymentProcess pane on your site, you will need to sync it with the new version.

Stores now have a "path" field for URL aliases (#2959336: Add a "path" field to stores), which is useful for marketplace sites.

Work continues on the #2898215: [meta] Handle deletion of Commerce entities that are in use meta issue, with #2995325: Order::getCustomer() should guard against deleted users making orders more robust.

parisek’s picture

bojanz Any update with regular releases or I miss some important information about pause? I found out that for https://www.drupal.org/project/commerce_shipping (dev - with Shipping Admin UI) I also need dev version of DC2 which I want to avoid in production. Thank you for great work.

bojanz’s picture

We are blocked on releasing 2.12 until we finish profile reuse.
This is because we've already merged huge amounts of work in that area, which make the current reuse patch invalid and impossible to reroll. So if we tag a 2.12 release without providing a new patch (or committing it, while we're at it), people won't be able to update their site, making the release pointless.

Profile reuse is now a sponsored effort with a deadline of February 1st, so that is the final date for a 2.12 release as well.

Martijn de Wit’s picture

Issue summary: View changes

Added links to contrib modules in issue summary to make navigating to them easy.

Londova’s picture

# bojanz
As published before, the deadline for Version 2.12 was February 1st.
Any information about the new deadline?

bojanz’s picture

Sorry, it got rescheduled.

We will tag a 2.12 release on February 12th.

bojanz’s picture

Issue summary: View changes

Here's Commerce 2.12: https://www.drupal.org/project/commerce/releases/8.x-2.12
66 contributors, 68 closed issues. Check out the release notes for more details.

This release solves several of the most popular requested issues, such as #2857157: Implement registration after guest checkout and #2710999: Implement ajax pane refreshing.
And of course the InlineForm work, which took weeks, and is a prerequisite to fixing profile reuse (which we couldn't land in time for this release).

In other news, we continue to stabilize the ecosystem:
- Commerce Stripe got an RC1 and an RC2.
- State Machine got an RC1
- Physical got a stable release (1.0).
- Major work has happened in Commerce Wishlist, beta1 coming soon.
- Major work has happened in Commerce Recurring, with one last beta coming soon (and then rc1).

The community has also made some great releases
- Commerce USPS now has a stable release (1.0)
- Commerce UPS now has an alpha1 release
- Commerce Migrate is up to beta8
Thanks Acro Media, Andy G, and others.

We now list 93 payment gateways in our documentation. That's 40 more than this time last year!

bgronek’s picture

As there has not yet been a release in May yet and the Addressbook part 1 has been committed, are you planning on a May release? We have a pretty urgent need for this one and are trying to figure out the best way to get it into our code base.

Thank you for all your work on Commerce!

bojanz’s picture

A release will happen before the end of May.

We are preparing Address Book patches part 2 and 3 right now, we want to ship the release with all 3, to be able to call the effort complete.

chri5tia’s picture

Any updates on the billing same as shipping functionality? Thanks for all your work!

Edit: Can someone explain how I can utilize the work around "#2910193: [Addressbook part 2] Allow reusing profile values from another inline form ("Billing same as shipping")
Currently solved by extending the billing information pane and the shipping information pane in a custom module." Or is there a way I can apply the patches early?

jonathanshaw’s picture

@christiahall For commerce Drupal Answers is the best place to get support; it's best to keep this Roadmap issue focused.

joshmiller’s picture

Any updates on the next release? Last one was in April, with a promised one in May.

MegaChriz’s picture

@joshmiller
I read in an other issue that the next release is delayed because @bojanz would like feedback on the changes for addresses on checkout. I hope to take a look at these changes at the end of this week, if all my client work for this week is done.

MegaChriz’s picture

@joshmiller
From #3053165-29: [Addressbook part 2] Complete the UI by allowing choice between multiple addressbook profiles:

Okay, since the initial reviews were positive, I'm going ahead and committing #13
(...)
Let's continue testing -dev. I won't tag 2.14 for another week. Thanks, everyone!

Immediate next focus: Finishing #3059633: Provide a better addressbook UI for the user pages

From #2910193-5: Allow reusing profile values from another inline form ("Billing same as shipping"):

We're finishing and committing #3053165: [Addressbook part 2] Complete the UI by allowing choice between multiple addressbook profiles first, which ended up taking significantly more time than planned. We might need to tag 2.14 before finishing this issue. Will post current code progress soon.

I think that I read that address book needs more testing from the issues above, but it could also be that @bojanz had mentioned it in Slack.

bojanz’s picture

Issue summary: View changes

Commerce 2.14 is now out: https://www.drupal.org/project/commerce/releases/8.x-2.14

Please read the release notes, and the associated change record.

Apologies for the delay. This is our most ambitious release to date, and required updating many related modules (Address, Profile, Shipping, payment gateways), making it hard to estimate completion.

2.14 introduces a full address book, with a reuse widget on both checkout and the admin UI (which is something we never had in D7).
The "Address book" user tab has also been completely rebuilt.

The Shipping module has been updated to support the address book, and now allows specifying a profile type per shipment type.
This means that you can continue to use the "customer" profile type for both billing and shipping (which is still the primary and more common use case), or you can go to admin/config/people/profile-types, click Duplicate and create a customer_shipping profile type, then select it for your shipment type. The "Address book" tab will automatically update to show separate fieldsets for billing and shipping information.

Another long desired feature is the ability to not collect billing information, added as a per-gateway setting #2905028: Add a per-gateway setting to skip collecting billing information. This allows sites to collect billing information when paying by credit card, and to not collect it when paying with "Cash on delivery" (Manual payment gateway).

bojanz’s picture

And some payment gateway news:

Commerce PayPal 1.0-beta5 is now out, and features a rebuilt PayPal Checkout integration.

Commerce Authorize.net 1.2 is now out, with important Commerce 2.14 bug fixes. It also supports not collecting billing information.

EU merchants should be aware of the approaching 3DS 2 deadline (September 14th) which could cause many cards to be rejected, unless on-site gateways are updated. Please test the Stripe (#3039032: 3D Secure 2) and Braintree (#3012225: Add support for 3D Secure 2.0) patches so that we can tag new releases soon.

Please help us update payment gateways to support not collecting billing information. Meta issue is here: #3077499: [meta] Payment gateways that need to add the "not collecting billing information" feature.
Also help us identify on-site gateways which might have address book related breakage on the user/{user}/payment-methods forms. Meta issue is here: #3077506: [meta] On site payment gateways with broken add/edit form. Note that we've already updated Authorize.net, with Braintree and Stripe fixes incoming.

bojanz’s picture

Issue summary: View changes
bojanz’s picture

Issue summary: View changes

Updating the issue summary to indicate that we're working on a port of Commerce Invoice, to be released in September.
This module will allow invoicing multiple orders at once.

bradjones1’s picture

Issue summary: View changes

Adding admin order payments issue to the admin order UI section since I think it's getting close to done and is related to the stated goals.

bojanz’s picture

Issue summary: View changes

Commerce 2.15 is now out.

Release notes: https://www.drupal.org/project/commerce/releases/8.x-2.15
Blog post: https://www.centarro.io/blog/commerce-215-adds-invoicing-vat-number-hand...

Highlights:
#2730131: Add a commerce_number_pattern submodule for sequential (order/invoice) number generation is the harder half of what Commerce Billy did in D7.
#2874149: Create a tax_number field type and use it on customer profiles and #3086915: Add VIES verification to the EU tax number type remove the need for the vat_number module. But it's more of a simple replacement, we've iterated greatly to add additional features and improve perceived problems. This includes making the logic pluggable to support non-EU countries, storing the verification result, allowing reverification from the admin pages, etc.

These three issues:
#2842579: Payments should gracefully handle their gateway disappearing
#2926108: Payment's preprocess functions need to guard against deleted payment methods
#3076336: If a variation references a deleted attribute, its not possible to edit it anymore
bring us much closer to marking #2898215: [meta] Handle deletion of Commerce entities that are in use as done.

I have removed #2424487: Add condition support for commerce_tax_type entity type from the roadmap. We have published a Commerce Product Tax module which solves the majority use case in a simpler and more performant way (being able to select which variations are tax free to use a reduced rate).

We also have a new port of Commerce Invoice, and invite people to start testing the first beta. It allows invoicing multiple orders at once, and has a great PDF export with full support for translations (PDF per language).

bojanz’s picture

Issue summary: View changes
bojanz’s picture

Issue summary: View changes
cristianalcaraz’s picture

Hi all! And thanks for the huge work during last months!

I am writing to ask if this issue #2852207 Billing same as shipping can be included in the roadmap here, as I understand this one #2910193: Allow reusing profile values from another inline form ("Billing same as shipping") is not intented to work with actual version of Address Book.

Thanks again :)

bojanz’s picture

Issue summary: View changes

Commerce 2.16 is now out: https://www.drupal.org/project/commerce/releases/8.x-2.16

From the release notes:

- Added cart expiration (delete abandoned carts after a configured number of days)
- Promotion start/end dates now have a time component as well
- Reworked timezone handling for promotions and taxes
- Reworked Views integration for base fields, fixing over a dozen issues
- #3002939: Convert order/product multivalue configurable fields back into base fields improves both JSON API and GraphQL usage, since stores/variations/order_items fields are now available by default without selecting a bundle. It also eliminates a class of bugs where on some installs these fields weren't created properly.

I would like to highlight the completely reworked Views integration because it fixes over a dozen annoying and visible bugs that site builders encountered while using Views with Commerce. This effort was tracked in #3097582: [meta] Rework the Commerce base field views integration.

New releases of Commerce Recurring and Commerce Demo were tagged with fixes needed for these two modules to work with 2.16.

We also released the first release candidate of Commerce Pricelist: https://www.drupal.org/project/commerce_pricelist/releases/8.x-2.0-rc1

Matching promotions, we have times for price list start/end dates. And we now have a "Prices" tab on each variation, where price list items for that variation can be managed (instead of having to use the global price list UI which lists items for all variations).

Updated the roadmap summary to acknowledge that we're no longer doing monthly releases. From early 2020 we will be doing quarterly releases (once every 3 months), while reserving the right to do more frequent releases when needed.
Commerce is now in a stable enough state that it makes sense to slow down releases and focus more on contrib.

With these releases out of the way, we are shifting our focus to Shipping, with the goal of preparing Shipping RC1 (with billing same as shipping, promotion and tax integration, etc).

bojanz’s picture

Issue summary: View changes

Commerce 2.17 is now out: https://www.drupal.org/project/commerce/releases/8.x-2.17

It is primarily a bug fix and API improvement release meant to support our work in Commerce API (to be officially announced soon) and Commerce Shipping.

It does have #2770731: Add a display name to promotions as a long standing feature request resolved.

We have invested over a month and a half of development in Commerce Shipping, resulting in the beta8 release from a month ago, and the upcoming rc1 release. This includes work on shipping tax, shipping promotions, APIs needed for Commerce API integration, as well as "Billing same as shipping. You can see a report of that in https://www.drupal.org/project/commerce_shipping/issues/2902683#comment-...

liquidcms’s picture

The main issue i come across every time working with Commerce is that the admin checkout flow and customer checkout flow are completely different paths with completely different code. As a result, many pieces are missing from an admin checkout flow (i.e. a staff member taking payment over the phone, accepting a cheque, etc). I am not sure if the intent is to leave these to the developer as possibly they are assumed to be quite different from application to application; or more likely, focus has always been on customer flow (std cart checkout).

As i feel this is a mandatory part of any feature being worked on (Fees is a good example); i am rarely sure if my comments posted to work in those areas is required to always be split off to a separate case to cover the admin use case. Some of these include:

payment methods are not available (recent patch for this), payment methods are not available unless also available to users, orders are not "placed" after payment is made, fees are not added to orders paid for by staff, manually editing an order and adding a Fee has no knowledge of the new Fee entities and i am sure there are many other examples of this.

So my hopeful addition to this roadmap is more of an architecture thing (so unlikely to get much love): but would be great if there was a tighter coupling between customer checkout and admin checkout so that use of the many feature additions are available to the admin checkout flow as well.

rszrama’s picture

@liquidcms There is certainly a fundamental difference in expectations between the interfaces: there are things an end user can do that an administrator just can't do on their behalf or that don't work on a single page edit form (e.g. many payment methods). The order edit interface was never meant to be a like-for-like equivalent to the checkout flow, and I'm honestly not familiar with any other systems treating it as such.

For more complex use cases, is there something preventing CSRs from just using the checkout form? For example, I implemented Commerce in the past for a friend who wanted his CSRs to use a similar checkout flow as end customers, so we just made it so someone with appropriate permissions could choose to checkout a cart using someone else's email address. That was much simpler than trying to make the back-end interface as feature rich as their checkout form.

Would a general feature like that satisfy most of your use case(s)? I'm imagining something that could easily start as a contributed module that lets privileged users choose a checkout flow and user to checkout on behalf of but that doesn't try to recreate the whole checkout experience on the backend.

bradjones1’s picture

Adding related per above comments.

liquidcms’s picture

@rszrama, yes, that can be an alternative path to handle some of these issues. We have in the past considered simply masquerading as the client and going through the cart/checkout flow. Certain things wouldn't apply though as certain payment types (pay by cheque for example) won't apply for the customer.

Certainly a cart/checkout based on email address (but still within an admin's session) would be an improvement on the masquerade idea.

Best solution of course would still be that things worked for an admin as one would expect them to. "I'm honestly not familiar with any other systems treating it as such" - sorry, i doubt that is true as this is a pretty basic requirement for many/most ecom sites. I am pretty sure Ubercart in D6 (and likely D7) handled this correctly.

rszrama’s picture

@liquidcms I'm more than happy to be corrected on that last point if you can point me toward documentation. For what it's worth, I led Ubercart development on D5/6 (think that's what you meant; ZenCart is a standalone offshoot of osCommerce) and can confirm that we definitely never supported back-end transactions to any degree equivalent to what the checkout form offered.

Consider, for example, 3rd party payment methods that require a username and password or 3DSecure and its equivalents that require a password. There's no scenario in which a CSR should be asking for a user's password for the sake of processing a payment over the phone, but supporting the same purchase flows on order edit as you do in checkout would open that door (or else hit that roadblock).

imclean’s picture

This is an interesting discussion, I think backend checkout flows would be very handy.

Consider, for example, 3rd party payment methods that require a username and password or 3DSecure and its equivalents that require a password.

CSRs can take CC payments over the phone and in person. They may also be able to accept cash and other payments in person. To support these cases, different payment options could be presented depending on who using the system.

One such option could be "external payment" within Commerce, while the CSR creates the payment directly within their payment gateway's interface.

liquidcms’s picture

@rszrama, yes, my bad.. i meant Ubercart. I have one client that has used Ubercart since D6. They definitely handle mailed in cheque payments; but I'd have to check on how they are doing that.

My current D8 client has a reasonable size of their business taking CC payments over the phone or mailed in cheques. So i am not talking about "3rd party payment methods that require a username and password"; i am talking about the extremely common practice of taking CC payments over the phone. To suggest this is not a common business practice seems a bit short-sighted to me (as i type this, an infomercial with those common words "Call Now!!") just came on the TV..lol

imclean’s picture

rszrama’s picture

@liquidcms Yeah, I agree, it should be possible to use the admin UI to process a CC payment that doesn't require 3DS or other security features. I've been reviewing the back end quite a bit lately, and there are a variety of things you can't do in Commerce 2.x from a site builder / CSR standpoint that you could in Commerce 1.x. The way you phrased it above (i.e. admin checkout flow) made me think you had something more robust in mind, but I'd love to see an admin payment terminal similar to Commerce 1.x in 2.x. There may already be a feature request for it - if not, feel free to open one. : )

eldrupalista’s picture

Hi, any chance of adding support to the Payment Request API in the future?
Thanks

jonathanshaw’s picture

@eldrupalista the roadmap isn't the best place to discuss individual features, I suggest opening. a specific issue for that.

rinasek’s picture

Commerce 2.21 is now out: https://www.drupal.org/project/commerce/releases/8.x-2.21

Release contains multiple new features and bug fixes, including:

  • #2952529 - Layout Builder + Product support
  • #2831952 - Entity Print for orders
  • #3155132 - Checkout complete customizeable from UI, not just Twig
  • #2908196 - Backoffice order comments
  • #3153381 - Payments support AVS code logging
  • #3134493 #3128322 - JSON:API fixes: order access, variations filtering


Roadmap is updated accordingly.

rinasek’s picture

Issue summary: View changes
rinasek’s picture

Issue summary: View changes
dwkitchen’s picture

Status: Active » Closed (outdated)
lawxen’s picture

It's very usefull to create another commerce 3.x roadmap.