Я создаю модуль для Prestashop, и он должен при каждом изменении продукта пересчитывать цену.
Это мой код:
public function hookActionProductUpdate($params)
{
if ($this->context->controller->controller_type == 'front')
return ;
$id = $params['id_product'];
$po = new Product($id);
$cats = Product::getProductCategories($po->id);
foreach ($cats as $cat)
{
if ($cat == "49")
{
$ok = 1;
break 1;
}
else
$ok = 0;
}
if ($ok == 0)
return 0;
$po->price_tax_exc = $this->CalculatePrice($po);
var_dump($po->price_tax_exc);
$po->save(); // THE PROBLEM IS HERE
}
Проблема в том, что когда я нажимаю на кнопку «Сохранить», я никогда не вернусь к списку продуктов администратора.
Когда я заменяю save () на add (), это то же самое, но это создает продукт в цикле. Так что save () в цикле, и я не знаю почему …
Вы можете исправить это по крайней мере двумя способами:
1.
protected $price_updated = false;
public function hookActionProductUpdate($params)
{
if ($this->price_updated)
return null;
.........
if ($po->save())
$this->price_updated = true;
}
price_tax_exc
У меня нет большого опыта с ценами 🙁 Может быть wholesale_price
?Других решений пока нет …