site ecommerce php mvc & pdo الجزء الثامن

فهاد الجزء الثامن من site ecommerce php mvc & pdo غادي نزيدو les commandes لي دار المستخدم فقاعدة البيانات فمنبعد مغادي يخلص غادي ناخدو ل commande ونسجلوها عندنا بكامل المعلومات الخاصة بها فغادي نزيدو ل model الخاص بل commandes وأيضا ل controller.

نظرة سريعة بالفيديو


1- إضافة ل Model Order


ف dossier models غادي تزيد fichier جديد سميه Order.php لي فيه les fonctions :

- getAll لي مسؤولة على استرجاع les commandes ولي غادي نحتاجوها فاش نوصلوا للجزء الخاص بالأدمن.

- createOrder لي كتمكن من التسجيل ديال ل commande منبعد مكتستقبل المعلومات الخاصة بها وكتزيدها فقاعدة البيانات.

الكود ديال الملف هو :

                                    
                                        <?php

class Order{
     static public function getAll(){
        $stmt = DB::connect()->prepare('SELECT * FROM orders');
        $stmt->execute();
        return $stmt->fetchAll();
        $stmt->close();
        $stmt =null;
    }
    static public function createOrder($data){
        $stmt = DB::connect()->prepare('INSERT INTO orders (fullname,product,qte,price,total)
            VALUES (:fullname,:product,:qte,:price,:total)');
            $stmt->bindParam(':fullname',$data['fullname']);
            $stmt->bindParam(':product',$data['product']);
            $stmt->bindParam(':qte',$data['qte']);
            $stmt->bindParam(':price',$data['price']);
            $stmt->bindParam(':total',$data['total']);
            if($stmt->execute()){
                return 'ok';
            }else{
                return 'error';
            }
            $stmt->close();
            $stmt = null;
    }
}
                                    
                                

2- إضافة ل OrdersController


ف dossier controllers غادي تزيد fichier جديد سميه OrdersController.php لي فيه les fonctions :

- getAllOrders لي غادي تنفذ ل fonction getAll لي سبق وزدنا فل model Order وترجعنا les commandes كاملين.

- addOrder لي كنزيد بها commande جديدة كنرسل المعلومات لي جاوني من الفورم لي سبق وزدناها فل fichier cart.php ل fonction createOrder لي سبق وزدنا فل model Order.

الكود ديال الملف هو :

                                    
                                        <?php

class OrdersController{
    public function getAllOrders(){
        $orders = Order::getAll();
        return $orders;
    }
    public function addOrder($data){
        $result = Order::createOrder($data);
        if($result === "ok"){
            foreach($_SESSION as $name => $product){
                if(substr($name,0,9) == "products_"){
                    unset($_SESSION[$name]);
                    unset($_SESSION["count"]);
                    unset($_SESSION["totaux"]);
                }
            }
            Session::set("success","Commande effectuée");
            Redirect::to("home");
        }
    }
}
                                    
                                

3- إضافة الملف addOrder.php


ف dossier views زيد fichier جديد سميه addOrder.php لي فيه الكود لي غادي يمكن من إسترجاع ل produits لي عندي فل panier ولي هي ل commande ديالي.

منبعد غادي نصيفطهم ل fonction addOrder لي زدنا فل OrdersController.

الكود ديال الملف هو :

                                      
                                        <?php
$order = new OrdersController();
foreach($_SESSION as $name => $product){
    if(substr($name,0,9) == "products_"){
       $data = array(
        "fullname" => $_SESSION["fullname"],
        "product" => $product["title"],
        "qte" => $product["qte"],
        "price" => $product["price"],
        "total" => $product["total"]
       );
       $order->addOrder($data);
    }else{
        Redirect::to("home");
    }
}
                                      
                                    

4- تفعيل الاداء ب paypal


باش نفعل الاداء ب paypal خاص يكون عندي حساب paypal من بعد كنمشي ل https://developer.paypal.com

منبعد غادي تمشي ل login to dashboard غادي تكونيكطا فاش غادي تدخل غادي يديك ل my apps & credentials.

قبل متزيد ل app ديالك سير ل sandbox accounts لي غادي تمكنك باش تفتح حساب إفتراضي فيه اموال باش تشري ب paypal هادي خدمة كتوفرها paypal للمطورين مجانا.

المهم غادي تلقى create account غادي تضغط عليها منبعد غادي تلقى modal طلع كاين فيه create custom account ضغط عليها غادي تعطيك الفورم.

الحساب الاول ديال ل buyer يعني باش تشري غادي تدخل المعلومات لي بغيتي والمهم هو فل balance دخل المبلغ لي بغيتي يكون عندك فالحساب باش تشري مثلا 100000 دولار.

غادي تعاود نفس العملية هاد المرة إختار merchant account يعني لي غادي يستقبل الاموال.

منبعد أسيدي غادي ترجع ل my apps & credentials وتضغط على create app منبعد دخل إسمها وربطها بحساب سواء ل buyer أو merchant لي بغيتي من بعد ضغط عليها فاش تزاد غادي تلقى Client ID هز ل clé ديالك به باش غادي تخدم من بعد فل header.php لي سبق وزدنا زيد هاد السطر فل head وبلاصت votre clé زيد ل Client ID ديالك دبا لخلاص ب paypal مفعل عندك فدير تجربة غادي تلقى ل paiement داز ول commande تسجلت وباش تأكد ضغط على ل buyer account فل balance غادي تلقى ل montant لي خلصتي تنقص وفل merchant تزاد 😊.

السطر لي غادي تزيد فل head هو :

                                        
                                            <script src="https://www.paypal.com/sdk/js?client-id=votre clé"></script>
                                        
                                    

كلمات مفاتيح :