Neu Shopware überverkauf ein anderes Feld zuweisen

  • Hinweis: Am 25.02.2025 zwischen 21:30 u. 22:30 Uhr - Einschränkungen beim Login und Erreichen folgender Dienste: FFN, Kundencenter, Admin, JTL-Shop, JTL-Wawi, Lizenzserver, ISI Gateway, Vouchers, Kassensysteme, Plan&Produce, Versand. Grund dafür ist ein Major Upgrade des OAuth-Dienstes. Vielen Dank für euer Verständnis!

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
Onlineshop Suchbegriffe Such-Schlagwörter mit Shopware 6 JTL-Wawi 1.9 0
Neu Shopware 6 Connector meldet Auth Fehler Shopware-Connector 2
Neu Merkmale/Artikel werden nicht mehr Abgeglichen nach Shopware Update 6.4 -> 6.5 Shopware-Connector 0
Neu Shopware-Kunden nach Import automatisch im JTL-Shop als registriert markieren Umstieg auf JTL-Shop 7
Neu shopware connector korrekte Artikelbezeichnung Shopware-Connector 6
Neu Bestand QuickSync funktioniert nicht Shopware 6 Shopware-Connector 1
Neu Bestandsabgleich Shopware 6 funktioniert nicht mehr Shopware-Connector 5
Neu Zeitraum Testphase Connector Shopware 6 (SaaS) Shopware-Connector 0
Neu JTL Connector Error: 20 - Invalid shop url. https://meineseite.com does not point to a shopware 6 instance Shopware-Connector 2
Neu Lizenkosten Shopware 6 Plugin ? Shopware-Connector 7
Neu Connector zu Shopware 6 streikt Shopware-Connector 0
Neu Shopware 5 mit JTL-Version 1.9.6.3 oder höher. Gibt es Probleme? Shopware-Connector 6
Neu Neues Zusatzfeld-Set für Shopware 6 in JTL erstellen (nicht nur custom_jtl) Shopware-Connector 0
Neu Shopware 6 System.Exception: Exception - kein Abgleich möglich Shopware-Connector 2
Neu Überverkauf ebay = erlaubt, - ebay Angebot wird aber nicht gestartet - Hilfe eBay-Anbindung - Ideen, Lob und Kritik 0
WAWI bzw. Shop-Kategorien nach Datum ein- bzw. Auszublenden JTL-Wawi 1.9 0
Neu Alle Artikel eines WaWi Standardlagers komplett in ein neu angelegtes WMS Lager umlagern User helfen Usern - Fragen zu JTL-Wawi 2
In Diskussion Wie lässt sich ein Freiposition im Auftrag per Workflow löschen? JTL-Workflows - Fehler und Bugs 4
Neu Workflow : Bei Artikel die ein Erscheinungsdatum haben Denn Auftrag Farblich markieren Arbeitsabläufe in JTL-Wawi 7
Neu Beim Scannen von Artikeln erscheint ein Auswahlfenster Artikel Auswählen JTL-POS - Fehler und Bugs 3
Neu Der Amazon Bestand wird nicht übernommen/gespeichert. Worker setzt den vollen Lagerbestand wieder ein. JTL-Wawi - Fehler und Bugs 0
Seit Update auf 1.9.6.5 Fehler bei Bestellabschluss, aber Bestellung geht ein JTL-Wawi 1.9 7
Gelöst verschiedene Größen für ein Artikel Allgemeine Fragen zu JTL-POS 5
Neu ein Auftrag mehrere Rechnungen am Packtisch ausdrucken Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Bestände eines Artikels, die mindestens ein MHD von x Tagen aufweisen Eigene Übersichten in der JTL-Wawi 5
Neu Neues Lager, Artikel sind angelegt, Bestände auf 0, wie pflege ich jetzt die Bestände korrekt ein ? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Aufträge: Wir wünschen uns ein drittes, internes Anmerkungsfeld JTL-Wawi - Ideen, Lob und Kritik 6
Hat sich erledigt. Kann ein Mod diesen Post löschen? JTL-Wawi 1.9 0
Neu Wie kann ich ein "eigenes Feld" oder Artikelattribut im Shop sichtbar machen? Allgemeine Fragen zu JTL-Shop 0
Neu Über Kurzbeschreibung hätte ich gerne ein Attribut stehen Templates für JTL-Shop 1
GPSR - Warnhinweise, Sicherheitsinformationen, wo fügt ihr die ein? JTL-Wawi 1.9 23

Ähnliche Themen