Eigener Produkt-Preis für jeden Kunden (b2b)

Hallo liebe OXID Experten :wink:

Ich hätte eine Frage bzgl. eines Projekts - einer unserer Kunden hat für JEDEN seiner Kunden (B2B) für JEDES seiner Produkte andere Preise - diese würde er uns auch ganz genau liefern - die Frage ist - ist das mit der Community Version abdeckbar?

Ich denke da an eine Zwischentabelle mit den Eigenschaften Preis (auch Staffelpreisauszeichnung) und den Foreign Keys zum Kunden sowie zur Produkte-Tabelle…

Wichtig dafür wäre natürlich eine ZENTRALE Stelle in OXID, wo die Preise berechnet werden, damit nicht an zig Stellen diese Berechnung umgeschrieben wird.

Wie seht ihr das - ist das mit einem Erweiterungsmodul umsetzbar?
Könntet ihr mir ein paar Brocken hinwerfen, welche Klassen/Module angepasst werden müssten?

Vielen Dank für euer Feedback!

Liebe Grüße,
Chris

Hallo Chris,

es gibt verschiedene Ansätze: Preise können z.B. real time über eine Schnittstelle aus der ERP geholt werden oder man baut eine Riesen-Tabelle für alle Kunden auf. D³-Thomas hat mir grad gestern dazu etwas erzählt :wink:

Gruß

Ich würde da in der Funktion _getGroupPrice in oxarticle ansetzen


    protected function _getGroupPrice()
    {
        $dPrice = $this->oxarticles__oxprice->value;

        $oUser = $this->getArticleUser();
        if ( $oUser ) {
            if ( $oUser->inGroup( 'oxidpricea' ) ) {
                $dPrice = $this->oxarticles__oxpricea->value;
            } elseif ( $oUser->inGroup( 'oxidpriceb' ) ) {
                $dPrice = $this->oxarticles__oxpriceb->value;
            } elseif ( $oUser->inGroup( 'oxidpricec' ) ) {
                $dPrice = $this->oxarticles__oxpricec->value;
            }
        }

        // #1437/1436C - added config option, and check for zero A,B,C price values
        if ( $this->getConfig()->getConfigParam( 'blOverrideZeroABCPrices' ) && (double) $dPrice == 0 ) {
            $dPrice = $this->oxarticles__oxprice->value;
        }

        return $dPrice;
    }

Da werden die ABC-Gruppen-Preise abhängig vom User geholt (spezielle Preise für die Mitglieder der 3 Gruppen), da könnte man also genauso auch selber Preise abhängig vom User aus einer Tabelle holen.