retailcrm / opencart-module

OpenCart integration plugin
http://www.retailcrm.pro
MIT License
22 stars 43 forks source link

Способы доставки и оплаты не передаются в CRM #21

Closed maxdmtrv closed 6 years ago

maxdmtrv commented 7 years ago

В настройках выставлены настройки соответствия справочников для соответствия способов доставки и оплаты в магазине и CRM.

При оформлении заказа в магазине в CRM не передается информация о способе доставки и оплаты. В логе ошибок Opencart появляются записи:

2017-02-10 13:04:23 - PHP Notice: Undefined index: yamodule.AC in /www/catalog/model/retailcrm/order.php on line 67

2017-02-10 13:04:23 - PHP Notice: Undefined index: cdek.tariff_137 in /www/catalog/model/retailcrm/order.php on line 77

При этом стоимость доставки передается корректно.

Версия ocStore 2.1.0.2.1

maxdmtrv commented 7 years ago

У одного модуля доставки может быть несколько способов доставки, имеющих разный код code в массиве $quote_data в модели доставки из папки catalog/model/shipping Если способ доставки один (например, самовывоз с кодом pickup.pickup), то тип доставки передается в CRM верно. Если есть несколько способов доставки с разными кодами (например, emsrussianpost.international и emsrussianpost.noinsurance в нашем случае), то появляется ошибка Undefined index.

То же самое актуально и для модулей оплаты, например модуль Яндекс.Кассы.

gwinn commented 7 years ago

Спасибо за комментарий, в данный момент мы работаем в этом направлении

kolek5520 commented 7 years ago

тоже интересует данный момент

gwinn commented 7 years ago

Выпустили новое обновление, в нем учитываются ваши замечания

kolek5520 commented 7 years ago

Отлично, только на сколько я вижу обновление касается только доставки. Если доделаете тоже самое для оплаты,будет супер. А сейчас для оплаты так же выдает ошибку: PHP Notice: Undefined index: transfer_plus.2 in /var/www/admin/data/www/domen.ru/catalog/model/extension/retailcrm/order.php on line 73

miken912 commented 7 years ago

Version 2.3.0.2 (rs.4) В настройках модуля не возможно выбрать сопоставление служб доставки в логах есть ошибка
Invalid argument supplied for foreach() in /www/admin/view/template/extension/module/retailcrm.tpl on line 83

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

maxdmtrv commented 7 years ago

Стало чуть лучше, но все равно сохраняется проблема.

Доставки с одним shipping_code (например, pickup.pickup или citylink.citylink) нормально подтягиваются и передаются в CRM.

Но доставки с несколькими тарифами и разными shipping_code (в моем случае это cdek.tariff_137) даже не подтягиваются для сопоставления в админке модуля RetailCRM.

iyzoer commented 7 years ago

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

LoginovDV commented 7 years ago

В старых версиях opencarta все получалось без проблем.

iyzoer commented 7 years ago

В старых версиях opencart не учитывались разные способы доставки для одного модуля. И то что получалось в старых версиях в таких случаях не передавалось корректно.

maxdmtrv commented 7 years ago

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

Как в таком случае быть? Можно, конечно, захардкодить способ доставки по коду и присвоить такой же код на стороне RetailCRM, но этот вариант подойдет не для всех.

djjerry85 commented 7 years ago

Присоединяюсь к предыдущему вопросу: стоит задача передать в ЦРМ способ доставки выбранный пользователем (Яндекс Доставка). Код имеет вид yandex_delivery.TODOOR_2400_1501 и у некоторых методов есть еще адрес пункта выдачи. Просто выставить метод Яндекс Доставка в ЦРМ через API удалось, а как теперь передать остальное?

iyzoer commented 7 years ago

Можно кастомизировать модуль для передачи данных интеграционных доставок. Часть кода TODOOR_2400_1501 скорей всего должна содержать какие то данные, которые можно передать в срм. Подробней с данными интеграционных доставок можно ознакомиться в документации.

alexey73 commented 7 years ago

Как я понял с доставкой не все так просто. Можно ли как то зафиксировать способ доставки, - иначе любые всплывающие формы на сайте зависают намертво - видимо в связи с невозможностью создать и отправить данные (говорю про "заказ в 1 клик).

iyzoer commented 7 years ago

Заказ в один клик не является базовым функционалом opencart, поэтому модуль не рассчитан на передачу таких заказов. Дело может быть не только в доставках.

AntonVarentsov commented 7 years ago

Скажите, а та же самая проблема в модуле для 1.5.х решена? Undefined index: yandex_delivery.1459_1510 in /home/t/torbatut/public_html/catalog/model/retailcrm/order.php on line 72

Подскажите, как решить эту проблему? При заказе выдает белый экран Достаточно, чтобы передавался родительский способ доставки (Яндекс-доставка, например)

iyzoer commented 6 years ago

Для 1.5 решение не внедряли.

lesik1984 commented 5 years ago

Добрый вечер! У нас так же перестали приходить доставки. В настройках модуля ретейл они все пропали после того как мы добавили в модуле Доставки геозоны (чтобы разные способы доставки для регионов отражались ) если геозону убираешь все отражается, так же после оплаты онлайн на сайте при поступлении заказа в ретейл, стоимость доставки проподает, приходится высчитывать разницу из чека, чтобы понять стоимость доставки.

lesik1984 commented 5 years ago

Подскажите как можно обновлять Модуль если ошибки какие то исправляются и дорабатываются ?

lesik1984 commented 5 years ago

Версия опен карт 2.1

iyzoer commented 5 years ago

Был фикс, связанный с доставками для версий > 2.3, для второй ветки не внедряли ещё. Обновить модуль можете просто перезалив файлы через FTP.

lesik1984 commented 5 years ago

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

iyzoer commented 5 years ago

Внедрили сегодня.

iyzoer commented 5 years ago

Скачайте из ветки v2.2 последнюю версию кода, либо нужную версию на маркетплейсе, и перезалейте файлы через FTP.