Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Prosty sklep internetowy
Forum PHP.pl > Forum > Przedszkole
shemko
Witam, chciałbym zrobić na tej stronie prosty sklep internetowy bez żadnego logowania, czy bazy użytkowników. Klient wchodzi w cennik/spis produktów i dodaje do koszyka to co chce (odnotowuje się nazwa produktu i cena). Kiedy wybierze to co chce przechodzi do arkusza zamówienia za pomocą którego uzupełnia dane kontaktowe i wysyła mail wraz z wybranymi produktami i sumą kosztów. Kolejne etapy realizacji zamówienia odbywają się już ze strony sklepu który kontaktuje się z klientem.

Jak najszybciej i najprościej rozwiązać to zagadnienie?
phpion
Zadaj jakieś konkretne pytanie, z czym masz problem. Raczej nikt nie będzie Ci tu opisywał krok po kroku jak napisać taki sklepik.
Vachu
Wordpress odpowiedni plugin i wszystko
shemko
chodzi mi o to czy najlepiej zrobić to na np. na prostej sesji bez połączenia z mysql?
nospor
Skoro nie masz rejestracji, a zamowienie wysylasz mailem, to tak, sama sesja ci wystarczy.
phpion
Pozostaje jeszcze kwestia wyświetlanych produktów. Jeśli ich liczba jest stała i nie czujesz się dobrze w programowaniu możesz je zawrzeć bezpośrednio w kodzie strony. Jeśli nie chcesz korzystać z bazy danych to możesz wykorzystać plik tekstowy/XML/cokolwiek jako "bazę" produktów. Wówczas dodanie nowego produktu to nowy wpis do pliku, a zmianę wyglądu prezentowanych produktów robisz w jednym miejscu (w pętli w szablonie).
shemko
Ok mniej więcej już sobie poradziłem. Mój sklep wygląda jak poniżej. Mam jednak jeszcze jedno małe pytanie: jak wywołać sumę cen oraz sumę dodanych do koszyka wszystkich produktów?

produkty.php:
  1. <?php
  2. $produkty[]=array('nazwa'=>'monitor','cena'=>400,'opis'=>'15" LCD');
  3. $produkty[]=array('nazwa'=>'myszka','cena'=>25,'opis'=>'mała mysz optyczna');
  4. $produkty[]=array('nazwa'=>'klawiatura','cena'=>30,'opis'=>'fajna');
  5. $produkty[]=array('nazwa'=>'cd-rom','cena'=>50,'opis'=>'chyba działa');
  6. $produkty[]=array('nazwa'=>'laptop','cena'=>2300 ,'opis'=>'super laptop');
  7. ?>


