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?