Neu Shopware überverkauf ein anderes Feld zuweisen

BlueEyePhoenix

Gut bekanntes Mitglied
3. Januar 2017
276
23
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 :eek:

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');
        }
    }
}
 

BlueEyePhoenix

Gut bekanntes Mitglied
3. Januar 2017
276
23
Hallo,

konnte es schon lösen mit der hilfe von den Beispielen, anbei das Script was ich angepasst habe.

PHP:
namespace uebervauf\einheit;

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;
use Shopware\Models\Article\Article;

class ProductListener
{
    public function onProductAfterPushAction(ProductAfterPushEvent $event)
    {
        if (strlen($event->getProduct()->getId()->getEndpoint()) == 0) {
            return;
        }

        try {
            foreach ($event->getProduct()->getAttributes() as $attribute) {
                foreach ($attribute->getI18ns() as $i18n) {
                    if ($i18n->getLanguageISO() === LanguageUtil::map(ShopUtil::locale()->getLocale())
                        && $i18n->getName() === 'Attribut') {

                        list($detailId, $productId) = IdConcatenator::unlink($event->getProduct()->getId()->getEndpoint());

                        $detailSW = ShopUtil::entityManager()->find(Detail::class, $detailId);
                        if ($i18n->getValue() !== "0")  {
                            $detailSW->setlaststock(0);
                            ShopUtil::entityManager()->persist($detailSW);
                            ShopUtil::entityManager()->flush($detailSW);
                        }
                        else {  $detailSW->setlaststock(1);

                            ShopUtil::entityManager()->persist($detailSW);
                            ShopUtil::entityManager()->flush($detailSW);
                        };
                        $detailAR = ShopUtil::entityManager()->find(Article::class, $detailId);
                        if ($i18n->getValue() !== "0")  {
                            $detailAR->setlaststock(0);
                            ShopUtil::entityManager()->persist($detailAR);
                            ShopUtil::entityManager()->flush($detailAR);
                        }
                        else {  $detailAR->setlaststock(1);

                            ShopUtil::entityManager()->persist($detailAR);
                            ShopUtil::entityManager()->flush($detailAR);
                        }

                        break;
                    }
                }
            }
        } catch (\Throwable $e) {
            Logger::write(ExceptionFormatter::format($e), Logger::WARNING, 'plugin');
        }
    }
}

Nutzung auf eigene Gefahr. :cool:

Vielen Dank für die Hilfe.
 
Zuletzt bearbeitet:

Immanuel

Gesperrter Benutzer
24. August 2016
1.542
329
Folgendes ist falsch:
PHP:
$detailAR = ShopUtil::entityManager()->find(Article::class, $detailId);
Entweder verwendest du $productId anstelle von $detailId in diesem find() Statement. Oder du holst über $detailSW->getArticle() den dazugehörigen Artikel. $detailSW ist übrigens schon das Detail des Articles. Das was du $detailAr nennst, ist dann eher der $article oder das $product.

Ich bin jetzt hier aber raus. Viel Erfolg!
 
Ähnliche Themen
Titel Forum Antworten Datum
JTL WAWI 1.8.12.2 Shopware 6 / Connector Abgleich Fehler JTL-Wawi 1.8 3
Neu Shopware 5 Bilder werden nicht übertragen nach Update auf Wawi 1.7.15.6 Shopware-Connector 0
Neu JTL <-> Shopware 6 - Maximale Anzahl von Kundengruppen? Shopware-Connector 4
Abkündigung Shopware 5 Connector Shopware-Connector 1
Neu Migration Shopware 5 auf 6 mit JTL-Wawi ohne Datenverlust Shopware-Connector 1
Neu Datenimport über Ameise in JTL für Shopware Shopware-Connector 1
Neu Best Pratices Shopware - JTL - Buchhaltung User helfen Usern - Fragen zu JTL-Wawi 4
Blowfishkey Shopware 5 Einrichtung JTL-Shop5 3
Neu SEO URL der Kategorien wird nicht an Shopware 6 übertragen Shopware-Connector 0
Neu Umstieg von Shopware 5 zu JTL Shop 5 - Ranking behalten Allgemeine Fragen zu JTL-Shop 2
Neu JTL-Wawi mit Shopware/Magnalister User helfen Usern - Fragen zu JTL-Wawi 3
JTL WAWI 1.8.11.1 / JTL CONNECTOR / Shopware 6 JTL-Wawi 1.8 4
Neu Einstellung: "Bilder des Vaterartikels un der folgenden Variationswerte übernehmen" und der Shopware Server "explodiert" Shopware-Connector 11
Neu Label mit Anrede "Keine Angabe", Shopware JTL-ShippingLabels - Fehler und Bugs 1
Neu Shopware 6 Connector = Mangelhaftes Produkt! Shopware-Connector 0
Neu Nutzt jemand Ratepay mit Shopware 6? Shopware-Connector 2
Abbruch bei Abgleich Shopware 6 mit JTL Wawi Shopware-Connector 0
Barcodescanner Fehler mit ein "U" am Ende JTL-Wawi 1.8 0
Neu In Tabelle ein Bild über mehrere Zeilen verteilen in Katalog Vorlage Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Ein Kundenauftrag führt zu Fehlern im Worker "Pfad / Dateiname zu lang" JTL-Wawi - Fehler und Bugs 0
Neu Fehlermeldung "Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt" JTL-Wawi - Fehler und Bugs 2
Neu Amazon Prime - DHL Versandlabel kann nicht gedruckt werden "Ein Prime Versandlabel wurde nicht gekauft, da kein verfügbares gefunden wurde." JTL-ShippingLabels - Fehler und Bugs 0
Kann ich eine email an die Wawi senden durch die dann ein neuer Auftrag generiert wird? (Daten müssen händisch vervollständigt werden...) JTL-Wawi 1.8 2
Gelöst WMS 1.8.11.2 friert beim Starten ein JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 5
Neu jtl wawi Versanddatenexport Originalmeldung: In der Sendung trat mindestens ein harter Fehler auf. Code: 1101 Schnittstellen Import / Export 2
In Bearbeitung Umzug mit einer Kasse auf ein neues Gerät Allgemeine Fragen zu JTL-POS 2
Neu Exportvorlage Facebook: Mehr als ein Bild übergeben? Allgemeine Fragen zu JTL-Shop 0
Neu Woran kann es liegen, dass ein neu erstellter Connector-Verkaufskanal nicht in der Statusliste des Workers vorkommt? Shopify-Connector 2
Neu Wer kann bei uns ein EcoDMS einrichten? Dienstleistung, Jobs und Ähnliches 16
Neu ein email formular auf startseite einbinden Allgemeine Fragen zu JTL-Shop 0
In Bearbeitung Mehrere Karten/Buchnungskonten aber nur ein Karten-Terminal (Ethernet) Allgemeine Fragen zu JTL-POS 4
Angebote ohne Auftrag, die wieder auftauchen und ein Auftrag haben, der sogar versendet wurde. JTL-Wawi 1.8 1

Ähnliche Themen