PHPackages                             elcodi-templates/store-template-bundle - 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. [Templating &amp; Views](/categories/templating)
4. /
5. elcodi-templates/store-template-bundle

ActiveElcodi-template[Templating &amp; Views](/categories/templating)

elcodi-templates/store-template-bundle
======================================

Store Template Bundle for Bamboo

v0.5.17(11y ago)19192MITHTMLPHP &gt;=5.4

Since Jan 13Pushed 10y ago1 watchersCompare

[ Source](https://github.com/elcodi-templates/StoreTemplateBundle)[ Packagist](https://packagist.org/packages/elcodi-templates/store-template-bundle)[ RSS](/packages/elcodi-templates-store-template-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (34)Used By (2)

> Hello! I am a deprecated package. I've been moved to elcodi-plugins/StoreTemplateBundle. Thanks :D

Custom templates for bamboo/elcodi
==================================

[](#custom-templates-for-bambooelcodi)

In order to make a template fully compatible with Bamboo engine (The elcodi e-commerce implementation) we have created a small standard. Customizing this bundle you can create themes for bamboo/elcodi. Please read this documentation carefully before edit anything.

Requirements for all the templates in live mode
-----------------------------------------------

[](#requirements-for-all-the-templates-in-live-mode)

To use the templates in a real environment you need to install and setup locally [Bamboo/elcodi](https://github.com/elcodi/bamboo)

Requirements to preview twig files as html
------------------------------------------

[](#requirements-to-preview-twig-files-as-html)

It's possible to compile the twig files as html to preview your templates without need to have all the real environment. All you need to do is follow this steps:

- Install [NodeJS](https://nodejs.org/)
- run "npm install" in the root directory of this template
- Install [Ruby &amp; Sass](http://sass-lang.com/install)
- Run "Grunt" to compile or "Grunt Watch" to compile when you save any .twig or .scss file

Folders
-------

[](#folders)

Let's take a look to all the folders of this bundle and what can we find inside.

### Fixtures

[](#fixtures)

This folder contains json files with a simulation of the database and the vars you have available in each template. This is a read-only folder, maybe could be useful for your information but you should don't change anything.

### Resources

[](#resources)

This is the main folder of your template. Inside this folder you will find two subfolders; Public &amp; Views.

#### Public

[](#public)

This directory is to host the all the public files your template will need (images, fonts, javascript...).The structure of this folder is up to you, default implementation is just a suggestion.

#### Views

[](#views)

Here you can find al the .html.twig files that will be required for the store template. Check the section Template files to get more information.

### SCSS

[](#scss)

This default templates get SCSS code of this folder an compiles to "Resources/Public/css/". But this is just a suggestion, use Sass it's not mandatory and of course you can remove it and put your CSS directly in the public folder.

### Work-environment folders

[](#work-environment-folders)

There are some folders that you will have after install the node modules, sass and grunt. These folders should never be committed and are just for the work environment, remember to git ignore them if it's necessary.

Template files, Context &amp; Hooks
-----------------------------------

[](#template-files-context--hooks)

The twig templates are located at "Resources/views". In Bamboo we use [Twig](http://twig.sensiolabs.org/) for the templates. So you can extend, include and organize your templates as you want. All the files are organized by type, because some templates are required and other are totally up to you, the initial organization is just a proposal.

### Global

[](#global)

The following context and hooks are available in all the twig files.

\#### Global context All twig files will have the following contexts available:

- **current\_user\_session\_id** : Current user session id
- **current\_user\_session\_sha1** : Current user session id with sha1 applied
- **current\_route\_name** : Current route name
- **store\_tracker** : Store tracker value. Unique per store.

\#### Global Hooks All twig files will have the following contexts available:

- **store.head\_bottom** : @todo add description
- **store.body\_top** : @todo add description
- **store.body\_bottom** : @todo add description

### Layout

[](#layout)

#### \_checkout.html.twig

[](#_checkouthtmltwig)

This layout is used on the checkout process pages, but it's not mandatory because at the end is calling the main layout file and overwriting the block "content".

#### \_email.html.twig

[](#_emailhtmltwig)

Layout used in the mails. The content of the emails are editable at the bamboo admin, this is just the container. @todo the template is empty

#### \_static.html.twig

[](#_statichtmltwig)

This layout is mandatory, and it's called by all the static pages and blog pages. The static content will be rendered inside the block "content". **Context**

- **page** : @todo add description

#### \_layout.html.twig

[](#_layouthtmltwig)

This is the the basic layout of your template, is mandatory and needs to start with{% extends '::\_base.html.twig' %} and include the following blocks.

> ##### {% block head\_style %}
>
> [](#-block-head_style-)

> This blocks is in the head of the page, the idea is to include here all the css or stuff you need to define inside the

> ##### {% block body %}
>
> [](#-block-body-)

> This block starts and ends with the body... so here is where you need to add the html code to your template. The blocks defined inside this block are totally up to you.

> ##### {% block foot\_script %}
>
> [](#-block-foot_script-)

> This block starts just after the body block and just before to close the body. So, the idea is to include here all the scripts of the template.

### Modules

[](#modules)

All the files here are included inside others, so if you edit the include from the others you can organize this folder as you want. From our point of view, this organization makes sense but it's just our approximation.

### Pages

[](#pages)

All the files of this folder are required. This are the main files called from the controllers, so if you delete or rename one of them the template will not work.

#### cart-view.html.twig

[](#cart-viewhtmltwig)

Page shown the user clicks on the checkout button. **Context**

- **@todo add context**: @todo add description **Hooks**
- **@todo add hook**: @todo add hook description

#### cart-checkout-fail.html.twig

[](#cart-checkout-failhtmltwig)

Page shown after something fails in the payment process.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### cart-view.html.twig

[](#cart-viewhtmltwig-1)

List the products added to the cart.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### category-view.html.twig

[](#category-viewhtmltwig)

List the products inside a category.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### home-view.html.twig

[](#home-viewhtmltwig)

Homepage, list the products marked as shown in home.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### order-list.html.twig

[](#order-listhtmltwig)

History list of orders done by the user.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### order-view.html.twig

[](#order-viewhtmltwig)

Details of one order.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### product-view-item.html.twig

[](#product-view-itemhtmltwig)

Detail of one product without variants.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **store.product\_view\_bottom**: @todo add hook description
> - **product**: @todo add hook description

#### product-view-variant.html.twig

[](#product-view-varianthtmltwig)

Detail of one product with variants. By default extends the product-view-item.html.twig and overwrites the block product\_info\_add\_basket.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **store.product\_view\_bottom**: @todo add hook description
> - **product**: @todo add hook description

#### static.html.twig

[](#statichtmltwig)

Layout for the static pages. The static content will be rendered inside the block "content".

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### store-disable.html.twig

[](#store-disablehtmltwig)

Page shown when the store is not configured as enabled.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### store-under-construction.html.twig

[](#store-under-constructionhtmltwig)

Page shown when the store is marked as under construction.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### user-edit.html.twig

[](#user-edithtmltwig)

Page inside the user control panel to edit the personal data. Only available if the user is logged.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### user-home.html.twig

[](#user-homehtmltwig)

Homepage for the user control panel. Only available if the user is logged.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### user-login.html.twig

[](#user-loginhtmltwig)

Page with the form to login the user.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### user-password-recover.html.twig

[](#user-password-recoverhtmltwig)

Page with the form to recover the password.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### user-register.html.twig

[](#user-registerhtmltwig)

Page with the form to user's registration.

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### address-edit.html.twig

[](#address-edithtmltwig)

Page shown when the user adds or edits his addresses. This page includes the LocationSelectors JS from the Geo bundle to make the city selectors work.

> **Context**
>
> - **address**: The address being edited, if the id field is set you are editing an address if it’s empty it’s a new address. View address object documentation **Hooks**
> - **form**: The add address form. View “store\_geo\_form\_type\_address” documentation

#### blog-posts-list.html.twig

[](#blog-posts-listhtmltwig)

Blog pagination. This page lists all available blog posts, including simple pagination. Number of posts is N

> **Context**
>
> - **blogPosts**: Array of blogPost elements to be shown
> - **currentPage**: Current page shown
> - **numberOfPages**: Number of pages **Hooks**
> - **store.blog\_posts\_list\_bottom**-- blog\_posts -- current\_page -- number\_of\_pages

#### blog-posts-view.html.twig

[](#blog-posts-viewhtmltwig)

Blog post page.

> **Context**
>
> - **blogPosts**: Array of blogPost elements to be shown **Hooks**
> - **store.blog\_posts\_list\_bottom**-- blog\_posts

### Subpages

[](#subpages)

All the files of this folder are required. A Subpage is a Module included using the render method insted of include. Each subpage has a url to directly call them, but it makes no sense to go to this page, because are litte portions of the page. The reason to be Subpages instead of modules is just for performance and sustainability.

#### cart-nav.html.twig

[](#cart-navhtmltwig)

This subpage is a module to preview the content of the cart

> **Context****Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### category-nav.html.twig

[](#category-navhtmltwig)

This subpage is a module to display all the categories and subcategories

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### coupon-add.html.twig

[](#coupon-addhtmltwig)

This subpage is a module to add a little form to add coupons to the cart

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### currency-nav.html.twig

[](#currency-navhtmltwig)

This subpage is a module to display all the currencies enabled in the store

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

#### user-nav.html.twig

[](#user-navhtmltwig)

This subpage is a module to display the nav options for the user

> **Context**
>
> - **@todo add context**: @todo add description **Hooks**
> - **@todo add hook**: @todo add hook description

Objects data
------------

[](#objects-data)

These are all the objects detailed that you will get in the context. Check the templates context to see when they are available.

### Address

[](#address)

Forms data
----------

[](#forms-data)

These are all the forms objects detailed that you will get in the context. Check the templates context to see when they are available.

### store\_geo\_form\_type\_address

[](#store_geo_form_type_address)

Questions?
----------

[](#questions)

If you have any questions, please feel free to ask on [Gitter](https://gitter.im/elcodi/elcodi) or email us to

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

33

Last Release

4029d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/17551e7b4dc0bbdb2f5645cc5d9109fc7c43ef138dd66684c0e3e1a708b6772f?d=identicon)[elcodi](/maintainers/elcodi)

---

Top Contributors

[![tonipinel](https://avatars.githubusercontent.com/u/998987?v=4)](https://github.com/tonipinel "tonipinel (32 commits)")[![rogergros](https://avatars.githubusercontent.com/u/2053670?v=4)](https://github.com/rogergros "rogergros (24 commits)")[![xphere](https://avatars.githubusercontent.com/u/170968?v=4)](https://github.com/xphere "xphere (10 commits)")[![mmoreram](https://avatars.githubusercontent.com/u/521409?v=4)](https://github.com/mmoreram "mmoreram (5 commits)")[![alch](https://avatars.githubusercontent.com/u/682515?v=4)](https://github.com/alch "alch (3 commits)")[![mickaelandrieu](https://avatars.githubusercontent.com/u/1247388?v=4)](https://github.com/mickaelandrieu "mickaelandrieu (1 commits)")[![claretcrab](https://avatars.githubusercontent.com/u/3634607?v=4)](https://github.com/claretcrab "claretcrab (1 commits)")

---

Tags

symfonytemplatesecommercestoreelcodi

### Embed Badge

![Health badge](/badges/elcodi-templates-store-template-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/elcodi-templates-store-template-bundle/health.svg)](https://phpackages.com/packages/elcodi-templates-store-template-bundle)
```

###  Alternatives

[exercise/htmlpurifier-bundle

HTMLPurifier integration for your Symfony project

27911.3M16](/packages/exercise-htmlpurifier-bundle)[a2lix/auto-form-bundle

Automate form building

873.8M11](/packages/a2lix-auto-form-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
