Ürün Sayfasına Taksit Tab / Sekmesi Ekleme

sabitertan

OpenCart-TR
Katılım
18 Eki 2010
Mesajlar
195
Tepkime puanı
1
Puanları
0
Konum
Adana
Arkadaşlar şu anki haliyle kullanmak isteyen arkadaşlar için adım adım anlatıyorum.
Bu anlatım Opencart 1.4.9.1 ve Sanal pos 2.3.5 kurulu sistemler için geçerlidir. Ekleme yaparken dikkat ediniz kimi kodlar "ALTINA" kimileri "ÜSTÜNE" denilmiştir.

DEMO

1. Sanal posu etkinleştirin ve kredi kartı/banka- taksit ayarlarınızı yapın aşağıda bahsi geçen dosyaları düzenlemeden önce bir kopyasını mutlaka oluşturun.

2. catalog\view\theme\default\template\product\product.tpl dosyasını(ve temanızda bulunan product.tpl dosyasını) açın aşağıdaki değişiklikleri uygulayın.

Bul
PHP:
<a tab="#tab_related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>

Altına ekle
PHP:
<!--taksit tab-link--> <a tab="#tab_taksit"><?php echo 'Taksit'; ?></a><!--taksit tab-link-->

Bul
PHP:
 <div id="tab_description" class="tab_page"><?php echo $description; ?></div>

Üstüne ekle
PHP:
	<!--taksit tabi-->
	<div id="tab_taksit" class="tab_page">
	<?
if($taksit_var):
?>
<style type="text/css">
.taksit_liste {border:1px solid silver;}
.taksit_liste table th {vertical-align:top;text-align:center;}
.taksit_liste table td {vertical-align:top;text-align:right;padding:2px;}
.taksit_liste table tr.ozel td {font-weight:bold;}
.taksit_liste table thead td {font-weight:bold;text-decoration:underline;}
.pos_isim {font-size:120%;}

</style>
<b style="margin-bottom: 3px; display: block;"><?php echo $text_taksit_secenekleri;?></b>
<div id="sanal_pos_2_taksitler" style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px; margin-bottom: 10px;">

  <table width="100%" style="border-collapse:collapse;">
	<?
	$total_cols = 2;
	
	$col = -1;
	$trOpen = false;
	$col_width = intval(100/$total_cols) .'%';
	
			
	foreach($ccpos_config as $pos):
		$col = ($col+1)%$total_cols;
		if($col==0):$trOpen = true;?><tr><?endif;?>
		<td width="<?=$col_width?>" valign="top" class="taksit_liste">
			<table width="100%">
				<thead>
					<tr><th colspan=3 align="center" class="pos_isim"><?=$pos['isim']?></th></tr>
					<tr><td><?=$text_taksit?></td><td><?=$text_taksit_tutari?></td><td><?=$text_toplam_tutar?></td></tr>
				</thead>
				<tbody>
				<?				
				$toplam_tutar_goster = $this->currency->format($pure_price,false,false,TRUE);
				
				if(!isset($pos['taksitler'][1])){
					?>
					<tr class="ozel">
						<td>Peşin</td>						
						<td><?=$toplam_tutar_goster?></td>						
						<td><?=$toplam_tutar_goster?></td>
					</tr>
					<?
				}
				foreach($pos['taksitler'] as $taksit=>$data):
					$toplam_tutar = $pure_price * (100+$data['komisyon'])/100;
					$taksit_tutari = $toplam_tutar/$taksit;
					
					$toplam_tutar_goster = $this->currency->format($toplam_tutar,false,false,TRUE);
					$taksit_tutari_goster = $this->currency->format($taksit_tutari,false,false,TRUE);
					?>
					<tr class="ozel">
						<td><?=$taksit?></td>						
						<td><?=$taksit_tutari_goster?></td>						
						<td><?=$toplam_tutar_goster?></td>						
					</tr>
				<?endforeach;?>
				</tbody>
			</table>
		</td><?
		if($col==($total_cols-1)):$trOpen = false;?></tr><?endif;		
	endforeach;	
	while($col<($total_cols-1))
	{
		$col = ($col+1)%$total_cols;
		?><td width="<?=$col_width?>"></td><?		
	}
	if($trOpen):?></tr><?endif;
	?>
  </table>
</div>
<?
endif;

?>
	
	
	</div>
	<!--taksit tabi son-->

3. catalog\controller\product\product.php dosyasını aç aşağıdaki değişiklikleri uygula

Bul

