Google Issues Big Refunds to Advertisers Over Invalid Traffic

The digital advertising space is totally based on trust. It can work effectively only when all participants are good, and when no one attempts to spoof anyone else. But this trust had been shaken by some fraudulent companies that had been selling ad space on some premium sites for which they didn’t have any access to, or on fake versions of original sites, as per the report by Business Insider. (Source: http://www.businessinsider.in/Googles-been-running-a-secret-test-to-detect-bogus-ads-and-its-findings-should-make-the-industry-nervous/articleshow/59699825.cms)

No need to worry about the nitty-gritty of such ad-fraud companies because Google is in the trust restoring mode. Yes, Google is trying to win back the trust of online marketers by issuing large refunds for their ads that ran on sites with fake traffic. This move by Google has been taken to fight against such ad-fraud. Some of these refunds are as large as “hundreds of thousands of dollars,” – as per a report in the Wall Street Journal. (Source: https://www.wsj.com/articles/google-issuing-refunds-to-advertisers-over-fake-traffic-plans-new-safeguard-1503675395). The refunds are being made for ads purchased via company’s automated technology, referred as DoubleClick Bid Manager.

Google is working on ways to offer marketers more transparency in the digital advertising space, plus automatically rebate clients when Google & their ad partners serve ads placed next to a fake traffic, including the ads that don’t load in the right ways, or ads served to bots in place of people. Google’s Director of Product Management for Advertising Scott Spencer tells WSJ that he thinks the hundreds of technology partners Google works with will be supportive of the effort.

As per a conference call with investors (in the month of April), Google CEO Sundar Pichai said:

“As marketers continue to shift to its programmatic ad buying, our DoubleClick platform makes it easy for them to effectively reach the right audiences. We’ve been focusing on making more inventory available to more advertisers, especially premium inventory.”

Moreover, according to a Google spokesperson – “We can’t comment on specific details of ad fraud but the vast majority is filtered in our systems before our advertisers are ever impacted or charged… In our own platforms, we’re working with our exchange partners to remove monetary incentives for spammers and increase transparency for buyers,”

It seems that they refused to declare any final verdict on the details available in the report of the Wall Street Journal, but committed that the refunds were made for ads placed across their partner websites with invalid traffic produced by bots, or automated software modules that simulated to be valid users.

How to Create Configurable Product in Magento 2?

The configurable product is one of the out-of-the-box features of Magento 2. Owing to this useful feature, a store owner can allow customers to adjust the purchase by customizing or selecting the options available, such as size, colors, etc. Moreover, store owners can set different prices on the basis of each such option.

Setting up configurable products in Magento 2 is a long process, but once created successfully, these products can save a store owner’s time in the long run.

In this post we have covered all about the creation of configurable products in Magento 2 to help you grow your online business.

Follow the simple steps mentioned below and you’ll be able to create configurable products in no time:

Add Attribute

1. Let’s first begin with the adding of attribute. Go to your store Admin Panel and navigate to STORES → Product.

Stores Products

2. Now click on Add New Attribute.

Add Product Attributes

3. Enter “Attribute Properties” details under “ATTRIBUTE INFORMATION”. Type “Size” in “Default Label” field box. Choose “Dropdown” for “Catalog Input Type for Store Owner” and opt for “Yes” for “Values Required” field.

New Product Attribute

4. Now is the time to configure a product based on your option selection. Here we’re configuring the product based on “Size” (Xl & XXL). It totally depends upon you to add more via “Add Option”.

Manage Options

5. Now navigate to “Advanced Attribute Properties” section and type “Size” in the “Attribute Code” and choose “Global” from the dropdown of “Scope”. Now, you can handle it in tune with your requirements.

Advanced Attribute

6. Tap the “Storefront Properties” from the left menu of the page under “ATTRIBUTE INFORMATION” and manage it according to your needs.

Stores front properties

7. Look at the top left of the page and click on “Save Attribute” field box.

Save Attributes

Add Attribute Set

1. Click on the “Attribute Set” under “STORES”

Add Attribute Set

2. Tap the “Add Attribute Set”

Attributes Sets

3. Now fill the “Name” of Attribute and tap the “Save” option.

New Attribute Set

4. Now is the time to drag the size from non-allocated attribute to Product Details and tap the “Save” option.

Size

Adding Simple & Configurable Products

1. Click on “Catalog” under “PRODUCTS”

Product Catalog

2. Now expand “Add Product” drop down and select “Simple Product”.

Simple Product

3. Click on “Attribute Set” dropdown and select “size”. Now fill all other required data. Ensure you have selected “Not Visible Individually” by expanding “Visibility” dropdown. Also, choose “size” by clicking on the dropdown of “Color”.

New Product Added

4. Tap the “Save” option on the top left of the page.

Click on Save

5. Now select “Configurable Product” from “Add Product” dropdown.

Configurable Product

6. Opt for “Size” from the dropdown of “Attribute Set” and fill all the essential details.

New Products 2

7. Now proceed to the next section, i.e., Configuration section. “Add Product Manually” is not the default feature of Magento 2, so you need to first begin with “Create Configuration”. Click on it and perform the next steps.

8. As you click on “Create Configuration”, it displays a popup as shown below:

Create Configuration

9. Now, you need to select attributes by marking the checkbox of required attribute that you want to set. However, if there is a need to add a new attribute, you can go for “Create New Attribute” and then “Save Attribute” after finishing with attributes properties. Then you can proceed to that attribute selection by marking the checkbox.

Select Attributes

10. Look at the upper-right corner and click on “Next”.

New Product

11. “Attribute Values” is the next step waiting for you. Now enter the attribute value. You can select each variation of product via marking the checkbox. Even you can also add a new value via “Create New Value” option. It requires you to fill the value of new input and tap the Enter arrow. Perform similarly with each attribute you have pre-selected. Moreover, you can rearrange the order of attributes by just dragging or dropping.

Attribute Values

12. Again, look at the upper-right corner and click on “Next”.

13. Now configure the images, prices and quantity in tune with your requirements. “Images”, “Price” and “Quantity” – each comes with three options as shown below:

Bulk Images & Prices

14. Choose only one option for each “Images”, “Price” and “Quantity” as per your requirement. You can select the same or different setting or even skip the setting for all three options for now.

Note: If you skip the setting for all three options and proceed to the next step, it will create a Virtual product.

15. Again, look at the upper-right corner and tap the “Next”.

16. Now, you will proceed to the next step, i.e., “Summary”

Summary

17. Now again tap the “Next” option locating at the upper-right corner.

18. As you come out of summary section, you will be landing on “Configuration” section again. Here now you can remove such already created products (it depends upon your choice) to go for “Add Products Manually” option. If you want to do so, tap the “Remove Product”. As soon as you remove the product, you will be able to see “Add Products Manually” option.

Remove Product

19. Now, you can tap the “Add Products Manually” option to utilize it.

Add Product Manually

20. Mark the checkbox of simple products that you have added and tap the “Done” option.

simple products

21. Now tap the “Save” option from the top-right corner (Adjacent to “Add Attribute” button) of the page.

Save

22. Open your configuration product front page. Here you can notice the updated result as shown in the following screenshot:

product front page

In case, if you require to customize any things on your Magento 2 based online store, kindly feel free to contact us at info@envisionecommerce.com. Our Magento certified solutions specialists and developers are ready to serve you. Moreover, you can get more details about our Magento 2 services here: https://www.envisionecommerce.com/blog/store/.

What’s New in Laravel 5.5!

Recently, the team Laravel has announced the new series of Laravel 5.5 on its official page. Though, Laravel 5.5 is not yet out, but the documentations are live now.

So here we update you with the 5.5’s powerful features and new exciting changes that will increase security as well as productivity at the same time.

Take a quick look at the new upcoming 5.5 release.

Excel with PHP 7.0+

PHP 7 incorporates speed improvements which will diminish CPU stack significantly. So this is definitely the most important upgradition for those who are using Laravel 5, as it makes things even easier and speeds up database migration with no data loss.

Whoops

Whoops – an error PHP handler framework, used by Laravel 4, was evacuated with the arrival of Laravel 5.0. But, now it is coming back with Laravel 5.5. Whoops actually helps in making the irritating PHP blunders/errors, a little less irritating by changing the way they appear.

# “vendor:publish” Prompt You select a provider or tag

When you run the vendor:publish command in the old version of Laravel, it will publish only migrations, views, configs and other different resources of all vendors. But in 5.5, running the specific command will make easier for you to publish a provider or tag, you want. In fact,

You can also bypass the particular prompt by determining the following command–all’ or ‘–provider’ flag with thepublish`

Email Themes

This new version of Laravel includes the ability to directly indicate a custom theme to Mailable classes, so that you can make a CSS style-sheet like the following:

touch resources/views/vendor/mail/html/themes/batman.css

After that, in your mailable class, indicate this specific filename as ropa perty.

class SendInvoice extends Mailable
{
    protected $theme = 'batman';
    ...
}

Render Mailables to the Browser

Testing your email templates crosswise email clients can be annoying. But, Laravel 5.5 has included the facility to directly show them through your routes and allow them to make instant changes. Make a Mailable like the following:

php artisan make:mail UserWelcome --markdown=emails.user.subscription.canceled

After that, render it by route:

Route::get('/no/way', function () {
    return new App\Mail\UserSubscriptionCanceled();
});

Fresh Migrations

5.5 includes a new Artisan command to the migrate: namespace, which is very much alike to migrate:refresh. This command will drop all tables and relocates them from beginning instead of rolling back your current migrations.

Automatic Package Discovery

In the oldest versions of Laravel, for packages, required to register its service providers as well as including aliases. But in 5.5, it includes the ability to automatically register service providers and include aliases by the package’s composer.json file like the following:

"extra": {
    "laravel": {
        "providers": [
            "The\\Dark\\Knight\\BatmanServiceProvider"
        ],
        "aliases": {
            "Bar": "The\\Dark\\Knight\\Batman"
        }
    }
}

Front-end Presets

As we all know, Laravel incorporates some CSS and JavaScript framework to help quicken coding the bare essential. In spite of the fact that you could expel them and begin over with your own inclinations, and the suggestion was just constrained to the Vue framework.
But, Laravel 5.5 presents three front-end presets, including Bootstrap, Vue, React and an option pick your own. With Vue, you can modify the preset by utilizing the following command:

php artisan preset reacts

You can modify respond in the above-mentioned command to bootstrap, vue or none in view of your inclination.

Improvement in Error Pages Design

There are small changes has been done in the design of the error pages: 404 or 50* in Laravel 5.5. And, some design increments with Flexbox which gets the error message fixated on the page.

Before 5.5:

Before laravel 5.5

In 5.5:

Befor laravel 5.5

Customer Error Reporting

Laravel 5.5 includes bolster for characterizing a report method on any custom exemption. In previous version of Laravel, you required to check in the Handler class’ report method, whether the specific exemption was tossed or not. Before you were performing the things something like the following:

 ...

class Handler extends ExceptionHandler
{
    ...

    public function report(Exception $exception)
    {
        if ($exception instanceof CustomException) {
            // Send email
        }

        parent::report($exception);
    }
}

However, with 5.5, you can remove this and enlist the report method in your custom exemption class. Laravel verifies whether there is a report method in your exemption class, if it does: calls it.

Streamlined Request Validation

To Request feature, Laravel 5.5 accompanies 2 changes.

1) You would now be able to straightforwardly call the validate method on your Request instance. So that you can call the validator on your Request instance, instead of utilizing the controller validator. You never again need to pass the request as the first argument to the validator. See the example below:

...

public function store()
{
    request()->validate([
        'title' => 'required',
        'body' => 'required'
    ]);

    return Post::create(request(['title', 'body']));
}

The second alteration you can make is that the validator restores the request information which you can store in a variable and pass on to the make technique for the model.

...

public function store()
{
    $post = request()->validate([
        'title' => 'required',
        'body' => 'required'
    ]);

    // $data = request()->only('title', 'body');

    return Post::create($post);
}

You should be cautious with this since the information returned by the validator will just contain the fields characterized in the rules. This includes a few security, however you can lose information if a few fields were not characterized rules for. To stay away from this trap, you can include the field with a void lead like the following:

public function store()
{
    $post = request()->validate([
        'title' => 'required',
        'body' => 'required',
        'fieldWithNoRules' => '',
        'andAnotherOne' => ''
    ]);

    // $data = request()->only('title', 'body');

    return Post::create($post);
}

Exception Helper Functions

throw_if and throw_unless are two new helper functions in Laravel 5.5 that help you do exactly or throw exceptions more elegantly. However, if you throw an exception, depend on a condition then these may enable you to diminish a contingent block to a solitary line. They both acknowledge 3 arguments with the 3rd being optional:

  • Boolean

 

  • Exception Class

 

3) An Exception message passed, if you didn’t pass with the instantiation of the exception in the 2nd argument. If the boolean is positive throw_if throws the exception and if the boolean is negative throw_unless throws the exception. See the examples below:

/ For `throw_if:

$foo = true;
throw_if($foo, new BarException('Foo is true'));
// or
throw_if($foo, BarException::class, 'Foo is true');

// For `throw_unless:

$phoo = false;
throw_unless($phoo, new BazException('Phoo is false'));
// or
throw_unless($phoo, BazException::class, 'Phoo is false');

Custom Validations Rules (CVR)

Though nothing is new with custom validation rule feature, but Laravel 5.5 facilitate you to handle the validation. To characterize a specific feature CVR, you have to make a class with two strategies, such as ‘passes’ and ‘message’.
However, you can put this class anywhere in the App\Rules namespace. The passes strategy acknowledges 2 contentions, such as ‘attribute’ and ‘value’, which you can utilize to confirm the field.

<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class CustomRule implements Rule
{   
    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        // must return true or false for the validation to pass or fail
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        // return a string here for the failing condition
    }
}

Your CVR should actualize the Laravel’s Illuminate\Contracts\Validation\Rule contract.

You can utilize this CVR anywhere in the controller validator or in a form request class or the validator from the Request instance. If you’re utilizing a custom rule, you cannot pass a string with rules isolated by a comma. You have to pass each rule as a solitary component assembled in an exhibit the following way:

$request->validate([
    'someField' => [
        'required', 'min:4', new CustomRule()
    ]
]);

Model Factory Generators

This new version of Laravel facilitates you to easily generate model factories with a brand new Artisan command known as make:factory. See the example below:

php artisan make:factory PostFactory

This will create a new file in the database/factories folder known as PostFactory.php. Not only this, it also allows to generate a factory while creating a model

php artisan make:model Post -f

In fact, You can also pass the flag like -c to include a controller and -m to include a migration, as it will help in rapidly throwing together an asset.

This is all about the new series of Laravel 5.5. Now we hope this guide or above mentioned 5.5 enhancements will get you prepare for the upcoming goodness.

Happy Coding!

Magento Open Source 2.1.8 Release Notes

Recently, Magento Open Source (formerly Community Edition) 2.1.8 has official released! This new release contains more than hundred security enhancements and functional fixes, including

• Several enhancements to deployment and optimization of static content

• Improve Elasticsearch and indexing performance of large catalogs,

• Enhancements to cache tuning and URL re-writes

• Reduce memory consumption, and optimize the performance of your Magento software

• Quicker deployments for multi-language websites

Not only this, below we have listed the fixed issues and enhancements of Magento 2.1.8 which has been submitted by the community, in detail.

Catalog:

1. Previously, you could only make attributes, however, couldn’t save the image. But now you would be able to make a custom attribute for a category that effectively uploads/saves a custom image.

2. Unexpectedly, the prices you dole out to custom options will never again change.

3. The Category page shows the right aggregate of items.

4. Previously, when you deleted/removed an image in admin, Magento has also deleted it from the server. But now once you delete/remove the image in admin, Magento will no longer delete it on the server.

5. Previously, Magento displayed the category listing page which demonstrated the default store view price and the prices from other store views. But now Magento only shows that product price for the store view level.

6. Previously, you could only modify the scope value of category_ids to the Store. But, now the product attributes category_ids have just Global scope.

7. Previously, when you set an SKU mask of product to empty, Magento experienced issues stacking the Product Add page. But, now you would be able to effectively set a product SKU mask to empty.

8. You would be able to make a blank attribute option utilizing the drop-down info on items that don’t need an attribute.

General:

1. Previously, when starting reindexing through System > Index management, it failed. But, now Reindexing will no longer flop due to mmap memory allocation problems while reindexing numerous customers.

2. Previously, the thumbnail images were not uploaded by Magento. But now it effectively uploads the thumbnail images for email logos that are utilized in transactional emails.

3. Now Magento also supports negative esteems in Quantity field for an item. GitHub-7401

4. Previously, Magento utilized the incorrect address template for order e-mails. But, now it utilizes the address template of the place order from the store view level (exactly like order confirmation email works).

5. It updates UK mobile number validation.

6. Previously, cart price rules were not applied throughout the checkout process, as discounts already set in it. But, now cart price rules can be applied as expected, to payment method conditions.

7. Previously, the “Uses per Coupon” restrict didn’t work for auto-generated coupons. But, now you can apply a coupon code twice.

8. Previously, the widget could be created effectively, but UTF-8 special characters type was broken. However, now this Magento new release support Widgets as well as acknowledge UTF-8 special characters as input parameters.

9. Previously, when you included fresh pages in the CMS hierarchy, Magento didn’t demonstrate the particular pages’ links, until you removed/deleted the URL re-writes. But, now Magento will show links after you including pages in the CMS hierarchy, without even deleting the URL rewrite.

10. Previously, when you applied a filter utilizing Catalog > Product, Magento didn’t reload product detail properly. But, now Magento front-end scope filters work fantastically amazing.

11. Without error, you would now be able to upload ‘.apng’ as well as ‘.ico’ images as fav icons.

Checkout:

1) Previously, when you listed a new delivery address during checkout, Magento didn’t allow you place an order. But now you can successfully finish your order after listing a new delivery address during checkout.

