BlueEyePhoenix
Gut bekanntes Mitglied
Hatte das so verstanden das "ueberverkauf" mein Attribut den Feldwert ausgibt. Und ich mit diesem Wert dann meine Einstellungen anpassen kann. Hier der abgewandelte Code. DA muss ich wohl noch ein weinig Üben
PHP:
<?php
namespace uberv\verkeinh;
use jtl\Connector\Event\Product\ProductAfterPushEvent;
use jtl\Connector\Shopware\Utilities\IdConcatenator;
use jtl\Connector\Shopware\Utilities\Shop as ShopUtil;
use jtl\Connector\Core\Logger\Logger;
use jtl\Connector\Formatter\ExceptionFormatter;
use jtl\Connector\Core\Utilities\Language as LanguageUtil;
use Shopware\Models\Article\Detail;
class ProductListener
{
public function onProductAfterPushAction(ProductAfterPushEvent $event)
{
try {
foreach ($event->getProduct()->getAttributes() as $attribute) {
foreach ($attribute->getI18ns() as $i18n) {
if ($i18n->getLanguageISO() === LanguageUtil::map(ShopUtil::locale()->getLocale())
&& $i18n->getName() === 'ueberverkauf') {
list($detailId, $productId) = IdConcatenator::unlink($event->getProduct()->getId()->getEndpoint());
$detailSW = ShopUtil::entityManager()->find(Detail::class, $detailId);
if ($detailSW == "0") {
$detailSW->setLaststock(1);
ShopUtil::entityManager()->persist($detailSW);
ShopUtil::entityManager()->flush($detailSW);
}
elseif ($detailSW == "1") {
$detailSW->setLaststock(0);
ShopUtil::entityManager()->persist($detailSW);
ShopUtil::entityManager()->flush($detailSW);
}
break;
}
}
}
} catch (\Throwable $e) {
Logger::write(ExceptionFormatter::format($e), Logger::WARNING, 'plugin');
}
}
}