How Ruby on Rails Speeds Up the Launch of Your Ecommerce Store
- 5960 views
- 22 min
- Aug 15, 2018
When launching an ecommerce store from scratch, you should think over the essential pieces of functionality that will help you sell efficiently: product management, a reliable payment gateway, an efficient shipping system, and so on.
Ruby on Rails (RoR) is a smart choice for starting your ecommerce store as this framework provides lots of free ready-made solutions to implement basic functionality for online stores.
Moreover, Ruby on Rails ecommerce platforms such as Spree Commerce and Solidus as well as separate Ruby gems give you complete control over your store.
Let’s look at solutions that Rails offers for different parts of an ecommerce store.
1. Inventory management
Inventory management is a vital part of your online store as it gives you control over all your products and product lines. Ruby on Rails makes it easy to
- Track how many units are in stock
- Implement real-time stock level updates and prevent run-outs
- Examine your assortment
- Identify and remove products with low customer satisfaction rates
Ruby on Rails provides numerous solutions that help you arrange your inventory so you can increase conversions, maximize sales, and grow profit for your company.
- Product variations: Show your products in multiple sizes, colors, materials, and more. Each product variation has its own price, weight, and inventory. This feature is available by default as part of the Spree Commerce platform.
- Multiple images: Add multiple images for your products to demonstrate them from all angles. This feature is also available by default with Spree Commerce.
- Product organization: Organize products by category, type, season, price, sale, and other parameters. You can implement this feature with the spree_product_groups extension.
- Bundles and kits: Offer several products for sale in a bundle for a special price. You can also advertise bundles and kits as single products across advertising platforms and marketplaces. The spree-product-assembly gem adds bundle and kit options to ecommerce stores.
- Importing and exporting products: Create or update products in bulk, add new categories, or rearrange existing ones using CSV files. This feature is available through the datashift_spree extension.
- Dropshipping: Transfer customer orders and shipment details to either the manufacturer, another retailer, or a wholesaler. Set up your dropshipping business with the spree_drop_ship extension.
But what if you’re running a digital store and don’t have physical products at all? Rails has solutions for that. For instance, with spree_digital, you can sell digital products such as e-books, images, music, and web elements right from your online store.
You might also think about personalization tools in your online store. In fact, 88 percent of customers want to shop with retailers that deliver personalized offers. You can offer personal engravings on products you sell, let customers order goods with specific sizes, or let customers upload images to put on products. These features can be added with the Spree_flexi_variants extension.
Once you’re finished with inventory management, you need to think through how your clients will see your products and the whole appearance of your online store.
The ecommerce storefront is everything your clients see and experience when entering your website: images and descriptions of goods or services offered, pricing information, a shopping cart, and contact information. When talking about a storefront, we need to outline the user experience (UX).
The user experience is the overall experience the user has when visiting your store. It determines how easy and enjoyable it is for customers to navigate your store, find what they’re looking for, and make a purchase.
2018 is the year for focusing on user experience and conversion rate optimization. Today’s customers have different expectations than just a year ago they expect pages to load quickly, the relevant content they seek to be found above the fold and easily digestible, there to be easy navigation to find other information they may need, and clear calls to action.
When your competitors can offer a comparable product or service that’s simpler to buy, customers won’t hesitate to leave you. A well-thought-out UX can raise conversion rates up to 400 percent and encourage people to stay loyal to your brand for a long time.
The user interface (UI) is no less important, as a good UI can yield up to a 200 percent increase in your store’s conversion rate.
Problems with visual design can turn users off so quickly that they never discover all the smart choices you made with navigation or interaction design.
UI design should support and enhance UX aspects you’ve chosen for your ecommerce store and strengthen emotional feedback. And, of course, you need to know your target audience and give your customers what they truly want.
A/B testing is the best way to check that your storefront matches your business goals, such as increasing the number of sales. It allows you to test different variations of your store’s pages or elements on a page that may impact customer behavior. You can find more tips on designing a successful ecommerce storefront in our article with UX tips for creating an online store that really sell.
Fortunately, Spree offers tons of themes that are fully customizable so that you don’t need to spend lots of time and money creating an appealing storefront to stay competitive on the market.
Beyond customized UX and UI, you need to ensure that your online store is adaptive so it looks good and runs equally well on all devices and screens. An adaptive store allows customers to browse and purchase items and services using any device, including a mobile phone or tablet.
A recommendation system is another valuable feature in your ecommerce store. People like to get personalized experiences when visiting an online shop. It makes them feel special. Show your customers products they’ve recently looked at and related products they might be interested in. Spree extensions like spree_related_products and spree_recently_viewed can help you with this.
Among possible extra functionalities for your storefront are:
- A content management system (CMS): A СMS helps you create high-converting landing pages, which is the foundation of a successful online business. There are a wide variety of CMSs that can be easily integrated in Spree-based stores or any store written on Rails. We’ve featured the best ones in this article.
- Blogging platform: With blog posts, you can reach a wider audience and stimulate them to make more purchases. The spree_editor and spree-blogging-spree extensions provide the ability to curate your own blog, publish and categorize articles, create lookbooks, encourage discussion, and moderate comments.
- Translation and localization: Expand your store to other countries and start selling to customers around the world. Translate your product names and descriptions with internationalization and localization support. This feature can be added via spree_globalize and spree_i18n.
- Product zoom: Let your customers take a closer look at your products. The product zoom feature lets customers focus on a section of an image and increase its size so they can see even the smallest product details. This functionality is available with spree_product_zoom.
With these functionalities, your ecommerce store will look compelling and your customers will be ready to buy. The next step is developing shopping cart functionality.
3. Shopping cart
The checkout process conversion rate is the most important metric for ecommerce businesses as completed purchases are what bring you actual revenue. The shopping cart page is a step away from checkout. With an average shopping cart abandonment rate of almost 70 percent, an optimized shopping cart is crucial for online stores.
Just think about this: 70 out of 100 potential customers leave your store without making a purchase. How much would you earn if you were capturing those sales instead of losing them?
While you can’t control organic abandonment from customers who truly aren’t ready to buy, you can design an effective, simple, and secure shopping cart page to convert customers who are ready.
Shopping cart functionality comprises five main sections: payment, security, order fulfillment, shipping, and taxes. Let’s look under the hood at these sections.
Let your customers pay easily and quickly with a one-step checkout. This means customers can pay for goods without creating an account or signing in.
You’ll also need to create an effective tool for storing and managing credit card details. Give your customers the possibility to:
- associate credit cards with accounts so they don’t have to add card details every time they want to buy something;
- add and remove multiple credit cards and choose between them when checking out.
Here some RoR solutions you can use to handle payments in your online store:
- spree_gateway ‒ Provides dozens of payment gateways maintained by the community
- spree_multi_currency ‒ A Spree extension that allows you to implement support for multiple currencies
- credit_card_validations - A Ruby gem for validating credit card numbers
- Active Merchant - An extraction from the Shopify ecommerce software solution, Active Merchant gives you access to multiple payment gateways and both integrates as a Rails plugin and works as a standalone Ruby library
The Ruby on Rails community also provides integrations with popular payment gateways such as PayPal, Braintree, Stripe, and Amazon Pay.
- PayPal is an American company that supports online money transfers and payments and lets customers set up merchant accounts. Integrations: spree_paypal_express, Paypal Merchant SDK
- Braintree, a division of PayPal, provides mobile and web payment systems for ecommerce stores. Integrations: Braintree, spree_braintree_vzero
- Stripe is an online payment processor for internet businesses. Using Stripe, customers can pay with various cards, wallets, and local payment methods such as AliPay and WeChat Pay. Integration: Stripe Ruby library
- Amazon Pay is an online payment processing service that provides online and mobile payments on ecommerce sites. Amazon Pay lets customers sign in and check out using information from their Amazon accounts. Integration: spree_pay_with_amazon
Sometimes, customers don’t have enough money to buy products, especially niche ones. You can help them out by arranging financing options in your online store. Affirm, for example, lets customers split almost any online purchase into monthly payments. This financial company offers solutions in Rails (spree_affirm) that can be easily implemented into any online store built on RoR.
Each payment on your online store must be secure. Customers need to know that no one will steal their money or identity.
With a 30 percent rise in ecommerce fraud attacks from 2016 to 2017, fraud protection has become an urgent issue in online shopping. Identity theft from online transactions affected 16.7 million Americans in 2017. If an ecommerce store isn’t secure and information isn’t properly encrypted, hackers can obtain card data or account data.
Every online store should have a 256-bit SSL certificate. This certificate provides bank-level security to all your store pages, content, credit card details, and transaction information. You can find more information about SSL protection in our article HTTP vs HTTPS: How to Secure Your Site with SSL.
Another solution is applying an effective fraud protection system. A fraud protection system helps you detect malicious activities and protect your customers from fraudulent transactions by:
- verifying customer addresses;
- validating card details;
- tracking the velocity of transactions for a given period;
- … and through other measures.
If card details or address information don’t correspond to real figures, the system will automatically reject the transaction. Transactions are also rejected if the system detects too many financial activities on behalf of a customer within a certain timeframe.
Almost all of the payment integrations we’ve mentioned above, including PayPal, Stripe, Braintree, and Amazon Pay, include fraud detection systems. Braintree even offers advanced fraud protection tools including 3D Secure, Kount Standard, and Kount Custom
Once your customer has paid for goods or services, it’s time to process their order and deliver it.
3.3 Shipping and order fulfillment
Hundreds of customers can purchase products in your store at once, especially during the holiday seasons. You need to adopt a flexible order fulfillment system that allows you to process and prepare multiple orders with just one click so that your customers don’t need to wait long for their deliveries.
You should also provide your customers with real-time tracking information. This way you can foster trust in your online shop as customers can check where their parcels are at any minute. You can extend your order fulfillment system with:
- An order management system (OMS): Enter and process orders efficiently with an OMS, which provides a centralized place to manage orders from all sales channels so that you can simplify and optimize your ecommerce sales.
- Shipping categories: Address special shipping needs for one or more of your products. Shipping categories mostly apply to items that can’t be shipped in the same box. For instance, let’s say that your customer orders a TV and a lamp. The TV would be considered an oversized item and would require special shipping arrangements, whereas the lamp could be sent via standard shipping.
- Shipping methods: Show your customers the full list of carriers and services they can use to receive a purchase.
- Shipping calculators: Automatically determine and display exact shipping rates from different carriers.
To ease the shipping routines, you can integrate with diverse shipping providers and tools:
- ActiveShipping ‒ Provides web services of various carriers including USPS, FedEx, Canada Post, New Zealand Post, Shipwire, and more
- Shippo-ruby-client ‒ A shipping API that connects with USPS, UPS, DHL, Canada Post, Australia Post, UberRUSH, and many other carriers through one interface
- FedEx ‒ A Ruby library allowing you to interact with the FedEx Rate Web Service
- Ups-ruby ‒ A Ruby gem giving you access to UPS services
- Spree_easypost ‒ A Ruby gem for accessing the EasyPost API, which is a simple shipping API for multiple shipping services that lets you compare rates, buy postage, track packages, verify addresses, and more
Some entrepreneurs get confused with how to charge sales tax and on which products they must charge it. Besides, taxes vary from state to state and country to country. That’s why you need to implement a tax calculator to get automatic tax calculations.
Among the available RoR ecommerce solutions for taxes are:
- spree_avatax_certified ‒ A Spree extension allowing you to add instant sales tax calculations to your store
- spree_taxjar ‒ A Spree extension that provides access to TaxJar services and lets you automate tax filing and reporting
- spree_tax_cloud ‒ A Spree extension for US sales tax based on the free Tax Cloud sales tax compliance service
Taxes, though, are a small part of your accounting. Let’s explore other things you need to keep records of.
4. Accounting and Finance
Tracking revenues and profits can be quite burdensome as an online store owner needs to maintain records of each transaction. If you enter orders, number of goods sold, inventory, products, and shipping information manually, you can spend ages and end up with inaccurate data.
Handling pricing updates is another problem merchants can face. Make sure you provide your customers with the correct pricing information.
With growing sales, manual accounting becomes almost impossible. Integration with accounting services and tools can simplify this process and refine the whole accounting flow:
- quickbooks-ruby ‒ Lets you leverage the QuickBooks service, an accounting software package designed for small and medium-sized businesses
- xeroizer ‒ Allows you to implement Xero cloud-based accounting software.
There’s also a wide range of Ruby gems providing a double entry accounting system, including double_entry, plutus, and keepr. With double entry accounting, each business transaction is tracked on two or more accounts.
There are also RoR ecommerce solutions that let you automatically generate PDF invoices for orders, such as spree_print_invoice.
Managing relationships with your customers is no less important than managing your finances. Customer relationship management (CRM) software offers a rich variety of tools for this.
5. Customer relationship management
A CRM helps you manage relationships and interactions with existing and potential customers. Managing contacts is just the beginning. With CRM solutions, you can:
- gather valuable customer data including order history, shopping habits, and customer interests and preferences;
- segment customers based on location or purchase history;
- import and export customer lists using CSV files;
- get informative reports and analytics to measure the effectiveness of customer-related processes and streamline business choices;
- provide sufficient customer support;
- automate email marketing campaigns;
- integrate with social media.
And that’s not the exhaustive list of benefits that a CRM can bring to your ecommerce business. On a global scale, CRM solutions help you reach customers with tailored sales propositions, communicate with your leads through various channels, and generate more leads and bigger profits.
Most popular CRMs provide APIs written in Ruby:
- Salesforce API ‒ Salesforce is an out-of-the-box CRM for ecommerce offering several deployment options (cloud, SaaS, and web) and supporting mobile devices
- Zoho API ‒ Zoho is a functional CRM for ecommerce businesses that provides sales forecasting, mass emailing, reports, and more
- HubSpot API ‒ Free for individual sales representatives, the HubSpot CRM keeps all of your customers in a single, easy-to-access database and automatically logs all interactions with customers
A CRM collects data about your customers that you can see, store, and analyze. Yet you need to serve customers with an interface where they can find information related to their payments and orders, too.
6. Customer accounts
Customer accounts encourage repeat shopping on your online store. Accounts store customer billing information and thus streamline the checkout process as customers don’t need to enter billing data for each purchase.
Accounts make customers more involved with your brand and your brand’s community. With accounts, customers can leave reviews and participate in forum discussions.
One more valuable feature of customer accounts is the wish list. Wish lists allow customers to create a collection of desired products and save them in their account for future reference. Wish lists reduce shopping cart abandonment, remind customers of products, and help merchants measure product interest. The spree_wishlist extension lets you implement wish lists in your customer accounts.
Customer accounts allow online retailers to personalize the on-site experience as well. You can send specific product recommendations and promotional materials based on items browsed and stored for later by your customer.
Creating an account for a first-time purchase, however, can scare some customers, so you should make it optional.
Once your customer has created an account, they should be able to:
- add address information to their account so that it’s autofilled during checkout;
- view order history;
- see the current order status for any purchases they make;
- add products to wish lists.
Spree Commerce provides most of the above features by default.
The next block of an ecommerce store that you need to think through is customer support.
7. Сustomer support
A lack of personal interaction between customers and a company increases the churn rate. More than half of Americans have canceled a planned purchase or transaction due to bad customer service.
You need to build an effective customer service system to assist customers at each step during their experience with your online store. Make sure that customers can easily contact you and get a response immediately whenever they encounter an issue. Customer service covers help during product installation and maintenance, troubleshooting, conflict resolution, and more.
Great customer service is a decisive factor in whether customers become loyal advocates of your brand. To get the most out of your customer service, offer your customers multi-channel support, including:
- A call center: Provide phone-based support. Resolve complex issues faster and deliver personalized support for your customers. Your callers can record conversations and forward calls to the appropriate personnel within your company for more complex matters. The ZendeskAPI::Client gem lets you equip your online store with call center functionality.
- Live chat: Cater to your customers with 24/7 support they can use anytime and anywhere, even at work. Live chats eliminate hold time and free customers to do other things while chatting with your staff. To add live chat to your online store, use twilio-ruby or intercom-ruby.
Additionally, you can implement forum functionality so your customers can discuss any issues they’re worried about. Discussion forums engage visitors and stimulate them to make more purchases in your ecommerce store.
“Communications is at the heart of e-commerce and community” ‒ Hewlett-Packard CEO Meg Whitman
And of course, you need to help people learn about your store by marketing it.
If you don’t want to lag behind your competitors, you need to promote your store. Ecommerce marketing helps raise awareness of your brand and product offerings and drive more traffic and sales.
To keep up with your marketing strategy, you can take advantage of these solutions:
8.1 Email marketing
Send timely and relevant emails to your customers. You can notify them of upcoming sales or new products. This also serves to remind your customers about your brand. Here are some tools that let you automate email marketing campaigns in your store:
- spree_chimpy ‒ Lets you implement functionality of MailChimp, the world’s largest marketing automation platform
- maily_herald ‒ A Ruby on Rails gem that helps you manage email marketing campaigns and send daily notifications to your customers
- active-campaign-rails ‒ Allows you to automate your email marketing via integrations with ActiveCampaign; ActiveCampaign offers an email template editor and mobile sign-up forms
8.2 Search engine optimization
Help potential customers find your store using search engines. Apply search engine optimization (SEO) best practices like customizable H1, titles, meta tags, and site maps.
To optimize your site for search engines, you may use:
- sitemap_generator ‒ Supports video, news, images, pagemap sitemaps, and alternate links
- meta-tags ‒ Lets you specify page description, keywords, date last modified, and other metadata
- jekyll-seo-tag ‒ Adds metadata tags for search engines and social networks using Jekyll functionality
- friendly_id ‒ Helps you create great URLs for your online store
8.3 Social media integration
Integration with social networks helps you gain social media followers, increase your company’s online presence, and promote products across various channels. You can upgrade your ecommerce store with social share buttons, logins, comment systems, and more.
Here are some common Ruby ecommerce solutions for social media integration:
- Spree_social_products ‒ Adds sharing buttons for multiple social networks
- fb_graph2 ‒ Lets you implement the main functionality of the Facebook platform:users can share content, leave comments, and log in with their Facebook accounts
- instagram-ruby-gem ‒ The official gem for the Instagram API, allowing you to add Instagram log-in, a share button, comments, and other features
- twitter ‒ A Ruby interface for the Twitter API
8.4 Product reviews
Engage your customers and stimulate sales with product reviews on your website. Customers want to know what others who have used a product or service think about it. In fact, 93 percent of online customers read reviews to form their opinion about a business and 85 percent of online customers trust online reviews as much as personal recommendations.
Spree_reviews allows you to implement reviews in your online store.
If you want your customers to spread the word about your online store to their friends, family, and colleagues, give them an incentive with an attractive offer like a referral program. Referral programs offer bonuses for your customers for sharing about your brand. Referral programs help you boost sales, create return shoppers, and build trust with your brand. Companies with established referral programs have 70 percent higher conversion rates and close sales 69 percent faster.
To arrange a referral program, you can use spree_email_to_friend. This Spree extension lets your customers send referrals to their friends via email.
Beyond referral programs, you can reward your customers with discounts, promo codes, coupons, and gift cards. You can present your customers with dollars off, a percentage off, or free shipping discounts. Spree provides in-cart promotional functionality to cater to your site’s users with coupons and discounts.
Alternatively, you can offer a gift card optionor someone from your store or use it as store credit. Consider spree_gift_card to integrate a gift card feature into your credit card.
Integrating advertising platforms is one more effective way to increase the online presence of your products and services. Advertising platforms allow you to target many different groups of customers and track the progress of your ad campaigns anytime you want.
The most popular services helping you advertise your products and reach customers worldwide include Google, Facebook, and Twitter. They each provide Ruby ecommerce solutions: Twitter-ruby-ads-sdk, Google-api-ads-ruby, and Facebook-ruby-business-sdk.
The final block of your online store is analytics and reporting tools. You can hardly grow your business without monitoring your efforts and evaluating the outcomes. Without knowing which marketing activities are working, you’ll be wasting both time and money.
9. Analytics and reporting
Analytics help you track the number of transactions, measure revenue your ecommerce store generates, and gain valuable insights into the overall growth of your store. You can use the data you obtain to inform your future marketing campaigns or to modify your store.
Ecommerce tracking covers the following features:
- Sales reports: Determine demand for different groups of products and services and find out selling outsiders
- Traffic reports: Identify the region your online store visitors come from and how they discovered your online store
- Exporting reports: Export analytics reports for further analysis in spreadsheet tools, or send reports to your bookkeeper or accountant
- Integration with analytics tools: Integrate with services such as Google Analytics to track sales, visits, and referrals
Here are a few RoR solutions you can apply to implement tracking systems:
- Spree_analytics_trackers ‒ A Ruby extension allowing you to add support for Google Analytics Enhanced Ecommerce and Segment Ecommerce tracking
- Google Analytics API client library ‒ Allows you integrate the Google Analytics API to optimize ecommerce tracking
- Analytical ‒ A gem that helps you manage multiple analytics services in your online store (Google Analytics, Clicky, KISSMetrics, Hubspot, etc.)
- Impressionist ‒ A Rails plugin for tracking impressions and page views
- Ahoy ‒ Helps track visits to your store’s site
Ruby it all
Many successful ecommerce businesses including Amazon, Women’secret, Pedro del Hierro, and Casper are using Ruby on Rails for their web applications. Even Shopify, the leading platform for creating ecommerce websites, is built on top of Rails. Don’t hesitate; adopt the leading technology.
Here at RubyGarage, we’ve built diverse types of ecommerce stores based on Ruby on Rails technology. You can check out some of our projects including Artdeco and Medshop Express. If you need help implementing any feature for your online store, contact us and we’ll do everything we can to realize your ideas.
Subscribe via email and know it all first!