Get Source data by source_code using Multi Source Inventory (MSI) Magento 2.

Using Source code, you can get details of the Manage source in the Magento 2 MSI module.

Default Source is the out-of-the-box source in the MSI module.

You can fetch lit of information from the source_code in MSI using SourceRepositoryInterface of Inventory-API module.

Example of retrieving the default source data by source_code equals ‘default’.

<?php
namespace Jesadiya\SourceData\Model;

use Exception;
use Psr\Log\LoggerInterface;
use Magento\InventoryApi\Api\Data\SourceInterface;
use Magento\InventoryApi\Api\SourceRepositoryInterface;

class SourceInfo
{
    /**
     * @var SourceRepositoryInterface
     */
    private $sourceRepository;

    /**
     * @var LoggerInterface
     */
    private $logger;

    public function __construct(
        SourceRepositoryInterface $sourceRepository,
        LoggerInterface $logger
    ) {
        $this->sourceRepository = $sourceRepository;
        $this->logger = $logger;
    }

    /**
     * Get source details
     *
     * @return SourceInterface|null
     */
    public function getSourcesDetails()
    {
        $sourceInfo = null;
        $sourceCode = 'default';
        try {
            $sourceInfo = $this->sourceRepository->get($sourceCode);
        } catch (Exception $exception) {
            $this->logger->error($exception->getMessage());
            $sourceInfo = null;
        }

        return $sourceInfo;
    }
}

You can call a function to fetch information of Source,

$sourceData = $this->getSourcesDetails();
if ($sourceData) {
    foreach ($sourceData as $source) {
        echo $source['name']; // Default
        echo $source['enabled']; // 1
        echo $source['description']; //
        echo $source['latitude']; //  0.000000
        echo $source['longitude']; // 0.000000
        echo $source['postcode']; // 78701
    }
}

Using the Source code of Inventory, you can get the details information of Source in MSI.

You need to use get(‘source_code’) method of $this->sourceRepository Object to fetch specific source details.