Καλάθι αγορών

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
pantelispyla
Δημοσιεύσεις: 45
Εγγραφή: 06 Νοέμ 2009 10:20

Καλάθι αγορών

Δημοσίευση από pantelispyla » 07 Ιούλ 2010 11:30

Παιδιά ξέρει κανείς κάποιο τρόπο υλοποίησης καλαριού αγορών σε php?? Αν ναι, πως θα μπορούσα να το υλοποιήσω;

Panagio_tis
Δημοσιεύσεις: 57
Εγγραφή: 14 Οκτ 2009 15:35

Καλάθι αγορών

Δημοσίευση από Panagio_tis » 07 Ιούλ 2010 11:44

Τι γνώσεις php/mysql έχεις;

pantelispyla
Δημοσιεύσεις: 45
Εγγραφή: 06 Νοέμ 2009 10:20

Καλάθι αγορών

Δημοσίευση από pantelispyla » 07 Ιούλ 2010 11:53

Αρκετές.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Καλάθι αγορών

Δημοσίευση από korgr » 07 Ιούλ 2010 12:40

pantelispyla έγραψε:Αρκετές.
Σαν να λεμε καμια 10αρια κιλα? :P
Ο ανθρωπος σε ρωταει αν ξερεις να στησεις μια βαση mysql με σωστη δομη tables, fields κλπ
Αν ξερεις τι ειναι session variables και πως τις χρησιμοποιουμε.
Αν ξερεις να κανεις ενα συστημα login για τους πελατες και αλλα τετοια σχετικα.
Δεν βοηθας με ενα ξερο "Αρκετές" :roll:

Panagio_tis
Δημοσιεύσεις: 57
Εγγραφή: 14 Οκτ 2009 15:35

Καλάθι αγορών

Δημοσίευση από Panagio_tis » 07 Ιούλ 2010 12:45

Ακριβώς αυτό korgr και το ρωτώ γιατί αν οι γνώσεις σου είναι αρκετές και καλύπτουν αυτούς τους τομείς, τότε δεν θα έχεις ιδιαίτερο πρόβλημα να ξεκινήσεις τις διαδικασίες.

Είναι προτιμότερο να ζητήσεις βοήθεια σε κάτι συγκεκριμένο που θα προκύψει στην πορεία της υλοποίησης παρά στο αρχικό στάδιο, όπου η βοήθεια είναι σχεδόν αδύνατη καθώς καλύπτει ένα τεράστιο φάσμα δραστηριοτήτων

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Καλάθι αγορών

Δημοσίευση από Banavas » 07 Ιούλ 2010 13:00

pantelispyla έγραψε:Παιδιά ξέρει κανείς κάποιο τρόπο υλοποίησης καλαριού αγορών σε php?? Αν ναι, πως θα μπορούσα να το υλοποιήσω;
Γιατί παλικάρι μου να κάτσεις να γράψεις ένα πρόγραμμα e-shop που και δύσκολο είναι και "ευαίσθητο" λόγω ασφάλειας πληρωμών.
Πάρε ένα έτοιμο (από τα χιλλιάδες που υπάρχουν) που είναι και δοκιμασμένο και μάθε το καλά να το παραμετροποιείς και να το προσαρμόζεις στα γούστα του εκάστοτε πελάτη. Και μπόλικο χρόνο θα κερδίσεις και θα είσαι ήσυχος και πιο φτηνό θα έρχεται στον πελάτη (3 σε 1).
Happy coding....
Μάρκος
http://lasernet.gr

Panagio_tis
Δημοσιεύσεις: 57
Εγγραφή: 14 Οκτ 2009 15:35

Καλάθι αγορών

Δημοσίευση από Panagio_tis » 07 Ιούλ 2010 13:06

Νομίζω οτι το ερώτημα έχει να κάνει με την υλοποίηση καλαθιού απο την αρχή και όχι για την χρήση κάποιου έτοιμου. Αν ήταν έτσι, θα ήταν διατυπωμένο διαφορετικά.
Εκτός και αν κατάλαβα λάθος!

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Καλάθι αγορών

Δημοσίευση από Apostolis_38 » 07 Ιούλ 2010 13:10

Banavas έγραψε:Γιατί παλικάρι μου να κάτσεις να γράψεις ένα πρόγραμμα e-shop που και δύσκολο είναι και "ευαίσθητο" λόγω ασφάλειας πληρωμών.
Πάρε ένα έτοιμο (από τα χιλλιάδες που υπάρχουν)
Πρακτικά σωστή η σκέψη σου.
Πιστεύω όμως οτι το να γράψεις ένα σωστό shopping cart είναι από τα 2-3 προγράμματα που θα σε βοηθήσουν όσο κανένα άλλο να μάθεις να φτιάχνεις σωστές εφαρμογές σε php/mysql.
Κατά τη γνώμη μου αξίζει να ασχοληθείς, αν έχεις το χρόνο, μόνο και μόνο για "την εμπειρία".

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Καλάθι αγορών

