diff --git a/packages/TPS/Shop/src/Database/Migrations/2024_07_11_183251_create_website_reviews_table.php b/packages/TPS/Shop/src/Database/Migrations/2024_07_11_183251_create_website_reviews_table.php
new file mode 100644
index 000000000..5c31eaf6a
--- /dev/null
+++ b/packages/TPS/Shop/src/Database/Migrations/2024_07_11_183251_create_website_reviews_table.php
@@ -0,0 +1,35 @@
+increments('id');
+ $table->integer('customer_id')->unsigned();
+ $table->foreign('customer_id')->references('id')->on('customers')->onDelete('cascade');
+ $table->text('review_text')->nullable();
+ $table->integer('rating')->unsigned();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('website_reviews');
+ }
+};
diff --git a/packages/TPS/Shop/src/Http/Controllers/WebsiteReviewController.php b/packages/TPS/Shop/src/Http/Controllers/WebsiteReviewController.php
new file mode 100644
index 000000000..b45b85030
--- /dev/null
+++ b/packages/TPS/Shop/src/Http/Controllers/WebsiteReviewController.php
@@ -0,0 +1,43 @@
+customer = auth()->guard('customer')->user();}
+
+ public function index()
+ {
+ $websiteReviews = $this->websiteReviewRepository->paginate(10); // 10 reviews per page
+
+ return view('shop::websiteReview.index', compact('websiteReviews'));
+ }
+
+
+ public function store(Request $request){
+
+ $request->validate([
+ 'web_review_text' => 'required',
+ 'web_review_rating' => 'required'
+ ]);
+
+ $data = array_merge(request()->all(), [
+ 'customer_id' => auth()->guard('customer')->user()->id,
+ ]);
+
+ if($this->websiteReviewRepository->create($data)){
+ return response()->json(['success' => true,'message'=>trans('shop::app.review.success')]);
+ }
+
+ return response()->json(['success' => false,'message'=>trans('shop::app.review.error')]);
+ }
+
+}
\ No newline at end of file
diff --git a/packages/TPS/Shop/src/Models/WebsiteReview.php b/packages/TPS/Shop/src/Models/WebsiteReview.php
new file mode 100644
index 000000000..6363f7fd4
--- /dev/null
+++ b/packages/TPS/Shop/src/Models/WebsiteReview.php
@@ -0,0 +1,23 @@
+belongsTo(CustomerProxy::modelClass(), 'customer_id');
+ }
+
+}
\ No newline at end of file
diff --git a/packages/TPS/Shop/src/Repositories/WebsiteReviewRepository.php b/packages/TPS/Shop/src/Repositories/WebsiteReviewRepository.php
new file mode 100644
index 000000000..e10befd13
--- /dev/null
+++ b/packages/TPS/Shop/src/Repositories/WebsiteReviewRepository.php
@@ -0,0 +1,28 @@
+ $data['customer_id'],
+ 'review_text' => $data['web_review_text'],
+ 'rating' => $data['web_review_rating']
+ ]);
+
+ return $websiteReview ? true : false;
+ }
+
+ public function paginate($perPage)
+ {
+ return WebsiteReview::with('customer')
+ ->orderBy('created_at', 'desc')
+ ->paginate($perPage);
+ }
+
+}
\ No newline at end of file
diff --git a/packages/TPS/Shop/src/Resources/assets/js/components/mini-card.vue b/packages/TPS/Shop/src/Resources/assets/js/components/mini-card.vue
new file mode 100644
index 000000000..f6e535afa
--- /dev/null
+++ b/packages/TPS/Shop/src/Resources/assets/js/components/mini-card.vue
@@ -0,0 +1,358 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/TPS/Shop/src/Resources/lang/ru/app.php b/packages/TPS/Shop/src/Resources/lang/ru/app.php
index 57e78a697..d9a2d59cf 100644
--- a/packages/TPS/Shop/src/Resources/lang/ru/app.php
+++ b/packages/TPS/Shop/src/Resources/lang/ru/app.php
@@ -15,8 +15,20 @@ return [
'downloadable-products' => 'Загружаемые продукты',
],
+ 'review' => [
+ 'error' => 'Что-то пошло не так. Пожалуйста, повторите попытку позже.',
+ 'success' => 'Отзыв успешно создан.',
+ 'write-review' => 'Напиши свой отзыв!',
+ 'all-reviews' => 'Все отзывы!',
+ 'reviews' => 'Отзывы',
+ 'reviews-about-us' => 'Отзывы о нас',
+ 'total' => 'Всего',
+ 'pages' => 'страниц'
+ ],
+
'common' => [
'error' => 'Что-то пошло не так. Пожалуйста, повторите попытку позже.',
+ 'success' => 'Успешно создано.',
'image-upload-limit' => 'Максимальный размер загружаемого изображения – 2 МБ',
'no-result-found' => 'Нам не удалось найти никаких записей.',
'delete' => 'Удалить'
@@ -798,7 +810,7 @@ return [
],
'response' => [
- 'create-success' => ':name успешно создано.',
+ 'create-success' => ':name успешно создано.',
'update-success' => ':name успешно обновлено.',
'delete-success' => ':name успешно удалено.',
'submit-success' => ':name успешно отправлено.',
diff --git a/packages/TPS/Shop/src/Resources/lang/tm/app.php b/packages/TPS/Shop/src/Resources/lang/tm/app.php
index 1e675a366..ba852954e 100644
--- a/packages/TPS/Shop/src/Resources/lang/tm/app.php
+++ b/packages/TPS/Shop/src/Resources/lang/tm/app.php
@@ -15,6 +15,17 @@ return [
'downloadable-products' => 'Göçürip alyp bolýan önümler'
],
+ 'review' => [
+ 'error' => 'Teswir döredilip bilinmedi !',
+ 'success' => 'Teswir üstünlikli döredildi !',
+ 'write-review' => 'Teswir ýazyň !',
+ 'all-reviews' => 'Hemme teswirler',
+ 'reviews' => 'Teswirler',
+ 'reviews-about-us' => 'Biz hakda teswirler',
+ 'total' => 'Hemme',
+ 'pages' => 'sahypalar'
+ ],
+
'pagenames' =>[
'homepage' => 'Baş sahypa',
'cartpage' => 'Sebet',
diff --git a/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php b/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php
index 8eb5e3335..ddc40791e 100644
--- a/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php
+++ b/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php
@@ -64,11 +64,14 @@
@include('shop::home.banner',['banner'=>$bannerData->where('type','banner')->last()])
@endif
@include('shop::home.featured-products')
+ @include('shop::home.reviews')
+ @include('shop::websiteReview.review-popup')
+ @include('shop::products.popup-card')
{{-- @endif--}}
@if(core()->getConfigData('customer.settings.newsletter.subscription'))
-