Behc98 Posted October 25, 2010 Share Posted October 25, 2010 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 ise1) _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 More sharing options...
Behc98 Posted October 25, 2010 Author Share Posted October 25, 2010 Bir diğer yol ise 1) _orders_detail tablosu içerisinden id_product karşılığındaki id_order alıp2) _orders tablosu içerisinde id_customer ı tespit edip3) mailini almak vs.. Link to comment Share on other sites More sharing options...
Behc98 Posted October 26, 2010 Author Share Posted October 26, 2010 Arkadaşlar, admin sayfasında bir ürünü editlediğimiz sayfaya bir buton koymam lazım. Hangi php sayfasını editlemem lazım ? Link to comment Share on other sites More sharing options...
Behc98 Posted October 26, 2010 Author Share Posted October 26, 2010 ü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 More sharing options...
Behc98 Posted October 27, 2010 Author Share Posted October 27, 2010 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 More sharing options...
Recommended Posts