PHP Ürün Varyant Sistemi
Herkese iyi çalışmalar
PHP ile ürün varyant sistemi yapmaya çalışıyorum fakat kendi yöntemlerim pek istediğim gibi olmadı
Acaba varyant mantığı konusunda fikir verebilir misiniz?
Örnek bir ürünümüz kılıf olsun
Marka: Samsung (Markayı marka tablomdan id ile eşleştirebilirim)
Model: S10 Plus
Renk: Kırmızı
Stok: 10
Fiyat: 20TL
ama aynı zamanda çoğu ürününde varyantı yok yani nasıl pratik bu işlemleri halledebilirim
Örnek şöyle birşey yaptım:
https://i.hizliresim.com/msp30qc.jpg
yaptığım sistemde inputun içine modelleri yazdım ve virgül ile ayırıp dizi ile ayrıştırdım
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (6)
<?php
if($_POST){
$islem = $db->prepare("INSERT INTO urun SET
baslik = ?,
title = ?");
$islem = $islem->execute(array(
$_POST['baslik'],
$_POST['title']));
$id = $db->lastInsertId();
$i = 0;
if(isset($_POST['varyant_adi'])){
foreach ($_POST['varyant_adi'] as $s) {
$islem = $db->prepare("INSERT INTO varyantlar SET urun_id = ?, baslik = ?");
$islem = $islem->execute(array($id,$s));
$varyant_id = $db->lastInsertId();
$ii = 0;
if(isset($_POST['urunvaryanlari'.$i])){
foreach ($_POST['urunvaryanlari'.$i] as $as) {
$islem = $db->prepare("INSERT INTO urun_varyant SET urun_varyant_id = ?, baslik = ?, marka = ?, renk = ?, fiyat = ?");
$islem = $islem->execute(array($varyant_id,$as,$_POST['marka'.$i][$ii],$_POST['renk'.$i][$ii],$_POST['fiyat'.$i][$ii]));
$ii++;
}
}
$i++;
}
}
if($islem){
echo b();
}else{
echo h();
}
}
Çekmek için
<?php
$query = $db->query("SELECT * FROM varyantlar WHERE urun_id = '{$urun['id']}' ORDER BY id ASC", PDO::FETCH_ASSOC);
if($query->rowCount()){
foreach( $query as $row ){
$query1 = $db->query("SELECT * FROM urun_varyant WHERE urun_varyant_id = '{$row['id']}' ORDER BY id ASC", PDO::FETCH_ASSOC);
if($query1->rowCount()){
foreach( $query1 as $row1 ){ ?>
<input type="text" name="s" value="<?php echo $row1['tablo_Adi'] ?>">
<input type="text" name="s" value="<?php echo $row1['tablo_Adi'] ?>">
<input type="text" name="s" value="<?php echo $row1['tablo_Adi'] ?>">
<input type="text" name="s" value="<?php echo $row1['tablo_Adi'] ?>">
<?php } } } }?>
Gelişmiş drag drop multidimensional varyant sistemi, Laravel, Codeigniter veya .Net gibi sistemlere entegre edilebilir. Veriler JSON formatında tüm veritabanları ile uyumludur.
DRUPAL ile hazırlanan gelişmiş özelliklere sahip bidolubaski.com referans alınmıştır.
https://www.hizliresim.com/f21fz4x
Kod örneğine bakabilirsin.
<?php
$return_arr = array();
$return = [];
$varyant_listesi = json_decode($urun->varyant, true);
$return['varyant_listesi'] = $varyant_listesi;
// Varyant fiyat hesaplama
foreach ($varyant_adi as $key => $varyant_adi){
foreach ($varyant_listesi[$key]['alt_ozellik'] as $key => $varyant_detay){
if ($varyant_detay['adi'] == $varyant_adi ){
$urun_fiyati = $urun->fiyat;
if ($varyant_detay['islem']=='%'){
$detay += ($urun_fiyati / 100 ) * $varyant_detay['fiyat'];
}
if ($varyant_detay['islem']=='+'){
$detay = $detay + $varyant_detay['fiyat'];
}
}
}
}
$toplam_varyant_fiyati = $detay + $urun_fiyati;
// Adet fiyat hesaplama
$adet_listesi = json_decode($urun->varyant_fiyat, true);
foreach ($adet_listesi as $key => $adet){
$urun_fiyati = $toplam_varyant_fiyati;
if ($adet['islem']=='%'){
$return['fiyat_listesi'][$adet['adet']] = number_format(($urun_fiyati / 100 ) * $adet['fiyat'] + $toplam_varyant_fiyati, 2);
}
if ($adet['islem']=='+'){
$return['fiyat_listesi'][$adet['adet']] = number_format($detay + $adet['fiyat'] + $toplam_varyant_fiyati, 2);
}
}
$return['secilen_adet'] = $this->input->post('adet');
echo json_encode($return);
?>