---

-- -> Все сообщения пользователя dmitry_kornilov

1      2      3      »


20.06.14 10:54    Разработка плагинов, вопросы по API -> Программным способом создать заказ
Evgeney S.:
Скажите, а в текущей версии CMS существует какая-либо возможность создания заказа через API?


Заказ можно создать через модель таблицы eshop_order - http://manual.amiro.ru/docs/api6/Config_AmiClean_EshopOrder/Model/AmiClean_EshopOrder_Table.html

Затем добавить в заказ товары через модель таблицы eshop_order_item - http://manual.amiro.ru/docs/api6/Config_AmiClean_EshopOrder/Model/EshopOrderItem_Table.html
19.06.14 15:50    Разработка плагинов, вопросы по API -> Программным способом создать заказ
Evgeney S.:
Хочу снова поднять этот вопрос - создание заказа.
Попробовал создать заказ по пошаговому примеру - возникла проблема на 1-м шаге:
1. В модуле "Сервис : Настройка системы : Веб-сервисы" создается API ключ с привязкой к системному пользователю и модулю "Каталог товаров : Заказы".

В списке поддерживаемых модулей нет модуля "Каталог товаров : Заказы".
Версия CMS - 6.0.6.0 (последняя на данный момент), редакция Бизнес.
Попробовал выбрать все модули, но на последнем шаге получил ошибку:
"errorCode":"ERR_ACCESS_DENIED","errorMessage":"Passed app token '...' is not valid for module 'eshop_order'"
Подскажите, в чем причина отсутствия указанного модуля?


