Prestashop 1.5, некоторые решения

13 января 2014
(обновлено 02 марта)

В последнее время Мастерская активно работает с Prestashop — популярной системой управления интернет-магазином.
К сожалению, документированность Престы (особенно в русскоязычном интернете) оставляет желать лучшего. В этой заметке мы поделимся некоторыми рецептами взаимодействия с Prestashop версии 1.5, а также будем добавлять новые рекомендации, когда такие будут появляться.

Общая информация

1. Hook
Хуки — это такие программные блоки, которые используются системой для разделения содержимого магазина по смыслу. На практике это выглядит следующим образом: системные скрипты Престы инициализируют все заданные хуки, каждый модуль генерирует своё содержимое для привязанных к нему хуков, а затем соответствующие html-коды отображаются на месте запрошенных шаблоном хуках.

Как создать хук

Зачем вообще создавать хуки? В принципе, вы вполне можете обойтись стандартным набором. Почти наверняка его будет достаточно. Но порой затруднительно разбираться в хитросплетениях уже имеющихся хуков. На этот случай Преста вполне позволяет создать собственные хуки.
Это сделать очень просто:
Шаг 1. Добавить новую строчку с параметрами вашего хука в таблицу ‘ps_hook’ базы данных вашего магазина.Как создать Хук в Prestashop 1.5Шаг 2. Инициализировать новый хук в файле developedsite.ru -> classes -> controller -> FrontController.php, где developedsite.ru обозначает корневой каталог магазина на сервере. Как создать Хук в Prestashop 1.5, код

Как разместить модуль в другом хуке

После того, как вы осознали необходимость переноса некоего модуля из стандартного хука в другой (уже имеющийся или созданный вами как описано в предыдущем руководстве), логика подсказывает, что необходимо зайти в панель управления в подраздел «расположение модулей» раздела «модули» и спозицинировать нужный модуль по-своему. К сожалению, в большинстве случаев вас будет ожидать неприятный сюрприз в виде следующего сообщения:
Модуль не может быть трансплантирован в хук. — это означает, что данный модуль не выводит своё содержимое в нужном хуке.
Таким образом, перед тем, как изменить позицию модуля, необходимо создать возможность такого переезда. Для этого нужно зайти в файл developedsite.ru -> modules -> examplemodule -> examplemodule.php и добавить функцию вывода содержимого модуля для интересующего вас хука. Это можно сделать двумя способами:
создать функцию трансляции имеющейся функции
Перенести модуль в новый хук в Prestashop 1.5или переименовав старую (но для целей совместимости изменений с дальнейшей разработкой магазина так лучше не делать, конечно).
Перенести модуль в новый хук в Prestashop 1.5, фото 2

Как изменить шаблон счета

{Скоро}

Как убрать ID из URL страниц, товаров и категорий

{Скоро}

Импорт товаров

Очень хорошее и подробное видео на тему импорта с помощью встроенных средств Prestashop 1.5 разместил в ютубе пользователь RediosX.

Задать вопросы и почитать ответы автора можно на странице записи. Текущее видео было создано для Prestashop 1.5.4, но в настоящее время (для версии 1.5.6.1) отличий в алгоритме мы не заметили.
К сожалению, встроенные возможности не всегда имеют максимум возможностей. Нам, например, они показались не очень удобными, поэтому мы написали собственный алгоритм для импорта товаров с минимальным редактированием табличных файлов, которые обычно предлагают дистрибьюторам поставщики.