Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Разработка плагинов, вопросы по API  ->  Интеграция с внешним веб-сервисом

Раздел для разработчиков. Обсуждение создания плагинов, вопросы и пожелания по API Amiro.CMS

Добавлено: 16.04.14 17:41:00 #1



Регистрация: 16.04.14
Сообщений: 4


Обратиться по имени

Добрый день!

Пишу интеграцию интернет-магазина, размещенного в облаке Amiro, с одной из CRM-систем, для чего разбираюсь в Amiro API. Некоторые вещи пока не могу понять. Доступа к коду магазина и к базе у меня нет, так что этот форум - единственный источник информации, не считая Api Reference

1. Есть модель каталога eshop_cat, и модель товара eshop_item. Через них получаю список категорий и товаров соответственно. Как установить взаимосвязь между ними, т.е. определить, какой товар в какой категории находится? Соответствующих полей я не нашел.

2. В объекте товара, как он отображается в магазине, присутствуют поля, которых нет в модели. В частности - поле Изображение товара. Как прочитать его?

3. В интернет-магазине реализованы доп. справочники - например "варианты доставки". Как прочитать их?

Профессионалы, подскажите?



Добавлено: 16.04.14 21:34:40 #2

Партнер


Регистрация: 22.02.09
Сообщений: 468


Обратиться по имени

Здравствуйте
Интересно, зачем в CRM системе данные о товарах...
1. Это делается через зависимости моделей. Здесь об говорится подробнее.
Конкретно для каталога товаров, его элементов и категорий:
$aObject = AMI::getResourceModel('eshop_item/table');
$aObject->setActiveDependence('cat');
$aList = $aObject->getList();
...

2. Изображения становятся доступны после инициализации соответствующего расширения. Пример для товара:
AMI::initModExtensions('eshop_item');
Здесь можно найти информацию о полях, того же расширения изображений и пр.

3. Не понятно, о каких справочниках речь. Справочники свойств товаров или это именно модуль доставки?



Добавлено: 17.04.14 10:48:40 #3



Регистрация: 16.04.14
Сообщений: 4


Обратиться по имени

Evgeney S., спасибо за подробный ответ!

1. Работает, спасибо! то что нужно!

2. Видимо это и есть решение, но оно почему-то вызывает ошибку MySql
Просматриваю доступные поля после инициализации расширений:
$modId = 'eshop_item';
$oTable = AMI::getResourceModel($modId . '/table');
AMI::initModExtensions($modId);
$oFields = $oTable->getAvailableFields();

Получаю все поля айтема eshop_item + поля расширения:
125 - > ext_dsc_disable
126 - > ext_img
127 - > ext_img_small
128 - > ext_img_popup

однако когда гружу их и вывожу через Response на экран, чтобы посмотреть содержимое:

          $oList = $oTable->getList();
            foreach ($oFields as $key => $val) {
                $oList->addColumn($val);
            };

            $oList->setLimitParameters(0, $_GET['limit'] ? $_GET['limit'] : 10);
            $oData = $oList->load();

            $oResponse->write('<table>');
            foreach ($oFields as $key => $val) {
                $oResponse->write('<td>' . $val . '</td>');
            };
            $oResponse->write('<tr>');

            $oResponse->write('</tr>');
            foreach ($oData as $oItem) {
                $oResponse->write('<tr>');
                foreach ($oFields as $key => $val) {
                    $oResponse->write('<td>' . $oItem->{$val} . '</td>');
                }
                $oResponse->write('</tr>');
            }
            $oResponse->write('</table>');


Получаю ошибку ['USER: ERROR'] [code=256]: ['DB: [1054] [Unknown column 'i.ext_dsc_disable' in 'field list']

По факту мне поле ext_dsc_disable не требуется, однако исключение его из набора полей не помогает. Как избежать этой ошибки?

3. Я разобрался, это был модуль eshop_shipping_methods



Добавлено: 17.04.14 16:10:59 #4

Амиро



Регистрация: 21.03.07
Сообщений: 258


Обратиться по имени

iVor:
Получаю ошибку ['USER: ERROR'] [code=256]: ['DB: [1054] [Unknown column 'i.ext_dsc_disable' in 'field list']

Напишите запрос в СП, указав название сайта.



Добавлено: 19.04.14 22:24:02 #5



Регистрация: 16.04.14
Сообщений: 4


Обратиться по имени

Антон,
Спасибо за совет!
Ответ техподдержки:

Вместо кода
$oTable = AMI::getResourceModel($modId . '/table');
используйте
$oTable = AMI::getResourceModel($modId . '/table', array(array('extModeOnConstruct' => 'all')));

Так же заметим, что кроме поля "ext_img" имеет смысл проверять поля "ext_img_small" и "ext_img_popup"

Помогло, работает.

Следующая аналогичная проблема - не получается выстроить зависимости заказа и заказанных товаров. Пробую к модели eshop_order подключать зависимую модель eshop_order_item - получаю пустую выборку. Пробую создавать зависимость - та же беда.

Куда копать?



Добавлено: 21.04.14 11:40:11 #6

Амиро



Регистрация: 21.03.07
Сообщений: 258


Обратиться по имени

Для получения товаров заказа воспользуйтесь моделью списка товаров заказа:
$orderId = ...;
$oTable = AMI::getResourceModel('eshop_order_item/table');
$oList =
    $oTable
    ->getList()
    ->addColumns($oTable->getAvailableFields())
    ->addSearchCondition(array('id_order' => $orderId))
    ->load();
foreach($oList as $oItem){
    ...
}



Добавлено: 22.04.14 05:48:04 #7



Регистрация: 26.05.08
Сообщений: 984


Обратиться по имени

Оффтопик:

Evgeney S.:
Интересно, зачем в CRM системе данные о товарах...


Чтобы формировать, например, счета прямо в CRM-сделке, добавляя туда товары по актуальной цене.



Добавлено: 25.04.14 08:16:20 #8



Регистрация: 16.04.14
Сообщений: 4


Обратиться по имени

Антон, спасибо, именно так и сделал. Работает.

Осталось только получить как-то из настроек варианты оплаты заказа (в настройках определены по два типа для физ и юр лиц)



Добавлено: 25.04.14 09:17:49 #9

Амиро



Регистрация: 21.03.07
Сообщений: 258


Обратиться по имени

AMI::getOption('eshop_order', 'allowed_drivers')





Создать новую тему

Всего тем: 6630
Всего сообщений: 27746
Всего зарегистрированных пользователей: 48912
Последний зарегистрированный пользователь: user33269596