Jump to content
Sign in to follow this  
behcet

Bu ürünü kimler almış modulu lazım.

Recommended Posts

Bazen bir ürün hakkında fiyat veya bilgi güncellemesi yapıyoruz. Bunu o ürünü daha önce almış müşterilerimize bildirmemiz iyi olurdu.
Yani bir ürünü daha önce almış kişilere mail atma sayfası gelmesi için ne yapmamız lazım ?
Bunların listesini nasıl alabilir ve mail atma sayfasına yönlendirebiliriz ?

Product ile customer ları ilişkilendiren tek tablo yoktur. Bu nedenle birkaç işlem yapmak gerekiyor.
mesela id_product = 11 ise
1) _cart_product tablosunda id_product sutununda arayıp id_cart ı tespit edeceğiz.
2) _cart tablosunda id_cart ı alan id_customer ı bulacağız,
3) __customer tablosunda gidip id_customer a denk gelen email leri çekeceğiz.
4) Bunları bir sayfaya yönlendireceğiz.
5) email atacağız :)

Bunla ilgili önerisi olan varmı acaba ?

    public function eposta_adresleri($urun_id)
       {

        $sorgu = Db::getInstance()->ExecuteS('SELECT
                       musteri.email 
                       FROM ps1_cart AS sepet 
                       LEFT JOIN  ps1_cart_product AS sepet_urunler ON sepet_urunler.id_cart = sepet.id_cart 
                       LEFT JOIN  ps1_customer AS musteri ON sepet.id_cart = musteri.id_customer 
                       WHERE sepet_urunler.id_product= $urun_id');
//        $epostalar = array();
//        while($veriler = mysql_fetch_assoc($sorgu))
//             {
//                   $epostalar[] =  $veriler['email'];
//             }
         return $sorgu;

       }

}
   print_r(eposta_adresleri(40));    

gibi yapmaya çalıştım ancak başarılı olamadım. Bir incelerseniz sevinirim.

Share this post


Link to post
Share on other sites

Bir diğer yol ise
1) _orders_detail tablosu içerisinden id_product karşılığındaki id_order alıp
2) _orders tablosu içerisinde id_customer ı tespit edip
3) mailini almak vs..

Share this post


Link to post
Share on other sites

Arkadaşlar, admin sayfasında bir ürünü editlediğimiz sayfaya bir buton koymam lazım.
Hangi php sayfasını editlemem lazım ?

Share this post


Link to post
Share on other sites

ürün sayfasına bir checbox koydum. İşaretli olursa bu ürünü alanlara mail atsın diye. Yoksa normal işlemlerini yapacak zaten.

Fakat aşağıdaki fonksiyon doğru çalışmıyor, dolayısıyla sonuç vermiyor.
nasıl bir sorgu yapmam hakkında önerisi olan varmı acaba ?

    public function sendCustomerAlert_urun($id_product, $id_product_attribute)
   {
       global $cookie;

//        $customers = Db::getInstance()->ExecuteS('
//            SELECT id_customer, customer_email
//            FROM `'._DB_PREFIX_.'mailalert_customer_oos`
//            WHERE `id_product` = '.intval($id_product).' 
//            AND `id_product_attribute` = '.intval($id_product_attribute));

       $customers = Db::getInstance()->ExecuteS('
       SELECT id_customer, customer_email
       FROM ps1_cart_product
       join ps1_cart on ps1_cart_product.id_product = ps1_cart.id_customer
       join ps1_customer on ps1_cart.id_customer = ps1_customer.id_customer
       where id_product = intval($id_product_attribute)');

       $product =  new Product(intval($id_product));
       $templateVars = array(
           '{product}' => strval($product->name[intval(Configuration::get('PS_LANG_DEFAULT'))]),
           '{product_link}' => Link::getProductLink($product)
       );
       foreach ($customers as $cust)
       {
           if ($cust['id_customer'])
           {
               $customer = new Customer(intval($cust['id_customer']));
               $customer_email = $customer->email;
               $customer_id = $customer->id;
           }
           else
           {
               $customer_email = $cust['customer_email'];
               $customer_id = 0;
           }
   echo $customer_email;    }
   }

Share this post


Link to post
Share on other sites
    public function sendCustomerAlert_urun($id_product, $id_product_attribute)
   {
       global $cookie;

       $customers = Db::getInstance()->ExecuteS('
       SELECT ps1_cart_product.id_cart, ps1_cart_product.id_product, ps1_cart.id_cart, ps1_cart.id_customer, ps1_customer.id_customer, ps1_customer.customer_email
       FROM ps1_cart_product, ps1_cart, ps1_customer
       inner JOIN ps1_cart on ps1_cart_product.id_product = ps1_cart.id_customer
       inner JOIN ps1_customer on ps1_cart.id_customer = ps1_customer.id_customer
       WHERE ps1_cart_product.id_product = intval(40)');

       $product =  new Product(intval($id_product));
       $templateVars = array(
           '{product}' => strval($product->name[intval(Configuration::get('PS_LANG_DEFAULT'))]),
           '{product_link}' => Link::getProductLink($product)
       );
       foreach ($customers as $cust)
       {
           if ($cust['id_customer'])
           {
               $customer = new Customer(intval($cust['id_customer']));
               $customer_email = $customer->email;
               $customer_id = $customer->id;
           }
           else
           {
               $customer_email = $cust['customer_email'];
               $customer_id = 0;
           }
           $iso = Language::getIsoById(intval($cookie->id_lang));
           if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/customer_qty.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/customer_qty.html'))
               Mail::Send(intval(Configuration::get('PS_LANG_DEFAULT')), 'customer_qty', $this->l('Product available'), $templateVars, strval($customer_email), NULL, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');
   //        if ($customer_id)
   //            $customer_email = 0;
   //        self::deleteAlert(intval($customer_id), strval($customer_email), intval($id_product), intval($id_product_attribute));
       }
   }



bu fonksiyonun çalışması lazım :) ama çalışmıyor

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More