Inhalte aufrufen

Profilbild
- - - - -

Customer Address zusätzliche Felder

customeraddress vatId additionalFields kundenadresse

Best Answer Michael Herzog , 13 July 2023 - 13:02

Hier noch die versprochene Vorlage für die Theme-Entwicklung in einem Modul:

https://github.com/s...s-code-examples

Bitte meinen letzten Commit beachten. Erklärungen dazu folgen noch. 

 

Viele Grüße,

Michael 

Go to the full post


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

#1 lisa

lisa

    Member

  • Members
  • PunktPunkt
  • 17 Beiträge

Geschrieben: 11 July 2023 - 08:30

Hallo,

 

 

in unserem System gibt es Kunden, die bei multiplen Unternehmen tätig sind. Sie können Bestellungen für jedes ihrer Unternehmen in unserem Shop vornehmen. Die Angabe der Vat Id ist für die Bestellung essenziell, ist aber pro Unternehmen unterschiedlich. Aus diesem Grund würden wir gerne die Vat Id des Unternehmens mit der Adresse des Unternehmens erfassen und auch beim Checkout-Prozess diese als "required" einfordern. Welche Möglichkeiten gibt es hier, die Adresse um zusätzliche Felder zu erweitern?

 

Vielen Dank und liebe Grüße

Lisa  



#2 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3802 Beiträge

Geschrieben: 11 July 2023 - 12:19

Generell können zusätzliche Daten als GenericAttribute, SyncMapping oder mit Hilfe einer eigenen Entität (sprich Datentabelle) gespeichert und an eine andere Entität (wie z.B. Address) gebunden werden. Für welchen Weg man sich entscheidet hängt von Details und Präferenzen ab. Bei großen Datenmengen würde ich über eine eigene Entität gehen. Direkt eine Core-Entität zu erweitern würde ich nicht empfehlen. Das könnte zu Problemen bei Smartstore-Updates führen.
 
Die Konzeption verstehe ich hier allerdings nicht so ganz. Wenn ein Kunde für viele Unternehmen Bestellungen tätigt, dann ist eigentlich das Unternehmen der Kunde, nicht der Nutzer, der in deren Auftrag handelt. Für den Admin gibt es dafür z.B. die Funktion "Imitieren" auf der Kundenbearbeitungsseite. Darüber kann er einen Auftrag im Namen eines beliebigen Kunden tätigen.

Marcus Gesing

Smartstore AG


#3 lisa

lisa

    Member

  • Members
  • PunktPunkt
  • 17 Beiträge

Geschrieben: 12 July 2023 - 15:14

Danke für die Antwort.
Wir haben uns dazu entschieden, die zusätzlichen Felder in den GenericAttributes zur Adresse zu speichern.
Nun würden wir diese Felder auch gerne in der Adresse ausgeben, bzw editierbar machen. Hierfür müssen wir Views anpassen. Im konkreten wäre das, unter anderem, die View _CreateOrUpdateAddress.cshtml. Da wir auch weitere Views in der Applikation modifizieren wollen, würden wir das gerne über ein eigenes Theme umsetzen. In unserem Custom Modul haben wir also folgende Struktur erstellt: \Smartstore.Modules\CustomModule\Themes\Custom\Views\Shared\Partials\_CreateOrUpdateAddress.cshtml. Das erstellte Theme erscheint jedoch nicht im Admin Backend. Müssen wir hier zusätzlich noch eine Konfiguration vornehmen?

Vielen Dank und liebe Grüße

Lisa 



#4 Michael Herzog

Michael Herzog

    SmartStore AG

  • Administrators
  • 3498 Beiträge

Geschrieben: 12 July 2023 - 20:00

Hi Lisa,

 

Infos darüber wie man ein Theme erstellt habe ich dir gerade per PM geschickt. 

Man kann übrigens auch ein Theme als Plugin erstellen inklusive Models, Views & Controllern und allem anderen was man in einem MVC-Projekt verwednen kann.

