mgsmus
mgsmus
Hocam bu kez aynı şekilde urun_detay web sitesi için yapmak istiyorum. Resim(https://prnt.sc/hDGt3_RkdrB0) Burada Add to Cart buttonu tıklayınca yine web sitesin header kısmında yüklenecek. Bügün çözdüm, bu kez asılnda aynısını urun_detay web sitesi için tekrar yapmam gerkiyor. Aynısını yaptım. Ama bu kez:
[2023-04-26 19:00:14] local.INFO: request {"id":"18","color":"Black","size":"Midium","quantity":"1","product_name":"Hurma","price":"35 TL","oldprice":"$50"}
[2023-04-26 19:00:14] local.ERROR: Please supply a valid price. {"userId":1,"exception":"[object] (InvalidArgumentException(code: 0): Please supply a valid price. at C:\xampp\htdocs\e-ticaret\vendor\bumbummen99\shoppingcart\src\CartItem.php:123)
[stacktrace]
#0 C:\xampp\htdocs\e-ticaret\vendor\bumbummen99\shoppingcart\src\CartItem.php(457): Gloudemans\Shoppingcart\CartItem->__construct('18', 'Hurma', '35 TL', 1, Array)
Gördüğünüz gibi bütün verileri şu fonksiyona geçiyor:
function addToCartDetails() {
var product_name = $('#dpname').text();
var id = $('#dproduct_id').val();
var color = $('#dcolor option:selected').text();
var size = $('#dsize option:selected').text();
var quantity = $('#dqty').val();
var price = $('#dprice').text();
var oldprice = $('#doldprice').text();
$.ajax({
type: "POST",
dataType: 'json',
data: {
id:id,
color: color,
size: size,
quantity: quantity,
product_name: product_name,
price: price,
oldprice:oldprice
},
url: "/dcart/data/store/" + id,
success: function(data) {
miniCart();
$('#closeModal').click();
// console.log(data)
// Start Message
const Toast = Swal.mixin({
toast: true,
position: 'top-end',
icon: 'success',
showConfirmButton: false,
timer: 3000
})
if ($.isEmptyObject(data.error)) {
Toast.fire({
type: 'success',
title: data.success,
})
} else {
Toast.fire({
type: 'error',
title: data.error,
})
}
// End Message
}
})
} // End Detay Add Cart
Daha sonra şu controllere gidiyor (Aşağadaki kod)
public function AddToCartDetails(Request $request, $id)
{
info('request', $request->all());
$urun = Urun::findOrFail($id);
if ($urun->oldprice == NULL) {
Cart::add([
'id' => $id,
'name' => $request->product_name,
'qty' => $request->quantity,
'price' => $request->price,
'weight' => 1,
'options' => [
'image' => $urun->urun_thambnail,
'color' => $request->color,
'size' => $request->size,
]
]);
return response()->json(['success' => 'Başarılı Kartta Eklendi ']);
} else {
Cart::add([
'id' => $id,
'name' => $request->product_name,
'qty' => $request->quantity,
'price' => $request->oldprice,
'weight' => 1,
'options' => [
'image' => $urun->urun_thambnail,
'color' => $request->color,
'size' => $request->size,
]
]);
return response()->json(['success' => 'Başarılı Kartta Eklendi ']);
}
}
Route:
// Bügünkü sorunu için Route::post('/cart/data/store/{id}', [CartController::class, 'AddToCart']);
// Şimdiki sorun için, yani urun_detay
Route::post('/dcart/data/store/{id}', [CartController::class, 'AddToCartDetails']);
Burada asılında bügün çözdüğüm kısmı için, storage/logs'da böyle gözküyor:
[2023-04-26 18:55:52] local.INFO: request {"id":"22","color":"Kırmızı","size":"Small","quantity":"1","product_name":"Meyveli pasta","price":"80","oldprice":"120"}
[2023-04-26 18:55:52] local.INFO: request {"7ad30dbe211f2fa5bcd57069fbfd5e95":{"Gloudemans\Shoppingcart\CartItem":{"rowId":"7ad30dbe211f2fa5bcd57069fbfd5e95","id":"22","qty":"1","name":"Meyveli pasta","price":80.0,"weight":1.0,"options":{"image":"upload/products/thambnail/1763973698632495.jpg","color":"Kırmızı","size":"Small"},"taxRate":0,"instance":"default"}}}
Acayıp bir olay olmuş, ikisi de verileri gidiyor, yani controllerdeki fonksiyonda verdiğiniz info('request', $request->all()); kullanarak çözdüm. Frontende zaten verileri demek ki geliyor. Şimdi bu neden çalışmıyor ? (Burada console kısım: https://prnt.sc/g2HoaXq1Z5k_) Tekrar teşekkürler...