We sacrifice by not doing any other technology, so that you get the best of Magento.

We sacrifice by not doing any other technology, so that you get the best of Magento.

    How to add new customer address attributes in Magento 2?

    Magento provides so many default fields but If we need custom information in customer address then we can create a new customer_address type attribute.

    In this article, I will share how we can add text type attribute in Customer Address,

    You need to create InstallData.php file in your existing module or you can create a new module as well as,

    If you are creating in your existing module: app/code/[Vendor Name]/[Module Name]/Setup/InstallData.php

    <?php
    namespace [Vendor Name]/[Module Name]Setup;
     
    use MagentoCustomerSetupCustomerSetupFactory;
    use MagentoEavModelEntityAttributeSet as AttributeSet;
    use MagentoEavModelEntityAttributeSetFactory as AttributeSetFactory;
    use MagentoFrameworkSetupInstallDataInterface;
    use MagentoFrameworkSetupModuleContextInterface;
    use MagentoFrameworkSetupModuleDataSetupInterface;
     
    class InstallData implements InstallDataInterface
    {	
    	/**
         * @var CustomerSetupFactory
         */
        private $customersetupFactory;
     	
     	/**
         * @var AttributeSetFactory
         */
        private $attributesetFactory;
     	
     	/**
         * @param CustomerSetupFactory $customersetupFactory
         * @param AttributeSetFactory $attributesetFactory
         */
        public function __construct(
            CustomerSetupFactory $customersetupFactory,
            AttributeSetFactory $attributesetFactory
        ) {
            $this->customersetupFactory = $customersetupFactory;
            $this->attributesetFactory = $attributesetFactory;
        }
     
        public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
        {
     
            $customerSetup = $this->customersetupFactory->create(['setup' => $setup]);
            $customerEntity = $customerSetup->getEavConfig()->getEntityType('customer');
            $attributeSetId = $customerEntity->getDefaultAttributeSetId();
            $attributeSet = $this->attributesetFactory->create();
            $attributeGroupId = $attributeSet->getDefaultGroupId($attributeSetId);
     
            $customerSetup->addAttribute('customer_address', 'job_title', [
                'type' => 'varchar',
                'label' => 'Job Title',
                'input' => 'text', //You can change your input type as per your requirement
                'required' => false, //If You need this field is required in customer address area then you can just set "true" in stand of "false"
                'visible' => true,
                'user_defined' => true,
                'sort_order' => 1000,
                'position' => 1000,
                'system' => 0,
            ]);
     
            $attribute = $customerSetup->getEavConfig()->getAttribute('customer_address', 'job_title')
                ->addData([
                    'attribute_set_id' => $attributeSetId,
                    'attribute_group_id' => $attributeGroupId,
                    'used_in_forms' => ['adminhtml_customer_address'], //Other list of forms: customer_address_edit, customer_register_address where you want to display the custom attribute 
                ]);
     
            $attribute->save();
        }
    }

    After creating the above file you have to run below commands:

    php bin/magento setup:upgrade
    php bin/magento cache:clean

    Now you can check in the customer section in the admin area.
    Our newly created attribute shown in the customer address form.

    Magento 2: Change product price on change quantity box in Product detail page

    If you want to set price update while changing the quantity in product detail page then paste below script

    <script> 
    require(
    [
     'jquery', 'Magento_Catalog/js/price-utils'
    ],
    function($, priceUtils) {
    
     $(document).ready(function(){ 
     
     $('#qty').on('input propertychange paste', function() {
     changeCuPrice();
     });
     function changeCuPrice(){ 
     var totalQty = $('#qty').val();
     if(totalQty == 'undefined' || totalQty == ''){
     totalQty = 1;
     } 
     
     var price = $('.price-final_price .price-container .price-including-tax').data("price-amount");
     totalQty = parseFloat(totalQty); 
     
     var flprice = parseFloat(price) * parseFloat(totalQty);
     var inPrice = priceUtils.formatPrice(flprice);
     $('.box-tocart .price-final_price .price-container .price-excluding-tax .price').text(inPrice); 
     }
     
     setTimeout(function(){ changeCuPrice(); }, 500);
     
     });
    
    });
    </script>

    at this path

    app/design/frontend/Vendername/Themenamge/Magento_Catalog/templates/product/view/addtocart.phtml 

    Fantastic Five: A combination to keep Ransomware away from Your Magento Store!

    It has become a frequent mechanism wherein the hackers hack into the Magento store and asks the victims to pay the ransom! Typically, such attacks known as Ransomware is a type of malware from cryptovirology that threatens to publish the victim’s data or consistently block access to their store unless the ransom amount is paid.

    Some simple Ransomware may lock down the system whereas, advanced malware uses a technique called cryptoviral extortion, which encrypts the victim’s files, and prohibits any kind of access to it.
    Here are five guidelines to avoid such situations and keep Hackers away from Your Magento Store!

    1. Update Magento version regularly: It has become extremely important to run your Magento store on the latest version. This step will ensure that the hackers will not be able to break through your store. It will help you to keep along with all the updates that are provided in the Magento Security Centre which will help you learn as to when it is just the right time to patch up vulnerable issues related to security. It’s advisable to take professional help to do Magento upgrade service if your store is not upgraded to the latest version yet.
    2. Take Backups frequently: However simple it may sound but to stay protected it is essential to take frequent backups. To save you from regular headaches let me tell you that it is also possible to get automated backups as per predefined timelines. Ransomware generally works on a premise that if the data is fully encrypted on to the server, the person ceases to have any access to it. Hence it is essential to keep a backup strategy that will help face any kind of disaster, including Ransomware.
    3. Create strong passwords: Again, a simple yet highly effective strategy is to create a strong password. Unauthorized access is a potentially major problem for Magento store owners. Severe consequences for victims of these break-ins can include a major loss of valuable data. Victims may also lose their bank account information or even their identity. All of these hardships can be cured by using a strong password.
    4. Use Two-Factor Authentication: Instead of just using the combination of login ID password, use Two Factor Authentication, or 2FA, which is an additional security layer for your Magento store. Due to this the hacker who even has your credentials will not be able to harm your Magento store.
    5. Turn Session Expiration On: Another easy and effective way to protect your Magento store from Ransomware is to turn your Session Expiration on. With the threshold of the lower time limit, let’s say, 5 minutes it will log you out of your Magento admin panel.

    Implementing these five things will surely help your Magento store to run seamlessly for a longer time. Also, make sure that you are aware of all the security tips Magento offers for uninterrupted sales in your Magento shops. If you are seeking any assistance, why don’t you drop your words to us, and we will surely help you with that.

    Detailed comparison between Drupal Commerce and Magento

    If you want to purchase a brand new headphones from the store, you’re looking for the best store to display the various models of the latest headphones you’ve got to choose from. With the advent of online stores, it hasn’t really changed. You’re always trying to find the best product on the best e-commerce website. If you are looking for a stunning eCommerce business platform for digital companies to develop as the best in the business, Drupal Commerce and Magento are the answers.

    Drupal Commerce and Magento have different characteristics and requirements. Deciding which one is perfectly suited to the requirements of your company is a question that needs to be considered. To make a better crop, comparing both side-by-side will give you clear sight.

    Let’s have a brief look at both the Platforms:

    1. Drupal Commerce:

    Drupal Commerce is a software that runs more than 60,000 websites. It is one of the most versatile e-commerce approaches for websites and applications of any scale. Drupal 7 and Drupal 8 are the versions to be preserved and assisted in the coming years. Commerce 1.x and Commerce 2.x would be needed to create an online store in the former.

    Now, let’s see some of the advantages of Drupal Commerce:

    • Easy utilization: It helps to create a management framework and a personalized business workflow. Thus, even a person without technical knowledge can make adjustments and carry out tests that make it market-driven commerce.
    • Essential For Business: It offers you the framework you use for your online store without establishing the preamble and assuming the requirements of your business. Simply put, it’s the Master of personalization.
    • Smooth Configuration: With its stability and versatility, it can be customized to meet the needs of your business. It is ideal for all kinds of physical and non-physical products that include payment mechanisms such as annual, licensing or subscription.
    • Digital Experience: It improves the digital experience by combining exchange, advertising and the community and delivers additional traffic to e-retailers.
    • Master of Content: Added on top of the CMS enterprise, it provides a trading platform for effortlessly intertwining content and products, pushing online and offline sales through superb UX, advanced merchandized tools, and powerful SEO techniques.
    • Flexible: This enables third-party incorporation and improvement of functionality and functionalities to respond to the changing requirements of a business. Be it Authorize.net, Braintree, PayPal, Stripe, Amazon Pay and many other payment gateways, there are many toolchains available. It is also extremely expandable.
    • Profitable: Being an open source software, it is an inexpensive alternative.

    2. Magento:

    Delivering a modular shopping cart framework, Magento is yet another e-commerce platform that provides online merchants with a comprehensive solution and control over the appearance, content, and functionality of their e-commerce websites. It comprises effective marketing, SEO and catalog management tools.

    Let’s see some of the highlights of Magento’s advantage:

    • Installation: It’s really obvious when it comes to installation and features different configurations and plug-ins.
    • Affordable Solution: Being an open source software, it provides an accessible and cost-effective solution.
    • Payment Gateways: Some of its payment gateways which are globally accessible are PayPal, Authorize.net, CyberSource, etc.

    Let us compare Drupal Commerce and Magento:

      • Installation: Drupal Commerce enables developers to start from scratch. The software bundle must be downloaded and installed. You need to install Drupal CMS and then activate the Drupal Commerce module or use the installation profile to allow it automatically.Magento enables developers to install from the scratch by supplying the installation bundle to be downloaded, loaded and installed.
      • Utilization: Getting a site running on Drupal and acquainting yourself with Drupal functions and processes will make your life easier to know about using Drupal Commerce.While Magento offers users total control and comes with certain incredible features, Magento professionals are expected to completely leverage its potential and make full use of its functionality. Anyone new to Magento can lead to a difficult learning process at first.
      • Managing The Content: Built on top of Drupal, Drupal Commerce allows you to constantly build content types with customized fields and attributes, and interesting media tools to boost your editing experience. The requirement for content interactions helps you to create a list of related products and blog posts. You can also modify your landing page with customized product lists. You can also customize your landing page with customized product lists. It is perfect for businesses that find the provision of content to be the center of their development.On the other hand, Magento has a very simple content management system. It just enables you to add pages, content to multiple categories of pages and features to products. Apart from this, you’re going to move into your custom domain. This imposes high costs and expands ongoing support.
      • Managing The Catalogue: Drupal Commerce will automatically add or delete a product from the product list dynamically. You may create a typical catalog-like experience and automatically adopt the method you have arranged your products and use attributes linked with them. If it’s tables, grids or lists, items can be presented in your website under any pluggable format, each with its own look and feel. It helps tremendously in creating user interaction.Magento has a very traditional way of arranging and adding products to the list. You create a collection of categories in the root catalog where the products can be included. A product can fit into multiple categories based on the form and how users are trying to find such products. Magento, however, implements a strict protocol for the on-site presentation of products. For example, only lists and grid views are accessible for product listings.
      • Mobile Receptive: Drupal Commerce provides screen versatility to create the most effective and scalable business engine on current market. Drupal themes help to add a completely customizable design to the ecommerce website.For example, SShop is a bootstrap based Drupal 8 theme with out – of-box compatibility for Drupal Commerce. Offers a multi-level sensitive header menu, a slideshow on the homepage, and a customized layout.Corolla is yet another stunningly stylized Drupal theme that includes 6 preset color schemes, customized color options, mobile friendly features, and box shadow and background texture options, and many more.

        eStore is a completely sensitive, bootstrap-based Drupal theme that provides cool features such as product layout range to search thru and choose from, slider content types, custom field additions to the Default Product Form, content types included within the configurations, etc.

        Magento is not too far from this. It implements a reactive web design strategy to create websites and provide an optimum viewing experience over a wide variety of devices. For example, the Magento Blank and Luma out – of-box themes give a completely responsive design.

      • Features and Functionalities: One of the key benefits of Drupal Commerce is that it has a wide and massive list of modules to allow customized apps and features. Creating a custom application and offering a great user interface, integrating functionality beyond trade, is flexible to changing times and business needs. If you want to add web services or forums, it allows you the ability to add a whole new feature.Magento comes with a good collection of features that’s perfect for your online shop. When you look at a product on the context of its released feature set, then Magento is perfect for you. So, to put it plainly, if you only need to create a shopping cart, go for it.
      • Multilingual Efficiency: Drupal 8 comes with out-of-the-box modules for the conversion of data on the website. The built-in language managing capabilities enable offer localized digital experiences by enabling you to select from 94 languages. It also gives individuals working on the site-site administrators, content editors and translators-the option in their own language. From the pages to the typology terms, all can be translated. You can also translate the layout of the screen, such as columns, tables, views, and so on.With any Magento theme, you can integrate a multilingual storefront without a lot of ups and downs, making it possible for the user to move between languages. Store Views is a store example on the Magento website. So, if you operate a single language eCommerce website, a single Store View is needed. It helps you to have multiple Store Views for multilingual pages.
      • Administration Interface: Without making adjustments to the code, you can configure the admin interface to your desires in Drupal Commerce. This helps you to build screens for different users with other admin decisions.Magento offers you a well-structured and well-defined way to run the entire store. If you’re impatient about the built-in admin interface features, it’s perfect for you. But if there is a need for any more apps, a lot of development effort is needed to make customizations.
      • Cost Control: Drupal is absolutely free to use as it is an open source technology.
        Magento, on the other hand, indicates an identity shift as per Gartner’s Magic Quadrant for Digital Commerce in 2019. It notes that some of the latest modules in Magento aren’t being provided as open source.
      • Business-Driven: Drupal Commerce can assist create a platform with all or more of these features: a multilingual domain, a multi-site, a community forum, or an online store. Therefore, it can be combined with various business platforms within one banner.In order to align Magento with some other aspect of your business activities, such as forums or subscriptions, you will have to address two separate structures operating with one another. This requires for third-party approaches to keep data between different systems in tune and up-to-date.
      • SEO Tools: You can allow SEO via a superabundance of Drupal modules such as Pathauto, XML Sitemap, Redirect, etc.On Magento’s out-of-the-box SEO software, you can simply change URLs, meta information and review search terms and rankings via Google integration.
      • Skills Recommended: Without a lot of coding experience, you can simply pick the concepts in Drupal Commerce. To anyone with limited coding skills, it provides modules such as Preferences, functions, etc. to drive the user interface. Also for a coding genius, the modules described above can be very helpful.With the heavy use of objects, inheritance, and programming concepts, anyone with limited coding experience can find it difficult in Magento to get into the scheme of things easily. Even, knowing and detecting Magento extension conflicts can also be difficult. This has good documentation accessible but an engaged Magento community with a large variety of training and support offerings can also be very beneficial.
      • Integration Scope: Drupal Commerce can be easily incorporated with third-party tools.
      • The Apache Solr Search module enables the alignment with the Apache Solr Search Platform to allow enhanced enterprise search functions.
      • The Oracle Driver module makes the use of the Oracle Database as the default backend.
      • Commerce Amazon Pay makes Amazon Pay compatibility and allows you to sign in to Amazon with Drupal Commerce.
      • Commerce FedEx Includes FedEx Shipping Calculation Features.
      • The MailChimp module lets you interact with the MailChimp API and enables you to create and submit email campaigns from your platform that provide simple email marketing features.
      • The Acquia Lift Connector module provides compatibility with Acquia Lift Service to boost the platform usability of your eCommerce site.

    Magento also provides support for third-party integrations such as:

      • Magento theme or template compatibility helps you to use the Themeforest or TemplateMonster themes from third parties.
      • SMS gateway compatibility with third-party service providers such as Kapsystem is possible in Magento.
      • It also enables Payment Gateway compatibility with Paypal, Amazon Pay, etc.
      • The Magento API compatibility can be achieved with Xero, Salesforce, Box, etc.
      • It can also be combined with CMS leaders like Drupal.
      • Security: Widely acknowledged, Drupal is the strongest security-focused CMS among major CMS platforms such as WordPress, Joomla, and Magento. Both infected websites and Magento’s infection rate were much higher than that of Drupal in Sucuri’s Hacked Website Survey.In fact, the Alert Logic Cloud Security Report states that Drupal has been identified for the lowest number of Web application threats.

    Conclusion:

    For the better e-commerce site, digital businesses need to compete on e-commerce networks for a special and elite class of websites. Drupal Commerce and Magento include an effective platform for the development of an e-commerce site. To know what fits your organization’s needs, you need to consider the features and functionality of your organization to make a smart decision.

    Magento has the advantage of a dominant market share when it comes to eCommerce websites. It also has an outstanding ability to support the enterprise market with its Magento Enterprise Cloud Version SaaS solution. Drupal Commerce has seen a quick constant development in different online stores while Magento is ruled by a huge number of web-based business sites.

    However, Magento is not decent on content, and Drupal clearly is. Serving up unique content in collaboration with a powerful e-commerce framework, Drupal Commerce can become an innovative solution.

    The above comparison shows that Drupal Commerce, with all the functionality it provides, has a strong advantage over Magento and comes out as a winner in situations where the requirement is more than just a stock and a regular commercial solution. If you’re still confused, we suggest you have a word with Magento certified expert who will help you to design the roadmap for your eCommerce project.

    9 Critical Tips for Your Magento Product Page to Convert More Leads

    The first thing people are going to look at is Your Magento product page. Hence it is sensible to conclude that it should be appealing and informative enough to catch the customer’s interest. If they are not handled properly, then odds can hurt your Magento store sales.

    These are 9 critical tips you should consider for Your Magento Product Page to Convert More Leads.

      1. Start with the Right Titles
        It may sound no brainer for some people but having a concise and unique title is necessary to grab customer attention. Make sure your title is descriptive but keep it under the limit of 65 characters for best SEO practices. It is also advised to avoid brand names in the title unless you are selling a very popular name brand product. If your title is meeting with the above qualification, then customers will indeed land on it during their search.
      2. Don’t Ignore The URL
        The humble product URL is often neglected. If it is used correctly, then it can be beneficial to catch customer attention. Your potential customers are more likely to run a search on Google and click on the URL with a simple, streamlined description. Creating a meaningful product URL is more likely to inspire your potential customer, thus improving your click-through rate.
      3. Pump Up Your Descriptions
        Many eCommerce store owners are just copying and pasting the manufacturer’s product description content. Due to this, many search engines, including Google, will penalize your site because it’ll consider the content as plagiarism. This is the greatest sin you could ever commit as an eCommerce store owner. Unique, concise product descriptions will improve the product to stand out from the pack.
      4. Adding Up Trust Signals
        Adding up trust signals doesn’t only mean the symbols on an eCommerce site that say it’s a secure connection. Although it should have, have that, I’m referring to customer ratings. Things like the price of shipping and how soon the chosen product can be shipped are fantastic ideas to build up that. In addition to that do not ignore the power of a wish list, which allows the online shoppers to save a product for later.
      5. Call-to-action (CTA) buttons
        The “add to cart” and “proceed to checkout” buttons are again extremely crucial for you. Hence, they need to be prominently displayed, in a bright colour like green or red and placed either below or to the right of the product’s image. Do not just create a tiny little hyperlink or hide it in a block of copy. Make them stand loud and clear in the Product page.
      6. Pictures Are Worth A Thousand Clicks
        Our brains process pictures 60,000 times faster than text. Hence it becomes one of the most critical keys to optimizing your Magento product page with high-quality photos. As per one such study, Humans are incredibly visual creatures who transmits 90% of the data to brain purely visual. If you do not include images on your store, you’re losing a considerable battle.
      7. Go Beyond Photos – Add Videos
        If pictures are worth a thousand clicks, videos worth more, a short video featuring the product in action helps your customer to understand the product and its usage. This will lead to converting a more significant number of sales. It was claimed that by adding a video featuring product boost unique visitors to a page by 300% and then keep them there much longer than average.
      8. Make is Simple
        Nobody likes cluttered product pages. Keep the product pages simple, clean and elegant. Product page featuring with the crucial points, necessary information and some visual appeals is only thing online shoppers mostly look at. If your Magento product page is equipped with all these than shoppers can make a buying decision fast and easy.
      9. Load time
        It is needless to say that your Magento product page should load quickly and show the information to customers. Bitter consequences for slow load times would lead to a prospect’s impatience and lack of confidence with your website, which can kill your sale. Thus, it suffices to say that your product page should be responsive enough if it lacks more time than it’s time to reconsider those large images and CSS styles for background and border elements.

    These are the tip of an iceberg which can majorly make or break your Product page and ultimately your website. From creating a meaningful title to using visual appearance on Your Magento product page will prove to fuel new energy in your eCommerce website. Your sales opportunities are only as limited as your imagination and ability to turn these critical steps into precise strategies on your site.

    How to assign the product image programmatically form external url?

    Step 1). Get the Product image from URL – create a file in Helper/Data.php

    public function getProductImage($imgurl){
    	 		$fileSystem = $this->_objectManager->create('MagentoFrameworkFilesystem');
    	        $mediaPath = $fileSystem->getDirectoryRead(MagentoFrameworkAppFilesystemDirectoryList::MEDIA)->getAbsolutePath();
    	        if (!file_exists($mediaPath.'imagefolder')) {
    	            mkdir($mediaPath.'imagefolder', 0777, true);
    	        }
    	        $url = $imgurl;
    	        $ch = curl_init($url);
    	        $my_save_dir = $mediaPath.'imagefolder/';
    	        $filename = basename($url);
    	        $complete_save_loc = $my_save_dir . $filename;
    	        $fp = fopen($complete_save_loc, 'wb');
    	        curl_setopt($ch, CURLOPT_FILE, $fp);
    	        curl_setopt($ch, CURLOPT_HEADER, 0);
    	        curl_setopt($ch, CURLOPT_TIMEOUT, 28800);
    	        $return = curl_exec($ch);
    	        curl_close($ch);
    	        $image = $return;
            	return $image;
            }

    Step 2). Assign the images to existing products.

    $product = $this->productFactory->create()->load($proid);
    	$getimgurl = $url;
    	$imagename= basename($getimgurl);
    	$imgpath = $mediaPath.'imagefolder/'.$imagename;
    	if (!file_exists($imgpath)) { //check image already exist in directory
    	    $this->helperData->getProductImage($getimgurl);
    	}
    $product->addImageToMediaGallery($imgpath, array('image', 'small_image', 'thumbnail','media_gallery'), false, false);
    $product->save();

     

    How to Start an eCommerce Store Using the Magento Platform?

    As per the recent statistics, 1.8 billion people across the globe purchased products online that led to $2.8 trillion in sales. And as per the prediction, the figure is likely to hit $4.8 trillion by 2021. These highly impressive statistics are enough for anyone for starting an eCommerce business.

    Magento is one of the brilliant eCommerce platforms that has helped many prestigious brands in their eCommerce journey, which includes giant names like Timex, Land Rover, Ford, and many others.

    Now the question arises How do you launch your Magento eCommerce store?

    • Pick a Striking Domain Name
      The domain name you choose today will be the name your customers remember forever; hence it is incredibly crucial to have an appealing and easy-to-remember domain name for your Magento eCommerce store. A wrong domain can indeed make or break your online business; hence any merchant has to put a considerable amount of effort into picking up a striking domain name.
    • Magento Edition, Installation & Hosting
      Magento has mainly two widely established editions, the first one is Community Edition which is free of cost, and another one is paid, Enterprise Edition, which is also known as Commerce Edition. Due to its cost-effectiveness and well-capable enough to deals with a large number of products, the Community Edition is widely used by a significant number of startups. On the other hand, Enterprise Edition is a paid version that unlocks an additional bundle of features and technical support.
      Each Magento version has some predefined requirements to meet a flawless performance. For example, If you have opted for Magento 2.3 version, then, it’s mandatory to install these requirements,
      1. MySQL 5.6, 5.7
      2. MariaDB 10.0, 10.1, 10.2
      3. Percona 5.7
      4. MySQL NDB Cluster 7.4.*
      5. PHP versions: 7.1.3, 7.2.0
      6. Apache 2.2 or 2.4
      7. Varnish version 4.x or 5.2
      8. Redis version 3.2, 4.0, 5.0
      9. RabbitMQ version 3.7.x
    • Secure the Store by SSL Certificate
      SSL is known as Secure Socket Layer, which is a standard security technology responsible for establishing an encrypted link between the web server and browser. The most significant benefit of having an SSL certificate is that it activates the HTTPS protocol. SSL also helps to boost up organic ranking in search engines such as Google. It also makes sure that the entire data exchange which takes place between website and customer is authentic and reliable.
    • Themes & Extension for Magento Store
      For any merchant to have a successful online store, it is essential to attract more potential customers. And the easiest way to do this is to set up an eye-catching theme that will attract user attention. Which will lead them to extend their sessions on your site. Merchants can avail themselves of tons of magnificent themes from Magento Marketplace, some of them are paid, and some of them are unpaid. Magento Marketplace also offers some great extensions to give better functionality to the Magento eCommerce store.{Image featuring Themes}
      {Image featuring Extensions}It is also advised to the merchants to put a better combination of design, font, and color, which resonates with the business niche. Detailed product description with essential points, transparent map, hassle-free checkout process, and multiple payment methods will save the customers’ shopping time, which will inspire potential customers to come back to your store again and again.
    • Products Migration
      After completion of the design and development, the next thing that comes on the to-do list is adding the products which you want to sell. However easy a task it may sound, but managing the warehouse effectively will become the key to a successful Magento store. The name, type, characteristics, quantity, and price of the product must be precise. This technique will simplify the buying experience of the customer.
    • Conclusion
      Starting your own Magento eCommerce store isn’t a cakewalk. However, to beat the competition and stay ahead in the race and build your vision into a profitable eCommerce store – you need to opt for the right e-commerce tools and find the right people who believe in your vision. We at Mage Monkeys have been doing it ever since and building some fantastic Magento eCommerce stores from scratch to up-gradation of the present store. Drop your words in the contact form and let us help You.

    Setup Multi Store With Multi Domain in Magento 2

    Open index.php file and replace the following code with it.

    Then change domain, website, store or store view code.

    <?php
    /**
     * Application entry point
     *
     * Example - run a particular store or website:
     * --------------------------------------------
     * require __DIR__ . '/app/bootstrap.php';
     * $params = $_SERVER;
     * $params[MagentoStoreModelStoreManager::PARAM_RUN_CODE] = 'website2';
     * $params[MagentoStoreModelStoreManager::PARAM_RUN_TYPE] = 'website';
     * $bootstrap = MagentoFrameworkAppBootstrap::create(BP, $params);
     * /** @var MagentoFrameworkAppHttp $app */
     * $app = $bootstrap->createApplication('MagentoFrameworkAppHttp');
     * $bootstrap->run($app);
     * --------------------------------------------
     *
     * Copyright © 2016 Magento. All rights reserved.
     * See COPYING.txt for license details.
     */
     
    try {
        require __DIR__ . '/app/bootstrap.php';
    } catch (Exception $e) {
        echo <<<HTML
    <div style="font:12px/1.35em arial, helvetica, sans-serif;">
        <div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;">
            <h3 style="margin:0;font-size:1.7em;font-weight:normal;text-transform:none;text-align:left;color:#2f2f2f;">
            Autoload error</h3>
        </div>
        <p>{$e->getMessage()}</p>
    </div>
    HTML;
        exit(1);
    }
    
    $params = $_SERVER;
    $domain2store = array(
    	'ww.xyx.nl'=> array('code'=>'nl','type'=>'store'), 
    	'www.xyz.de'=> array('code'=>'de','type'=>'store'), 
    	'www.xyz.be'=> array('code'=>'be','type'=>'website')
    );
    $params[MagentoStoreModelStoreManager::PARAM_RUN_CODE] = isset($domain2store['code']) ? $domain2store['code'] : 'nl';
    $params[MagentoStoreModelStoreManager::PARAM_RUN_TYPE] = isset($domain2store['type']) ? $store['domain2store'] : 'store';
    $bootstrap = MagentoFrameworkAppBootstrap::create(BP, $params);
    $app = $bootstrap->createApplication('MagentoFrameworkAppHttp');
    $bootstrap->run($app);

     

    Magento 2 Add Custom Validation to Billing Address Field

    By performing below steps one-by-one, we can put any validation in the checkout billing address.
    In this example, we are going to set validation for the telephone field.

    Here validation will be about the maximum and minimum length of telephone Exact ten digits going to get allowed.

    First, you have to create a file in your existing module following to below path,

    appcode[VendorName][ModuleName]etcfrontenddi.xml
    <type name="MagentoCheckoutBlockCheckoutLayoutProcessor">
        <plugin disabled="false" name="checkout_billing_address_layoutProcessor" sortOrder="110" type="[VendorName][ModuleName]PluginBlockCheckoutLayoutProcessor"/>
    </type>

    Then, you have to create another file at a given path,

    appcode[VendorName][ModuleName]PluginBlockCheckoutLayoutProcessor.php
    <?php
    
    namespace [VendorName][ModuleName]PluginBlockCheckout;
    
    class LayoutProcessor {
    
        public function afterProcess(MagentoCheckoutBlockCheckoutLayoutProcessor $subject, array $jsLayout) {
            if (isset($jsLayout['components']['checkout']['children']['steps']['children']['billing-step']['children']
                            ['payment']['children']['payments-list']['children']
                    )) {
    
                foreach ($jsLayout['components']['checkout']['children']['steps']['children']['billing-step']['children']
                ['payment']['children']['payments-list']['children'] as $key => $payment) {
    
                    /* Telephone Billing Address */
                    if (isset($payment['children']['form-fields']['children']['telephone'])) {
                        $jsLayout['components']['checkout']['children']['steps']['children']['billing-step']['children']
                                ['payment']['children']['payments-list']['children'][$key]['children']['form-fields']['children']
                    ['telephone']['validation'] = ['required-entry' => true, 'min_text_length' => 10, 'max_text_length' => 10];
                    }
                }
            }
    
            return $jsLayout;
        }
    
    }

    After doing the above steps you need to run below command:

    php bin/magento cache:flush
    php bin/magento cache:clean

    You can also put validations for other fields. All that you need to do is to change the field name in the form-field section. You can also change default validation error message using .csv in your module.

    How to add a custom column in Shipment grid in Magento 2

    Before following the below steps, you can create the order attribute and store it into the value.

    Step 1: Create module.xml file under app/code/Vendor/Modulename/etc directory and registration.php file under app/code/Vendor/Modulename directory.

    Step 2: Create sales_order_shipment_grid.xml file under app/code/Vendor/Modulename/view/adminhtml/ui_component directory with below code

    <?xml version="1.0" encoding="UTF-8"?>
    <listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
        <columns name="sales_order_shipment_columns">
            <column name="custcolumn" class="VendorModulenameUiComponentListingColumnCustcolumn">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="filter" xsi:type="string">text</item>
                        <item name="label" xsi:type="string" translate="true">Custom Column</item>
                    </item>
                </argument>
            </column>
        </columns>
    </listing>
    

    Step 3: Create Custcolumn.php ui component class file under app/code/Vendor/Modulename/Ui/Component/Listing/Column directory with below code

    <?php
    namespace VendorModulenameUiComponentListingColumn;
     
    use MagentoSalesApiOrderRepositoryInterface;
    use MagentoFrameworkViewElementUiComponentContextInterface;
    use MagentoFrameworkViewElementUiComponentFactory;
    use MagentoUiComponentListingColumnsColumn;
    use MagentoFrameworkApiSearchCriteriaBuilder;
     
    class Custcolumn extends Column
    {
     
        protected $_orderRepository;
        protected $_searchCriteria;
        protected $_customfactory;
     
        public function __construct(
            ContextInterface $context,
            UiComponentFactory $uiComponentFactory,
            OrderRepositoryInterface $orderRepository,
            SearchCriteriaBuilder $criteria,
            MagentoFrameworkAppResourceConnection $resource,
            MagentoSalesModelOrderFactory $orderFactory,
            array $components = [], array $data = [])
        {
            $this->_orderRepository = $orderRepository;
            $this->_searchCriteria  = $criteria;
            $this->resource = $resource;
            $this->orderFactory = $orderFactory;
            parent::__construct($context, $uiComponentFactory, $components, $data);
        }
     
        public function prepareDataSource(array $dataSource)
        {
            if (isset($dataSource['data']['items'])) {
                $connection  = $this->resource->getConnection();
                $tableName = $connection->getTableName('sales_shipment_grid'); 
                foreach ($dataSource['data']['items'] as & $item) {
                    $order = $this->orderFactory->create()->loadByIncrementId($item["order_increment_id"]);
                    if($order->getCustcolumn()){
                        $item['custcolumn'] = $order->getCustcolumn();
                    }
                }
            }
            return $dataSource;
        }
    }