Inhalte aufrufen

Profilbild
- - - - -

OrderGuid als Textstring und QR-code in PDF anzeigen


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

#1 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 19 August 2019 - 23:21

Hallo Zusammen,
ich bin ganz neu hier und ich habe zwei Fragen.
wie könnte man OrderGuid als Textstring in PDF anzeigen?
Wäre es möglich OrderGuid auch als QR-code (oder ähnliches) anzuzeigen?

Meine Idee ist eine eindeutige Variable als Scannerlesbare Code für Warenabholung zu benutzen.


Vielen Dank im Voraus!

#2 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 20 August 2019 - 11:47

OrderGuid muss eine GUID sein, anderes lässt unter diesem Feld nicht persistieren. Für einen serialisierten Code würde ich aktuell Order-Attributes verwenden (Entität GenericAttribute mit KeyGroup Order).
 
Bei deinem Szenario und dessen Bedeutung sollte man mal über ein neues Feld direkt auf der Order-Entität nachdenken, sowas wie CustomId.

Marcus Gesing

Smartstore AG


#3 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 20 August 2019 - 12:51

Hallo Marcus,
vielen Dank für schnelle Antwort!
Ich bin nicht sicher dass ich alles machen könnte...
Gibt es irgendwo ein Beispiel für so was?

Danke und Gruß!

#4 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 20 August 2019 - 14:01

Beispiel für Order-Attribute (als serialisiertes JSON Objekt): schreiben, lesen.
Order-Attribute ist ok für dieses Szenario.

Marcus Gesing

Smartstore AG


#5 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 21 August 2019 - 13:58

Hallo Marcus,
danke für den Vorschlag!
Fragen:
- Kann deine Lösung ohne Paypal Bezahlung (z.B. wenn das Ganze nur bei mir lokal auf dem Server läuft) auch funktionen?

- Was bedeutet "OrderGuid muss eine GUID sein, anderes lässt unter diesem Feld nicht persistieren."? Kann man OrderGuid von dbo. Order nicht als Textstring darstellen?
- Wie kann man QR-code generieren?

Danke und Gruß!

#6 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 21 August 2019 - 16:12

Ja, das mit dem Order Attribut funktioniert immer und überall. Das ist nur ein Code Beispiel, wie man Generic Attributes einsetzen kann.
Man kann den Wert von Order.OrderGuid als String anzeigen, aber man keinen beliebigen String in dem Feld speichern, sondern nur GUIDs.
Wie man QR-Code generiert weiß ich nicht. Hab ich noch nie gemacht.

Marcus Gesing

Smartstore AG


#7 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 22 August 2019 - 11:01

Hallo Marcus,
vielen Dank!
Ich dachte das für mein Problem eine Lösung wie hier: http://community.sma...ld/#entry274407
oder hier:
http://community.sma...n/?fromsearch=1
gibt.
So einfach ist es nicht, richtig?
Danke!

#8 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 22 August 2019 - 12:56

Die Beiträge betreffen nur die Anzeige bzw. Ausgabe von Informationen. Du musst deine Daten ja erstmal irgendwo persistieren.


Marcus Gesing

Smartstore AG


#9 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 28 August 2019 - 21:14

Hallo Marcus,
 
danke nochmal für deine Unterstützung!
 
Ich möchte genau das machen- Order.OrderGuid als Textstring anzeigen. Es geht nur um die Ausgabe von Informationen. Mehr brauche ich nicht.

 
Ich habe in \\SmartStoreNET-3.x\src\Presentation\SmartStore.Web\Models\Order\OrderDetailsModel.cs
 

public Guid OrderGuid { get; set; }

 
geschrieben und in \\SmartStoreNET-3.x\src\Presentation\SmartStore.Web\Controllers\OrderHelper.cs
 

model.OrderGuid = order.OrderGuid;

eingefügt.
 
Am Ende habe ich in \\SmartStoreNET-3.x\src\Presentation\SmartStore.Web\Views\Order\Details.Print.cshtml
 

<td class="value">@order.OrderGuid</td>

eingefügt.

Leider bekomme ich die ganze Zeit folgende Meldung:

