Jump to content

PS 1.7 Pflichtfelder in Kunden-Registrierung


Recommended Posts

Guten Morgen,

ich bereite mich langsam aber sicher auf den Umzug auf 1.7 vor.

Mein Shop soll künftig ausschliesslich für meine vorhandenen Kunden verfügbar sein.
Dafür nutze ich ein entsprechendes Modul Namens "Online-Shop mit speziellem Zugang Deluxe". Das Modul ist installiert und funktioniert auch.

Weiter habe ich die Option B2B-Modus aktiviert. Hierdurch werden im Registrierungsformular die Felder "Firma" und "Steuernummer" aktiviert.

Und genau hier liegt mein Problem.

Das Feld "Firma" ist als Optional-Feld markiert - das hätte ich gerne als Pflichtfeld (ggf. auch einfach nur das Wort "Optional" ausblenden und es kann weiterhin freiwillig ausgefüllt werden, damit könnte ich gut leben).

Das Feld "Steuernummer"  würde ich gerne umbennen in "Kunden-Nr." und es somit missbrauchen. Auch hier könnte das Wort "Optional" einfach ausgeblendet werden.
Ich hoffe es wird nicht von PS anderweitig ausgewertet. Persönlich benötige ich keine Steuernummer, da ich den Shop nur als Bestellmöglichkeit nutze. Die eigentliche Auftragserfassung, Rechnungslegung etc. erfolgt lokal in einer anderen Software. PS braucht keine Rechnungen schreiben.

Versucht habe ich bis jetzt im BO die Übersetzungen für diese Felder zu finden, finde ich aber nicht (hätte ja immerhin schon einmal die Steuernummer teilweise erledigt).
Weiter die Datei "Customer.php" versucht anzupassen und beide Felder als Pflichtfelder zu kennzeichen. Dafür habe ich mit die entsprechenden Code von den anderen Feldern kopiert. Als Ergebnis erhalt ich einen Fehler 500 sobald ich die Felder leer lasse. Der Kunde wird aber trotzdem im BO eingetragen.

Die Alternative wäre, die Registrierung vollständig zu deaktivieren (geht mit dem oben genannten Modul) und ein manuelles anlegen des Kunden, das wäre aber wirklich eine Notlösung.

Meine PS Version ist die 1.7.4.3
Das Template habe ich über Prestabuilder angepasst (ist dann glaube ich trotzdem noch "Classic")
Shop-URL: www.presta17.doeka.info

"

Link to comment
Share on other sites

Bin ein kleines Stück weiter.

Scheinbar ist die customer.php gar nicht so falsch.

Wenn ich dort eintrage, die Felder sollen Pflichtfelder sein, dann kommt nur kein Feedback, wenn der Kunde die Felder nicht ausfüllt. Dies führt dann zu nachstehenden Ergebnis.

Mal was anderes, "darf" ich eigentlich an der customer.php basteln? Mit dem nächsten Update ist das wahrscheinlich wieder gelöscht, oder? Aber wer installiert schon Updates für Presta...

[PrestaShopException]

Kein Eintrag in Customer->company
at line 954 in file classes/ObjectModel.php

949.             }
950. 
951.             $message = $this->validateField($field, $this->$field);
952.             if ($message !== true) {
953.                 if ($die) {
954.                     throw new PrestaShopException($message);
955.                 }
956.                 return $error_return ? $message : false;
957.             }
958.         }
959. 
Link to comment
Share on other sites

Hallo,

In der Ländereinstellungen (etwas versteckt) kann man Pflichtfelder für die Adresseingabe definieren. Da sehe ich auch "company" und "VAT number". Probier es doch damit mal aus bevor du core files modifiziert (Und ja, die Änderung wäre beim Update weg - um das zu vermeiden sollte man Module oder falls nicht anders möglich Overrides nutzen)

Gruß.

Link to comment
Share on other sites

Das hatte ich schon gefunden.
Hier legt man aber das Adressformat für die Belege, also Lieferschein etc. fest. Kommt somit erst zur Geltung wenn der Kunde wirklich bestellt.
Ich suche aber schon die Pflichtfelder für die Registrierung.

