Перейти к содержанию

api.oboi.ru v3.017

https://api.oboi.ru/v3/

Note

Заказы синхронизируются с сайта в api - эту идею нужно развить. Кто обрабатывает зачем и почему. Что делать с оплатами онлайн и пр. вопросы. Запись разговора с 121 на Чиграй Марию от 2022-12-27

Разрабатывалась для oboi.ru по заказу отдела маркетинга. Добавлена возможность работать с остатками по городам. Заложена возможность использовать беком для карточки товара на сайте oboi.ru

Общая информация

Изменения

  • остатки из 1C розница
  • остатки из 1C опт
  • справочник [Магазины]
  • отбор по FIAS

Умная фильтрация

отбор данных с помощью фильтра
- ничего не указывай в запросе и ты получишь всю информацию
- придумывай любую комбинацию параметров и она сработает

{
    "filter": {
        "category": "Обои",
        "name": ["Грация", "Эвелина"]
    }
}

Аутентификация

  • аутентификация добавлением в Header apiKey: UUID
  • ключи делятся на два типа:
    • client -r
    • admin -r/w

Статусы ответов

Status Description
200 все прекрасно
401 ошибка аутентификации. apiKey отсутствует или не разрешен
500 непредусмотренная ошибка на сервере. разработчику стыдно



API

goods

GET /category

