У процесі замовлення послуги на платформі Zomro необхідно дотримуватись кількох важливих етапів: додавання послуги в кошик, активація промокоду (за наявності) та безпосередньо покупка послуги. Ці кроки дозволяють ефективно використовувати функціонал промокодів під час замовлення. Для здійснення замовлення необхідно передавати певні параметри послуги, деталі про які представлені нижче.
Процес створення замовлення складається з наступних етапів:
- Додавання послуги в кошик
- Активація промокоду
- Покупка послуги з кошика
Використання саме таких етапів покупки дозволяє використовувати промокод під час замовлення.
Для створення замовлення потрібно передавати параметри послуги, які нас цікавлять. Як отримати доступні параметри, описано тут .
Структура запиту для здійснення замовлення послуги Cloud VPS Zomro:
URL:
https://api.zomro.com/
Метод: POST
Тіло запиту (Form-data):
Параметр | Приклад значення | Обов'язковий параметр | Опис значення |
func | v2.instances.order.param | Так | Функція замовлення послуги |
auth | 21fc199...c43f71 | Ні | Токен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описано тут |
out | json | Ні | В якому форматі очікувати відповідь від API |
sok | ok | Так | Підтвердження операції |
order_period | -50 | Так | Для послуг cloudvps використовується щоденне списання. Для здійснення покупки послуги використовуйте значення: -50, 1, 3, 6, 12. -50 - щоденне списання, 1 - замовлення послуги на 1 місяць, 3 - замовлення на 3 місяці і так далі. |
licence_agreement | on | Так | Відповідає згоді з ліцензією на використання |
pricelist | 6740 | Так | ID тарифу, який потрібно замовити. ID тарифу можна отримати з функції v2.instances.order.pricelist. Докладніше, як користуватися, описано тут |
order_count | 1 | Так | Кількість послуг, які можна замовити в одному запиті |
force_use_new_cart | on | Так | Додавання послуги в нову корзину billmanager |
instances_ssh_keys | 490 | Ні | ID SSH ключа, який потрібно додати до сервера після установки ОС. Не потрібно передавати, якщо параметр use_ssh_key=off |
password | Mypassword1 | Ні | Пароль доступу до сервера. У випадку з Linux - пароль для користувача root. У випадку Windows - пароль користувача Administrator. Не потрібно передавати, якщо параметр use_ssh_key=on. Також, пароль повинен містити хоча б 1 символ великої англійської літери, 1 цифровий символ, мінімальна кількість символів 8. |
servername | MyServer | Ні | Власна назва сервера |
instances_os | 18d0ee2e-4d57-4f40-9b56-03c1773b5831 | Так | UID операційної системи, яку потрібно встановити. UID операційної системи можна отримати з функції v2.instances.order.pricelist. Докладніше, як користуватися, описано тут |
use_ssh_key | off | Ні | Використовувати ssh ключ чи ні. Може приймати значення off або on. |
addon_xxx | 260 | Ні | Додаткові параметри послуги. Може бути як RAM, кількість CPU, розмір диска, обсяг трафіку, тип IPv4 або IPv6. Доступні параметри залежать від тарифу. Дізнатися, які опції доступні, можна в прикладі, описаному тут |
datacenter | 13 | Так | Номер дата центру. Дізнатися, які опції доступні, можна в прикладі, описаному тут |
backups_schedule | on | Ні | Створення розкладу бекапів, у час створення резервної копії |
backups_schedule_name | MyBackup | Так, якщо використовується значення backups_schedule | Назва розкладу на створення резервної копії |
backups_schedule_rotation_days | 1,2,3,4,5,6,0 | Так, якщо використовується значення backups_schedule | В які дні створювати резервні копії. Початок тижня починається з неділі, і має ID - 0. Відповідно понеділок має значення 1. Інші дні тижня - відповідні значення. |
backups_schedule_rotation_time | 04:20 | Так, якщо використовується значення backups_schedule | В який час створити резервну копію |
Приклад замовлення послуги
Для прикладу, використовуємо тариф Cloud Essential з ОС Linux Ubuntu 20.04, сервер тільки з IPv6 і з використанням пароля користувача root.
URL:
https://api.zomro.com/
Метод: POST
Тіло запиту (Form-data):
Параметр | Значення |
func | v2.instances.order.param |
auth | 21fc199...c43f71 |
out | json |
sok | ok |
order_period | -50 |
licence_agreement | on |
pricelist | 6740 |
order_count | 1 |
password | MyPassword1 |
servername | MyServer-1 |
instances_os | 479c96f1-ccc6-47a2-952c-c9e3bbdc8d07 |
use_ssh_key | off |
addon_6746 | 260 |
force_use_new_cart | on |
datacenter | 13 |
Ось приклад запиту, який можна виконати з консолі:
curl --location 'https://api.zomro.com/' \
--form 'func="v2.instances.order.param"' \
--form 'auth="211a9ac6309a9f0c340bdebf"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'order_period="-50"' \
--form 'licence_agreement="on"' \
--form 'use_ssh_key="off"' \
--form 'pricelist="6740"' \
--form 'servername="MyServer-1"' \
--form 'password="Mypassword1"' \
--form 'instances_os="479c96f1-ccc6-47a2-952c-c9e3bbdc8d07"' \
--form 'order_count="1"' \
--form 'addon_6746="260"' \
--form 'datacenter="13"' \
--form 'force_use_new_cart="on"'
Після виконання запиту, нам потрібні дані, які знаходяться в наступній вкладеності:
doc
Ось значення, які отримані в результаті виконання запиту:
...,
"lineitem.id": {
"$": "1818"
},
...
Дане значення "1818", що є номером замовлення в кошику, потрібно для подальшої активації послуги. Запам'ятаємо його для подальшого використання.
Після виконання цього запиту, в кошику також можна побачити наявний товар.
Наступним етапом буде активація промокоду, якщо такий присутній. Даний етап не є обов'язковим, але якщо клієнт має промокод, було б чудово мати можливість його використовувати.
URL:
https://api.zomro.com/
Метод: POST
Тіло запиту (Form-data):
Параметр | Приклад значення | Обов'язковий параметр | Опис значення |
func | cart | Так | Назва функції для роботи з кошиком |
auth | 21fc199...c43f71 | Ні | Токен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описано тут |
out | json | Ні | В якому форматі очікувати відповідь від API |
sok | ok | Так | Підтвердження операції |
promocode | PROMO_2024 | Так | Промокод, який планується використовувати. |
clicked_button | apply_promocode | Так | Підтвердження активації промокоду |
Ось приклад запиту, який можна виконати з консолі:
curl --location 'https://api.zomro.com/' \
--form 'out="json"' \
--form 'auth="46ffb314c8d46ec1f2f1df16"' \
--form 'func="cart"' \
--form 'promocode="PROMO_2024"' \
--form 'sok="ok"' \
--form 'clicked_button="apply_promocode"'
Після виконання цього запиту, в кошику можна побачити результат активації промокоду:
На зображенні видно, що промокод PROMO_2024 успішно активований.
PS: Насправді, промокод PROMO_2024, у вашому випадку, не є дійсним, він був створений тільки для написання цієї інструкції.
Наступним етапом буде активація послуги.
У випадку, якщо промокод не надає 100% суму знижки, потрібно додатково оплатити послугу з особистого кабінету.
Розглянемо ситуацію, якщо промокод не покриває 100% вартість послуги. Запит API буде виглядати наступним чином:
URL:
https://api.zomro.com/
Метод: POST
Тіло запиту (Form-data):
Параметр | Приклад значення | Обов'язковий параметр | Опис значення |
func | cartorder.create.confirm | Так | Функція для роботи з кошиком |
auth | 21fc199...c43f71 | Ні | Токен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описано тут |
out | json | Ні | В якому форматі очікувати відповідь від API |
sok | ok | Так | Підтвердження операції |
elid | 1818 | Так | ID замовлення. Це значення отримано при додаванні послуги в кошик |
paymethod_id | 0 | Так | ID методу оплати. Значення 0 є стандартним і відповідає способу оплати замовлення за рахунок коштів з особистого рахунку |
Ось приклад запиту, який можна виконати з консолі:
curl --location 'https://api.zomro.com/' \
--form 'out="json"' \
--form 'auth="cd63c7832f0ae5947c49ac06"' \
--form 'func="cartorder.create.confirm"' \
--form 'sok="ok"' \
--form 'elid="1818"' \
--form 'paymethod_id="0"'
Після виконання цього запиту, в кошику даної послуги не повинно бути, в загальному списку послуг CloudVPS бачимо нашу послугу в статусі "Активація в процесі":
Під час процесу активації послуги додаткові дії з послугою відсутні. Після активації послуги, у нас відкриється список доступних дій, для управління послугами, такими як: Start, Stop, Delete, Resize, та інші.
Також пропонуємо вивчити статті, які можуть бути корисними для взаємодії з продуктами Cloud VPS за допомогою API:
- API - Отримання інформації про доступні тарифи та їх параметри
- API - Операція Start & Stop
- API - Операція Reboot
- API - Операція Rebuild
- API - Операція Delete
- API - Взаємодія з Image
- API - Взаємодія з Backup Schedule
- API - Взаємодія з Rescue
- API - Взаємодія з Backup
- API - Взаємодія з Snapshots
- API - Взаємодія з Boot From ISO