Ожидаем появление модуля "Каталог товаров : Заказы" в списке поддерживаемых в следующем обновлении.
В текущей версии CMS (6.0.6) модуль, к сожалению, не поддерживается, по ряду технических причин.
18.06.14 11:10    Любые вопросы от новичков -> ID объявления
Татьяна (femina):
Подскажите, пожалуйста, как присвоить индивидуальный ID каждому объявлению, чтобы он задавался автоматически при создании каждого объявления? А то сейчас объявления сами по себе (пример http://femina-maskulina.ru/doska-besplatnyh-objavlenij/transport/legkovye-avtomobili-14#ccat), невозможно их идентифицировать.


ID у каждого объявления уже есть изначально, как правильно заметили ранее, но по умолчанию он не отображается.

Для того, чтобы столбец с ID появился в панели администрирования, нужно добавить свой обработчик события on_list_columns в локальный php-код (_local/common_functions.php) -
AMI_Event::addHandler('on_list_columns', 'cstClassifiedsListHandler', 'classifieds');
     
function cstClassifiedsListHandler($name, array $aEvent, $handlerModId, $srcModId){
    $aEvent['oView']->addColumnType('id', 'int')->setColumnWidth('id', 'extra-narrow');
    $aEvent['aLocale']['list_col_id'] = 'ID';
    return $aEvent;
    }

Можно добавить возможность сортировки по столбцу -
AMI_Event::addHandler('on_sort_columns', 'cstClassifiedsListSortHandler', 'classifieds');

function cstClassifiedsListSortHandler($name, array $aEvent, $handlerModId, $srcModId){
    $aEvent['aColumns'][] = 'id';
    return $aEvent;
    }


На внешней части сайта ID объявления доступен по переменной id. На примере сета item_details шаблона classifieds.tpl, выводим идентификатор на странице объявления -
id : ##id##

Принцип работы шаблонов описан в документации - http://manual.amiro.ru/doc/integracija-dizajna/nastrojka-shablonov/nastrojka-shablonov/chto-takoe-shablony
Управление событиями - http://manual.amiro.ru/api/introduction/moduli-amirocms/sobytija-modulja/
30.05.14 13:13    Разработка плагинов, вопросы по API -> Для определённого заказа программно отправить письмо с составом
Артём:
Собственно, php скрипт получает номер заказа и по нему отправляет письмо с составом заказа по шаблону _order_letters_ru (видимо) админу и клиенту.


Получение входных параметров - http://manual.amiro.ru/docs/api6/Environment/AMI_Request.html#methodget ,
отправка почты - http://manual.amiro.ru/docs/api6/Service/AMI_Mail.html ,
работа с шаблонами - http://manual.amiro.ru/docs/api6/Template/AMI_TemplateSystem.html ,
примеры использования есть в описании классов.

Получение информации о заказе по id -
AMI::getResourceModel('eshop_order/table')->find($id_order)->getData();


Пример получения списка товаров из заказа был тут - http://www.amiro.ru/forum/dev/integracija-s-vneshnim-veb-servisom?id_message=25947#m25947

Принцип реализации отдельно стоящего PHP-скрипта описан в документации - http://manual.amiro.ru/api/introduction/tochki-vhoda-amirocms
26.05.14 16:49    Разработка плагинов, вопросы по API -> Переход на нужную страницу после авторизации
Добавьте в /_local/front_functions.php -

AMI_Event::addHandler('on_after_user_login', 'cstOnAfterUserLogin', AMI_Event::MOD_ANY, AMI_Event::PRIORITY_LOW);
AMI_Event::addHandler('on_before_user_logout', 'cstOnBeforeUserLogout', AMI_Event::MOD_ANY, AMI_Event::PRIORITY_LOW);

function cstOnAfterUserLogin($name, array $aEvent, $handlerModId, $srcModId){
    $url =
        AMI_Registry::get('path/www_root') .
        AMI_PageManager::getModLink(
            'members',
            AMI_Registry::get('lang_data')
        );
    AMI::getSingleton('response')->HTTP->setRedirect($url);

    return $aEvent;
}

function cstOnBeforeUserLogout($name, array $aEvent, $handlerModId, $srcModId){
    AMI_Event::disableHandler('on_before_user_logout');
    $oSession = AMI::getSingleton('env/session');
    $oSession->logout();
    
    $url = AMI_Registry::get('path/www_root');
    $oResponse = AMI::getSingleton('response');
    $oResponse->HTTP->setRedirect($url);
    $oResponse->send();
}

События on_after_user_login, on_before_user_logout пока не задокументированы, ожидаем появление в общем списке событий к следующему обновлению CMS.
12.05.14 15:48    Любые вопросы от новичков -> Автоматизация обмена с 1С - нужна помощь!
Евгений (karl379):
Приветствую!

Перелопатил документацию, но до конца так и не въехал как реализовать следующую задачу:
Есть файл экспорта из 1С в формате XML, который хоронится в _mod_files - _upload
Как реализовать автоматический запуск функции 1C v.8 XML импорт/экспорт с этим файлом, ну скажем, в 3 часа ночи? Есть идеи?


Общий принцип автоматизации обмена описан тут - http://manual.amiro.ru/doc/katalog-tovarov/obmen-dannymi-eksport/import/udalennyj-vyzov-funkcij-obmena-cherez...-dannymi

Обычно задача решается с помощью системного планировщика (например curl), который бы периодически запрашивал специально сформированный url (например через wget).

Принцип формирования url тут - http://manual.amiro.ru/doc/katalog-tovarov/obmen-dannymi-eksport/import/udalennyj-vyzov-funkcij-obmena-cherez...t-dannyh

import_driver - XML1cV8ExchangeDriver (1С v.8 XML импорт/экспорт), или RapidXML1cV8ExchangeDriver (Ускоренный 1С v.8 XML импорт)
data_source_ftp - /_mod_files/_upload/имя_файла.xml
module - eshop_item.
25.04.14 13:02    Интернет Магазин -> Проблема с импортом товаров
ie:
Суть проблемы: бд товаров ~ 33000 позиций, около 3000 категорий, все в одном CSV-файле, при импорте прогрессбар доходит до 100% еще минут 15(в конце выдаёт время ~ 30 мин) висит и все, отчетности о импорте не выдаёт...
Пробовал урезать, всё нормально проходит, по итогу отчетность сколько обработано сколько добавлено, но при количестве строк в файле ~800, пробовал изменять в настройках
«Максимальное количество элементов для тяжелых операций» - результат нулевой. А мне бы одним файлом выгрузить. Операция проделывается на локальной машине, на сервак нет желания заливать пока не ясно в чем проблема, в локальной машине, настройках или файле ?


Ответ дали в службе поддержки, дублируем тут -

Exe-дистрибутив, в целом, предназначен для ознакомления с системой, сборка на работу с большими объемами данных не ориентирована.

Присланные вами файлы удалось импортировать после внесения в php.ini некоторых изменений -

max_execution_time = 0
disable_functions = "set_time_limit"
18.04.14 16:58    Интеграция дизайна, настройка системы -> Проблема с 404 редиректом
Другого решения, к сожалению, предложить сейчас не можем.

Код ответа непосредственно на странице с ошибкой изменить возможности нет (поэтому используется редирект на страницу 404 ошибки).

Ожидаем исправление ошибки в одном из следующих обновлений.
02.04.14 14:22    Интернет Магазин -> amiro + 1C
nsks:
Обмен происходит только через FTP?


Обмен организован по FTP. Так же модуль может забирать файлы выгрузки заказов с почтового ящика, подробности есть в документации - http://manual.amiro.ru/doc/katalog-tovarov/obmen-dannymi-eksport/import/obmen-dannymi-s-1s-v/ustanovka-i-nast...magazina

nsks:
Подойдет 1С управлением торговлей 8?
Какая версия Базовая или ПРОФ?


Модуль тестировался на управлении тороговлей в 10-11 редакциях, в управлении производственным предприятием, управлении небольшой фирмой - все на восьмой платформе.

nsks:
В мануале указано http://manual.amiro.ru/doc/katalog-tovarov/obmen-dannymi-eksport/import/obmen-dannymi-s-1s-v/obschaja-informa...-dannymi
установить и настроить в 1С модуль обмена «Каталог товаров». Где его взять?


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

nsks:
После выгрузки на FTP, данные сразу импортируются в амиро или надо через админку в ручную?


Модуль обмена только загружает файл выгрузки на FTP, далее нужно запускать импорт самостоятельно, либо использовать средства автоматизации обмена данными - http://manual.amiro.ru/doc/katalog-tovarov/obmen-dannymi-eksport/import/udalennyj-vyzov-funkcij-obmena-cherez...-dannymi
24.03.14 14:01    Разработка плагинов, вопросы по API -> Обработка событий каталога
Evgeney S.:
1. Опытном путем установлено (сейчас еще раз проверил с использованием флага из примера), что событие 'v5_on_generate_eshop_item_keywords' возникает после события 'v5_on_item_prepare'.
Поэтому в обработчике события v5_on_item_prepare не доступен флаг, установленный при обработке события v5_on_generate_eshop_item_keywords (его еще просто не установили).
Наоборот - да, доступен.


Событие v5_on_generate_eshop_item_keywords на данный момент действительно генерируется позже v5_on_item_prepare.

Evgeney S.:

2. В обработчике события 'v5_on_item_prepare' не удается изменить значения кастомных полей.
Т.е. конструкция вида
$aEvent['aData']['custom_field_XXX'] = YYY;
не дает никакого результата. Данные, которые есть в массиве $aEvent['aData'] - да, можно изменить. Но кастомных полей там нет...


Как вариант решения, можно подменять полученные с формы данные внутри обработчика события v5_on_item_prepare, например -

AMI_Event::addHandler('v5_on_item_prepare', 'cstItemPrepareHandler', AMI_Event::MOD_ANY);
function cstItemPrepareHandler($name, array $aEvent, $handlerModId, $srcModId){
    if($aEvent['modId'] == 'eshop_item') {
        $oRequest = AMI::getSingleton('env/request');
        $oRequest->
            set('html_description', $oRequest->get('description', 'p'), 'p')->
            set('custom_field_36', date('d-m-Y H:i:s'), 'p');
        }
    return $aEvent;
}
20.03.14 16:15    Интеграция дизайна, настройка системы -> Проблема с 404 редиректом
@Дмитрий:
исправлена ли ошибка, о которой говорится ниже, в текущей версии 6.0.4.8?


В текущей версии ошибка еще присутствует.

В качестве временного решения можно добавить в /_local/front_functions.php следующий код -

AMI_Event::addHandler('v5_on_before_init', 'handleEshopAction', AMI_Event::MOD_ANY);

function handleEshopAction($name, array $aEvent, $handlerModId, $srcModId){
    $aPageInfo = AMI_Registry::get('page');
    if(!empty($aPageInfo) && $aPageInfo['modId'] == 'eshop_item' && $aPageInfo['catId'] == -1){
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: /page_404');
        header('Expires: Sun, 09 May 2010 06:00:00 GMT');
        header('Cache-Control: no-cache, must-revalidate');
        header('Pragma: no-cache');
        die();
        }
    return $aEvent;
    }

/page_404 - адрес 404 страницы.
19.03.14 10:34    Разработка плагинов, вопросы по API -> Обработка событий каталога
Evgeney S.:
Вы не могли бы уточнить, когда возникает это событие? При каждом сохранении товара?
И возникает ли оно при генерации мета-данных товара через групповые операции?


Событие возникает при каждом сохранении товара с формы.
Если использовать групповые операции, то событие v5_on_generate_eshop_item_keywords сгенерировано не будет.
18.03.14 11:24    Разработка плагинов, вопросы по API -> Обработка событий каталога
Evgeney S.:
Уточните, пожалуйста, каким образом использовать это событие?


Пример использования -

AMI_Event::addHandler('v5_on_generate_eshop_item_keywords', 'cstMetaHandler', AMI_Event::MOD_ANY);

function cstMetaHandler($name, array $aEvent, $handlerModId, $srcModId) {
    foreach (
        array(
            'html_title' => 'name',
            'html_keywords' => 'keywords',
            'html_description' => 'description'
        )
    as $dstFieldName => $srcFieldName ) {
        $aEvent['aData'][$dstFieldName] = 'custom generated '.$aEvent['aData'][$srcFieldName];
        }
    return $aEvent;
    }

Код добавлен в /_local/admin_functions.php
05.02.14 17:00    Любые вопросы от новичков -> Проблема со страницей Оформить заказ после переноса на другой хостинг
laandrew:
После переноса на другой сервер через дистрибутив, перестала корректно отображаться страница оформить заказ. Модули Корзина, Главное меню не работают. Вместо них пустота. Сбросил кэш страницы, зашел все ОК. Два раза нажал на обновление страницы браузера и опять все пропало.


В ходе исследования проблемы выяснили, что причиной в данном случае является директива pcre.backtrack_limit ( http://php.net/manual/ru/pcre.configuration.php ) - небольшое значение директивы вместе с довольно объемной страницей заказа приводят к описанным выше последствиям - теряется содержимое блоков.
25.12.13 10:36    Любые вопросы от новичков -> Вопрос по локальной версии сайта
Евгений (karl379):
Столкнулся с острой необходимостью сделать SQL дамп на локальной версии, но я никак не могу найти как зайти в phpmyadmin. Вопрос дурацкий конечно, но кто может подсказать?


Полный дамп базы данных можно сделать средствами панели администрирования CMS.

В разделе резервного копирования создайте новый архив с опцией "Вся база данных" - дамп будет в папке /_shared/sys/dbdumps/ относительно корня созданного архива.

1      2      3      »
ВебСтолица.РУ: создай свой бесплатный сайт!  | Пожаловаться  
Движок: Amiro CMS