Δημοσίευση από korgr » 07 Ιούλ 2010 13:34

Apostolis_38 έγραψε: Κατά τη γνώμη μου αξίζει να ασχοληθείς, αν έχεις το χρόνο, μόνο και μόνο για "την εμπειρία".
+1

pantelispyla
Δημοσιεύσεις: 45
Εγγραφή: 06 Νοέμ 2009 10:20

Καλάθι αγορών

Δημοσίευση από pantelispyla » 07 Ιούλ 2010 13:51

Κώδικας: Επιλογή όλων

function str_replace_once($needle , $replace , $haystack)
			{

				$pos = strpos($haystack, $needle);
				if ($pos === false) {
				return $haystack;
				}
				return substr_replace($haystack, $replace, $pos, strlen($needle));
			}

			$tprice=0;
			if ( isset($_SESSION[cart]) ) $message="Περιεχόμενα Καλαθιού"; 
			else $message="Δεν υπάρχουν προϊόντα στο καλάθι σας";

			if ( $_GET[id] )
			{
			unset($_SESSION[cart]);	//adeiasma kala8iou
			$message="Δεν υπάρχουν προϊόντα στο καλάθι σας";
			} 

			echo $message; echo "<br>";

			$products=explode&#40;"&#58;",$_SESSION&#91;cart&#93;&#41;;
			$result = count&#40;$products&#41;;

			if &#40;isset&#40;$_GET&#91;id2&#93;&#41;&#41;
			&#123;
				$delpos=$_GET&#91;id2&#93;;

				$replace=$products&#91;$delpos&#93;.'&#58;';
				echo 'replace->'.$replace."<br>";				
				$_SESSION&#91;cart&#93;=str_replace_once&#40;$replace,"",$_SESSION&#91;cart&#93;&#41;;
				
				//unset&#40;$replace&#41;;
				$replace="";
				
				//echo $replace."<br>";

				$products=explode&#40;"&#58;",$_SESSION&#91;cart&#93;&#41;;

				$productname=explode&#40;"&#58;",$_SESSION&#91;productname&#93;&#41;;
				unset&#40;$productname&#91;$delpos&#93;&#41;;
				$_SESSION&#91;productname&#93;=implode&#40;"&#58;",$productname&#41;;

				$result = count&#40;$products&#41;;

				unset&#40;$_GET&#91;id2&#93;&#41;;
				//unset&#40;$delpos&#41;;
			&#125;

			if &#40;!isset&#40;$_POST&#91;field0&#93;&#41;&#41; &#123;
			for &#40;$i=0; $i<$result-1; $i++&#41;&#123;
			$_POST&#91;field.$i&#93;=1;
			&#125;
			&#125;

			for &#40;$i=0; $i<$result-1; $i++&#41;&#123;
			$temp=explode&#40;"--",$products&#91;$i&#93;&#41;;
			$tprice+= &#40;$temp&#91;3&#93; * $_POST&#91;field.$i&#93;&#41;*$fpa/100+$temp&#91;3&#93; * $_POST&#91;field.$i&#93;;
			&#125;
			
			echo 'Cart->'.$_SESSION&#91;cart&#93;."<br>";
			
			if &#40;$result>1&#41;
			&#123;

				echo " <form name=\"form1\" method=\"post\" action=\"$_SERVER&#91;PHP_SELF&#93;\"> ";

				unset&#40;$_SESSION&#91;quantity&#93;&#41;;

				echo "<br>";echo "<br>";

				//bgcolor="#ffffff" 
				echo '<table border="0" background="pics/prodline.gif" width="400" cellspacing="0" cellpadding="0">';
				echo '<tr><td  height="10" colspan=2><image src="pics/prodtop.gif"></td></tr>';
				for &#40;$i=0; $i<$result-1; $i++&#41;
				&#123;
					$temp=explode&#40;"--",$products&#91;$i&#93;&#41;;
					echo '<tr>';
						echo '<td style="padding-left&#58;7px;" rowspan=5 height="100" width="100" align="center">';
							echo "<img src=$temp&#91;4&#93;>"; 
						echo '</td>';
					echo '<tr>';
						echo '<td align="center">';
							echo $temp&#91;1&#93;;
						echo '</td>';
					echo '</tr>';
					echo '<tr>';
						echo '<td align="center">';
							echo 'Τιμή &#58; '; echo $temp&#91;3&#93;." ευρώ. ";
							echo ' Τελική τιμή &#58; '; echo round&#40;$fpa*$temp&#91;3&#93;/100 + $temp&#91;3&#93;,2&#41;." ευρώ.";
						echo '</td>';
					echo '</tr>';	
					echo '<tr>';
						echo '<td align="center">';
							echo "<a href ='viewcart.php?id2=$i'> Διαγραφή από το καλάθι </a>";
						echo '</td>';
					echo '</tr>';
					
					$val=$_POST&#91;field.$i&#93;;
					$_SESSION&#91;quantity&#93; = $_SESSION&#91;quantity&#93;.$val.'&#58;';
				
					echo '<tr>';
						echo '<td align="center">';
							echo 'Ποσότητα &#58; '; echo" <input type=\"text\" name=\"field$i\" value=\"$val\" size=\"3\"><br>";
						echo '</td>';
					echo '</tr>';
					echo '<tr>';
						echo '<td colspan="2">';
							echo '&nbsp;';
						echo '</td>';
					echo '</tr>';
					
				&#125;

				echo '<tr><td height="10" colspan=2><image src="pics/prodbottom.gif"></td></tr>';
				echo '</table>';
				
				echo '<br>';echo '<br>';echo '<br>';echo '<br>';

				echo '<table width="100%">';

				echo '<tr>';
					echo '<td align="center">';
					echo "<a href ='viewcart.php?id=1'> ΄Αδειασμα καλαθιού </a>";
					echo '</td>';
				echo '<td align="center">';
				echo "Σύνολο &#58; ".round&#40;$tprice,2&#41;." Ευρώ";									
				echo '</td>';	
				echo '<td align="center">';
				echo '<input type="submit" value="Αλλαγή ποσότητας"/>'; 
				echo "</form>";	
				echo '</td>';
				echo '</tr>';
			
				echo '</table>';
		
			&#125;