2) Once the checkout page gets refreshed, Shipping method radio buttons will no longer disable. Community fixes GitHub-7497 and GitHub-9485 together!

3) When you proceed the checkout step, Magento will highlight the missing details in the red fields.

Configurable products:

1) If the SKU is an integer, Magento will effectively display simple products, configurable products, and their attribute as well as visibility values after import. GitHub-5547

2) If no values are indicated for particular store view, magento will provide swatch input to the Admin Scope, and the attribute fall back component return to the default option value.

3) Catalog and Product pages’ images can replace the color swatches.

Import/Export:

1) Product URL keys (for SKUs) are now auto-generated during the import.

2) An advanced pricing data’s import speed is improved now.

3) Previously, Magento was not maintained the super attribute ordering of configurable products, after import or export. But, now after export or import, it has successfully kept up the ordering of super attributes. GitHub-6079

Installation and Deployment:

1) Whether content has been added secure or non secure URLs, Static content deployment will create secure content only now.

2) After executing a split database, Magento will move the sequence_* table to the right database.

3) When utilizing port 81, Nginx will redirect to the setup page.

Order management:

1) It enhances the page loading speed or performance while adding the various products on the order page.

2) Only customers with consent can see a store and process the orders placed on it.

3) If you set ‘Use Secure URLs’ in Admin setting to ‘Yes’, Magento will never ever create wrong URLs in the site map. GitHub-8644

