XOlegator / simpla-test

Механизм выгрузки заказов и клиентов из ИМ Simpla в RetailCRM и обратно
5 stars 8 forks source link

Комментарии к проекту #2

Open XOlegator opened 7 years ago

XOlegator commented 7 years ago

Сюда можно размещать комментарии к проекту

maxonemore commented 7 years ago

Олег, спасибо большое за эту интеграцию, работает отлично. У меня только вопрос по оплате заказа, как её передавать в retailcrm из simpa? У меня подключен эквайринг и после оплаты юзер попадает на страницу order со статусом "заказ оплачен", но при этом ничего не передаётся в retailcrm. Есть ли в вашей интеграции передача таких данных или это отдельно пилить надо?

XOlegator commented 7 years ago

Т.к. в симпле нет ничего похожего на события, чтобы можно было бы подключиться и добавить какую-то свою обработку, приходится добавлять функции-обработчики в разных местах кода. Передача оплаты в текущей интеграции передаётся в RetailCRM в том же месте, где и симпла "понимает", что заказ оплачен. В стандартном виде - это скрипт /view/OrderView.php и /api/Orders.php в двух местах. В вашем случае может иметь место какая-то кастомная обработка платежа (но всё равно же симпла узнаёт, что заказ оплачен). Нужно найти это место и добавить туда такой же обработчик для RatailCRM, как для /api/Orders.php:

if ($arOrderData = $this->retail->getOrderRetailData($order_id)) {
    $this->retail->request('ordersEdit', $arOrderData);
}
EbonyDealer commented 6 years ago

Олег, огромный респект за проделанную работу! Разрешите вопрос. В пункте 3 "Установка общих зависимостей" можно поподробнее как установить официальный клиент для работы с API RetailCRM НЕ через composer.

XOlegator commented 6 years ago

Я прикрепял архив с библиотекой RetailCRM к релизу своей интеграции (уже два релиза есть - в обоих есть архив с нужной версией библиотеки)

Tick007 commented 6 years ago

Здравствуйте Олег! Пытаюсь подключить вашу интеграционную систему. Не работает.

Warning: require_once(../../vendor/autoload.php): failed to open stream: No such file or directory in /home/host1575118/hamakids.ru/htdocs/www/simpla/ajax/export_orders_retailCRM.php on line 7

Fatal error: require_once(): Failed opening required '../../vendor/autoload.php' (include_path='.:/usr/local/php/php-5.4/lib/php') in /home/host1575118/hamakids.ru/htdocs/www/simpla/ajax/export_orders_retailCRM.php on line 7

Смотрю где ошибка. В файле export_orders_retailCRM.php, вижу

//Подключим зависимые библиотеки (API RetailCRM) require_once '../../vendor/autoload.php';

Ни где в инструкции не увидел откуда в папке vendor берется файл autoload.php

Я что-то пропустил ? Или инструкция не полная ?

Tick007 commented 6 years ago

Снимаю свой вопрос, нужно было устанавливать retailcrm с помощью composer

DmitriiRabeckii commented 6 years ago

Всем привет, как установить retailcrmApi через composer?

XOlegator commented 6 years ago

Инструкция по установке библиотеки RetailCRM - https://github.com/retailcrm/api-client-php#install Чтобы это можно было сделать, нужен доступ к консоли сервера (SSH-доступ). Если это простой хостинг, то так не выйдет. Остаётся вариант проделать это где-то ещё, а потом загрузить на хостинг, либо можно скачать архив vendor.zip тут https://github.com/XOlegator/simpla-test/releases - но тут не будет каких-то последних обновлений (хотя они и не потребуются для моей интеграции)

bigperson commented 6 years ago

Не хватает выгрузки товаров из ритейла на сайт.

XOlegator commented 6 years ago

В RetailCRM с товарами можно работать двумя способами: 1) вести каталог прямо в RetailCRM. В этом случае доступно редактирование каталога, но нет импорта товаров из внешнего источника 2) использовать импорт из внешнего источника (через файлик ICML). В этом случае заблокировано ручное изменение товаров в RetailCRM.

Текущая интеграция работает только по второму из этих сценариев. Подразумевается, что каталог ведётся в интернет-магазине и присылается в RetailCRM уже в готовом виде. Пока в планах нет сделать работу по первому сценарию.

mike-sakhnenko commented 6 years ago

Добрый день. Подскажите, а где используется метод getPaymentRetailData() из Retail.php?

XOlegator commented 6 years ago

Добрый день. Подскажите, а где используется метод getPaymentRetailData() из Retail.php?

Похоже, это я в отладке использовал. Такого вида:

$orderId = 2;
$retail  = new Retail(5);
if ($arOrderData = $retail->getOrderRetailData($orderId)) {
    echo '<pre>Данные по заказу, собранные собственным методом: ';
    print_r($arOrderData);
    echo '</pre>';
    $payment = Retail::getPaymentRetailData($orderId);
    echo '<pre>Данные по оплате, собранные собственным методом: ';
    print_r($payment);
    echo '</pre>';
}