🔥 Introducing the Lizha Hyvä Template – Sleek, Fast, and Powerfull Buy Now 🔥

shape-img

Upgrading your Magento 2 store is essential for maintaining security, improving performance, and accessing the latest features. However, this process requires careful planning to avoid downtime or data loss. In this blog, Kiwi Commerce provides a detailed, step-by-step guide to safely upgrading your Magento 2 store.

Step 1: Back Up Your Store

Creating a comprehensive backup is the first and most critical step. This ensures you can restore your store if anything goes wrong during the upgrade. Key components to back up include:

  • Database Backup: Export your database to secure customer, product, and sales data.
  • File Backup: Save all store files, including themes, extensions, and configurations. Store them in a remote repository or locally. Don’t forget to back up media files to a Content Delivery Network (CDN) or another convenient location.

Backup composer.json: Use the command:
bash
Copy code
cp composer.json composer.json.bak

You can perform backups manually or use hosting tools provided by your hosting provider.


Step 2: Check System Requirements

Each Magento 2 version has specific system requirements for PHP, MySQL, and other dependencies. Review the Magento 2 System Requirements to ensure your server environment is compatible.


Step 3: Enable Maintenance Mode

Activating maintenance mode restricts user access during the upgrade, ensuring customers do not encounter errors. Use the following command:

bash

Copy code

php bin/magento maintenance:enable

Step 4: Upgrade Your Magento 2 Store

Follow these steps to upgrade your Magento 2 store using Composer:

Run the Composer require command:
bash
Copy code
composer require magento/<product> <version> –no-update

  1. Replace:
    • <product> with either product-community-edition or product-enterprise-edition, depending on your installation.
    • <version> with the target Magento version.

Update dependencies:
bash
Copy code
composer update

Run setup commands to upgrade the database schema, compile dependencies, and regenerate static content:
bash
Copy code
php bin/magento setup:upgrade  

php bin/magento setup:di:compile  

php bin/magento setup:static-content:deploy

Step 5: Test the Upgrade in a Staging Environment

Before making the upgraded store live, test it thoroughly in a staging environment.

  • Core Features: Verify the checkout process, product pages, navigation, and the admin panel.
  • Extensions: Ensure all third-party extensions are compatible with the new Magento version. Upgrade any incompatible extensions.
  • Customisations: Test custom themes and code for compatibility.

Step 6: Resolve Issues

If you encounter issues during the upgrade:

  • Magento Logs: Review logs in the var/log and var/report directories for detailed error messages.
  • Composer Errors: Fix any dependency conflicts identified by Composer.

Step 7: Disable Maintenance Mode

Once the upgrade is successful and tested, disable maintenance mode using the command:

bash

Copy code

php bin/magento maintenance:disable

Step 8: Reindex and Clear Cache

Reindex and clear your cache to ensure optimal performance. Use the following commands:

bash

Copy code

php bin/magento indexer:reindex  

php bin/magento cache:clean

Step 9: Monitor Your Store

After upgrading, closely monitor your store to identify and resolve potential issues:

  • Performance: Check page load times and server response times.
  • Functionality: Ensure both customer-facing and admin features are working correctly.
  • Error Logs: Regularly review error logs to address any outstanding issues.

Conclusion

Upgrading your Magento 2 store is essential for maintaining a competitive edge in the e-commerce market. By following these steps, you can minimise risks and ensure a smooth transition. With proper preparation and testing, your store will be ready to take full advantage of the latest features and enhanced performance offered by Magento 2.

Stay ahead in e-commerce with Kiwi Commerce’s trusted expertise in Magento development and support.

In the competitive world of e-commerce, having an effective marketing strategy is essential for success. For businesses using Magento 2 as their platform, it is crucial to leverage the right tools and strategies to drive traffic, increase conversions, and build a strong brand presence. In this blog, we’ll explore e-commerce marketing strategies specifically for Magento 2 stores, with a special focus on how KiwiCommerce can optimise your marketing efforts and boost your store’s performance.

1. Optimise Your Store for Mobile Shopping

With more people shopping on their mobile devices, it is vital to ensure your Magento 2 store is mobile-optimised. KiwiCommerce, an expert in Magento development, can help tailor your e-commerce store to deliver a seamless mobile experience. This includes:

  • Responsive Design: Making sure your Magento 2 store adapts to any screen size.
  • Faster Load Times: Mobile users tend to abandon slow-loading sites, so speeding up your website is essential.
  • User-Friendly Navigation: Ensure that mobile users can easily browse, find products, and make purchases without issues.

By providing a smooth mobile experience, you will significantly improve user engagement, reduce bounce rates, and increase conversions.

2. Leverage Personalisation and Customer Segmentation

Personalisation is a key driver of sales in the e-commerce industry. Magento 2 offers powerful features that allow you to tailor the shopping experience for each customer. Using tools like KiwiCommerce‘s Magento 2 extensions, you can deliver targeted content, product recommendations, and special offers based on user behaviour, preferences, and past purchases.

  • Dynamic Content: Show personalised banners, promotions, and product recommendations to each visitor based on their browsing history.
  • Customer Segmentation: Group your customers based on factors like purchase history, location, or browsing habits and deliver tailored marketing messages to each segment.
  • Email Campaigns: Use customer data to send personalised email campaigns, driving repeat purchases and improving customer retention.

