Автор Тема: Использование базовых Web Сервисов  (Прочитано 1530 раз)

30 Июнь 2014, 00:29:07
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Делаю интеграцию 1с и PrestaShop через базовый API.
Столкнулся с проблемой выгрузки данных (Post) на сайт.

Прошу тех, кто набил шишки с интеграцией дать рекомендации.



Посылаю Post запрос
Заголовки
Content-Type: text/plain;charset=utf-8
Content-Length:1029
Содержание

<?xml version="1.0" encoding="UTF-8"?>
<prestashop>
<category>
<id>5</id>
<id_parent>4</id_parent>
<active>1</active>
<id_shop_default>1</id_shop_default>
<is_root_category>0</is_root_category>
<position>1</position>
<date_add>2014-04-22 22:48:57</date_add>
<date_upd>2014-04-22 22:48:57</date_upd>
<name>
<language id="1">T-shirts ТЕСТ</language>
<language id="2">T-shirts</language>
</name>
<link_rewrite>
<language id="1">tshirts</language>
<language id="2">tshirts</language>
</link_rewrite>
<description>
<language id="1"></language>
<language id="2"></language>
</description>
<meta_title>
<language id="1">1234</language>
<language id="2">111</language>
</meta_title>
<meta_description>
<language id="1">2345</language>
<language id="2">222</language>
</meta_description>
<meta_keywords>
<language id="1">345</language>
<language id="2">333</language>
</meta_keywords>
<associations>
<categories/>
<products/>
</associations>
</category>
</prestashop>


ОТВЕТ СЕРВЕРА: 400 Bad Request / Неправельный запрос  (Означает, что сервер обнаружил в запросе клиента синтаксическую ошибку.)

ТЕЛО СООБЩЕНИЯ:
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<message><![CDATA[Internal error. To see this error please display the PHP errors.]]></message>
</error>
</errors>
</prestashop>
30 Июнь 2014, 09:42:29
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22318
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В prestashop включено разрешение использовать вебсервис?
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
30 Июнь 2014, 10:53:08
Ответ #2
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop включено разрешение использовать вебсервис?

Банальное уточнение. Конечно включён.
30 Июнь 2014, 12:05:53
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 21024
  • Репутация: +25282/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Начинать лучше с таких банальностей. Так как на форуме 90% вопросов решаются очевидными действиями.
Using the PrestaShop Web Service
Значит можно сразу опускать общие вопросы, как First steps...php5-curl...authentication key и т.д.
В логе ошибок есть что-нибуть?
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Июнь 2014, 13:24:42
Ответ #4
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Начинать лучше с таких банальностей. Так как на форуме 90% вопросов решаются очевидными действиями.
Using the PrestaShop Web Service
Значит можно сразу опускать общие вопросы, как First steps...php5-curl...authentication key и т.д.
В логе ошибок есть что-нибуть?

Лог на сервере выдает набор ошибок в модуле WebService.php, где то 1440 строка.
и пишет ошибка .... на 44, 45, 46, 46 строке XML.
Т.е. пишет 1 блок(4 строки) ошибок, а потом через 2 сек еще такой-же блок.

Пишу по памяти. Так как сейчас отошел от компа.

Интересует:
1. правильно ли я указываю заголовки или неправильно и/или их недостаточно?
2. хоть кто-то имеет позитивный опыт использования API WebCervice PrestaShop?


В догонку.... со страницы
Using the PrestaShop Web Service

POST - Create -INSERT
GET - Retrieve - SELECT
PUT - Update - UPDATE
DELETE - Delete - DELETE

А я делаю запрос POST и хочу получить UPDATE. А надо-бы делать запрос PUT.
Может в этом дело. Вечером проверю, отпишусь.
01 Июль 2014, 00:15:13
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 86543
  • Репутация: +25419/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Лог на сервере выдает набор ошибок в модуле WebService.php, где то 1440 строка.
Ошибка парсера, может где-то опечатка или тег неправильно назван, проверить просто, передавать инфу по 1 узлу.

В справке же написано для UPDATE
Цитировать
Update Resource
URI: http://site/api/category/1
Use Method = "PUT"
content type = "text/xml"
01 Июль 2014, 00:25:55
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 86543
  • Репутация: +25419/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для выяления ошибок
Цитировать
Gestion des erreurs
try {
  // Execution (s'arrête et va dans le bloc catch si une erreur survient)
}
catch {
  // Traitement des erreurs (tenter de rattraper l'erreur ou afficher l'erreur)
}
01 Июль 2014, 01:29:46
Ответ #7
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Исправил запрос на PUT.

