All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
In last couple of years we have seen the rise of assistants, AI is enabling our lives more and more and with help of devices like Google Home and Amazon Echo, its now entering our living rooms and changing how we interact with technology. Though Assistants have been around for couple of years through android google home app, the UX is changing rapidly with home devices where now we are experiencing Conversational UI i.e. being able to talk to devices, no more typing/searching, you can now converse with your device and book a cab or play your favourite music. Though the verdict on home devices like Echo and Google home is pending, the underlying technology i.e. AI based assistants are here to stay.
In this post, we will explore Google Assistant Developer framework and how we can integrate it with Drupal.
Google Assistant works with help of Apps that define actions which in turn invokes operations to be performed on our product and services. These apps are registered with Actions on Google, which basically is a platform comprising of Apps and hence connecting different products and services via Apps. Unlike traditional mobile or desktop apps, users interact with Assistant apps through a conversation, natural-sounding back and forth exchanges (voice or text) and not traditional Click and Touch paradigms.
The first step in the flow is understanding use requests through actions, so lets learn more about it.
Attractiveness of SEA markets to Chinese game developers, problems and potential solutions - by Jason Kong
Global e-commerce sales topped 1 trillion US dollars in 2012 for the first time in history. Industry estimates projected that sales will reach 4 trillion in 2020. As more enterprises conduct their core businesses on the Internet, Drupal has evolved from being a pure content management system to a full-fledged e-commerce site-builder. While e-commerce is not (yet) part of Drupal's core, support for it comes in the form of contributed modules.
A quick search on Drupal.org for stable, actively developed e-commerce modules generated 330 hits. Many such modules are optional for your online storefront. For example, AdSense, Affiliate Store, and Amazon Store are of no interest to you unless you want to monetize your website through advertising and affiliate marketing. Some modules such as Barcode are only relevant if your storefront requires that specific functionality.
In this post, we describe a set of 7 best-of-breed e-commerce Drupal modules which together implement the core functionalities of an online storefront. These modules focus on enterprise mission-critical operations that drive business results and have a direct impact on the bottom line.
7 E-Commerce Modules that Every Drupal Website Must Have
So let's not keep you in suspense for too long and list e-commerce modules that we at Vardot think are essential for every online shop built with Drupal:
Drupal Commerce vs Ubercart
Commerce Recommender / Ubercart Recommender
Commerce Upsell / UC Upsell
Mailjet / MailChimp E-Commerce
Now let’s discuss each of the modules in particular and see why it is so great.
Drupal Commerce vs Ubercart
As I mentioned before, e-commerce is not a built-in core feature of Drupal. The easiest way to add e-commerce functionalities to your website would be installing one of 2 competing Drupal modules: Drupal Commerce vs Ubercart. The 2 modules are often described as e-commerce ecosystems or frameworks which depend on third-party modules to make them feature-complete.
Drupal Commerce and Ubercart are both excellent e-commerce frameworks with their own active developer community. Ubercart is known for being easier to configure, and being more ready to deploy out-of-the-box. In contrast, Drupal Commerce is designed to be customizable and can scale up to support large enterprise e-commerce operations.
If you operate a small business with modest e-commerce requirements and a small I.T. budget, Ubercart is a good choice. Medium to large enterprises should consider Drupal Commerce because it is flexible enough to satisfy more complex requirements, and scalable enough to support future business growth. One caveat is that you need to possess technical expertise and be prepared to spend considerable time and resources to extend Drupal Commerce to do exactly what you want. You can find a more detailed comparison of Drupal Commerce with Ubercart in this article.
Commerce Recommender/Ubercart Recommender
To optimize revenue growth in e-commerce, enterprises need to find ways to boost revenue per order. Cross selling and upselling are 2 key techniques to achieve revenue growth objectives. Commerce Recommender and Ubercart Recommender are 2 Drupal modules you should install to enable cross selling on the Drupal Commerce and Ubercart platforms, respectively.
Both modules make personalized recommendations for your web users. The recommendations are based on the user’s current order and any previous purchases. If the user is a new customer, the lack of a prior purchase history limits the recommendations that the software can make. In such a scenario, the cross selling module analyzes the purchase history of other users who previously bought the same product in the current order, and recommends products which these users also ordered in the past.
Commerce Upsell/UC Upsell
Upselling is different from cross selling in that the former entices the customer to upgrade to a more expensive product with a better profit margin, while the latter is about buying additional products such as an accessory. For upselling, Commerce Upsell and UC Upsell are the respective modules to install on the Drupal Commerce and Ubercart platforms.
The 2 modules allow site builders to define related products for upselling purposes. During a customer checkout, the software recommends product upgrades based on what products are in the shopping cart.
Invoice is a Drupal module which generates sales invoices for your online business. You can customize the format as well as the content of your invoices using template files. After instantiating your sales invoices, you can view them online as well as output them in PDF or html format.
Your online customers can place their orders from any country in the world. Before they purchase your products, they want to know the shipping options and their associated cost. Commerce Shipping is a shipping rate calculator. It is designed as a shipping calculation platform which depends on third-party carrier-specific modules to provide the actual shipping rates. For instance, it supports UPS, FedEx and USPS through the modules Commerce UPS, Commerce FedEx, and Commerce USPS, respectively. Using rules, site administrators can configure which shipping services are available on a web store and how they are charged, including flat shipping rates.
Despite the phenomenal growth in social media, email marketing remains an integral part of any online marketing plan. Marketing and sales campaigns are regularly conducted by sending email to people on subscription lists. The Mailjet module supports email marketing on Drupal Commerce. Alternatively, MailChimp E-Commerce supports both Drupal Commerce and Ubercart. One e-commerce best practice is to offload email sending to third-party cloud-based email service providers. Mailjet and MailChimp E-Commerce integrate with the Mailjet and MailChimp email service providers, respectively. To use either module, you need to first sign up with the respective company. The services are free if email volume is kept below a certain threshold. Both modules enable site administrators to create email campaigns, personalize the marketing message, and track campaign effectiveness.
E-commerce reels in online customers from the farthest countries of the earth, together with their different local currencies. The online store must be able to convert product prices from the enterprise’s own preferred currency to the local currency of each customer. In addition, the newly converted local amount must be presented in a format that conforms to the customer’s regional convention. Currency is a Drupal module that specializes in converting world currencies based on stored exchange rates. In addition, this module can automatically customize the display format of price information based on the locale of each online shopper.
Summary & Conclusion
E-commerce is the key to unlocking revenue generation potential of an enterprise Drupal website. Drupal provides excellent e-commerce modules under two main technology ecosystems, Drupal Commerce and Ubercart.
While integrating the right modules is critical to providing the necessary e-commerce functionalities, site builders also need to pay attention to other important factors such as SEO and site security. SEO will bring more visitors and potential customers to a website, and site security will protect them against hackers when they transact business online. For more information about essential Drupal modules, please refer to our earlier blog posts: 5 Security Modules for Every Drupal Website and 10 SEO Modules That Every Drupal Website Must Have.
The building of an e-commerce website, that is SEO-friendly and secure, requires expertise that may be beyond the capability of many enterprises. If you require professional Drupal assistance, please contact Vardot.
Hearing the words “migration from Drupal to WordPress”, some Drupal developers would shrug their shoulders and WordPress developers would applaud. However, there is no place for rivalry, even for such life-long competition as that between Drupal and WordPress, where the most important result is an absolutely happy customer. For every case, there is a platform that fits a website like a glove.Read more
This is Quadruple Field. Like Double field. But only for drupal 8. Full credit goes to Ivan (Chi). I just used find and replace and added option to hold 4 fields. Few field formatters may not work as i just need a field to store 4 items.
We all develop outlooks and philosophies that guide us through life, explaining how the world is supposed to work. This can feed into how we interact with a game world in an RPG, even when we’re playing characters vastly different from ourselves. So what happens when we run into a scenario where the GM and the player are on completely different pages about how the world works?
Especially when those opposing world views create a disconnect in what the player is trying to achieve and what the GM thinks should happen.I imagine you’re looking at me with a quizzical look thinking, “Well, the GM is defining the world, so suck it up, Ang.” It’s not always that easy, though. Especially when those opposing world views create a disconnect in what the player is trying to achieve and what the GM thinks should happen.
To clarify a little further, let me give you this example. A friend recently ran a one shot that was essentially Survivor in Hell. The premise of the game was that Satan plucked the PCs from Purgatory to offer them a chance to win their soul back. It was a fun game and concept, but I had to keep taking a step back from my personal outlook and beliefs on the nature of heaven and hell. Otherwise, I would have ended up spending the entire game arguing against the very precepts the game was built on.
Of the twelve PCs available to be played, pretty much all of them had been tricked into selling their souls: a phone number and name exchanged on a cocktail napkin, an NDA for an experimental medical procedure, a receipt for a case of beer, a EULA for a dating website, etc. On top of that, most of the PCs didn’t actually get to experience the benefit of the sale of their soul either. There was some other Devilish trickery throughout the contest, but I wno’t go into that because it’s a game that might get run again and I don’t want to spoil it for anyone.
Either way, my personal beliefs pretty much reject the concept of Heaven and Hell. I’m not particularly religious, but the idea of absolutes like that always rubbed me the wrong way. That’s not how the world works, so why would the ‘end’ be so cut and dry? If I had designed the scenario, there probably would have been a little more give in the absolute nature of Satan’s deal with each contestant. I wasn’t running the game, though, so I had to work within the constraints the GM put forth, even if it went against how I think the world should work.
Not every disconnect between a GM and player worldview is going to be quite so religiously philosophical. Sometimes it’s just a matter of the player thinking, “This should totally work and solve the problem.” and the GM deciding that it doesn’t stand a chance of working.
Recently, I had the chance to try my hand at running a Tales for the Loop one-shot. For those who haven’t seen it, Tales is a game of playing kids in the ‘80’s that never were’. The game aims for a very specific feel, so they provide a very clear set of principles for running and playing the game. I made sure to clearly state these for my players at the beginning of the game:
Your home town is full of strange and fantastic things.
- Everyday life is dull and unforgiving.
- Adults are out of reach and out of touch.
- The land of the Loop is dangerous but Kids will not die.
- The game is played scene by scene.
- The world is described collaboratively.
Take special note of number three. One of the players either forgot this or didn’t take it to heart. As the kids discovered who was behind the bad things that were happening, his solution to make the problem go away was to call his mom, a scientist at the Loop, and have her tell security. This player happened to be a fairly dominant player, so his declaration that this would solve the problem made the other players back down on doing anything else.
Knowing this wasn’t how the game worked, I mentioned the principles again to remind them of how the game world is supposed to work. Using real-world logic instead of game logic, he continued to argue that his solution would work regardless of what I was saying. Eventually this devolved into a minor argument where I finally had to bluntly state, “Your solution will not work because of the nature of the game and if you kids do not act further on this information, <NPCs in the game> will end up dead.”
Now, many GMs would have probably just gone ahead with the player’s plan and let them discover the error of their ways the hard way, letting the NPCs die from the players’ inaction. Part of me wonders if I should have done that, but one of the other players was already emotionally invested in one of those NPCs and other aspects of the game, so the death of those characters could have crossed an emotional line she wasn’t prepared for. While it was in keeping with what the dominant player was demanding, I wasn’t willing to potentially hurt another player simply to teach him a lesson in the way the game’s world is supposed to work.
So, what do you do when there’s a disconnect between what the player and GM think should happen?
For the player, remember that the GM is the final arbiter of what happens in the game. It can be really frustrating when what you’re expecting to happen is veering off in a direction you don’t think is reasonable, but the GM is doing a lot of the heavy lifting in this game. You can definitely try and explain what you were expecting to happen, but don’t let it devolve into an argument that’s going to derail the game. Sometimes it’s necessary to take a deep breath and take a step back from your own point of view. Relax and try and enjoy the rest of the game. Ultimately, if the disconnect is too great, find a different GM to game with. Or, take a turn running a game yourself so you can see how it works from their perspective.
For the GM, having a player on a completely different page from you can be really frustrating, but that is part of the job of being a GM. When you come face to face with one of these disconnects and a player is obviously expecting something different to happen that what you’re narrating, take a moment and try and figure out what the player expected or what they intended with their action. Some players will take elaborate effort to describe an action and be confused when the result is obviously not what they wanted. Taking the time to parse what they intend can help bridge this gap.
These type of little disconnects happen all the time in tiny ways, but we gamers navigate through them easily. When they’re big, though, it can take a little bit of communication and compromise to keep the game moving forward.
Have you ever run into a clash of world views in one of your games? I’d be interested to hear how it worked out.
Font Awesome icons use scalable vectors. You get a high-quality icons, that look good no matter the size of the screen.
The Drupal contrib module "Font Awesome Menu Icons" will help you to add and position the icons in your menu tabs.
When you look at a product online, you might think you're looking at a single product (say a T-shirt). But as far as an ecommerce site is concerned, you're really looking at a grouping of products, because that T-shirt comes in four different colors and three different sizes (4 x 3 = 12 products with individual SKUs). And that is just a basic product example. More options mean even more SKUs.What does "in stock" mean?
If you show a catalog listing of a product (the T-shirt), and some of the variations (sizes) are in stock while others are out of stock, is the product itself in stock? Most of the time, yes. But it can be a grey area. If you only have XXL shirts left, that's kind of an out-of- stock item. If you were in a retail store, you'd likely dump those few shirts in a clearance bin. You're not going to advertise that you have all these shirts when in fact you only have one size.
Stock seems like a simple yes-we-have-it or no-we're-out kind of thing, but there's more to it than that. If you don't have it, when can you get it? Is it something that gets custom ordered anyway and people aren't going to care if they have to wait two or three or four weeks for it? Then it can always be in stock, because you can always get it. Is it a thing that if you don't have it today, having it three days from now is useless? Then you really don't have it in stock.
You need to decide on these kinds of things so you can configure your Drupal Commerce site appropriately. If you only have a couple of XXL shirts left, you could set them up as their own clearance product and sell them that way, for instance.Blending with Drupal Commerce POS
When you integrate the Drupal Commerce POS system, those two XXL shirts are the only ones remaining for your in-store customers, so you never have to worry about orders going through that you can't fulfill. You do need to worry about irritating your customers, though—if they see a product on your site as in-stock and the go to your brick and mortar store only to realize you don't actually have it, they're going to get annoyed.
So with that in mind, you have to think about the messaging you present to your customers online. If something is out of stock but you can get it in three to five days, for instance, maybe you want to communicate that. Or if it's a one-off and you will never have it in stock again, you need to let your customers know.Introducing transactional stock
Something new in Commerce 2 is the concept of transactional stock. So you don't just have a product in stock: you have two that have been purchased and are about to be sent out, you have six sitting in inventory, and you have five on order. And maybe you have a pending return that you can eventually sell, but not until the return is complete. As far as your fulfillment people are concerned, you only have six. But your customer service and inventory management people know about the ones that are coming, and can adapt accordingly.
TL:DR: Stock in Commerce 2 is transactional and flexible.Chat with us
If you'd like to know more about Drupal Commerce 2, online stock management or anything else ecommerce related, give us a shout. We'd love to help you out.