This kind of tailored marketing is proven to increase engagement, customer satisfaction, and, most importantly, conversions.

3. Invest in Search Engine Optimisation (SEO)

SEO is one of the most effective marketing strategies for any online store. Magento 2 has built-in SEO features, but KiwiCommerce can take your SEO efforts a step further. Here’s how to optimise your Magento 2 store for search engines:

  • Optimise Product Pages: Ensure product titles, descriptions, and meta tags are fully optimised for relevant keywords.
  • Improve Site Speed: Google ranks faster websites higher. KiwiCommerce can help you optimise your site’s speed, improving SEO performance and user experience.
  • Structured Data Markup: Implement schema markup for rich snippets, which can improve your visibility in search engine results.
  • Mobile Optimisation: Since Google uses mobile-first indexing, optimising your Magento 2 store for mobile can directly improve your SEO rankings.

Effective SEO is about both technical and content improvements. With KiwiCommerce’s expertise, you can ensure your Magento store ranks higher and attracts organic traffic.

4. Use Social Media Marketing to Drive Traffic

Social media marketing plays a crucial role in driving traffic to your Magento 2 store. Creating a strong social media presence and sharing engaging content can help you reach potential customers. Here’s how to integrate social media marketing into your Magento strategy:

  • Integrate Social Sharing Buttons: Ensure that your Magento store is equipped with social sharing buttons on product pages and blog posts. This encourages users to share content with their networks, expanding your reach.
  • Social Media Ads: Run targeted Facebook, Instagram, and Google ads to reach a broader audience, driving traffic to your store.
  • Influencer Partnerships: Collaborate with influencers in your industry to reach a more engaged and targeted audience. Magento 2 allows you to integrate influencer campaigns into your store’s promotional strategies.

Through social media channels, you can engage customers, drive traffic, and increase brand awareness, all of which will positively impact your store’s sales.

5. Leverage Retargeting and Abandoned Cart Campaigns

Not all customers will make a purchase the first time they visit your Magento store. This is where retargeting and abandoned cart campaigns come in. KiwiCommerce can help you set up retargeting ads and automated abandoned cart email campaigns to re-engage visitors who didn’t complete their purchase.

  • Retargeting Ads: Using tools like Google AdWords and Facebook Ads, target customers who have previously visited your store but didn’t make a purchase. These ads can bring them back and encourage them to complete their transaction.
  • Abandoned Cart Emails: Set up automated emails reminding customers of their abandoned cart, perhaps offering a discount or incentive to complete their purchase.

By re-engaging users through these strategies, you increase your chances of recovering lost sales and boosting overall conversions.

6. Create Engaging Content Marketing

Content marketing is an essential element of any successful e-commerce strategy. Magento 2 stores can leverage blogs, videos, and product guides to attract and engage visitors. With KiwiCommerce’s help, you can integrate a blog into your store and produce high-quality content that is relevant to your audience. Some tips include:

  • Educational Content: Write articles or create videos that help your customers understand how to use your products or solve problems related to your industry.
  • User-Generated Content: Encourage your customers to leave reviews or share photos of themselves using your products. This content can be showcased on your product pages and social media channels.
  • Seasonal Content: Produce content around holidays or special events. For instance, create blog posts or social media content about Christmas gift guides or New Year’s resolutions that feature your products.

Content marketing not only drives organic traffic but also builds brand loyalty and trust.

7. Offer Special Discounts and Promotions

Promotions and discounts are always a great way to encourage purchases, particularly during the holiday season. With Magento 2, it’s easy to set up promotional offers such as:

  • Flash Sales: Create time-sensitive offers to encourage customers to purchase immediately.
  • Coupon Codes: Offer discount codes to first-time buyers or for specific products.
  • Bundle Offers: Create product bundles at a discounted price, enticing customers to buy more.

KiwiCommerce can help create a seamless experience for running these promotions and ensure they are integrated smoothly into your Magento 2 store.

8. Utilise Advanced Analytics and Reporting

Finally, to understand what’s working in your marketing strategy, it’s essential to use advanced analytics and reporting. Magento 2’s native analytics features, combined with KiwiCommerce’s custom reporting tools, will give you valuable insights into your sales performance, customer behaviour, and more.

  • Customer Journey Analysis: Track how visitors are navigating through your site to identify areas for improvement.
  • Sales and Conversion Metrics: Use data to measure the success of promotions and ads and adjust accordingly.
  • Heatmaps: Understand where users are clicking on your website and optimise your store’s layout accordingly.

With detailed reporting, you can make informed decisions and continuously improve your marketing efforts.

How to start selling online

There has never been a better time to start selling things online; whether it’s as a sideline while you’re furloughed, as a second income to earn money from a hobby or to actually move your physical business into a more profitable and accessible space.

According to the Office of National Statistics, roughly 93% of UK internet users are expected to shop online by 2021, and with the current pandemic it’s sensible to expect these figures to increase.