index.php:
  1. <?php
  2. include_once('produkty.php');
  3. if( $_POST['wyslij'] && !empty($_POST['imie']) && !empty($_POST['adres']) ){
  4. $zapisz=date('d-h-i')."\n";
  5. $zapisz.='imie: '.$_POST['imie']."\n adres: ".$_POST['adres']."\n zamówienie: \n";
  6. foreach($_SESSION['koszyk'] as $id => $ile){
  7. $zapisz.=$produkty[$id]['nazwa']." ilość: $ile \n";
  8. $cena+=$produkty[$id]['cena']*$ile;
  9. }
  10. $zapisz.='razem: '.$cena.'zł';
  11. file_put_contents(session_id().date('dhis').'.txt',$zapisz);
  12. header('location: shop.php');
  13. }
  14. echo "<html><head><meta http-equiv='content-type' content='text/html; charset=utf-8' /></head><body>";
  15. if($_POST['edytuj']==true){
  16. foreach ($_POST as $pr => $ile){
  17. if(is_array($produkty[$pr])){
  18. if($ile=='' or $ile==0){
  19. unset($_SESSION['koszyk'][$pr]);
  20. }else{
  21. $_SESSION['koszyk'][$pr]=(int)$ile;
  22. }
  23. }
  24. }
  25. }
  26. if(is_array($produkty[$_GET['id']])){
  27. $_SESSION['koszyk'][$_GET['id']]=$_SESSION['koszyk'][$_GET['id']]+1;
  28. }
  29. if($_SESSION['koszyk']==null){
  30. echo 'brak produktów w koszyku<hr/>';
  31. }else{
  32. $cena=0;
  33. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
  34. imie<input type="text" name="imie" value="'.$_POST['imie'].'" /><br/>
  35. adres<input type="text" name="adres" value="'.$_POST['adres'].'" /><br/>';
  36. foreach($_SESSION['koszyk'] as $id => $ile){
  37. echo $produkty[$id]['nazwa'].'-<input type="text" name="'.$id.'" value="'.$ile.'"><br/>';
  38. }
  39. echo '<input type="submit" name="edytuj" value="zapisz zmiany"><input type="submit" name="wyslij" value="wyślij zamówienie"></form>';
  40. }
  41. echo '<table border=1><tr><td>nazwa</td><td>opis</td><td>cena</td><td>opcje</td></tr>';
  42. foreach($produkty as $id => $ar){
  43. echo '<tr><td>'.$ar['nazwa'].'</td><td>'.$ar['opis'].'</td><td>'.$ar['cena'].'</td>
  44. <td><a href="?id='.$id.'">dodaj do koszyka</a></td></tr>';
  45. }
  46. echo '</table></body></html>';
  47. ?>
Turson
Cytat
Ok mniej więcej już sobie poradziłem. Mój sklep wygląda jak poniżej. Mam jednak jeszcze jedno małe pytanie: jak wywołać sumę cen oraz sumę dodanych do koszyka wszystkich produktów?

Skoro ceny masz w tablicy to je zsumuj
shemko
tak, produkty zapisane są w pliku produkty.php. Próbowałem wywołać sume:

  1. echo sum_array($produkty[id]['cena']);


ale nie śmiga i wyświetla cenę tylko ostatnio dodanego produktu. Jak powinna wyglądać poprawnie ta komenda?
Arecky
Musisz to policzyć pętlą, dodać sobie do zmiennej a potem echować smile.gif
shemko
czy mógłbyś mi napisać jak to ma wyglądać? Przepraszam, że tak męczę ale zupełnie nie wiem jak to ugryźć smile.gif
Turson
Cytat(shemko @ 21.12.2013, 00:43:23 ) *
tak, produkty zapisane są w pliku produkty.php. Próbowałem wywołać sume:

  1. echo sum_array($produkty[id]['cena']);


ale nie śmiga i wyświetla cenę tylko ostatnio dodanego produktu. Jak powinna wyglądać poprawnie ta komenda?

Nie sum_array a array_sum i nie [id] a ['id']


  1. $produkty[]=array('nazwa'=>'monitor','cena'=>400,'opis'=>'15" LCD');
  2. $produkty[]=array('nazwa'=>'myszka','cena'=>25,'opis'=>'mała mysz optyczna');
  3. $produkty[]=array('nazwa'=>'klawiatura','cena'=>30,'opis'=>'fajna');
  4. $produkty[]=array('nazwa'=>'cd-rom','cena'=>50,'opis'=>'chyba działa');
  5. $produkty[]=array('nazwa'=>'laptop','cena'=>2300 ,'opis'=>'super laptop');
  6. $cena = 0;
  7. foreach($produkty as $w){
  8. $cena = $cena+$w['cena'];
  9. }
  10. echo $cena;


