Nu cu mult timp în urmă a primit coletul. Se pare o experiență foarte plăcută. Chiar și fără efort, poți ceea ce vrei să faci. Procesul în sine ozhdaniya și incertitudinea au unele farmec.
Cumva am avut nevoia de a face cu module de e-commerce. asociație numită Ubercart pentru Drupal. Ubercart constă dintr-un număr mare de module, baza de alimentare a coșului și proprietățile de setare ale produsului, puteți calcula costurile de transport și de a oferi o varietate de metode de plată. dificultate deosebită a cauzat calcula costurile de transport. Kit-ul standard de Ubercart are un pret fix, de calcul greutate și integrare cu serviciile UPS și USPS. Ultimele două pentru noi nu este destul de relevantă.
Rata fixă și calcularea greutății nu face posibilă punerea în aplicare a algoritmului de calcul al costurilor de transport pentru nostru preferat CN Poșta Română. Calcularea greutății (citat în greutate) „cântărește“ doar în kilograme întregi, iar rata fixă nu se poate explica greutatea.
Utile în acest caz, părea să-mi capacitatea de a specifica „tipul de livrare“ (tip de transport maritim) pentru fiecare produs. Dar posibilitatea de a adăuga tipuri de livrare nu este disponibil. Se pare că această caracteristică este asigurată de modulul de efectuarea calculului de livrare. din care noi nu avem. Puteți scrie, desigur, modulul. Dar am găsit o modalitate simplă de a supărat. Tipuri de livrare pot fi adăugate direct la codul modulului uc_quote și editarea condițiile de aplicare a metodei de calcul al costului de livrare poate fi construit sistem destul de bun și flexibil de calcul. Pe o metodă de calcul pentru Poșta Română va scrie mai târziu, dar acum observăm tipurile lor de livrare:
Am primit acest lucru:
/ **
* Punerea în aplicare a hook_shipping_type ().
* /
Funcția uc_quote_shipping_type () $ greutate = variable_get ( 'uc_quote_type_weight', array (=> 0, 'pachet' 'small_package' => 0, 'registered_letter' => 0));
$ Tipuri = array ();
$ Tipuri [ 'small_package'] = array (
'Id' => 'small_package',
'Titlu' => t ( 'pachete mici'),
'Greutate' => $ greutate [ 'small_package']
);
$ Tipuri [ 'pachet'] = array (
=> 'Pachet' 'Id',
'Titlu' => t ( 'trimitere')
=> $ Greutate [ 'pachet'] 'greutate'
);
$ Tipuri [ 'registered_letter'] = array (
'Id' => 'registered_letter',
'Titlu' => t ( 'scriere de gradul 1'),
'Greutate' => $ greutate [ 'registered_letter']
);
Prima funcție a cererii. iar al doilea:
/ **
* Întoarcere o serie de opțiuni de tipuri de transport maritim.
* /
uc_quote_shipping_type_options funcție () $ tipuri = array ();
$ Ship_types = uc_quote_get_shipping_types ();
uasort ($ ship_types, '_uc_quote_type_sort');
foreach ($ ship_types ca $ ship_type) $ tipuri [$ ship_type [ 'id']] = $ ship_type [ 'titlu'];
>
if (empty (tipurile $)) $ tipuri [ 'small_package'] = t ( 'pachete mici');
$ Tipuri [ 'pachet'] = t ( 'trimiterea');
$ Tipuri [ 'registered_letter'] = t ( 'scriere Grad 1');
>
După cum puteți vedea aici adăugat deja două tipuri de livrare. Am folosit abilitatea de a stabili condițiile privind metodele de calcul al costului de livrare. Printre ei a fost o limită privind „tipul de livrare“ (tip de transport maritim).
Mult noroc și toate cele bune!