So, what does this mean for those businesses who aren’t online? Well, to put it bluntly, you’ll only be reaching less than 7% of the potential audience with your high street shop or market stall.

There are, of course, options to sell online through eBay, Amazon, Etsy and other similar marketplaces, and while these are quick and help you reach a much wider audience, the cut they take of your profits can really make this a sour pill to swallow, plus the effort you put into these marketplace shops never really does much for your own brand and online presence.

If you already have a business on the local high street but no online shop, are thinking of starting your own business to sell items you manufacture or can source, or are already using a marketplace that takes a big cut of your profits, we’d always recommend starting your own eCommerce website where your efforts all go into building your brand and boosting your profits. Plus, you have control over the look, feel, experience and overall success of your business.

Starting an online shop

Depending on the size of your business, there are multiple options for starting your own online shop. For those who aren’t currently online, selling products online may seem daunting, however the basics of normal retail selling can be applied to your online shop, with the added elements of distribution and virtual stock control etc.

Most eCommerce platforms offer staggered versions of their online store, often based on the number of products you sell, the frequency of transactions and the specialist elements you want to include, for example sales and marketing tools, however for most small businesses the initial level is more than enough to get you started, with options to upgrade version as your business grows.

Our preferred platform for small businesses to start their online journey with is Shopify, with WooCommerce (the WordPress eCommerce add-on) coming in a close second. Shopify basic is the first level of Shopify store and is a free eCommerce platform that is customisable and easy to use. As with all online stores, ensuring the site is actually set up correctly and includes the elements you need when taking your shop online or starting your first online shop is always strongly recommended (you wouldn’t build a house if the foundations weren’t strong), however this doesn’t need to cost the earth. Many developers will charge for unnecessary items such as bespoke design and coding, but at the initial stage of starting your online store there is a huge library of free template designs and styles which you can choose from and the platform is designed to already have all the basic elements you need to get started. You can then upgrade to bespoke coding and designs as you see fit over time.

Start your own eCommerce website

Here at KiwiCommece, we understand that starting an online business is daunting. We’ve worked with hundreds of businesses over the past 10 years who have been in the same position you are, and over time we’ve helped them grow their businesses and progress their eCommerce websites to newer and more advanced versions of Shopify, WooCommerce and Magento (our three top eCommerce platforms).

In order to start your own eCommerce website you will need:

  • A list of all products, their images and descriptions
  • To choose a design (a huge library of free templates/styles are available)
  • To decide how you will ship your products (suggestions can be provided)
  • To decide who will process your online payments (suggestions can be provided)
  • Any content you want to add to your about us, contact us, delivery/returns page and legal/T&C’s pages (standard text can be provided for these if required)

Given the current climate, we’ve decided to help small businesses get online with a special offer of just £499 to set up their first eCommerce website that can be ready to go online in just 3 days! 

For more information and to take your business into the future, click here!

Conversion is the holy grail for any eCommerce business. For years, webmasters have made incremental changes, performed A/B testing, improved imagery, provided reviews and even done market research to try and increase conversion rate on site; however mobile conversion has always lagged well behind desktop figures. 

It’s easy to see why; when content competes for space on smaller screens there is only so much information you can present to try and secure a sale. Consumers need to be hit with that magic formula of speed, price, imagery, content, trust and reminders in order to reach that final purchase, and on mobile devices this has always proved difficult.

If we think about the evolution of the mobile experience we have seen the following:

  • Full size version of the main website loading on the tiny screen. The user can zoom and navigate, however without extreme zooming, navigation is clumsy and usability is awful.
  • Separate mobile version of the website. Making menus and navigation simpler but leaving the imagery and content as above.
  • Mobile optimised website. Making the navigation, imagery and content larger and more readable on the first smartphones. 
  • Responsive website. To accommodate different sizes of smartphones and tablets.
  • Mobile App. Displays clean, timely, readily available user friendly, easily absorbed content, however this is a separate entity from the main website, often only created when a brand is of a certain size and is usually extremely costly.
  • Progressive Web Apps. Optimising the main website to behave like an App on mobile devices.

In eCommerce, it’s important to focus on how your users want to use your website; and on mobile devices this means looking at speed, usability, interaction, reliability and availability. Mobile Apps were designed to overcome these issues and yes, conversion on Apps is usually much better than on standard mobile websites, however this success comes with the cost and demand of developing and running the App, among a number of other elements such as actually getting people to download your app in the first place. Usually, it’s only when a company gets to a certain level that they require an App, but what about those who aren’t there yet?

How do we achieve higher levels of mobile conversion for big and small brands alike without having to develop an App? There are pros and cons of every new technological advance, however we at KiwiCommerce feel like Progressive Web Applications really do overcome most of the issues of previous mobile solutions and present a very real, and very exciting possibility for all brands, whatever the size.