hmmm
{
    "response": [
        {
            "_id": "5c763ff3ec5cd391e59d5ad4",
            "description": "Обои преображают Вас",
            "imgBackground": "",
            "imgLogo": "",
            "name": "Обои",
            "vendor": [
                "Victoria Stenova",
                "Startdeco",
                "Wallberry",
                "Freedom",
                "Bravo",
                "Seela",
                "Parrot",
                "Rose"
            ]
        },


POST /vendor

{
    "response": [
        {
            "_id": "5c88fb36ec5cd391e59d8128",
            "category": "Обои",
            "collection": [
                "Amarona",
                "Bartolomeo",
                "Gabriella",
                "Stella",
                "WAVE",
                "Paris",
                "SAMANTA",
                "ARIEL",
                "POLINA",
                "MAGDALENA",
                "BOND",
                "NATALI",
                "VENEZIA"
            ],
            "description": "StartDeco – это экслюзивная линейка обоев,
                            произведенная компанией РЕГИОНПРОЕКТ и
                            ведущей российской интерьерной дизайн –
                            студией Victoria Stenova.Особенностью этих
                            обоев является высочайшее качество материалов,
                            трендовые дизайны, популярные цвета – и все
                            это по самой привлекательной цене в данном
                            сегменте обоев.",
            "imgLogo": {},
            "name": "Startdeco",
            "youtube": ""
        },
{
    "filter": {
        "category": ["Обои", "Клей"]}
}


POST /collection

{
    "response": [
        {
            "_id": "5d2dfc03bd14183801aada38",
            "category": "Обои",
            "description": "",
            "imgBackground": {},
            "name": "Грация",
            "product": [
                "81215BR42",
                "81214BR44",
                "81215BR44",
                "81214BR43",
                "81215BR43",
                "81214BR42"
            ],
            "vendor": "Bravo",
            "youtube": ""
        },
{
    "filter": {
        "category": "Обои",
        "name": ["Грация", "Эвелина"]
    }
}


POST /product

{
    "response": [
        {
            "_id": "639c5b951d53fb8411f4444b",
            "article": "283401",
            "bestseller": false,
            "category": "Обои",
            "collection": "LAVA",
            "color": [
                "Бежевые",
                "Белые",
                "Серые"
            ],
            "country": "Россия",
            "covering": "Винил",
            "damage": "Устойчивые к повреждениям",
            "date_create": "2022-12-16 14:50:45.067000",
            "date_update": "2022-12-16 14:50:45.067000",
            "density": 336.0,
            "design": "Абстракция",
            "docking": "Прямая (стык в стык)",
            "ecoclean": false,
            "ecosafe": false,
            "embossing": "",
            "fire": "",
            "foundation": "Флизелин",
            "glue": "На стену",
            "health": true,
            "img_extra": {
                "s230x306": "https://251317.selcdn.ru/api2/victoriastenova/283401/230x306/extra.jpg?updtime=1671198386.156699",
                "s300x300": "https://251317.selcdn.ru/api2/victoriastenova/283401/300x300/extra.jpg?updtime=1671198386.156699",
                "s600x400": "https://251317.selcdn.ru/api2/victoriastenova/283401/600x400/extra.jpg?updtime=1671198386.156699",
                "s800x600": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x600/extra.jpg?updtime=1671198386.156699",
                "s800x800": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x800/extra.jpg?updtime=1671198386.156699"
            },
            "img_frontal": {
                "s230x306": "https://251317.selcdn.ru/api2/victoriastenova/283401/230x306/frontal.jpg?updtime=1671198378.584804",
                "s300x300": "https://251317.selcdn.ru/api2/victoriastenova/283401/300x300/frontal.jpg?updtime=1671198378.584804",
                "s600x400": "https://251317.selcdn.ru/api2/victoriastenova/283401/600x400/frontal.jpg?updtime=1671198378.584804",
                "s800x600": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x600/frontal.jpg?updtime=1671198378.584804",
                "s800x800": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x800/frontal.jpg?updtime=1671198378.584804"
            },
            "img_interior": {
                "s1920x800": "https://251317.selcdn.ru/api2/victoriastenova/283401/1920x800/interior.jpg?updtime=1671198780.170006",
                "s230x306": "https://251317.selcdn.ru/api2/victoriastenova/283401/230x306/interior.jpg?updtime=1671198780.170006",
                "s800x800": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x800/interior.jpg?updtime=1671198780.170006"
            },
            "img_interior1": {},
            "img_macro": {
                "s300x300": "https://251317.selcdn.ru/api2/victoriastenova/283401/300x300/macro.jpg?updtime=1671198389.95288",
                "s800x600": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x600/macro.jpg?updtime=1671198389.95288",
                "s800x800": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x800/macro.jpg?updtime=1671198389.95288"
            },
            "img_macro1": {
                "s800x800": "https://251317.selcdn.ru/api2/victoriastenova/283401/800x800/macro1.jpg?updtime=1671198395.285939"
            },
            "img_macro2": {},
            "img_raport": {},
            "img_roll": {},
            "light": "Хорошая",
            "moisture": "Можно мыть",
            "new": true,
            "packheight": 106.0,
            "packlength": 1050.0,
            "packwidth": 106.0,
            "properties": [
                "Можно мыть",
                "Устойчивы к повреждениям",
                "Клей наносится на стену",
                "Скрывают неровности стен"
            ],
            "raport": 64.0,
            "rooms": [
                "Гостиная / Зал",
                "Прихожая",
                "Спальня",
                "Кухня",
                "Детская"
            ],
            "sample": "283401_образец",
            "size": "1,06×10,05",
            "size_draw": "Средний",
            "sloiki": "",
            "styles": [
                "Модерн"
            ],
            "surface": "Для стен",
            "technique": "Горячее тиснение",
            "texture": "С тиснением",
            "vendor": "Victoria Stenova",
            "visual": "",
            "volume": 0.008333,
            "weight": 2.8,
            "youtube": ""
        }
    ]
}
{
    "filter": {
        "article": [
        "283401"
        ]
    }
}


POST /balance

Bug

Метод выдает пустые цены

{
    "response": [
        {
            "article": "283411",
            "collection": "LAVA",
            "count_stock": 100,
            "price_full": null, "price_recomend": null,
            "price_sample": null,
            "price_stock": null,
            "product_id": "639c69bd1d53fb8411f47f81",
            "stock": [
                {
                    "count": 100,
                    "name": "370@tapeti"
                }
            ],
            "store": [
                {
                    "count": 20,
                    "name": "331@tapeti",
                    "price": null
                }
            ],
            "vendor": "Victoria Stenova"
        }
    ]
}

Bug

request.get('filter').get('city_fias_id')
"""
не равен 'citi_fias_id' в магазине
равен другому полю 'fias_id' (а это уже точный адрес, а не город)
"""
{
    "response": [
        {
            "article": "283411",
            "collection": "LAVA",
            "count_stock": 16,
            "price_full": 2200,
            "price_recomend": 2000,
            "price_sample": null,
            "price_stock": 2000,
            "product_id": "639c69bd1d53fb8411f47f81",
            "stock": [
                {
                    "count": 16,
                    "name": "370@tapeti"
                }
            ],
            "store": [
                {
                    "count": 20,
                    "name": "331@tapeti",
                    "price": 2300
                }
            ],
            "vendor": "Victoria Stenova"
        }
    ]
}
{
    "filter": {
        "collection": ["LAVA"],
        "city_fias_id": "495c4450-21e1-4b70-9292-f7e7e280b267"
    }
}

service

GET /updateallobjects

обновляет объекты из базы данных
⚠ не защищен - нужно закрыть
⚠ при регулярном запуске падает. Память течет.