LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

Shopify Launches Shopcodes: Scannable, Trackacle Codes for You to Use
First the launching of Shopify Pay, now this! It's more than obvious: Shopify's constantly striving to enrich its merchant customers' toolset with new and new features. And this time it's all about easy-to-scan, easier to track QR codes. In other words: Shopify launches Shopcodes, a free app downloadable right from the e-commerce platform's store, an app playing the role of a QR codes “generator”. What does this launch mean for you? Well, it means that you, the Shopify store owner, get to easily create QR codes (just generate them and then download the graphic files) and then link them to any product page or shopping cart page that you want. This way you'll be:   enabling your potential shoppers to get extra info about various products while they're in your physical store (they just scan the QR codes attached to your products and voila: they'll be taken right on the products' dedicated pages in your Shopify online store)   interconnecting your customers' offline and online shopping experiences   streamlining the whole checkout process (the code can also take your customers right to the checkout page, skipping all the other time-consuming steps to take)   delivering your clients their desired products without having to keep an inventory on hand; so even if you own a popup store and you're constrained by the lack of space   … and the list of benefits can go on and on. Now let's delve even deeper into details on how to create and place these codes on your products/marketing materials, details on various use cases and on the multiple benefits:   How Do You Create These Codes and Place Them on Your Products/Marketing Materials? Generating these QR codes, then linking them to your product/checkout pages and downloading the graphics files (SVG, PNG) to be placed on your marketing materials /products is nothing but a simple 4-step process:   just get the Shopcodes app from the Shopify App Store and have it installed use the app to generate your first QR code  link the QR code to the product or the shopping cart page of your choice print the graphic file to place on your offline marketing materials!   Once your offline customer enters your physical store and uses his/her iPhone to scan the printed code added to a certain product he/she can:   learn more about it, visiting your online shop and heading straight to the product page that he's interested in get straight to the shopping cart page and complete the checkout process, purchasing that specific product!   OK, Shopify Launches Shopcodes: But How Do They Work Precisely? First of all, we need pointing out 2 particularities that set these QR codes in Shopify apart from the “traditional” ones (since QR codes have been around since the 90's):   you can generate them exclusively within your Shopify store they can be used exclusively for shopping purposes   OK, now that we've set these key details straight, here's how they work and also how you, the seller, get to harness their full spectrum of functionalities:   we've already briefly mentioned how they work from the user's perspective: he/she uses his Apple phone to scan the code and gets a screen with additional info about the given product or with a “buy” button instead if you, the seller, will have linked that code to a checkout page   you, the Shopify merchant customer, get to track down and to monitor those codes (they're not just scannable, but also unique and easily trackable), each transaction made by your customers, right from your Shopify Analytics dashboard; so you'll get a crystal clear picture of where traffic/sales on your online store are coming from    you, again, even get to harness a whole set of features aimed at enriching your toolset as a seller: to add discounts to those QR codes (thus encouraging your offline customers to purchase online), to make changes via your Shopcodes app's dashboard (e.g. to add extra information or promotions)   Convenience for your customers (and for you, too, since you have your dashboard as your control panel at hand) and a bundle of benefits for you, the Shopify customer!   Which Are the Use Cases for These QR Codes? “Practically you get to use Shopify QR codes wherever you advertise offline”:   place them on your product packaging; this way your customers can just scan them through and get more detailed information about your products by visiting your online store or go to the checkout page directly   display them in your brick and mortar shop's storefront window, alongside other products; this way, even with closed doors, after or before your shop's working hours, your customers can still engage in shopping: in online shopping on your Shopify store instead!   use them in your popup store (or at the events that your company participates to), where you face multiple constraints, such as lack of space and a limited inventory on hand; your visitors can still scan these QR codes and have their favorite products delivered to their homes instead   In short: rely on Shopify's QR codes whenever/wherever you're conducting offline marketing campaigns! Use them to stir your offline potential customers' curiosity, turning them into your future online shoppers!   Why Should You, The Shopify Store Owner, Be Excited About This App? “What's in it for you?” In what way does Shopify deliver you, through the launch of its Shopcodes app, (even more) value?  Let's sum up your benefits and outline the answer to your question:   it enables you to turn first-time customers into loyal customers thanks to a much more streamlined checkout process (they just scan the QR codes... land straight on the checkout pages... hit the “buy” button... and that's it!)   it helps you turn various limitations (of space, of inventory on hand, etc.), that you might need to deal with, into favorable contexts for directing your potential shoppers to your online store instead   from package inserts to storefront windows, to offline ads... practically any offline marketing material can serve as a QR code support, turning itself into a “tool” for your customers to gain quick and easy access to your Shopify online store    What do you think about these QR codes' comeback that Shopify orchestrates? Do you plan to incorporate them into your own future offline marketing campaigns?  ... Read more
Adrian Ababei / Sep 21'2017
Behavioral Analytics: Reading Your Users' “Digital Body Language”
It's time you went beyond data focused on events frozen in time (“a user clicked on a certain link at a certain moment during his/her customer journey on your site”) and traditional metrics (e.g. page views)! Time you dug deeper than the surface level of “which visitors clicked on which links?”! It's time you turned all that massive load of raw data that you've collected so far into customer behavior patterns! Into actionable insights! Reading and fully understanding your customers' digital behaviors will help you “influence” their next buying journeys on your website/app. This is both the beauty and the power of behavioral analytics! A power too great not to use it for turning your first-time visitors into highly engaged customers! One enabling you to make the right offers to the right segment of your audience, at precisely the right time in their shopping journey on your website! Let's detail now, shall we?   First Things First: What Is Behavioral Analytics? A straightforward answer would be: “behavioral analytics is about focusing on the “why” and “how” a user ended up taking a certain action on your website (buying a product, leaving a web page right away, clicking a link etc.).”  A more “refined” answer would have to be: “behavioral analytics is analyzing your raw data in order to “extract” actionable information about your customers' digital behavior”.  And last, a much more “sophisticated” answer: “behavioral analytics is piecing out all the apparently unrelated data points and putting together your customer's buying story! A story including all those actions (or “chapters” if you want) that he/she took for achieving his final goal (making a booking, purchasing a product, subscribing to your newsletter etc.)" Take behavioral analytics as your set of user behavior analyzing tools that help you go from generic questions such as “What action did visitor “X” take on my website?”, to questions like:   "What precisely made him/her buy that specific item or click on that particular link (so you can then anticipate and even influence his/her future shopping decisions)?" Was it the offer itself, tailor-made to his personal preferences, or the fact that it included a “tempting” number of items?   "What other items did he/she scanned through, compared to those that he actually purchased in the end?"   "How does this user behavior data differ by traffic sources?"   Analyze user behavior data. Detect patterns. Take action! Use the actionable insights you get to make the right adjustments and, obviously, to improve your conversions!   There's So Much Valuable Data Out There Still Waiting to Be Harnessed “... that goes beyond the conventional page clicks, user purchases or traffic type of data” So, why not go beyond the “obvious”? How about standing out from the crowd of e-commerce business owners who still consider that traffic and page clicks are the only actionable information they could possibly get their hands on? Behavioral analytics is made of all non-conventional data just sitting there, waiting to be “capitalized”:   social media data internal text data   You'd better start valuing this type of data, as well, if you want to remain relevant in this customer-centric “jungle”, which is the digital arena. This means getting your “hands dirty”:   putting together holistic customer profiles segmenting customer bases organizing your observations into multiple groups of customers   And it's by analyzing all this “un-exploited” data left there, “in the dark”, that you'll get to understand your visitors' behaviors. What makes them connect with your brand or, on the contrary, reject it!   Identify The Issues First and Select the Data to Be Analyzed Accordingly Rushing in and greedily collecting all the user behavior data you could possibly get, in a desperate need to read your customers' digital body languages, won't take you too far! Take your time to clearly identify the specific issues that you need to solve on your e-commerce website/web app, first and foremost. To “detect” all those particular “sore points” in your e-commerce business so you can build your behavioral analytics-based strategy accordingly!  If not, all the metrics out there, all the collected data and tests that you'll run will slowly, but surely lead you to “analysis paralysis”. In other words: what type of conversion/traffic issues do you need to address with your data?   From Stats Pointing Out The Problems to Those Identifying The Causes And this is precisely the key difference between event-based analytics and behavioral analytics:    while the first type of stats point out to you the problems only  the second gives you a deeper understanding of the causes (why was it that customer “X” clicked on that link or purchased that item over another one?)   If you want to “decipher” your users' digital behavior towards your website/web app, you'll just need to pay attention to the right kind of analytics! Moreover, it requires that you:   segment your customer base and “tailor” targeted offers for them analyze your customers' purchase history  examine your customers' profiles as online shoppers on your e-commerce store   … so you should be able to predict their future behaviors as shoppers on your website and to use these results for your next marketing campaign.   "How Does Understanding Users' Digital Behavior Impact My Business Specifically?"   it “empowers” you to turn your customer behaviors from unpredictable to predictable   it enables you to actually shape your their customer journeys, their next decisions as customers on your website   … and this is what power, from any e-commerce business owner's standpoint, is all about!  Bottom line: behavioral analytics, when harnessed right, offers you precisely those actionable insights that will empower you to actively influence each one of your customer segments' decision journeys!  ... Read more
Adrian Ababei / Sep 19'2017
Drupal Migration Services
Have you decided to move your website from Wordpress or Joomla to Drupal? Or maybe you are looking to upgrade Drupal 6 or 7 to Drupal 8?  If you answered ‘yes’ to either one of those questions, then a Drupal migration is the next step for you. Excellent choice! We know it wasn't easy for you to finally make this decision. We also understand that you now face a major challenge. Drupal is a scalable and flexible solution that can be moulded into anything you need it to be. It has enterprise-level security and an innovative modular-type system. It also has a steep learning curve because of everything you can do with it. Because of this, it requires Drupal specific developers who have to know how to use it to its full potential.  Optasy is here to make this transition smooth and time-effective. The goal is to have the least amount of impact on your company's daily activities as possible. Downtime = lost revenue and we don't want that to happen.    Steps To Migrate Your Website To Drupal Step 1: Your website will undergo a rigorous analysis. Our team of Drupal experts will take a close look at your current system's database. We perform functionality tests and deeply analyze the current framework. We then come up with a customized solution specific to your company's website needs.   Step 2: Decide which modules and design theme your current website can migrate to Drupal. Then we figure out which ones we'll develop from scratch and which ones simply need an upgrade.   Step 3: Once planning and analysis are complete, the migration of your website's components begins. This includes content, your database, usernames, emails, plugins, extensions and user groups. It also includes metadata so that you don't lose any previous SEO work completed. We handle this with the greatest caution. We secure your valuable data and make a smooth transition from one platform to another. Step 4: Test, test and more testing. We test until we are 100% certain that your newly-built Drupal website runs perfectly. And with significantly improved performance.   A Smooth Migration Process We guarantee you that the whole migration process will go smoothly. It won't interfere or slow down your team's workflow. It also won't cause any downtime on your website, so you won't lose out on profits.  Our confidence relies on our access to using the best tools and resources. We also apply a proven efficient methodology based on many years of experience. The migration process of your website happens on your server and behind the curtains. This guarantees zero impact on your daily workflow. It enables you to keep making sales or getting leads while your website migrates to Drupal's platform.   Benefits Of Optasy’s Drupal Migration Services Faster website Improve performance No downtime Experienced Drupal experts Seamless data and content migration Maintain SEO work previously completed   Upgrade To Drupal 8 Upgrading to the new Drupal 8 will make your website work (and look great) on any device.  Some other key benefits of making the switch to Drupal 8 are: Mobile-first ready. This version of Drupal has been designed to embrace the shift towards mobile. Fully responsive web design right out-of-the-box. Multilingual features. The platform is built to support any language. Mobile friendly admin features. Now you can see everything right on your phone. Supports mobile app development. Easier to add content more than ever before. Flexible content delivery. This enables you to create and deliver content to any channel, device, or application. ... Read more
Adrian Ababei / Sep 15'2017
Laravel PHP Framework: What Development Challenges Does It Enable You to Solve?
How many web development challenges can the Laravel PHP framework help you solve? How much easier/faster does it make it for you to tackle common developer tasks? These are the 2 main questions that we'll try to answer in this blog post here. For the faster you'll be solving inevitable problems rising during your web app's development process, the more time you'll gain for sparking your creativity working on the app-specific logic! So, speaking of the common development challenges and how they can make the best criteria for choosing your most suitable web framework, let us enlist them! Outlining, as well, how precisely Laravel can help you easily overcome them:   1. Addressing Technical Vulnerabilities   The challenge you're facing: fixing technical (and therefore “security”, as well) vulnerabilities that will inevitably “infiltrate” your web app during its development process (e.g. cross-site scripting, SQL injection etc.)   Laravel's solution: it comes equipped with a shield against all major security vulnerabilities its codebase has been constantly examined and monitored by hundreds of developer eyes it restricts unauthorized users' access to your apps' crucial data or paid resources   2. Error and Exception Handling    The challenge you're facing:  configuring your app so that it properly handles errors (data-entry forms being the most frequent “error generators”) triggering prompt notifications (error messages) to let the user know that he/she has entered incorrect data   Laravel's solution: error handling is already configured  moreover, the PHP framework already incorporates the Monolog logging library, a powerful support for a multitude of long handlers it runs regular updates in order to minimize errors on your website/app   3. Creating a Custom and Secure Authentication and Authorization System   The challenge you're facing: putting together an user authorization and authentication system so that unauthorized users shouldn't gain access to your app's paid resources/critical data   Laravel's solution:  it puts at your disposal, right out-of-the-box, everything you need for building your authentication system in addition, it makes structuring your authorization logic very simple it grants you full control to all the needed resources   4. Separating Client Side/Presentation Code from Server-Side/Business Logic Code   The challenge you're facing: helping your web designers “grow independent” from their developer co-workers by making all the needed changes to your web app's HTML layout themselves also, by drawing a clear line between presentation and logic from an early stage in the web development process you'll be enabling developers, too, to fix bugs and to add on new features a lot faster   Laravel's solution: being an MVC framework, the “presentation logic-business logic separation issue” is solved by default!   5. Configuring a Scheduler and Managing Scheduled Tasks   The challenge you're facing: putting in place some sort of task scheduling system (and by “task” we do refer to automated database table cleanups, to regular emails to be sent out automatically to subscribers from your list etc.)   Laravel's solution: its built-in command scheduler enables you to configure your schedule from within Laravel just one Crone entry on your server will be more than enough   6. Configuring Delivery Delays, Managing Queued Messages   The challenge you're facing: putting together a message queue mechanism in the early stage of development for better handling that “heavy” load of requests (per second) that your web server's challenged with a queue mechanism that should minimize risks of data loss and improve page loading time by speeding up web requests   Laravel's solution: its queue services “spoils” you with a unified API, irrespective of the queue back-end type   7. Scheduling Automated Tests With Laravel PHP Framework    The challenge you're facing: initializing automated testing sessions, which are much more time-effective and usually more accurate than the standard manual ones   Laravel's solution:  luckily for you the Laravel PHP framework comes with out-of-the-box PHPunit tests and a phpunit.xml file moreover, it's equipped with functionalities enabling expressive testing by simulating common user behaviors (link clicking, filling out forms and so on)    8. Configuring URL Routing   The challenge you're facing: defining a clean and simple URL routing so that your app should clearly understand the user's intention, specifically which page he/she'd like to navigate to   Laravel's solution: you'll find all your Laravel PHP framework's routes in its app/Http/routes.php file (don't worry, it will load by default) the basic ones accept Closure and URI, allowing you to easily configure your routes    9. Integrating Your Web App With Mail Services   The challenge you're facing: building a system sending out notifications to your subscribers following key events   Laravel's solution:  it provides a simple, yet powerful and clean API over the SwiftMailer library it also provides you with drivers for Mandrill, SparkPost, Mailgun, SMTP, Amazon SES, Sendmail, PHP's mail function; a “plug and play” solution for your app to instantly send out emails either via a local or via a cloud-based service  it also offers you support for sending out notifications (so not just emails) via multiple channels: Slack, SMS via Nexmo...   10. Integrating Backend Caches for Boosting Performance   The challenge you're facing: boosting your web app's performance by integrating it with cache back-ends   Laravel's solution: Laravel PHP framework supports robust cache backends such as Redis and Memcached it's built to use the file cache driver by default (storing the cached components in its file system) moreover, it's even configured to efficiently handle multiple cache configurations   Summing Up The Laravel PHP framework does streamline your basic development tasks (turning them from “challenges” into simple “to Do” tasks) helping you gain priceless time! Time that you can invest in “crafting code”.  Now we're more than curious to read your own thoughts about this web framework! ... Read more
Adrian Ababei / Sep 15'2017
Angular vs React: Which JS Technology to Use In Your Next Web Project?
“Teach a man to fish and you feed him”. In other words: don't expect us to reveal to you, by the end of this post, which is the ultimate winner of this Angular vs React's debate! Which is the right JavaScript technology for your next web project. For we won't! Instead:   we'll be helping you weight the 2 widely-used JS frameworks' advantages/disadvantages we'll encourage you to evaluate all their key aspects   … so you should be able to answer THE question yourself: “Should I choose Angular or React for my next web project?”   Angular vs React: Introducing The 2 Competing Technologies Before you get to run your “magnifying glass” over these two popular JavaScript frameworks' key strong points and drawbacks, while comparing them against your own web project's requirements, allow us to briefly introduce them into the “arena”: Angular: a full-stack, feature-reach JavaScript MVW framework … built so that it can provide you (or your team of developers) with all the needed tools out-of-the-box! Where do you add that:   it's search giant Google-supported tailored to fit large enterprise teams' specific workflows designed to help you build highly interactive, fast-loading websites and web apps React: so much more than “just” a JavaScript library for building great interfaces Otherwise, how could you have even considered comparing it to a full-blown framework like Angular, right? React is many developers' top choice (and it sure has its own "fan club" within our Toronto web development team here, as well) whenever they're looking for an ideally lightweight, easy to tweak and twist framework for building dynamic, high trafficked (having data that's frequently changing) web apps!  Now that we've introduced the 2 “contestants” competing for the chance to be powering your new web project, let's go on and highlight their pros and cons (tackling multiple key aspects), so you can evaluate them yourself:   Angular Vs React: Comparing 11 of Their Key Features  1. Performance  We need to admit that the 2 JS technologies are comparable from a performance perspective. Yet, we can still outline a few performance-impacting features inclining the balance to one side or another: Angular: it supports caching (along with other processes), which means that the server performs at its best yet, its large size does negatively influence load times on mobile devices    React: constant components re-rendering can lead to performance issues, especially if it's an app handling a heavy load of data that you're planning to build  2. Flexibility  Angular: doesn't allow you too much freedom for customizing your app/website so that it meets your needs in the smallest details React: highly flexible 3. Development Time Angular: your development team will need to invest a significant amount of time in understanding the code (there's a whole lot of unnecessary syntax required), in debugging it calls for Angular-specific syntax and 3rd party libraries  its layered, hierarchical structure can be quite discouraging for a developer working with Angular for the first time React:  its Flux architecture is highly convenient and competitive to MVC is quite easy for developers to understand it the longer time required to set up a React project might look like a drawback to you, yet once you've built your React-powered app adding on new cool features later on is considerably easier 4. Feature Set Angular: it does come packed with “out-of-the-box” tooling and built-in best practices  React: although not a full-stack JavaScript framework as Angular, if React will be your final choice you can stay reassured: “when in need”, there's practically a third party library for pretty much everything 5. Scalability Angular: is built to scale easily, its design, as well as its powerful CLI, being the best proofs  React: designed to be easily tested and, implicitly, scalable  6. Learning Curve Angular:  be prepared to invest significant time resources in learning this over-sized library moreover, learning “just” Angular is not merely enough: you'll then need to get yourself familiarized with MVC, with Typescript... React: on the bright side: it works with the fewest abstractions on the... less bright side: you'll still need to take your time to learn all the best practices (and there aren't precisely “a few” only) 7. 3rd Party Library Integration Angular: when it comes to the 3rd party library compatibility aspect of this Angular vs React “debate”, Angular's not doing so well: Typescript demands type definitions for every single library that you'd want to integrate  React:  it's written on pure JavaScript logic it integrates perfectly with 3rd party libraries (even with the DOM based ones!) 8. Applicability Angular: used mostly for building enterprise, traditional form apps React: it usually powers complex, high-performance sites/mobile or web apps featuring complex user interfaces, with multiple events, multiple inputs (each one “risking” to impact the other's screen) 9. Native Rendering Angular: comes packed with Ionic 2 and NativeScript React: it's significantly better “equipped” for native rendering thanks to ReactWindows, Next.js, Alibaba, React Native 10. Size Angular: it does have a substantial size, which inevitably impacts its performance on mobile React: smaller sized and, implicitly, conveniently lightweight 11. Optimization Goals Angular: it's aimed at “boosting” the productivity of development teams working within a company  React: performance, flexibility, and simplicity are this JS technology's main “objectives”   And Last: 9 Key Questions to Ask Yourself Before Making Your Choice Don't rush in to give your own verdict on this Angular vs React debate. Not just yet. Not before you've asked yourself these key last questions strategically chosen to “cement” your final decision:   Do you represent a company or are you a Drupal developer working in an enterprise-level team? Then you're definitely better off with Angular! It's designed to boost large teams of developers' productivity and to adapt to big companies' workflows (just let Angular's CLI outline and guide you along the step-by-step path to take for completing your application!).   Are you a start up digital business instead? Then React might just better meet your company's specific needs.   Do you have a “secret” weakness for templates? Then Angular is the JavaScript that you'll feel most comfortable working with on your next web project!   Do you love Typescript? “Angular” is the answer to your own “Angular vs React” dilemma   Do you love “getting your hands dirty” in customization, to be given the chance to tweak your app/website whenever and however you'd like to? React will grant you this freedom!   Is high performance a major issue for you? React!   Is productivity one of your main goals? Higher placed in your hierarchy than... flexibility, let's say? Angular!   Do you have a particular interest in open source web technologies? And does a “guarantor” like giant search engine Google weight a lot in your decision-making process? Then don't “torment” yourself any longer and choose Angular with no hesitation!   Do you fancy building an app with complex, eye-catching interfaces, yet one with a small footprint? Then it writes “React” all over your project!   We strongly hope this little “questionnaire” here, along with our comparison tackling these two JS technologies' major aspects, will help you make up your mind faster.  Help you make the right decision for your upcoming web project. Final note: there's no such thing as “THE” perfect choice for each company, development team, project environment, and use case. Not even a “one size fits all” platform for all of your future web projects. Do keep that in mind! ... Read more
Adrian Ababei / Sep 14'2017
Selling on Amazon via Shopify Just Got 7 Times Easier
If the Amazon-Shopify partnership was looking so promising already, things just got better! Better for you, who runs an e-commerce business on this platform! Practically from now on by selling on Amazon via Shopify you'll get a major boost in reach. With the 7 new product categories (that's right, they did get bumped up from 1 to... 7!) you'll be “drastically” increasing the number of Shopify items that you can sell on Amazon's massive marketplace. And speaking of these newly added categories:   Health and Household Beauty and Personal Care  Home and Kitchen Patio and Garden Sewing Arts and Crafts Sports and Outdoors Toys and Games       There's more! The Shopify-Amazon integration expansion comes “packed” with better support for Amazon's Brand Registry, as well! Basically, if you're currently Brand Registered on Amazon, you won't need to leave your Shopify dashboard to list your Brand Registered products. You can create them right there! Better said: selling on Amazon via Shopify just got a whole lot more convenient and more advantageous for you!   “Specifically, What Do I Gain Out of It?” “… out of this Shopify and Amazon's strengthened and expanded integration?” Let us point out, in specific terms, how it benefits you, the store owner using the Shopify platform:   you'll get to list 7 times more products on Amazon right from your Shopify shop    you'll get a significant boost in reach: a new distribution channel, with a loyal and nonetheless massive audience (no less than 300M users only last year)   you will never have to leave your familiar Shopify dashboard for adding your Amazon brand registered products; just create and manage your listings right there, in your store    you'll no longer need to use UPC/EAN codes as an Amazon Brand Registered merchant   you'll create your product listings on Amazon even easier as a brand owner    Selling on Amazon Via Shopify: One Shortcoming and A Few Predictions For this sales channel does present a shortcoming: for now, only U.S. Shopify store owners get to leverage the newly expanded integration. Still, (and here we disclose a key prediction), the Shopify team's already put it on the roadmap.  They're currently working on giving merchants selling in other regions, as well, the chance of seamlessy selling on Amazon via Shopify. Of creating and managing Amazon listings, of fulfilling orders, managing inventories and so on without (ever) having to leave Shopify. A challenging task to carry out, if we consider that Amazon operates with separate, per-regions websites and that the Shopify team will need to work closely with all of those teams!  Moreover, analysts predict that this recently expanded Shopify-Amazon partnership is just one “brick in the wall”, the “wall” being their whole strategy of minimizing friction between storefronts. A strategy that will continuously strengthen these 2 e-commerce giants' influence in the e-commerce platform sector.  This being said, allow us to end our post with the optimistic statement coming from Shopify's Product Support Network : “... we've got a full roadmap for growth opportunities with Amazon! Stay tuned :)” ... Read more
Adrian Ababei / Sep 11'2017
Drupal 8 Group Module: How to List Related Group Content 
“Fallen for” Drupal 8 Group Module's principle of using entities and entities relations (as opposed to node “knots”) for handling groups? For the entire concept behind it: sectioning your Drupal site into multiple “micro-sites”, where users having different sets of permissions gain access to certain “micro-sites” only? A "seductive" entity API-powered idea indeed! And here you are now: pulling your hair out to find a way to link your user groups with their corresponding content (nodes). To list related group content! How you do that? How do you filter content and relate it to the group that it belongs to? Keep reading...   But First: A Few Words About The Drupal 8 Group Module As you must already know, the Group module was born as a solution to all the limitations that the Organic Groups module, its older “rival”, presented. A major drawback being, for instance, the fact that it provided no API. No API to rely on for configuring a site's role and permission system and content types across its ecosystem of user groups. And before we point out its most significant strong points, allow us to list and to briefly detail a few key concepts to fully understand how this module works:   group type: a fieldable entity (common pitfall: do not take user-defined groups for nodes!) group (user) membership: a “group type” fieldable entity specific to a given group, incorporated through a plugin; in other words: each “Group type” can feature multiple fields that describe their user memberships    the Group Node module: provides “Group type”-specific fieldable entities which describe to what level a group is connected to the nodes of a given content   Now that we've shed some light onto these key notions, let us highlight to you the Drupal 8 Group module's key advantages over Organic Groups:   self-contained admin, great UI: everything you need for configuring your groups' functionalities is right there, in your admin menu, no need to delve into a dozen of pages for adding your groups, your group types etc.; simply look for the Group section (neighboring the “People” one)   improved data model: Group relies on group dedicated entities, opening up a whole new era for handling groups of users, groups of content...   “pluggable” architecture: take the “Group Node Module, for instance, that the Drupal 8 Group module ships with; it enables you to integrate nodes into a given group and to share access to private content among that group's members only   Before We Dig Into It: How Do You Programmatically Add New Content To Your Group? Put yourself into this Drupal developer's shoes: “He/she has just created an Article node and now he's facing the challenge of programmatically adding it to a pre-configured group on his website." How does he solve the “problem”? By using the addContent() method, which leverages the following function added to the Group module: Group::addContent(ContentEntityInterface $entity, $plugin_id, $values = [])  Note: $plugin_id: it stands for 'group_node:YOUR_NODE_TYPE_HERE' $values: add them only if you want to fill in the fields on the node-to-group relation entity   Now What If You Need to Bulk Add Content To Your Group? That's right? What if you had to add multiple nodes to one of the groups on your Drupal site relying exclusively on the Drupal 8 Group module's capabilites? Basically your key objective then would be adding a group content entity to each node connected to your Group. Here are the steps to take:   Make certain that you have a GroupType   Check that this GroupType has all the proper plugins enabled (GroupType::installContentPlugin(); read deprecation notice)   Put together a group of said GroupType   Bulk add those nodes using: $group->addContent($node, 'group_node:NODE_TYPE_HERE');            Tip: do rely on the API at hand, GroupInterface::addContent(), for this! Or, if you prefer a shorter version, one that doesn't “constrain” you to use the API,  here's a three-step migration process to get inspired by:   Ensure that a group does exist, first things first   (Bulk) Migrate your nodes   Manually put together your GroupContent entities   And Finally: This Is How You Show Related Group Content Or, better said “how you create a view for showing that content” using the Drupal 8 Group module. Before we dig into the step-by-step guide, we'd like to highlight the fact that:   you'll be using “node id” as a contextual filter   the process requires 2 types of Views relationships: Contextual Node > Parent Group and Parent Group > Nodes in group   And here are the promised steps:   Create your content view (it should have at least one block)   Under your View's relationships choose “Content: Parent group” and then click the “Require this relationship box”; you'll now see new relationships listed in the dropdown menu   Next, from the same dropdown menu select the following relationship: "Group: Node entities", then hit the “Require this relationship” box   Then it's time to define your contextual filter: select “Content NID” from the dropdown menu, hit the “Provide default value” box, then pick “Content ID from URL” from the next dropdown unfolding there   Now it's time you defined the “Group Node” relationship (under Format more precisely) for every single rendered entity, content and/or field (according to your own selections)   Navigate to /admin/structure/block and select the region of the page that you want this block to be displayed on   In short: all there's left for you to do now is simply display nodes from the second relationship that you've defined and (if you want to) filter them by creation date, content type, whatever criteria you'd like. And this is how you do it! How you show related group content using the Drupal 8 Group module's functionalities! Do let us know if you encounter any (other) roadblocks as you're putting this advice into practice! ... Read more
Adrian Ababei / Sep 08'2017
7 Reasons Why We Think Drupal Is the Best CMS
We think Drupal is the best CMS Okay, we admit it. We love Drupal and have a bias towards it. We do know other CMS' (content management systems) have their benefits and purposes. But this blog post isn't about them. It's about why Drupal is the best. Drupal isn’t for everyone. You do need a dev team to support your website to customize Drupal. And to be more specific, you need one that is well-versed in Drupal specific development Every developer has his or her own personal favorites. After working on Drupal websites for many years, we have grown to love Drupal. So here is our completely biased opinion on why Drupal is the best.   1. Drupal Is Customizable Drupal allows for very high levels of customization. With Drupal, if you think it you can build it. The framework of this CMS platform itself never limits you. With Drupal, it’s easy to customize your site to have app-like features. Websites have become more complex these days with a lot of various functionalities. Working with a flexible system has become important.   2. Some Of The Largest Sites Use It Drupal is a powerful CMS, open-source, that sites like Al Jazeera and The Economist use. Drupal is structured like building blocks, which makes it flexible. The modular architecture makes it ideal to handle scale and continuous integration. Developers get more control over the code from the ground up (i.e. you can build anything).   3. Drupal Is Built For Scalability Drupal’s modular building block system allows for easy scalability. Out of the box, it’s easy to integrate with other applications. This integration is usually needed at an enterprise level. Another feature that makes it scalable is that you only select the modules you need on a per-page basis. This eliminates a lot of excessive and messy code on pages that don’t need every module. Drupal offers a series of articles on how Drupal can be configured for optimal performance and scalability.   4. Drupal Offers Enterprise-Level Security Drupal offers enterprise-level security. High profile organizations like the White House and Nasa use it. The Drupal core code base is very stable and secure. Drupal has a security team comprised of a global group of web security experts. They take security very seriously. Their job is to analyze and report any security vulnerabilities. Because most sites that run on this CMS platform need an expert Drupal developer, the Drupal community is efficient at working together. There are over a million experts to review code and functionality. Any potential issue is quickly identified and dealt with before it becomes a threat.   5. Drupal Is Fast One of the things that differentiate Drupal from other content management systems is that it has built-in caching. In plain English, this allows for content to be delivered quickly. What Drupal also does is allow you to select modules to run a per-page basis. This eliminates unnecessary code that can slow a page down. Not everything needs to be a part of the site-wide template. Keep in mind, there are other factors - not Drupal-specific - that can really slow things down. Things like the size of images, number of images on a page, number of requests to the server a page makes, and the number of modules running on a page. There are helpful (and free) tools out there, like webpagetest.org, that provide lots of tips for helping to speed your Drupal site up.   6. Drupal Is Multilingual Drupal modules come in 90 different languages. You can display your site in multiple languages and allows users to switch languages easily. Here is a resource guide for configuring a multilingual site.   7. Drupal Is Good For SEO If you know anything about search engine optimization, you’ll know that Google is soon-to-be making a big switch to a Mobile-First Index. (It’s a pretty big deal.)  Drupal 8 is also supported by a mobile-first philosophy, so it’s ready for the future of SEO. Drupal is very search engine friendly. Here’s a good explanation of what Mobile-First Indexing means. Drupal offers excellent plugins for optimizing content. A couple of favorites are the Metatag module and the XML sitemap module. Drupal provides a limitless platform for you to deliver amazing content. A solid framework – that can functionally do anything - is key to building your presence on search engines. If you are looking for Drupal Web Developers for your next project, please get in touch. We are always happy to start a conversation. ... Read more
Adrian Ababei / Sep 08'2017
Better Accessibility in Drupal 8: 7 Significant Improvements 
“Drupal 8 is the most accessible version of Drupal, and brings with it some features not seen in any other Content Management System, open-source or proprietary.“ (Phil Wolstenholme, A new era of accessibility in Drupal 8). But where do you start enhancing your organization site's accessibility? Your accessibility planning? For it's true: Drupal 8 does come loaded with some truly “impactful” new features and accessibility improvements that will drastically improve the way visitors with disabilities will interact with your website. And where do you add that they all come out-of-the-box! Yet: how do you set your priorities? Which accessibility features do you start implementing first and put a particular focus on as you train your editorial staff? And this is why we, the web development team in Toronto, have come up with THE list (or “selection” if your prefer)! It includes 7 most significant improvements around accessibility in Drupal 8. The ones that you should rush in to make the most of first things first:   1. HTML5 Elements: Add Semantic Meaning Into Your Code “By default” I should add! Since now Drupal 8 works with HTML5 elements in its templates so that you get to “invest” your code with... meaning! “Meaning” that screen readers can now interpret, making their navigation on your website a lot smoother. Now your web pages “do” make sense to them! Here are just a few examples of HTML tags that you can use now for better defining the elements on a given web page on your site: <footer>, <header>, <section>, <figcaption>, <article> etc. Note: better structuring content on your web pages using these HTML5 elements will support your SEO efforts, too! Since it's not just assistive technologies that can better “decipher” and surf through your web pages, but search engine crawlers, too! How about that for a win-win situation?   2. Introducing “ Tabbing Manager”: A Constrained Tabbing Order And here's another significant enhancement around accessibility in Drupal 8!  Just try to imagine a scenario where a non-visual user is facing a page overlay. How would he/she know where to tab into and close it? This is where Drupal'8 new JavaScript feature, “Tabbing Manager”, comes in handy! It practically limits the user's options for tabbing around a web page so that, using his keyboard only, he can gain faster access to the important elements on that page.  Controlled tabbing dashing away confusion! This is how we could define this new feature implemented in Drupal 8 core and impacting your own site's usability!   3. Extensive Support for The WAI-ARIA Markup: Better Accessibility in Drupal 8 Simply complying with the WAI-ARIA standards is not nearly enough. You need to actually make those attributes added to your HTML5 elements understandable to screen readers! Drupal 8's core maintainers have been well aware of this aspect and have packed it with substantial support for the ARIA markup.  In short: as you'll add the given set of attributes to your code, you'll be ideally structuring your web pages so that assistive technologies can easily navigate through and distinguish their different content sections!   4. Aural Alerts: Visual Updates Made Accessible to Everyone How could a visually impaired user catch sight of a visual update on the web page that he's on? Of an animation or of an alert box popping up? The screen reader that he relies on can only read one part of a web page at a time... Introducing “Drupal.announce”, a JavaScript feature which presents screen readers with texts appended to nodes that can be read out loud to the user! So that the visitor should be informed, through a reading user agent, of all the changes/updates happening on various parts of the page (color changes, pop ups, animations)!   5. Alternative Text for Images: Now A Required Field By Default  When you say “better accessibility in Drupal 8”, we should immediately think of all the key features enhancing it which have now become “mandatory”  to implement! Like the ALT text field, a feature allowing visual impaired users to understand an image's meaning with the help of a short descriptive text. Screen readers are enabled to associate the image's meaning with the given text-based content. Note: simply filling in that field with generic short text isn't enough! You should also make your content writers aware of its significance and, therefore, that it's important to properly describe the image through that short text!  Another note: here we go again, intersecting our efforts to make our websites fully usable for everyone with our SEO efforts! It's not just users depending on assistive technologies for navigating your site that will benefit from this “by default” ALT text feature, but guess who else: search engine crawlers!   6. CSS Display Options: Hidden, Visually Hidden, Invisible... Here's the scenario that called for the adoption of 4 different CSS display classes in Drupal 8:  “When using “display:none;” in your code you're practically making those specific elements invisible to visual, non-visual and screen readers, too!” See why such such an improvement in terms of accessibility in Drupal 8 was greatly needed? Its maintainers have implemented accessibility-naming conventions that you get to use for (still) hiding elements on your site from users' sight while keeping them visible for screen readers. And here are the 4 different CSS classes for hiding/displaying elements on your site: hidden: hide certain elements both from users and screen readers visually-hidden: hide elements from users only (keeping them accessible to screen readers) visually-hidden.focusable:  invisible: hide the element(s) from both users and screen readers, but with no layout impacting the page   7. An “Enable Inline Form Errors” Option for Improved Accessibility in Drupal 8 “This field does not support the use or commas or semi-colons as separator”!  Imagine this error message showing up at the top of a web page as a visually-impaired user is filling in a form on your site. A message that his screen reader informs him of, but which lacks a key detail: which form field? The user might have already completed several form fields, how would he know which one the error message refers, to? See? This is where the newly implemented option for enhancing accessibility in Drupal 8 by enabling inline errors within the form itself instead of displaying them on the top of the page, was needed! Note: do be aware of the fact that it's still a work-in-progress functionality, with a few pending issues left for its maintainers to address! And speaking of enhancing accessibility and therefore usability when dealing with forms, it's almost needless to add that implementing ARI markup in your forms will help all your visitors: to interact with all the fields of a given form with great ease   to distinguish whether they've skipped filling in certain fields or checking off  certain boxes   Quick Recap With all its improvements and newly implemented features Drupal 8 offers you an extensive built-in accessibility support! And it makes a great base for you to take advantage of and make the best use of. How? By training your team in this respect and integrating all the best practices into your organization's specific workflow so that they turn into... routine: adding properly descriptive ALT texts   using <h1>, <h2> heading tags for creating perfectly structured flows of content etc.   Complying with the accessibility standards, adopting all these best practices and, overall, making the web equally accessible and usable for everyone, will only require an certain investment of time (at the beginning) and... attention! No need for complex technologies or special skills acquiring for you to invest in! Don't you agree? ... Read more
Adrian Ababei / Sep 07'2017