PHP:
public function index() {

Üstüne ekle

PHP:
	// taksitlendirme
		private function getPosConfig($include_inactive=false)
  	{
		$config = array();
		if( ($data = $this->config->get('sanal_pos_2_ccpos_config')) && ($data = unserialize($data)) && is_array($data) )
		{
			$config = $data;
			if(!$include_inactive)
			{
				foreach($config as $key=>$pos)
				{
					if($pos['aktif']!=1)
						unset($config[$key]);
				}
			}
		}		
		return $config;
	}
		private function taksitVar($ccpos_config)
	{
		foreach($ccpos_config as $pos)
		{
			if($pos['aktif']==1 && count($pos['taksitler'])>0 )
				return true;
		}
		return false;
	}
	// taksitlendirme

Bul
PHP:
$product_info = $this->model_catalog_product->getProduct($product_id);

Altına ekle

PHP:
// taksitlendirme
		$this->language->load('payment/sanal_pos_2');
		
		$this->data['text_credit_card'] = $this->language->get('text_credit_card');
		$this->data['text_taksit_secenekleri'] = $this->language->get('text_taksit_secenekleri');//
		$this->data['text_wait'] = $this->language->get('text_wait');
		$this->data['text_diger'] = $this->language->get('text_diger');
		$this->data['text_taksit'] = $this->language->get('text_taksit');
		$this->data['text_taksit_tutari'] = $this->language->get('text_taksit_tutari');
		$this->data['text_toplam_tutar'] = $this->language->get('text_toplam_tutar');
		
		$this->data['entry_cc_type'] = $this->language->get('entry_cc_type');
		$this->data['entry_cc_owner'] = $this->language->get('entry_cc_owner');
		$this->data['entry_cc_number'] = $this->language->get('entry_cc_number');
		$this->data['entry_cc_expire_date'] = $this->language->get('entry_cc_expire_date');
		$this->data['entry_cc_cvv2'] = $this->language->get('entry_cc_cvv2');
		
		$this->data['button_confirm'] = $this->language->get('button_confirm');
		$this->data['button_back'] = $this->language->get('button_back');
		
		$this->data['error_failed'] = $this->language->get('error_failed');
		
		$this->data['months'] = array();
		
		for ($i = 1; $i <= 12; $i++) {
			$mon = sprintf('%02d', $i);
			$this->data['months'][] = array(
				//'text'  => strftime('%B', mktime(0, 0, 0, $i, 1, 2000)), 
				'text'  => $mon,
				'value' => $mon
			);
		}
		
		$today = getdate();

		$this->data['year_expire'] = array();

		for ($i = $today['year']; $i < $today['year'] + 11; $i++) {
			$this->data['year_expire'][] = array(
				'text'  => strftime('%Y', mktime(0, 0, 0, 1, 1, $i)),
				'value' => strftime('%Y', mktime(0, 0, 0, 1, 1, $i)) 
			);
		}
		
		$this->data['ccpos_config'] = $this->getPosConfig();
		$this->data['taksit_var'] = $this->taksitVar($this->data['ccpos_config']);
		

// taksitlendirme son

Bul
PHP:
$this->data['price'] = $this->currency->format($this->tax->calculate($discount, $product_info['tax_class_id'], $this->config->get('config_tax')));

Altına ekle
PHP:
//taksit modulu icin fiyat
				$this->data['pure_price'] = $this->tax->calculate($discount, $product_info['tax_class_id'], $this->config->get('config_tax'));

Bul
PHP:
$this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

Altına ekle
PHP:
//taksit modulu icin fiyat
				$this->data['pure_price'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));

4. taksit tabının düzgün görünmesi için: catalog\view\theme\<tema adınız>\stylesheet\stylsheet.css dosyasını aç
Bul
Kod:
.tabs a
Bu kodun altındaki padding değerinde örneğin default için
Kod:
padding: 6px 15px 7px 15px;
şeklindedir.
Ben şu şekilde değerleri değiştirdim
Kod:
padding: 6px 13px 7px 13px;
Ve yeterli oldu. Sizde deneyerek uygun ayarı sağlayabilirsiniz.
 

kripto35

OpenCart-TR
Katılım
13 Eyl 2010
Mesajlar
68
Tepkime puanı
0
Puanları
0
Yaş
35
Konum
İzmir
RE: Ürün Fiyatını Taksitlendirmek

yok kardeşim ben yanlış anlamışım sen demekki sadece 1 taksit ayarı yapmışsız bende sandım ki 1 taksit hesabı yapıyor diğerlerini hesaplamıyor. Benim önerdiğim şekil sanal postan çekmişin ben sıfırdan hesaplama ile yaptın sandım ama fark yapmaz benim açımdan valla ellerin zaval görmesin hakkaten de benim gerçekten yapmak istediğim ama beceremediğim bişeydi :) Paylaştığın içinde çok teşekkürler biraderim. ;)
 

bilgikur

OpenCart-TR
Katılım
13 Kas 2010
Mesajlar
38
Tepkime puanı
0
Puanları
0
Kardes öncelikle tab sekmesi için sana tesekkur ederım sıteme kurdum ve cok hos gorundu calısıyor. Sitem (1.4.9.3) version.yanlıs senden ıstedıgım daha dorusu mantık olarak taksitlendirme yaparken ornek veriyorum banka seçtğimiz zaman Taksit Seçenekleri Açıldıgında Banka Logosu Çıkabilir bir şekılde yapabılırmıyız. ornek bir resim koyucam demek istediğimi anlarsın zaten hersey ıcın tsk ederım.çok saolasın.www.bizdebul.com/taksit.jpg örnek resim açıklayıcı olmustur umarım
 

