Разработка php-скриптов для интеграции Хорошоп и RetailCRM
Необходимо написать 4 скрипта.
Консольные скрипты
Все консольные скрипты что описаны ниже вызывается с параметрами командами вида php scriptname.php -param1=value1 -param2=value2
1. Скрипт подписки на события хорошопа
Консольный скрипт
Принимаемые параметры
login - логин пользователя
password - пароль пользователя
event - название события, принимаемые значения:
order_created - событие срабатывающее при оформлении пользователем заказа либо при создании заказа в админ. панели
user_signup - событие срабатывающее при регистрации пользователя
target_url - ссылка по которой необходимо отправить данные при срабатывании события
Функционал
Получает авторизационный токен https://horoshop.atlassian.net/wiki/spaces/DOCS/pages/25296931
В случае неудачи выводит сообщение ошибки и завершает выполнениеВыполняет запрос подписки на событие https://horoshop.atlassian.net/wiki/spaces/DOCS/pages/25296989
Выводит сообщение ошибки или уведомление об успешном выполнении задачи и (!) идентификатор подписки.
2. Скрипт отписки от события хорошопа
Консольный скрипт
Принимаемые параметры
login - логин пользователя
password - пароль пользователя
id - идентификатор подписки полученный в функции hooks/subscribe (который должен выводить скрипт подписки после выполнения)
target_url - ссылка на которую отправлялись данные по подписке
Функционал
Получает авторизационный токен https://horoshop.atlassian.net/wiki/spaces/DOCS/pages/25296931
В случае неудачи выводит сообщение ошибки и завершает выполнениеВыполняет запрос отписки от события https://horoshop.atlassian.net/wiki/spaces/DOCS/pages/25296991
Выводит сообщение ошибки или уведомление об успешном выполнении задачи
Веб-скрипты
Логирование веб-скриптов
Логи работы веб-скриптов необходимо сохранять в отдельных текстовых файлах в директорию logs размещенную рядом со скриптами.
Путь сохранения ./logs/НазваниеСкрипта_КлючОбращения.log
Значения “название скрипта” и “ключ обращение” указаны в спецификации отдельных скриптов
Необходимо сохранять:
Получаемые данные от вебхука Хорошопа,
Адрес обращения к API RetailCRM и передаваемые ей данные
Ответ API RetailCRM
3. Скрипт обработки регистрации пользователя
Веб-скрипт
URL этого скрипта будет указан как target_url для подписки на событие регистрации пользователя (user_signup)
Функционал
Получает данные согласно документации https://horoshop.atlassian.net/wiki/spaces/DOCS/pages/25297008
Создать пользователя в CRM согласно документации - https://docs.retailcrm.ru/Developers/API/APIVersions/APIv5#post--api-v5-customers-create (метод /api/v5/customers/create)
Как customer[externalId] (Внешний ID клиента) нужно использовать идентификатор пользователя (параметр "id") полученный от хорошопа с текстовым префиксом “hs” (например, для пользователя 1 идентификатор будет равен “hs1”)
Логирование
Название скрипта - user_signup
Ключ обращения - значение параметра параметра "id” полученного от хорошопа
4. Скрипт обработки оформления заказа
Веб-скрипт
URL этого скрипта будет указан как target_url для подписки на событие оформления заказа (order_created)
Функционал
Получает данные согласно документации https://horoshop.atlassian.net/wiki/spaces/DOCS/pages/25296999
Делает запрос по url https://docs.google.com/spreadsheets/d/e/2PACX-1vQySVXD5PxDoAQCvWs-WIOOgBFTHyWb-6txJDV56wo1VG_AccQTSzPv2p9dVXLXvKjdky0g0emapA8h/pub?output=csv и сохраняет полученные данные как конфиг для замены товаров (описана ниже) в заявке. По указаному выше url можно получить содержимое гугл таблицы https://docs.google.com/spreadsheets/d/1q4xuPRMMr5pY_fFEYKX1QNYE7rjKBu56ouz9iBruQtc/edit#gid=0 в формате СSV.
Для всех артикулов из заявки, которые соответствуют значению в первой колонке таблицы замены необходимо произвести замену согласно правилам разбора соответствующей ячейки второй колонки (“замена”):
Формат: “артикул1:кол-во1:цена1,артикул2:кол-во2:цена2”
К примеру в документе есть следующая запись:

Тогда если в заказе поступит товар с артикулом 1210, он будет заменен на: 10 штук товара с артикулом 120 по цене 28, плюс 10 штук товара с артикулом 1940 по цене 28. Товаров в замене может быть любое кол-во больше нуля.
Передает полученные и обработанные данные к CRM согласно документации https://docs.retailcrm.ru/Developers/API/APIVersions/APIv5#post--api-v5-orders-create
Запрос должен обязательно содержать поле order[customer][externalId] созданное как идентификатор пользователя (параметр "id") полученный от хорошопа с текстовым префиксом “hs” (например, для пользователя 1 значение будет равно “hs1”)
При обращении к CRM цены для товаров передаются как initialPrice.
Актуальные фриланс-проекты в категории PHP
Прописать мета данные АЛЬТ при помощи ИИСайт на Laravel , на сайте много изображений, для которых нужно прописать корректные по семантики и релевантные для странице АЛЬТ описание изображения в автоматическом режиме, с возможностью проверки AI и машинное обучение, PHP ∙ 4 часа 56 минут назад ∙ 18 ставок |
Доработка сайта на Ocstore 3
700 UAH
Ocstore 3 Шаблон Upstore Поправить некоторые моменты https://docs.google.com/document/d/1-TmTo3lh_ElFjPMQCGs2sVCsVSzq-V-Z/edit?usp=sharing&ouid=105344407605205919725&rtpof=true&sd=true Ожидаю ваши предложения PHP, Веб-программирование ∙ 8 часов 36 минут назад ∙ 53 ставки |
Нужен разработчик для завершения и интеграции проекта по автоматическому сбору и обработке данных
700 UAH
Основная часть парсера уже реализована. Парсер работает на Windows-среде через Microsoft Edge: сайт имеет антибот-защиту, поэтому сбор данных выполняется не прямыми HTTP-запросами, а через живую браузерную сессию. Скрипты управляют открытой вкладкой Edge через Chrome DevTools… PHP, Веб-программирование ∙ 10 часов 52 минуты назад ∙ 19 ставок |
Обновление плагинов и тем WP сайт putevka.uz«Нужно провести технический аудит WordPress-сайта, проверить актуальность, безопасность и совместимость установленных плагинов и темы. По результатам — предложить легальные варианты обновления, замены устаревших решений или перехода на официально доступные аналоги. Платные… HTML и CSS верстка, PHP ∙ 13 часов 28 минут назад ∙ 33 ставки |
Интеграция блока "Где смотреть" (Laravel / Livewire)Необходимо реализовать интеграцию внешней стриминговой платформы для сайта о фильмах и сериалах на Laravel / Livewire. Что нужно сделать: Реализовать импорт внешнего каталога контента, который обновляется 1 раз в день. Выполнять матчинг контента по IMDb ID и/или TMDB ID. Если… PHP, Веб-программирование ∙ 1 день 3 часа назад ∙ 36 ставок |