In this tutorial, we will see how to create a custom root script in our Magento 2 and use it to perform Magento 2 specific operations.
For this create a file inside the Magento root directory with some unique name based on the activity you are going to perform, suppose you want to get a customer’s email by id then name it like getCustomerEmailById.php
You can use Object Manager in the custom script to get objects of specific classes.
Here is an example of a custom root script, which is used to fetch customer email from a given customer ID.
Example :
<?php
//to display errors
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ini_set('memory_limit', '5G');
error_reporting(E_ALL);
//use Magento\Framework\App\Bootstrap;
use Magento\Framework\App\Bootstrap;
require 'app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
// Instance of object manager
$objectManager = $bootstrap->getObjectManager();
// Set the state
$state = $objectManager->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');
/* Example to get customer by ID */
$id = 1; //customer id
$customerRepository = $objectManager->get('Magento\Customer\Api\CustomerRepositoryInterface');
$customer = $customerRepository->getById($id);
if ($customer) {
echo "Customer Email : ".$customer->getEmail();
} else {
echo "customer doesn't exists!";
}
After creating this file, Now you can call it using PHP in the terminal by specifying the file name as below.
php getCustomerEmailById.php
It will print customer email if exists.
Leave a Comment