1 <!DOCTYPE html> 2<html lang="tr"> 3<head>
3<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push(i)}) 4(window,'GTM-NN593V6L','google_tags_first_party');</script>
4<script>(function(w,d,s,l){w[l]=w[l]||[];(function(){w[l].push(arguments);})('set', 'developer_id.dYzg1YT', true); 5 w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 6 j=d.createElement(s);j.async=true;j.src='/58jr/'; 7 f.parentNode.insertBefore(j,f); 8 })(window,document,'script','dataLayer');</script>
8 9 <meta charset="UTF-8"> 10 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 11 <title>Sepetim | Oto Parça Plus | Oto Yedek Parça</title> 12 13 14 15 <!-- Tailwind CSS --> 16
16<script src="https://cdn.tailwindcss.com"></script>
16 17
17<script> 18 tailwind.config = { 19 theme: { 20 extend: { 21 colors: { 22 primary: { 23 DEFAULT: '#db6624', 24 dark: '#9B2101', 25 light: '#FDE8E4' 26 }, 27 secondary: { 28 DEFAULT: '#7e1b00', 29 dark: '#5E1400', 30 light: '#F9E6E2' 31 }, 32 accent: { 33 DEFAULT: '#D82C0D', 34 light: '#FEE4E2' 35 } 36 } 37 } 38 } 39 } 40 </script>
40 41 42 <!-- Font Awesome --> 43 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> 44</head> 45<body class="bg-gray-50"> 46 <!-- Minimal Ãst Bar --> 47 <div class="bg-white border-b mb-4"> 48 <div class="max-w-7xl mx-auto px-4 py-4"> 49 <div class="flex flex-col sm:flex-row items-center justify-between h-auto sm:h-24"> 50 <!-- Logo --> 51 <a href="https://otoparcaplus.com" class="flex items-center mb-4 sm:mb-0"> 52 <img src="./store/assets/images/logo/oto_parca_plus_parca.webp" 53 alt="Oto Parça Plus | Oto Yedek Parça" 54 class="h-10 sm:h-20 w-auto"> 55 </a> 56 57 <!-- AlıÅveriÅe Dön Butonu --> 58 <a href="https://otoparcaplus.com" 59 class="flex items-center gap-2 text-gray-600 hover:text-primary transition-colors text-sm sm:text-base"> 60 <i class="fas fa-arrow-left"></i> 61 <span>AlıÅveriÅe Dön</span> 62 </a> 63 </div> 64 </div> 65 </div> 66 67 <main class="max-w-7xl mx-auto px-4 py-8"> 68 <div class="mb-8"> 69 <h1 class="text-xl sm:text-2xl font-bold text-gray-900 text-center sm:text-left">AlıÅveriÅ Sepetim</h1> 70 71 </div> 72 73 <div class="bg-white rounded-lg shadow-sm p-8 text-center"> 74 <i class="fas fa-shopping-cart text-4xl text-gray-300 mb-4"></i> 75 <p class="text-gray-600 mb-4">Sepetinizde ürün bulunmamaktadır.</p> 76 <a href="https://otoparcaplus.com" class="inline-flex items-center px-4 py-2 bg-primary text-white rounded-lg hover:bg-primary-dark transition-colors"> 77 <i class="fas fa-arrow-left mr-2"></i> 78 AlıÅveriÅe Devam Et 79 </a> 80 </div> 81 </div> 82 </main> 83 84
84<script> 85 // Miktar güncelleme 86 function updateQuantity(itemId, action) { 87 const input = document.getElementById('quantity-' + itemId); 88 let quantity = parseInt(input.value); 89 90 if (action === 'increase' && quantity < 99) { 91 quantity++; 92 } else if (action === 'decrease' && quantity > 1) { 93 quantity--; 94 } 95 96 input.value = quantity; 97 98 // AJAX ile güncelle 99 const formData = new FormData(); 100 formData.append('item_id', itemId); 101 formData.append('quantity', quantity); 102 103 fetch('/store/cart/update.php', { 104 method: 'POST', 105 body: formData, 106 headers: { 107 'X-Requested-With': 'XMLHttpRequest' 108 }, 109 credentials: 'same-origin' 110 }) 111 .then(response => response.json()) 112 .then(data => { 113 if (data.success) { 114 // Sepet sayısını güncelle 115 const cartCount = document.getElementById('cart-count'); 116 if (cartCount) { 117 cartCount.textContent = data.cart_count; 118 } 119 120 // Sayfayı yenile 121 location.reload(); 122 } else { 123 alert(data.message || 'Bir hata oluÅtu.'); 124 } 125 }) 126 .catch(error => { 127 console.error('Hata:', error); 128 alert('Bir hata oluÅtu. Lütfen tekrar deneyin.'); 129 }); 130 } 131 132 // Ãrün silme 133 function removeItem(itemId) { 134 if (!confirm('Bu ürünü sepetinizden çıkarmak istediÄinize emin misiniz?')) { 135 return; 136 } 137 138 const formData = new FormData(); 139 formData.append('item_id', itemId); 140 141 fetch('/store/cart/remove.php', { 142 method: 'POST', 143 body: formData, 144 headers: { 145 'X-Requested-With': 'XMLHttpRequest' 146 }, 147 credentials: 'same-origin' 148 }) 149 .then(response => response.json()) 150 .then(data => { 151 if (data.success) { 152 // Sepet sayısını güncelle 153 const cartCount = document.getElementById('cart-count'); 154 if (cartCount) { 155 cartCount.textContent = data.cart_count; 156 } 157 158 // Ãrünü DOM'dan kaldır 159 const item = document.querySelector('[data-cart-item="' + itemId + '"]'); 160 if (item) { 161 item.remove(); 162 } 163 164 // EÄer sepet boÅsa sayfayı yenile 165 if (document.querySelectorAll('[data-cart-item]').length === 0) { 166 location.reload(); 167 } 168 } else { 169 alert(data.message || 'Bir hata oluÅtu.'); 170 } 171 }) 172 .catch(error => { 173 console.error('Hata:', error); 174 alert('Bir hata oluÅtu. Lütfen tekrar deneyin.'); 175 }); 176 } 177 178 // Ãdemeye geç 179 function checkout() { 180 window.location.href = 'order-step-1'; 181 } 182 183 // Hediye çeki uygulama fonksiyonu 184 function applyGiftCard() { 185 const code = document.getElementById('gift-card-code').value; 186 const messageDiv = document.getElementById('gift-card-message'); 187 188 if (!code) { 189 messageDiv.textContent = 'Lütfen hediye çeki kodunu giriniz.'; 190 messageDiv.className = 'mt-2 text-sm text-red-500'; 191 messageDiv.classList.remove('hidden'); 192 return; 193 } 194 195 // AJAX ile hediye çeki kontrolü 196 fetch('/store/cart/apply-gift-card.php', { 197 method: 'POST', 198 headers: { 199 'Content-Type': 'application/json', 200 'X-Requested-With': 'XMLHttpRequest' 201 }, 202 body: JSON.stringify({ code: code }) 203 }) 204 .then(response => response.json()) 205 .then(data => { 206 if (data.success) { 207 messageDiv.textContent = 'Hediye çeki baÅarıyla uygulandı.'; 208 messageDiv.className = 'mt-2 text-sm text-green-500'; 209 // Sayfayı yenile 210 location.reload(); 211 } else { 212 messageDiv.textContent = data.message || 'Hediye çeki geçersiz veya kullanılmıÅ.'; 213 messageDiv.className = 'mt-2 text-sm text-red-500'; 214 } 215 messageDiv.classList.remove('hidden'); 216 }) 217 .catch(error => { 218 messageDiv.textContent = 'Bir hata oluÅtu. Lütfen tekrar deneyin.'; 219 messageDiv.className = 'mt-2 text-sm text-red-500'; 220 messageDiv.classList.remove('hidden'); 221 }); 222 } 223 224 // Hediye çeki kaldırma fonksiyonu 225 function removeGiftCard() { 226 fetch('/store/cart/remove-gift-card.php', { 227 method: 'POST', 228 headers: { 229 'X-Requested-With': 'XMLHttpRequest' 230 }, 231 credentials: 'same-origin' 232 }) 233 .then(response => response.json()) 234 .then(data => { 235 if (data.success) { 236 window.location.reload(); 237 } else { 238 alert('Hediye çeki kaldırılırken bir hata oluÅtu: ' + data.message); 239 } 240 }) 241 .catch(error => { 242 console.error('Error:', error); 243 alert('Bir hata oluÅtu. Lütfen tekrar deneyin.'); 244 }); 245 } 246 </script>
vendor: 1 bytes, line 246
246
247<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"6f10e23688fc43d0b1ba1d5a9e31c709","r":1,"spa":2}' crossorigin="anonymous"></script>
247 248</body> 249</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.