Progressive Web Apps:

  • Can be found via the search engines, thus attracting new visitors.
  • Prompt the user to be added to the desktop, meaning they are stored as a link on the user’s device, much like an App would be.
  • Send push notifications (these can be personalised) to remind users to return and complete a purchase.
  • Actually give the appearance of using an App, without the separation from the main website.
  • Save time; information is displayed from the live website with a PWA, so there is no need for webmasters to update both App and website.
  • Save space; the data is pulled from the website and not stored on the user’s phone, so phone memory is not taken up.
  • Are the latest way of providing best user experience; one of the main Google ranking factors.
  • Are cheaper than developing an App.
  • Work offline!! That’s right, because of PWA’s clever caching of information, users are able to use the PWA optimised website even when they go offline.

We know what you’re thinking, and you’re right. PWAs are definitely the way forward and at a fraction of the cost of developing an App, one of the best ways to increase your mobile conversion. 

Want to find out more about how Progressive Web Apps work? Click here ->

Steps to create a free shipping bar

  • Create & register the module
  • Extend default.xml layout and define a block
  • Create block class & related template file (.phtml file)
  • Define jsLayout component in <block> element in default.xml layout
  • Create jsLayout component(.js file) & template(.html file) file at a location which is defined in default.xml layout file
  • Calculate percentage and binding it with shipping progress bar using knockout js.
  • Create a configuration menu to set the maximum price for free shipping bar at admin panel
  • Get maximum price config value for shipping bar which is set from the admin panel, and bind it to the shipping progress bar.
  1. Create a Module for Free Shipping Bar

Let’s create the separate module to add a free shipping bar to the top of the mini-cart.

You have to create a vendor directory under the app/code directory and a module directory under newly created vendor directory.

Create Vendor & Module directory as follow :

app/code/Kiwicommerce/Shippingbar

  1. Create registration.php file

Create a registration.php file on the root folder of your module for module registration and add the following content:

\Magento\Framework\Component\ComponentRegistrar::register(
   \Magento\Framework\Component\ComponentRegistrar::MODULE,
   'Kiwicommerce_Shippingbar',
   __DIR__
);
  1. Create module.xml file

For our module instruction, create a new directory “etc” on the root directory. Also, create a module.xml file under “etc” directory and add the following content:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
   <module name="Kiwicommerce_Shippingbar" setup_version="1.0.0">
       <sequence>
           <module name="Magento_Checkout"/>
           <module name="Magento_Tax"/>
       </sequence>
   </module>
</config>

In the <sequence> element add the Magento core modules that you want to load before the current module.

Run the following command using the command line interface from the Magento root directory to enable the module:

$ php ./bin/magento setup:upgrade

  1. Extend default.xml layout to add shipping bar block

To add a new block for the shipping bar in the minicart section, we need to extend layout from the Magento checkout core module.

To extend the layout, we need to create a default.xml layout at the following location:

app/code/Kiwicommerce/Shippingbar/view/frontend/layout/default.xml

Add the following content in the default.xml file to create the new block for the shipping bar:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
   <body>
       <referenceContainer name="minicart.addons">
           <block class="Kiwicommerce\Shippingbar\Block\Cart\Sidebar" name="shipping_bar" template="Kiwicommerce_Shippingbar::cart/minicart.phtml">
               <arguments>
                   <argument name="jsLayout" xsi:type="array">
                       <item name="components" xsi:type="array">
                           <item name="minicart-addons" xsi:type="array">
                               <item name="component" xsi:type="string">Kiwicommerce_Shippingbar/js/view/minicartaddons</item>
                               <item name="config" xsi:type="array">
                                   <item name="template" xsi:type="string">Kiwicommerce_Shippingbar/minicartaddons/content</item>
                               </item>
                           </item>
                       </item>
                   </argument>
               </arguments>
           </block>
       </referenceContainer>
   </body>
</page>
  1. Create block class and template files for the block

Create block class for the newly added block at the location below. We will use this class to set dynamic configuration for maximum price of free shipping bar in the future:

app/code/Kiwicommerce/Shippingbar/Block/Cart/Sidebar.php

Add following content in the Sidebar.php file,

<?php
namespace Kiwicommerce\Shippingbar\Block\Cart;

use Magento\Framework\View\Element\Template;

class Sidebar extends Template
{
   /**
    * Sidebar constructor.
    * @param Template\Context $context
    * @param array $data
    */
   public function __construct(
       Template\Context $context,
       array $data = []
   ) {
       parent::__construct($context, $data);
   }
}

Create a template to render the content of the knockout js template file at the following location with given content:

app/code/Kiwicommerce/Shippingbar/view/frontend/template/cart/minicart.phtml

<div id="cart-page">
   <div id="block-cart-list" data-bind="scope:'minicart-addons'" class="block">
       <!-- ko template: getTemplate() --><!-- /ko -->
       <script type="text/x-magento-init">
         {
             "#block-cart-list": {
                 "Magento_Ui/js/core/app": <?php /* @escapeNotVerified */ echo $block->getJsLayout();?>
             },
             "*": {
                 "Magento_Ui/js/block-loader": "<?= /* @escapeNotVerified */ $block->getViewFileUrl('images/loader-1.gif') ?>"
             }
         }
     </script>
   </div>
</div>