Payment methods:

1) It allows you to run payment transactions in various currencies rather than the currency that the authorization utilizes.

2) When you view an order from the Magento Admin, it will display the payment detail.

3) Now PayPal Express payment method will never fizzle, if enough product stock covers your order. GitHub-6296

Performance:

1) It improves the performance of mass actions which result, speedy response time and lessened memory utilization.

2) It also enhances the checkout speed by expelling unused Widget JS, Widget Configuration, and regions based on your stores configuration to decrease the load of asset on checkout pages. Community fixes GitHub-4868, GitHub-6997, GitHub-9364 together.

3) Enhance the algorithm to control URL rewrites on the Category Save page.

Quotes:

It now clearly defines the attributes of extension for a quote billing address. Community fixes GitHub-9646.

Reports:

1) The site column in Customer Segment report contains only right data.

2) You would now be able to effectively export the Low Stock report. Community fixes GitHub-9428.

3) Modify the errors from critical to info in var/log/system.log. Community Fixes GitHub-5627.

Sample data:

If auto_increment_increment set to ‘3’ in the options file, you would be able to effectively install Magento with sample data.

Search:

1) If there is 100 plus searchable attributes or user-defined price attributes marked as a searchable, then Elasticsearch never throw an error.

2) Now sorting configurable items by price is working correctly. GitHub-4778

