Assramm (cz) Posted January 22, 2014 Share Posted January 22, 2014 (edited) Zdravím, na verzi 1.4.9 (a 1.4.11 takréž) jsem narazil na chybu které jsem si nikdy předtím nevšiml (upozornil mě až zákazník ). Při použití nastavení (!!! i při čisté instalaci): OPC (jednostránková objednávka), Nákup bez registrace, ..na pokladně, při použití "nákupu bez registrace", vyplnění adresy a uložení dat zákazníka kliknutím na tlačítko pod adresou, dojde k bezproblémovému načtení dat, vyskočí hláška "Údaje byly změněny" a lze pokračovat v objednávce až do konce. Ale, v případě, že se vrátím na obchod (nemusím měnit obsah košíku - jen odejdu ze stránky objednávky) a vrátím se zpět na objednávku (chci jí konečně dokončit), opět pod adresou na mě svítí tlačítko "Uložit" (všiml jsem si toho ale nikdy jsem na to tlašítko neklikl, nebyl důvod). Pokud se na tlačítko klikne, zamrzne volba dopravy-výběr není aktivní a je nutný refresh stránky. U poslední verze co jsem měl (1.4.0.17) se po odejetí z procesu objednávky a vrácení se zpět pod adresou oběví již hláška údaje byly změněny. Test možný ne e-shopu na 1.4.11 - www.medene-formy.cz Netušíte prosím, kde by mohla být chybka, popřípadě, jak elegantně toto obejít? Díky, J. VYŘEŠENO: pomůže tento kod v order-opc-new-account.tpl. {if isset($guestInformations) && $guestInformations.customer_firstname} <p class="submit" style="float: left;margin:25px;"> <input type="submit" class="grey_button" name="submitAccount" id="submitAccount" value="{l s='Změnit údaje a pokračovat'}" /> </p> <p style="float: left;margin:25px 0;padding: 10px 20px;border:2px solid green; color: green;display:none;" id="opc_account_saved"> <strong>{l s='Údaje byly změněny a uloženy'}</strong> </p> {else} <p class="submit" style="float: left;margin:25px;"> <input type="submit" class="exclusive button" name="submitAccount" id="submitAccount" value="{l s='Save'}" /> </p> <p style="float: left;margin:25px 0;padding: 10px 20px;border:2px solid green; color: green;display:none;" id="opc_account_saved"> <strong>{l s='Account informations saved successfully'}</strong> </p> {/if} .. Edited February 28, 2014 by Assramm (cz) (see edit history) Link to comment Share on other sites More sharing options...
Assramm (cz) Posted January 22, 2014 Author Share Posted January 22, 2014 Problém bude zřejmě někde zde (v order-opc.js): // VALIDATION / CREATION AJAX $('#submitAccount').click(function() { $('#opc_new_account-overlay').fadeIn('slow'); $('#opc_delivery_methods-overlay').fadeIn('slow'); $('#opc_payment_methods-overlay').fadeIn('slow'); // RESET ERROR(S) MESSAGE(S) $('#opc_account_errors').html('').slideUp('slow'); if ($('input#opc_id_customer').val() == 0) { var callingFile = authenticationUrl; var params = 'submitAccount=true&'; } else { var callingFile = orderOpcUrl; var params = 'method=editCustomer&'; } $('#opc_account_form input:visible').each(function() { if ($(this).is('input[type=checkbox]')) { if ($(this).is(':checked')) params += encodeURIComponent($(this).attr('name'))+'=1&'; } else if ($(this).is('input[type=radio]')) { if ($(this).is(':checked')) params += encodeURIComponent($(this).attr('name'))+'='+encodeURIComponent($(this).val())+'&'; } else params += encodeURIComponent($(this).attr('name'))+'='+encodeURIComponent($(this).val())+'&'; }); $('#opc_account_form select:visible').each(function() { params += encodeURIComponent($(this).attr('name'))+'='+encodeURIComponent($(this).val())+'&'; }); params += 'customer_lastname='+encodeURIComponent($('#customer_lastname').val())+'&'; params += 'customer_firstname='+encodeURIComponent($('#customer_firstname').val())+'&'; params += 'alias='+encodeURIComponent($('#alias').val())+'&'; params += 'other='+encodeURIComponent($('#other').val())+'&'; params += 'is_new_customer='+encodeURIComponent($('#is_new_customer').val())+'&'; // Clean the last & params = params.substr(0, params.length-1); $.ajax({ type: 'POST', url: callingFile, async: false, cache: false, dataType : "json", data: 'ajax=true&'+params+'&token=' + static_token , success: function(jsonData) { if (jsonData.hasError) { var tmp = ''; var i = 0; for(error in jsonData.errors) //IE6 bug fix if(error != 'indexOf') { i = i+1; tmp += '<li>'+jsonData.errors[error]+'</li>'; } tmp += '</ol>'; var errors = '<b>'+txtThereis+' '+i+' '+txtErrors+':</b><ol>'+tmp; $('#opc_account_errors').html(errors).slideDown('slow'); $.scrollTo('#opc_account_errors', 800); } isGuest = ($('#is_new_customer').val() == 1 ? 0 : 1); if (jsonData.id_customer != undefined && jsonData.id_customer != 0 && jsonData.isSaved) { // update token static_token = jsonData.token; // update addresses id $('input#opc_id_address_delivery').val(jsonData.id_address_delivery); $('input#opc_id_address_invoice').val(jsonData.id_address_invoice); // It's not a new customer if ($('input#opc_id_customer').val() != '0') { if (!saveAddress('delivery')) return false; } // update id_customer $('input#opc_id_customer').val(jsonData.id_customer); if ($('#invoice_address:checked').length != 0) { if (!saveAddress('invoice')) return false; } // update id_customer $('input#opc_id_customer').val(jsonData.id_customer); // force to refresh carrier list if (isGuest) { $('#opc_account_saved').fadeIn('slow'); $('#submitAccount').hide(); updateAddressSelection(); } else updateNewAccountToAddressBlock(); } $('#opc_new_account-overlay').fadeOut('slow'); $('#opc_payment_methods-overlay').fadeOut('slow'); }, error: function(XMLHttpRequest, textStatus, errorThrown) {alert("TECHNICAL ERROR: unable to save account \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);} }); return false; }); } Stačilo by aby se refreshovala stránka, popřípadě jen dopravce (nebo aby se dopravce nerefreshoval ?).. Po odklepnutí tlačítka "uložit" totiž dojde k refreshi dopravce, ale ten zamrzne.. Nevim, fak nevim Prosím prosím, někdo, netušíte? Link to comment Share on other sites More sharing options...
XM4N Posted January 22, 2014 Share Posted January 22, 2014 (edited) Mnoho problému ohledně tohoto se řešilo až v další řadě 1.5+ to co můžete zkusit je se podívat na rozdíly v kódu např. tahle chyba OPC a Guest problém s adresou u v 1.5 opravená před nějakými 3mi měsíci a vydaná v poslední verzi 1.5.6.2. Jinak pokud vám to blbne i pro čistou instalaci bez jakýchkoliv dodatečných modulů pro dopravu a platbu (ty by to mohli způsobit taky ale u vás zřejmě nikoliv) a na origo theme prestashop tak řešení bude složité a možná se vám naopak vyplatí přejít na vyšší řadu tj. 1.5 (1.6 bude mít základní jádro snad podobné takže moduly by fungovat mohly i z 1.5 ale nikdo vám to nezaručí...). Další možnost pokud by mělo stačit pořešit to tlačítko Uložit potom co se podruhé vrátíte do košíka je nějak jinak pojmenovat to tlačítko nebo nejlépe ho schovat pokud už jsou/byli údaje vyplněny-možná to už někde někdo také řešil zkuste se podívat na Aj forum nebo můžete do větve 1.4 na github zadat tuto chybu a třeba vám George Roussac ještě pošle patch. Edited January 22, 2014 by XM4N (see edit history) Link to comment Share on other sites More sharing options...
Assramm (cz) Posted January 24, 2014 Author Share Posted January 24, 2014 Díky za info, hledal jsem všemožně, zatím nic. Nicméně, snažím se o něco takového (teď budu za mamlase ale programátor nikdy nebudu, tak se předem omlouvám ). v souboru: order-opc-new-account.tpl {if ($delivery_address.length == 0) && ($invoice_address.length == 0)} <p> ** ZDE BUDE TLAČÍTKO "ULOŽIT A POKRAČOVAT" </p> {else} <p> ** ZDE BUDE TLAČÍTKO "ZMĚNIT ÚDAJE A POKRAČOVAT" </p> {/if} Myslel jsem použít: 1. změny popisku tlačítka pod adresou "uložit" použitím {if ($delivery_address.length == 0) && ($invoice_address.length == 0)} ..Ale tento zápis samozřejmě nefunguje (nevím proč ), 2. V případě odkliknutí tlačítka "uložit" refreshovat stránku. Tím by bylo vše OK. Díky Link to comment Share on other sites More sharing options...
Assramm (cz) Posted January 26, 2014 Author Share Posted January 26, 2014 Díky za info, hledal jsem všemožně, zatím nic. Nicméně, snažím se o něco takového (teď budu za mamlase ale programátor nikdy nebudu, tak se předem omlouvám ). v souboru: order-opc-new-account.tpl {if ($delivery_address.length == 0) && ($invoice_address.length == 0)} <p> ** ZDE BUDE TLAČÍTKO "ULOŽIT A POKRAČOVAT" </p> {else} <p> ** ZDE BUDE TLAČÍTKO "ZMĚNIT ÚDAJE A POKRAČOVAT" </p> {/if} Myslel jsem použít: 1. změny popisku tlačítka pod adresou "uložit" použitím {if ($delivery_address.length == 0) && ($invoice_address.length == 0)} ..Ale tento zápis samozřejmě nefunguje (nevím proč ), 2. V případě odkliknutí tlačítka "uložit" refreshovat stránku. Tím by bylo vše OK. Díky Prosím, nepomohl by mi někdo s tímto zápisem v order-opc-new-account.tpl? Moc by mi to pomohlo, Děkuji.. 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