Николай Савин

Николай Савин

С нами с 01 января 1970; Место в рейтинге пользователей: #2
09 ноября 2018, 15:49
0
Ну значит у тебя либо все товары с одним и тем же именем, либо ты передаешь один и тот же id товара
09 ноября 2018, 15:43
0
В этом случае ни цену, ни название товара вообще передавать не нужно, они есть в базе RetailCRM. Достаточно передавать идентификатор
01 ноября 2018, 19:11
0
Не помню точно, возвращается ли ошибка от sendPulse, но Попробуй так.
$response = $modsendpulse->sendPulseAddEmailsToBook($params, $book);
$modx->log(1, print_r($response, 1));

Компонент с некоторого времени платный (290 руб) — если не получится — покупай, пиши в поддержку — поковыряем вместе уже более подробно
01 ноября 2018, 18:52
0
Как передать, или где его взять?
01 ноября 2018, 18:46
0
Это кардинально неправильный подход.
Нужно использовать систему плагинов. Попробуй создать плагин на событие onUserSave (не уверен, что это событие сработает). Как вариант можно создать плагин на событие msOnCreateOrder, там тоже есть доступ к данным заказчика. И уже оттуда отправлять данные в адресную книгу
31 октября 2018, 18:13
0
Выше посмотри. Здесь же в комментариях несколько раз писал уже
31 октября 2018, 16:21
0
А где собственно запись ответа в лог? Нужно же после запроса еще ответ в лог записать, чтобы посмотреть ошибку
26 октября 2018, 11:17
0
Верно заметил. Сообщество, а не детский сад. Здесь нянечек нет. Не нравится — не используй. Сделай сам.
26 октября 2018, 10:34
0
Потому что ты просишь чтобы за тебя все сделали, разжевали и готовое на блюдечке вынесли.
26 октября 2018, 10:30
0
на 130 с лишним скачиваний — он почему то у тебя одного не работает. Тебе не кажется, что проблема не в компоненте, а где то еще?
26 октября 2018, 10:22
0
С какой задачей? Перебрать массив опций и проверить их на пустоту? Это основа PHP: циклы и условия. Если ты не знаешь как делать подобные вещи — то лучше обратись в раздел работа.
26 октября 2018, 10:11
0
Ну как я и сказал. Если у свойства товара пустое значение — RetailCRM вернет ошибку.
Можно ли сделать какое-то условие, если модификация пустая не учитывать ее?
Ответить
Можно — разрешаю.
26 октября 2018, 08:44
0
Насколько я понял, у тебя что то не то с модификациями. Может просто пустые.
Попробуй, распечатай перед отправкой массив с данными, может что-то будет более ясно.

$modx->log(1, print_r($orderData, 1));
26 октября 2018, 07:55
0
Вот после этой строки в плагине
$response = $modRetailCrm->request->ordersCreate($orderData, $site);
можно включить логгирование
$modx->log(1, print_r($response, 1));
Мне очень нравится как API RetailCRM возвращает ошибки. Все предельно понятно
22 октября 2018, 14:11
+1
Хотя бы плюсик к статье поставьте вместе со спасибо,
По существу Не уверен что такая доработка плагина нужна. Вы пока второй на 130 загрузок, кто такое спрашивает.
22 октября 2018, 12:51
0
Вообще при выгрузке нужно указывать идентификатор товара в поле ExternalID
Если Вы этого не делали, тогда отдельного специального поля для связи товаров в различных системах нет.

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

Для этого в плагине, там где начинается перебор товаров заказа, можно добавить дополнительный поисковый запрос в RetailCRM
$store_response = $modRetailCrm->request->storeProducts(array('name' => $product['article']), 1, 20);  
if($store_response->getStatusCode() == 200){
        $product_id = $store_response['products'][0]['offers'][0]['id'];
  }
$orderData['items'][$key]['offer']['id'] = $product_id;
Здесь вы ищите на складе RetailCRM товар, у которого наименование совпадает с артикулом в minishop2. Если такой товар найден получаем его id.
Разумеется фокус сработает, если указанные данные у товаров в разных системах один и тот же.
Никто не мешает искать по другим общим параметрам.

Важно также понимать, что эти дополнительные запросы занимают время и заказ передается дольше, а клиент в этот момент сидит и смотрит на экран корзины.
19 октября 2018, 18:38
0
В конце плагина есть закомментированная строчка записи результата в лог. Нужно раскомментировать и посмотреть какая будет ошибка
19 октября 2018, 12:55
0
Да, почему бы и нет. Правильнее было бы не TV использовать, а добавить новое свойство товара. Это уменьшит время оформления заказа. Ну и подставляйте новый идентификатор в массив товаров, поле externalID, в плагине
17 октября 2018, 13:11
0
В плагине, в самом конце есть закомментированная строчка логгирования.
Достаточно ее раскомментировать и будет запись в журнал, с достаточно подробным описанием ошибки.
17 октября 2018, 12:48
0
Нет не правильно.
Если товар в CRM не создан, то заказ все равно создается на основе присылаемых данных (название, цена, опции)
Если товары в базе CRM уже есть, то достаточно послать идентификатор товара, а все данные подтянутся из базы