:::: MENU ::::

Get post data in observer magento 2

This tutorial is about Get post data, in observer Magento 2 .i.e how to get post data, in Checkout success observer in Magento 2 or any save after observer action. And in this tutorial, I will try to explain it briefly and in a simple way.

We can add the request to a class through dependency injection and access it via a singleton.

Use the following code:

protected $_request;

public function __construct(
    \Magento\Framework\App\RequestInterface $request,
) {
    $this->_request = $request;
}

Inside function get post data in the following way:

$this->_request->getParams();

That’s it from this tutorial. I hope it serves the purpose. Since these are learning tutorials, please feel free to drop any suggestions or queries in the comments section. That will definitely be highly appreciated.

Author: Qaisar Satti
Category: Magento 2
Last Modified: February 4, 2019


Magento 2 add column in quote table and order table

This tutorial is about Magento 2 add column in quote table and order table .i.e how to get order and quote column value in Magento 2. And in this tutorial, I will try to explain it briefly and in a simple way.

If you have created a custom column for orders. I found a question and I would use it as a reference here and will share the piece of code as well.

<?php

namespace QaisarSatti\HelloWorld\Setup;

use Magento\Framework\Setup\UpgradeSchemaInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;

class UpgradeSchema implements UpgradeSchemaInterface
{
   
    public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();

        $quote = 'quote';
        $orderTable = 'sales_order';

        $setup->getConnection()
            ->addColumn(
                $setup->getTable($quote),
                'mediabasebestellnummer',
                [
                    'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
                    'length' => 255,
                    'comment' =>'MediabaseNummer'
                ]
            );
        //Order table
        $setup->getConnection()
            ->addColumn(
                $setup->getTable($orderTable),
                'mediabasebestellnummer',
                [
                    'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
                    'length' => 255,
                    'comment' =>'MediabaseNummer'
                ]
            );

        $setup->endSetup();
    }
}

And now you want to get the custom attribute when you have an order. how to do it?. Let us have a look at the ways to achieve it. If you are using the following method

$custom = $order->getCustomAttribute('mediabasebestellnummer');

It may not work properly. There are a couple of ways to do it. We will have a brief look at this tutorial.

First of all, check if the column is created in the sales_order table

Now we can get the values by

$order->getMediabasebestellnummer();

Or

$order->getData('mediabasebestellnummer');

For adding the data

$order->setMediabasebestellnummer('test value')->save();

OR

$order->setData('mediabasebestellnummer','test value')->save();

Or

$data = array('mediabasebestellnummer'=>'test');
$order->setData($data)->save();

I have tried to explain it in a simple way as there are many ways to perform this task.

Furthermore, make sure you have file fieldset.xml in your module to convert data from quote to order.

Following code will do the job for us.

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="urn:magento:framework:DataObject/etc/fieldset.xsd">
    <scope id="global">
        <fieldset id="sales_convert_quote">
            <field name="mediabasebestellnummer">
                <aspect name="to_order" />
            </field>
        </fieldset>
    </scope>
</config>

Also, it is used when you have column in both quote tableand order table.

That’s it from this tutorial. I hope it serves the purpose. Since these are learning tutorials, please feel free to drop any suggestions or queries in the comments section. That will definitely be highly appreciated.

Author: Qaisar Satti
Category: Magento 2
Last Modified: February 4, 2019



Magento 2 Update product attribute value

This article is about Magento 2 – Update product attribute value . Updating product attribute value can be tricky sometimes. In this tutorial i will try to explain it swiftly and in a simple way. There can be various conditions in this matter. Like if someone wants to update the attribute values one by one or as a whole. Here, we are looking t update only one attribute value.

We can set all the values into one object (also we can use set for each attribute) & using set method we can save the product attribute with the help of productRepository or product model.

Furthermore When we use this method, there is a chance to get delays while updating the values like it may take 40 to 50 sec approx for one product . In our case we want to update only one attribute value. To render entire collection & updating the value might will take some ms delay.
So to update only one attribute value, we can do so by using the following code.

