Что такое хук (hook) и как он влияет на остатки товаров?

10.0/10 оценка (1 голосов)

Так как мы говорим о программировании, а не о боксе, хук — это своеобразный тип расширений, которые выполняются вместе с определенным событием в системе. Если взять дословный перевод, то это ловушка для программы.

Чтобы стало понятнее, разберем небольшой пример. Большинство магазинов, которые продают физический товар, должны учитывать остаток этого товара, чтобы случайно не продать «воздух». Сложность в том, что списать товар мы можем как в момент покупки (оплаты), создания заказа (допустим, товар бронируется) или на изменение определенного статуса заказа. В итоге у каждого магазина это происходит по-своему.

Как раз в этом случае нам помогают хуки, которые вклиниваются в определенные события корзины и что-то меняют. В нашем случае это остаток на складе. Образно говоря, во время работы заказ попадает в ловушку, которая его видоизменяет, и отправляет дальше.

На самом деле под хуком можно подразумевать все что угодно, например, изменение группы пользователя, статуса или свойства материала, суммы заказа и пр. Основной смысл в том, что мы можем привязывать несколько независимых хуков и гибко манипулировать поведением корзины без каких-либо хаков (модификаций кода компонента).

Хуки и события в корзине JBZoo

Так как в корзине все «элементарно» и по позициям, то любое событие представляет из себя позицию, а хук — элемент в этой позиции. В зависимости от события элементу будет доступна разная информация о системе и зоны ответственности. Поэтому важно понимать, что делает хук и в какое событие его положить. Иначе можно легко добиться абсурдных ситуаций, когда остаток на складе списывается при удалении товара из корзины.

Элемент для уменьшения остаткаСейчас хуками можно управлять на двух страницах в панели управления — События и уведомления и События смены статусов. Например, если вы поставите элемент для остатка в событие Успешная оплата, то остаток на складе уменьшится именно в момент оплаты (оповестит платежный робот). Или вы можете использовать позицию статуса успешной оплаты, то хук будет срабатывать как для платежного робота (потому что он изменяет статус), так и вручную от администратора.

По своей сути элементы нотификации, скидки и валидаторы — это тоже хуки, только они имеют узкую специализацию и срабатывают на одно или несколько определенных событий. Мы их выделили в особые группы лишь для простоты настройки.

Корзина

У меня остались вопросы, где я могу их задать?

Вы можете обратиться на наш специальный форум техподдержки JBZoo. Если у вас нет активного аккаунта со знаком «плюс» в тарифном плане, то вы можете задать свой вопрос в одном из этих разделов или на любой из наших контактов. Форум специально предназначен для JBZoo, приоритет и скорость ответа там выше.