PHPackages                             mage2kishan/module-structured-data - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mage2kishan/module-structured-data

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

mage2kishan/module-structured-data
==================================

Panth Structured Data — JSON-LD schemas for Magento 2: Product, Breadcrumb, Organization, Website, Article, Review, Video, Brand, FAQ, SaleEvent, ReturnPolicy, Certification, Energy Label, Pros/Cons, and more.

1.0.12(1mo ago)049↓66.7%proprietaryPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since Apr 22Pushed 1mo agoCompare

[ Source](https://github.com/mage2sk/module-structured-data)[ Packagist](https://packagist.org/packages/mage2kishan/module-structured-data)[ Docs](https://kishansavaliya.com)[ RSS](/packages/mage2kishan-module-structured-data/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (14)Versions (14)Used By (0)

Magento 2 Structured Data Extension: JSON-LD Schema.org for Google Rich Results (Hyva + Luma)
=============================================================================================

[](#magento-2-structured-data-extension-json-ld-schemaorg-for-google-rich-results-hyva--luma)

[![Magento 2.4.4 - 2.4.8](https://camo.githubusercontent.com/079c832211eed4f9451ebe264e3865f825b0f9f31b041cbf03676c6e254535d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342e342532302d2d253230322e342e382d6f72616e67653f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)](https://magento.com)[![PHP 8.1 - 8.4](https://camo.githubusercontent.com/56b3cce18841623e2cbed2ebf09b06be1be8807e99e6e054a89d304ab4790b8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532302d2d253230382e342d626c75653f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://php.net)[![Hyva + Luma](https://camo.githubusercontent.com/d4d6a05401973034a5aae392f030440eefa40afc9191ffb06ed897af5d25adb1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5468656d65732d487976612532302532422532304c756d612d313462386136)](https://www.hyva.io)[![Live Demo & Details](https://camo.githubusercontent.com/c6512f5495a078fe635a52c01504b906c75b62cbe09b93cc924f5342ee27936b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c69766525323044656d6f25323025323625323044657461696c732d6d6167656e746f2d2d322d2d737472756374757265642d2d646174612d3044393438383f7374796c653d666c6174)](https://kishansavaliya.com/magento-2-structured-data.html)[![Packagist](https://camo.githubusercontent.com/bf3841e919eb97555ed07a583bf60a960062c0be9b66f53d52b6778407cfc457/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061636b61676973742d6d616765326b697368616e2532466d6f64756c652d2d737472756374757265642d2d646174612d6f72616e67653f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/mage2kishan/module-structured-data)[![Upwork Top Rated Plus](https://camo.githubusercontent.com/6f72584179420c41ed90432fd2579a4ed36199d4229e8181d20f353c1c4ee4eb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5570776f726b2d546f702532305261746564253230506c75732d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)[![Website](https://camo.githubusercontent.com/f1ae86d28e2b505aee60f240d3e5508e390b0a8dc7a9b7ecf1b450fad862053f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562736974652d6b697368616e736176616c6979612e636f6d2d304439343838)](https://kishansavaliya.com)

 [![Magento 2 Structured Data JSON-LD extension for Google Rich Results, Hyva and Luma ready, built by Kishan Savaliya (Panth Infotech), Top Rated Plus on Upwork.](docs/images/hero-banner.png)](docs/images/hero-banner.png)

> **One JSON-LD block per page, zero duplicate schemas.** Panth Structured Data adds a single `` to every page with a deduplicated `@graph` covering Product, Offer/AggregateOffer, BreadcrumbList, Organization, WebSite, ItemList, Review, FAQPage, Article, VideoObject, and MerchantReturnPolicy. It also removes Magento's built-in duplicate markup. Identical output on Hyva and Luma, no theme overrides needed.

**Product page:** [kishansavaliya.com/magento-2-structured-data.html](https://kishansavaliya.com/magento-2-structured-data.html)

---

Quick Answer
------------

[](#quick-answer)

**What is Panth Structured Data?** It is a Magento 2 JSON-LD extension that outputs schema.org structured data on every page so Google can show rich results (price, rating stars, breadcrumbs, FAQs, merchant listings) for your store.

**What does it add to my store?**

- A **single `@graph` JSON-LD block** per page with all applicable schema.org nodes, no duplicate scripts.
- **Full product type coverage** for simple, configurable, bundle, grouped, virtual, and downloadable products.
- **Organization, WebSite + SearchAction, BreadcrumbList, and ItemList** on non-product pages.
- **FAQPage auto-extraction**, Article, VideoObject, MerchantReturnPolicy, and specialist nodes like Pros/Cons, Energy Label, Certifications, and Sale Event.
- **Native markup removal** to stop Magento's built-in JSON-LD from clashing with this module's output.

**Which themes are supported?** Both **Hyva** and **Luma** (and any other Magento theme). The head block attaches through `head.additional` in standard layout XML, with no JS or RequireJS involved.

**What does it need?** Magento 2.4.4 to 2.4.8, PHP 8.1 to 8.4, and the free `mage2kishan/module-core` package.

---

Need Custom Magento 2 Development?
----------------------------------

[](#need-custom-magento-2-development)

> **Get a free quote for your project in 24 hours** for custom modules, Hyva themes, performance work, M1 to M2 migrations, and Adobe Commerce Cloud.

 [ ![Get a Free Quote](https://camo.githubusercontent.com/eac8c45d21cff8b139ddc392325f3bd6c8266a6f3d7b23f15131c958f3d3c8d0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476574253230612532304672656525323051756f74652532302545322538362539322d5265706c7925323077697468696e2532303234253230686f7572732d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

### Kishan Savaliya

[](#kishan-savaliya)

**Top Rated Plus on Upwork**

[![Hire on Upwork](https://camo.githubusercontent.com/b69353d3c6e192f4d03cc36bb8883612004e32f54dd2dbcc1e700dd791acd875/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532306f6e2532305570776f726b2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)

100% Job Success - 10+ Years Magento Experience Adobe Certified - Hyva Specialist

### Panth Infotech Agency

[](#panth-infotech-agency)

**Magento Development Team**

[![Visit Agency](https://camo.githubusercontent.com/bbf04bdd2aff502082508568ec42ace3a7475c98756f596e2013056c89726ed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742532304167656e63792d50616e7468253230496e666f746563682d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)

Custom Modules - Theme Design - Migrations Performance - SEO - Adobe Commerce Cloud

**Visit our website:** [kishansavaliya.com](https://kishansavaliya.com) | **Get a quote:** [kishansavaliya.com/get-quote](https://kishansavaliya.com/get-quote)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Who Is It For](#who-is-it-for)
- [Key Features](#key-features)
- [Compatibility](#compatibility)
- [Installation](#installation)
- [Configuration](#configuration)
- [How It Works](#how-it-works)
- [Schema.org Nodes Emitted](#schemaorg-nodes-emitted)
- [FAQ](#faq)
- [Support](#support)
- [About Panth Infotech](#about-panth-infotech)
- [Quick Links](#quick-links)

---

Who Is It For
-------------

[](#who-is-it-for)

- **Stores that want Google rich results** (price, rating stars, breadcrumbs, FAQ dropdowns, merchant listings) without writing any schema code by hand.
- **Merchants with large catalogs** that include configurable, bundle, and grouped products, where each type needs its own offer structure to validate correctly.
- **Hyva storefronts** that need a schema module with no jQuery, RequireJS, or Knockout dependency.
- **Stores already using Magento's native JSON-LD** and getting duplicate-schema warnings in Search Console, since this module removes the native output and replaces it with a clean single `@graph`.
- **Multi-store setups** where each store view needs its own Organization name, social profiles, and language-specific structured data.

---

Key Features
------------

[](#key-features)

### One Block, One Graph, Zero Duplicates

[](#one-block-one-graph-zero-duplicates)

- **Single `` per page** with a deduplicated `@graph` covering every applicable node.
- **Aggregator with deep-merge** so two providers contributing to the same `@id` produce one coherent node, not two conflicting objects.
- **Native markup removal plugin** strips Magento's built-in `application/ld+json` scripts from `product.info.main`, `breadcrumbs`, and `product.price.final`, and also removes `itemprop`/`itemscope`/`itemtype` microdata attributes from those blocks.
- **XSS-safe JSON payload** where every ` Stores -> Configuration -> Panth Extensions -> Structured Data
        (toggles, attribute codes, social URLs, organization fields)
                        |
                Helper\Config reads every field
                        |
        Aggregator (pipeline of 24 providers)
          OrganizationProvider  -> Organization
          WebsiteProvider       -> WebSite + SearchAction
          BreadcrumbProvider    -> BreadcrumbList
          ProductProvider       -> Product + scalar Offer extras
          FaqExtractor          -> FAQPage (if Q&A pairs found)
          ReviewProvider        -> Review + AggregateRating
          VideoProvider         -> VideoObject (external-video entries)
          CmsArticleProvider    -> Article (blog-like CMS pages)
          ReturnPolicyProvider  -> MerchantReturnPolicy
          BrandProvider         -> Brand
          ProductListProvider   -> ItemList (category pages)
          PaymentMethodProvider -> Offer (acceptedPaymentMethod)
          DeliveryMethodProvider-> Offer (shippingDetails)
          MultiRegionShipping   -> Offer (multi-region shippingDetails)
          ConfigurableOffer     -> Product -> AggregateOffer
          GroupedOffer          -> Product -> AggregateOffer (grouped)
          BundleOffer           -> Product -> AggregateOffer (bundle)
          CustomProperties      -> Product + custom JSON
          EnergyLabel           -> Product + hasEnergyConsumption
          Certification         -> Product + hasCertification
          SaleEvent             -> Product + priceSpecification
          ProductGroup          -> ProductGroup + hasVariant
          ProsCons              -> Product + positiveNotes/negativeNotes
          SellerProvider        -> Organization (merged)
                        |
          Deep-merge by @id, deduplicate
                        |

          { "@context": "https://schema.org", "@graph": [...] }

        RemoveNativeMarkupPlugin strips Magento's native ld+json
        and microdata from product.info.main, breadcrumbs,
        product.price.final

```

The aggregator does six things for each render:

1. **Applicability check** - each provider exposes `isApplicable()`. Product providers return false on CMS pages, FAQExtractor defers to `Panth_Faq` when that module is present, etc.
2. **Config gate** - reads the Yes/No admin toggle for each provider code. Disabled providers are skipped.
3. **Node collection** - calls `getJsonLd()` on each applicable, enabled provider.
4. **Deep-merge by @id** - two nodes with the same `@id` are merged key by key. Scalars from later providers win, arrays recurse, new keys are added. This is how `ProductProvider` and `ConfigurableOfferProvider` both contribute to one coherent Product node.
5. **Document shape** - one node in `@graph` gets inlined under `@context`; multiple nodes get wrapped in `@graph`.
6. **XSS safety** - every `