Habe weiter noch versucht das Wort "Optional" per CSS einfach auszublenden, sprich weisse Schrift. Geht leider auch nicht, da auch noch weiterer Text auf der Seite damit definiert ist. Ist doch alles Kac...

Link to comment
Share on other sites

Ok, als "Quick & Dirty Lösung" kannst du dein Template (themes/deinTheme/templates/customer/_partials/customer_form.tpl) und die Felder entsprechend manipulieren:

  <section>
    {block "form_fields"}
      {foreach from=$formFields item="field"}

{** Beispiel für das Feld Firma *}
        {if $field.name == 'company'}
            {$field.required = true}
        {/if}
{** Ende Beispiel *}


        {block "form_field"}
          {form_field field=$field}
        {/block}
      {/foreach}
      {$hook_create_account_form nofilter}
    {/block}
  </section>

Link to comment
Share on other sites

vor 21 Stunden schrieb henner2605:

Habe weiter noch versucht das Wort "Optional" per CSS einfach auszublenden, sprich weisse Schrift. Geht leider auch nicht, da auch noch weiterer Text auf der Seite damit definiert ist. Ist doch alles Kac...

Weiße Schrift ist nicht ausblenden, Google mag so etwas gar nicht. Du solltest ans Ende der theme.css eine Anweisung hinzufügen:

#customer-form .form-control-comment {
    display: none;
}

Link to comment
Share on other sites

Vielen Dank erst einmal für Eure Antworten.

Quick and dirty, ja das bin ich :-)

Der Code ist erfolgreich eingebunden, die Felder sind jetzt tatsächlich Pflichtfelder.
Wobei ich nicht verstehe warum Steuernummer ein Pflichfeld geworden ist, da ja in dem Code nur "Customer" beschrieben wird (kein Plan wie ich mich ausdrücken soll. Aber egal, funktioniert.

Problem 1: Der Kunde gibt nun eben nicht seinen Firmennamen und seine Kunden-Nr. an folgt auf der nächsten Seite dies (kopier ich ans Ende meines Posts)
"Vergisst" er seinen Namen anzugeben erscheint bei dem Feld der Hinweis "Füllen Sie dieses Feld aus"
Finde ich wesentlich smarter als den Fehler unten. Habt Ihr dazu auch einen Tipp?

Problem 2: Das Feld Steuernummer heisst eben immer noch Steuernummer und nicht Kunden-Nr. Irgendwo muss doch "Siret" übersetzt sein.

Quote

Weiße Schrift ist nicht ausblenden, Google mag so etwas gar nicht.

Und jetzt mach ich Euch neidisch, Google kann mich mal am Ar... lecken, ich will ja eigentlich gar nicht gefunden werden. Da hab ich wohl so gut wie allen Anderen hier was voraus 😀
Der Shop ist nur für meine bereits gelisteten Kunden und wendet sich absolut gar nicht an Endverbraucher. Von daher....
Aber davon abgesehen, ist es natürlich korrekt was Du sagst.

[PrestaShopException]

Kein Eintrag in Customer->company
at line 954 in file classes/ObjectModel.php

949.             }
950. 
951.             $message = $this->validateField($field, $this->$field);
952.             if ($message !== true) {
953.                 if ($die) {
954.                     throw new PrestaShopException($message);
955.                 }
956.                 return $error_return ? $message : false;
957.             }
958.         }
959. 

 

Link to comment
Share on other sites

Der ausführliche Fehlerhinweis müßte verschwinden, wenn Error Reporting deaktiviert wird (aktiviert man ja nur für Testzwecke). Was für eine Meldung dann erscheint, weiß ich freilich auch nicht ...

Mit den Übersetzungen in Prestashop 1.7 kenne ich mich nicht aus, müßte sich aber doch finden lassen ... Wenn du nicht mehrere Sprachen verwendest, kannst du die Änderung auch direkt in der tpl vornehmen.

