Категории

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

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

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

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

Расширения

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

Модули

Шаблоны

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

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

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

Бизнес книги

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

Магазины на ShopOS

Хостинг для ShopOS

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

Курилка

Модуль бесплатной доставки

Есть предложение расширить модуль бесплатной доставки, помимо удаления сессии доставки при выполнении условия, в данном случае достижение или превышения заданного  значения имелась функция по выбору перевозчика(курьерская доставка) , насколько сложная реализация данного момента в этом коде

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

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


    function freeamount() {
      $this->code = 'freeamount';
      $this->title = MODULE_SHIPPING_FREEAMOUNT_TEXT_TITLE;
      $this->description = MODULE_SHIPPING_FREEAMOUNT_TEXT_DESCRIPTION;
      $this->icon =''; 
      $this->sort_order = MODULE_SHIPPING_FREEAMOUNT_SORT_ORDER;
      $this->enabled = ((MODULE_SHIPPING_FREEAMOUNT_STATUS == 'True') ? true : false);
    }

    function quote($method = '') {
    global $osPrice;

  if (( $osPrice->RemoveCurr($_SESSION->show_total()) < MODULE_SHIPPING_FREEAMOUNT_AMOUNT ) && MODULE_SHIPPING_FREEAMOUNT_DISPLAY == 'False')
  return;

      $this->quotes = array('id' => $this->code,
                            'module' => MODULE_SHIPPING_FREEAMOUNT_TEXT_TITLE);

      if ( $osPrice->RemoveCurr($_SESSION->show_total()) < MODULE_SHIPPING_FREEAMOUNT_AMOUNT )
        $this->quotes = sprintf(MODULE_SHIPPING_FREEAMOUNT_TEXT_WAY,$osPrice->Format(MODULE_SHIPPING_FREEAMOUNT_AMOUNT,true,0,true));
      else
$this->quotes = array(array('id'    => $this->code,
                                              'title' => sprintf(MODULE_SHIPPING_FREEAMOUNT_TEXT_WAY,$osPrice->Format(MODULE_SHIPPING_FREEAMOUNT_AMOUNT,true,0,true)),
                                              'cost'  => 0));

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

      return $this->quotes;
    }

    function check() {
      $check = os_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FREEAMOUNT_STATUS'");
      $check = os_db_num_rows($check);

      return $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_FREEAMOUNT_STATUS', 'True', '6', '7', '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_FREEAMOUNT_ALLOWED', '', '6', '0', now())");
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_FREEAMOUNT_DISPLAY', 'True', '6', '7', '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_FREEAMOUNT_AMOUNT', '50.00', '6', '8', now())");
      os_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_FREEAMOUNT_SORT_ORDER', '0', '6', '4', now())");
    }

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

    function keys() {
      return array('MODULE_SHIPPING_FREEAMOUNT_STATUS','MODULE_SHIPPING_FREEAMOUNT_ALLOWED', 'MODULE_SHIPPING_FREEAMOUNT_DISPLAY', 'MODULE_SHIPPING_FREEAMOUNT_AMOUNT','MODULE_SHIPPING_FREEAMOUNT_SORT_ORDER');
    }
  }
?>


В модуле "Бесплатная доставка" отсутствует выбор географической зоны. Согласитесь, что доставку по области, в другие области бесплатно никто не делает. Однако показ сообщения о бесплатной доставке есть публичная офферта, что влечет правовые последствия.
Я создаю фиктивный регион "Мойгород", а регион в котором находится "Мойгород", переименовываю в "... область (без г. Мойгорода)".
Далее создаю геозону "Город" к которой привязываю "Мойгород" и геозону "Область" к которой привязываю "... область (без г. Мойгорода)".
Вот как сделать, чтобы в модуле "Бесплатная доставка" появился дропбох "Зона" как в модуле "Курьерская доставка"?


Бесплатной - может и нет, а "включенной в стоимость товара" - почему бы и нет?

насколько сложная реализация данного момента в этом коде

Смотря куда потом должен идти результат этого выбора


Вот, доработал модуль "Бесплатная доставка".

Установка
1. Удалить старую версию модуля "Бесплатная доставка".
2. Закачать на сервер прилагаемый файл.
3. Установить модуль "Бесплатная доставка".
4. Настроить модуль - установить порог суммы срабатывания, разрешенную страну, зону применения.

Чтобы настроить зону применения в вашем городе, создать фиктивный регион с названием вашего города, создать геозону Город, привязать к этой зоне созданный  регион.


После замены модуля появилось сообщение об ошибке
Warning: constant() : Couldn't find constant MODULE_SHIPPING_FREEAMOUNT_ZONE_TITLE in /home/host800275/xn----btbgilewfpr6o.xn--p1ai/htdocs/www/admin/modules.php on line 201

Warning: constant() : Couldn't find constant MODULE_SHIPPING_FREEAMOUNT_ZONE_DESC in /home/host800275/xn----btbgilewfpr6o.xn--p1ai/htdocs/www/admin/modules.php on line 203
Чего делать?


у меня при изменении модуля оплаты тоже константу где-то теряет

Warning: constant() : Couldn't find constant MODULE_PAYMENT_PEREVOD_PRAVEX_SORT_ORDER_TITLE in W:\home\shopos\www\admin\modules.php on line 201

а при изменении модуля доставки в другой строке

Warning: constant() : Couldn't find constant MODULE_SHIPPING_GUNSEL_ALLOWED_DESC in W:\home\shopos\www\admin\modules.php on line 203

при этом все работает, но гадости пишет

где копать?



у меня при изменении модуля оплаты тоже константу где-то теряет

Warning: constant() : Couldn't find constant MODULE_PAYMENT_PEREVOD_PRAVEX_SORT_ORDER_TITLE in W:\home\shopos\www\admin\modules.php on line 201

а при изменении модуля доставки в другой строке

Warning: constant() : Couldn't find constant MODULE_SHIPPING_GUNSEL_ALLOWED_DESC in W:\home\shopos\www\admin\modules.php on line 203

при этом все работает, но гадости пишет


нашЁл  :)
для MODULE_PAYMENT_PEREVOD_PRAVEX_SORT_ORDER_TITLE  в константе MODULE_PAYMENT_PEREVOD_PRAVEX_SORT_ORDER приписал TITLE выдало в итоге ошибку MODULE_PAYMENT_PEREVOD_PRAVEX_SORT_ORDER_TITLE_TITLE
удалил, и все ошибок не стало, не знаю с чем это связано, кеш не при чем


У кого-нибудь заработало? Что-то у меня не пашет.


Источник



Copyright ShopOS