Inhalte aufrufen

Profilbild

Zugriff auf Produktinformation für ein Widget auf der Produktdetailseite.

Plugin Widget Produktdetails

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

#1 Lighthouse

Lighthouse

    Member

  • Members
  • PunktPunkt
  • 17 Beiträge

Geschrieben: 20 January 2022 - 11:54

Schönen guten Tag,

 

ich arbeite mich seit ein paar Tagen in die Plugin-Strukturen von Smartstore ein.

Ich möchte auf der Produktdetailseite, durch ein eigen angelegtes Widget, Daten ausgeben, die ich dem Produkt im Backend zugewiesen habe.

Ich habe nach einer Möglichkeit gesucht, wie ich im Plugin-Controller auf die Produk-Atribute (z. B. Product-Id) zugreifen kann.

 

Ich habe eine Möglichkeit gefunden:

 

var myRoute = this.Request.RequestContext.RouteData;

public ActionResult ExtendFrontend()
        {
            string entityName = "product";
            int entityId = 0;

            var myRoute = this.Request.RequestContext.RouteData;

            foreach(KeyValuePair<string, object> entry in myRoute.Values)
            {
                if(entry.Key == "productid")
                {
                    entityId = (int)entry.Value;
                    break;
                }
            }

            var model = new AdminEditTabModel();

            var entity = _testEventsService.GetTestEventsRecord(entityId, entityName);

            model.attribute1 = entity.attribute1;

            if (entity != null)
            {
                return View(model);
            }

            return View(model);

        }

Meine Frage ist nun, ist das eine cleane Möglichkeit um an solche Daten zu gelangen oder gibt es bessere Methoden dafür?

 

MfG

 

das Lighthouse-Team



#2 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 20 January 2022 - 17:16

Kann man so machen, wenn man zusätzlich noch Controller- und Action-Name überprüft. Alternativ kann man die Product.Id auch über das View-Model beziehen (s. z.B. hier oder hier) und die eigene Action-Methode dann mit dieser Product.Id aufruft. Auf diese Weise erhält man Zugriff auf alle Daten des View-Model.

  • Lighthouse gefällt das

Marcus Gesing

Smartstore AG