dodatkowe pole/pola w zamówieniu

~robert

No avatar

2006-07-06 20:53

Mam taki problem: często bywa, że adres dostawy bywa inny niż adres siedziby firmy, wg którego wystawia sie fakturę. Moje pytanie, jak zwiększyć ilość pól tekstowych w podsumowaniu koszyka i oczywiscie zeby były one widoczne w wydrukach i szczegółach zamówienia?? Bardzo proszę o wskazówki.

Robert

treewood (OpenSolution)

Avatar: treewood

2006-07-06 21:28

robert - po pierwsze prosze uzywac wyszukiwarki. to juz kolejny przypadek dzisiaj jak ktos pisze pytanie, ktore bylo juz poruszane: http://opensolution.org/Quick.Cart/forum/?p=readTopic&nr=2305 (sam tez uzylem wyszukiwarki i wpisalem slowo)

tak po krotce jesli znasz HTML i PHP to sobie poradzisz. Inaczej to zlec nam a zrobimy to dla Ciebie -> kontakt. Pomocna tez bedzie dokumentacja i opisy szablonow i funkcji:

1. edytujesz templates/orders_delivery.tpl i wstawiasz dodatkowe pola
2. core/orders.php - funkcja saveOrder() gdzie jest odwolanie do funkcji dbAddOrderExtensions() i tam w postaci tablicy przesylany jest parametr wraz z polami (tutaj wciskasz kolejne pola). mozesz tez ewentualnie sprawdzac wczesniej przeslane pola i to czy sa wypelnione - funkcja checkOrderFields()
3. core/orders.php - funkcja throwOrder() to zwracanie danych zamowienia. tak jak wczesniej zapisujesz tak samo wg tej samej kolejnosci pobierasz dane do tablicy $aList
4. templates/orders_delivery.tpl, templates/admin/orders_more.tpl, templates/admin/orders_print.tpl, templates/orders_print.tpl - tutaj dodajesz kolejne pola, ktore sa pobierane za pomoca funkcji throwOrder()

Zaleta tego rozwiazania jest taka, ze latwo jest to wykonac i dziala dosc szybko.
Wada jest taka, ze pozniejsze upgrade'y do nowszych wersji beda trudne gdyz dokonujesz zmiany struktury plikow i zmiany funkcji podstawowych narzedzia.

Mozna by to rozwiazac za pomoca plugina tak by upgrade'y byly latwe. Zapisywane dane bylyby w innym pliku i akcje wykonywane przez wtyczke a nie w kodzie wlasciwym sklepu. Rozwiazania nie podam bo tez trzeba z czegos zyc a za rady nikt nie placi a tylko dziekuje :P

~robert

No avatar

2006-07-07 16:02

dodałem pola kóre chciałem, wszystko działa, oprócz orders_print.tpl tzn dodane pola i ich zawartości sa zapisywane w zamówieniu i widoczne sa przez admina, ale nie sa widoczne w podsumowaniu zakupu, które drukuje klient... pewnie nie lubicie tego pytania, ale musze je zadac? :): gdzie był mój błąd... bardzo prosze o wskazówke

robert

treewood (OpenSolution)

Avatar: treewood

2006-07-07 16:12

robert - jesli w templates/admin/orders_more.tpl widzisz to tak samo powinienes widziec w orders_print.tpl. te same zmienne musisz wstawic

~robert

No avatar

2006-07-07 17:08

normalnie rece mi opadaja :) wydaje się ze wszystkiego dopilnowałem, ale nadal na wydruku dla klienta nie ma tych dodatkowych pól. Czy przyczyną moga byc wtyczki jakie sa zainstalowane? Posiadam: basketsummary, htmlmailordersdetiles, pluginmenager i kilka innych mniej związanych bezposrednio z orders_print.tpl.

robert

treewood (OpenSolution)

Avatar: treewood

2006-07-07 21:33

robert - jest to baaardzo mozliwe. pogrzeb w innych plikach (szablonach), ktore byly dolaczone wraz z tymi pluginami

~Juro

No avatar

2006-07-11 10:27

Mam taki problem, utworzylem dodatkowe pole tekstowe w templates/orders_delivery.tpl ktore mialoby pelnic funkcje pola w ktore bedzie wpisywane haslo dla danej platnosci. Jak sprawdzic czy oprocz pozostalych pol, gdy wybrano kuriera o ID=7 wprowadzono poprawne haslo w dodatkowym polu ?

Czy moge to zrobic w funkcji checkOrderFields czy musze tworzyc nową ? Prosze o jakas podpowiedz.

Juro

~Juro

No avatar

2006-07-11 13:51

Nazawracałem głowy a wystarczyło to zrobić w ten sposób. Przeprasam za kłopot

 function checkOrderFields$aForm ){
     


 if(
      
checkLength$aForm['sFirstName'], )
      && 
checkLength$aForm['sLastName'], )
      && 
checkLength$aForm['sStreet'], )
      && 
checkLength$aForm['sZipCode'], )
      && 
checkLength$aForm['sCity'], )
      && 
checkLength$aForm['sTelephone'], )
      && 
checkEmail$aForm['sEmail'] )
      && ( 
$aForm['iCourier']==|| $aForm['iCourier']==|| $aForm['iCourier']==|| $aForm['iCourier']==|| $aForm['iCourier']==|| $aForm['iCourier']==|| ($aForm['iCourier']==&& $aForm['sHaslop']=='HASLO'))
    )
      return 
true;
    else
      return 
false;
  } 
// end function checkOrderField

Juro

Do góry
o nas | kontakt