diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php
index 71daa0b7b..617bd736a 100755
--- a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php
@@ -7,14 +7,13 @@
@section('content')
@php
- $locale = request()->get('locale') ?: app()->getLocale();
- $channel = request()->get('channel') ?: core()->getDefaultChannelCode();
+ /* getting channel and locales */
+ $mainConfigurations = core()->getChannelCodeAndLocaleCode();
- $channelLocales = app('Webkul\Core\Repositories\ChannelRepository')->findOneByField('code', $channel)->locales;
-
- if (! $channelLocales->contains('code', $locale)) {
- $locale = config('app.fallback_locale');
- }
+ /* assigning */
+ $locale = $mainConfigurations['localeCode'];
+ $channel = $mainConfigurations['channelCode'];
+ $channelLocales = $mainConfigurations['channelLocales'];
@endphp
{!! view_render_event('bagisto.admin.catalog.product.edit.before', ['product' => $product]) !!}
diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php
index f16fe1152..33bd7236e 100755
--- a/packages/Webkul/Core/src/Core.php
+++ b/packages/Webkul/Core/src/Core.php
@@ -282,6 +282,28 @@ class Core
return $locale;
}
+ /**
+ * Get channel code and locale code based on the request.
+ *
+ * @return array
+ */
+ public function getChannelCodeAndLocaleCode()
+ {
+ $both = [
+ 'channelCode' => request()->get('channel') ?: (core()->getCurrentChannelCode() ?: core()->getDefaultChannelCode()),
+ 'localeCode' => request()->get('locale') ?: app()->getLocale()
+ ];
+
+ $channel = $this->channelRepository->findOneByField('code', $both['channelCode']);
+ $both['channelLocales'] = $channel->locales;
+
+ if (! $both['channelLocales']->contains('code', $both['localeCode'])) {
+ $both['localeCode'] = $channel->default_locale->code;
+ }
+
+ return $both;
+ }
+
/**
* Returns all customer groups.
*
diff --git a/packages/Webkul/Product/src/Models/Product.php b/packages/Webkul/Product/src/Models/Product.php
index 84f6bf6a5..ca14e497c 100755
--- a/packages/Webkul/Product/src/Models/Product.php
+++ b/packages/Webkul/Product/src/Models/Product.php
@@ -391,9 +391,12 @@ class Product extends Model implements ProductContract
return;
}
- $channel = request()->get('channel') ?: (core()->getCurrentChannelCode() ?: core()->getDefaultChannelCode());
+ /* getting channel and locales */
+ $mainConfigurations = core()->getChannelCodeAndLocaleCode();
- $locale = request()->get('locale') ?: app()->getLocale();
+ /* assigning */
+ $locale = $mainConfigurations['localeCode'];
+ $channel = $mainConfigurations['channelCode'];
if ($attribute->value_per_channel) {
if ($attribute->value_per_locale) {