OK, Suchmaschinen brauchst du nicht, ich würde aber nicht ausschließen, daß irgendwann auch ein Browser weiße Schrift auf weißem Hintergrund erkennt und deine Seite als gefährlich einstuft. Schließlich ist die korrekte Vorgehensweise nicht aufwändiger und deshalb auf jeden Fall vorzuziehen.

Link to comment
Share on other sites

Yes, ich habs geschafft :-)

Nachdem ich Debug ausgeschaltet habe, werden die nicht ausgefüllten Felder rot markiert. Ohne Hinweis, aber man kommt nicht weiter - Top

Die noch fehlende Übersetzung der Steuernummer (bzw. Siret) findet man im Standard-Template! Nicht im eigenen.
Ist dann in Shop -> Forms -> Labels
Dort dann nach " Identification number ", nicht nach "Siret" (warum auch)

Da muss man erst mal drauf kommen. Sonst findet man alles im eigenen Template, aber das eben nicht.

Frage beantwortet. Vielen Dank für Eure Hilfe.

Link to comment
Share on other sites

Braucht Dir ja nicht leid tun, passt schon 😉

Wenn man in PS 1.7 die B2B Funktion aktiviert, erscheint in der Kundenregistrierung das Feld >Firma< und eben >Steuernummer<.

Mein Wunsch war diese beiden Felder zu Pflichtfeldern umzubauen und Steuernummer in Kunden-Nr. umzubennen. Das hat mit den Tipps hier auch geklappt.

Das ich jetzt Siret schreibe hat mehrere Gründe:

  1. in PS1.6 wurde mit Aktivierung der B2B Funktion ein Feld freigeschaltet das sich Siret nennt. In der Tat konnte auch nur eine 5-stellige Nr. eingegeben werden.
    In PS1.7 hat man wohl diese Restriktion entfernt und das Feld für deutsche PS Installationen (in anderen Sprachen sicher auch) in Steuer-Nr. umbenannt.
  2. in der customer.tpl kann man mit dem Codechnipsel oben von JBW auch das Feld "Siret" zum Pflichtfeld machen
    <input class="form-control" name="siret" type="text" value="" required="" wfd-id="124">

     

  3. Im Backend erscheint im Kundenbereich " SIRET (nur Frankreich) "
    Gebe ich bei der Registrierung nun die Nr. ein, erscheint sie im Backend genau dort.
  4. In der DB habe ich nicht nachgesehen, behaupte aber mal blind, es heisst dort Siret?

Bei meinem letzten Post wies ich lediglich auf den Umstand hin, dass man nach der englischen Übersetzung suchen muss, nicht nach der Originalbezeichnung. Das ist alles.

Auch wenn die Aussage Siret ist gleich Steuernummer sachlich falsch ist, ist sie technisch korrekt um mein Problem zu lösen.

Junge, so viel Text für zwei Felder 🙂

 

Edited by henner2605 (see edit history)
Link to comment
Share on other sites

Eigentlich hatte das Feld siret in der ps_customer schon immer 14 Zeichen, während das Feld "vat_number" (SteueridentNr), das sich in der Tabelle ps_address befindet und für die Aufnahme der Steuernummer gedacht ist, schon immer 32 Zeichen hatte. Im Back Office lässt sich einstellen, welche Felder bei der Anmeldung angezeigt werden sollen und ob die Steuernummer ein Pflichtfeld sein soll.

Ob da ein neuerdings Fehler in 1.7 vorliegt, kann ich jetzt nicht beurteilen.

 

Link to comment
Share on other sites

  • 3 weeks later...
On 11/17/2018 at 1:51 PM, eleazar  said:

Im Back Office lässt sich einstellen, welche Felder bei der Anmeldung angezeigt werden sollen und ob die Steuernummer ein Pflichtfeld sein soll.


Wo denn? Also ich habe diese Konfigurationsmöglichkeiten bisher nirgendwo entdecken können oder Sie sind unsäglich verteilt oder versteckt, so dass ich die Teile, die ich Suche nicht finde 🤷‍♂️

