Hallo zusammen,
ich bin neu in Sachen Shopware und versuche mich gerade an einem Plugin. Soweit klappt auch alles, allerdings benötige ich die Optionen der bestellten Variante und finde aktuell keine Möglichkeit, wie ich an diese Daten rankomme.
Beispiel :
Kunde bestellt ein T-Shirt in Farbe “schwarz” und Größe “L”. Farbe und Größe sind jeweils Optionen. Der Artikel hat die Artikelnummer SW0001.1. In der Tabelle der Bestellung erhalte ich die Artikelnummer und anhand der Artikelnummer komme ich auch an die ArtikelID über die Tabelle s_article_details.
Aber wie komme ich nun an die Ausprägungen “schwarz” und “L”? Jemand eine Idee?
Vielen Dank!
Martin
So, hier die Lösung in Form einer PHP Funktion:
public function getActiveOptionsByOrderNumber($orderNumber)
{
$query = Shopware()->Container()->get('dbal_connection')->createQueryBuilder();
$query
->select('groups.name as variant,ops.name as variant_value')
->from('s_articles_details', 'details')
->join('details', 's_article_configurator_option_relations', 'relations', 'details.id=relations.article_id')
->join('relations', 's_article_configurator_options', 'ops', 'ops.id=relations.option_id')
->join('ops', 's_article_configurator_groups', 'groups', 'groups.id=ops.group_id')
->where('details.ordernumber=:orderNumber')
->setParameter(':orderNumber', $orderNumber)
;
$result = $query->execute()->fetchAll(\PDO::FETCH_ASSOC);
}
Danke an _max aus dem IRC Channel für die Hilfe!
Grüße,
Martin