3) If product option is out-of-stock, then the particular products no longer appear in layered navigation.

Shipping methods:

1) Magento now display applicable flat-rate USPS box methods during checkout. GitHub-6798

2) Allow you apply free shipping for the specific shipping method to the Admin order creation page.

Tax:

It helps you calculate the total sum of taxs and orders correctly, when a discount is utilized for prices.

Note: This is not a legitimate tax configuration and can produce rounding errors.

Web API

1) Allow you use REST to effectively update user detail without deleting/removing default shipping as well as billing address info.

2) You can now add video to a product description using REST. GitHub-7153

This is all about Magento 2.1.8. Though, if you need any help with this enhancement update or having any queries, our Magento Certified Developers are here for you!

They already installed 80+ Magento security patches and are experienced enough to make sure your store security.

Now please feel free to contact us at sales@envisionecommerce.com or connect with our Magento services to do it fast & safe for you.

 

For more information on this, please visit: http://devdocs.magento.com/guides/v2.1/release-notes/ReleaseNotes2.1.8CE.html

How to improve Performance for Datatables in Laravel?

Datatable is a powerful and an effective solution for creating table listings and adding interactive functionalities for it. It provides all the functionalities like pagination, searching, sorting out of the box with such an ease that one need not do any kind of tough work to get them work as needed.