Λοιπόν αρχικά απ 'οτι βλέπω υπάρχει μεγάλο ενδιαφέρον γι ' αυτό σας δίνω και τον κώδικα που έχω. Το προβλημα είναι ότι όταν διαγράφω ένα προϊόν τα διαγράφει όλα.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Καλάθι αγορών

Δημοσίευση από Apostolis_38 » 07 Ιούλ 2010 21:00

Το id2 στο φέρνει κανονικά;
Για κάθε ένα προϊόν που επιλέγεις να διαγράψεις;

ankafetz
Δημοσιεύσεις: 4
Εγγραφή: 07 Ιούλ 2010 21:56

Καλάθι αγορών

Δημοσίευση από ankafetz » 07 Ιούλ 2010 21:59

Apostolis_38 έγραψε:Το id2 στο φέρνει κανονικά;
Για κάθε ένα προϊόν που επιλέγεις να διαγράψεις;
ναι το φέρνει κανονικά. Από το μηδέν και αυξάνει για κάθε προϊόν.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Καλάθι αγορών

Δημοσίευση από korgr » 07 Ιούλ 2010 22:32

Ομολογω πως επαθα πλακα με αυτον τον κωδικα!
Αποθηκευση σε μια session var και μετα explode, implode και καλα κρασια?
Και εκει μεσα σε αυτον τον χαμο να αποθηκευονται και λεπτομερειες των προϊοντων?
Νομιζω πως για ενα λειτουργικο καλαθι οι μονες πληροφοριες που χρειαζεται να αποθηκευονται σε session ειναι τα id των επιλεγμενων προϊοντων και οι αντιστοιχες ποσοτητες. Εχοντας το id εχεις ανα πασα στιγμη διαθεσιμες και τις οποιες λεπτομερειες του προϊοντος.
Επισης ως session vars μπορουμε να αποθηκευουμε arrays και δεν υπαρχει λογος για τετοιες αλχημειες...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Καλάθι αγορών

Δημοσίευση από Apostolis_38 » 07 Ιούλ 2010 23:14

Με μπέρδεψες, τι εννοείς αυξάνει κανονικά.
Αυξάνει αυτά που είναι να διαγράψει; :o

Πάντως κάτι δεν μου πάει καλά με την όλη διαδικασία του delete.
Στην αρχή κάνεις ένα replace, μετά ξανά replace, καπάκι explode και στο τέλος unset :-?
Εκτός κι αν "τραβάς" και από κάπου αλλού ένα id2, το οποίο δεν φαίνεται στον κώδικα που παρέθεσες, κι εγώ λέω σαχλαμάρες.

