Jump to content

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.

Link to comment
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;    }
   }

Link to comment
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

Link to comment
Share on other sites

×
×
  • Create New...