Inhalte aufrufen

Profilbild
- - - - -

Weitere Produktinformationen über eigenes Modul

Modul Controller Product

Best Answer Marcus Gesing , 07 May 2023 - 08:56

"An die Razor Views wird das Object "ProductDetailsModel" übergeben und hier müssten weitere Variablen hinzugefügt werden."
Die View-Models leiten von ModelBase ab, welches CustomProperties bereitstellt: "Use this property to store any custom value for your models."
Go to the full post


  • Bitte melden Sie sich an, um eine Antwort zu verfassen.
5 Antworten zu diesem Thema

#1 TobiasF

TobiasF

    Newbie

  • Members
  • Punkt
  • 7 Beiträge

Geschrieben: 05 May 2023 - 08:56

Hallo zusammen,

 

um keine Änderungen am Core vorzunehmen, würden wir unseren SmartStore gerne über ein Modul erweitern.

Das Modul soll weitere Produktinformationen aus einer eigenen Datenbank Tabelle ermöglichen und natürlich ohne die Klasse Product zu verändern.

 

Da es sich bei der Klasse ProductDetailsModel um eine partielle Klasse handelt, wäre es möglich diese zu erweitern. Leider lässt sich eine partielle Klasse nur im selben Assembly erweitern und somit für uns nicht möglich.

 

Eine weitere Möglichkeit wäre die Implementierung eines eigenen Controllers, doch wie können wir den Controller so integrieren, dass der Controller beim Abruf des Produkts angesprochen wird und die Daten übergibt?

 

Oder gibt es eine andere Möglichkeit, um weitere Produktinformationen zu ermöglichen?

 

Danke!

 

Viele Grüße,

TobiasF



#2 daniel@streetec

daniel@streetec

    Member

  • Members
  • PunktPunkt
  • 12 Beiträge

Geschrieben: 05 May 2023 - 13:35

Hi,

Ihr braucht ein eigenes Modul, dieses Modul braucht dann das Interface IActivatableWidget.

Dann braucht Ihr eine SmartViewComponent, die Ihr bsp in productdetails_bottom anzeigen lassen könnt. (Stichwort InvokeAsync)

 

Das ist eigentlich ganz schön hier beschrieben: https://smartstore.g...-viewcomponents



#3 TobiasF

TobiasF

    Newbie

  • Members
  • Punkt
  • 7 Beiträge

Geschrieben: 05 May 2023 - 14:45

Hi daniel@streetec,

 

danke für die Rückmeldung!

 

Wir würden das ungern über ein Widget lösen, da die Daten sonst nur im Widget zur Verfügung stehen, aber nicht im gesamten View.

 

Einen View haben wir über unser Modul bereits erfolgreich eingebunden. Nun geht es darum, die Daten für unsere Verwendung anzupassen.

An die Razor Views wird das Object "ProductDetailsModel" übergeben und hier müssten weitere Variablen hinzugefügt werden.

 

Oder es gibt eine andere Möglichkeit einen zusätzlichen Controller anzusprechen?

Die Daten müssten aber so abgerufen werden, dass sie im View zur Verfügung stehen.

 

Viele Grüße,

TobiasF 



#4 Algorithman

Algorithman

    Advanced Member

  • Members
  • PunktPunktPunkt
  • 39 Beiträge

Geschrieben: 06 May 2023 - 23:08

Hallo Tobias,

 

das selbe Problem hatte ich auch.

Meine Lösung (bis jetzt) ist, dass ich mir ein erweitertes Model für die Produkte gemacht habe (abgeleitete Klasse mit zusätzlichen Properties). Dann mappe ich die Daten im entsprechenden IAsyncActionFilter auf meine Klasse, füge meine Daten hinzu und übergebe das an den View, der dann meine Klasse haben will.

 

Funktioniert aber leider nicht überall, AJAX-Calls im Warenkorb z.B. kann man so nicht abfangen, da muss der View noch 2x gerendert werden (einmal eben mit den Original-Daten und einmal mit meinen Zusatzdaten).

 

MfG

 

Chris


  • TobiasF gefällt das

#5 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 07 May 2023 - 08:56   Best Answer

"An die Razor Views wird das Object "ProductDetailsModel" übergeben und hier müssten weitere Variablen hinzugefügt werden."
Die View-Models leiten von ModelBase ab, welches CustomProperties bereitstellt: "Use this property to store any custom value for your models."

  • TobiasF gefällt das

Marcus Gesing

Smartstore AG


#6 TobiasF

TobiasF

    Newbie

  • Members
  • Punkt
  • 7 Beiträge

Geschrieben: 08 May 2023 - 06:50

 

"An die Razor Views wird das Object "ProductDetailsModel" übergeben und hier müssten weitere Variablen hinzugefügt werden."
Die View-Models leiten von ModelBase ab, welches CustomProperties bereitstellt: "Use this property to store any custom value for your models."

 

 

Danke für die Lösung!  :8ball: