diff --git a/packages/Sarga/API/Http/Controllers/Vendors.php b/packages/Sarga/API/Http/Controllers/Vendors.php
index f5428355f..949359ae8 100644
--- a/packages/Sarga/API/Http/Controllers/Vendors.php
+++ b/packages/Sarga/API/Http/Controllers/Vendors.php
@@ -55,6 +55,11 @@ class Vendors extends V1Controller
return Source::collection($categorizedVendors);
}
+ public function menus(MenuRepository $repository){
+ $menus = $repository->where('status',1)->with(['categories','brands'])->orderBy('position','asc')->get();
+ return Menu::collection($menus);
+ }
+
public function index()
{
$vendors = $this->vendorRepository->select('marketplace_sellers.id','url','logo','banner','shop_title','brand_attribute_id')
diff --git a/packages/Sarga/API/Http/Resources/Catalog/Menu.php b/packages/Sarga/API/Http/Resources/Catalog/Menu.php
new file mode 100644
index 000000000..6fc930f9e
--- /dev/null
+++ b/packages/Sarga/API/Http/Resources/Catalog/Menu.php
@@ -0,0 +1,27 @@
+ $this->id,
+ 'name' => $this->name,
+ 'description' => $this->description,
+ 'categories' => Category::collection($this->categories),
+ 'brands' => Brands::collection($this->brands)
+
+ ];
+ }
+
+}
\ No newline at end of file
diff --git a/packages/Sarga/Admin/src/Database/Migrations/2022_09_25_130148_create_seller_menus_table.php b/packages/Sarga/Admin/src/Database/Migrations/2022_09_25_130148_create_seller_menus_table.php
new file mode 100644
index 000000000..97c5b8d65
--- /dev/null
+++ b/packages/Sarga/Admin/src/Database/Migrations/2022_09_25_130148_create_seller_menus_table.php
@@ -0,0 +1,41 @@
+string('filter')->nullable();
+
+ });
+ Schema::create('seller_menus',function (Blueprint $table) {
+ $table->integer('menu_id')->unsigned();
+ $table->integer('seller_id')->unsigned();
+ $table->foreign('menu_id')->references('id')->on('menus');
+ $table->foreign('seller_id')->references('id')->on('brands');
+ });
+
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('seller_menus');
+ Schema::table('menus', function (Blueprint $table) {
+ $table->dropColumn('filter');
+ });
+ }
+}
diff --git a/packages/Sarga/Admin/src/Resources/lang/en/app.php b/packages/Sarga/Admin/src/Resources/lang/en/app.php
index 8fb681e58..4ce190de7 100644
--- a/packages/Sarga/Admin/src/Resources/lang/en/app.php
+++ b/packages/Sarga/Admin/src/Resources/lang/en/app.php
@@ -200,6 +200,7 @@ return [
'brand-search-hint' => 'Brand search hint',
'no-result-found' => 'No result found',
'searching' => 'Searching',
+ 'sources' => 'Sources (Vendors)'
],
]
];
diff --git a/packages/Sarga/Admin/src/Resources/views/catalog/menus/create.blade.php b/packages/Sarga/Admin/src/Resources/views/catalog/menus/create.blade.php
index 20df6149d..fde5a0983 100644
--- a/packages/Sarga/Admin/src/Resources/views/catalog/menus/create.blade.php
+++ b/packages/Sarga/Admin/src/Resources/views/catalog/menus/create.blade.php
@@ -34,10 +34,16 @@
-
+
@{{ errors.first('name') }}
-
+
+
+
+ @{{ errors.first('filter') }}
+
+
+
+
+
+
+
+
+ @{{ errors.first('sellers[]') }}
+
+
+
+
@if ($categories->count())
@@ -79,6 +106,7 @@
@endif
+
diff --git a/packages/Sarga/Admin/src/Resources/views/catalog/menus/edit.blade.php b/packages/Sarga/Admin/src/Resources/views/catalog/menus/edit.blade.php
index 7a5864849..3f665fe65 100644
--- a/packages/Sarga/Admin/src/Resources/views/catalog/menus/edit.blade.php
+++ b/packages/Sarga/Admin/src/Resources/views/catalog/menus/edit.blade.php
@@ -62,11 +62,16 @@
-
@{{ errors.first('{!!$locale!!}[name]') }}
-
+
+
+
+ @{{ errors.first('filter') }}
+
@include('sarga_admin::catalog.menus.menu-brand-links')
+
+
+ sellers->pluck('id')->toArray()) ?>
+
+
+
+
+ @{{ errors.first('sellers[]') }}
+
+
+
+
@if ($categories->count())
diff --git a/packages/Sarga/Shop/src/Models/Menu.php b/packages/Sarga/Shop/src/Models/Menu.php
index e8d7559dc..307a06cee 100644
--- a/packages/Sarga/Shop/src/Models/Menu.php
+++ b/packages/Sarga/Shop/src/Models/Menu.php
@@ -33,7 +33,8 @@ class Menu extends TranslatableModel implements MenuContract
*/
protected $with = ['translations'];
- public function brands() :BelongsToMany{
+ public function brands() :BelongsToMany
+ {
return $this->belongsToMany(BrandProxy::modelClass(),'menu_brands');
}
@@ -41,4 +42,9 @@ class Menu extends TranslatableModel implements MenuContract
{
return $this->belongsToMany(CategoryProxy::modelClass(), 'menu_categories');
}
+
+ public function sellers():BelongsToMany
+ {
+ return $this->belongsToMany(VendorProxy::modelClass(),'seller_menus')
+ }
}
\ No newline at end of file
diff --git a/packages/Sarga/Shop/src/Models/Vendor.php b/packages/Sarga/Shop/src/Models/Vendor.php
index 27a7b92ea..a633f431b 100644
--- a/packages/Sarga/Shop/src/Models/Vendor.php
+++ b/packages/Sarga/Shop/src/Models/Vendor.php
@@ -10,12 +10,18 @@ use Webkul\Marketplace\Models\SellerCategoryProxy;
class Vendor extends Seller
{
- public function categories()
+ public function categories() : HasOne
{
return $this->hasOne(SellerCategoryProxy::modelClass(),'seller_id',);
}
- public function brands(){
+ public function brands() : BelongsToMany
+ {
return $this->belongsToMany(BrandProxy::modelClass(),'seller_brands','seller_id');
}
+
+ public function menus() : BelongsToMany
+ {
+ return $this->belongsToMany(MenuProxy::modelClass(),'seller_menus','seller_id')
+ }
}
\ No newline at end of file
diff --git a/packages/Sarga/Shop/src/Models/VendorProxy.php b/packages/Sarga/Shop/src/Models/VendorProxy.php
new file mode 100644
index 000000000..4feb7b2e4
--- /dev/null
+++ b/packages/Sarga/Shop/src/Models/VendorProxy.php
@@ -0,0 +1,8 @@
+model->create($data);
-// $this->uploadImages($data, $menu);
-// $product->categories()->sync($data['categories']);
if (isset($data['categories'])) {
$menu->categories()->sync($data['categories']);
}
+ if(isset($data['sellers'])){
+ $menu->sellers()->sync($data['sellers']);
+ }
+
return $menu;
}
@@ -58,6 +60,10 @@ class MenuRepository extends Repository
if (isset($data['brands'])) {
$menu->brands()->sync($data['brands']);
}
+
+ if(isset($data['sellers'])){
+ $menu->sellers()->sync($data['sellers']);
+ }
}