Make sure that in the data-bind attribute, the scope name should be the name of our jsLayout component that we had defined in the default.xml file.

  1. Create the jsLayout component & template file

Now, we have to create the jsLayout component file as well as related template file as per defined in the default.xml file.

  • Create a component file at the following location:

app/code/Kiwicommerce/Shippingbar/view/frontend/web/js/view/minicartaddons.js

  • Create a component template file at the following location:

app/code/Kiwicommerce/Shippingbar/view/frontend/web/template/minicartaddons/content.html

Add the following content in the template file content.html

<div class="component-wrapper" data-bind="if: getTotalCartItems() > 0">
   <h4 data-bind="text : getpercentage() < 100 ?'Free shipping' : 'Eligible for free shipping!'"></h4>
   <span data-bind="html: cart().subtotal"></span><span> / </span><span data-bind="text: maxprice"></span>
   <div class="minprogress" id="progress">
       <div class="minprogress-active" id="child-progress" data-bind="style: { width: getpercentage() + '%' } "></div>
   </div>
</div>

Add the following content in the component file minicartaddons.js

define([
       'ko',
       'uiComponent',
       'Magento_Customer/js/customer-data',
   ], function (ko, Component, customerData) {
       'use strict';
       var subtotalAmount;
       var maxPrice = 100;
       var percentage;
       return Component.extend({
           displaySubtotal: ko.observable(true),
           maxprice: '
    1. Create less file for the progress bar

 

Create miniprogress.less file for applying css of the progress bar at the following location with the code given below: app/code/Kiwicommerce/Shippingbar/view/frontend/web/css/miniprogress.less

div.minprogress {
    border: 1px solid #a5a5a5;
    height: 10px;
    border-radius: 5px;
    position: relative;
.minprogress-active {
   position: absolute;
   background-color: #000000;
   height: 10px;
   border-radius: 5px;
}
}

Include miniprogress.less file in the <head> element before the <body> element at default.xml layout file by adding the following content:

<head>
   <css src="Kiwicommerce_Shippingbar::css/miniprogress.css"/>
</head>

The Free Shipping Bar has now been added in your mini-cart and you can see it in the screenshot below:

 

  1. Create system.xml file to add configuration menu to the admin panel

Now, we are going to add the configuration menu for free shipping bar in the store config menu on the admin side.

Create system.xml to add a new tab and section for the configuration of the shipping bar under store > configuration menu at the following location by adding the code snippet given below:

app/code/Kiwicommerce/Shippingbar/etc/adminhtml/system.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
   <system>
       <tab id="shippingbar" translate="label" sortOrder="1000">
           <label>Shipping Bar</label>
       </tab>
       <section id="shippingbar" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
           <label>Shipping Bar</label>
           <tab>shippingbar</tab>
           <resource>Kiwicommerce_Shippingbar::shippingbar</resource>
           <group id="shippingsection" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
               <label>Shipping Bar</label>
               <field id="shipping_bar" translate="label comment" type="text" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
                   <label>Max Price</label>
                   <comment>Set Maximum price for free shipping.</comment>
               </field>
           </group>
       </section>
   </system>
</config>
  1. Create config.xml file to define a default value

Create a config.xml file to set a default maximum price value of shipping bar at the following location by adding the code given below:

app/code/Kiwicommerce/Shippingbar/etc/config.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
   <default>
       <shippingbar>
           <shippingsection>
               <shipping_bar>100</shipping_bar>
           </shippingsection>
       </shippingbar>
   </default>
</config>

By making the above changes in the file, you will see that the configuration menu will appear at the store > configuration menu.

Now, we are going to fetch the default value of max price which is set in the admin panel and will reflect this in the shipping bar.

  1. Create helper to get a config value of shipping bar

To get the configuration value of max price for the shipping bar we need to create a helper at the following location with the below content:

app/code/Kiwicommerce/Shippingbar/Helper/Data.php

<?php
namespace Kiwicommerce\Shippingbar\Helper;

use Magento\Framework\App\Helper\AbstractHelper;

class Data extends AbstractHelper
{
   const PRICE_SHIPPING_BAR = 'shippingbar/shippingsection/shipping_bar';
   /**
    * Return if maximum price for shipping bar
    * @return int
    */
   public function getPriceForShippingBar()
   {
       return $this->scopeConfig->getValue(
           self::PRICE_SHIPPING_BAR,
           \Magento\Store\Model\ScopeInterface::SCOPE_STORE
       );
   }
}
  1. Use the helper to assign config value of shipping bar to the block

Now, we can use the above helper’s function using dependency injection concepts.

Replace the content of app/code/Kiwicommerce/Shippingbar/Block/Cart/Sidebar.php file with the code snippet given below:

<?php
namespace Kiwicommerce\Shippingbar\Block\Cart;

use Magento\Framework\View\Element\Template;

class Sidebar extends Template
{
   /**
    * @var \Kiwicommerce\Jobs\Helper\Data
    */
   private $helper;

   /**
    * Sidebar constructor.
    * @param Template\Context $context
    * @param \Kiwicommerce\Jobs\Helper\Data $helper
    * @param array $data
    */
   public function __construct(
       Template\Context $context,
       \Kiwicommerce\Shippingbar\Helper\Data $helper,
       array $data = []
   ) {
       parent::__construct($context, $data);
       $this->helper = $helper;
   }

   public function getConfigForShippingBar()
   {
       return $this->helper->getPriceForShippingBar();
   }
}
  1. Assign shipping bar config value to the jsLayout component

Add the following code in the app/code/Kiwicommerce/Shippingbar/view/frontend/template/cart/minicart.phtml file to assign the config value to the javascript variable.

<script>
   maxpriceShipping = <?= /* @escapeNotVerified */ $this->getConfigForShippingBar() ?>;
</script>

Now, your current file will look like this,

<div id="cart-page">
   <div id="block-cart-list" data-bind="scope:'minicart-addons'" class="block">
       <!-- ko template: getTemplate() --><!-- /ko -->
       <script>
           maxpriceShipping = <?= /* @escapeNotVerified */ $this->getConfigForShippingBar() ?>;
       </script>
       <script type="text/x-magento-init">
         {
             "#block-cart-list": {
                 "Magento_Ui/js/core/app": <?php /* @escapeNotVerified */ echo $block->getJsLayout();?>
             },
             "*": {
                 "Magento_Ui/js/block-loader": "<?= /* @escapeNotVerified */ $block->getViewFileUrl('images/loader-1.gif') ?>"
             }
         }
     </script>
   </div>
</div>

Modify your js component file with the following content:

app/code/Kiwicommerce/Shippingbar/view/frontend/web/js/view/minicartaddons.js

Replace the following line of code:
var maxPrice = 100;

With the code given below:
var maxPrice = maxpriceShipping;

Happy coding! ?

+ maxPrice.toFixed(2),
/**
* @override
*/
initialize: function () {
this._super();
this.cart = customerData.get(‘cart’);
},
getTotalCartItems: function () {
return customerData.get(‘cart’)().summary_count;
},
getpercentage: function () {
subtotalAmount = customerData.get(‘cart’)().subtotalAmount;
if (subtotalAmount > maxPrice) {
subtotalAmount = maxPrice;
}
percentage = ((subtotalAmount * 100) / maxPrice);
return percentage;
}
});
});

  1. Create less file for the progress bar

