diff --git a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php
index fe4a0e91b..c869411b4 100644
--- a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php
+++ b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php
@@ -27,7 +27,5 @@ class EventServiceProvider extends ServiceProvider
Event::listen('catalog.product.create.after', 'Webkul\Admin\Listeners\Product@afterProductCreated');
Event::listen('catalog.product.update.after', 'Webkul\Admin\Listeners\Product@afterProductUpdate');
-
- Event::listen('catalog.product.delete.after', 'Webkul\Admin\Listeners\Product@afterProductDelete');
}
}
\ No newline at end of file
diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php
index 75b87a4d7..5ae31f64f 100644
--- a/packages/Webkul/Admin/src/Resources/lang/en/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php
@@ -467,6 +467,7 @@ return [
'default-locale' => 'Default Locale',
'currencies' => 'Currencies',
'base-currency' => 'Base Currency',
+ 'root-category' => 'Root Category',
'inventory_sources' => 'Inventory Sources',
'design' => 'Design',
'theme' => 'Theme',
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php
index ebf463abb..3a7f58e4a 100644
--- a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php
@@ -56,6 +56,18 @@
@{{ errors.first('inventory_sources[]') }}
+
+
+
+ @{{ errors.first('root_category_id') }}
+
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
index 0802b67a9..2e6127045 100644
--- a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
@@ -59,6 +59,19 @@
@{{ errors.first('inventory_sources[]') }}
+
+
+ root_category_id ?>
+
+ @{{ errors.first('root_category_id') }}
+
+
diff --git a/packages/Webkul/Category/src/Repositories/CategoryRepository.php b/packages/Webkul/Category/src/Repositories/CategoryRepository.php
index 11d87b039..b9eb2ed16 100644
--- a/packages/Webkul/Category/src/Repositories/CategoryRepository.php
+++ b/packages/Webkul/Category/src/Repositories/CategoryRepository.php
@@ -80,6 +80,17 @@ class CategoryRepository extends Repository
: Category::orderBy('position', 'ASC')->get()->toTree();
}
+
+ /**
+ * Get root categories
+ *
+ * @return mixed
+ */
+ public function getRootCategories()
+ {
+ return Category::withDepth()->having('depth', '=', 0)->get();
+ }
+
/**
* get visible category tree
*
diff --git a/packages/Webkul/Core/src/Database/Migrations/2018_12_31_161114_alter_channels_table.php b/packages/Webkul/Core/src/Database/Migrations/2018_12_31_161114_alter_channels_table.php
new file mode 100644
index 000000000..ae32456d3
--- /dev/null
+++ b/packages/Webkul/Core/src/Database/Migrations/2018_12_31_161114_alter_channels_table.php
@@ -0,0 +1,31 @@
+integer('root_category_id')->nullable()->unsigned();
+ $table->foreign('root_category_id')->references('id')->on('categories')->onDelete('set null');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php
index 7d4e62999..61efdb773 100644
--- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php
+++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php
@@ -77,6 +77,7 @@ class ChannelController extends Controller
'default_locale_id' => 'required',
'currencies' => 'required|array|min:1',
'base_currency_id' => 'required',
+ 'root_category_id' => 'required',
'logo.*' => 'mimes:jpeg,jpg,bmp,png',
'favicon.*' => 'mimes:jpeg,jpg,bmp,png'
]);
@@ -122,6 +123,7 @@ class ChannelController extends Controller
'default_locale_id' => 'required',
'currencies' => 'required|array|min:1',
'base_currency_id' => 'required',
+ 'root_category_id' => 'required',
'logo.*' => 'mimes:jpeg,jpg,bmp,png',
'favicon.*' => 'mimes:jpeg,jpg,bmp,png'
]);
diff --git a/packages/Webkul/Core/src/Models/Channel.php b/packages/Webkul/Core/src/Models/Channel.php
index 2290967c6..39de83d72 100644
--- a/packages/Webkul/Core/src/Models/Channel.php
+++ b/packages/Webkul/Core/src/Models/Channel.php
@@ -6,11 +6,12 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
use Webkul\Core\Models\Locale;
use Webkul\Core\Models\Currency;
+use Webkul\Category\Models\Category;
use Webkul\Inventory\Models\InventorySource;
class Channel extends Model
{
- protected $fillable = ['code', 'name', 'description', 'theme', 'home_page_content', 'footer_content', 'hostname', 'default_locale_id', 'base_currency_id'];
+ protected $fillable = ['code', 'name', 'description', 'theme', 'home_page_content', 'footer_content', 'hostname', 'default_locale_id', 'base_currency_id', 'root_category_id'];
/**
* Get the channel locales.
@@ -55,6 +56,14 @@ class Channel extends Model
return $this->belongsTo(Currency::class);
}
+ /**
+ * Get the base currency
+ */
+ public function root_category()
+ {
+ return $this->belongsTo(Category::class, 'root_category_id');
+ }
+
/**
* Get logo image url.
*/
diff --git a/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php b/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php
index 5276a4e4a..aea86852d 100644
--- a/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php
+++ b/packages/Webkul/Shop/src/Http/ViewComposers/CategoryComposer.php
@@ -44,7 +44,7 @@ class CategoryComposer
{
$categories = [];
- foreach ($this->category->getVisibleCategoryTree() as $category) {
+ foreach ($this->category->getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) {
if($category->slug)
array_push($categories, $category);
}