|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / Bss / AdminEmailNotification / Observer / |
Filename | /home/dev2.destoffenstraat.com/app/code/Bss/AdminEmailNotification/Observer/SaveAfterObserver.php |
Size | 4.09 kb |
Permission | rw-rw-r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 03-Feb-2025 10:13 |
Last accessed | 22-Aug-2025 02:07 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_AdminEmailNotification
* @author W3ctrl Services <dev@w3ctrl.com>
* @copyright (c) W3ctrl 2025
* @license MIT - http://opensource.org/licenses/MIT
*/
namespace Bss\AdminEmailNotification\Observer;
use Bss\AdminEmailNotification\Helper\Data;
use Bss\AdminEmailNotification\Helper\Email;
use Magento\CatalogInventory\Api\StockRegistryInterface;
use Magento\Framework\Event\ObserverInterface;
use Magento\Catalog\Api\ProductRepositoryInterface;
/**
* Class SaveAfterObserver
*
* @package Bss\AdminEmailNotification\Observer
*/
class SaveAfterObserver implements ObserverInterface
{
/**
* @var Data
*/
protected $helperData;
/**
* @var Email
*/
protected $helperEmail;
/**
* @var StockRegistryInterface
*/
protected $stockRegistry;
protected $productRepository;
/**
* @var \Magento\Framework\Stdlib\DateTime\DateTime $date
*/
protected $date;
/**
* SaveAfterObserver constructor.
*
* @param Data $helperData
* @param Email $helperEmail
* @param StockRegistryInterface $stockRegistry
* @param \Magento\Framework\Stdlib\DateTime\DateTime $date
*/
public function __construct(
Data $helperData,
Email $helperEmail,
StockRegistryInterface $stockRegistry,
\Magento\Framework\Stdlib\DateTime\DateTime $date,
ProductRepositoryInterface $productRepository
) {
$this->helperData = $helperData;
$this->helperEmail = $helperEmail;
$this->stockRegistry = $stockRegistry;
$this->date = $date;
$this->productRepository = $productRepository;
}
/**
* Send Email When Low Stock
*
* @param \Magento\Framework\Event\Observer $observer
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$product = $observer->getEvent()->getProduct();
$currentTime = $this->date->gmtDate();
$createAt = $product->getCreatedAt();
$productInfo = [];
$enableStockEmail = $this->helperData->isEnableStockQtyEmail();
if ($enableStockEmail && $currentTime != $createAt && $this->helperData->getStockReceiver()) {
$stockQtyEmail = $this->helperData->getQtyStock();
$receivers = $this->helperData->getStockReceiver();
$receivers = str_replace(' ', '', $receivers);
$receivers = (explode(',', $receivers));
$emailTemplate = $this->helperData->getStockTemplate();
$productSku = $product->getSku();
$productData = $this->productRepository->get($productSku);
$productName = $product->getName();
$productId = $productData->getId();
$stockItem = $this->stockRegistry->getStockItemBySku($productSku);
$stockQtyAfter = $stockItem->getQty();
$productStock2 = $this->stockRegistry->getStockItem($productData->getId());
$productQty2 = $productStock2->getQty();
$productType = $product->getTypeId();
if ($productType == "simple" || $productType == "virtual") {
if ($stockQtyAfter <= $stockQtyEmail) {
$productInfo[] = ['productid' => (int) $productId,
'name' => $productName,
'sku' => $productSku,
'qty' => (float)$productQty2
];
$templateVar = [
'items' => $productInfo,
];
$this->helperEmail->sendEmail($receivers, $emailTemplate, $templateVar);
}
}
}
}
}
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_AdminEmailNotification
* @author W3ctrl Services <dev@w3ctrl.com>
* @copyright (c) W3ctrl 2025
* @license MIT - http://opensource.org/licenses/MIT
*/
namespace Bss\AdminEmailNotification\Observer;
use Bss\AdminEmailNotification\Helper\Data;
use Bss\AdminEmailNotification\Helper\Email;
use Magento\CatalogInventory\Api\StockRegistryInterface;
use Magento\Framework\Event\ObserverInterface;
use Magento\Catalog\Api\ProductRepositoryInterface;
/**
* Class SaveAfterObserver
*
* @package Bss\AdminEmailNotification\Observer
*/
class SaveAfterObserver implements ObserverInterface
{
/**
* @var Data
*/
protected $helperData;
/**
* @var Email
*/
protected $helperEmail;
/**
* @var StockRegistryInterface
*/
protected $stockRegistry;
protected $productRepository;
/**
* @var \Magento\Framework\Stdlib\DateTime\DateTime $date
*/
protected $date;
/**
* SaveAfterObserver constructor.
*
* @param Data $helperData
* @param Email $helperEmail
* @param StockRegistryInterface $stockRegistry
* @param \Magento\Framework\Stdlib\DateTime\DateTime $date
*/
public function __construct(
Data $helperData,
Email $helperEmail,
StockRegistryInterface $stockRegistry,
\Magento\Framework\Stdlib\DateTime\DateTime $date,
ProductRepositoryInterface $productRepository
) {
$this->helperData = $helperData;
$this->helperEmail = $helperEmail;
$this->stockRegistry = $stockRegistry;
$this->date = $date;
$this->productRepository = $productRepository;
}
/**
* Send Email When Low Stock
*
* @param \Magento\Framework\Event\Observer $observer
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$product = $observer->getEvent()->getProduct();
$currentTime = $this->date->gmtDate();
$createAt = $product->getCreatedAt();
$productInfo = [];
$enableStockEmail = $this->helperData->isEnableStockQtyEmail();
if ($enableStockEmail && $currentTime != $createAt && $this->helperData->getStockReceiver()) {
$stockQtyEmail = $this->helperData->getQtyStock();
$receivers = $this->helperData->getStockReceiver();
$receivers = str_replace(' ', '', $receivers);
$receivers = (explode(',', $receivers));
$emailTemplate = $this->helperData->getStockTemplate();
$productSku = $product->getSku();
$productData = $this->productRepository->get($productSku);
$productName = $product->getName();
$productId = $productData->getId();
$stockItem = $this->stockRegistry->getStockItemBySku($productSku);
$stockQtyAfter = $stockItem->getQty();
$productStock2 = $this->stockRegistry->getStockItem($productData->getId());
$productQty2 = $productStock2->getQty();
$productType = $product->getTypeId();
if ($productType == "simple" || $productType == "virtual") {
if ($stockQtyAfter <= $stockQtyEmail) {
$productInfo[] = ['productid' => (int) $productId,
'name' => $productName,
'sku' => $productSku,
'qty' => (float)$productQty2
];
$templateVar = [
'items' => $productInfo,
];
$this->helperEmail->sendEmail($receivers, $emailTemplate, $templateVar);
}
}
}
}
}