Einige Sachen findet man unter "Einstellungen->Shop Einstellungen->Benutzerdefinierte Einstellungen". Dort kann man zum Beispiel das Geburtsdatum an-/abschalten, die Partnerangebote an-/abschalten und den B2B-Modus an-/abschalten. Aber hier sucht man die Konfiguration vorhandener Felder vergeblich!

Unter "Verkauf ->Kunden" wiederum kann man zwar zusätzliche Pflichtfelder für die Anmeldung definieren, aber die Vorhandenen kann man nicht ändern! Ja zugegeben hier kann ich die VAT-Number als Pflichtfeld aktivieren, aber das hilft mir in Kombination mit dem B2B-Modus nicht weiter, denn wenn man nämlich wie oben beschrieben den B2B-Modus aktiviert hat, dann erscheinen bei der Registrierung die Felder "Firma" und "Steuernummer" als optionale Felder. Dabei ist Steuernummer mit dem Namen "siret" versehen. Beide Felder kann man im Backend aber nicht ausschalten, umbenennen oder zu Pflichtfeldern machen.

Ich habe mich dabei auch schon totgesucht und mich sogar schon mit meinem gebrochenen Französisch in dessen Foren rum getrieben ohne eine wirkliche Antwort zu bekommen, außer das natürlich die eierlegende Wollmilchsau der kostenpflichtigen Module durchs Dorf getrieben wird 😐 

Meine Lösung war letztendlich, dass ich die automatische Generierung des Registrierungsformulars komplett aus dem Template raus geworfen habe und meine Registrierung nach Vorbild der automatischen Generierung selbst zusammen gebaut habe. Das ist nicht schön, weil dadurch jetzt natürlich gar nichts mehr daran durch das Backend verändert werden kann aber so habe ich nun endlich ein Formular was die Felder und Pflichtfelder enthält, die ich haben will und sogar einen Datenschutzhinweis über die Zustimmung zur Datenverarbeitung enthält, der übrigens nicht mal durch das Rechtsicherheitsmodul hinzugefügt wird 😉👍

Wenn du mir jetzt allerdings mitteilen kannst, wo ich besagte Einstellungen vornehmen kann, würde ich natürlich umschwenken und eine Konfiguration über das Backend bevorzugen! Ansonsten ist das Registrierungsformular jedoch für die meisten Kunden, die ich betreue eigentlich gänzlich unbrauchbar gewesen!

Gruß

Edit: Ich hab auch gerade gesehen, dass man unter "Verkauf ->Kunden" die VAT auch gar nicht für die Registrierung aktivieren kann, sondern nur für das spätere Formular der Adresseingabe wenn man angemeldet ist!

Edited by s.kick (see edit history)
Link to comment
Share on other sites

Es gibt noch ein Modul mit dem man zusätzliche Felder definieren kann, das hatte ich für meinen 1.6 Shop auch genutzt.
https://addons.prestashop.com/en/contact-forms-surveys/21439-custom-fields-custom-form-builder-maker.html

Allerdings kann man auch damit nicht die Felder Firma/Siret ausblenden oder zu Pflichtfeldern machen, bzw, sie umbenennen, zumindest nicht für V 1.6.
Auch die Integration ins Formular ist nicht wirklich optimal, da die Zusatzfelder einfach unten dran gehängt werden.

Genutzt hatte ich es dann noch für ein Kontrollkästchen zum akzeptieren der Nutzungsbedingungen.

Für meinen 1.7 komme ich aber mit der oben beschriebenen Vorgehensweise gut klar. Nicht mehr Felder als unbedingt nötig, schreckt nur ab.

Link to comment
Share on other sites

5 minutes ago, henner2605 said:

Es gibt noch ein Modul mit dem man zusätzliche Felder definieren kann, das hatte ich für meinen 1.6 Shop auch genutzt.
https://addons.prestashop.com/en/contact-forms-surveys/21439-custom-fields-custom-form-builder-maker.html

