Jump to content

Recommended Posts

Hallo,

 

Het komt regelmatig bij ons voor dat klanten vergeten hun huisnummer in te voeren bij hun bestelling.

Dit veroorzaakt nogal wat (onnodig) werk omdat ze dan benaderd moeten worden met de vraag wat het correcte huisnummer is. In enkele gevallen is het zelfs voorgekomen dat het emailadres van de klant ook niet klopte waardoor er geen manier was om achter het huisnummer te komen.

 

Het zou daarom prettig zijn als het huisnummer toegevoegd zou kunnen worden als verplicht veld. Heb met Googlen wel een aantal omslachtige manieren gevonden waarbij er veel code gewijzigd moest worden. Uit de reacties maakte ik op dat dit niet altijd werkte.

Buiten het feit dat ik het onbegrijpelijk vind dat dit blijkbaar nog niet standaard in de BO van Prestashop is te wijzigen, vroeg ik me af of iemand hier een simpele oplossing weet om dit voor elkaar te krijgen. Liefst zonder betaalde module, maar als het niet anders kan zijn tips mbt modules ook welkom!

(Prestashop 1.6.0.8)

 

Bedankt!

 

-Dave

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

Bedankt voor je reactie.

Ik neem aan dat je de optie bedoelt in Localization > Countries?

Naar die optie heb ik gekeken. Bij mij is echter maar 1 adres zichtbaar in de FO.

Ik vermoed dat dit in mijn template zo is ingesteld. Ik zal eens het standaard template activeren om te kijken of het inderdaad aan het template is.

Link to comment
Share on other sites

Kom er net achter dat de adres 2 regel wel zichtbaar is bij het checkout proces waarbij ik een account aanmaak. Heb vervolgens adres 2 in de translations bestanden hernoemd naar huisnummer. Ik ben er inmiddels ook achter hoe ik dit een verplicht veld kan maken (classes/Address.php)

Maar.... het probleem zit hem bij de guest checkout. De tweede adres regel is daar niet zichtbaar. En als ik nu een test uitvoer en een bestelling wil plaatsen als guest dan krijg ik de melding dat ik het huisnummer moet invullen. Maar die is dus niet zichtbaar bij de guest checkout :wacko:

 

Dus adres 2 weer niet verplicht gemaakt. Als er iemand is die weet hoe ik de 2e adres regel ook in de guest checkout zichtbaar kan maken dan hou ik me aanbevolen!

Link to comment
Share on other sites

Ok, met behulp van een ander topic (https://www.prestashop.com/forums/topic/288682-address-2-missing-from-guest-checkout/?p=2071545) is het me (zo goed als) gelukt.

Aangezien de code in dit topic niet helemaal overeenkwam met de mijne zal ik volledigheidshalve opsommen hoe ik het gedaan heb:

 

Ik heb mijn BO overigens in het Engels staan omdat ik dit handiger vind dus ik houd ook die benamingen aan.

  1. In de BO, Localization > translations. Bij Front Office translations, <jou theme>, Nederlands, de vertaling van Address (Line 2) aangepast en er daar 'huisnummer' van gemaakt. Dit moet je in ieder geval doen bij 'order-opc-new-account' om dit zichtbaar te krijgen tijden guest checkout. Je kan hem ook nog aanpassen in 'addresses'  en 'authentication' maar dit maakt niets uit voor de FO.
  2. Om de adres regel zichtbaar te maken bij de guest checkout moet er code aangepast worden. Maak eerst een nieuwe class aan in /theme/css/global.css. De naam kan je zelf verzinnen, ik gebruik hier voor de duidelijkheid nieuwe_class.
    .nieuwe_class
    {display:inherit!important;}
    

    Vervolgens moet het bestand /theme/order-opc-new-account.tpl aangepast worden. Zoek in dit bestand naar de string

    {elseif $field_name eq "address2"}
    

    De regel daaronder moet aangepast worden, hier moet de eerder gemaakte class aan toegevoegd worden zodat hij er zo uitziet

    <p class="text is_customer_param nieuwe_class">
    

    Deze regel komt 2 keer voor in het bestand. Pas hem daar ook aan zodat de regel ook zichtbaar wordt op de factuur.

  3. Om de regel ook een verplicht invoerveld te maken moet het bestand /classes/Addresses.php worden aangepast. Kijk in de fields van id_address en zorg ervoor dat address2 er hetzelfde uitziet als address1, zo dus:

    'address1' => 			array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128),
    'address2' => 			array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true,'size' => 128),
    

