Ich versuche, ein ziemlich einfach PHP-Checkout-System zu erstellen.Erstellen eines PHP-Checkout-System
Die Tabelle der Informationen Ich verwende ist:
Produktcode Namen Preis
SW1 Sandwich £ 3,11
CL1 Schokolade £ 5,00
CF1 Kaffee £ 11,23
Mein Code ist:
class Product {
public $name;
public $price;
public function __construct($name, $price) {
$this->item = $name;
$this->price = $price;
}
} class Checkout {
protected $shopping_cart;
public function scan(Product $product) {
$shopping_cart[] = $product;
}
public function total() {
// Goes through the shopping cart and sums up the price of the contents
return array_reduce(
$this->shopping_cart,
function($total, $item) {
return $total + $item->price;
},
0
);
}
}
$pay = new Checkout();
$pay->scan(new Product("Sandwich", 3.11));
$pay->scan(new Product("Chocolate", 5));
$pay->scan(new Product("Coffee", 11.23));
$price = $pay->total();
Was Ich mag würde tun, ist eine Preisregel auf einige Elemente hinzuzufügen. Zum Beispiel möchte ich, dass Sandwiches "Buy-One-Get-One-Free" und Pralinen einen Mengenrabatt haben. Nicht sicher, ob es funktionieren würde, aber ich denke ich so etwas wie dies sollte hinzufügen:
$SW1 = new Checkout("Sandwich", 3.11);
$CL1 = new Checkout("Chocolate", 5);
$CF1 = new Checkout("Coffee", 11.23);
if(scan($SW1 % 2 == 0)) {
$price = $price/2;
}
elseif(scan($SW1 == 1)) {
}
else {
$price = $price/2 + $price;
}
if(scan($CL1 >= 3 && $CL1 % 3 == 0)) {
$price = $price - .50;
}
else {
// insert logic to make sure purchases that include more than 3 items, though not divisible by 3, are also discounted accordingly.
}
Jede mögliche Hilfe würde geschätzt. Auch wenn jemand weiß, wie ich diesen Code testen könnte, wäre das großartig ☺.
Der Versuch, Ihr eigenes E-Commerce-System zu bauen, wenn Sie es in der Produktion verwenden werden, ist wahrscheinlich eine sehr schlechte Idee. Sie sind besser dran, ein bestehendes System zu erweitern. Sie sollten auch mindestens den Code schreiben und dann um Hilfe bitten, wenn Sie stecken bleiben, nicht die Leute bitten, Ihren Code für Sie zu schreiben. – Difster