Категории

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

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

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

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

Расширения

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

Модули

Шаблоны

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

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

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

Бизнес книги

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

Магазины на ShopOS

Хостинг для ShopOS

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

Курилка

Проблема с оформлением заказов

Уже поднимали данную тему, но малость в другом ключе.

Проблема в том, что оформление заказа не идет дальше выбора доставки

Создано два простых модуля доставки курьером (клоны flat),, более доставок не выбрано.
При оформлении не переходит на способ оплаты. Тупо перекидывает обратно на доставку.
Где там косяк то? рылся в коде, так и не нашел.

После включения russianpostpf на оплату переходит нормально. Причем даже без настроек Доставка-Оплата.
Но переходит если выбрать именно russianpostpf

Т.е. другие моды если выбрать то кидает обратно на выбор доставки. какой-то бардак получается. В магазе будет только курьерская доставка.

Как вылечить?


Пример клона
Все остальное один в один, только цифры другие

dos_mos1/dos_mos1.php

<?php
/*
#####################################
#  ShopOS: Shopping Cart Software.
#  Copyright (c) 2008-2010
#  http://www.shopos.ru
#  http://www.shoposs.com
#  Ver. 1.0.0
#####################################
*/

  class dos_mos1 {
    var $code, $title, $description, $icon, $enabled;


    function dos_mos1() {
      global $order;

      $this->code = 'dos_mos1';
      $this->title = MODULE_SHIPPING_DOS_MOS1_TEXT_TITLE;
      $this->description = MODULE_SHIPPING_DOS_MOS1_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_SHIPPING_DOS_MOS1_SORT_ORDER;
      $this->icon = '';
      $this->tax_class = MODULE_SHIPPING_DOS_MOS1_TAX_CLASS;
      $this->enabled = ((MODULE_SHIPPING_DOS_MOS1_STATUS == 'True') ? true : false);

      if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_DOS_MOS1_ZONE > 0) ) {
        $check_flag = false;
        $check_query = os_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_DOS_MOS1_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
        while ($check = os_db_fetch_array($check_query)) {
          if ($check['zone_id'] < 1) {
            $check_flag = true;
            break;
          } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
            $check_flag = true;
            break;
          }
        }

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }
    }


    function quote($method = '') {
      global $order;
      $this->quotes = array('id' => $this->code,
                            'module' => MODULE_SHIPPING_DOS_MOS1_TEXT_TITLE,
                            'methods' => array(array('id' => $this->code,
                                                    'title' => MODULE_SHIPPING_DOS_MOS1_TEXT_WAY,
                                                    'cost' => MODULE_SHIPPING_DOS_MOS1_COST)));

      if ($this->tax_class > 0) {
        $this->quotes['tax'] = os_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
      }

      if (os_not_null($this->icon)) $this->quotes['icon'] = os_image($this->icon, $this->title);

      return $this->quotes;
    }

    function check() {
      if (!isset($this->_check)) {
        $check_query = os_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_DOS_MOS1_STATUS'");
        $this->_check = os_db_num_rows($check_query);
      }
      return $this->_check;
    }

    function install() {
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_DOS_MOS1_STATUS', 'True', '6', '0', 'os_cfg_select_option(array(\'True\', \'False\'), ', now())");
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DOS_MOS1_ALLOWED', '', '6', '0', now())");
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DOS_MOS1_COST', '5.00', '6', '0', now())");
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_DOS_MOS1_TAX_CLASS', '0', '6', '0', 'os_get_tax_class_title', 'os_cfg_pull_down_tax_classes(', now())");
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_DOS_MOS1_ZONE', '0', '6', '0', 'os_get_zone_class_title', 'os_cfg_pull_down_zone_classes(', now())");
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DOS_MOS1_SORT_ORDER', '0', '6', '0', now())");
    }

    function remove() {
      os_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
      return array('MODULE_SHIPPING_DOS_MOS1_STATUS', 'MODULE_SHIPPING_DOS_MOS1_COST','MODULE_SHIPPING_DOS_MOS1_ALLOWED', 'MODULE_SHIPPING_DOS_MOS1_TAX_CLASS', 'MODULE_SHIPPING_DOS_MOS1_ZONE', 'MODULE_SHIPPING_DOS_MOS1_SORT_ORDER');
    }
  }
?>



dos_mos1/ru.php
<?php
/*
#####################################
# ShopOS: Скрипт интернет-магазина
#  Copyright (c) 2008-2010
# http://www.shopos.ru
# Ver. 1.0.0
#####################################
*/

define('MODULE_SHIPPING_DOS_MOS1_TEXT_TITLE', 'Курьер - Москва (МКАД)');
define('MODULE_SHIPPING_DOS_MOS1_TEXT_DESCRIPTION', 'Курьер - Москва (МКАД) - на следующий день - Бесплатно');
define('MODULE_SHIPPING_DOS_MOS1_TEXT_WAY', 'На следующий день - Бесплатно');

define('MODULE_SHIPPING_DOS_MOS1_STATUS_TITLE' , 'Разрешить модуль курьерская доставка');
define('MODULE_SHIPPING_DOS_MOS1_STATUS_DESC' , 'Вы хотите разрешить модуль курьерская доставка?');
define('MODULE_SHIPPING_DOS_MOS1_ALLOWED_TITLE' , 'Разрешённые страны');
define('MODULE_SHIPPING_DOS_MOS1_ALLOWED_DESC' , 'Укажите коды стран, для которых будет доступен данный модуль (например RU,DE (оставьте поле пустым, если хотите что б модуль был доступен покупателям из любых стран))');
define('MODULE_SHIPPING_DOS_MOS1_COST_TITLE' , 'Стоимость доставки');
define('MODULE_SHIPPING_DOS_MOS1_COST_DESC' , 'Стоимость доставки данным способом.');
define('MODULE_SHIPPING_DOS_MOS1_TAX_CLASS_TITLE' , 'Налог');
define('MODULE_SHIPPING_DOS_MOS1_TAX_CLASS_DESC' , 'Использовать налог.');
define('MODULE_SHIPPING_DOS_MOS1_ZONE_TITLE' , 'Зона');
define('MODULE_SHIPPING_DOS_MOS1_ZONE_DESC' , 'Если выбрана зона, то данный модуль доставки будет виден только покупателям из выбранной зоны.');
define('MODULE_SHIPPING_DOS_MOS1_SORT_ORDER_TITLE' , 'Порядок сортировки');
define('MODULE_SHIPPING_DOS_MOS1_SORT_ORDER_DESC' , 'Порядок сортировки модуля.');
?>


Может зависит от какого-то ритуала последовательности включения или еще чего?
Просто реально интересно починить. Так как в гостевом режиме тоже наблюдаются такие глюки и если один способ доставки...


Как видно выше название модуля у меня DOS_MOS1
явно заметно разделитель в виде _

шопос такое кушать не хочет.
переименовал из DOS_MOS1 в DOSMOS1 (ну и в нижнем регистре тоже) и все заработало!!!


Источник



Copyright ShopOS