But to make it work in the most effective and efficient way, there is need to make some decisions regarding its use. No doubt, It is able to handle lakhs of records really smoothly but wrong way of using or ill-way of using it might turn out to be problematic instead of actually being a solution.

This post will help you people to analyse your problem and then choose the best way to get this really helpful and powerful solution implemented in your application.

Analysing the Requirement

While being into web development, many developers like me need to show the data in tabular form and then provide some actions over them so as to manipulate the data row-by-row (like add, edit or delete) or implement some other operations like sorting and searching. The best solution in terms of ease and speed is Datatables. It works like charm as far as the number of records are few thousands, but as the number grows say above 20,000 or so, the problem starts.

So a page with around more than 20,000 records was taking a lot of time(say, around 1 minute, which is actually really long in consideration to today’s fast generation) even after making use of Datatables with the simplest configuration.

I am sure many of the developers must have faced the same problem and must have spent a lot of hours to find the correct solution at one place.

Data tables usage approaches

After struggling at various forums and going through many discussions about it , I came up with 2 solutions to it both following different approaches; first one being on Client side.

Client side

Initially the approach that was being used was on the data that was being fetched in the controller itself and was passed to the view further and then was shown and manipulated there as required. Lets just make steps to to make it simple and comprehensive:

● Fetch data in controller