Ja das Modul kenne ich auch und habe es auch schon genutzt! Ist nicht ganz optimal und hat mir bei meinem Problem auch nicht geholfen. Ich sehe generell ja auch ein, dass man Geld verdienen will und deshalb das ganze Modulsystem eingeführt hat. Bei individuellen und Luxusanpassungen sehe ich da auch gar kein Problem!

Bei manchen Sachen beißt man dann aber schon ein bisschen in die Tischkannte, wenn Sachen, die eigentlich Standard sind erst funktionieren, wenn man dafür ein Modul kauft. Letztendlich muss man das ja auch dem Kunden erzählen und der zeigt einem dann schon schnell mal einen Vogel und fragt einen, ob man Ihn verarschen will, wenn man ihm zu erklären versucht, dass die Registrierung als B2B-Kunde im Shop, der eine B2B-Funktion mitbringt erst möglich ist, wenn man zusätzliches Geld auf den Tisch legt!

So gerne ich Prestashop mag und nutze aber da hört der Spaß einfach auf! Hatte neulich auch schon so eine Sache mit dem Export der Artikeldaten, der auch vollkommen missverständlich ist und nur die im Backend sichtbaren Daten exportiert, was für einen Reimport völlig unbrauchbar ist. Wenn ich eine Exportfunktion sehe gehe ich aber erstmal davon aus, dass ich eine Tabelle bekomme, die ich auch wieder über die Importfunktion zurückspielen kann ... weit gefehlt ☝️😉

Link to comment
Share on other sites

Wenn man für ein Shopsystem einen hohen Preis bezahlt kann man solche Erwartungen haben, nicht jedoch bei einem kostenlosen Shopsystem. Der Normalfall ist, daß man ein solches System als Basis nutzt und von einer Agentur an die persönlichen Bedürfnisse anpassen läßt oder eben mit kostenpflichtigen Modulen, was man beim Kauf- oder Mietpreis spart, geht dann eben dafür drauf (wobei hier außer dem Anbieter des Shopsystems auch externe Agenturen und Entwickler Geld verdienen können). Schließlich willst du mit dem Shopsystem ja wohl selbst auch Geld verdienen!

Welche Felder bei der Anmeldung (bzw. genauer bei der Adressangabe, bei der Anmeldung wird ja normalerweise neben dem Namen nur die E-Mail-Adresse abgefragt) angezeigt werden, stellt man für die einzelnen Länder im BackOffice ein.

Link to comment
Share on other sites

In 1.7 ist das International - Länder & Gebiete - Länder. Dort kann man für das jeweilige Lande die Felder einstellen. Greift aber nicht in der ersten Registrierung, sondern erst wenn der Kunde später die Rechnungs- und Lieferanschriften angeben muss.

Hättest Du Jeff Bezos seinen Shop für 29 Euro angeboten, wärst Du sein bester Freund 🙂
Ein Shop kostet an irgendeiner Stelle Geld, und das ist okay, schließlich erwirtschaftet das Unternehemen damit Geld. Das ist keine Leistung die man für Umme abverlangen kann.
Bis mein 1.7 steht, so schätze ich, habe ich ca. 200 Euro für Module und Templates bezahlt. Dazu dann noch meine Arbeit. Das ist absolut okay.

Ich finde es auch seltsam, warum man PS nicht als reinen B2B einrichten kann, im Grunde ist ja alles da und könnte mit wenigen Klicks eingestellt werden. Die Module die man benötigt um eine Zwangsregistrierung vor betreten des Shops einzurichten sind, nunja, halbgar. Sie funktionieren halt irgendwie. Man ist also auf die Modulentwickler angewiesen. Gibts keinen Entwickler für eben dieses Modul siehts düster aus.

Link to comment
Share on other sites

B2B heißt ja normalerweise nicht, daß man den Shop nicht betreten kann, sondern nur (unter anderem), daß man unregistriert oft die Preise nicht sehen kann. Ein Shop mit Türsteher ("Du kommst hier nicht rein!") ist vielleicht eher eine deutsche Spezialität?

Generell kann man alles, wofür es kein fertiges Modul gibt, selbst programmieren bzw. eine Agentur beauftragen.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...