Create miniprogress.less file for applying css of the progress bar at the following location with the code given below:

app/code/Kiwicommerce/Shippingbar/view/frontend/web/css/miniprogress.less


Include miniprogress.less file in the <head> element before the <body> element at default.xml layout file by adding the following content:


The Free Shipping Bar has now been added in your mini-cart and you can see it in the screenshot below:

 

  1. Create system.xml file to add configuration menu to the admin panel

Now, we are going to add the configuration menu for free shipping bar in the store config menu on the admin side.

Create system.xml to add a new tab and section for the configuration of the shipping bar under store > configuration menu at the following location by adding the code snippet given below:

app/code/Kiwicommerce/Shippingbar/etc/adminhtml/system.xml


  1. Create config.xml file to define a default value

Create a config.xml file to set a default maximum price value of shipping bar at the following location by adding the code given below:

app/code/Kiwicommerce/Shippingbar/etc/config.xml


By making the above changes in the file, you will see that the configuration menu will appear at the store > configuration menu.

Now, we are going to fetch the default value of max price which is set in the admin panel and will reflect this in the shipping bar.

  1. Create helper to get a config value of shipping bar

To get the configuration value of max price for the shipping bar we need to create a helper at the following location with the below content:

app/code/Kiwicommerce/Shippingbar/Helper/Data.php


  1. Use the helper to assign config value of shipping bar to the block

Now, we can use the above helper’s function using dependency injection concepts.

Replace the content of app/code/Kiwicommerce/Shippingbar/Block/Cart/Sidebar.php file with the code snippet given below:


  1. Assign shipping bar config value to the jsLayout component

Add the following code in the app/code/Kiwicommerce/Shippingbar/view/frontend/template/cart/minicart.phtml file to assign the config value to the javascript variable.


Now, your current file will look like this,


Modify your js component file with the following content:

app/code/Kiwicommerce/Shippingbar/view/frontend/web/js/view/minicartaddons.js

Replace the following line of code:
var maxPrice = 100;

With the code given below:
var maxPrice = maxpriceShipping;

Happy coding! ?

You may be all too familiar with the following scene at company meetings. At the end of the meeting, your employees gather up their belongings hastily and you hear them grumbling to each other about how this information could have been relayed in a memo. Disappointing as it may be, they might be correct. Instead of allowing these negative meetings to continue happening, consider the benefits of stand-up meetings. At KiwiCommerce, we start our days with 20-minute stand-up meetings. Understanding what these meetings are and how they help can allow you to see their benefits.

 

Understanding Stand-up Meetings

When you hear about a stand-up meeting for the first time you might wonder if it literally is a meeting where you stand up. In this case, the name is indeed quite telling. At these meetings the employees all stand up and of course, accommodations are made if necessary. You may wonder why anyone would want to stand up for the duration of a meeting, especially if you’ve been subject to particularly long agendas in your career. The fact that the meetings are stand-up style is a strong indicator that they aren’t going to last for a long time.

 

