.
├── data
├── asset
│ ├── logo.svg
│ └── pattern.png
├── class
│ ├── Input
│ │ ├── Captcha.php
│ │ ├── Search.php
│ │ └── Validation.php
│ ├── Model
│ │ ├── Category.php
│ │ ├── Item.php
│ │ ├── OutOfStockException.php
│ │ └── SpecialOffer.php
│ └── Payment
│ ├── AbstractPayment.php
│ ├── CreditDebitPayment.php
│ ├── PayPalPayment.php
│ ├── UI
│ ├── Error.php
│ ├── Formatter.php
│ └── Message.php
├── page
│ ├── _component
│ │ ├── cart-popup.html
│ │ ├── category-item.html
│ │ ├── checkout-listing.html
│ │ ├── out-of-stock.html
│ │ ├── payment-form.html
│ │ └── shop-item.html
│ ├── checkout
│ │ ├── index.html
│ │ ├── index.php
│ │ ├── payment.html
│ │ └── payment.php
│ ├── shop
│ │ ├── category
│ │ │ ├── _common.php
│ │ │ └── @category.html
│ │ ├── categories.html
│ │ ├── categories.php
│ │ ├── index.html
│ │ ├── index.php
│ │ ├── item.html
│ │ └── item.php
│ ├── _common.php
│ ├── _footer.html
│ ├── _header.html
│ ├── about.html
│ ├── contact.html
│ ├── contact.php
│ ├── index.html
│ ├── index.php
│ └── terms.html
├── query
│ ├── _migration
│ │ ├── 001-create-table-shop-item.sql
│ │ ├── 002-create-table-shop-category.sql
│ │ ├── 003-alter-table-shop-item--add-field-currency.sql
│ │ ├── 004-create-table-purchase.sql
│ │ └── 005-create-table-payment.sql
│ └── shop
│ ├── category
│ │ └── getAll.sql
│ └── item
│ ├── completePurchase.sql
│ ├── getById.sql
│ ├── getInCategory.sql
│ └── startPurchase.sql
├── script
│ ├── Ajax
│ │ ├── Updater.es6
│ │ └── UrlHistory.es6
│ ├── Input
│ │ ├── Dirty.es6
│ │ ├── Message.es6
│ │ └── Validate.es6
│ └── main.es6
├── style
│ ├── animation
│ │ ├── flash.scss
│ │ └── popup.scss
│ ├── base
│ │ ├── form.scss
│ │ ├── normalise.scss
│ │ ├── typography.scss
│ │ └── variables.scss
│ ├── component
│ │ ├── cart-popup.scss
│ │ ├── category-item.scss
│ │ ├── checkout-listing.scss
│ │ ├── out-of-stock.scss
│ │ ├── payment-form.scss
│ │ └── shop-item.scss
│ ├── page
│ │ └── checkout.scss
│ └── main.scss
├── build.json
├── composer.json
└── config.ini