Спасибо большое! Заработало! Дело было в статическом кеше.

 $filter=new Filter\Type\Select('region_id', 'Регион', array('' => 'Любой регион')+ array('NULL' => 'Без региона') + \Shop\Model\RegionApi::staticSelectList());
        $filter->setFieldPrefix('f');
        
        $lines[0]->addItem( $filter,0);  

Сделал так, префикс не добавляется. Почему все таки он автоматически не добавляется? По аналогии с брендами и группами пользователей. Я в исходниках вообще вызова функции setFieldPrefix не нашел

По коду в селекте в качестве value идут id регионов из регионов доставки.
Вот кусок кода:

<select name="[region_id]">
<option value="1">Россия</option>
<option value="18">&nbsp;&nbsp;&nbsp;&nbsp;Адыгея</option>
<option value="17">&nbsp;&nbsp;&nbsp;&nbsp;Алтай</option>
<option value="10">&nbsp;&nbsp;&nbsp;&nbsp;Алтайский край</option>
<option value="16">&nbsp;&nbsp;&nbsp;&nbsp;Амурская область</option>
<option value="15">&nbsp;&nbsp;&nbsp;&nbsp;Архангельская область</option>

id передается:

mod_controller=users-ctrl&%5Bregion_id%5D=10&f%5Blogin%5D=&f%5Be_mail%5D=&f%5Bdispname%5D=&f%5Bgroup%5D=&f%5Bname%5D=&f%5Bsurname%5D=&f%5Bmidname%5D=&f%5Bdateofreg_from%5D=&f%5Bdateofreg_to%5D=

Смущает то, что name="[region_id]", а всех остальных фильтров добавляется префикс f, например name="f[group_id]".

Таблица Users дополнена 2 полями

 $orm_user->getPropertyIterator()->append(array( //Добавляем свойства к объекту
            t('Основные'), //Закладка, появится в форме редактирования товара
             
           
            'region_id' => new \RS\Orm\Type\Integer(array(
                      
                        'default' => 1,   
                        'index' => true,
                        'description' => t('Регион'),
                        'list' => array(array('\Shop\Model\RegionApi','staticSelectList'))
                    
                    )),
                        
             t('Служебная информация'), //Закладка, появится в форме редактирования товара
             
           
            'source_info' => new \RS\Orm\Type\String(array(
                        'maxLength' => '255',
                        'description' => t('Источник перехода'))
                        )  
                        
        ));

По сортировке. Я имел ввиду,что сортировка идет по возрастанию, убыванию id бренда, а не его наименованию. Возможно ли сделать сортировку именно по наименованию?

Разобрался с добавлением.

$helper['table']->getTable()->addColumn(
    new TableType\String('region_id', 'Регион', array('Sortable' => SORTABLE_BOTH, 'hidden' => false)),6);
$lines = $helper['filter']->getContainer()->getLines();
$lines[0]->addItem(   
   new Filter\Type\Select('region_id', 'Регион', array('' => 'Любой регион')+ \Shop\Model\RegionApi::staticSelectList()) ,0);

Появились другие вопросы)
Заметил, что сортировка идет не по региону, а по его id. Аналогичная ситуация, кстати, и у каталога товаров.
Например, после Hewlett-Packard идет Lenovo, а не HTC.

И не работает фильтр. Просто опять выводится список пользователей.

Спасибо за ответ, Александр! В документации разработчика менее подробно описано о добавлении полей, чем в Вашем посте. Именно так и стал делать модуль с допинформацией об источниках перехода (используя Sourcebuster.js).

Не нашел мануал по добавлению колонок в таблицу, можете привести пример?

Поля во вкладке "Дополнительные сведения"
http://joxi.ru/DrlQdB6hgR1PmP
Которые добавляются в настройках модуля
http://joxi.ru/8An6KbdSJaeVAO

Здравствуйте! Подскажите, пожалуйста, каким образом вывести дополнительные поля (или одно из полей) пользователей в колонку в таблице со списком пользователей. И возможна ли сортировка по добавленному полю.

Спасибо, Александр!

Здравствуйте!
Вопрос не совсем по ReadyScript
Подскажите, пожалуйста, что сделать, чтобы при обмене данными с 1с заполнялось поле "Дата поступления"
в XML файлах нет этого поля.

Уже пригодилось) Оптовый интернет-магазин, поэтому выбор комплектации и количества сразу из списка товаров категории.

Спасибо за детальный ответ!

Подскажите, пожалуйста, а как быть с многомерными комплектациями?
Пробовал по аналогии с кодом из файла product.tpl, вывод по var_dump показал, что у $product нет multioffers.
Многомерные комплектации используются, в корзине выбор есть, в карточке товара аналогично.