shemko
Tyrson dziękuje bardzo za ten kod. Niestety jednak komenda wyświetla tylko niezmiennie liczbe "2805", nie wiem dlaczego :/
Turson
Jak to niezmiennie...?
pedro84
@Turson - ja idę o duży zakład, że OP bezmyślnie skopiował Twój kod z posta #12, dlatego "niezmiennie".
shemko
Wkleiłem go dokładnie w to miejsce.

  1. <?php
  2. include_once('produkty.php');
  3. if( $_POST['wyslij'] && !empty($_POST['imie']) && !empty($_POST['adres']) ){
  4. $zapisz=date('d-h-i')."n";
  5. $zapisz.='imie: '.$_POST['imie']."n adres: ".$_POST['adres']."n zamówienie: n";
  6. foreach($_SESSION['koszyk'] as $id => $ile){
  7. $zapisz.=$produkty[$id]['nazwa']." ilość: $ile n";
  8. $cena+=$produkty[$id]['cena']*$ile;
  9. }
  10. $zapisz.='razem: '.$cena.'zł';
  11. file_put_contents(session_id().date('dhis').'.txt',$zapisz);
  12. header('location: shop.php');
  13. }
  14. echo "<html><head><meta http-equiv='content-type' content='text/html; charset=utf-8' /></head><body>";
  15. if($_POST['edytuj']==true){
  16. foreach ($_POST as $pr => $ile){
  17. if(is_array($produkty[$pr])){
  18. if($ile=='' or $ile==0){
  19. unset($_SESSION['koszyk'][$pr]);
  20. }else{
  21. $_SESSION['koszyk'][$pr]=(int)$ile;
  22. }
  23. }
  24. }
  25. }
  26. if(is_array($produkty[$_GET['id']])){
  27. $_SESSION['koszyk'][$_GET['id']]=$_SESSION['koszyk'][$_GET['id']]+1;
  28. }
  29. if($_SESSION['koszyk']==null){
  30. echo 'brak produktów w koszyku<hr/>';
  31. }else{
  32. $cena=0;
  33. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
  34. imie<input type="text" name="imie" value="'.$_POST['imie'].'" /><br/>
  35. adres<input type="text" name="adres" value="'.$_POST['adres'].'" /><br/>';
  36. foreach($_SESSION['koszyk'] as $id => $ile){
  37. echo $produkty[$id]['nazwa'].'-<input type="text" name="'.$id.'" value="'.$ile.'"><br/>';
  38. }
  39. echo '<input type="submit" name="edytuj" value="zapisz zmiany"><input type="submit" name="wyslij" value="wyślij zamówienie"></form>';
  40. }
  41.  
  42.  
  43. $cena = 0;
  44. foreach($produkty as $w){
  45. $cena = $cena+$w['cena'];
  46. }
  47. echo $cena;
  48.  
  49.  
  50. echo '<table border=1><tr><td>nazwa</td><td>opis</td><td>cena</td><td>opcje</td></tr>';
  51. foreach($produkty as $id => $ar){
  52. echo '<tr><td>'.$ar['nazwa'].'</td><td>'.$ar['opis'].'</td><td>'.$ar['cena'].'</td>
  53. <td><a href="?id='.$id.'">dodaj do koszyka</a></td></tr>';
  54. }
  55. echo '</table></body></html>';
  56. ?>
Pyton_000
Ale o co chodzi?
Przecież iterujesz po swoich produktach a nie produktach w koszyku, więc jakim cudem ma Ci się zmieniać cena?
Albo wytłumacz po polsku OCB
shemko
Tutaj już powoli zaczynam składać kod: http://www.fibarokrakow.com/sklep.php

1. Chciałbym aby wybranie produktu (po kliknięciu dodaj) wiązało się z dodaniem do np zmiennej "$suma" wartości odpowiadającej cenie wybranego produktu, a usunięcie produktu z usunięciem tej ceny z sumy.

2. Na podobnej zasadzie chce zrobić jeszcze licznik wybranych produktów gdzie $licznik będzie wyświetlał aktualną ilość wybranych produktów (produkty + ich ilość)

3. Chciałbym również aby koło koszyka był przycisk "usuń" który będzie usuwał produkt z koszyka.


Przepraszam jeśli jestem męczący z tymi wszystkim pytaniami smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.