Knowing How We Function

Businesses can conduct stand-up meetings in a variety of ways. Our meetings in the morning are about 20 minutes long. Companies can determine different lengths if doing so suits their purposes, but the point is to be brief. The major goal of our meetings is to discuss what happened yesterday and what will happen today, and each employee shares. During this time, employees can receive guidance from one another and get a clear picture of what they are going to achieve that day. Now that you know what the stand-up meetings are and how they are conducted here, you can begin to learn about the benefits.

 

Motivating Employees

At many jobs, people come in and immediately start work. They may be rushing in the door after encountering a great deal of traffic, or they may feel in a frenzy about the stack of work on their desk to complete today. These beginnings are not necessarily motivating and can cause the day to start on a stressful note. Instead, bringing all of your employees together, discussing plans and gathering feedback can motivate everyone to have a productive day. Also, think about how much more productive you might feel if you had the chance to recap your successes of yesterday or get support on anything that you’re struggling with. You also don’t need to feel as though your work goes unnoticed as everyone is working towards a goal.

 

Staying Updated

Regardless of how large your company is, you may feel as though you never really know what is going on in other departments. This situation can leave you feeling detached from the business, especially in a larger company. By participating in a stand-up meeting, you get to know what is happening at the company in general. Also, you have the opportunity to receive and provide feedback. Even if you do not work with someone on a regular basis, you can still get to know this employee. Therefore, we believe the stand-up meetings help to develop a sense of community.

 

Procuring Solutions

When you are struggling with a task at work, you might try to hide it or put it to the bottom of your to-do list. You may feel as though you aren’t allowed to make mistakes or that you must always know which direction to go in. A stand-up meeting encourages you to share your struggles with your colleagues, as they do with you. In addition to feeling as though you can release this burden from your shoulders alone, you can also get feedback and support. You’ll know that your colleagues are there to help guide you to a suitable solution. These interactions among employees certainly lead to a strong rapport.

 

Prioritising Issues

Since these meetings are generally short, the issues that are of the highest priority come to the forefront. At some work meetings the same topics are brought up time and time again, even if the problems are menial, meaning employees may leave feeling as though nothing has been accomplished. During these stand-up meetings however, we prioritise the issues. Employees can leave feeling a greater sense of accomplishment knowing that the company has made progress.

 

Generating Quality

Remember that a major goal of these meetings is to work toward solutions together. Instead of sitting down at your desk for another day of feeling lost and confused, you can head to your desk with confidence. Even if you do like to work alone and to tackle challenges by yourself, remember that even the most independent people need guidance sometimes.

 

Establishing a Routine

Think about the last positive habit that you wanted to integrate into your life. You probably followed some sort of routine to make that change come into fruition. When you participate in a stand-up meeting every morning you are getting the chance to establish a new and healthy habit. Having a routine to start your day at work can actually have a useful effect on the rest of the work day.

 

Energising Yourself

While standing up at a meeting for 20 minutes isn’t the same as getting in a workout at the gym, it is certainly better than starting your day ready to take a nap in your chair. When you think about how tired you sometimes feel at the start of a work day, you may recognise how beneficial it could be to have some time to stand up when that day begins. This eCommerce consultancy allows its employees to begin their days in an invigorating manner and even our teams working remotely are able to join in via video link.

 

At KiwiCommerce, we feel the benefits of stand-up meetings, and our clients have reported the same. A culture helps to provide expectations for the company, and it also infuses a sense of unity. We know what we are working towards together and we feel proud of our accomplishments. Try it in your office from tomorrow morning!

Let’s go through the journey of the epic Meet Magento UK 2018 event, a wonderful event where successful minds in the industry shared their expertise on the latest trends and their thoughts on the eCommerce industry.

The entire event was for two days and to warm up everyone attending the event on the first day, an intensive Magento Contribution hackathon took place, with many Magento Core Developers and Architects participating in the event.

Among many contributors, a few made their first ever contribution to the community!

After the fun-filled and brainstorming contribution day, an exclusive reception followed for merchants to network with other merchants and discuss hot topics in the industry. The evening was complimented by a panel of speakers. Among the panel members was Rabia Qureshi (Senior Customer Success Manager at JH).

As Day 2 began, the Keynote speaker Peter Sheldon (VP of Strategy at Magento Commerce) spoke about his eCommerce experiences. What was most impressive about the talk was how he highlighted that the Internet of Things (IoT) has allowed a huge variety of shoppable items to be made available across all channels, which has indirectly pushed eCommerce even further. He also shared his thoughts on how personalised shopping experiences and storytelling can be the key to bringing massive change in what can actually be sold online to consumers.

Among the many topics covered by many well-known speakers during the event, one particular topic we enjoyed was by Rob Long on “how data can fuel eCommerce growth”. We know how the data science industry has touched every aspect of technology and that data can indeed help us understand the ups and downs of eCommerce, as well as informing us where to focus our efforts in order to climb further up the growth scale.