Ich habe deine Anfrage mal als Anlass genommen entsprechenden Beispielcode dafür zu erstellen. 

Den Link dazu werde ich dir schicken sobald ich damit fertig bin. 

 

Viele Grüße,

Michael Herzog


  • lisa gefällt das

Michael Herzog
Smartstore AG


#5 Atempause

Atempause

    Benutzer

  • Members
  • 432 Beiträge

Geschrieben: 12 July 2023 - 21:04

Moin Michael,

kannst du bitte auch mir die daten zukommen lassen.

danke



#6 Michael Herzog

Michael Herzog

    SmartStore AG

  • Administrators
  • 3498 Beiträge

Geschrieben: 13 July 2023 - 08:21

Habe ich gemacht.


  • Atempause gefällt das

Michael Herzog
Smartstore AG


#7 Michael Herzog

Michael Herzog

    SmartStore AG

  • Administrators
  • 3498 Beiträge

Geschrieben: 13 July 2023 - 13:02   Best Answer

Hier noch die versprochene Vorlage für die Theme-Entwicklung in einem Modul:

https://github.com/s...s-code-examples

Bitte meinen letzten Commit beachten. Erklärungen dazu folgen noch. 

 

Viele Grüße,

Michael 


  • stefanmueller und lisa gefällt das

Michael Herzog
Smartstore AG


#8 lisa

lisa

    Member

  • Members
  • PunktPunkt
  • 17 Beiträge

Geschrieben: 13 July 2023 - 14:37

Hi Michael, danke für den Link und das Tutorial. 
Beim Setup gab es bei mir jedoch ein Problem mit dem Erstellen der Symlinks.

Ich musste im create-symlinks.bat im Schritt "Create solution file symlink" anstelle eines symbolik links einen hard link für das solution file erstellen, da sonst beim Öffnen des Smartstore.CodeExamples.sln files die  project files nicht gefunden werden konnten.

 

Liebe Grüße

Lisa



#9 Michael Herzog

Michael Herzog

    SmartStore AG

  • Administrators
  • 3498 Beiträge

Geschrieben: 13 July 2023 - 14:45

Hi Lisa,

 

ich habe es gerade nochmal getestet. Läuft bei mir ohne Probleme. Wenn ich die bat-Datei als Admin ausführe und danach die Solution Smartstore.CodeExamples-sym.sln im Smartstore-Ordner öffne, sind alle Projekt geladen. Das Projekte nicht geladen werden passiert eigentlich nur wenn du die Solution direkt im Samples-Modules-Repo öffnest.

 

Viele Grüße,

Michael


Michael Herzog
Smartstore AG


#10 lisa

lisa

    Member

  • Members
  • PunktPunkt
  • 17 Beiträge

Geschrieben: 13 July 2023 - 15:01

Hi Michael,

 

leider hat es bei mir genau nach diesen Schritten nicht funktioniert und die Anpassung auf hard link war erforderlich. 

Meine Directory Struktur im Detail:
 

/Smarstore_tutorials

  • /dev-docs-code-examples
  • /Smartstore

Ich habe die bat Datei in dev-docs-code-examples als admin ausgeführt, die Links der Module wurden korrekt in Smartstore\src\Smartstore.Modules erstellt, auch ein symlink für die Smartstore.CodeExamples.sln wurde in Smartstore angelegt. 

Im nächsten Schritt habe ich das solution file Smartstore/Smartstore.CodeExamples-sym.sln in Visual Studio 2022 geöffnet. (Achtung: im Readme.md steht nur, dass man Smartstore.CodeExamples.sln öffnen soll)

In Visual Studio habe ich dann folgende Fehlermeldungen erhalten:

C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Web\Smartstore.Web.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Web.Common\Smartstore.Web.Common.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Core\Smartstore.Core.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore\Smartstore.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\test\Smartstore.Test.Common\Smartstore.Test.Common.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\test\Smartstore.Tests\Smartstore.Tests.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\test\Smartstore.Core.Tests\Smartstore.Core.Tests.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Data\Smartstore.Data.SqlServer\Smartstore.Data.SqlServer.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Data\Smartstore.Data.MySql\Smartstore.Data.MySql.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\test\Smartstore.Web.Tests\Smartstore.Web.Tests.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.DevTools\Smartstore.DevTools.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Build\Smartstore.ModuleBuilder\src\Smartstore.ModuleBuilder.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Facebook.Auth\Smartstore.Facebook.Auth.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Twitter.Auth\Smartstore.Twitter.Auth.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Google.Auth\Smartstore.Google.Auth.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Microsoft.Auth\Smartstore.Microsoft.Auth.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Tax\Smartstore.Tax.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.OfflinePayment\Smartstore.OfflinePayment.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Shipping\Smartstore.Shipping.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Clickatell\Smartstore.Clickatell.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.ShippingByWeight\Smartstore.ShippingByWeight.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Google.Analytics\Smartstore.Google.Analytics.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Google.MerchantCenter\Smartstore.Google.MerchantCenter.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.AmazonPay\Smartstore.AmazonPay.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Build\Smartstore.Build\Smartstore.Build.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.PayPal\Smartstore.PayPal.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.WebApi\Smartstore.WebApi.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Stripe\Smartstore.Stripe.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Data\Smartstore.Data.PostgreSql\Smartstore.Data.PostgreSql.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Data\Smartstore.Data.Sqlite\Smartstore.Data.Sqlite.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.HelloWorld-sym\MyOrg.HelloWorld.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.BlockTutorial-sym\MyOrg.BlockTutorial.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.BlockTutorialAdvanced-sym\MyOrg.BlockTutorialAdvanced.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.DomainTutorial-sym\MyOrg.DomainTutorial.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.ExportTutorial-sym\MyOrg.ExportTutorial.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.MenuTutorial-sym\MyOrg.MenuTutorial.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.WidgetTutorial-sym\MyOrg.WidgetTutorial.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\MyOrg.TabsTutorial-sym\MyOrg.TabsTutorial.csproj : error  : The project file cannot be found.
C:\dev\Smartstore_tutorials\dev-docs-code-examples\src\Smartstore.Modules\Smartstore.Themes.MyTheme-sym\Smartstore.Themes.MyTheme.csproj : error  : The project file cannot be found.
Mit dem hard link auf as sln file hat es dann funktioniert.
 
Viele Grüße
Lisa


#11 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3802 Beiträge

Geschrieben: 13 July 2023 - 19:53

"The project file cannot be found."
 
Den Fehler erhalte ich, wenn ich Smartstore.CodeExamples-sym.sln per Doppelklick öffne. Starte ich VS hingegen ohne Solution und öffne  Smartstore.CodeExamples-sym.sln im Start-Dialog über "Open a project or Solution", dann werden alle Projekte korrekt geladen.

Marcus Gesing

Smartstore AG


#12 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3802 Beiträge

Geschrieben: 13 July 2023 - 20:04

"im Readme.md steht nur, dass man Smartstore.CodeExamples.sln öffnen soll"
 
Habe ich korrigiert.

  • lisa gefällt das

Marcus Gesing

Smartstore AG


#13 Michael Herzog

Michael Herzog

    SmartStore AG

  • Administrators
  • 3498 Beiträge

Geschrieben: 13 July 2023 - 20:04

Stimmt! An den alten VS-Bug habe ich gar nicht mehr gedacht. Die Solutions per Öffnen-Dialog aufzumachen ist schon in Fleisch und Blut übergegangen :-)


  • lisa gefällt das

Michael Herzog
Smartstore AG


#14 lisa

lisa

    Member

  • Members
  • PunktPunkt
  • 17 Beiträge

Geschrieben: 14 July 2023 - 08:25

Hi,

 

hab bei mir jetzt auch die Smartstore.CodeExamples-sym.sln (symlink, nicht hard link) aus Visual Studio raus geöffnet und so funktioniert es wunderbar.

Danke für den Tipp! 

 

Viele Grüße

Lisa