Και συμφωνώ με τον korgr, αν έχεις το id έχεις ότι θέλεις για το προϊόν. Βάζεις και την ποσότητα και είσαι κομπλέ. Το μόνο που θέλεις μετά είναι να προσθαφαιρείς σωστά τα προϊόντα.
Και με την ευκαιρία, δεν ξέρω κατά πόσο είναι σωστό να κάνεις round την τελική τιμή

Κώδικας: Επιλογή όλων

echo "Σύνολο &#58; ".round&#40;$tprice,2&#41;." Ευρώ";

cocoflop
Δημοσιεύσεις: 46
Εγγραφή: 23 Αύγ 2007 19:51

Καλάθι αγορών

Δημοσίευση από cocoflop » 09 Ιούλ 2010 02:22

Κι εγώ είχα φτιάξει καλάθι πέρυσι, δυστυχώς η δουλειά δεν έκατσε και δεν μπόρεσα ποτέ να το τεστάρω υπό πραγματικές συνθήκες.

Τα πράγματα είναι πολύ απλά:
<a href="index.php?addtocart=10">Προσθήκη προϊόντος</a>
<a href="index.php?removefromcart=10">Αφαίρεση προϊόντος</a>
<a href="index.php?increasequantity=10">Αύξηση ποσότητας προϊόντος</a>
<a href="index.php?decreasequantity=10">Μείωση ποσότητας προϊόντος</a>
<a href="index.php?clearcart=true">Καθαρισμός καλαθιού</a>

Κώδικας: Επιλογή όλων

$_SESSION&#91;"cart"&#93; = array&#40;&#41;;


if &#40;isset&#40;$_GET&#91;"addtocart"&#93;&#41;&#41;
&#123;
	$id = &#40;int&#41;$_GET&#91;"addtocart"&#93;;
	CartAddProduct&#40;$id&#41;;
&#125;

if &#40;isset&#40;$_GET&#91;"removefromcart"&#93;&#41;&#41;
&#123;
	$id = &#40;int&#41;$_GET&#91;"addtocart"&#93;;
	CartRemoveProduct&#40;$id&#41;;
&#125;

if &#40;isset&#40;$_GET&#91;"increasequantity"&#93;&#41;&#41;
&#123;
	$id = &#40;int&#41;$_GET&#91;"addtocart"&#93;;
	CartAddQuantity&#40;$id, 1&#41;;
&#125;

if &#40;isset&#40;$_GET&#91;"decreasequantity"&#93;&#41;&#41;
&#123;
	$id = &#40;int&#41;$_GET&#91;"addtocart"&#93;;
	CartRemoveQuantity&#40;$id, 1&#41;;
&#125;

if &#40;isset&#40;$_GET&#91;"clearcart"&#93;&#41;&#41;
&#123;
	CartClear&#40;&#41;;
&#125;


function CartAddProduct&#40;$id&#41;
&#123;
	if &#40;array_key_exists&#40;$id, $_SESSION&#91;"cart"&#93;&#41; == true&#41;
		CartAddQuantity&#40;$id, 1&#41;;
	else
		$_SESSION&#91;"cart"&#93;&#91;$id&#93; = 1;
&#125;

function CartRemoveProduct&#40;$id&#41;
&#123;
	if &#40;array_key_exists&#40;$id, $_SESSION&#91;"cart"&#93;&#41; == true&#41;
		unset&#40;$_SESSION&#91;"cart"&#93;&#91;$id&#93;&#41;;
&#125;


function CartAddQuantity&#40;$id, $quantity&#41;
&#123;
	if &#40;array_key_exists&#40;$id, $_SESSION&#91;"cart"&#93;&#41; == true&#41;
		$_SESSION&#91;"cart"&#93;&#91;$id&#93; += $quantity;
&#125;

function CartRemoveQuantity&#40;$id, $quantity&#41;
&#123;
	if &#40;array_key_exists&#40;$id, $_SESSION&#91;"cart"&#93;&#41; == true&#41;
	&#123;
		$_SESSION&#91;"cart"&#93;&#91;$id&#93; += $quantity;

		if &#40;$_SESSION&#91;"cart"&#93;&#91;$id&#93; < 0&#41;
			$_SESSION&#91;"cart"&#93;&#91;$id&#93; = 1;
	&#125;
&#125;

function CartClear&#40;&#41;
&#123;
	unset&#40;$_SESSION&#91;"cart"&#93;&#41;;
&#125;
Εάν το συνδέσεις με το δικό σου CMS και βάλεις και αλληλεπίδραση AJAX τότε θα είναι πένα. :wink:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες