Mesaj # 1 | 5:22 PM
Completarea formularului de comandă în Magazinul Online cu informațiile din profilul utilizatorului (cumpărătorului)


Aceste instrucțiuni sunt adresate în principal pentru website-urile cu autorizație «locală».

Autorizația «locala» poate fi activată pentru website-urile Premium— website-uri pentru care s-a activat cel puțin o dată un serviciu (sau un pachet de servicii), care costă mai mult de 2$ pe lună. Dacă ați plătit pentru modulul Magazin online – felicitari, site-ul dvs este considerat a fi unul Premium de către sistemul uCoz.

Autorizația «locala» poate fi activată din Panoul de Control → Modulul «Utilizatori» → «Setările modulului» → «Metodele permise de autorizare a utilizatorilor: Utilizatori locali».

Puteți modifica aproape orice câmp din detaliile utilizatorului după cum doriți: doar schimbați denumirea câmpului aici: Panoul de Control → butonul «Setări» din Admin-bar → «Înlocuirea frazelor standard» → «FORMULARUL PENTRU ÎNREGISTRAREA NOILOR UTILIZATORI AI SITE-ULUI» → link «modifică» langa campul dorit → butonul «Salvează» în partea de jos a paginii.

De asemenea, dacă doriți să activați sau să dezactivați unele câmpuri — o puteți face aici: Panoul de Control → Modulul «Utilizatori» → «Setările modulului» → «Câmpurile formularului de înregistrare».

Primul steag este responsabil pentru activarea câmpului; al doilea steag vă spune dacă este NECESARĂ completarea câmpului.

Astfel, pentru a completa formularul comenzii pe website-ul dvs, este necesar API: scriptul va prelua detaliile utilizatorului prin uCoz API și va completa formularul în funcție de acestea.

uCoz API returnează rezultatele în format XML-RPC. Mai multe informații cu privire la activarea API pentru website (Panoul de Control → butonul «Setări» din Admin-bar → «Setări standard» → «Permite folosirea API»; nu activați «Foloseşte cheie API» — nu are vreun sens, dacă folosiți API cu JavaScript) și definiția câmpurilor API o puteți găsi în varianta engleză a forumului nostru: http://forum.ucoz.com/forum/37-13083-1

Pentru a obține datele într-un format utilizabil JavaScript, următoarele funcții JavaScript vor fi utilizate:

Cod:
Cod
function getAPI(APIURL) {
var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ActiveXObject)
? new ActiveXObject('Microsoft.XMLHTTP') : false;
if(!request)
return false;
window.getAPIdata;
request.onreadystatechange = function() {
if(request.readyState == 4) {
if(request.status == 200) {
var response = request.responseXML;
var names = response.documentElement.getElementsByTagName('name');
var data = {};
for(i = 0; i < names.length; i++) {
var name = names[i].firstChild.nodeValue;
var value = names[i].parentNode.getElementsByTagName('value')[0].firstChild;
value = value.firstChild !== null ? value.firstChild.nodeValue : '';
data[name] = value;
}
window.getAPIdata = data;
}
}
}
request.open('GET', APIURL, false);
request.send();
return window.getAPIdata;
}


=========================================================

Așadar, copiați acest cod și salvați-l într-un fișier denumit getAPI.js

Încărcați acest fișier pe website-ul dvs: Panoul de Control → «Manager de fişiere».

Dați click pe numele fișierului și sistemul vă va oferi link-ul către acest fișier. Acest link va fi utilizat pentru a include codul fișierului în paginile website-ului dvs.

Așadar, mergeți în cadrul website-ului la Panoul de Control → butonul «Design» din Admin-bar → «Administrarea design-ului (şabloane)» → «Secţiuni globale» / «Partea inferioară a site-ului». Toate instrucțiunile următoare trebuie executate acolo.

Derulați în jos până la finalul acestui șablon. Întregul cod va fi adăugat acolo.

În primul rand, includeți script-ul ce a fost menționat mai sus, în cadrul șablonului website-ului – adăugați următorul cod:

Cod:

Cod
<?if($MODULE_ID$='shop' && $PAGE_ID$='checkout')?>

<script type="text/javascript" src="http://yoursitename.ucoz.ro/getAPI.js"></script>

<!-- here will go another script <img src="http://s54.ucoz.net/sm/1/wink.gif" border="0" align="absmiddle" alt="wink" /> -->