Consider the example here.

$item->setWidth(10);

$item->save();

We can use “updateAttributes” method to update Specific Attribute for product instead of updating all the update.

Here we have to pass 3 parameters.

Ex: $productIds , $attrData, $storeId
$objectManager->get(‘Magento\Catalog\Model\Product\Action’)

->updateAttributes( [$item],[‘width’ => 10],  $YourStoreID );

Similarly

$this->action->updateAttributes([$productObj->getId()], [‘Yourattribute_code’ => ‘Yourvalue’], $StoreId);

I am also providing the path for reference, it may vary depending upon your settings.

Magento\Catalog\Model\Product\Action

That’s it from this tutorial. I strongly believe there is always room for improvement.So i am open for any suggestion and feed back. Please feel free to leave hat you are thinking in the comments section below. Cheers.

Author: Qaisar Satti
Category: Magento 2
Last Modified: January 11, 2019


Magento 2 Change theme

This tutorial is about Magento 2 Change theme .i.e how to Change theme and switch your store to default theme in magento 2. I assume your question is,is it possible? the answer is, Yes. It is possible. And in this tutorial i will try to explain it briefly and in a simple way.

So this is quite simple i would say.There is not much of a rocket science in here. Lets see how can we do it. I will try to break it in steps so that it would remain simple and easy to learn.

Above all The default theme in Magento 2 is called Magento Blank. To activate it, follow these steps:

1. Login into your admin panel and navigate to Stores->Settings ->Configuration section .
2. In the General tab press Design.
3. Select Magento Blank among the list of available themes in Design Theme option, press the Save Config button in the top right.
4.Refresh the Magento cache.
5.Check how the new theme appears on the site frontend.

That’s it from this tutorial. I hope it serves the purpose.Since these are learning tutorials,please feel free to drop any suggestions or queries in comments section. That will definitely be highly appreciated.

Author: Qaisar Satti
Category: Magento
Last Modified: January 11, 2019


Use js mixins magento 2

In this tutorial we will discuss Use js mixins magento 2 .i.e how to use js mixins in magento 2.And in this tutorial i will try to explain it briefly and also make it convenient.

Suppose your code does some task before any js script’s function run or you want to extend a function or to modify some data without overwriting js. And you want to know how to do it.Then this tutorial will help you learn and overcome all these problems easily.

First of all you will need to create requirejs-config.js under app/code/QaisarSatti/HelloWorld/view/frontend, like below:

var config = {
    config: {
        mixins: {
            'Magento_Checkout/js/action/set-shipping-information': {
                'QaisarSatti_HelloWorld/js/action/set-shipping-information-mixin': true
            }
        } // this is how js mixin is defined
    }
};
// Here i am extending "Magento_Checkout/js/action/set-shipping-information" this js with our custom js "QaisarSatti_HelloWorld/js/action/set-shipping-information-mixin".

Furthermore create set-shipping-information-mixin.js file under app/code/QaisarSatti/HelloWorld/view/frontend/web/js/action to extend original function. So here i am just using dummy data to shipping address only , Below is the code:

/*jshint browser:true jquery:true*/
/*global alert*/
define([
    'jquery',
    'mage/utils/wrapper',
    'Magento_Checkout/js/model/quote'
], function ($, wrapper, quote) {
    'use strict';
 
    return function (setShippingInformationAction) {
 
        return wrapper.wrap(setShippingInformationAction, function (originalAction) {
            var shippingAddress = quote.shippingAddress();
 
            if (shippingAddress['extension_attributes'] === undefined) {
                shippingAddress['extension_attributes'] = {'customvar':"value1"};
            }
            // you can write here your code according to your requirement
            return originalAction(); // it is returning the flow to original action
        });
    };
});

Now console thequote.shippingAddress() in js to you should see the result:

That’s it from this tutorial. I hope it serves the purpose.Furthermore please feel free to drop any suggestions or queries in comments section. That will definitely be highly appreciated.

Author: Qaisar Satti
Category: Magento 2
Last Modified: January 11, 2019


