UVP für Händler anzeigen

Hallo,

folgende Problematik:

Ich habe eine Kundengruppe “Händler” mit Händlerpreisen. Diese werden auch überall im Frontend angezeigt, wenn der angemeldete Benutzer in der Kundengruppe “Händler” ist. Alle anderen Benutzer sehen die Preise der Kundengruppe “Endkunden”. Das passt also alles. - Jetzt gibt es aber die Anforderung, dass Händler in der Übersicht und in der Detailansicht neben ihrem Händlerpreis auch noch den Endkundenpreis als UVP sehen sollen.

Wie kann ich das Umsetzen?

Vielen Dank und Beste Grüße,

Florian

 

Hi,

das geht auf die Schnelle mit einer Erweiterung in den Templates Deines Themes. Hast Du ne Idee, wo & wie Du das machen kannst?

Grüße

Geert

Spontan würde ich sagen in der Kategorieansicht, Detailansicht, Topseller und Neueste Artikel. 

Wie kann ich im Template auf die 2. Kundengruppe und deren Preis zugreifen? Hat jemand nen Code für mich?

Den hätte ich auch gerne. Geert, wie soll das “auf die Schnelle” gehen?

Aus meiner Wühlkiste: https://dpaste.de/Z3LD

Damit könnt ihr einen shop context erzeugen für einen Shop und eure Endkunden Kundengruppe. Den übergebt ihr an den product service und kommt an die UVP. Diese dann einfach im template ausgeben.

Viele Grüße

Puh…

Habe mich bislang noch nicht mit der Entwicklung von Shopware auseinander gesetzt :frowning:

Gibt es dafür eine “einfache” Lösung? Plugin oder simpler Code Schnipsel fürs template?

Wäre dringend und vor allem absolut genial, wenn mir dabei jemand helfen könnte.

Vielen Dank :slight_smile:

Die Preise anderer Kundengruppen liegen standardmäßig nicht vor. Hier wirst du dir ein Plugin schreiben (lassen) müssen.

Oder ein Plugin kaufen: http://store.shopware.com/coe7397726819789/uvp-fuer-haendler.html

Viele Grüße

Also das Plugin ist schon mal super und macht das was es soll. 

Aber leider nur, solange der Benutzer nicht angemeldet ist. Sobald ich mich einlogge verschwindet die UVP wieder :frowning:

Cache schon geleert, Theme neu kompiliert und anderen Browser versucht :frowning:

Du kannst ganz einfach für die Händler einen Pseudopreis, also den Orginalpreis für Endkunden eingeben. Über die Textbausteinverwaltung nennst Du den dann in UVP um und stylst das über die Less Dateien. So hab ichs gelöst und funktioniert wunderbar.

LG Mike

Hab ja die Preise schon für alle Artikel drin und möchte ungern die ganzen Preise noch an einer weiteren Stelle pflegen. Das Plugin oben sieht auch gut aus aber hat eben noch das Problem, dass es bei eingeloggten Benutzern nicht die UVP anzeigt. Wenn man das noch lösen könnte, wäre ich schon glücklich.

Dann wende dich an den Hersteller des Plugins.

Viele Grüße

@pierre-schmitz schrieb:

Den hätte ich auch gerne. Geert, wie soll das „auf die Schnelle“ gehen?

Em, ja, da war ich wohl wirklich was zu schnell … mit Smarty-Funktion/Modifier und EK-Preis nachladen? Vielleicht nicht elegant und super-performant.

So könnte ein Smarty-Modifier dafür aussehen:

Models()->getRepository('Shopware\Models\Article\Detail');
    $article = $repository->findOneBy(['number' => $ordernumber]);

    /** @var Shopware\Models\Article\Price $prices */
    $prices = $article->getPrices();

    /** @var Shopware\Models\Article\Price $price */
    foreach ($prices as $price) {
        if ($price->getCustomerGroup()->getKey() == 'EK') {
            $ekPrice = $price->getPrice();
            break;
        }
    }
    return $ekPrice;
}
?>

(Echte Profis können das bestimmt noch eleganter, aber ich denke, das kann man so verstehen.) Der Smarty-Modifier kommt in Dein Theme unter _private/smarty mit dem Namen modifier.vwGetEkPrice.php. Evtl. den String ‚EK‘ bei der Abfrage anpassen.

Den Modifier dann z.B. in der detail/index.tpl mit

{$sArticle.ordernumber|vwGetEkPrice|currency}

einsetzen.

Viel Erfolg!

Geert

2 „Gefällt mir“

großartig - danke vanwittlaer!

1 „Gefällt mir“

@vanwittlaer‍ Danke für den Smarty-Modifier.

Gibt es eine Möglichkeit, den Steuersatz im Preis zu berücksichtigen, so dass im Frontend der Brutto-Preis der Kundengruppe angezeigt wird?

Augenblicklich erscheint mit getPrice nur der Netto-Preis.

Danke schon mal.

Ja klar, innerhalb des Smarty-Modifiers gibt’s alle Möglichkeiten, Du hast ja Zugriff auf den Artikel. Aber das müsstest Du entsprechend programmieren (lassen).

Gruß,

Geert

Hallo PPP,

@vanwittlaer‍ Danke für den Smarty-Modifier.

Gibt es eine Möglichkeit, den Steuersatz im Preis zu berücksichtigen, so dass im Frontend der Brutto-Preis der Kundengruppe angezeigt wird?

Augenblicklich erscheint mit getPrice nur der Netto-Preis.

Danke schon mal.

 Hast du dazu schon eine Lösung gefunden?

Ich habe bereits selber versucht das Problem mit dem Brutto-Preis zu lösen, bin aber leider kein Programmierer und stosse an meine Grenzen…

Danke im Voraus!

Hallo Günter,

ich bin auch gerade hier rein gestolpert und konnte das auch so einsetzen, funktioniert prima.

Hier meine Erweiterung für die MwSt.

foreach ($prices as $price) {
        if ($price->getCustomerGroup()->getKey() == 'EK') {
            $ekPrice = $price->getPrice();
            $mwst = $ekPrice * 0.19;
            $finalPrice = $ekPrice + $mwst;
            break;
        }
    }
    return $finalPrice;

Gruß

Hallo mmoojjoo,

 

Danke für deine Antwort.

So in der Art hab ich das auch hinbekommen, allerdings bin ich mit der Lösung nicht zufrieden, da wir Artikel mit einem anderen MwSt-Satz haben. Ich müsste also die MwSt (tax) des Artikels auslesen und dann damit den Bruttobetrag berechnen… aber hier komme ich nicht weiter.

Vielleicht kann jemand helfen?

 

Danke trotzdem und lg

Günther

Falls es mal wer braucht:

Ich habe das Ganze jetzt so gelöst: Ich habe den Smarty-Modifier von vanwittlaer 1:1 übernommen.

In meinem Fall habe ich dann in der data.tpl folgendes eingefügt:

{block name='uvp_haendler'}

                                
                            {if {$Shopware->System()->sUSERGROUP} == "H"}
                            {assign var='Brutto' value=($sArticle.ordernumber|vwGetEkPrice*(100+$sArticle.tax)/100)}
                            {$Brutto|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}
                            
	{/if}
                           
                           

{/block}
{block name='frontend_detail_data_tax_ek'}
        {if {$Shopware->System()->sUSERGROUP} == "H"}
        
            {s name="DetailDataPriceInfoEK"}{/s}
        
        {/if}
    {/block}

Sieht dann so aus:

lg

1 „Gefällt mir“