Shared Admin Foundation
Unified admin menu — all Panth extensions appear under a single Panth Infotech sidebar entry
Free, mandatory dependency for the entire Panth Infotech extension suite on the Adobe Commerce Marketplace.
Key Features:
Additional Services
Built-in from day one. No add-ons, no upsell, no licence keys to renew.
Unified admin menu — all Panth extensions appear under a single Panth Infotech sidebar entry
Panth\Core\Helper\Theme — detect whether the current store is running Hyva or Luma (used by 30+ Panth extensions to switch templates)
Grid data-provider fix — patches the well-known Magento bug where SearchResult virtual types return null from getCustomAttributes() in de…
MEQP compliant — passes Adobe's Magento Extension Quality Program with zero severity-10 violations
Panth Core is a shared foundation module for Magento 2 and Adobe Commerce that unifies the admin UX, version reporting, and theme detection across every Panth extension on your store.
The Panth Core module replaces the noisy, duplicated admin sidebar that appears when you install several vendor extensions with a single, organized “Panth Extensions” namespace — configuration groups, ACL resources, and content menus all live under one parent. A central version registry surfaces every installed Panth module on a single screen so you can verify exactly which builds are live without grepping composer.lock.
Theme detection ships out of the box: Panth Core probes parent-chain signals to identify whether the storefront is running Hyva or Luma, so downstream modules render the right assets without configuration. The receiver-hardened install and heartbeat reporter keeps telemetry quiet and resilient when the network is flaky, and every API call defers when the receiver is offline so nothing blocks the admin. Panth Core is also a soft dependency of every other Panth Magento 2 extension, so installing it once means every future Panth module on the store inherits the same admin namespace and the same theme-aware asset pipeline without per-module configuration.
Best for:
When you install multiple extensions from the same vendor on Magento 2, you typically face three problems:
Panth Core solves all three by providing a single shared foundation that every Panth extension hooks into:
Panth Infotech admin sidebar entryStores → Configuration → Panth Extensions settings homePanth\Core\Helper\Theme for Hyva/Luma detectionpanth_modules.xml registry for the extensions overview pageThis means whether you install 1 or 34 Panth extensions, the admin experience stays clean, fast, and consistent.
Panth Core ships the cross-cutting plumbing every Panth Magento 2 extension depends on.
Panth Infotech sidebar entryStores → Configuration → Panth ExtensionsPanth\Core\Helper\Theme — detect whether the current store is running Hyva or Luma (used by 30+ Panth extensions to switch templates)Panth\Core\ViewModel\ThemeConfig — inject theme tokens into frontend templatesPanth\Core\Api\ThemeBuildExecutorInterface — optional contract for triggering theme builds from adminSearchResult virtual types return null from getCustomAttributes() in developer modepanth_modules.xml lists every installed Panth extension for the overview pagePanth_Core/
├── Api/
│ ├── ThemeBuildExecutorInterface.php # Optional contract for theme builds
│ └── Data/
├── Block/
│ └── Adminhtml/ # Admin block helpers
├── Controller/
│ └── Adminhtml/ # Admin controllers
├── Cron/
│ └── Heartbeat.php # Lightweight diagnostics cron
├── Helper/
│ ├── Data.php # General config helper
│ └── Theme.php # Hyva/Luma theme detection
├── Model/
│ ├── Config/ # Configuration sources and backends
│ └── ModuleRegistry.php # Reads panth_modules.xml
├── Observer/ # Event observers
├── Plugin/
│ └── GridDataProvider.php # Magento grid bug fix
├── Service/ # Reusable services
├── Setup/
│ └── Patch/Data/ # Data patches
├── ViewModel/
│ └── ThemeConfig.php # Frontend theme config injector
├── etc/
│ ├── adminhtml/
│ │ ├── menu.xml # "Panth Infotech" sidebar entry
│ │ ├── routes.xml
│ │ └── system.xml # Core Settings config UI
│ ├── crontab.xml
│ ├── di.xml
│ ├── module.xml
│ └── panth_modules.xml # Module registry
└── view/
├── adminhtml/
└── frontend/
Panth Core's theme detection logic checks multiple signals to reliably identify whether the storefront is running Hyva or Luma:
Hyva_Theme enabled?Hyva/default?This multi-signal approach correctly handles edge cases like:
The result is cached per-request via $cachedThemeType to avoid repeated database lookups.
The etc/panth_modules.xml file declares every Panth extension installed on the store. Each Panth extension contributes its own entry through DI configuration:
<config>
<module name="Panth_AdvancedSEO" version="1.0.0">
<label>Advanced SEO</label>
<description>Enterprise-grade SEO suite</description>
<admin_url>panth_seo/dashboard/index</admin_url>
</module>
</config>
The registry is consumed by the Panth Infotech admin overview page, which displays installed extensions, their versions, and links to their config sections. This gives merchants a single dashboard to see and manage all Panth extensions.
Panth Core registers a lightweight cron job (panth_core_heartbeat) that runs every hour and records the last execution timestamp. This is useful for:
To disable the heartbeat entirely, set Cron Heartbeat to No in Core Settings.
A well-known Magento bug causes admin grids to crash in developer mode when virtual types extending SearchResult return null from getCustomAttributes(). Panth Core ships a plugin (Panth\Core\Plugin\GridDataProvider) that patches this by returning an empty array instead of null.
This fix is applied silently and only affects grids that would otherwise throw errors. It does not modify any product data or alter grid behaviour in production mode.
| Issue | Cause | Resolution |
|---|---|---|
Class Panth\Core\Helper\Theme not found |
Module not enabled or DI compile not run | Run bin/magento module:enable Panth_Core && bin/magento setup:di:compile |
Admin sidebar missing Panth Infotech entry |
Cache not flushed | Run bin/magento cache:flush and refresh admin |
| Core Settings section missing | ACL not refreshed | Log out and back in to admin |
| Grid bug fix not applying | Conflict with another grid plugin | Check app/code for custom plugins on Magento\Framework\Api\SearchResults |
| Cron heartbeat not running | Magento cron not configured | Verify bin/magento cron:run is scheduled in your system crontab |
For other issues, enable Debug Mode in Core Settings and check var/log/panth_core.log for detailed output.
| Requirement | Versions Supported |
|---|---|
| Magento Open Source | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce Cloud | 2.4.4 — 2.4.8 |
| PHP | 8.1.x, 8.2.x, 8.3.x, 8.4.x |
| MySQL | 8.0+ |
| MariaDB | 10.4+ |
| Hyva Theme | 1.0+ (optional) |
| Luma Theme | Native support |
Tested on:
composer require mage2kishan/module-core
bin/magento module:enable Panth_Core
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
app/code/Panth/Core/ in your Magento installationbin/magento module:enable Panth_Corebin/magento module:status Panth_Core
# Expected output: Module is enabled
After installation, navigate to:
Admin → Stores → Configuration → Panth Extensions → Core Settings
Panth Core ships with sensible defaults and requires no configuration to function. The following optional settings are available at Stores → Configuration → Panth Extensions → Core Settings:
| Setting | Default | Description |
|---|---|---|
| Enable Panth Core | Yes | Master toggle for all Panth Core functionality. Disable to bypass all Panth Core hooks. |
| Debug Mode | No | Enable verbose logging for Panth Core operations. Useful for development and troubleshooting. Should be disabled in production. |
| Enable Caching | Yes | Enable internal caching for theme detection and module registry lookups. Recommended on. |
| Cron Heartbeat | Yes | Enable the lightweight cron heartbeat for diagnostics. Disable if you do not want any cron tracking. |
Panth Core is the required dependency for all Panth Infotech extensions. Composer handles this automatically — when you install any Panth extension, Core is pulled in.
| Extension | Composer Package |
|---|---|
| Advanced SEO | mage2kishan/module-advanced-seo |
| Advanced Contact Us | mage2kishan/module-advanced-contact-us |
| Advanced Cart | mage2kishan/module-advancedcart |
| Banner Slider | mage2kishan/module-banner-slider |
| Cache Manager | mage2kishan/module-cachemanager |
| Checkout Extended | mage2kishan/module-checkout-extended |
| Checkout Success Page | mage2kishan/module-checkout-success |
| Core Web Vitals | mage2kishan/module-corewebvitals |
| Custom Options | mage2kishan/module-custom-options |
| Dynamic Forms | mage2kishan/module-dynamic-forms |
| FAQ | mage2kishan/module-faq |
| Footer | mage2kishan/module-footer |
| Image Optimizer | mage2kishan/module-imageoptimizer |
| Live Activity | mage2kishan/module-live-activity |
| Low Stock Notification | mage2kishan/module-low-stock-notification |
| Malware Scanner | mage2kishan/module-malware-scanner |
| Mega Menu | mage2kishan/module-mega-menu |
| Not Found Page (404) | mage2kishan/module-not-found-page |
| Order Attachments | mage2kishan/module-order-attachments |
| PageBuilder AI | mage2kishan/module-pagebuilder-ai |
| Performance Optimizer | mage2kishan/module-performance-optimizer |
| Price Drop Alert | mage2kishan/module-price-drop-alert |
| Product Attachments | mage2kishan/module-product-attachments |
| Product Gallery | mage2kishan/module-productgallery |
| Product Slider | mage2kishan/module-product-slider |
| Product Tabs | mage2kishan/module-producttabs |
| Quick View | mage2kishan/module-quickview |
| Search Autocomplete | mage2kishan/module-search-autocomplete |
| Smart Badge | mage2kishan/module-smart-badge |
| Testimonials | mage2kishan/module-testimonials |
| Theme Customizer | mage2kishan/module-theme-customizer |
| WhatsApp Integration | mage2kishan/module-whatsapp |
| Zipcode Validation | mage2kishan/module-zipcode-validation |
| Panth Infotech Theme | mage2kishan/theme-frontend-panth-infotech |
Panth Core is free under a proprietary license — see LICENSE.txt. You may install and use it on any number of Magento installations as the required dependency for other Panth extensions.
Panth\Core\Helper\ThemeDetect the current frontend theme.
use Panth\Core\Helper\Theme;
class MyBlock extends \Magento\Framework\View\Element\Template
{
public function __construct(
Context $context,
private readonly Theme $themeHelper,
array $data = []
) {
parent::__construct($context, $data);
}
public function isHyvaActive(): bool
{
return $this->themeHelper->isHyva();
}
public function isLumaActive(): bool
{
return $this->themeHelper->isLuma();
}
public function getCurrentThemeType(): string
{
// Returns 'hyva' or 'luma'
return $this->themeHelper->getCurrentTheme();
}
}
Panth\Core\ViewModel\ThemeConfigInject theme tokens into frontend templates via layout XML.
<block class="Magento\Framework\View\Element\Template"
name="my.block"
template="MyVendor_MyModule::template.phtml">
<arguments>
<argument name="view_model" xsi:type="object">
Panth\Core\ViewModel\ThemeConfig
</argument>
</arguments>
</block>
// In template.phtml
$viewModel = $block->getViewModel();
$primary = $viewModel->getColor('primary');
$radius = $viewModel->getRadius('default');
Panth\Core\Api\ThemeBuildExecutorInterfaceOptional contract for triggering theme rebuilds from admin. Default implementation returns a friendly "module not installed" payload. If Panth_ThemeCustomizer is installed, it overrides this with the real build executor.
use Panth\Core\Api\ThemeBuildExecutorInterface;
class MyController
{
public function __construct(
private readonly ThemeBuildExecutorInterface $themeBuilder
) {}
public function execute()
{
$result = $this->themeBuilder->build();
// $result['success'], $result['message'], $result['output']
}
}
| Module Category | Admin Tools |
|---|---|
| Best For | All Sizes |
No. Panth Core is completely free and will remain free forever. It is the foundation library that other (paid) Panth extensions depend on.
Technically yes, but there is no practical reason to. Core only provides admin scaffolding and shared utilities — it has no standalone features.
No. Core is a thin library with no frontend output and minimal admin overhead. Theme detection and module registry lookups are cached.
No. Core only adds hooks under its own namespace (Panth\Core) and a single admin sidebar entry. It does not modify any Magento core files or override any third-party extension functionality.
Only if you uninstall every other Panth extension first. Composer will block the removal otherwise. To uninstall:
composer remove mage2kishan/module-core
bin/magento setup:upgradeYes. The full source is on GitHub at github.com/mage2sk/module-core.
Yes. All settings respect Magento's standard scope hierarchy (default → website → store view).
Yes. The module includes English translations and the codebase uses Magento's standard __() translation function for all user-facing strings, so it can be translated to any language.
Yes. When the module is enabled, the /contact URL is handled by Panth Advanced Contact Us and the stock Magento_Contact form is bypassed. Disable the module to revert to the native form — no data loss.
Yes. Both CMS block tabs and attribute tabs support unlimited entries. Add as many as your product requires.
No. Badge lookups are indexed and cached per product + store view + customer group, and badge rendering is pure CSS. Typical overhead is under 5ms on listing pages.
No. It uses Magento's standard layout update mechanism to replace the block under the content container. The controller itself is untouched.
Any reduction in the final displayed price for the store view where the customer subscribed — catalog regular price, special price, catalog price rule discount, tier pricing, or group pricing. The module compares the current final price against the baseline captured at subscription time.
Yes, on the product detail page. When the module is enabled, the default gallery.phtml is replaced with the Panth gallery (one template for Hyva, another for Luma — chosen automatically).
Yes. The module is engine-agnostic — it uses whatever Magento is configured with (Elasticsearch 7, Elasticsearch 8, OpenSearch 1.x/2.x, or the MySQL fallback). No extra setup required.
It enhances them. Magento's native meta fields still work — Panth Advanced SEO adds template-based defaults, tokens, hreflang groups, JSON-LD, SEO scoring, and dozens of other features Magento ships without.
No. Merchant-authored labels (anything other than empty, the product name, Image, main product photo, or the raw filename) are preserved. Only Magento's default placeholders get upgraded to template output.
Native file custom options are tied to the cart quote item and don't persist cleanly as a first-class order record. Panth Order Attachments creates dedicated panth_quote_attachment and panth_order_attachment tables, linked to the sales order item, ensuring files remain accessible for the full order lifetime — including reorders, invoices, and RMAs.
Talk to Kishan directly — written quote, scope and timeline within 24 hours. No sales call.
Magento 2 Base Module (Required Library)