Автор Тема: api сообщение заказа  (Прочитано 466 раз)

09 Июль 2017, 08:51:03
  • Фрилансер
  • *
  • Сообщений: 185
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
через апи я получаю заказы
как мне получить сообщения для конкретного заказа?
нашел такую ссылку апи customer_messages но не хочет фильтровать по ид заказа id_order
09 Июль 2017, 11:10:51
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
нашел такую ссылку апи customer_messages но не хочет фильтровать по ид заказа id_order
Фильтровать будет по id customer, который берете из order
09 Июль 2017, 11:50:03
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 185
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
вот что пишет при попытке фильтрации
This filter does not exist. Did you mean: "id_employee"? The full list is: "id", "id_employee", "id_customer_thread", "ip_address", "message", "file_name", "user_agent", "private", "date_add", "date_upd", "read"
и похоже что id_customer_thread это не id customer
09 Июль 2017, 12:06:47
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
и похоже что id_customer_thread это не id customer
Это разные переменные. id_customer_thread  - ид сообщений пользователя. Если их объединять, то так
SELECT * ...
FROM ‘._DB_PREFIX_.’customer_thread ct
LEFT JOIN ‘._DB_PREFIX_.’customer_message cm ON ct.id_customer_thread = cm.id_customer_thread
LEFT JOIN `’._DB_PREFIX_.’customer` c ON ct.`id_customer` = c.`id_customer`
WHERE id_order = ‘.(int)$id_order;
09 Июль 2017, 12:07:59
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 185
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
это все хорошо а через апи как получить?
может есть возможность с заказом вытянуть?
09 Июль 2017, 12:55:45
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Сообщения заказа не вытянуть из файла заказа. Для него нужно отдельно загружать объект Message. Для модуля админки так.
$messages = Message::getMessagesByOrderId($order->id, true),
Web Service API тоже что-то подобное должно быть.
09 Июль 2017, 13:07:00
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
вот что пишет при попытке фильтрации
This filter does not exist. Did you mean: "id_employee"? The full list is: "id", "id_employee", "id_customer_thread", "ip_address", "message", "file_name", "user_agent", "private", "date_add", "date_upd", "read"
и похоже что id_customer_thread это не id customer
В описание указаны переменные, которые можно использовать.
Вам нужен текст сообщения - "message".
09 Июль 2017, 13:11:40
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 185
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сообщения заказа не вытянуть из файла заказа. Для него нужно отдельно загружать объект Message. Для модуля админки так.
$messages = Message::getMessagesByOrderId($order->id, true),
Web Service API тоже что-то подобное должно быть.
искал, гуглил но похоже  что для Web Service нету такой возможности
даже если получить список сообщений то ид заказа нигде не фигурирует
09 Июль 2017, 13:12:25
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 185
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
вот что пишет при попытке фильтрации
This filter does not exist. Did you mean: "id_employee"? The full list is: "id", "id_employee", "id_customer_thread", "ip_address", "message", "file_name", "user_agent", "private", "date_add", "date_upd", "read"
и похоже что id_customer_thread это не id customer
В описание указаны переменные, которые можно использовать.
Вам нужен текст сообщения - "message".
а что делать с message если я не знаю к какому заказу это относится?
10 Июль 2017, 10:50:11
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 185
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
http://forge.prestashop.com/browse/PSCFV-7177
5 лет прошло а никак не сделают
10 Июль 2017, 11:36:43
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Наверное никому не нужно было. Поэтому не сделали прямую связь.
Но как вариант, получить заказ, из него вызять ид клиента, а по ид клиенте уже получать сообщения. Проблема может быть только при множественных заказах клиента, так как нет возможности разделить по ид заказа. А при еденичном заказе должно работать.