{"id":39487331,"url":"https://github.com/vtex-apps/store","last_synced_at":"2026-01-18T05:28:21.502Z","repository":{"id":33676637,"uuid":"134620631","full_name":"vtex-apps/store","owner":"vtex-apps","description":"VTEX IO Store Framework","archived":false,"fork":false,"pushed_at":"2025-12-12T12:15:54.000Z","size":4132,"stargazers_count":62,"open_issues_count":23,"forks_count":48,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-12-14T02:27:18.734Z","etag":null,"topics":["hacktoberfest","srv-store-framework","store-framework","vtex-io","xp-developer"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vtex-apps.png","metadata":{"files":{"readme":"docs/README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-05-23T20:12:28.000Z","updated_at":"2025-12-04T13:16:05.000Z","dependencies_parsed_at":"2024-03-07T14:51:28.211Z","dependency_job_id":"ce62a3c3-189f-4540-8e51-2666ecd3b300","html_url":"https://github.com/vtex-apps/store","commit_stats":null,"previous_names":[],"tags_count":534,"template":false,"template_full_name":null,"purl":"pkg:github/vtex-apps/store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Fstore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Fstore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Fstore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Fstore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vtex-apps","download_url":"https://codeload.github.com/vtex-apps/store/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Fstore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28530817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","srv-store-framework","store-framework","vtex-io","xp-developer"],"created_at":"2026-01-18T05:28:21.419Z","updated_at":"2026-01-18T05:28:21.477Z","avatar_url":"https://github.com/vtex-apps.png","language":"JavaScript","readme":"# VTEX Store Framework\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\nFramework that is used by all ecommerce stores build on VTEX IO.\n\n⚠️⚠️ **All stores MUST use this app. Using a forked version WILL break your store.** ⚠️⚠️\n\n## Table of Contents\n\n- [Description](#description)\n- [Release schedule](#release-schedule)\n- [Store Builder](#store-builder)\n  - [Overview](#overview)\n  - [Blocks Language](#blocks-language)\n  - [Interface Structure](#interface-structure)\n  - [Recipes](#recipes)\n- [Blocks Reference](#blocks-reference)\n- [Pixel Architecture](#pixel-architecture)\n- [Contributing](#contributing)\n\n## Description\n\nStore Framework is responsible for defining the basic structure of any ecommerce store of the platform. With this app, we want to provide an abstraction for our clients and partners not worry about SEO and fetch basic data from VTEX. Any account has this app installed.\n\nThis project has the following capabilities:\n\n- Setup metatags for all pages. \n- Fetch product and products search data from VTEX APIs \n- Dispatch view events to analytics tools. \n- Define the necessary interfaces and routes of the store.\n\n## Release schedule\n\n| Release |       Status        | Initial Release | Maintenance LTS Start | End-of-life | Store Compatibility |\n| :-----: | :-----------------: | :-------------: | :-------------------: | :---------: | :-----------------: |\n|  [2.x]  | **Current Release** |   2018-11-28    |                       |             |         2.x         |\n|  [1.x]  | **Maintenance LTS** |   2018-08-21    |      2018-11-28       | March 2019  |         1.x         |\n\nSee our [LTS policy](https://github.com/vtex-apps/awesome-io#lts-policy) for more information.\n\n## Store Builder\n\nVTEX IO created a powerful way to configure the behavior [React](https://reactjs.org/) components yielding the basic building *blocks* for a web app.\n\nIO **store builder** is a opinionated way to use IO capabilities to quickly build store components that can be reused\nacross ecommerce stores and interact seamlessly with its APIs and existing components.\n\n### Overview \n\nThe Store builder allows you to extend existing blocks, like the ones provided by the Store Framework, allowing them to replace the blocks they extend via the VTEX IO Content Management System (CMS). They also allow you to build new blocks that provide functionality specific to your business needs and, then, create templates to insert those new blocks in your clients' ecommerce store while still benefiting from the continuous progress made by the native store components and it's extensions on the other parts of your store.\n\n### Blocks Language\n\nBlocks are instances of configured React components that follow a defined contract - or *interface*.\nBlocks can be shared between apps and can contain other blocks. They can be used to create simple widgets \nlike buttons and forms, ready to use features like a review system or whole web pages.\n\nTo create web pages - or *templates*, a block must be acessible by a **route**. Routes associate blocks with paths that \ncan be used to match URLS. These **templates** are configurable in VTEX IO CMS.\n\nApps can also insert its blocks on specific page components as soon as the app is installed, via **plugins**.\nPlugins provide an easy way to add specific functionality in a plug and play fashion to any store - \ne.g. Visa Checkout button on the shopping cart, 360º image on the product galery.\n\nTo ensure that blocks would be reusable across stores, any VTEX IO store contain a set of *interfaces* \nwhich blocks must implement. **Interfaces** are contracts that define the block component and which interfaces \nit may contain, among other constraints.\n\nThe store builder validates and exports blocks, routes, interfaces and plugins defined in the app.\nThis allows the admin CMS and the store to use them. The configuration files which declares those\ncomponents must be in the `store/` folder on the root of the app. \nThe following sections we detail more about this concepts. \n\n### Interface Structure\n[TODO]\nExplain interface structure, how it make stores \"compatible\" and its components reusable.\n\n### Recipes\n[TODO]\n\nHow to extend VTEX Store interfaces?\n\nHow to create a block / interface / route / plugin?\n\nExamples, examples, examples...\n\n## Blocks Reference\n\nPlease refer to [Blocks](./BLOCKS.md)\n\n## Pixel Architecture\n\n- Home: `homeView` event.\n\n- Product: `productView` event.\n\n- Department: `departmentView` event.\n\n- Category: `categoryPath` event.\n\n- Internal Site Search: `internalSiteSearchView` event.\n\n- OrderPlaced Page: `orderPlaced` event.\n\n- Other: `otherView` event.\n\n### Enhanced Ecommerce\n\n- Measuring Additions to a Shopping Cart: `addTocart` event.\n\n- Measuring Removals from a Shopping Cart: `removeFromCart` event.\n\n## Contributing\n\nCheck it out [how to contribute](https://github.com/vtex-apps/awesome-io#contributing) with this project. \n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/gustavopvasconcellos\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/49173685?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003egustavopvasconcellos\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/vtex-apps/store/commits?author=gustavopvasconcellos\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind are welcome!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtex-apps%2Fstore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvtex-apps%2Fstore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtex-apps%2Fstore/lists"}