Kleines ChatGPT Experiment

Wir kaufen Videospiele in unserem Laden an und ich hätte gern das diese Ankäufe direkt nach dem einbuchen bis 6 Uhr des folge Tages in einer Kategorie Heute angekauft landen und dann halt aus dieser wieder gelöscht werden.

Ich habe eine Weile mit ChatGPT darüber diskutiert und er hat mir folgendes ausgespuckt:

<?php

// Shopware Bootstrap laden
require_once 'pfad/zu/shopware/bootstrap.php';

// Shopware-Kategorien und -Artikel-Repositorys laden
$categoryRepository = Shopware()->Models()->getRepository('Shopware\Models\Category\Category');
$articleRepository = Shopware()->Models()->getRepository('Shopware\Models\Article\Article');

// ID der Kategorie, aus der die Artikel entfernt werden sollen
$kategorieId = 123;

// Aktuelles Datum und Zeit
$jetzt = new DateTime();

// Datum und Zeit für die nächste Aktualisierung (6 Uhr des Folgetages)
$nächsteAktualisierung = clone $jetzt;
$nächsteAktualisierung->setTime(6, 0, 0);
$nächsteAktualisierung->modify('+1 day');

// Wenn es Zeit für die Aktualisierung ist
if ($jetzt >= $nächsteAktualisierung) {
    // Kategorie laden
    $kategorie = $categoryRepository->find($kategorieId);

    if ($kategorie) {
        // Alle Artikel der Kategorie laden
        $artikel = $kategorie->getArticles();

        // Durch jeden Artikel iterieren
        foreach ($artikel as $artikel) {
            // Überprüfen, ob der Artikel im Namen das Wort "gebraucht" enthält und der Bestand erhöht wurde
            $letzteÄnderung = $artikel->getChanged();
            $bestandVorher = $artikel->getInStockOriginal();
            $bestandNachher = $artikel->getInStock();
            $artikelName = $artikel->getName();

            if ($letzteÄnderung >= $nächsteAktualisierung && $bestandNachher > $bestandVorher && strpos($artikelName, 'gebraucht') !== false) {
                // Kategorie dem Artikel hinzufügen
                $artikel->addCategory($kategorie);
            } else {
                // Kategorie aus dem Artikel entfernen
                $artikel->removeCategory($kategorie);
            }
        }

        // Änderungen in der Datenbank speichern
        Shopware()->Models()->flush();
    }
}

Meine Frage ist nun ob das so funktionieren kann?

Sehr gruselig :smiley:
Schmeißte das dann einfach auf den Webserver oder wie hast du dir das gedacht?

Lieber das als Lektüre benutzen, anstatt ChatGPT zu löchern :wink:

Ich hätt an einem Cronjob gedacht der das aller paar Minuten ausführt. Wir hatten ein ähnliches Script für Gambio, hat prima funktioniert. Aber das ist Jahre her