I writing a plugin to add condition into beforeLoad function of product collection. I set local storage example js to set local storage:
if (typeof(Storage) !== "undefined") {
// Store
localStorage.setItem("inventory", "HAN");
// Retrieve
document.getElementById("inventory").innerHTML = localStorage.getItem("inventory");
}
In the magento plugin I want to get inventory value 'HAN' from local storage to use in php class. I wrote the code as below but it can't get inventory in local storage:
public function beforeLoad(\Magento\Catalog\Model\ResourceModel\Product\Collection $subject, $printQuery = false, $logQuery = false)
{
$inventory = "<script>document.write(parseInt(Object.keys(JSON.parse(window.localStorage.getItem('inventory')))))</script>";
$test = "<script>document.write(localStorage.getItem('inventory'));</script>";
$joinCondition[] = "e.sku = isi.sku";
$joinCondition[] = "isi.source_code = '".$inventory."'";
$joinCondition = implode(' AND ', $joinCondition);
//var_dump($requestParams);
if (!$subject->isLoaded()) {
// you can do your customzation/custom logic with $subject object
//addFieldToFilter('sku', 'MG-854693')
$subject->getSelect()->join(
[ 'isi' => $subject->getTable('inventory_source_item') ],
$joinCondition,
[]
);
}
return [$printQuery, $logQuery];
}
}
Please help me, How to get inventory value in php class?
Thank you so much, BienHV