Заголовки
Content-type: text/xml
Content-length: 1269


Тело запроса
<?xml version="1.0" encoding="UTF-8"?>
<prestashop>
<category>
<id>5</id>
<id_parent>4</id_parent>
<active>1</active>
<id_shop_default>1</id_shop_default>
<is_root_category>0</is_root_category>
<position>1</position>
<date_add>2014-04-22 22:48:57</date_add>
<date_upd>2014-04-22 22:48:57</date_upd>
<name>
<language id="1">T-shirts ТЕСТ</language>
<language id="2">T-shirts</language>
</name>
<link_rewrite>
<language id="1">tshirts</language>
<language id="2">tshirts</language>
</link_rewrite>
<description>
<language id="1">
<![CDATA[
<p>The must have of your wardrobe, take a look at our different colors,</p>
<p>shapes and style of our collection!</p>
]]>
</language>
<language id="2">
<![CDATA[
<p>The must have of your wardrobe, take a look at our different colors,</p>
<p>shapes and style of our collection!</p>
]]>
</language>
</description>
<meta_title>
<language id="1"></language>
<language id="2"></language>
</meta_title>
<meta_description>
<language id="1"></language>
<language id="2"></language>
</meta_description>
<meta_keywords>
<language id="1"></language>
<language id="2"></language>
</meta_keywords>
<associations>
<categories/>
<products/>
</associations>
</category>
</prestashop>

ОТВЕТ СЕРВЕРА: 413
Request Entity Too Large
Объект запроса слишком велик
( Сервер не будет обрабатывать запрос, потому что его содержание слишком велико.)

Тело ответа сервера
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>413 Request Entity Too Large</title>
</head><body>
<h1>Request Entity Too Large</h1>
The requested resource<br />/webservice/dispatcher.php<br />
does not allow request data with PUT requests, or the amount of data provided in
the request exceeds the capacity limit.
</body></html>
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<message><![CDATA[Internal error. To see this error please display the PHP errors.]]></message>
</error>
</errors>
</prestashop>

Лог сервера Apeche
:1 - V31Q2I3MTH9Z9PG41A7W3SH3LJSVTM5U [01/Jul/2014:00:23:28 +0300] "PUT /api/categories/5 HTTP/1.1" 500 594

Лог ошибок сервера Apeche
[Tue Jul 01 00:23:29 2014] [error] [client ::1] Invalid Content-Length

В файл httpd.conf
добавил

LimitRequestFields 50
LimitRequestFieldSize 8190
LimitRequestLine  8190

LimitXMLRequestBody 1073741824
LimitRequestBody 1073741824


Испробовал уже почти все и по всякому.
Очень нужна помощь.
01 Июль 2014, 14:28:55
Ответ #8
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сегодня разместил PrestaShop 1.6 на реальный сервер.
Все отлично работает. Никаких ошибок.
02 Июль 2014, 09:56:51
Ответ #9
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 21024
  • Репутация: +25282/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Начинать лучше с таких банальностей. Так как на форуме 90% вопросов решаются очевидными действиями.
Using the PrestaShop Web Service
Значит можно сразу опускать общие вопросы, как First steps...php5-curl...authentication key и т.д.
В логе ошибок есть что-нибуть?
Поэтому начинать нужно с банальностей, с конф. сервера и сайта.
max_execution_time
upload_max_filesize
post_max_size
... etc
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
20 Февраль 2017, 13:46:11
Ответ #10
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сегодня разместил PrestaShop 1.6 на реальный сервер.
Все отлично работает. Никаких ошибок.
Расскажите, как у вас всё сейчас живёт-работает?
Какой функционал реализовали?
Есть какие-то замечания?
Буду очень благодарен за ваши комментарии.
22 Февраль 2017, 21:56:47
Ответ #11
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Расскажите, как у вас всё сейчас живёт-работает?

Ничего не живет, боевого сайта нет.

Цитировать
Какой функционал реализовали?

Я реализовывал связь между 1с(УТ2.3) и PrestaShop(1.6) через стандартный API PrestaShop.
Связь эта реализована. Но пришлось полностью повторить объектную модель PrestaShop в 1С.
Это усложняет саму работу с сайтом. В таком виде разработка заморожена.

Цитировать
Есть какие-то замечания?
Буду очень благодарен за ваши комментарии.

Какие замечания и комментарии? Что интересует спрашивайте.

ps. Делал для себя и в свободное время. В планах сделать упрощенную интеграцию по типу  битриксовской.