The second keynote speaker Brian Green had really good insights that he shared regarding Magento’s platform. He talked about Magento’s roadmap priorities and shared many examples on the power of an open ecosystem.

Before we continue on the topics covered by Brian Green, we would like to Congratulate Magento again on being named as the leader in the Gartner Magic Quadrant for Digital Commerce. Below we see Brian talking on Gartner Magic Quadrant.

A lot of praise was given to the UK community which we’re incredibly proud to be a part of, but specifically to the top contributors for all they do to promote and support the community. Kudos goes to them!

During the event, a demo was given by Dave Macaulay showing how quickly one can build a complete custom landing page without using code, which was seriously amazing. This could be pretty useful to show to clients who are considering a Magento build to give them an idea of what they can expect 🙂

While the event wrapped up after Brian Green’s keynote, everyone headed off to the Voltaire bar to call it a day in style. We’re in the majority in believing that no Magento event should end without a networking party!

Finally, we’d like to say a warm thank you to all the sponsors and organisers for putting on this event. As the years go by the Magento Community grows stronger than ever. See you next year at Meet Magento UK 2019! #MMUK19

Developing a website is a large project with many points to consider, from client expectations to the delegation of tasks.  Advancement of any website on an extensive scale is a complex task, however an eCommerce website has its own specific requirements. Of all the bad practices I’ve seen in eCommerce development, I feel that the worst is ignoring the little things and the elements necessary to support the website that are not core development items. This doesn’t change regardless of the platform you develop it on.

 

Taking the platform into consideration, I firmly believe that Magento is more engaging than any other platform existing today. If incorporated well, Magento’s broad features can be utilised to give an extraordinary eCommerce experience. Yet, as I said earlier, regardless of the platform, executing a project well isn’t generally the most effortless thing on the planet. Throughout the years, I’ve seen people missing the smallest yet the most important aspects that result in poor Magento implementation and ongoing management, which is disappointing when these changes are so simple.

 

Nobody wants to see another list of Magento’s best practices, so we’ll stay away from that. Instead, I’ve detailed a few things that are easy to miss, their impact on an eCommerce project and the solution.

 

Downtime is Expensive

Just a 2 second delay on the checkout page alone could cost a million pound loss to your business over time, and if a 2 second delay can do this to your business, imagine what hours will do. Even one hour of downtime because of a site blackout or a malicious attack by crawlers can significantly affect a retailer’s income and reputation, particularly if it happens at the time when people prefer shopping online rather than visiting a store.

 

With the end goal to keep you from losing clients because of moderate load times, you’ll need to ensure your site is advanced enough to keep running as fast as could reasonably be expected. There are a couple of approaches that we make use of on our Magento sites that help them to run all the more easily and reduce the risk of downtime. You can install site speed extensions, reduce the size of imagery on the site, keep your site streamlined and remove unnecessary items on the page to allow the site to load quicker.

 

Robots – The Bad Boys

Bots should be able to rapidly and effortlessly crawl your web pages, this is because when a Googlebot lands at your site, its first point of access is your site’s robot.txt file. Creating a robots.txt file is like giving Google a contents page to your website. It tells the Googlebots where the information is and how it’s structured, while telling it what we don’t want it to spend time on. We make it easy and quick for the bots to crawl the relevant pages on the site, because the less time Googlebots spend on irrelevant parts of your site and the more focus they give to the relevant pages (the ones that you want to appear in the search engines), the better for your site performance in the long run.

 

Platform Requirements – Hosting

Magento is one of the strongest eCommerce platforms but it has one of the most enormous code bases. Utilizing such a great platform for your eCommerce development comes with its own requirements, so don’t assume that you can simply launch it from a common shared hosting package and wait for a worthy store performance. The platform itself requires a dedicated server or a solid cloud hosting solution for your store to perform well.

 

Often, store owners use inadequate hosting packages to save money and then blame Magento for their website speed problems. There are a few elements that can affect loading time, but sometimes a problem arises from the server side as well, so proper hosting is really important and is a fundamental part of your e-commerce business success.

 

Absence of Monitoring

It might seem unnecessary once you’ve developed and launched a great Magento website, yet the absence of sufficient ongoing monitoring is an issue we often see. Insufficient reviewing, monitoring and housekeeping when it comes to store functionality, security and the level of performance implies there’s a missing link and a greater chance of errors going unnoticed, which can damage the site’s ability to reach the business goals.

 

There’s no reason for developers not appropriately monitoring an eCommerce site after it has been deployed, as the site naturally grows and changes as it’s being used. Plus it could pick up a virus or a security issue along the way. Paying attention to the details and keeping your website clear and ordered is mandatory for building trust with customers and for your brand reputation, as mistakes and issues on site slash conversion rates and return visits massively.

 

KiwiCommerce provide various technical support and monitoring packages that comprehensively monitor your website to identify any issues and keep your site performing as you would expect.

 

Final thoughts

Keeping these small things in mind during the development of an eCommerce site can help you ensure that you are providing the best experience to your clients. Of course, these are only a few of the elements we feel are necessary, please share your essential eCommerce development tips with us in the comments section!

Search