 All right, hopefully you have intentionally come to the next steps for a Drupal commerce session If not, my feelings will not be hurt if you need to go find a different room. I Am Ryan Sarama and I am married to Christina and a father of two as of last year William's actually a little bit bigger now. We live in South Carolina In Greenville. It's the upstate near Asheville, North Carolina if folks have come out east It's a really nice place to visit and hopefully it'll be a nice place to have a Drupal camp one day That's that's a sort of long-term goal of mine But in the meantime I fly around to events like Drupal con Portland And every other Drupal con since Barcelona to talk really Drupal powered e-commerce in general at first It was using Drupal with uber cart That was my first e-commerce system developed on Drupal 5 and then in 2009 early 2010 with commerce guys We undertook to develop this new e-commerce system on Drupal 7 called Drupal commerce I won't be providing a whole lot of background information on the core framework itself I'm going to assume that since it's been out for a few years now We have a general idea of what it is In the room if not, I will have time for questions and answers at the end But the gist of it is that it is just an e-commerce framework that facilitates any type of e-commerce Experience on your Drupal site see install these modules and you get a shopping cart a checking a checkout form In address book customer profiles all that kind of stuff it does But what we're talking about here in this session is what's next for Drupal commerce Because we have Drupal commerce itself. We also have commerce kickstart Which some of you may have seen the the demo at our booth in the commerce village We have that which sort of provides a full store out of the box as a distribution of Drupal that includes Drupal 7 with Drupal commerce with a couple of themes and Augustine could correct me, but I'm sure it's about a hundred additional modules That are supplying a bunch of other functionality for the store We also have the commerce marketplace Which is in development and is itself a next step because the marketplace is a continual work in progress It's the place where we connect commerce sites to the third-party service providers that make e-commerce truly work at scale And because there's only so much that you can do through your one website You're gonna have to depend on Analytics services payment services for sure Fulfillment services accounting CRM etc. So we will continue to build out the marketplace And I'll talk a little bit about that and show what that looks like in the back end of commerce kickstart We're also here at Drupal con Portland to kind of demo unveil launch the private beta of The commerce mobile offering which you can see on my phone afterwards if you're curious It's a mobile app that uses the commerce services module and a variety of configuration modules to expose your commerce kickstart store to a Native iOS mobile app that's been built in titanium. So it could also work on Android I'll talk about that a little bit in later in the session and then we have commerce platform Which is as I said in a private beta you can come get on the beta list will be sending invites out I believe over the next couple of weeks To launch the the full final offering at Drupal con Prague in the meantime I look forward to seeing some of you testing it for us even as I test it with my own site Ah and a bit of background information Aside from my work in Drupal. I'm also a cheese monger I eat my own dog food and use Drupal commerce to sell Amish made raw milk cheese online So I like to say that Drupal commerce has successfully got at least one Amish farmer to sign up for email So there's a major achievement of mine and then within commerce guys I am the leader of our R&D team which is myself and one of the person Josh Miller at the front of the room here Who helps me maintain Drupal commerce word write documentation communicate about commerce in general so that all of you here Know how to solve your problems and if you have a problem that you don't know how to solve I strongly recommend you assault Josh after the session and see what he can do for you But once we get in talking about what's what's going on right now in the broader Drupal commerce ecosystem We will talk specifically about how the framework itself is going to mature and evolve over the next year year and a half as We make the transition from Drupal 7 to Drupal 8 and that may be part of the big reveal Is just that Drupal commerce will not have a second version a 2.x branch on Drupal 7 We'll be jumping straight to Drupal 8 and I'll discuss some of the implications about that toward the end of our time today And I have a note here in my presenter notes. That's so handy after my presentation this evening At our booth submit Kataria who's been our our go-to guy for mobile app development We'll be doing a demo in the little commerce saloon on the back end of our booth Just so you can actually see the whole thing In progress or you can come steal my phone afterwards and check it out as well And there are demos of the commerce platform at the booth You can find Damian turnied our CTO and he's really happy to work through that and show that off and use my cheese site as an example So before I before we go any further I do want to remind us all and remind myself of the big idea This is how I've introduced all of my Drupal commerce presentations at least since Drupal con Chicago And it's the idea that our vision at commerce guys is for Drupal commerce and by extension Drupal itself To be the number one open-source e-commerce framework in the world We want to beat my predecessor and former project uberkart. We want to beat magenta. We want to beat presto shop overseas We want to go toe-to-toe with these guys and win Within commerce guys. We are doing it against them and against a man wearing hybris and ATG when we Go out and bid on large projects, but we also want to beat them at just a mass market broader adoption a metric so We want you to be a part of that we want to cast that vision keep that vision before you and and and I say this because I think it's truly Possible because with Drupal commerce with Drupal itself being so flexible and moving so fast and making such rapid advances Especially when you look at Drupal 8 versus Drupal 7 we think that we can power truly Flexibly commerce that would make Drupal commerce the solution for any merchant of any size in any particular, you know vertical market We don't hard-code assumptions into Drupal commerce itself So that you can actually take the framework and configure it to work for any type of store It could be a well, I guess I have a wall of pictures here I mean it could be a product store selling jewelry you could be selling subscriptions You could be registering for Drupal con Portland. Maybe you didn't know it, but you use Drupal commerce to do that There there are many different applications of Drupal commerce and we think that Drupal commerce is flexibility is one of its key selling points And so we make that point we definitely make that point to developers Because that speaks to developers none of us like being pigeonholed by a rigid system Unless you're like me and I still love developing games in basic I Guess I like that that that fun sense of punishment when you're dealing with a 640 kilobyte memory limit and other things like that But whenever we're doing work, we won't work to just work and not have to deal with the frustrations of a limited system So we don't pigeonhole anyone into any particular Business model check out workflow order management workflow anything it's all there for you to build from the ground up Which is again great for developers We don't we don't want to be Frustrated we don't want to have to to an unhook or unregister hooks and modules It's easy enough to turn off a rule or to change the way a view has been configured. Let's go through here We also don't want you to be tied to a particular data model So by depending on Drupal's fieldable entity system you can actually construct the product data model that you want You can then extend those with the other contributed modules that work with the field system You have automatic integration into views So you have a module like the commerce reports module that can actually look at your field data from all of your order history and Generate pretty graph reports right in the back end of your website just by having access to all of this data In a in a I guess in a manner or format that views can understand So we've always kind of pitched Drupal commerce as this great platform or framework for developers But that's not going to make us the number one open-source e-commerce framework in the world because there's only so many of us and And only so many of us are able to take this and communicate that to an actual merchant It's great for us when we have our own projects to be able to spin something up very fast But when you have to go and compete against someone like magenta who has eBay's marketing budget behind it Or any of the other major e-commerce players you need to actually be able to speak the merchants language And so I guess I have some questions here that maybe we aren't answering as directly So how will Drupal commerce help me make money? How can I see what's happening in my store or even something simple for me? Or it should be simple for me with my cheese site was when I send out this newsletter How much money am I actually making and those questions can actually be difficult to answer? And we should we should do a better job of making that simpler. What what is this about the product data model again? You know we we definitely hit that whenever we're doing our usability testing people And maybe this is some context that we don't all have But in Drupal commerce just in the core of the framework we separate product data definition from how our product is displayed So you have to define say all the variations of a t-shirt the different sizes and colors it may come in and then have a node that References all those different variations to turn it into one add to cart form and that's sort of like entity referencing And even just the word entity is scary for a merchant or a store administrator Who just wants to go add a product page and give it sizes and colors and put in a description? So whenever we we look at the sort of development of Drupal commerce I'd say that like this may be frustrating It was actually by design because it was a matter of priority our first priority was to actually get an implementation of e-commerce on Drupal 7 and Then write commerce kickstart 2.x to actually make Drupal commerce look and feel like a complete e-commerce solution And I believe we've accomplished that if you've been able to put your hands on the demo You can see that what you get when you install commerce kickstart is a store Not only that we wanted to simplify this user experience for store administrators So when they're administering orders and managing those managing the customer relationships when they're adding new products to the side or managing Stock or whatever we wanted to make those routine tasks simpler We wanted to make it easy to add messages to orders and communicate with your customers and see that Trail of everything that's happened to an order. So we used Amitabh's message module to accomplish that so commerce kickstart Was the point where we took the framework and started started optimizing it for a particular like market segment in this case You know non-technical store administrators who are selling physical goods. So we took something that looks like Something that looks like this out of the box, which doesn't communicate anything except that well Bartzik works And we made it look like this which communicates. Wow. This is a site that actually sells something So out of the box as soon as you install commerce kickstart This is what you see and actually I pulled up some some tabs here to run through We have basically implemented on the front end a variety of e-commerce best practices using obviously big images and easy ways to to advertise offers free shipping of course communicates to everyone on the internet But not just focused on like the front page branding experience, but also product catalog So commerce itself does not have any concept of the product catalog But here in commerce kickstart we've used views and the search API and facet API to have a sort of faceted product catalog browsing experience You could browse the catalog using the normal taxonomy related menus But here I can actually see the full list of demo store content, which is optional on installation Then you can remove it afterwards, but I can just filter down through I believe it's got some Ajax He functionality in here. I can actually filter my search results Just like you could on new egg is kind of the common example of someone that really nailed Faceted product searching and then whenever I get down to an actual product page We have it looking and and functioning like you might expect just an attractive Product page to to work like so actually have the image gallery with zoomable product images And not just a select list to choose the color because hey We can actually make that the color itself that you're buying So we have the commerce fancy attributes module which exists as a standalone project so that that Customers can come and see the color there. They're changing to update the whole image gallery at the same time Maybe see price changes or whatever else based on the attributes that you're selecting And then once they add the cart happens We provide you with an opportunity to again directly market to them to try and drive conversions So this isn't something that the core of commerce is concerned with in the heart of Drupal commerce It's not like there's a module you can turn on that says conversion optimization But but we're interested in conversion rates You need to know that kind of stuff because you need to know how to how to tool or retool the front end of your website Or what recommendations engine to integrate with or how to change your your menu hierarchy so that you can capture more sales and maybe At a recent hackathon I rigged it together so that using the the relify API was actually putting product recommendations into this modal Dialogue because it's just built using the views module So it's really easy to extend this and customize it show them what else they're buying upsell other products or related products, etc So with commerce kickstart to We've tried to give merchants a lot more tools in the front end to have an easy quick attractive e-commerce site that provides them with places to Optimize for conversion and it's actually gone so well Let's see if I can remember the URL and hope it loads because I wasn't planning on pulling them up that we're starting to see Submissions to the To the Drupal commerce showcase if you go to Drupal commerce dot org slash showcase That's where that wall of images came from we're seeing stores like this one that have taken commerce kickstart 2.x Changed a few colors slapped in different images and launched with with no development required All they had to do was tweak some CSS and they had a live store that was ready to sell in this case 100% pure raw honey And they had the dynamic product pages, of course, they just have one product page But it but it's fully dynamic things to the way the added cart form works within Drupal commerce And and again like for the merchant like this speaks to them and in one day you can turn around a new e-commerce site to sell my product and and hopefully that speaks to you as as Developers and sales guys, etc as well It's it's much faster with commerce kickstart to deploy in this case a simply commerce site But as the marketplace itself fills out even more complex sites And I'll sort of run into the back end as well because we didn't just optimize the customer experience in the front end Let's go here as I mentioned We also spent some time Rethinking the way that our our administrative views work So we wanted to simplify routine tasks for example editing all of the products in a particular product group So again, if you're familiar with the the architecture of commerce If you're selling the t-shirt and it has four different sizes There are four separate product entities with unique SKUs that get tied in through one product display Which is great for stock control and reporting and other things like that And some analytics and data mining, but it's not so great when it comes to actually managing a group of products at the same time So here within this products view I'm actually seeing a list of my product displays and if I click this quick edit button It will expand out this row in the view using the views mega row module another separate module that we've released on Drupal.org To include all of the different product variations that are in this display so I can enable them disable them Tweak the price and then make those updates right here in line in the form And if I needed to The the combo button has a drop down that would actually let me access the full node edit form Where I can add new variations change the images edit the body of a product Maybe change which catalog category. It's a part of etc. Our Our node edit form also doesn't just use the standard product reference autocomplete widget It's using what's called the inline entity form widget, which again is a separate project on d.ado That's packaged into the distribution so that you can actually add update create delete Product entities right in line from the the node edit form itself This this module is not restricted just to Drupal commerce So it will work for other types of entities as well So maybe if you're using a node reference or user reference or something like that you could use the module for those cases so What what used to require going to one interface to create a bunch of products and then another interface to create a Node and then remembering all the different SKUs that are supposed to go together All those steps have been collapsed into one single page where you can come and create the node Add the variations reorder them. So you have you know different Sort orders perhaps for the default product selected And then save everything all at once Yeah, so that's pretty interesting I'm pretty happy about it and I'm looking forward to see how that develops on Drupal 8 because the entity reference module is now a part of core and the inline entity form Will be carried over and added as a new actual dependency of Drupal commerce itself So commerce kickstart was the use case the test case that sort of proved the concept And then in commerce 2.x We'll be able to depend on that and take advantage of all the work that's gone into building commerce kickstart 2 and making it what it is So this is the order administration interface again. It looks similar to the product interface And I guess I didn't I didn't call out everything you know every feature of this of these pages in the last screen But not only is it a view that uses the views mega row to expand and do that quick edit function out Did I just stomp like no? We also use views bulk operations for you to be able to do bulk updates to orders as you're processing a group of orders Or bulk updates to products the same thing is on those forms Filtering searching by you know customer name order date order number, etc All this is sort of built into commerce kickstart out of the box Thanks to another separate module called commerce back office And so this is sort of a common reframe here as I've as I'm running through these screens a lot of the functionality That's in commerce kickstart 2.x Exists in standalone projects on Drupal.org and the idea was we wanted you to be able to build a site That uses Drupal commerce and many of these modules without having to start with commerce kickstart 2.x A Drupal distribution is great for launching a new store But once the store is launched you can't go back and get the distribution features Unless they exist as these separate projects on Drupal.org So even as every new user of kickstart gets to take advantage of these features If you already have a site using using Drupal commerce or don't want to use this distro as your base you can still grab these modules and And install them configure them and have the same exact user experience for your store admins and such and Josh Actually is doing a series of videos called commerce module Tuesday You can find those through the Drupal commerce.org blog and where he's actually been showing how to Install and configure these various modules on an existing Drupal commerce site All right, and then last but not least in the back end of commerce kickstart We have this connector to what we call the commerce marketplace the commerce marketplace is sort of the place to find vetted and Handpicked integrations with third-party services that we have partnerships with so you'll see in here giraffe Is our partner for e-commerce analytics on site other partners include payment gateways Performance services sales tax calculation services and many of these folks are actually in our booth right now in what we call the commerce village Which is our effort to bring e-commerce service providers to you at Drupal con So we go to trade shows where they have huge booths and they reach out to the whole general commerce community But they typically haven't had a representation at Drupal conferences even though other parts of the sort of Drupal environment has so they've been hosting companies at Drupal cons for some time now well now We're saying let's bring some of these e-commerce companies To the conference as well to get to know you to get to talk about their integrations in Drupal to talk about You know their prices and their their business models and their offerings so that whenever you go to launch your next e-commerce site Using Drupal commerce You'll have them here ready to plug in right into your website and you can search them find them right to the Backend and what's great about this is that some of these services like giraffe actually have registration apis So you as a developer can create an account on the commerce marketplace And then go and register any site that you're building for giraffe and manage all of your API keys for all of your client sites through one User interface within the commerce marketplace itself. Additionally the connector module here will eventually be able to Create that all-in line and configure the modules for you right from the back end of commerce kickstart Again, this is part of our effort to make it faster simpler and easier for you to get a new e-commerce site up running as quickly as possible And if you look at some of our competitors magento does something similar With their their magento go platform and the magento connect ecosystem or at a sort of meta level Google does the same thing with Google apps It's all about sort of embedding into The interface here you're already using a way to connect to a variety of additional services and add-ons for the site So let's go back to the slides Because I just have you know one more little slide here that says hey come join us at the commerce village We have these partners here with us at the conference and they are doing demos They're you know offering whatever they have to offer They're explaining themselves and their integrations into Drupal And it's a great opportunity for you to actually talk directly to these companies and say you know What would make your life as a merchant or as an e-commerce integrator easier and hear from them what they have come Down the pipe in fact one of these at least just launched the American Express payment gateways a brand new service from Mx And that our team in the UK has been able to integrate and then they're here to talk about that at the conference so come find us at the commerce village from the back right-hand corner of the exhibit hall and We'll at least be having beer on Thursday afternoon. So come join us for that if nothing else So what else are the next steps for Drupal commerce? We're looking at You know continuing to expand that the suite of products and services around Drupal commerce to make it easier for you to Sell commerce to your your clients and make it easier for us to communicate about to the broader Sort of e-commerce E-commerce world one of the things that everybody asks about or what about mobile integration Not just responsive design But actually native mobile apps that can take advantage of phone hardware that can take advantage of push Notifications and other hooks that the operating systems offer and so our first implementation of this is the commerce mobile offering again developed in in partnership with summit Kataria and he'll be demoing this at our booth and the idea is that This will connect directly to your site and pull down product data Order history data if the user is logged into the app and give you as the administrator the Ability to push out through rules push notifications to the device you know, you know advertising special offers or eventually making personalized offers to different Customers within your stores. Maybe it's a discount code for someone that hasn't placed in order in two months or something That sort of functionality can be rigged up through the rules module set to run on cron And then you can actually use the mobile app to start to drive more sales to the website itself And so it's tools like this that we want to bring to bear so that everybody else can take advantage of these two to sell Drupal commerce to all the different merchants that you have access to that will never hear from and that's actually been one of the The coolest things about doing uber card and then Drupal commerce is that they're they're combined about 75,000 e-commerce sites using the software and I've personally talked to maybe like 75 of them So so by a factor of 1,000 there there's so much more going on With e-commerce on Drupal than than I or commerce guys will ever be able to touch But we want to continue to develop the framework and the sort of ecosystem of tools that you are Much better equipped to to win these projects and work in partnership with commerce guys to deliver them And so if there's something like the commerce mobile that we don't offer or that count that Drupal commerce the framework doesn't do I'd love to hear from you It's it's it's much better as an open-source community when we're not just an echo chamber for the guy That's releasing stuff when we can actually hear back from the community how it's meeting your needs or not meeting your needs it helps us make the next version even better and You know helps Drupal continue on its path toward becoming the number one open-source e-commerce platform in the world All right, so the last thing here is the commerce platform This will be a hosting platform that's specifically tooled to host commerce sites. It is I guess working through Amazon cloud services to to sort of rethink how Cloud and agile hosting can work for you so I strongly encourage you to get a demo from Damian because he's he he's the one that can best communicate how the I guess The lack of a paradigm that that platform sort of forces you into is a benefit for you So it's it's basically a hosting platform that lets you spin up new development environments using get branching and Managing all of your environments as separate branches with Basically forked forked file systems and databases and then mergers backup stream, etc. Etc. So hope that's not over Folks head in the site building track But just suffice it to say that the platform is trying to rethink the way that we are Building and then launching websites using Drupal kind of escaping Maybe some of the some of the the limitations or restrictions of the dev staging prod Environments that we're used to so I'm strongly encourage you to get that demo from Damian And then I do believe that comes with a free beer ticket or something at the end of it as well Because again, it's actually much easier to find beer at Drupal con port and then it is to find water if anybody or coffee, yeah It is the city for that So let's talk about Drupal commerce 2.x and then I'll I'll break for Q&A and then we'll break for beer and coffee and water So the Drupal commerce What's what's the best thing to say here how to how to dive in I Think the the the fact that Drupal commerce is both a core framework and a sort of complimentary distribution Becomes confusing when you look at the version numbers People look at commerce kickstart 2.x and think that is the second version of commerce But commerce kickstart 2.x actually uses Drupal commerce 1 And then there is a commerce kickstart 1 that's that's much more bare bones and minimal But it's still just Drupal commerce 1 and then in Drupal 8 will have Drupal commerce 2 and ostensibly commerce kickstart 3 Who knows how it'll work out? But basically what I'm talking about here is the next version of the core framework so The the sort of like core store order Customer payment entities etc and all the systems that go with them like shopping cart and checkout all that stuff is going to be Re-architected and and updated for Drupal 8 and so this will sort of run through some of the changes But it's important to note that Development of the next version of the framework doesn't really begin in Drupal commerce itself. It actually began in Drupal core So for the last I don't know exactly how long last year year and a half Chris Vanderwater is a commerce guy working from his home in Oklahoma as an initiative lead for the core of Drupal 8 He's been heavily involved in the plug-in system The new blocks and layout system for Drupal 8 So a lot of our contributions to that was Facilitates is facilitating what we hope to do with Drupal commerce on Drupal 8 But not only that there's also the entity reference module and so Drupal commerce was was the primary test case for Architecting a major contributed module for Drupal 7 using the entity system and fields and references and all that and at the time There was no entity reference module. So we included in Drupal commerce a product reference field customer profile reference field and a line item reference field and Because they were sort of like each successive implementations of the same idea. They got progressively better so that I think the line item implementation is probably the worst and Maybe the product implementation had the most love But you know that there's just some inconsistencies there And that was just a result of the API is developing and then commerce developing and it's all very organic and messy But thankfully during the course of Drupal 7 at commerce guys We were able to build the entity reference module When prototyping a client site and that module far eclipsed actually the commerce usage stats So there's something like twice as many sites using the entity reference field as there are using Drupal commerce So for Drupal 8 we were actually able to get the entity reference field module into core So by focusing on getting entity reference in there and Andre Matieski was one of our our prime sort of pushers for that within commerce guys We now will be able to deprecate thousands of lines of code from Drupal commerce itself We'll no longer have to manage that because Drupal core will do it for us And so we really sought out ways that we could contribute to the Drupal 8 Drupal 8 timeline and roadmap so that we had less and less code in Drupal commerce and really as far as I'm concerned The most successful Drupal commerce 2.0 release will involve the least amount of code necessary So that's that's why we really focused on building into the plug-in system the entity API The field system we had guys contributing to getting views into core So that we can take advantage of this code and get rid of a lot of code out of the commerce modules themselves We will open the 2.x branch for Drupal commerce once we have a minor release out of Drupal 8 Drees said that an alpha release of Drupal 8 is coming soon So as far as I'm concerned when that happens I will be comfortable opening the new branch and beginning to to Reimplement our commerce entities and field relationships and views plug-ins etc etc on Drupal 8 so that should happen any day now and then I guess Drupal 8 will Maybe be ready by the end of the year and we hope to have a Drupal commerce 2.0 Beta version or higher by that time And then when we think about what's actually going to happen in Drupal commerce obviously the big thing is we will Re-architect around the new features of Drupal 8 itself So we were really excited to get rid of some of our dependencies like the entity API The will no longer be necessary because the entity metadata wrapper that we leveraged so heavily within our modules is now a core part of Drupal 8 So we'll be able to change all of the code that interacts with that Especially as it pertains to manipulating field data and dealing with multi-lingual sites a lot of that will change But it's for the better and it's actually really exciting to be able to re-architect this now and stop You know dealing with all the issues that we sort of endlessly crop up in the issue Cure about one more part of the Drupal commerce interface that isn't translatable or that translates to the wrong language or something So we've had some pretty fun Localization issues because of that and we also want to address common configuration and development challenges and one of the refrains that you hear is that People still choose to use uberkart because it allowed them to create a product that had a lot of attributes and options Without forcing them to use a unique SKU for every different combination Now I would say well That's bad data to have all these anonymous changes to the same product but not know what variations actually exist But the the critique of the user interface within Drupal commerce itself is fair We should be able to have the same architecture But make it easier to manage and build out large groups or what we're going to call product hierarchies Within the core of commerce without having to revert to some sort of you know old software that doesn't really give you great data and and hasn't you know much smaller good system etc etc again like I said we want to kill it so So I'm trying to put down my old dogs my new dog can flourish And it's not happening fast enough, but And the the other thing we want to do is that sort of a apply a broader set of Development emphases to the sort of broad I guess core of the commerce modules And let's just skip this side because I kind of already mentioned timeline and actually look at what those development emphases are So this kind of this first one here actually goes along with what Dries presented in his keynote And what I think makes Drupal 8 really exciting It's the idea that that we don't have to do everything within Drupal and certainly when it comes to e-commerce We can't do everything within Drupal So let's make sure that Drupal and Drupal commerce is a very a mighty fine data conduit Not just a container not just the sole source of all of your e-commerce data and the sole point of manipulation for all these things But but make it a much better channel to put you know your customer data into your CRM and send your order data out to your fulfillment system and You know provide your analytics some service with all the different I guess user behaviors and interactions on the site so that you can depend on all of these sort of best of best of breed Or best in class services to continue to improve your store and improve your conversion rates and reduce the management rates Etc. So I really really look forward to seeing how Drupal 8 enables this thanks to things like the rest module So out of the box we will have I Guess out of the box will have rest resources for all of our commerce entities And better tools for consuming data from remote web sources So there are things like that happening in the core of Drupal 8 that should make it easier for us to use Drupal commerce as that that data conduit and then provide much better Integrations with these services that we're bringing to the marketplace and maybe the ones that don't exist yet I'm additionally. I want to really serve the majority use case in a much better way How many folks here have actually launched? Drupal commerce sites so far All right, so yeah, dozens of you have done it and I'm sure that that maybe Maybe at least one of you has has been befuddled by the shopping cart refresh Happening every sting in time the order gets loaded or maybe somebody else has wondered. Why can't I just? Why can't I write a piece of code that can manipulate a product price? Why does everything have to be done through rules and that's a common question another one might be shopping cart revisions or Checkout revisions. Why am I getting a new revision of my order every time something gets added to the card or the user progresses through the checkout form? and a lot of these features or Yeah, a lot of these features were added in to really kind of serve the most complex use case imaginable So for example, we thought well It'd be it'd be really nice to be able to see exactly when the customer abandoned the checkout process and capture All of their data as soon as possible So we have you know really aggressive revisioning strategy for orders during the card and checkout process But for the average user What they found out was that their database was just filling up with all of these rows of entity revisions and field revisions And they they really had no good way to take advantage of that data So it's just useless data taking up space and preventing them for maybe making some other customization or configuration And and at the end they just didn't serve them at all and then come to find out We could actually integrate with someone like giraffe and provide I guess I didn't actually show the screenshot but we can actually provide in the back end of Drupal commerce a dashboard that's actually going to show you you know a funnel of who's visiting who's shopping Who's added to the cart at what point of the checkout process did they abandon the Abandoned ordering from you what are your click-through rates and your conversion rates and your abandonment rates all that stuff that we thought Oh, we need to have all of this data in the Drupal database. So let's be really aggressive about revisions Well, it turns out it's much better and much easier and you know Much more powerful experience for the merchant to just provide integrations with services like giraffe or you know If you're using it Google analytics MailChimp has their e-commerce 360 analytics these other things So let's stop trying to do everything within the core commerce modules themselves And instead focus on serving the majority use case better. Um, so as anybody actually used cell price pre-calculation They actually have used it one guy two guys out of the dozens of hands that were raised If I had to guess I'd say it's probably like less than one percent of our users use this this ability of Drupal commerce to look at all of your pricing rules and then Sort of compile to the database all of the dynamic prices that are possible on your site So we could literally take it take a site of a thousand products and and look at all of the different pricing rules in place Maybe there's a dozen of them and then generate a million two million rows in the database that have all of these dynamic prices Calculated out with that are that are keyed by the different conditions and context, etc. Where those prices might You know might might be I guess might be used or would come to bear And that was done so that you could have views that could actually sort and filter by Calculated prices not just the price of the products stored in the database But the problem is it serves three people in this whole room of users Well while everybody else just wants to be able to have a simpler cell price calculation process But we sort of we limited the broader process to serve that that edge case And so what I want to do is find those places within Drupal commerce where we can better serve the majority use case And I know that we haven't hit them all if you go look at Drupal commerce work slash road map You can see at least the ones that I'm aware of but I know we haven't hit them all so we'd love to hear from you What what is this you know where are the areas where we have sort of preemptively or prematurely? Sort of optimized for the power user And not better not you know properly served the the majority user so I'd love to hear from you on that So that's a sort of broad emphasis that will you know have? Implications across the shopping cart system check out price calculation tax order management and all those things We also want to continue our march to using explicit configuration instead of sort of implicit magical behaviors I mean, I'm not sure how long some of you've been using commerce But if you recall before we had our one dot over lease It used to be that if you wanted a product attribute field like the size of a shirt or the color of a coffee mug or something You just had to you just had to kind of know what field types would work as attribute fields And you had to know that they could only be single value And I think there's there's one other thing like three different magic Configuration parameters that had to be just so in order for it in order for that field to work as an attribute field Well, eventually we realized that was just not usable at all Nobody got it and you and we couldn't throw enough documentation video tutorials at it to make sense of it So I was like, oh well We could just add a simple checkbox that says make this an attribute field and only show the checkbox for those For those cases where it where it's a possibility and whenever we realized that and made it explicit We suddenly stopped having support requests about how to add new attribute fields to products So that was a case of using implicit magical behavior and then switching that to explicit Configuration and making it much easier for site builders and store administrators to understand what's happening with their site So we want to continue to find those areas. I'm not aware of any that are that are sort of Common problems, but if you are love to for you to come comment on the roadmap or add a post to the issue queue And let's continue to snuff these out and my hunch is that a lot of the sort of magical behavior and implicit functionality is at this point probably happening in some of the major contributed modules that people are using for commerce So I don't know all of those. I'd love to hear from you where we can do better there And then finally the last emphasis would be to to actually build and use robust internal APIs One of the things that happens in Drupal module development is that we realize that that administrators are Commonly interacting with our data through forms and so a lot of data manipulation saving updating deleting etc Happens directly in form submit handlers or inform validation handlers The problem is if you then want to use that same code somewhere else say in a rules action You have to kind of copy and paste that code over to your rules code And then you know if somebody's writing a migration plug-in then they may have to copy the same code Etc and it kind of kind of just it does not serve our developers Well to put all of this all of this data manipulation in these various callback functions much better Would it be for commerce to have robust internal APIs that you could then? invoke from form submit handlers and from Views plug-ins and from rules callbacks and all that stuff So one of the clear cases where this needs to happen is with the pricing API Right now it's it's a pain for folks to write code that that Directly manipulates prices because you can't just change the amount on the price field You also have to write a price component that kind of keeps everything in sync so that when you go to grab the total of an order You aren't left with with a unit price on a line item that mismatches the total price And then isn't reflected in the order total night I guess that could have used a diagram, but the idea is it's actually difficult to manipulate and customize product pricing right now, but We can fix that with commerce 2.x and there are other places where we can fix this as well And this will kind of tie back into the first emphasis Which is Drupal commerce as a data conduit when you deal with them with web services requests and exposing your data in custom Custom rest resources it helps to have that API ready So you don't then have to reproduce the code yet again and translate it into something that that your mobile app or web service or whatever it is can use All right, so let's talk about actual tasks and integration that needs to happen In Drupal 8 I've already mentioned we have the entity reference field So we'll drop thousands of lines of code from the product reference customer and line item modules And we will just depend on that core field and then if we need to Write widgets and formatters for them, but if we depend on the inline entity form module We may not even have to write any custom widgets at all In fact, one of our widgets got moved into Drupal 8 itself that the hidden That the hidden form or the hidden widget or whatever what I can't remember the name of it But in Drupal 8 you can have just a field that is not in the form at all by using the hidden widget Well that came from Drupal commerce because some of our sites had product reference fields that literally reference tens of thousands of products It's a Euro centers comms the prime use case And so we said well that it's not gonna work for them to have this HTML document that lists out 10,000 product IDs in a select list So we we just created this hidden widget for them now It's a part of core more code that we'll be able to remove from the product reference module And so it's really exciting to me to see just how much we will be able to get rid of again We'll have views in core better into the API supporting course. We'll be able to remove a lot of our helper functions And then we'll you know update all that stuff Actually have the shopping cart block and shopping cart form use views completely instead of use custom callbacks that just embed views So a lot of these things are in the roadmap. They're in the task list I encourage you to go and look at the task list and see if you know your pet issue is not represented Because I'd love to hear from you and consider what we could do to to better address your concerns We also need to convert our commerce data structures like taxes and checkout pains To the core plug-in system and last but not least add a new entity type to Drupal commerce So Drupal commerce 2.x will have the understanding of a store right now a store in Drupal commerce is really just the site And that makes it a challenge for people that are implementing multi store cases like a marketplace site Because that because you kind of have to then think well What what actually does represent the store and how do I do access control for products in this store or make sure that? Payment goes to the right person or make sure that products get grouped together logically, so we're going to add the store entity type in some Configuration for you to be able to to rig up that that multi store or multi-seller E-commerce site more easily All right, and then there are some existing areas inside of Drupal commerce that we will target for improvement Let's just throw these all up on the screen So product hierarchy and group management. I've already mentioned, but we actually want to erase the the administrative complexity of managing products and product displays and we'll do that by actually allowing Products but not requiring them to function as displays themselves and actually to function as displays for an entire hierarchy of the product catalog So you can set up a product hierarchy that puts your attribute fields in there And we'll I guess sort of set a token pattern for skews and then create whole batches of products at once Manage them all together and then sort of put on each individual product You know it's going to point to its parent product So you'll always know You know what what front-end URL to point to now a product wouldn't have to have a front-end product display You can still have this sort of comp the existing Model of all of my products are defined on the back end and I use the node to actually reference and display the product But we actually want to move more toward just using the product entity type itself to manage product displays and Not requiring the separation and certainly making it easier to manage groups So there's an existing contribute called the bulk product creation module and that Facilitates creating a whole group of products at once and then using the skew patterns based on your attribute fields to get all the different variations created and tied to one display we want to solve that in core and I Don't think it's on triple.org yet But we do have some whiteboard diagrams of things and ideas to make this happen But obviously looking for feedback on that as we push to implementation We also want to put the customizable products module into core So right now there is the commerce underscore custom underscore product module That facilitates creating multiple product line item types and having those those sort of anonymous Customizations that don't require a new skew. So when you think about registering for Drupal con You have to tell them if you're a vegetarian or eat eat kosher eat halal or whatever it is That was a field on your registration line item type Same for for hearing impaired speech impaired etc. All those things were just fields on your line item type And we're saying that the product itself was the registry at the conference ticket But there were these other aspects of your registration that should have been tracked and managed alongside of your registration But didn't result in a different skew. They weren't they didn't need to track inventory of of Well, I guess they'd you know, it's separate anyways the idea is that that customizable products will be a core a much more improved core feature and and the goal there again is to reduce the administrative complexity of managing these sort of Product kits or product building scenarios like the computer scenario, you know Choosing my hard drive choosing my display all that without requiring administrators to use thousands and thousands of skews If you don't need to based on how your your site is built We want to improve the checkout form and the add to cart forms on there I guess maybe they degrade right now If JavaScript is disabled, but it's a very ugly degradation. It's not it's not It's not really working that great And we think we have some ideas to improve the core Ajax system To make it easier to embed actual buttons to trigger the updates instead of always depending on on changes and all that stuff So that's listed in the roadmap. There are various bullet points for ideas to improve that Also, the add to cart form itself. Has anybody actually looked at the code for the add to cart form? Yeah, I see some grins too, right? Because it's like a thousand lines of code or something And that's because the form builder itself actually builds in a lot of that that awareness of all right What are my attribute fields? How do I group the products in this group together so that my dependent attributes work properly and all that stuff Like all that should really be an API function that the form is using to say if I given this set of products And this may be map of chosen options, you know, how would you build this form? So we really want to improve the API there and drastically reduce the footprint of that form because it can be quite a bear to To customize or to alter so that's been a pretty common complaint and I'm sorry Also with payment methods Many of you would be aware that in Drupal commerce we wanted to make sure that any payment method could be Instantiated any number of times so with uber card I had it so that you can figure to payment module and that was it you could have that appear or not appear on the checkout form or On the order administration form, but what if you needed two different sets of API credentials? Well at the time you just would have had to like copy the module rename all the functions and then sort of have a Separate payment method that was really just the same thing But just kind of renamed but here we've actually used rules to say you can instantiate any different number of PayPal website payment standard instances, so maybe you have one account for Regular transactions one account for micro transactions You could actually use the rules module to decide which one appears on the checkout form so you can actually swap in API credentials based on any aspect of the order or even change the The payment method entirely so we do this a lot in Europe where we have one payment gateway for France one for Germany One for the UK and then maybe one for everywhere else in the world That kind of thing was facilitated through rules and through the way that we built the payment system But it turns out that storing your payment method configuration in rules actions makes it really difficult to get at because it's hard to It's hard to alter that stuff for example because there is no like real clear point where we're loading the data from the database with a Natural place to invoke an alter hook So we want to address that and make it function more like the shipping module does so with my flat rate shipping module You define your flat rate services in one place and then you just use rules to turn on a particular flat rate service so we want to be able to say Define your payment methods in one place and then choose rules to turn it on so you can still have any number of instances But where and how you manage that configuration is one easier for merchants and then to also I guess better to work with from a data standpoint We'll address some currency and address formatting issues. Those are listed out in the roadmap We'll certainly address as I've already mentioned pricing rules and the complexity involved there Basically saying that if you aren't using pre-calculation, there's no reason you shouldn't have a hook To directly manipulate product prices. So let's let that happen and then finally We'll actually finish our full revision support and introduce the concept of revision tagging So even though we have you know in order revision for every step of the checkout process It's actually difficult to come back at a later time and say when did this customer actually complete checkout? Because you don't actually have good insight Into the different revision timestamps and what changed from one revision to the next so it's hard to say well Did the order status change to commerce or to checkout complete and then depending and what was the timestamp from that? And how do I get at that data that that's actually difficult to manage right now So we want to actually sort of evaluate the concept of tagging revisions so that we have just a sort of single abstract API to To tag product and order and customer profile revisions for use and an easy reference at a later point in time And so then the last question I'll answer is where do you fit in? And basically I'll say that if you're interested in contributing to development. Let's talk after the session whether in here at the booth I'd love to get your feedback. I'd love for you to read the roadmap It's at Drupal commerce org slash roadmap and see what's missing from your experience and see how we can better serve those four Emphasies what are ways that we can make Drupal function better as a data conduit? What are ways that we can build and use robust internal APIs? How can we solve the common configuration and development? Sort of problems, and then I can't remember the fourth, but I'm sure it was good So let's talk about how we can can more broadly apply those things more more More specifically take advantage of the Drupal eight APIs I only know so much of what's going on And I'm sure that there are many of you in the room that know more of different parts of it than I do So I'd love to hear from you and then finally if you haven't actually used Drupal commerce yet I'd love for you to give Kickstarter to a try so you can use my computer You can use the booth computers and and just get to know you know how it works We'd love to hear what you think and certainly we'd love to see you Using the marketplace to launch new stores, you know quickly happily funnily whatever I intend to do it here soon for real milk cheese and then also some other local Merchants there in Greenville and you know, I'm always on the lookout for my next e-commerce site idea. So Let's go on to Q&A time. We do have a microphone here that you can use are there are there any questions about roadmap or about kickstart functionality or Anything else that I may have mentioned If not, it wouldn't hurt my feelings If so, it wouldn't either Hello. Hi. Hi so I've taken a look at commerce and kickstart. I I really like the flexibility of commerce And how it can apply to different business models. I looked at kickstart as a means to sort of derive what the best practices are for commerce, yeah, and One thing and I think this is the first I've heard of the product hierarchies Okay, and so I think this question is going to pertain to that but one thing that struck me as odd Was it seemed as though? commerce was There was a lot of coupling between products and nodes. Yeah, and commerce was using Nodes as a rendering engine for the products And in order to facilitate that There was a lot of sugar that kicks start Added to Drupal to sort of make sense of that process. Yeah, so one example is if you go to look at node entities There is a column that is added product displays. Yeah with a flag yes or no. Yeah, so you can sort of see You know, there Products are adding sort of a mess of entities to I'm not only looking at nodes and sort of also dealing with Commerce and with products and so I'm just wondering if that's going to be addressed Yeah, that's that's gonna stay if hierarchies are are involved or dealing with that. Yeah That's basically why we decided to go with this this concept of product hierarchies and using like the top of the hierarchy The top of the pyramid as the display directly instead of using a separate entity type was because kickstart Was our first pass at how to make it more understandable and it's resulted in more confusion because we we kind of Erased the distinction between a product type and a node type within kick starts that we were treating them very closely together like you said, it's just the sugar that that couples them together even to the point of changing the the admin UI of the content type screen and moving menus around and adding, you know Options to the form so our thought there was well Maybe we can just erase the distinction entirely and make it easier for merchants Because they'll just have to go create their new page or create a new product type or something and do all the stuff in The background but that that was like, you know, semi magic implicit behavior We're trying to get rid of that with the explicit configuration. So I didn't prepare anything in the slides that actually shows how we conceive of the hierarchy working the configuration for that working But I do have that if you're curious to look at it afterwards. So I am. Thank you. Great Any plans for the ability to do one-page checkout? Yeah, so I mean, I guess maybe I need to know something more from you And that is how does it not do one-page check out now? Is it not? Okay. I thought that you couldn't do it No, no, you can so within Drupal commerce you have a drag-and-drop checkout form builder the default Yeah, the default configuration is to use multiple pages, but you can make it work on one page we use the sort of two-step thing by default because the the sort of like cart contents part of the checkout form doesn't update to show taxes like as you enter an address and The review page gives us that opportunity to show oh and taxes were added to your order By the way, and then have the point the point of departure for payment But some so maybe there's some stuff that we can you to make sure that the checkout form is updating itself as addresses are being entered but you know a good a good example that would be this the shipping module does support like on page Recalculation of shipping services as you put in your address So if we duplicated that perhaps for the cart contents and taxes you could have you know a fully one-page Checkout form but so it more or less does right now But depending on the type of things you're doing in the checkout process. Maybe it doesn't work for you So maybe we can do it better Yeah So a lot of the 2.x features look great, and they look like they're going to alleviate a lot of points of friction I've experienced with 1.x The inevitable question is what's the upgrade path going to look like is is there going to be one or Wednesday, I'm trying to find someone to field that question Is the date or even is the data modeling structure going to be really significantly different like what can you just comment? Yeah, I mean I last I heard Drupal 8 wasn't even going to have like an upgrade path Meaning instead of trying to do everything through update hooks. Let's start to treat updating from one major version to the next as a migration So in that regard I would view moving from a Drupal 7 commerce site to Drupal 8 with commerce as a migration The the basic data model of we have these five entity types We'll actually have six and two but we have these entity types, and they have certain properties and fields That's not going to change. I don't know if the field schema has changed significantly for Drupal 8 or if it's just the API That has changed but but a lot of the data storage should be Very close to similar so that the upgrade path could be Easy, but I don't even know what it's going to look like from Drupal 7 to Drupal 8 without commerce So I can't really Say the biggest the biggest departure of course is going to be this Idea that you'll no longer have to have a node to display a product But that's not to say you couldn't still do that So maybe what we end up doing is all of the stuff that we do now for product field injection I don't I don't see a reason for us to necessarily remove that from core So maybe maybe we still just support on Drupal 8 of the ability to embed Product entities into nodes and have all the field injection all that stuff work Just like it did before But but then also introduce the new way to do it without deprecating the old way There's no reason we couldn't do that the code's already written and it already works And I assume the data model is going to be similar enough to accomplish that and probably even even easier So I'm I'm in through. I'm a it's optimistic Optimistic, but I don't have any hard answers Yeah, I know is Kind of briefly addressed but with the mobile Application that you're you're talking about is that something where we are going to just say hey Here's a connection into my my site and then just tell everyone hey go download this or is that something that we can take and customize on Our own and extend further to then release. Yeah, so yeah, I didn't catch any of that Yeah, I mean right right now commerce guys is basically functioning as the actual software Publisher for the mobile apps. So we have our Apple developer account. We control the code It's titanium up celebrated code and we will actually compile the apps and publish them in the app store on behalf of the merchant All of the Drupal sidecode is on Drupal.org so commerce services The necessary configuration to make sure that the endpoints are there that the app is going to talk to all that stuff is on Drupal.org itself But the the app itself wouldn't be something that you just go grab and compile and fiddle with But that is something we could talk about. It's just not something we've explored yet. Okay, so cool. Thanks To unrelated follow-up questions one the single-page checkout If you're using certain payment processors like say authorized net, it's my understanding that you Can't have anything that's going to throw a validation Issue in any of the other forms besides authorized net Yeah, we did fix that in commerce 1.6, but I know another problem you're talking about but I'm pretty sure that's been fixed So so you can have that exactly yeah If there was an error a validation error on one of the other checkout pains Then we no longer attempt to submit the payment pane So it actually looks in forms that are tries to find any errors and then halts the the one-page checkout form submission If it finds something so you don't have those like bunk bogus transactions coming through anymore So is that is that a property of the authorized net payment module? No, it's just part of core commerce itself now But this is pretty recent so it's not yeah We'll go back and Make sure we got the latest and greatest cool Okay, and then the other was I thought I remember from a year or two back The idea of one of the ideas of having no displays separate from products was that would facilitate? Multilingual sites. Yes. Is that is that something that developments in Drupal core has made? Less of an issue or is that yeah, certainly certainly in Drupal it'll be much less of an issue The big reason that we did that was an uber cart. We had Products as nodes and if you want to do multilingual you actually ended up with a separate instance of the node And they were just sort of like related together And so since all of your price and product data was on the node itself You then ended up with synchronization issues because in duplicating the node to translate the title in the body You also duplicated all of the e-commerce data And so that was the initial impetus for separating out the product data from the point of display There are other reasons as well like stock control and and other things but But you know with with Drupal 8 and with the advances in the entity translation and field translation systems Exposing the product entity itself should no longer be an issue when it comes to the localization Multicurrency and all that stuff, which is good. Yeah, thanks. Yeah, thanks for the question All right, I'll do these last two guys and then we'll take off. Okay Do you have if pricing is in a client's? ERP or if you don't know what that is accounting system Mm-hmm is there a API that I can take that information and bring it into commerce and then deal with that Is there a separation between their database of their pricing and their products and the presentation and the on the website? I mean honestly, it just really depends on the system I don't really know how to answer that at a sort of abstract level like it just depends does does the ERP system have an API that you Consume remotely or you're gonna have to push data to the site from the ERP system I mean that that stuff is possible and part of the best person to talk to would be Peter Philip And I don't think I've seen him in here But he's the guy that built Eurocenters and they literally mentioned about it They literally managed about a million products and 1600 rules Remotely compile them into sort of like CSV export and then put that all into the Drupal site using feeds to keep those things Synchronized so technically it's possible absolutely ERP system provides that information flow on a Absolutely, yeah, okay. Yeah, and last one and then we'll take off Are there any plans or anyone working on a way to add coupons? Simpler Lee that's a word similarly To commerce I guess the question is just like what we just have to know what's difficult about it No, I want how to make it easier I mean for instance if you wanted to add the ability to add coupons on particular products Yeah, all four modules. You use the keep on module and rules and all that yeah Follow the special steps on the coupon code by reference Yeah, I mean like part of that was done via commerce kickstart in the commerce discount module But it's not finished. So it's actually actively being developed on Drupal commerce for Drupal 7 I don't know exactly what needs to change about that for Drupal 8 but the guy that maintains coupon is actually here He's from commerce guys. His name is Pedro And he works out of our London office. I don't think he's in this room Not he's not in this room. He had better places to be But come find him at the booth and I'm sure he'd be happy to talk about road map and how to improve it Okay, thank you. All right. Thanks everyone for your time. Have a good time