Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Почта России - Наложка и обычная

Всем день добрый.
Имеем следующую проблему. Некорректно работают модули:
Почта России и Почта России наложенный платеж.
Проявляется это в следующем - при включении модуля "почта россии наложенный платеж", все считается правильно, но если включить дополнительно модуль "Почта россии" то получается вот такая ситуация - Оба варианта доставки выводят данные "Почта России".
Далее, при отключении одного из них выпадает ошибка, и оба модуля (и отключенный и подключенный) не выводятся в списке вариантов доставок, при этом ошибка занимает треть страницы.
Как это починить бы ? 


Забавно.... Поковырявшись в модулях russianpostpf и russianpostprepay заметил небольшой косяк в модуле ****pf.
Может кому пригодится, и надеюсь, многоуважаемый Евгений в версии 2.6 исправит сей недочет.
Собственно вот исходный кусок:
//отправление по России
if($dest_zone < 20)
{
$shipping = -1;
$zones_cost = constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_STATES_PRICE_'.$mode.'_' . $dest_zone);

$cost_table = preg_split("//" , $zones_cost);

$shipping = $this->price($cost_table, $shipping_weight, $need_parcel, $maxweight, constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.(($dest_zone < 20) ? $mode : 'INTER').'_REG'));

    $shipping_method = @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_TEXT_WAY_'.$mode).' <nobr>('.$order->delivery['state'].
          ' - '.$shipping_weight.'</nobr> <nobr>['.
          @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_NEED').
          $this->om_number($need_parcel, array(@constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_1'),
          @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_2'),
          @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_5'))).
          ']</nobr>)';
}

А должно быть приблизительно вот так (Если я правильно конечно, понимаю):
//отправление по России
if($dest_zone < 20)
{
$shipping = -1;
$zones_cost = constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_STATES_PRICE_'.$mode.'_' . $dest_zone);

$cost_table = preg_split("//" , $zones_cost);

$shipping = $this->price($cost_table, $shipping_weight, $need_parcel, $maxweight, constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.(($dest_zone < 20) ? $mode : 'INTER').'_REG'));

    $shipping_method = @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_TEXT_WAY_'.$mode.'_PF').' <nobr>('.$order->delivery['state'].
          ' - '.$shipping_weight. @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_TEXT_UNITS_PF').'</nobr><nobr>['.
          @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_NEED').
          $this->om_number($need_parcel, array(@constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_1'),
          @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_2'),
          @constant('MODULE_SHIPPING_RUSSIANPOSTPREPAY_'.$mode.'_5'))).
          ']</nobr>)';
}

Так как в файле ru.php прописаны аргументы с _PF на конце, а в самом скрипте, про них забыли.


млин, вроде в код убрал, а страницу все равно заколбасило....


Источник



Copyright ShopOS