sabitertan

OpenCart-TR
Katılım
18 Eki 2010
Mesajlar
195
Tepkime puanı
1
Puanları
0
Konum
Adana
bilgikur' Alıntı:
banka seçtğimiz zaman Taksit Seçenekleri Açıldıgında Banka Logosu Çıkabilir bir şekılde yapabılırmıyız.
Sanal posta bir modifikasyon yapabiliriz. yada resmi çağıracak bir fonksiyonu controller a eklersek olur sanırım. Uygun bir anda nasıl yapılacağını anlatacağım.
 

drscatris

OpenCart-TR
Katılım
23 Ocak 2011
Mesajlar
28
Tepkime puanı
0
Puanları
0
Çok Güzel gözüküyor. Her iki dilde de sorunsuz.. Taksit seçeneklerini sanal pos dan çekiyor. Hatta kart isim başlıklarını da. Ödeme seçeneklerinde karta göre taksitleri göstermesi çok hoş. Teşekkürler. Çok beğendim.
 

sabitertan

OpenCart-TR
Katılım
18 Eki 2010
Mesajlar
195
Tepkime puanı
1
Puanları
0
Konum
Adana
lidanya' Alıntı:
1.4.7 ye uyarlanabilirmi
Bu, ilk mesajda belirtilen sürümler üzerine yapılan bir eklentidir. Tabiki 1.4.7 üzerinde çalışabilen bir sanal pos için de modifiye edilebilir. Ancak ben bu şekilde geriye dönük bir çalışma yapmayacağım, yapmak isteyen arkadaşlar buradan paylaşabilirler.
 

kalismeras61

OpenCart-TR
Katılım
22 Şub 2011
Mesajlar
14
Tepkime puanı
0
Puanları
0
İndirimli ürünlerin taksitli olarak o fiyatları almıyor bunu nasıl ayarlarız ?
 

skulltr

OpenCart-TR
Katılım
31 May 2011
Mesajlar
4
Tepkime puanı
0
Puanları
0
Ben Version 1.4.9.4 için kurdum taksit sekmesi görünüyor sanal pos da tamam fakat taksit degerleri görünmüyor.
 

el.aciz

OpenCart-TR
Katılım
28 Haz 2011
Mesajlar
100
Tepkime puanı
0
Puanları
0
Web sitesi
www.icgiyimbayan.com
Ürün Sayfasına Taksit Tab / Sekmesi Ekleme

EST için olan sanal pos modülünü attım. Ancak etkinleştiremiyorum.
Acil yardım.
" Ödeme Metodlarında , Kredi Kartı Sekmesi Çıkıyor,
İçerisine giriyorum, "Onay Bekliyor ve Açık" şeklinde ayarlıyorum. Kaydet dediğimde , Kontrol Paneli sekmesine dönüyor. Tekrar baktığımda ise kapalı görünüyor. Kısacası aktif olmuyor.

Not : Taksit Seçeneklerini Koymak istiyorum. Bunun için bu modülü kurdum.

Yapmak istediğim,

Müşteri siparişi verecek, Ödeme kısmında Mail order yada Offline kredi kartı ödemesi şeklinde yapıp taksitleri seçecek. Bende toptancıdan ödemesini çekeceğim. Sitemde SSL mevcuttur.
Hepsi bu.

İhtiyacım;
Ürün Sayfasında;

Nakit fiyatı :
Havale İndirimli :
Kredi Kartı Tek Çekim:
Kredi Kartı Taksitli Fiyatı ( 12 ay olanı gösterse yeter)

Ödeme Sayfasında; Ödeme seçenekleri kısmında ;
Hangi ödemeyi yaoacaksa onu seçecek,
Havaleyi seçtimi indirimi otomatik uygulayacak,
Kredi Kartı Taksit seçerse Taksit seçeneklerini görecek.

Bu konuda yardımcı olabilir misiniz?
 

eylulnet

OpenCart-TR
Katılım
28 May 2011
Mesajlar
7
Tepkime puanı
0
Puanları
0
İndirimli ürünlerde fiyatı indirimli fiyattan değilde normal fiyattan hesaplıyor.
bu durumu çözdüm sanırım.

catalog\controller\product\product.php sayfasında
//=================================================
$special = $this->model_catalog_product->getProductSpecial($this->request->get['product_id']);
if ($special) {
$this->data['special'] = $this->currency->format($this->tax->calculate($special, $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$this->data['special'] = FALSE;
}
}
//=================================================

yerine


$special = $this->model_catalog_product->getProductSpecial($this->request->get['product_id']);

if ($special) {
$this->data['pure_price'] = $this->tax->calculate($this->model_catalog_product->getProductSpecial($this->request->get['product_id']), $product_info['tax_class_id'], $this->config->get('config_tax'));
$this->data['special'] = $this->currency->format($this->tax->calculate($special, $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$this->data['pure_price'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));
$this->data['special'] = FALSE;
}
}

// =====================kod sonu ============================

www.iyisiburada.com
Oksid Bilgisayar Xml ürün ve sanal pos entegrasyonu
 
Üst