diff --git a/Observer/RegisterCurrentCategoryObserver.php b/Observer/RegisterCurrentCategoryObserver.php
new file mode 100644
index 000000000..a08c90b8e
--- /dev/null
+++ b/Observer/RegisterCurrentCategoryObserver.php
@@ -0,0 +1,28 @@
+currentCategory = $currentCategory;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function execute(Observer $observer)
+ {
+ /** @var CategoryInterface */
+ $category = $observer->getEvent()->getData('category');
+ $this->currentCategory->set($category);
+ }
+}
diff --git a/Registry/CurrentCategory.php b/Registry/CurrentCategory.php
new file mode 100644
index 000000000..e7f19c77f
--- /dev/null
+++ b/Registry/CurrentCategory.php
@@ -0,0 +1,31 @@
+categoryRepository = $categoryRepository;
+ $this->categoryFactory = $categoryFactory;
+ }
+
+ public function set(CategoryInterface $category): void {
+ $this->category = $category;
+ }
+
+ public function get(): CategoryInterface {
+ return $this->category ?? $this->categoryFactory->create();
+ }
+}
diff --git a/etc/frontend/events.xml b/etc/frontend/events.xml
index df4c060f1..90147b29f 100755
--- a/etc/frontend/events.xml
+++ b/etc/frontend/events.xml
@@ -23,4 +23,9 @@
+
+
+
+
+