● Manipulate data in controller itself to show it as required in view

● After loading all the data, datatables paginate the data in view

Now, the issue with this approach was that it took really long to load the page as on page load all the data that was around 20 thousand records were fetched that further degraded the speed. And therefore led to frustrated user experience.

The Code snippet is as follows:

Controller function to call view initially is as below-

Controller function

Code snippet of function called on ajax is as follows:

Code snippet

The view snippets should be like as given below:

view snippets

The datatable configuration on this page is:

datatable configuration

The Pros of this approach is that, the time for operations like searching, sorting and pagination is noticeably small which made these really fast for users.

The Cons for it is that it takes really long to load the page. No doubt, this approach decreased the load time to good level but was still very slow considering user satisfaction. So, I after doing the needful R&D, the other solution we moved on to was Server Side solution.

The time for request can be seen in the picture given below:

time for request

2. Server side

This Solution was really effective because it restricted all the manipulations and operations to controller and view just loaded the HTML. Moreover, the data pagination was implemented on server side which further reduced the overall execution time.

Just to make comparison with the above mentioned approach, the steps for this approach are as follows:

● Fetch data in controller

● Manipulate data and paginate the data in controller

● Return data plus some meta-data like total records and records filtered count.

Now the ajax request is specified in datatables to get the data of the table. Moreover, every operation such as searching, pagination, and sorting is done on server side with appropriate ajax request.

