PriceCalculator Kundengruppenrabatt überschreiben

Hey,

ich sitze an einem Problem an dem ich sleber nicht mehr weiter komme … ich möchte gern diesen Part in der PriceCalculator.php ändern:

 

if ($customerGroup->useDiscount() && $customerGroup->getPercentageDiscount()) {
			$price = $price - ($price / 100 * $customerGroup->getPercentageDiscount());
        }

Hier wird der Preis zusammen gesetzt wenn ein Kundengruppenrabatt hinterlegt ist. Und genau diesen Wert (in der DB discount) z.B. 40 möchte ich austauschen mit dem von mir bei jedem Hersteller als Freitext Feld hinterlegtem Wert. Mein Versuch sieht so aus:

Hersteller ID bekommen um dann den Wert aus dem Freitextfeld aus der DB zu holen:

$query = $this->connection->createQueryBuilder();
        	$query->select('supplierID')
            ->from('s_article')
            ->where('id = :id')
            ->setParameter(':id', $productId);
			
        	$statement = $query->execute();
        	$number = $statement->fetch(\PDO::FETCH_COLUMN);

Dies führt aber zum Fehler:

Fatal error: Call to a member function createQueryBuilder() on null in /html/shopware/engine/Shopware/Bundle/StoreFrontBundle/Service/Core/PriceCalculator.php on line 70

Wie muss die SQL Abfrage richtig sein damit dies funktioniert :frowning:

Wo kommt denn $this->connection her?!

Viele Grüße

Danke für die super schnelle Antwort … meinst du mit deiner Frage dies hier:

/**
     * @var Connection
     */
    private $connection;

    /**
     * @var \Shopware_Components_Config
     */
    private $config;

    /**
     * @param Connection $connection
     * @param \Shopware_Components_Config $config
     */
    public function __construct(
        Connection $connection,
        \Shopware_Components_Config $config
    ) {
        $this->connection = $connection;
        $this->config = $config;
    }

 

$this->connection ist laut Fehlermeldung null. Also fang da an zu suchen.

Viele Grüße

Hey,

super vielen Dank das war genau der richtige Hinweis die Abfrage funktioniert nun :slight_smile:
Weißt du zufällig auch noch wie ich an die Produkt ID komme 

LG

Ich komme mal wieder nicht weiter … wie komme ich in der PriceCalculator.php an die ID des Artikels :frowning:

Kann mir niemand Helfen :frowning: