PrestaShop для разработчиков: таблица классов.

Как и обещала публикую информацию по работе с классами в PrestaShop, которая будет полезна разработчикам интернет магазинов на данной CMS.
Эта часть является логическим продолжением статьи «PrestaShop инструкция для разработчиков«, опубликованной ранее на моём блоге — wp.clean
Сводная таблица наиболее часто изменяемых классов PrestaShop, которым соответствует отдельная таблица в БД.

Название Описание Таблица в БД В классе можно:
Address.php Адреса покупателей, производителей и поставщиков *_address Убрать обязательные поля при регистрации / при заказе
Attachment.php Класс отвечает за вложения добавляемые к продукции *_attachment
Attribute.php Атрибуты продуктов *_attribute
Carrier.php Методы доставки *_carrier
Cart.php Корзина покупателя *_cart
Category.php Категории продукции *_category Добавить поддержку HTML тегов в описание товара
CMS.php Класс работает с статичными страницами магазина *_cms
Currency.php Используемая валюта *_currency Метод getCurrencies понадобится для обновления курса с сайта ЦентраБанка
Customer.php Зарегистрированные пользователи *_currency
Guest.php Незарегистрированные пользователи *_guest
Hook.php Управление хуками в PrestaShop *_hook Добавление нового хука
Meta.php Управление мета информацией (title, keywords, description) *_meta_lang Разный title и заголовок на странице
Order.php Класс пользовательской информации о заказе *_orders

Не забывайте что изменение кода базовых классов не допустимо, необходимо использовать механизм override.
Рассмотрим универсальные классы имеющие статичные методы, которые можно вызвать из любого класса.

Класс Configuration — Работает со всеми конфигурационными данными Prestashop, файл — Configuration.php
Основное назначение: получение конфигурационных данных, с помощью функции get($key, $id_lang = NULL)

Configuration::get('PS_SHOP_DOMAIN')  // метод класса вернёт домен магазина
Configuration::get('PS_SHOP_EMAIL')  //вернёт email владельца
Configuration::get('PS_SHOP_NAME')  //вернёт название магазина
Configuration::get('PS_SHOP_PHONE')  //вернёт телефон владельца
Configuration::updateValue('PS_LAYERED_SHARE', 0) //обновление значения полей - при установке модуля
Configuration::deleteByName('PS_LAYERED_SHARE') //удаление информации из БД, например, при удаление модуля

Класс Tools — полезные инструменты
displayPrice($price, $currency = NULL, $no_utf8 = false) — отображает стоимость в текущем формате
getMetaTags($id_lang, $page_name) — возвращает мета теги для указанной страницы
link_rewrite($str, $utf8_decode = false) — возвращает чпу из строки
addJS($js_uri) — добавляет скрипт в заголовок
addCSS($css_uri, $css_media_type = ‘all’) — добавляет стили в заголовок
setCurrency() — установка текущей валюты (решение проблемы разной валюты в импортируемом файле и витрине магазина)
getValue($key, $defaultValue = false) — возвращает значение из $_POST / $_GET, на входе принимает имя поле и дефолтное значение, которое возвращается если поле в массиве отсутствует
пример:

$qty = (int)(abs(Tools::getValue('qty', 1)));
$id_cms = (int)Tools::getValue('id_cms');

Класс Validate
isEmail($email) — валидация Email
isName($name) — должны отсутствовать символы 0-9!<>,;?=+()@#»°{}_$%:, т.е допустимы только буквы
isMessage($message) — должны отсутствовать символы ^<>{}
isAddress($address) — должны отсутствовать символы !<>?=+@{}_$%
isCleanHtml($html) убирает из кода скрипты
isPhoneNumber($phoneNumber) — цифры, скобки и тире
isPostCode($postcode) — можно использовать a-zA-Z 0-9-
isUrl($url) — валидный юрл

Validate::isLoadedObject($this->cms)

Есть и другие классы, но по ним у меня накопилось столько наработок и материала, что им будут посвящены отдельные посты:
Db.php — Класс по работе с БД
Link.php — подключаем отдельный хостинг для изображений
Mail.php — отправка почты
Module.php — незаменим при написании собственных модулей
PDF.php — генерация pdf с поддержкой кириллицы

Архитектура PredstaShop построена на системе классов, основные из них рассмотрены в этом посте, вся информация сведена в удобную таблицу.