Hallo,
ich versuche die Funktion loadBasketArticels() zu erweitern:
/**
* @return array
*/
private function loadBasketArticles()
{
$sql = "
SELECT
s_order_basket.*,
COALESCE (NULLIF(ad.packunit, ''), mad.packunit) AS packunit,
a.main_detail_id AS mainDetailId,
ad.id AS articleDetailId,
ad.minpurchase,
a.taxID,
ad.instock AS instock,
ad.suppliernumber,
ad.maxpurchase,
ad.purchasesteps,
ad.purchaseunit,
COALESCE (ad.unitID, mad.unitID) AS unitID,
a.laststock,
ad.shippingtime,
ad.releasedate,
ad.releasedate AS sReleaseDate,
COALESCE (ad.ean, mad.ean) AS ean,
ad.stockmin,
s_order_basket_attributes.attribute1 as ob_attr1,
s_order_basket_attributes.attribute2 as ob_attr2,
s_order_basket_attributes.attribute3 as ob_attr3,
s_order_basket_attributes.attribute4 as ob_attr4,
s_order_basket_attributes.attribute5 as ob_attr5,
s_order_basket_attributes.attribute6 as ob_attr6
FROM s_order_basket
LEFT JOIN s_articles_details AS ad ON ad.ordernumber = s_order_basket.ordernumber
LEFT JOIN s_articles a ON (a.id = ad.articleID)
LEFT JOIN s_articles_details AS mad ON mad.id = a.main_detail_id
LEFT JOIN s_order_basket_attributes ON s_order_basket.id = s_order_basket_attributes.basketID
WHERE sessionID=?
ORDER BY id ASC, datum DESC
";
$sql = $this->eventManager->filter(
'Shopware_Modules_Basket_GetBasket_FilterSQL',
$sql,
['subject' => $this]
);
$getArticles = $this->db->fetchAll($sql, [$this->session->get('sessionId')]);
return $getArticles;
}
Genauer gesagt möchte ich in der Funktion das Freitextfeld sArticle.attr19, dass in einem Artikel hängt, übergeben.
Wie gehe ich da am besten vor? Da es sich um eine Core-Datei und private Funktion handelt, lässt die sich ja so ohne weiteres nicht überschreiben.
Ich habe überlegt es mit einem JOIN zu machen um das attr19 ins Array zu bekommen.
Könnte mir da ein Event oder Hook weiter helfen? Hat jemand ein ähnliches Problem? Ein Beispiel wäre toll!
1000 Dank!