Here, the product_id is a foreign key referencing Product->id, and the “image” field is similar to the previous one.
How to Create Models in Yii2
We can use Gii to make Yii2 create models, views, and controllers for these tables. For convenience, you can use the following commands in the terminal:
Change all names in bold to the name of your model. Namespaces are also can be changed, if necessary. These commands will generate all the required files.
Next, we add UploadImageBehavior to the Product and ProductColor. It is an extension that serves for saving images. Install it with the following command:
That’s all you need to know. Please, keep in mind that this solution is written for mongosoft/yii2—upload—behavior. You may use any other extension for saving/cropping images.
Magento vs Shopify: Migrate or Not to Migrate (Updated)
Are you opening your online store? Do you already have one and are looking to change platforms? Well, we know that one of the most important decisions you have to make is choosing your eCommerce platform. If you aren’t happy with your current platform, or if you’re new to eCommerce and you’re looking for one, then you’re in luck. Below, you can read about the battle of Magento® vs Shopify, decide which one is the best eCommerce platform 2018, and learn what you should expect from either platform in the future.
Magento vs Shopify: eCommerce Platforms Comparison
No matter where you look, you’ll find that Magento and Shopify are two of the most significant competitors in eCommerce. Even before the company released Magento 2, it was known for both its popularity and its quality. Now, though, its reputation is only expected to rise. Shopify also has a strong reputation among small business owners for its simplicity for setting up the store, as its data is stored on a Cloud.
According to BuiltWith, the usage statistics for these platforms are the following:
564 K live websites are using the Magento.
112 K live sites are using Magento 2.
1,1 million live websites are using Shopify
If we talk about the market share, 50% of the global market lies in the USA and 9% in Great Britain for Magento 2.
For Shopify, 84% of the market lies in the United States, and 16% – in other countries.
Difference Between Shopify and Magento
Magento 2 is a powerful and scalable solution for midsize and big businesses among other eCommerce technologies. It is trusted by the big amount of merchants worldwide and provide extended functionality for different needs.
Shopify is a SAAS and cloud-based so all the information is hosted on the cloud. The platform has different products useful for merchants as POS system, payments and the ability to integrate your store with ERP or CRM through open API.
Pricing and Resources
Of course, pricing might come into play regarding which platform you choose. Shopify works as a monthly subscription, with the first month free, so you have free access to all Shopify software as long as you pay your monthly fee. When you work with Shopify, you’ll also be expected to pay fees for any payments that are made through external gateways, which are web pages that redirect you to purchase outside of the host websites. For Paypal, Braintree, or other forms of payment, you’ll pay a certain fee percentage.
In comparison, Magento customers can use the same features as Shopify for less money every year. You can choose free or paid extensions from the Magento Marketplace. Shopify provides specific features with each package, and with Magento, you can select any feature you want, but the price may vary. An abandoned cart recovery, for example, comes freely with Shopify when customers go with the more expensive packages; however, Magento users can buy this feature for $39 yearly or find a free extension. Magento allows customers to choose their hosting solution at a price that suits them. With this platform, hosting can range anywhere from four dollars to over $100.
Learn more about pricing and packages comparison below:
Magento vs Shopify: Platform Features Comparison
Here we will highlight everything related to the main features of the Shopify and Magento 2 online stores.
Admin Management
In Magento 2 admin panel, you can create your store look, check order statistics and analytics of your sales and other data, send notifications to your clients, work with products and orders, etc. The same for Shopify, you can see the core fields of your store as orders, products, and customers. You can control your sales channels, including the online store, POS, and other Shopify products if you use them.
Dashboard
It will show your current sales amount, customer’s orders list, search terms and other analytical data to analyze your revenue and expenses on your Magento store. The dashboard in Shopify is called Home and includes all information about the store’s recent activity, order management and tips for your business.
Payment Methods
With Shopify, you can have over 100 gateways, including PayPal, Sage Payments, 2Checkout, and Authorize.net. But it isn’t out-of-the-box, and you need to pay additional transaction fees. However, Shopify has its own solution called Shopify payments. You won’t have transaction fees with it as well as reduced card fees. It is available for business owners from the US, Canada, the UK, Australia, Puerto Rico, Singapore, New Zealand, and Ireland.
As for Magento 2 payment methods, it includes PayPal, Braintree by default and for the rest you need add-ons. To extend purchasing features, you can add tax rates to the payment that may vary from the customer’s type (i.e., wholesale vs. retailer). In addition to it you can set up price rules, but this is a customization feature that could be implemented with code. To allow customers to use their certificates and vouchers you can use zero subtotal feature.
Shipping Methods
Shopify provides various carriers. However, you need to check their rules regarding pricing for different shipping methods, printing labels, weight, and package. To add choice, you can set exact shipping costs, flat rate, free shipping, and automatic shipping rates options. There is also Shopify product called Shopify Shipping available for stores based in the US (USPS, DHL Express, and UPS) and Canada (Canada Post).
For Magento 2 you can use UPS, USPS, Royal Mail, DHL, and FedEx by default. For the user’s convenience, set up a free shipping, flat rate, and table tax rates.
Both Shopify and Magento offer responsive themes that work on mobile and computer screens. Whether you’re on your phone, tablet, or computer, your site will look its best.
Shopify users can change their fonts and colors, but they can’t do much outside of this because their themes are proprietary. Like we said before, Magento is open source; therefore, its users can change themes, fonts, colors, and much more. Plus, the upgrade to Magento 2 will allow users to edit through a drag and drop visual editing tool. If you are a non-coder, then this is especially useful. If, however, you want your online store to be to-the-point and functional, then Shopify should suit you finely.
Web Development
Regarding the development, both platforms share the same goal, they use very different practices regarding their code; for example, Magento uses PHP and Shopify uses Liquid. Also, Magento is an open source solution, unlike Shopify. Magento’s open source code means that the system and template are available to edit and to be modified. Shopify, on the other hand, has a proprietary source code, which means that you can’t have it changed.
Server Requirements
The stack requirements for hosting Magento 2 are as follows:
Technology Stack Used
Description
Web server
Apache 2.2 or 2.4
Memory
at least 2GB of RAM
Technologies
PHP 7.0.2, 7.0.4, 7.0.6–7.0.x and 7.1.x. MySQL 5.6, 5.7.
Since out-of-box software may not be enough for your online store, so you should be aware that getting add-ons will require the work (and extra cost) of a developer to help run your store.
When it comes a final choice between Magento vs. Shopify, Magento wins this category if we take into consideration its flexibility!
Shopify is built on Liquid. As it is a platform on the cloud, you need to have hosting, a domain name, and SSL certificate. However, hosting is included in any Shopify package, unless you want the specific one. The same with a domain name, you can own yours or purchase it through Shopify.
Website Security
Magento 2 has a strong security update. New Signifyd tool for the protection of the store provides a high level of security along with modules for order protection and password management. With the CAPTCHA you will prevent fake logins creation.
A for Shopify, it takes care of security issues, unlike a self-hosted website. Shopify meets all 6 categories of PCI standards for organizations that handle credit card and debit card information. Shopify online stores are automatically PCI compliant with 1st Level of PCI DSS compliant certification.
Community Support
As for Magento, you can always count on Magento Help Center and different forums, blog posts from contributors and developers to solve the issues you have with a store.
Shopify provides 24/7 support and you can reach the team through phone support, online live chat or email. For the rest information, check Shopify Community with all the sources available from learning to solving the problems with your site.
Installation and Usage
Magento allows you to request the Demo from their official website and experience working with Magento Admin. We also prepared the Magento Demo overview if you want to check the functionality before to try it out. Magento is consistent with the updates, and you can always check what is improved in the recent release via Devdocs.
Shopify will guide you through the Demo via the Admin overview for desktop and mobile devices. Also, you can choose 14 days free trial to learn more about Shopify store features.
As we’ve learned all about two platforms, let’s conclude the information with the pros and cons of Magento and Shopify.
Magento 2 or Shopify: Which is Better for You?
Magento 2 is better for people who are looking to expand their business and for people who need more flexibility. Not only this, but Magento has thousands of add-ons and extensions, some of which you can get for free. The admin can provide his or her customers with coupon codes, wishlists, and more through the use of these add-ons. Shopify, on the other hand, only has around 100 add-ons.
Because of the coding alone, Shopify is suitable for small and midsize businesses; however, may not be best for more complex companies because bigger companies may need to change their source code more often.
Even checkout and loading speed has changed with Magento 2; reports show that some sites perform more than fifty percent better than before, which is primarily appreciated because customers have described the platform as being slow in the past. The new launch, however, seems to make Magento and Shopify even.
Finally, let’s compare these two platforms using the infographics below.
To have control over every aspect of your business, you should also be going with Magento 2 because you can operate many websites from the same admin screen.
Because Magento is so customizable, you might find it harder to operate than Shopify, which is why many people find Shopify to be better. After you sign up for Shopify platform, you can set up immediately.
It’s safe to say that Magento has become much more user-friendly with the Magento 2 launch. Users can easily access payment processors, product management, advanced reports, etc. Magento serves different businesses and proves to be a scalable and supportive solution for further growth.
OpenCart vs Magento: What You Should Choose in 2019
The eCommerce business model is being adopted by more enterprises every day. It has opened the business world to more possibilities. And it is essential to have your business enabled for online transactions. There are several options and criteria to be mindful of when choosing such a solution. Now, this may be a difficult task. Let’s start eCommerce CMS comparison of two of the most popular open-source eCommerce solutions available: Opencart vs Magento®.
Magento 2 allows each merchant to customize their clients’ entire shopping experience. It provides an estimated 50 or so payment gateways. As robust as it already is, Magento 2 functionalities can stretch even further. Magento Marketplace and other marketplaces have unlimited plugins and integrations available. This platform can handle promotions and discount features with no problem. Magento 2’s essential functionalities make it quite cost-effective to build amazing online stores.
OpenCart is a lighter eCommerce platform. It is well suited for companies who are still assessing their eCommerce needs. It is sturdy and intuitive enough to perform well in general online transactions. Magento 2 is among the most robust eCommerce technologies available today. It is powerful enough to offer comprehensive solutions to enterprises of any size.
Packages and Pricing
OpenCart vs Magento: Platform Features Comparison
A Magento 2 and OpenCart comparison can start with their similarities. Both platforms support several languages and currencies, and each comes with a myriad of plugins, extensions, and third-party services. They also both enjoy global community support. The main difference between the lies in its usage capacity.
Admin management
In OpenCart admin panel, you can check your store look, order statistics, notifications about actions at your store and other things related to the store sections and editing all the product, order, customers information. The same with Magento 2, you can add and edit your store look and feel through the admin panel.
Dashboard
In Magento 2, you will see your sales level, customers purchases, search terms, average order amount and other statistics related to your store. The same with OpenCart admin page, you will see the most up to date information on your site, total orders, customers, sales, analytics and much more.
It is included in Magento 2 and OpenCart. This additional feature for those customers who subscribed to a product/service to make recurring payments after. It submits the information about payment frequency that was initiated by the payment system. This section in OpenCart is included in the Sales section. To use it in Magento 2, you need to add it via Catalog > Manage Products than enable it.
Third-Party Integrations
It will give you an opportunity to connect with Amazon, eBay, and Etsy. In both Magento 2 and OpenCart, this feature is only available with additional extensions.
In OpenCart you have 36 payment gateways integrated into the store. But take into account that their additional adjustment possibly could case some other costs. In Magento 2 you’ve got PayPal, Braintree by default and the rest could be added after according to your preferences. Also, you can add tax rates according to location, product type or customer group (i.e., wholesale vs. retailer)
Also, you can set the price rules by adding the discount as an additional function to the price or special price calculation. However, this is a customization feature that could be implemented with code. As well as price rules you can use zero subtotal feature that allow you to add vouchers, certificates and other special offers included in Magento 2 store.
Shipping Methods
OpenCart has integrations with Australia Post, Citylink, FedEx, Parcelforce, Royal Mail, UPS and USPS by default. However, you possibly couldn’t print labels for delivery or other functions should be adjusted with the delivery firm’s rules. It could be additional charges for some additional functionality.
Magento 2 has UPS, USPS, FedEx, and DHL included. Besides you can place a flat rate, free shipping, and table rates out-of-the-box.
Opencart vs Magento SEO
Included in both CMS and you can use all SEO power to optimize your store. You can use Meta Titles, Meta Descriptions, Meta Keywords, Alt Tags, SEO URLs, canonical tags and sitemaps in your products and categories.
Appearance and Design
If we are talking about design and ability to showcase your brand and products or services, you want to use the most flexible and customizable solution. There should be an ability to use ready themes and customize some stand-alone features easily.
OpenCart is relatively simple, and you can modify some parts by copying the default appearance. For sure, you need some knowledge to do it; otherwise, the enhancements won’t work correctly.
Magento is more complicated than OpenCart in means of design implementations. However, you can add lots of customized features or change ready theme by your preferences.
Theme Editor
OpenCart has a theme editor that allows you to make changes in the default layout files. In Magento 2 you can take Luma default theme and change basics, but you also can use your purchased theme, or you can customize some standard theme.
Website Security
The security in online business is not in the last place. People, who pay online and companies who run their stores want to protect their data and money.
OpenCart has some essential features in its security. Thus, it suggests general advice for keeping the store safe. It is changing the admin directory name and password complexity. However, it should be an improvement soon.
With Magento 2 you will stay safe and secure. It’s a new Signifyd fraud protection tool help to solve problems cheaper and quicker. Even queues of manual transactions can be processed with AI tools. As well as new enhancements, it provides comprehensive password management, prevents to close cross-site scripting and local file inclusion. The new CAPTCHA feature will prevent automated software from attempting fake logins.
OpenCart has fewer technical requirements for servers than Magento 2.
Technology Stack Used
Description
Web server
Apache
Technologies
Enabled extensions for PHP 5.4+ and with specific PHP libraries/ modules installed: XML Mbstrings ZIP GD Library Mcrypt Curl Zlib
Magento 2 does have a more extensive requirements list.
Technology Stack Used
Description
Web server
Apache 2.2 or 2.4
Memory
at least 2GB of RAM
Technologies
PHP 7.0.2, 7.0.4, 7.0.6–7.0.x and 7.1.x. MySQL 5.6, 5.7
That were essential features of Magento 2 and OpenCart. Some extended functionality could be done by adding modules or involving developers to implement customized solutions. Also features depends on package type. As well as Open Source features it has additional B2B features for Magento 2 Commerce as customer segmentation, persistent shopping, automated email reminder, full page caching, optimized indexing and other useful features for B2B merchants.
Community Support
Regarding Magento, you can always count on forums and community of developers that share their knowledge and show how to solve different issues that may occur. Feel free to search through the trusted Stack Overflow and Magento Stack Exchange. Also, you can refer to the Magento Help Center and look through the How to, FAQ and Troubleshooting sections. However, Magento doesn’t have the support as a service, and you may refer to your in-house or outsourcing team to fix the problems.
Installation and Usage
OpenCart provides you with a free demo of the store. So you can check both Frontend and Backend via the link. As for the installation process, OpenCart is relatively simple. On the other hand, to implement OpenCart security updates, you need to update files on the serves and to do some additional work to get a full update.
Regarding Magento, you can also request the Demo from the official website. Also, we can provide you with our Demo overview. Besides, you can find a lot of free demos to explore on the Internet. However, Magento seems more complicated to install. It is recommended to get a developer help to do so. On the other hand, Magento advantage is that you get notifications about the new releases, and you can choose whether to update the entire system or only the security part. The updates for Magento are constant; however, OpenCart makes rare releases.
After we have observed the features and overall information about both platforms, let’s conclude them with the pros and cons of each solution.
That were essential features of Magento 2 and OpenCart. Some extended functionality could be done by adding modules or involving developers to implement customized solutions. Also features depends on package type. As well as Open Source features it has additional B2B features for Magento 2 Commerce as customer segmentation, persistent shopping, automated email reminder, full page caching, optimized indexing and other useful features for B2B merchants.
Magento 2 vs. OpenCart: Usage Prospects
Usage Statistics in 2018
Magento 2 is the newer version of the original Magento. According to builtwith.com:
556 K live websites are using the Magento.
A further 106 K sites are using Magento 2.
OpenCart currently powers 456 K live websites.
As for the global market share:
Almost 50% of Magento 2’s market share lies in the United States, with Great Britain in second place with around 9%.
For OpenCart, 42% of its market share also lies in the United States, with Russia holding around 16%.
OpenCart does power a much more significant number of websites. But one must remember that the original Magento is still very much a market leader.
Also, Magento 2 itself still powers the larger (and more profitable) websites. This fact speaks volumes to the operational prowess of Magento 2. Its popularity has seen exponential growth, as indicated below.
Is Magento Better Than Opencart?
Magento 2 has been the answer for several famous brands around. These include fashion giant Solar, luxury food, and wine company Virginia Hayward. Other clients include Australian Pharmaceutical Industries Inc., and NBA team Atlanta Hawks.
OpenCart clients include pop culture merchandise store Dicebox and the British Red Cross. They also power tech sales website Dropshipper and food store Fresh Express.
Magento 2 can support websites of any size. Stores that expect high traffic and more transactions do gravitate towards Magento 2 because it can scale up or down to help all business circumstances. Even as your business grows, it can handle all your requirements. OpenCart tends to suit small to medium size websites that don’t expect too much traffic. If you’re starting and want to “test the waters” first, then it would be a good option. But it must be noted that someday your business may become too big for OpenCart to handle.
How to Implement Admin Notifications in Magento 2 B2B with the Amasty_Blog module
Today you’ll learn how to implement a system of admin notifications in Magento® 2 B2B yourself. You can do it using Amasty_Blog module that will be helpful for creating custom admin notification for Magento 2.
Task: Implement Admin Notifications on Magento 2
There is a Magento 2 site that sells Magento 2 extensions. Administrator notifications must be implemented to alert clients of module updates.
A built-in functionality can be used to solve this problem. The Magento 2 core contains the module Magento_AdminNotification, which allows administrators to receive notification messages.The solution for admin notifications will consist of a client part (a client-side module) and a server part (modules for the site that sells the extensions).
The client module will be available with all the other extensions the site sells. The client module will consist of a configuration file, etc/adminhtml/system.xml, of the following form
The first configuration parameter allows the admin to turn off notifications, while the second, of the type “label,” will contain the URL where the request for notification messages will be made. This URL will be located in the module file etc/config.xml. Notifications will be requested the whole time the administrator is logged in and is navigating the pages of the administrator section. This is achieved by using the following event handler, which is defined in etc/adminhtml/events.xml
As you can see, the class is inherited from Magento\AdminNotification\Model\Feed and should implement a method that returns the feed URL and a method for checking for updates, and also allows for reading the time of the last update from the cache and writing it to the cache as well.
Tool: Amasty_Blog Module for Magento 2
The feed URL should return an RSS Feed. Such feed is implemented, for example, in the Amasty_Blog module, and it is returned by the controller rss/feed/index from the Magento_Rss core module. It’s only necessary to specify the feed type from di.xml in the GET parameter “type.” When using the Amasty_Blog module, specify type=amblog, and the parameter record=post must also be specified. In this instance, all active blog posts will be returned to the feed.
Now, if we create a post on the server and open the Magento client admin panel when we go to the admin panel in System Notification, we will see an empty “Severity” field. This is because Amasty_Blog does not have this field, and as a result, it is not in the RSS feed. Therefore, Amasty_Blog will have to be extended to include an additional module that will provide this field. The module will need to add the field “severity” with the type “smallint” to the amasty_blog_posts table during installation. Then, the field will have to be added to the page for editing posts. For this, a layout file, adminhtml/layout/amasty_blog_posts_edit.xml, is needed in the following form
This class added the mandatory field Severity to the Content tab of the form for editing posts, and an administrator will indicate the importance of each message added. However, the class responsible for the output of the feed knows nothing about the added field. To solve this problem, we will add a separate type of RSS feed using etc/frontend/di.xml
Since the postModel field in the \Amasty\Blog\Block\Rss\Feeds class is private, we had to redefine the constructor. The redefined method getPostsFeed added the severity field to the elements returned. However, there is more that needs to be done to add a field to the feed. The classes in the Zend library Zend_Feed_Builder and Zend_Feed_Rss also know nothing about the added field and do not support the unlimited expansion of fields in a feed. To solve this problem, a plugin was added to the class Magento\Rss\Model\Rss. It will have the following form:
This plugin checks whether the data conductor is a class of the required type. If it is, then it implements the formation of the feed using additional classes. They will be given below.
The rewriting of methods in these classes allowed the “severity” field to be added to the feed. By the way, if the severity is “Critical,” then the client site’s administrator will see a pop-up message in the admin panel, and they will not have to go to the notification page to see the message.
So, now you can implement admin notification messages for Magento 2. If you need any help with this task or you have other questions regarding Custom Magento Development, feel free to contact us. Our Magento 2 developers are ready to create a custom module for you!
5 Steps To Setup Amazon CloudFront in Magento 2 and Clean CDN Cache
Often, when we need to speed up the website performance, it’s a good idea to relocate the static content, such as images, CSS and JavaScript files, from your website domain. We can put this content to some external content distribution network (CDN). In our case, we can rely on Amazon CDN services.
Amazon provides their CDN solution called Amazon CloudFront CDN which is the part of their AWS services. But if we need to make some changes in the content of static resources, we must also update them on the CDN side. We are glad to introduce Magento® 2 module which solves this problem.
Our task for today is to clean Amazon CloudFront Cache in order to make it empty. We should break it into two phases. The first one is settings on the Amazon side, and the second one is the most interesting – configuring Magento 2 module. Let’s start our project!
Setting Up Amazon CloudFront for Magento 2
First of all, we need to config CloudFront Distribution on Amazon side. We can configure the one CloudFront Distribution for the one domain name. That’s why in case there are several websites hosted on Magento, we should create the apart CloudFront Distribution for each domain name. Each CloudFront Distribution will have the unique identifier which we can use later for API requests.
URL which represents CloudForm Distribution should be defined on Magento side:
Stores -> Configuration -> General -> Web -> Base URLs.
We should define it in Base URL for Static View File and Base URL for User Media Files fields. We should write this URL for both cases, secure and unsecure URLs. After that, the static content will be requested by the CDN URL. If the content is not there, Amazon CloudFront will request it from the website and then cache it.
Finally, we should generate the key pair on the Amazon side. It’s a secret key for connecting to Magento using Amazon API.
Creating Magento 2 Module for Using Amazon CloudFront CDN
First, we’ll need the AWS SDK library to implement Magento 2 module for CDN. The easiest way to install the AWS SDK library on Magento 2 is to add the row to the “require” section of composer.json file. We should add the following row:
“aws/aws-sdk-php”: “3.x”
Then we should run the “composer update” command in the console. The AWS library will be successfully uploaded to vendor/aws directory.
Now we can move to Magento 2 module implementation. The module will consist of:
a system configuration;
a block which we’ll display on cache management page in admin panel;
a controller which will process the form submit.
So, what’s then? We’ll go through each step providing the code samples. Ready-steady-go!
Magento 2 System Configuration for Amazon CloudFront CDN
etc/admihtml/system.xml file will look like the following:
This configuration allows the user to turn on or turn off the module in Magento 2, set and generate Access Key and Secret Key on the Amazon side, define the region.
Amazon requires specifying the region for connection because not all AWS services are available for all regions. Fortunately, Amazon CloudFront is available in all valid regions. For instance, we can specify us-east-1. All configuration parameters are global, except the identifier which we can specify for any store view. As said before, each domain should have the apart identifier on Amazon CloudForm. That’s why ids are unique.
Displaying the Block on Cache Management Page in Magento 2
Now, let’s display the block on the cache management page in the admin panel. We can do it with “layout adminhtml cache index.xml” file where we’ll define the block and its template.
if($this->canShow()):?><formmethod="post"action="<?php echo $this->getUrl('cloudfront/index/flush'); ?>"><h3><?phpecho__('Enter paths to files you want to invalidate on Amazon Cloudfront Side. Each new path you should specify from new line.'); ?></h3><inputtype="hidden"name="form_key"value="<?php echo $this->getFormKey(); ?>"/><textareaname="files"rows="10"style="width:100%"></textarea><buttontype="submit"class="button"><span><span><?phpecho__('Flush'); ?></span></span></button></form><?phpendif;?>
The form in the admin panel should have “form_key” element, otherwise, the form will not be processed. “Textarea” element allows the administrator to specify the ways to files, which caches should be cleaned up on Amazon CloudForm side. So, we just need to implement the controller. Let’s do it.
Implementing Controller for Processing the Form Submit in Magento 2
We can implement the controller in the following way:
classFlushextends \Magento\Backend\App\Action {publicfunctionexecute(){ $files =$this->getRequest()->getPostValue(); $logger =$this->_objectManager->get('Psr\Log\LoggerInterface');try{if(!isset($files['files'])){$this->getMessageManager()->addError(__("Files haven't been provided")); }else{ $files =explode("\n",$files['files']);foreach($files as $k=>$file){if(trim($file)==''){unset($files[$k]); }else{ $files[$k] =trim($file); } }if(!count($files)){$this->getMessageManager()->addError(__("Files haven't been provided")); }else{ $scopeConfig =$this->_objectManager->get('\Magento\Framework\App\Config\ScopeConfigInterface'); $params =array('version'=>'latest','region'=>$scopeConfig->getValue('amazoncloudfront/general/amazon_region'),'credentials'=>new \Aws\Credentials\Credentials( $scopeConfig->getValue('amazoncloudfront/general/access_key'), $scopeConfig->getValue('amazoncloudfront/general/secret_access_key'))); $client =new \Aws\CloudFront\CloudFrontClient($params); $storeManager =$this->_objectManager->get('Magento\Store\Model\StoreManager'); $distributions =array();foreach($storeManager->getStores() as $store){ $distribution = $scopeConfig->getValue('amazoncloudfront/general/identifier','store',$store->getId());if(!in_array($distribution,$distributions)){ $distributions[] = $distribution; } }foreach($distributions as $distribution){ $requestArray =array('DistributionId'=>$distribution,'InvalidationBatch'=>array('CallerReference'=>time(),"Paths"=>array('Items'=>$files,'Quantity'=>count($files)))); $res = $client->createInvalidation($requestArray); }$this->getMessageManager()->addSuccess(__('All paths have been invalidated')); } } }catch(\Exception $e){$this->getMessageManager()->addError($e->getMessage()); $logger->error($e); }$this->getResponse()->setRedirect($this->_redirect->getRefererUrl()); }}
As you can see, this controller creates the object of the \Aws\CloudFront\CloudFrontClient type with the use of configuration parameters. It works the following way. The controller sends the request for cleaning cache following the ways which administrator entered to the input field of “textarea” type. This request is sent for each apart identifier. If some errors arise, for example, you have no rights on the Amazon side, or the way is not correct, the library will through the exclusion with a message. And the admin will see this message.
The ways in “textarea” must always begin with “/” symbol. For example: ‘/media’ or ‘/static’.
How to Hire Outsourced Web Developers: Best Practices Guide
Have you ever thought about hiring outsourcing services? Having enough internal resources for web development projects is great. But what if you can much more? What if you can increase the workflow without taking additional efforts?
Look…
Outsourcing web development solves a lot of problems related to resources, costs, and project deadlines if you work with people who care about your projects. Let us introduce the guide on how you can hire the professional outsourced web developers for your job.
Let’s keep the ball rolling!
Outsourcing Web Development Benefits and Risks
When we start thinking about the partnership with outsourcing company or hiring the outsourced web developer, we should keep in mind several pros and cons of outsourcing.
Want to know the key ones? – We are revealing all of them.
Why Outsource? The benefits of IT Outsourcing
There are a lot of process of web development outsourcing. And many of them you already know. Let’s recall them:
Getting more resources for clients’ projects. If you outsource some services, you’ll get more resources. Therefore your team can implement more projects. You can hire one or more outsourced web developers, and they will work as the members of your team. So, if you need more work resources for implementing some tasks and projects – this is the way.
Expansion of the brand’s expertise. You can do it by creating the B2B partner network. If your company expertise includes operating several technologies, you can partner with some outsourcing company which expertise includes some more required technologies. You can add these technologies to your competence. Then just outsource the projects to your partner. This helps to build a solid B2B partnership. Therefore, you can offer the wide range of services to your customers.
Cutting costs and saving time. This means that you can hire outsourced web developers who work on low or average hourly rates as compared to your company’s hourly rates. The difference in rates will help you to cut cost. As for time, you’ll have more time with your team for implementing the other clients’ projects.The business world is continually growing, competition is thriving, and it takes hard work and strategy to come out on top. The following outsourcing statistics shared over at Timedoctor will help you understand how big the outsourcing industry is, whether or not it’s truly worth your time, and how much you can potentially save your organization.
Some website outsourcing companies in the USA and other parts of the world take care of client’s time. They provide their clients with remote project managers. So you won’t need to worry about the outsourced projects at all. We, at WEB4PRO, take care of our partners, and they feel calm and happy 🙂
Pros of outsourcing are obvious. Nevertheless, there are several potential risks we should keep in mind.
How can you secure yourself from risks? First, read our guide up to the end.
Challenges of Web Development Outsourcing
Okay, the main risk we take when decide to outsource the project to web developers is that we don’t know exactly whom we are dealing with. In detail, we can describe these risks the following way:
The quality of final results may not meet our expectations. This is the pitfall which always stays in the way of any cooperation. Before choosing the web developer for your project, we should make sure that they are able to provide us with the qualitative results.
Well, so what is quality? – We’ll talk about this soon, keep reading!
The risk to be tricked by “not good” guys. This is a real world. Sometimes if you deal with no-name outsourced web developers, they can take your money and don’t complete the project. Or you’ll just get bad final results. If you want to secure yourself from this type of tricking, always choose web developers on the credible freelancing platforms. These platforms secure our payments and contracts, so there are no ways for tricks.
If we talk about companies, most of them sign the contract which secures both sides of a deal. So, always ask for the contract. Try to choose the companies which have a good reputation, qualitative portfolio, and corporate website.
Finally, when you are in the know of all benefits and disadvantages of web development outsourcing, it’s time to start the search for good web developers, right?
Are you ready to get the list of the best resources? – Let’s move on!
Where You Can Find Web Developers for Hiring
First of all, you need to know the places where you can post the job description, or even choose the people for your project from the ready-made list. But before you start searching, decide whether you want to work with the outsourcing company or freelance web developers. The approach to work processes will be different. Nevertheless, you can look through all the resources and make up your mind along the way.
Maybe now you are thinking about the list of resources… We have something for you.
There are a lot of platforms, catalogs, and professional social networks where the best outsourcing companies and freelance web developers have their profiles. You are welcome to use our list of these resources.
Check it out!
If you are looking for freelancers, here is a list of the best global freelancing platforms:
In this case, we recommend you to view the credible catalogs and platforms where you can find top web development companies in the world. Most of them provide dedicated teams of professionals and remote developers for your projects. And the cost for outsourcing can be very attractive. In most catalogs, you’ll find the hourly rate defined.
Here is the list of resources where you can choose web outsourcing companies in USA, Europe, and the other countries:
This list will help you to focus on the right places.So, when you finally find some good profiles which catch your eye, how will you choose the best web developer? First of all, we suggest you request the CV.
Let’s focus on the way of how we can choose the best developers for your job.
Choosing the Best Outsourced Web Developers
Considering outsourced web developer’s CV
There are the various types of developer’s CVs around the word. We think all of them should have some necessary parts to make the description of developer’s experience clear for a client. We prepared the points we think are the key in the CV.
Here they are:
Years of experience. Often the level of developer’s knowledge depends on this point. The more years of experience the web developer has, the higher his gradation level is (like Junior, Middle, or Senior). This level also affects the developer’s hourly rate value.
About information. This information should describe the basic specialist’s competence and their professional skills.
Expert skills. This point should define main technologies and tasks in which the specialist has an expertise. Pay attention to this point.
Technical expertise. This section provides the detailed list of technologies, tools, and case studies with which the web developer worked. You can find lots of useful information here. For instance, if most of this list is what your project requires, you can continue communication with the developer.
Professional experience. It usually explains the last and current web developer’s responsibilities. From the other hand, you can find the information about job post and career growth. It’s useful if you are looking for some additional personal skills, like management, team leading, or vanity.
Work examples. We are sure that work examples should be represented not only in the form of links to the websites created. Furthermore, the web developer should describe technologies used on these projects. A well-made portfolio should consist of qualitative, modern, and complicated work examples.
Languages proficiency level. It will be the pros if the web developer reveals English proficiency level. This will help you to understand whether it is convenient to have a talk with each other.
Education. It’s not the key point which will influence your choice. But, definitely, the specialists who obtained the higher education in mathematics or computer science has more chances to cope with non-standard tasks.We can extend the item list in the CV. Some creative people can add something more personal, like a life motto or a view of life 🙂
The main purpose of developer’s CV is to provide the client with all necessary information. Having this information will help you to choose the person with the required level of competences.
Great! We have several good CVs. So, what then? Let’s choose your champion.
Evaluating the Quality of Web Developer’s Work
Before we move to the final step of our trip, let’s define what the quality is exactly for us.
In web development, the quality is a clear code structure, ability to modify this code, the working final solution, and, yes, the high level of communicational and management skills. These are the essentials of successful cooperation.
How can you check the quality?
Don’t hesitate to ask the developer for examples of works. Offer them to complete the test task. Also, you must contact the technical interview to understand the psycho type of the person you are going to work with. It will help understand whether you both can easily cooperate with each other and inside your team.
Conducting the Technical Interview
If you know what technical skills the web developer should have, you can pick the best value for your money.
How to conduct the technical interview?
The best way to do this is to prepare the list of questions related to the technical side of your topic. Also, ask the web developer about their experience, tools, and technologies they worked with, and ask about examples of cases.
Who can take part in the technical interview?
The necessary person of this process is your technical team leader, who is the technical specialist from your side, and the product owner. The product owner is a role of the key person on the project. It’s a client, in other words. You or another responsible person from your side can be the product owner. Together with the technical specialist, you’ll carry out the professional interview. Both of you can focus on different parts of future cooperation.
What services can you use for the interview?
As now we usually partner with the web developers from all parts of the world, choose the credible services which provide the good quality of connection and ability to make video calls:
Skype
FaceTime
Viber
What should you pay attention to?
We suggest you focus on the following:
the level of technical knowledge;
web developer’s communication skills;
English level (whether you understand each other or not):
ability to adherence the timeframes;
ability to recommend some custom and creative solutions.
That’s all. This may help you to conduct the successful technical interview.
Now you are almost ready to choose the best Outsourced web developer.
But!
Let’s add some more thoughts….
Several Necessary Steps Before You Start the Project
Before you start, make sure that you are secured from risk.
Check the remote web developer’s work environment. That means you should wonder what tools and equipment web developers use for doing their daily tasks. Do they have the allocated workplace with all needed staff for their convenient work? If they do, that means your team will cooperate easily, and they will be focused on a project. The work will be much more productive.
Sign the contract. Each deal with money should be fixed in black and white. This secures both sides from risks. Also, you can request signing NDA and ask for preserving the intellectual property right.
In conclusion, when you think that you want to work with the person in front of you, just do it! Don’t worry too much about risks. Outsourcing is a popular and effective approach now. It tends to help both partners gain the income and grow their business.
Finally, let’s recall all steps we should make for choosing the best remote web developer.
We should do the following when hiring the outsourced web developer:
get aware of benefits and risks of IT outsourcing;
define the list of trusted web resources for posting job offers and choosing the companies;
consider the well-structured and relevant web developers’ CV’s;
evaluate the potential of web developer’s work quality;
carry out the professional technical interview;
ask for guarantees and contract;
choose the best person for your job!
Thank you for reading. We tend to take care of everyone who needs our help. That’s why we want to be useful even on the stage of choosing the specialists. Yes, the project start can be easy! Just give it a try and drop us a line if this guide works for you.
WEB4PRO Clients Speak Up on Clutch
Nothing beats the feeling of delivering a finished product to a client. At WEB4PRO, our creative and experienced team loves our clients, and we love delivering solutions to them that work. With over a decade of experience (and clients who have been with us since the beginning), we’re proud of the results our clients have seen through our lines of code. Recently, our clients have let us know just how much they appreciate us by speaking up on Clutch.Clutch is a ratings and reviews platform based in the United States that focuses on helping business buyers make confident purchasing decisions. Their platform includes several thousand development, design, and marketing companies from around the globe. Using a proprietary research methodology, Clutch examines each of these firms to determine their ability to deliver great results through their work.
Alongside Clutch’s complex methodology, their team relies heavily on client interviews. Analysts at Clutch spend 15 minutes on the phone with clients asking a series of questions aimed at the companies’ services offered, results of the engagements, and project management styles.
We’re extremely proud that WEB4PRO’s clients have shown their appreciation for our work in their Clutch reviews. Here are some of the highlights from those conversations:
“They’re excellent. They always have a project manager who is very friendly, professional, courteous, and open to new ideas if needed for an upcoming build. We really enjoy working with their project manager.”
“They’re very reliable and very talented. We know that if we hand a project off to them, they will provide an estimate down to each line item on which they’ll spend time…. They’re very friendly, courteous, and professional. They do an amazing job. There’s nothing we’ve asked them to do that they have balked at, so we really enjoy working with them.”
“I have developed a sense of trust with WEB4PRO. We switched from working on a fixed-price basis to by the hour. I give them tasks and know that they’ll charge a fair price. I trust them enough to have an open-ended setup.”
We put the care about our clients and partners first in our cooperation process. That’s why we’re incredibly grateful for the trust our clients have placed in our team, and we’re proud of the strong ongoing relationships that we hold with some of our closest partners.
To find out more about what these partners have to say about us, check out our full Clutch profile.
Using Negative Values for the Product Quantity in Magento 2
When we deal with product quantity in Magento® 2, and it’s less than zero, we face the challenge. Sometimes we need to order the products in the online stores when they are not available at the moment. These products are in stock in Magento 2 but Merchants order them from the manufacturers and shippers after we place the order. In eCommerce, we call this back-order or drop-ship. In this case, the number of product quantity in the online store inventory can be less than 0. Yet, the products are available for the ordering.
Magento 2 includes this functionality. We can turn on the support for Qty field values which are less than 0 in Inventory Management Configuration. But there is one small catch. If the product quantity in Magento 2 is less than zero, the online shop administrator can’t edit and resave this product. The following error will appear in Qty field:
“Please enter a valid number in this field.”
You can find the description of this issue and the possible solution to it on GitHub. But you should know that it doesn’t work on the latest Magento versions (checked on Magento 2.1.7). We’ll cover the reason for this issues and the solution to it below.
The product editing form is implemented with UI-component. It is useful in case we need to do customization with different modules. For example, the form is claimed in the Catalog module. However, Cataloginventory module handles the quantity management.
Cataloginventory Module for Product Quantity in Magento 2
It’s possible to implement customization with classes-modifiers. They fit into Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool virtual type with di.xml.
If we take the Cataloginventory module, this modifier is claimed in the following way there:
The modifier class should implement \Magento\Ui\DataProvider\Modifier\ModifierInterface which must create two methods: modifyData($data) and modifyMeta($meta).
The component configuration is implemented in modifyMeta($meta) method, including its frontend part (javascript). In the solution from GitHub, the developer recommended turning off the digital validation with a custom modifier. We can implement it in the following way:
In the latest Magento versions (Magento 2.1.7) this code will not work. The reason is the following. Magento has the implementation of support for integers and fractions. For example, the fractions work in case of product drop-shipping by weight.
The Solution for Product Quantity in Magento 2
Magento_CatalogInventory/js/components/qty-validator-changer component was implemented for the quantity validation. This is its code:
define(['Magento_Ui/js/form/element/abstract'], function (Abstract) {'use strict';return Abstract.extend({ defaults: { valueUpdate: 'input' },/** * Change validator */handleChanges: function (value) {var isDigits = value !==1;this.validation['validate-number'] =!isDigits;this.validation['validate-digits'] = isDigits;this.validation['less-than-equals-to'] = isDigits ?99999999:99999999.9999;this.validate(); } });});
handleChanges method checks the configuration value transmitted to the component. If the integers are used for the quantity, we should apply validate-digits validator. If we deal with fractions, we should apply validate-number. So, it’s not enough to turn off the validate-digits validator. We also should set the needed value of handleChanges function’s parameter. It allows us to avoid choosing this validator by the other function.
We describe this function’s parameter in Magento\CatalogInventory\Ui\DataProvider\Product\Form\Modifier\AdvancedInventory modifier the following way:
It will cause the use of the right frontend validator. Furthermore, it won’t break the backend logic for the products which are on sales by item not by weight. We should repeat this twice because we can find the link under the Qty field. This link opens the advanced_inventory_modal pop-up.
As a result, the online store administrator will be able to save the products of which quantity is less than 0 without any problems.
This case is new to Magento 2. We make everything possible to make your journey with Magento 2 easier. If you have any questions regarding Magento 2 Extension Development, please, contact us. We’ll take care of your project.
How to Choose the Best Magento Outsourcing Company
Web development outsourcing is quite a popular approach among IT businesses and digital agencies. It is a good way to get more resources, manage the large work scope, and cut down the costs. Outsourcing turns out to be one of the best modern B2B practices. We can find a lot of web development firms and agencies. But what exactly can help us to make the right choice? Say, you are looking for a good Magento® development outsourcing company. Will it be more complicated to select the executors? Should you pay attention to some specific requirements?
The answer is yes! Let’s consider the key points you need to know to choose the professional Magento outsourcing company for your job.
As an experienced outsourcing web development team, we are aware of the clients’ main requirements to us. Moreover, we succeeded to cooperate with several large companies for 10 years. Keeping this information in mind, we managed to create the guide for entrepreneurs who decided to outsource their Magento projects. So, how to choose the best Magento development outsourcing company?
Create a Portrait of the Perfect Magento Outsourcing Company
It is not a joke. This step will help you to come up with your requirements for the company.There are the things you should think about before starting your search:
Language. What language do the employees speak? It’s a crucial moment for starting communication with your future partner. Definitely, you need to understand people with which you are going to cooperate. For example, if your team speaks English, it’s a good idea to choose the partner among the English-speaking companies.
Time Zone. Another good idea is to determine the time zone you would like your partner’s office to be situated. The closer their time zone is, the better. For, example, we are in the 3 GMT time zone. Our clients are from America, Australia, Europe, UK. Our time difference is up to 12 hours. However, our team works with clients from different time zones.
Project Area. When you are going to outsource your Magento project, surely you should know the area it covers. For example, you want to hire Magento 2 developers. Not all Magento companies work with Magento 2. So you can narrow the choice down. Or, you want to implement some custom features that require the creative approach. It means you should focus on this factor while talking to candidates.
The Number of Developers. Knowing the number of Magento developers required for your project will help you to calculate your budget. Additionally, this allows you to find the companies which provide the wished number of development resources available right at the moment.
Developer’s Skill Set. The main thing you should focus on is the required skill set for Magento developers you are going to hire. We’ll not dig too much into the basic technical knowledge right now. But think about the level of web developers you would like to hire. The level could be Middle, Middle , Senior, Magento Certified Developer. Sometimes Junior Magento developers can cope with some simple tasks. The specialists’ hourly rates depend on developers’ level. So we recommend you to come up with the wished skill set before starting cooperation. It allows avoiding unnecessary money spending.
Maximum Hourly Rate. Determine the maximum cost you are willing to pay for the project. It’s a good idea to calculate the budget. You could find the perfect company you’d like to cooperate with. However, their hourly rates may appear too high for you. Although if the company meets your requirements and provides the qualitative results, you may agree with their price.
When your portrait is ready, you can start your research. Just keep in mind the things you figured out before.
Search For Magento Development Outsourcing Company
Searching for Magento web development company is an obvious step. When you have the complete portrait of your ideal executor, it’s much easier to find the company. You should know where to search. These are the several ideas about the best places from which you can start.
Google. Okay, Google, let’s find the dream team for our project. Most of the companies have good websites. Of course, you’ll find some websites in the top search results. Don’t hurry. Visit the websites which appear farther from the top of Google’s search results. SEO is a large part of marketing strategy. However, you are looking for the web developers, right? The main things you should pay attention to are the company’s website quality and the information provided there. Try to feel whether their story sounds honest enough for you or not.
Another interesting moment you can focus on is the company’s virtual life. This is the way how it works. Check whether the company has social media profiles, Google profile, Google my Business account. Answer the following questions. Can you see their team on Instagram? Do they have a blog which proves their expertise? Does their office appear on Google maps? Do they show their experience on Quora, social networks, Medium? Do they have their products presented on Magento Connect or Magento Marketplace? If the answer is yes for most of these questions, you are on the right way. You should know the people with which you are going to work.
B2B research catalogs. It is one of the best ways to find a good Magento development company. Why? The catalogs allow setting filters. They save our time. Say, you are looking for the UK Magento development company. Tick this option, and then you’ll see the results only for the UK. Filtration by minimum project budget, company size, and the other options is also available. Also, companies’ profiles go through the multilevel verification process. The same happens to the reviews posted there by the clients. Take a look at famous B2B research catalogs, such as Clutch, GoodFirms, TopAgency, CrunchBase, Glassdoor. You can find a broad choice of opportunities there.
Commerce Hero. Commerce Hero is a platform for connecting web development specialists in eCommerce. There we can find Magento developers’ and companies’ profiles. This platform also allows each member to add the portfolio and post the articles. So look through the profiles and connect with your heroes.
Magento Partners. If you are looking for a B2B partner that must also be the official Magento partner, you must get there. Go to Magento partners directory and see all you need to know about your possible partners.
Linkedin. It’s a social network for professionals. It connects people and helps them to build business relationships. On Linkedin, you can find companies, the job of your dream, and a lot of professional people from different knowledge areas. Linkedin is a right place for networking and setting business relationships. You can get in touch with companies’ CEO, directors, and managers directly there.
Meetups and Conferences. No doubts that one of the best ways to find the partner is attending Magento conferences, expos, and meetups. At these events, people share the experience and communicate. They try to know each other better. If it works for you, consider these events like adventures and future opportunities.
Make the Final Choice: Pay Attention to Detail
Finally, you have the portrait of your ideal Magento development company, you planned your budget, and you have the several options you found. It’s time to make the final choice. So, you start communication with companies. We have some extra points you can focus on before choosing the best company. Check them out:
Code Standards. Everybody says their work is qualitative. What do they mean exactly? How can we evaluate the quality of a web developer’s work? There are three parts of good results that should work together: clean code, creative approach, and adhering to deadlines. The company should follow official code standards to perform the best result. Their code should be easy-to-modify. You can ask for developers’ code examples on Github.
Business Processes. An effective process is an essential tool for fruitful cooperation. Don’t hesitate to request the detail description of management processes. It’s good if the company has some kind of business proposal or even a PlayBook. They should tell about the project management model they follow. Are they ready to adjust to your processes? Are their processes convenient for you? Try to pay attention to this moment.
Magento Developers. Of course, you started this everything in order to find professional Magento developers. Good reliable companies have Magento certified developers on their team. Magento Certificate proves that the web developer passed official Magento exam. It shows developers’ expertise in Magento products. Also, take a look at CVs which the company offers. Compare the skill set with your wished one. Personal interview with the candidates will help you to make a final decision.
Portfolio and reviews. The works prove the team’s skills and expertise. A professional portfolio should consist of complicated, beautiful, and modern websites. Another extra safety measure is checking the clients’ reviews on sources like Clutch, Linkedin, Facebook, Google. You’ll see the clients’ true stories there. Before these reviews are posted, the client provides the personal details. It’s a complicated verification process. There are no chances to trick the system.
Guarantees. The guarantees will help you to stay confident and secured. Ask what guarantees the company can provide you with. Do they sign NDA or some other contract in black and white? It’s good if the company guarantees the substitute if their developer leaves the project. We, for example, provide a free trial for each our web developer. It helps our clients understand whether our people are able to cope with their job.
The Guide on How to Speed Up WordPress
Dou you want to speed up WordPress?
Today we’d like to share our guide on how you can make your WordPress website much faster. WordPress is quite a user-friendly and easy-to-run CMS, it should also have the high performance.
If you own the WordPress based website, we recommend you to check whether it’s optimized or not. Present and quick-coming future require the high performance of any process. The users expect more stability and efficiency from websites they visit. Time is the valuable thing now, and even several seconds of the user’s waiting can cause the falling of involvement and visiting of your website. So we need to check the things and fix the problems.
Let’s do it!
First, run Google’s speed test. You’ll see the level of website performance. If you see the red color on a scale, your website needs increasing. You can also check your website with Pingdom. It shows you the state of your website and gives the recommendations.
Then you can speed up WordPress performance following our quick guide a checklist. There you’ll find the basic things that influence page loading time of WordPress website. Let’s begin!
5 Basic Steps to Speed Up WordPress
Here are several most important things you can do to speed up your website.
Minimize CSS and JS Files
Here we talk about the code optimization. The less amount of code your web page has, the faster it’s loaded. The same goes for content. We’ll talk about it later. So, try to write the clean code, and it will help you to keep your WordPress website quick.
You can do it using W3 Total Cache Plugin. This is a pretty helpful plugin in the whole process of WordPress performance optimization and has many advanced features.It includes a built-in tool for minifying CSS and JS file.
Here are the things you should do:
install W3 Total Cache Plugin;
run it and find Minifying Setting in General Setting Tab;
enable Minify in a checkbox and save your changes.
Analogically, you can use such plugin as Autoptimize. You should go to the Settings Page after its installation set the following items in the checkboxes:
Don’t forget to check your website speed again after each step.
Optimize Images
Images take up the most part of things that are loaded on your website. It’s better to compress them and reduce the server load.
You can do it with a help of EWWW Image Optimize plugin. It automatically optimizes images you upload and also can work with already uploaded images.
Also, we recommend you to install Lazy Load plugin. It loads the images only when they are visible to the user that reduces the server load in many times.
Optimize Database
When you use WordPress for a while, the database stores much information which is already unnecessary. We mean, some tags and categories, images you don’t use, trash posts, etc.
You can clean up your database using the WP-Sweep plugin.
Use Caching for Better Performance
You should know that caching help to reduce the server load drastically. Cache store the copies of already loaded pages by the user, and provides him with them. So it increases website speed. You can enable caching via W3 Total Cache Plugin. You’ll find all features for caching in General Settings Tab. We recommend you to use caching and take the advantages of it.
Enable GZIP Compression
GZIP compression helps to build pages on a server before the web page is sent to the user. It increases the website performance drastically. You can enable it with W3 Total Cache.
There were 5 common recommendations on how to improve WordPress website performance. Also, try to keep WordPress updated and choose fast and reliable hosting.