p.s. Подсмотрел в контроллере: $product->fillMultiOffers()

Спасибо!!!

Все еще актуально

Благодарю за помощь!
После OpenCart одно удовольствие расширять систему. Никаких VQMod

Пользователь должен быть авторизирован или это для текущей сессии любого пользователя?

Спасибо большое! Заработало как надо!

А есть ли возможность принудительно устанавливать текущий CostId без модификации costapi?
Это метод \Catalog\Model\CostApi::setSessionDefaultCost()?

Заказчик дал следующее ТЗ:
"Здравствуйте! Необходимо реализовать смену типа цены товаров и пересчет суммы корзины для текущей сессии аналогично sotomore.ru
1. Тип цены текущего пользователя зависит от подытога текущей корзины.
Например:
0-10 000 = тип цены розничная с ID=2
10001-50000 = тип цены опт1 с ID=3
50001-100000 = тип цены опт2 с ID=23"

Немного изменил cost.api, чтобы тип цены по-умолчанию брался из сессии.

Далее написал обработчик события:

<?php

namespace Opt\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('cart.addproduct.after1')
            ->bind('cart.update.after');
    }    
    
   public static function checkprice($info)
    {
         //\Catalog\Model\CostApi::setSessionDefaultCost(2); 
          if (!$_SESSION['user_cost_id']) {
                $_SESSION['user_default_cost_id']=\Catalog\Model\CostApi::getDefaultCostId();
                $cost_id=\Catalog\Model\CostApi::getDefaultCostId() ;
         }  
           else   $cost_id=$_SESSION['user_cost_id'];
                                                    
         $cart=$info['cart'];      
         $cartinfo = $cart->getCartData(false,false);
         flog($cost_id);    //вывод в консоль firebug                          
         flog( $cartinfo['total']);   
          
         if ((  $cartinfo['total']<50000) &&( $cost_id!=1)) 
         {       
             flog('yes');
             $_SESSION['user_cost_id']=1;  
             //здесь необходимо обновить корзину            
             
        }
         elseif ((  $cartinfo['total']>=50000)&&( $cost_id!=2)) 
         {       
              flog('yes2');
              $_SESSION['user_cost_id']=2; 
              //здесь необходимо обновить корзину   
            
         };
 
     return $info;    
    }
  public static function cartUpdateAfter ($info)
    {  
    
       $result=self::checkprice($info);           
       return $result;     
           
    }
      
                           
   public static function cartAddproductAfter ($info)
    {  
           $result=self::checkprice($info);           
          return $result;
    }
    
}

====

но не ясно как перерасчитать корзину после смены ID типа цены в сессии $_SESSION['user_cost_id'] .

Пробовал разные методы модели корзины, но  итог меняется только при следующем изменении корзины.

Например:
Товар с ценой 1=12000 и ценой2 = 10000. Цена1 меняется на цену2 после 50 000 руб.
при количестве 4 в корзине Итог= 48 000 руб
при количестве 5 в корзине Итог= 60 000 руб (меняется тип цены=цена2=10000)
при количестве 6 в корзине Итог= 60 000 руб
уменьшаем
при количестве 5 в корзине Итог= 50 000 руб
при количестве 4 в корзине Итог= 40 000 руб(тип цены меняется цена=цена1=12000)


Подскажите, пожалуйста, как же пересчитать элементы корзины и итог при изменении типа цены?

p.s. Так же не хватает событий на удаление из корзины в стандартной поставке.

Спасибо за исчерпывающий ответ!
Хорошо, что приводятся примеры кода, так как система новая, не все сразу понятно при доработке.

Возможно ли в админке сразу при загрузке страницы активировать блок фильтров по какому-либо признаку?
Пример:
Заказы только за текущий день - фильтр по дате=текущая дата.

Спасибо!
А каким образом через Jquery ?  Или делать циклом по одному?

Здравствуйте! Подскажите, пожалуйста, насчет сабжа.
Корзину очистить можно, а список по одному товару.

Понятно, что можно просто вызвать удаление 1 товара поочередно.
В контроллере блока увидел метод removeAll, в контроллере фронта такого нет.

Как в облачном сервисе, так и в движке из коробки исправления в файлах шаблонов можно делать с помощью пункта меню "Управление-шаблоны"

У системы достаточно хорошее руководство пользователя и разработчика.  Для всего остального есть "Заявки на платную поддержку". http://helpdesk.readyscript.ru/task/create/

Было бы неплохо привязывать поля (скрытие/отображение, обязательное заполнение) к способам доставки.

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

625

(2 ответов, оставленных в Вопросы по работе с системой)

http://www.smarty.net/docsv2/ru/languag … iteral.tpl
Кратко: то что в этом блоке будет обрабатываться "как есть".