<?endif?>


Scurtă explicație:

Operatorul if ... endif va trimite către uCoz informația cum că următorul cod ar trebui sa fie utilizat doar pe pagina de comanda din cadrul Magazinului online.

Tag-ul script informeaza bowser-ul vizitatorului ca în pagină ar trebui inclus și codul getAPI.js (astfel funcția getAPI va funcționa pe această pagină).

Apoi, veți avea nevoie să adăugați codul pentru completarea formularului de comandă. Partea pe care deja ați adăugat-o șablonului website-ului, se va modifica după cum e mai jos:

Cod:

Cod
<?if($MODULE_ID$='shop' && $PAGE_ID$='checkout')?>

<script type="text/javascript" src="http://yoursitename.ucoz.ro/getAPI.js"></script>

<script type="text/javascript">
$(document).ready(
function() {

var data = getAPI('/api/index/8');

$('#order-fld-1').val(data['USER_NAME']);
$('#order-fld-4').val(data['USER_EMAIL']);
$('#order-fld-2').val(data['USER_MSN']);
$('#order-fld-3').val(data['USER_COUNTRY'] + ', ' + data['USER_CITY'] + ', ' +
data['USER_YAHOO']);

} // end document ready checkout

); // end document ready
</script>

<?endif?>


=========================================================

Dupa cum ați observant, acest comentariu HTML:

Cod
<!-- here will go another script <img src="http://s54.ucoz.net/sm/1/wink.gif" border="0" align="absmiddle" alt="wink" /> -->


a fost înlocuit de către scriptul adițional.

Este destul de facil pentru utilizatorii avansați: doar rulăm funcții anonime, când pagina este complet încărcată.

Funcția înlocuiește valorile din câmpurile formularului de comandă.

$('#order-fld-3') — order-fld-3 acesta este ID-ul corespunzător câmpului din formular;
data['USER_NAME'] — este un rezultat al funcției getAPI('/api/index/8'), care obține informații despre utilizatorul curent.

Această parte a codului este cea mai complicată pentru începători. Nu este foarte ușor să afli ID-urile necesare pentru utilizatorul care nu este familiar cu HTML și JavaScript.

Așadar, puteti cere ajutor de la Echipa de Suport tehnic: Panoul de Control → butonul «Ajutor» din Admin-bar → «Asistenţă tehnică». Astfel veți afla ce ar trebui să modificați în comandă pentru ca soluția să fie funcțională și pentru website-ul dvs.

Și apoi funcția va putea lucra și pe website-ul dvs.

În plus, în acest exemplu, unele câmpuri sunt privite în mod diferit: de exemplu, USER_MSN se comportă ca Numar de telefon și câmpul USER_YAHOO se comportă ca Adresa.

Alte informații:

Acest script nu utilizează librăria jQuery.
Script-ul preia documentul XML-RPC și îl decodifică într-un obiect JavaScript.

Utilizare:

Cod
var APIdata = getAPI('/api/index/8');


Unde:

APIdata este o variabilă, care va conține rezultatele decodate ale API-ului uCoz [typeof(APIdata) - object];

'/api/index/8' este un string - URL, din cadrul căruia documentul XML-RPC va fi încărcat.
Exemplul curent de URL returnează detalii despre vizitatorul curent.

Rezultate de referință:

APIdata[NAME] va returna valoarea pentru cheia "NAME", vedeți documentația XML-RPC pentru detalii.

De exemplu:

Cod
var APIdata = getAPI('/api/index/8');
alert( APIdata['USER_NAME'] );


va afișa (avertiza) numele utilizatorului curent.

Mai multe detalii despre API-ul uCoz puteți găsi aici: http://forum.ucoz.com/forum/37-13083-1 (Engleză).
Astfel, după ce ați făcut o cerere către URL-ul dorit, puteți găsi valori pentru "Numele câmpului" (care sunt descrise în manualul prezentat anterior).
Versiunea curentă a scriptului poate fi găsită aici: http://testing-website.ucoz.net/js/getAPI.js

Manualul în care se găsesc explicații complete asupra script-ului poate fi descărcat și de aici: http://testing-website.ucoz.ro/Documents/EShopFillingOrderFormAPI.pdf

Be the change you want to see in the world. M Gandhi.