@extends('layouts.admin', ['title' => 'ملف المنتج 360']) @php $fmt = fn ($minor) => number_format(($minor ?? 0) / 100, 2).' EGP'; $price = $product->sale_price_minor ?: $product->price_minor; $margin = $price > 0 ? (($price - $product->cost_minor) / $price) * 100 : 0; $chart = [ 'labels' => $dailySales->pluck('day'), 'series' => [ ['name' => 'الكمية', 'data' => $dailySales->pluck('quantity')->map(fn ($v) => (int) $v)->values()], ['name' => 'الإيراد', 'data' => $dailySales->pluck('revenue_minor')->map(fn ($v) => round(((int) $v) / 100, 2))->values()], ], ]; @endphp @section('content')

{{ $product->name_ar }}

{{ $product->name_en }} · {{ $product->sku }} · {{ $product->game?->name_ar }}

السعر الحالي{{ $fmt($price) }}قبل التحويلات
الهامش{{ number_format($margin, 1) }}%فرق البيع والتكلفة
المخزون{{ number_format($product->stock_available) }}حد التنبيه {{ $product->min_stock_alert }}
المشاهدات{{ number_format($views) }}من تتبع المنتج

إجراءات سريعة

@csrf @method('PATCH')

مبيعات المنتج

عدد الطلبات{{ number_format($sales->orders_count ?? 0) }}طلب
الكمية المباعة{{ number_format($sales->quantity ?? 0) }}قطعة
إيراد المنتج{{ $fmt($sales->revenue_minor ?? 0) }}إجمالي

أكواد المخزون

@forelse($stockBreakdown as $status => $total)
{{ $status }}{{ number_format($total) }}كود
@empty
لا توجد أكواد مربوطة بهذا المنتج.
@endforelse

أداء آخر 14 يوم

آخر مبيعات المنتج

@forelse($recentItems as $item) @empty @endforelse
الطلبالعميلالكميةالإجماليالتنفيذ
{{ $item->order?->order_number }} {{ $item->order?->customer_name }} {{ $item->quantity }} {{ $fmt($item->total_minor) }} {{ $item->fulfillment_status }}
لا توجد مبيعات لهذا المنتج بعد.
@endsection