Magento 2 introduction

This tutorial is about magento 2 introduction.This Magento 2 tutorial cover back-end and front-end development, as well as administration guides to help you get up and running with Magento 2. Magento 2 is the technological continuation of the Magento platform. After a several years of development, Magento 2 shows an impressive advancement in the e-commerce field by bringing some key features and making more efficient resource use of the current generation of Servers. We should look at some benefits and improvements that Magento 2 brings. 

Key improvements and features

  • Increased Speed
  • Increased Security
  • Improved Scaling Potential
  • Simpler and Faster Checkout Process

Since magento has the same architecture.That is magento 2 has the same architecture as of magento.Furthermore for you can have a detail view here: Magento tutorial

Furthermore magento makes improvements time to time to improve the functionality and scalability of magento platorm.And in the process it releases different versions over time.Below is the detail of versions and latest version.

Magento 2 versions and latest version

Magento CE 2.0.0
November 18, 2015
Transformation of Magento Platform. Flexible architecture supporting innovation and fast time to market and enterprise-level scalability and performance

Magento CE 2.0.1
January 20, 2016
Several important functional updates, including official support for PHP 7.0.2

Magento CE 2.0.2

January 29, 2016
Resolved issues of upgrading from Magento 2.0.0 to Magento 2.0.1

Magento CE 2.0.3
March 31, 2016
This version was replaced by version 2.0.4, which was released the next day

Magento CE 2.0.4
April 1, 2016
All of the security enhancements and performance improvements of Magento 2.0.3, in improved packaging

Magento CE 2.0.5
April 28, 2016
Miscellaneous functional fixes

Magento CE 2.0.6

May 17, 2016
Security enhancements as well as several functional fixes and enhancements

Magento CE 2.0.7
May 24, 2016
One functional fix in payment gateway

Magento CE 2.0.8
July 19, 2016
Several functional fixes

Magento CE 2.0.9
August 11, 2016
Several functional fixes

Magento CE 2.0.10
October, 2016
Multiple security and functional enhancements as well as enhancements to the Sales API

Magento CE 2.0.11
December, 2016
Over 70 bug fixes and enhancements

Magento CE 2.0.12
February, 2017
Over 20 functional fixes and enhancements, and one security enhancement

Magento CE 2.0.13
April 17, 2017
Several functional fixes

Magento CE 2.0.14
May 31, 2017
Critical enhancements to the security of your Magento software

Magento CE 2.0.15
June 21, 2017
Support for changes in PayPal’s Instant Payment Notification (IPN) service

Magento CE 2.1.0
June 23, 2016
Numerous functional fixes and enhancements

Magento CE 2.1.1
August 30, 2016
Several functional fixes and enhancements to the deployment of static assets

Magento CE 2.1.2
October 12, 2016
Release includes security enhancements and several functional fixes

Magento CE 2.1.3
December 14, 2016
Release includes many functional enhancements and fixes

Magento CE 2.1.4

February 7, 2016
Numerous functional fixes and enhancements

Magento CE 2.1.5
February 21, 2017
Several functional fixes

Magento CE 2.1.6
April 28, 2017
Performance enhancements, especially for operations that involve the category page and image resizing

Magento CE 2.1.7

May 31, 2017
Release includes critical enhancements to the security

Magento CE 2.2.0 – RC
August 4, 2017
Magento Community Edition 2.2.0 Release Candidate includes significant new features as well as many bug fixes

Magento Open Source 2.1.8
August 9, 2017
Magento Open Source (formerly Community Edition). Includes enhancements to Magento software.

Magento has now released magento 2.3 version. Certainly,it does have some improvements and will equip your store with great new features along with the the improvements for developers as well. Furthermore you can read all the details here : Magento 2.3 features

That’s it from this tutorial. I hope it serves the purpose.Furthermore please feel free to drop any suggestions or queries in comments section. That will definitely be highly appreciated.

Author: Qaisar Satti
Category: Magento 2
Last Modified: January 1, 2019


Pages:1234567...22