Retrieve Masked id (guest cart hash) from the cart id in Magento 2, You required the cart quote id.
masked_id is stored in the quote_id_mask table, it’s the randomly generated string for the guest customer quote in Magento 2.
You can retrieve masked id string by using an interface,
Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface
<?php
namespace Jesadiya\QuoteId\Model;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Framework\Exception\LocalizedException;
use Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface;
class MaskedHash
{
/**
* @var QuoteIdToMaskedQuoteIdInterface
*/
private $quoteIdToMaskedQuoteId;
public function __construct(
QuoteIdToMaskedQuoteIdInterface $quoteIdToMaskedQuoteId
) {
$this->quoteIdToMaskedQuoteId = $quoteIdToMaskedQuoteId;
}
/**
* get Masked id by Quote Id
*
* @return string|null
* @throws LocalizedException
*/
public function getQuoteMaskId($quoteId)
{
$maskedId = null;
try {
$maskedId = $this->quoteIdToMaskedQuoteId->execute($quoteId);
} catch (NoSuchEntityException $exception) {
throw new LocalizedException(__('Current user does not have an active cart.'));
}
return $maskedId;
}
}
Call method,
$quoteId = 1; echo $maskedId = $this->getQuoteMaskId($quoteId);
If cart id has available masked id it will return the masked hash string as a result.
On Error,
The cart has no masked hash, It will throw an error, the current user does not have an active cart.
Output
String