The Controller function to call view remains same as in the former case.

The only change exists in method called via ajax and datatable configuration as below:

ajax and datatable configuration

(Tip: To show the proper page numbers and allow paging work properly it is very important to send the recordsTotal, recordsFiltered data)

And the Datatable configuration is below:

Datatable configuration

The Pros of this approach is that the total execution time is equally divided among the server side operations and client side operations, thereby, reducing the waiting time to load the page.

The Cons of this approach as such is nothing except that now the operations that were given by datatables out of the box, now needs to be coded on the server side.

The Given below image will show the drastic difference (from 27.53s to 2.11s only) this approach made to the request time:

drastic difference

Which one to Choose?

Both the approaches are having their own advantages and disadvantages, but depending upon the scenario we can choose one to follow, so that we could eliminate any disadvantages.

From the above discussion, it can be easily analyzed that the first approach is really efficient when the number of records to be viewed are less than around 15000 records whereas the second one is applicable when the data set to be operated is very large in size, let’s say, above 20000 thousand.

About Author

The author is a Web Developer at Envision Ecommerce with Experience in Laravel and Passionate about learning emerging frontend technologies like jquery, angularjs.

One Step Checkout Magento 2 Extension – Rolled Out and Available!

Today again we have come up with a new dazzling eCommerce product launch “One Step Checkout” – a second to none all-in-one tool for store owners to optimize and simplify their complex checkout process. It is a Magento 2 extension that helps store owners to cut down multiple checkout steps to only one step. Thus, it reduces the hassle of superfluous back and forth checkout motions for customers. Not only it improves customers’ online shopping experience, but also results in lower cart abandonment rate and hence it boosts the conversion rate of an online store.

One Step Checkout extension is Outfitted with the Following Features:

• Easy to enable/disable via backend

Easy to Manage Backend

• Allows customers to do commenting during checkout

Comment Section for Customers

• Offers coupon code option during checkout

Coupon Code Option During Checkout

• Allows to customize its checkout page title

Customize Checkout Page Title

• Optimized & simplified one step checkout page

one step checkout page

• Default payment & shipping method setting options

Default Payment & Shipping Method

• Features a Google address validator

Google address validator

• Out-of-the-box compatibility with almost 100% payment & shipping methods

• 50% faster checkout process compared to Magento’s default checkout

• Compatibility with all Latest Magento 2 versions & much more.

Reduce checkout time up to 75%! Increase Sales and Revenue!

Click To Tweet

Get your extension here

add to cart