Здравствуйте! Почему скрипт срабатывает только один раз?
На каждый товар должна передаваться акционный тип цены, если акция есть.
Передаётся только на первый товар.
$date = date('Y-m-d');
$always = '0000-00-00';
$specials = $this->productsRepository->getProductSpecials($product['product_id']);
if (!empty($specials)) {
$customer = $this->customerRepository->getCustomer($this->order_data['customer_id']);
foreach ($specials as $special) {
if (($special['date_start'] == $always && $special['date_end'] == $always)
|| ($special['date_start'] <= $date && $special['date_end'] >= $date)
) {
if ((isset($priority) && $priority > $special['priority'])
|| !isset($priority)) {
if (empty($customer['customer_group_id'])) {
continue;
}
$specialSetting = $this->settingsManager->getSetting('special_' . $customer['customer_group_id']);
if ($special['customer_group_id'] == $customer['customer_group_id'] && !empty($specialSetting)) {
$item['priceType']['code'] = $specialSetting;
$priority = $special['priority'];
}
}
}
}
}
if (isset($properties)) $item['properties'] = $properties;
$this->data['items'][] = $item;
Вот полный файл -
https://github.com/retailcrm/opencart-module/blob/...