Als alles goed is gegaan is Adres 2 nu zichtbaar bij de guest checkout onder de naam 'huisnummer' en is tevens een verplicht veld.

Het enige wat ik nog uit moet zoeken is hoe ik de de * zichtbaar krijg zodat het ook voor de bezoeker duidelijk is dat dit een verplicht veld is.

Mocht iemand tips hebben....

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

sorry, hier houd mijn kennis op.

ik zie alleen dat het in jou theme, albedo, zit.

ik denk dat je moet zoeken naar quick-order.

hoop dat je hier iets mee kan?

 

Is dus al gelukt! Maar bedankt voor het meedenken!!

(was overigens voor een andere webshop dan degene in mn signature, maar bleek dus niet aan het theme te liggen :) )

  • Like 1
Link to comment
Share on other sites

  • 5 months later...

Ok, met behulp van een ander topic (https://www.prestashop.com/forums/topic/288682-address-2-missing-from-guest-checkout/?p=2071545) is het me (zo goed als) gelukt.

Aangezien de code in dit topic niet helemaal overeenkwam met de mijne zal ik volledigheidshalve opsommen hoe ik het gedaan heb:

 

Ik heb mijn BO overigens in het Engels staan omdat ik dit handiger vind dus ik houd ook die benamingen aan.

  1. In de BO, Localization > translations. Bij Front Office translations, <jou theme>, Nederlands, de vertaling van Address (Line 2) aangepast en er daar 'huisnummer' van gemaakt. Dit moet je in ieder geval doen bij 'order-opc-new-account' om dit zichtbaar te krijgen tijden guest checkout. Je kan hem ook nog aanpassen in 'addresses'  en 'authentication' maar dit maakt niets uit voor de FO.
  2. Om de adres regel zichtbaar te maken bij de guest checkout moet er code aangepast worden. Maak eerst een nieuwe class aan in /theme/css/global.css. De naam kan je zelf verzinnen, ik gebruik hier voor de duidelijkheid nieuwe_class.
    .nieuwe_class
    {display:inherit!important;}
    

    Vervolgens moet het bestand /theme/order-opc-new-account.tpl aangepast worden. Zoek in dit bestand naar de string

    {elseif $field_name eq "address2"}
    

    De regel daaronder moet aangepast worden, hier moet de eerder gemaakte class aan toegevoegd worden zodat hij er zo uitziet

    <p class="text is_customer_param nieuwe_class">
    

    Deze regel komt 2 keer voor in het bestand. Pas hem daar ook aan zodat de regel ook zichtbaar wordt op de factuur.

  3. Om de regel ook een verplicht invoerveld te maken moet het bestand /classes/Addresses.php worden aangepast. Kijk in de fields van id_address en zorg ervoor dat address2 er hetzelfde uitziet als address1, zo dus:

    'address1' => 			array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128),
    'address2' => 			array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true,'size' => 128),
    

Als alles goed is gegaan is Adres 2 nu zichtbaar bij de guest checkout onder de naam 'huisnummer' en is tevens een verplicht veld.

Het enige wat ik nog uit moet zoeken is hoe ik de de * zichtbaar krijg zodat het ook voor de bezoeker duidelijk is dat dit een verplicht veld is.

Mocht iemand tips hebben....

 

Ik weet niet of het nog relevant is voor je maar om een * zichtbaar te krijgen moet je de regels onder :

<p class="text is_customer_param nieuwe_class">

wijzigen in:

<div class="required text form-group">
                            <label for="address2">{l s='Address (Line 2)'} <sup>*</sup></label>
                            <input type="text" class="text form-control validate" name="address2" id="address2" data-validate="isAddress" value="{if isset($guestInformations) && isset($guestInformations.address2) && isset($guestInformations) && isset($guestInformations.address2) && $guestInformations.address2}{$guestInformations.address2}{/if}" />
                        </div>

Het gaat er in ieder geval om dat je:

<sup>*</sup>

in je label code hebt staan.

 

 

Hopelijk ben jij of iemand anders er in de toekomst mee geholpen.

  • Like 1
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...