"\\SmartStoreNET-3.x\build\Web\Views\Order\Details.Print.cshtml(119): error CS1061: "OrderDetailsModel" enthält keine Definition für "OrderGuid", und es konnte keine zugängliche OrderGuid-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "OrderDetailsModel" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis)."

Was mache ich falsh? Muss ich Guid zu String wächseln? Wenn ja, wie?

Danke im Voraus!



#10 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 29 August 2019 - 09:59

Diese Sache einmal machen.


Marcus Gesing

Smartstore AG


#11 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 29 August 2019 - 15:58

Hallo Marcus,

 

leider das hat nichst gebracht. Immer noch dasselbe Problem.

 

Was könnte ich noch versuchen?

 

Danke!



#12 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 29 August 2019 - 19:24

Den ganz großen Cleanup: Solution schließen, bin Ordner löschen, Temporary ASP.NET Files löschen, Solution öffnen und vollständig neu kompilieren.


Marcus Gesing

Smartstore AG


#13 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 30 August 2019 - 13:09

Hallo Marcus,

 

ja, das war die Lösung. Jetzt  wird OrderGuid in PDF angezeigt.

 

Wenn es mit QR-code klappt, ich schreibe kurz wie das geht.

 

Vielen Dank!

 

Gruß!



#14 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 08 October 2019 - 21:58

Hallo,
 
QRCode habe ich generiert, dbo.Order erweitert und nun ist QRCode als Byte[] gespeichert. Also, Image wird als Byte[] gespreichert.
 
QRCode wird als Image korrekt in SmartStore.Web\Views\Order\Details.cshtml  dargestellt mit
 

<img src="data:image;base64,@System.Convert.ToBase64String(Model.OrderGuidQRCode)" width="120" height="120" />

Ich benutze gleiche Code in in DetailsPrint.cshtml (pdf Dokument) aber Picture wird nicht dargestellt. Ich habe nur "Rahmen" (image Objekt) aber es ist leer.

 

Woran es liegt?

 

Danke!



#15 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 09 October 2019 - 11:01

Wahrscheinlich an der PDF erzeugenden Komponente. Mit einem Base64 enkodierten String wird er an dieser Stelle im Gegensatz zu einem Browser nichts anfangen können.


Marcus Gesing

Smartstore AG


#16 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 09 October 2019 - 20:45

Ich habe auch versucht ein bild (.jpg oder.png) einzufügen, aber dasselbe passiert. Bild ist in gleichem Ordner gespeichert wo .cshtml ist.
Also, es liegt wahrscheinlich nicht an die Konvertierung.



#17 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 11 October 2019 - 21:01

Hast du eine Idee wie kann ich ein Bild in PDF einfügen?

Es muss nicht unbedingt ein Base64 String sein.

 

Danke!



#18 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3801 Beiträge

Geschrieben: 14 October 2019 - 19:15

Per img Tag und URL funktioniert's bei mir in Details.Print.cshtml.


Marcus Gesing

Smartstore AG


#19 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 19 October 2019 - 10:22

Hallo Marcus,

 

zuerst möchte ich mich bedanken für deine Unterstützung!

 

Also, so funktioniert bei mir auch. Problem ist dass ich die Bilder nicht als URL referenzieren kann. Meine Bilder sind als Byte[ ] in dbo.Order gespreichert und ich muss in folgendem Format schreiben:

@{
var base64 = Convert.ToBase64String(order.OrderGuidQRCode);
var imgSrc = String.Format("data:image;base64,{0}", base64);
}
<img src="@imgSrc" alt="OrderQRCode" width="180" height="180" />

QRCode wird in die "Print" Version (pdf=false) angezeigt, aber in PDF nicht.

 

Hast du vielleicht noch einen guten Vorschlag für PDF ?

 

Wenn nicht, eine Alternative wäre QRCode per Email message (als HTML Attachment oder als Image in Email body) zu schicken. Ist es möglich? Wenn ja, wie kann ich das machen? Ein Beispril wäre toll!

 

Danke im Voraus!



#20 dbarackov

dbarackov

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 28 October 2019 - 22:09

Hallo Marcus,

ich mache ein neues Topic bezüglich das Thema Email message attachment auf.
Wenn du weitere Ideen mit PDF hast, bitte kurz schreiben.

Danke!