MSXGames Posted October 3, 2013 Share Posted October 3, 2013 Hallo iedereen, Ik loop tegen 3 problemen aan, hopelijk kan het opgelost worden: 1) Als ik B2B inschakel, dan kunnen bedrijven hun kvk-nummer invoeren, maar helaas geeft prestashop een fout melding dat de kvk nummer niet goed is, hoe is dit op te lossen 2) Ik wil alleen b2b doen en wil dan geen prijzen laten zien, totdat de gebruiker is ingelogd, hoe krijg ik dat voor elkaar ? 3) Ik wil klanten die zich registreren goed keuren en dan pas kunnen ze inloggen en de prijzen zien, hoe doe ik dat. Bedankt alvast voor jullie hulp. Groeten Link to comment Share on other sites More sharing options...
holpen Posted October 6, 2013 Share Posted October 6, 2013 Hallo, Ik herken je problemen en vragen - heb ze zelf ook gehad! En je zoekt je al snel zes slagen in de rondte naar de oplossingen. Misschien kun je hier iets mee? 1) Het systeem controleert of het KvK-nummer voldoet aan het Franse Siret-systeem; en dat werkt met NL-nummers natuurlijk niet. Een "quick'n'dirty"-methode om deze controle op te heffen is het volgende: In het bestand /classes/Customer.php vind je de volgende regel (bij mij is het regel 175): 'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isSiret'), Haal het stuk dat de controle verzorgt weg, zodat de regel luidt: 'siret' => array('type' => self::TYPE_STRING), (let op de komma's e.d.!) Nogmaals: dit is een directe hack en slechts een workaround, niet de voorgeschreven wijze; over het algemeen is het niet aan te raden om de code van de core-bestanden te wijzigen. Officieel zou je het op een andere wijze moeten oplossen, maar dit werkt ook. Het kan wel zijn dat na een automatische update (zou ik nooit doen op een goed draaiende live webshop; je weet nooit ....) deze aanpassing weer weg is en je het weer opnieuw moet veranderen. 2) Ga in de backend naar Klanten > Groepen Je ziet nu een lijst met groepen. De eerste heet Visitors. Onder het kopje "Toon prijzen" kun je klikken op het groene vinkje om het tonen van prijzen uit te schakelen. 3) Op dit topic vind je de Validate Customer module, die precies dat doet wat jij zoekt. Via de backend nog even zelf een vertalinkje inkloppen, als je dat nodig vindt en klaar! Nieuwe aanmelders krijgen een bericht te zien dat hun aanvraag eerst goedgekeurd moet worden. Je kunt zelf in de backend met een paar klikken de nieuwe gebruiker op actief zetten. Groetjes en succes! 1 Link to comment Share on other sites More sharing options...
MSXGames Posted October 7, 2013 Author Share Posted October 7, 2013 Bedankt voor je antwoorden, ik ga er meteen aan de slag. Groeten Link to comment Share on other sites More sharing options...
PascalVG Posted October 8, 2013 Share Posted October 8, 2013 Voor de volledigheid, de functie die checkt of het een geldig SIRET nummer is, staat in het bestand: classes/Validate.php: public static function isSiret($siret) { if (Tools::strlen($siret) != 14) return false; $sum = 0; for ($i = 0; $i != 14; $i++) { $tmp = ((($i + 1) % 2) + 1) * intval($siret[$i]); if ($tmp >= 10) $tmp -= 9; $sum += $tmp; } return ($sum % 10 === 0); } Je kunt hier evt je eigen isKvK() functie aan toevoegen :-) pascal 1 Link to comment Share on other sites More sharing options...
frank de beer Posted March 10, 2014 Share Posted March 10, 2014 Voor de volledigheid, de functie die checkt of het een geldig SIRET nummer is, staat in het bestand: classes/Validate.php: public static function isSiret($siret) { if (Tools::strlen($siret) != 14) return false; $sum = 0; for ($i = 0; $i != 14; $i++) { $tmp = ((($i + 1) % 2) + 1) * intval($siret[$i]); if ($tmp >= 10) $tmp -= 9; $sum += $tmp; } return ($sum % 10 === 0); } Je kunt hier evt je eigen isKvK() functie aan toevoegen :-) pascal WOOT!! eindelijk gevonden. dank hiervoor. maar... Hoe zou die code voor de kvk-check er uit moeten zien? ben geen crack in php, begrijp er zelfs maar ongeveer 5% van, denk ik. maar de code hierboven checkt of een nummer 14 karakters lang is? is het voor een nl-kvknummer dan voldoende om 14 te veranderen in 12? Link to comment Share on other sites More sharing options...
PascalVG Posted March 10, 2014 Share Posted March 10, 2014 (edited) Hoi frank, waarschijnlijk iets van: public static function isKvK($kvk) { return (bool)preg_match('/^[0-9]{8,11}$/', $kvk); } Waarbij de Siretwaarde dan kan worden omgedoopt tot KvKNummer: 'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isKvK') Je kunt deze functie aan /classes/Validate.php toevoegen. Alleen oppassen bij upgraden. (Ik geloof dat je deze file ook kunt kopieren naar de /override/classes/Validate.php en dan hier de verandering toevoegen. Probeer maar even) Ik geloof dat een KvK nummer 8 cijfers is, met evt een 3cijferige subcode, vandaar {8,11} (minimaal 8, maximaal 11) : http://www.higherlevel.nl/forum/index.php?board=50;action%3Ddisplay;threadid%3D28479 Maar het kan tegenwoordig ander zijn, dus check dat wellicht even bij de KvK zelf. Edited March 10, 2014 by PascalVG Added file name to edit (see edit history) Link to comment Share on other sites More sharing options...
frank de beer Posted March 10, 2014 Share Posted March 10, 2014 thnx, ga er ff mee stoeien, hoewel een check voor een kvk niet een halszaak is. het grootste probleem was dat mensen geen kvk konden invoeren zonder foutmelding, en dat kan nu wel vind het wel jammer dat het zo lastig is de inlog-pagina aan te passen naar wens zonder kennis van php. hopelijk in een toekomstige versie... Link to comment Share on other sites More sharing options...
PascalVG Posted March 11, 2014 Share Posted March 11, 2014 Hoi Frank, laat me weten of het lukt. Had je iets speciaals gewild met je login pagina? Zo ja, Maak dan misschien iets van een schetsje of neem een screen-copy en zet er wat pijlen op waar je velden heen wilt verplaatsen, of kras door wat weg wil hebben etc. Wellicht kunnen we iets voor je doen. Meestal is waarschijnlijk niet in een wijziging in de php files, maar een aanpassing in themes/<je theme folder>/css/global.css nodig. Hier staan de "css definities" die op de meeste pagina's gebruikt wordt. CSS definieert the layout van invoervelden, blokken, text etc, zonder dat je aan de php code hoeft te komen (php is de functionaliteit van de pagina, css de opmaak) Is leuk om mee te spelen. Als je Chrome gebruikt, click eens met de rechtermuis op een stukje van je pagina, bijv een stuk texts, of een invoerveld en click "Inspect element". Dan zie je rechtsonder de css code die betrekking heeft op dat stuk text of invoerveld. Je kunt hier zelfs mee spelen en de waarden veranderen, en je ziet dan direct de wijzigingen doorgevoerd op de pagina (moet uiteindelijk de veranderingen wel ook in de css bestanden maken, maar om uit te proberen welke code/waarden je moet gebruiken is het erg handig. Probeer maar eens! Hier meer over css: http://www.w3schools.com/css/ Groetjes, pascal. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now