Prestashop 1.7 - какой хук использовать в модуле, чтобы получить использованное отредактированное количество товара

Я создаю простой модуль, в котором мне нужно поймать событие изменения количества бэк-офиса (для продукта или вариантов) в реальном времени и отправить новое количество во внешний API.

Я изо всех сил пытаюсь понять, какой крючок использовать для получения фактического количества, введенного пользователем, а не «предыдущего» количества продукта.

Если я использую статический метод StockAvailable :: getQuantityAvailableByProduct внутри hookActionProductUpdate в моем модуле, я получаю исходное количество продукта, а не новое, вероятно, потому что ловушка вызывается перед фактическим обновлением БД.

Есть подсказка?


person user3256843    schedule 24.06.2019    source источник


Ответы (1)


Попробуйте: actionUpdateQuantity
Вы можете передать следующие параметры:

array(
  'id_product' => (int) Product ID,
  'id_product_attribute' => (int) Product attribute ID,
  'quantity' => (int) New product quantity
);

Список ловушек здесь: https://devdocs.prestashop.com/1.7/modules/concepts/hooks/list-of-hooks/

person ethercreation    schedule 25.06.2019
comment
Здравствуйте, я могу получить новое количество внутри $ params ['количество'] actionUpdateQuantity, но ТОЛЬКО для элементов, не являющихся вариациями. Если изменение количества выполняется для одной из комбинаций продуктов, нет способа получить количество комбинации и нет аналогичного крючка для вариаций (actionAttributeCombinationSave также не возвращает количества в $ params) - person user3256843; 25.06.2019
comment
Действительно, в этом случае необходимо перейти на родительский уровень, восстановить идентификатор продукта, который колебался, а затем просмотреть все его варианты для сравнения запасов. - person ethercreation; 25.06.2019
comment
В самом деле, это то, что я уже делаю, но поэтому кажется невозможным получить новое отредактированное количество комбинаций в хуке при сохранении продукта (чтобы отправить их, например, во внешний API) - person user3256843; 26.06.2019
comment
Да это невозможно - person ethercreation; 26.06.2019