Skip to content

Список возможных ошибок ( не для публикации)

Сценарии появления ошибок на основе тестирования запросов с разными параметрами.

cart

СценарийПример запросаКод ошибки
HTTP Method Validation
Использование не-POST методаGET /push?event=cart&items[][id]=123405 Method Not Allowed
Authentication & Shop Validation
Запрос без shop_idPOST /push (без параметров)401 Unauthorized
Пустой shop_idPOST /push?shop_id=&event=cart&items[][id]=123422 Unprocessable
Некорректный формат shop_id (не 30 hex)POST /push?shop_id=INVALID_ID&event=cart&items[][id]=123422 Unprocessable
Несуществующий shop_idPOST /push?shop_id=000000000000000000000000000000&event=cart&items[][id]=123404 Not Found
Device Validation
Корректный shop_id, но без didPOST /push?shop_id={valid}&event=cart&items[][id]=123401 Unauthorized
Пустой did (трактуется как отсутствие)POST /push?shop_id={valid}&did=&event=cart&items[][id]=123401 Unauthorized
Некорректный формат didPOST /push?shop_id={valid}&did=INVALID_ID&event=cart&items[][id]=123422 Unprocessable
Несуществующий didPOST /push?shop_id={valid}&did=0000000000&event=cart&items[][id]=123404 Not Found
Shop Status Validation
Магазин неактивен (non-active)POST /push?shop_id={non_active}&did={valid}&event=cart&items[][id]=123403 Access Denied
Магазин ограничен (restricted)POST /push?shop_id={restricted}&did={valid}&event=cart&items[][id]=123403 Access Denied
У магазина истекла оплатаPOST /push?shop_id={unpaid}&did={valid}&event=cart&items[][id]=123403 Access Denied
Required Parameters Validation
Отсутствует параметр eventPOST /push?items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Пустой параметр eventPOST /push?event=&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Некорректное значение event (не 'cart')POST /push?event=INVALID&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Items Validation
Отсутствует параметр itemsPOST /push?event=cart&shop_id={valid}&did={valid}422 Unprocessable
Пустой items (не массив)POST /push?event=cart&items=&shop_id={valid}&did={valid}422 Unprocessable
Пустой массив items (добавление)POST /push (JSON: {"event": "cart", "items": [], ...})422 Unprocessable
Пустой массив items c full_cart: truePOST /push (JSON: {"event": "cart", "full_cart": true, "items": [], ...})200 OK
Все items отфильтрованы из-за некорректного IDPOST /push (JSON: {"event": "cart", "items": [{"id": "Hello\\World"}], ...})422 Unprocessable
Optional Parameters Validation
Пустой streamPOST /push?event=cart&items[][id]=123&stream=&shop_id={valid}&did={valid}422 Unprocessable
stream не строка (массив)POST /push?event=cart&items[][id]=123&stream[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой sidPOST /push?event=cart&items[][id]=123&sid=&shop_id={valid}&did={valid}422 Unprocessable
sid не строкаPOST /push?event=cart&items[][id]=123&sid[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой refererPOST /push?event=cart&items[][id]=123&referer=&shop_id={valid}&did={valid}422 Unprocessable
referer не строкаPOST /push?event=cart&items[][id]=123&referer[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой segmentPOST /push?event=cart&items[][id]=123&segment=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный segment (не 'A' или 'B')POST /push?event=cart&items[][id]=123&segment=C&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_byPOST /push?event=cart&items[][id]=123&recommended_by=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный recommended_byPOST /push?event=cart&items[][id]=123&recommended_by=INVALID&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_codePOST /push?event=cart&items[][id]=123&recommended_code=&shop_id={valid}&did={valid}422 Unprocessable
Пустой source (строка)POST /push?event=cart&items[][id]=123&source=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный source (не JSON)POST /push?event=cart&items[][id]=123&source=not-json&shop_id={valid}&did={valid}422 Unprocessable
Item Amount/Quantity Logic
items.amount: -1 (ниже минимума)POST /push (JSON: {"items": [{"id": "x", "amount": -1}], ...})200 OK (amount становится 1)
items.amount: 1001 (выше максимума)POST /push (JSON: {"items": [{"id": "x", "amount": 1001}], ...})200 OK (amount становится 1000)
items.quantity: -1 (синоним amount)POST /push (JSON: {"items": [{"id": "x", "quantity": -1}], ...})200 OK (amount становится 1)
Item Price Logic
items.price: -1 (отрицательное число)POST /push (JSON: {"items": [{"id": "x", "price": -1}], ...})200 OK (поле price отсутствует)
items.price: -0.1 (отрицательный float)POST /push (JSON: {"items": [{"id": "x", "price": -0.1}], ...})200 OK (поле price отсутствует)
items.price: '-666' (отрицательная строка)POST /push (JSON: {"items": [{"id": "x", "price": "-666"}], ...})200 OK (поле price отсутствует)
items.price: 'asdasd' (не число)POST /push (JSON: {"items": [{"id": "x", "price": "asdasd"}], ...})200 OK (поле price отсутствует)
Item Other Fields Logic
items.line_id: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "line_id": ""}], ...})200 OK (поле line_id отсутствует)
items.fashion_size: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "fashion_size": ""}], ...})200 OK (поле fashion_size отсутствует)
Пустой items.idPOST /push (JSON: {"items": [{"id": ""}, {"id": "valid"}], ...})200 OK (пустой ID фильтруется)
Слишком длинный items.idPOST /push (JSON: {"items": [{"id": "aaaa...(>255 chars)"}, ...]})200 OK (длинный ID фильтруется)

wish

СценарийПример запросаКод ошибки
HTTP Method Validation
Использование не-POST методаGET /push?event=wish&items[][id]=123405 Method Not Allowed
Authentication & Shop Validation
Запрос без shop_idPOST /push (без параметров)401 Unauthorized
Пустой shop_idPOST /push?shop_id=&event=wish&items[][id]=123422 Unprocessable
Некорректный формат shop_id (не 30 hex)POST /push?shop_id=INVALID_ID&event=wish&items[][id]=123422 Unprocessable
Несуществующий shop_idPOST /push?shop_id=000000000000000000000000000000&event=wish&items[][id]=123404 Not Found
Device Validation
Корректный shop_id, но без didPOST /push?shop_id={valid}&event=wish&items[][id]=123401 Unauthorized
Пустой did (трактуется как отсутствие)POST /push?shop_id={valid}&did=&event=wish&items[][id]=123401 Unauthorized
Некорректный формат didPOST /push?shop_id={valid}&did=INVALID_ID&event=wish&items[][id]=123422 Unprocessable
Несуществующий didPOST /push?shop_id={valid}&did=0000000000&event=wish&items[][id]=123404 Not Found
Shop Status Validation
Магазин неактивен (non-active)POST /push?shop_id={non_active}&did={valid}&event=wish&items[][id]=123403 Access Denied
Магазин ограничен (restricted)POST /push?shop_id={restricted}&did={valid}&event=wish&items[][id]=123403 Access Denied
У магазина истекла оплатаPOST /push?shop_id={unpaid}&did={valid}&event=wish&items[][id]=123403 Access Denied
Required Parameters Validation
Отсутствует параметр eventPOST /push?items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Пустой параметр eventPOST /push?event=&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Некорректное значение event (не 'wish')POST /push?event=INVALID&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Items Validation
Отсутствует параметр itemsPOST /push?event=wish&shop_id={valid}&did={valid}422 Unprocessable
Пустой items (не массив)POST /push?event=wish&items=&shop_id={valid}&did={valid}422 Unprocessable
Пустой массив items (добавление)POST /push (JSON: {"event": "wish", "items": [], ...})422 Unprocessable
Пустой массив items c full_wish: truePOST /push (JSON: {"event": "wish", "full_wish": true, "items": [], ...})200 OK
Все items отфильтрованы из-за некорректного IDPOST /push (JSON: {"event": "wish", "items": [{"id": "Hello\\World"}], ...})422 Unprocessable
Optional Parameters Validation
Пустой streamPOST /push?event=wish&items[][id]=123&stream=&shop_id={valid}&did={valid}422 Unprocessable
stream не строка (массив)POST /push?event=wish&items[][id]=123&stream[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой sidPOST /push?event=wish&items[][id]=123&sid=&shop_id={valid}&did={valid}422 Unprocessable
sid не строкаPOST /push?event=wish&items[][id]=123&sid[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой refererPOST /push?event=wish&items[][id]=123&referer=&shop_id={valid}&did={valid}422 Unprocessable
referer не строкаPOST /push?event=wish&items[][id]=123&referer[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой segmentPOST /push?event=wish&items[][id]=123&segment=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный segment (не 'A' или 'B')POST /push?event=wish&items[][id]=123&segment=C&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_byPOST /push?event=wish&items[][id]=123&recommended_by=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный recommended_byPOST /push?event=wish&items[][id]=123&recommended_by=INVALID&shop_id={valid}&did={valid}422 Unprocessable
recommended_by не строка (массив)POST /push?event=wish&items[][id]=123&recommended_by[]=dynamic&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_codePOST /push?event=wish&items[][id]=123&recommended_code=&shop_id={valid}&did={valid}422 Unprocessable
recommended_code не строкаPOST /push?event=wish&items[][id]=123&recommended_code[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой source (строка)POST /push?event=wish&items[][id]=123&source=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный source (не JSON)POST /push?event=wish&items[][id]=123&source=not-json&shop_id={valid}&did={valid}422 Unprocessable
Source Logic
Корректный JSON в source (строка)POST /push (JSON: {"event": "wish", "source": "{\"code\": \"abc\", \"from\": \"dynamic\"}", ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Корректный объект в sourcePOST /push (JSON: {"event": "wish", "source": {"code": "abc", "from": "dynamic"}, ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Некорректный source.fromPOST /push (JSON: {"source": "{\"code\": \"abc\", \"from\": \"example\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.from в JSONPOST /push (JSON: {"source": "{\"code\": \"abc\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.code в JSONPOST /push (JSON: {"source": "{\"from\": \"dynamic\"}"})200 OK (source игнорируется, поля null)
Item Amount/Quantity Logic
items.amount: -1 (ниже минимума)POST /push (JSON: {"items": [{"id": "x", "amount": -1}], ...})200 OK (amount становится 1)
items.amount: 1001 (выше максимума)POST /push (JSON: {"items": [{"id": "x", "amount": 1001}], ...})200 OK (amount становится 1000)
items.quantity: -1 (синоним amount)POST /push (JSON: {"items": [{"id": "x", "quantity": -1}], ...})200 OK (amount становится 1)
Item Price Logic
items.price: -1 (отрицательное число)POST /push (JSON: {"items": [{"id": "x", "price": -1}], ...})200 OK (поле price отсутствует)
items.price: -0.1 (отрицательный float)POST /push (JSON: {"items": [{"id": "x", "price": -0.1}], ...})200 OK (поле price отсутствует)
items.price: '-666' (отрицательная строка)POST /push (JSON: {"items": [{"id": "x", "price": "-666"}], ...})200 OK (поле price отсутствует)
items.price: 'asdasd' (не число)POST /push (JSON: {"items": [{"id": "x", "price": "asdasd"}], ...})200 OK (поле price отсутствует)
Item Other Fields Logic
items.line_id: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "line_id": ""}], ...})200 OK (поле line_id отсутствует)
items.fashion_size: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "fashion_size": ""}], ...})200 OK (поле fashion_size отсутствует)
Пустой items.idPOST /push (JSON: {"items": [{"id": ""}, {"id": "valid"}], ...})200 OK (пустой ID фильтруется)
Слишком длинный items.idPOST /push (JSON: {"items": [{"id": "aaaa...(>255 chars)"}, ...]})200 OK (длинный ID фильтруется)
Successful Tracking
Трекинг добавления одного товара в избранноеPOST /push?event=wish&stream=test&items[][id]=123&shop_id={valid}&did={valid}200 OK
Трекинг добавления нескольких товаров в избранноеPOST /push (JSON: {"event": "wish", "items": [{"id": "first"}, {"id": "second"}], ...})200 OK
Трекинг с full_wish=true (замена всего списка)POST /push (JSON: {"event": "wish", "full_wish": true, "items": [{"id": "item_1"}, {"id": "item_2"}], ...})200 OK
Трекинг с некорректным типом full_wish (строка "yes")POST /push (JSON: {"event": "wish", "full_wish": "yes", ...})200 OK (кастуется в true)
Трекинг со всеми опциональными параметрамиPOST /push (JSON: {"event": "wish", "stream": "test", "sid": "test-session-id", "segment": "A", "referer": "https://example.com", "recommended_by": "dynamic", "recommended_code": "abc123", ...})200 OK

purchase

СценарийПример запросаКод ошибки
HTTP Method Validation
Использование не-POST методаGET /push?event=purchase&items[][id]=123405 Method Not Allowed
Authentication & Shop Validation
Запрос без shop_idPOST /push (без параметров)401 Unauthorized
Пустой shop_idPOST /push?shop_id=&event=purchase&items[][id]=123422 Unprocessable
Некорректный формат shop_id (не 30 hex)POST /push?shop_id=INVALID_ID&event=purchase&items[][id]=123422 Unprocessable
Несуществующий shop_idPOST /push?shop_id=000000000000000000000000000000&event=purchase&items[][id]=123404 Not Found
Device Validation
Корректный shop_id, но без didPOST /push?shop_id={valid}&event=purchase&items[][id]=123401 Unauthorized
Пустой did (трактуется как отсутствие)POST /push?shop_id={valid}&did=&event=purchase&items[][id]=123401 Unauthorized
Некорректный формат didPOST /push?shop_id={valid}&did=INVALID_ID&event=purchase&items[][id]=123422 Unprocessable
Несуществующий didPOST /push?shop_id={valid}&did=0000000000&event=purchase&items[][id]=123404 Not Found
Shop Status Validation
Магазин неактивен (non-active)POST /push?shop_id={non_active}&did={valid}&event=purchase&items[][id]=123403 Access Denied
Магазин ограничен (restricted)POST /push?shop_id={restricted}&did={valid}&event=purchase&items[][id]=123403 Access Denied
У магазина истекла оплатаPOST /push?shop_id={unpaid}&did={valid}&event=purchase&items[][id]=123403 Access Denied
Required Parameters Validation
Отсутствует параметр eventPOST /push?items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Пустой параметр eventPOST /push?event=&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Некорректное значение event (не 'purchase')POST /push?event=INVALID&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Items Validation
Отсутствует параметр itemsPOST /push?event=purchase&shop_id={valid}&did={valid}422 Unprocessable
Пустой items (не массив)POST /push?event=purchase&items=&shop_id={valid}&did={valid}422 Unprocessable
Пустой массив itemsPOST /push (JSON: {"event": "purchase", "items": [], ...})422 Unprocessable
Все items отфильтрованы из-за некорректного IDPOST /push (JSON: {"event": "purchase", "items": [{"id": "Hello\\World"}], ...})422 Unprocessable
Optional Parameters Validation
Пустой streamPOST /push?event=purchase&items[][id]=123&stream=&shop_id={valid}&did={valid}422 Unprocessable
stream не строка (массив)POST /push?event=purchase&items[][id]=123&stream[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой sidPOST /push?event=purchase&items[][id]=123&sid=&shop_id={valid}&did={valid}422 Unprocessable
sid не строкаPOST /push?event=purchase&items[][id]=123&sid[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой refererPOST /push?event=purchase&items[][id]=123&referer=&shop_id={valid}&did={valid}422 Unprocessable
referer не строкаPOST /push?event=purchase&items[][id]=123&referer[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой segmentPOST /push?event=purchase&items[][id]=123&segment=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный segment (не 'A' или 'B')POST /push?event=purchase&items[][id]=123&segment=C&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_byPOST /push?event=purchase&items[][id]=123&recommended_by=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный recommended_byPOST /push?event=purchase&items[][id]=123&recommended_by=INVALID&shop_id={valid}&did={valid}422 Unprocessable
recommended_by не строка (массив)POST /push?event=purchase&items[][id]=123&recommended_by[]=dynamic&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_codePOST /push?event=purchase&items[][id]=123&recommended_code=&shop_id={valid}&did={valid}422 Unprocessable
recommended_code не строкаPOST /push?event=purchase&items[][id]=123&recommended_code[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой source (строка)POST /push?event=purchase&items[][id]=123&source=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный source (не JSON)POST /push?event=purchase&items[][id]=123&source=not-json&shop_id={valid}&did={valid}422 Unprocessable
Order Details Validation
Пустой order_idPOST /push (JSON: {"event": "purchase", "order_id": "", ...})200 OK
Пустой delivery_typePOST /push (JSON: {"event": "purchase", "delivery_type": "", ...})200 OK
Пустой payment_typePOST /push (JSON: {"event": "purchase", "payment_type": "", ...})200 OK
Некорректный order_id (256 символов)POST /push (JSON: {"event": "purchase", "order_id": "256_chars_string...", ...})422 Unprocessable
Source Logic
Корректный JSON в source (строка)POST /push (JSON: {"event": "purchase", "source": "{\"code\": \"abc\", \"from\": \"dynamic\"}", ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Корректный объект в sourcePOST /push (JSON: {"event": "purchase", "source": {"code": "abc", "from": "dynamic"}, ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Некорректный source.fromPOST /push (JSON: {"source": "{\"code\": \"abc\", \"from\": \"example\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.from в JSONPOST /push (JSON: {"source": "{\"code\": \"abc\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.code в JSONPOST /push (JSON: {"source": "{\"from\": \"dynamic\"}"})200 OK (source игнорируется, поля null)
Item Amount/Quantity Logic
items.amount: -1 (ниже минимума)POST /push (JSON: {"items": [{"id": "x", "amount": -1}], ...})200 OK (amount становится 1)
items.amount: 1001 (выше максимума)POST /push (JSON: {"items": [{"id": "x", "amount": 1001}], ...})200 OK (amount становится 1000)
items.quantity: -1 (синоним amount)POST /push (JSON: {"items": [{"id": "x", "quantity": -1}], ...})200 OK (amount становится 1)
Item Price Logic
items.price: -1 (отрицательное число)POST /push (JSON: {"items": [{"id": "x", "price": -1}], ...})200 OK (поле price отсутствует)
items.price: -0.1 (отрицательный float)POST /push (JSON: {"items": [{"id": "x", "price": -0.1}], ...})200 OK (поле price отсутствует)
items.price: '-666' (отрицательная строка)POST /push (JSON: {"items": [{"id": "x", "price": "-666"}], ...})200 OK (поле price отсутствует)
items.price: 'asdasd' (не число)POST /push (JSON: {"items": [{"id": "x", "price": "asdasd"}], ...})200 OK (поле price отсутствует)
Item Other Fields Logic
items.line_id: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "line_id": ""}], ...})200 OK (поле line_id отсутствует)
items.fashion_size: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "fashion_size": ""}], ...})200 OK (поле fashion_size отсутствует)
Пустой items.idPOST /push (JSON: {"items": [{"id": ""}, {"id": "valid"}], ...})200 OK (пустой ID фильтруется)
Слишком длинный items.idPOST /push (JSON: {"items": [{"id": "aaaa...(>255 chars)"}, ...]})200 OK (длинный ID фильтруется)
Successful Tracking
Трекинг покупки с одним товаромPOST /push?event=purchase&stream=test&items[][id]=123&shop_id={valid}&did={valid}200 OK
Трекинг покупки с несколькими товарамиPOST /push (JSON: {"event": "purchase", "items": [{"id": "first", "amount": 42}, {"id": "second", "quantity": 23, "price": 42}], ...})200 OK
Трекинг покупки с деталями заказаPOST /push (JSON: {"event": "purchase", "order_id": "order-123", "delivery_type": "courier", "delivery_address": "123 Main St", "payment_type": "Card", "tax_free": true, ...})200 OK
Трекинг со всеми опциональными параметрамиPOST /push (JSON: {"event": "purchase", "stream": "test", "sid": "test-session-id", "segment": "A", "referer": "https://example.com", "recommended_by": "dynamic", "recommended_code": "abc123", "order_id": "order-456", "delivery_type": "pickup", "payment_type": "Cash", ...})200 OK
СценарийПример запросаКод ошибки
HTTP Method Validation
Использование не-POST методаGET /push?event=search&search_query=test405 Method Not Allowed
Authentication & Shop Validation
Запрос без shop_idPOST /push (без параметров)401 Unauthorized
Пустой shop_idPOST /push?shop_id=&event=search&search_query=test422 Unprocessable
Некорректный формат shop_id (не 30 hex)POST /push?shop_id=INVALID_ID&event=search&search_query=test422 Unprocessable
Несуществующий shop_idPOST /push?shop_id=000000000000000000000000000000&event=search&search_query=test404 Not Found
Device Validation
Корректный shop_id, но без didPOST /push?shop_id={valid}&event=search&search_query=test401 Unauthorized
Пустой did (трактуется как отсутствие)POST /push?shop_id={valid}&did=&event=search&search_query=test401 Unauthorized
Некорректный формат didPOST /push?shop_id={valid}&did=INVALID_ID&event=search&search_query=test422 Unprocessable
Несуществующий didPOST /push?shop_id={valid}&did=0000000000&event=search&search_query=test404 Not Found
Shop Status Validation
Магазин неактивен (non-active)POST /push?shop_id={non_active}&did={valid}&event=search&search_query=test403 Access Denied
Магазин ограничен (restricted)POST /push?shop_id={restricted}&did={valid}&event=search&search_query=test403 Access Denied
У магазина истекла оплатаPOST /push?shop_id={unpaid}&did={valid}&event=search&search_query=test403 Access Denied
Required Parameters Validation
Отсутствует параметр eventPOST /push?search_query=test&shop_id={valid}&did={valid}422 Unprocessable
Пустой параметр eventPOST /push?event=&search_query=test&shop_id={valid}&did={valid}422 Unprocessable
Некорректное значение event (не 'search')POST /push?event=INVALID&search_query=test&shop_id={valid}&did={valid}422 Unprocessable
Отсутствует параметр search_queryPOST /push?event=search&shop_id={valid}&did={valid}422 Unprocessable
Пустой search_queryPOST /push?event=search&search_query=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный тип search_query (массив)POST /push?event=search&search_query[]=test&shop_id={valid}&did={valid}422 Unprocessable
Optional Parameters Validation
Пустой streamPOST /push?event=search&search_query=test&stream=&shop_id={valid}&did={valid}422 Unprocessable
stream не строка (массив)POST /push?event=search&search_query=test&stream[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой sidPOST /push?event=search&search_query=test&sid=&shop_id={valid}&did={valid}422 Unprocessable
sid не строкаPOST /push?event=search&search_query=test&sid[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой refererPOST /push?event=search&search_query=test&referer=&shop_id={valid}&did={valid}422 Unprocessable
referer не строкаPOST /push?event=search&search_query=test&referer[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой segmentPOST /push?event=search&search_query=test&segment=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный segment (не 'A' или 'B')POST /push?event=search&search_query=test&segment=C&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_byPOST /push?event=search&search_query=test&recommended_by=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный recommended_byPOST /push?event=search&search_query=test&recommended_by=INVALID&shop_id={valid}&did={valid}422 Unprocessable
recommended_by не строка (массив)POST /push?event=search&search_query=test&recommended_by[]=dynamic&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_codePOST /push?event=search&search_query=test&recommended_code=&shop_id={valid}&did={valid}422 Unprocessable
recommended_code не строкаPOST /push?event=search&search_query=test&recommended_code[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой source (строка)POST /push?event=search&search_query=test&source=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный source (не JSON)POST /push?event=search&search_query=test&source=not-json&shop_id={valid}&did={valid}422 Unprocessable
Source Logic
Корректный JSON в source (строка)POST /push (JSON: {"event": "search", "source": "{\"code\": \"abc\", \"from\": \"dynamic\"}", "search_query": "test", ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Корректный объект в sourcePOST /push (JSON: {"event": "search", "source": {"code": "abc", "from": "dynamic"}, "search_query": "test", ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Некорректный source.fromPOST /push (JSON: {"source": "{\"code\": \"abc\", \"from\": \"example\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.from в JSONPOST /push (JSON: {"source": "{\"code\": \"abc\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.code в JSONPOST /push (JSON: {"source": "{\"from\": \"dynamic\"}"})200 OK (source игнорируется, поля null)
Successful Tracking
Трекинг поискового запроса (ASCII)POST /push?event=search&stream=test&search_query=red+shoes&shop_id={valid}&did={valid}200 OK
Трекинг поискового запроса (Unicode/спецсимволы)POST /push (JSON: {"event": "search", "search_query": "кроссовки Nike Air Max 42", ...})200 OK
Трекинг со всеми опциональными параметрамиPOST /push (JSON: {"event": "search", "stream": "test", "sid": "test-session-id", "segment": "A", "referer": "https://example.com", "recommended_by": "dynamic", "recommended_code": "abc123", "search_query": "test query", ...})200 OK

view

СценарийПример запросаКод ошибки
HTTP Method Validation
Использование не-POST методаGET /push?event=view&items[][id]=123405 Method Not Allowed
Authentication & Shop Validation
Запрос без shop_idPOST /push (без параметров)401 Unauthorized
Пустой shop_idPOST /push?shop_id=&event=view&items[][id]=123422 Unprocessable
Некорректный формат shop_id (не 30 hex)POST /push?shop_id=INVALID_ID&event=view&items[][id]=123422 Unprocessable
Несуществующий shop_idPOST /push?shop_id=000000000000000000000000000000&event=view&items[][id]=123404 Not Found
Device Validation
Корректный shop_id, но без didPOST /push?shop_id={valid}&event=view&items[][id]=123401 Unauthorized
Пустой did (трактуется как отсутствие)POST /push?shop_id={valid}&did=&event=view&items[][id]=123401 Unauthorized
Некорректный формат didPOST /push?shop_id={valid}&did=INVALID_ID&event=view&items[][id]=123422 Unprocessable
Несуществующий didPOST /push?shop_id={valid}&did=0000000000&event=view&items[][id]=123404 Not Found
Shop Status Validation
Магазин неактивен (non-active)POST /push?shop_id={non_active}&did={valid}&event=view&items[][id]=123403 Access Denied
Магазин ограничен (restricted)POST /push?shop_id={restricted}&did={valid}&event=view&items[][id]=123403 Access Denied
У магазина истекла оплатаPOST /push?shop_id={unpaid}&did={valid}&event=view&items[][id]=123403 Access Denied
Required Parameters Validation
Отсутствует параметр eventPOST /push?items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Пустой параметр eventPOST /push?event=&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Некорректное значение event (не 'view')POST /push?event=INVALID&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Items Validation
Отсутствует параметр itemsPOST /push?event=view&shop_id={valid}&did={valid}422 Unprocessable
Пустой items (не массив)POST /push?event=view&items=&shop_id={valid}&did={valid}422 Unprocessable
Пустой массив itemsPOST /push (JSON: {"event": "view", "items": [], ...})422 Unprocessable
Все items отфильтрованы из-за некорректного IDPOST /push (JSON: {"event": "view", "items": [{"id": "Hello\\World"}], ...})422 Unprocessable
Optional Parameters Validation
Пустой streamPOST /push?event=view&items[][id]=123&stream=&shop_id={valid}&did={valid}422 Unprocessable
stream не строка (массив)POST /push?event=view&items[][id]=123&stream[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой sidPOST /push?event=view&items[][id]=123&sid=&shop_id={valid}&did={valid}422 Unprocessable
sid не строкаPOST /push?event=view&items[][id]=123&sid[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой refererPOST /push?event=view&items[][id]=123&referer=&shop_id={valid}&did={valid}422 Unprocessable
referer не строкаPOST /push?event=view&items[][id]=123&referer[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой segmentPOST /push?event=view&items[][id]=123&segment=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный segment (не 'A' или 'B')POST /push?event=view&items[][id]=123&segment=C&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_byPOST /push?event=view&items[][id]=123&recommended_by=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный recommended_byPOST /push?event=view&items[][id]=123&recommended_by=INVALID&shop_id={valid}&did={valid}422 Unprocessable
recommended_by не строка (массив)POST /push?event=view&items[][id]=123&recommended_by[]=dynamic&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_codePOST /push?event=view&items[][id]=123&recommended_code=&shop_id={valid}&did={valid}422 Unprocessable
recommended_code не строкаPOST /push?event=view&items[][id]=123&recommended_code[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой source (строка)POST /push?event=view&items[][id]=123&source=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный source (не JSON)POST /push?event=view&items[][id]=123&source=not-json&shop_id={valid}&did={valid}422 Unprocessable
Source Logic
Корректный JSON в source (строка)POST /push (JSON: {"event": "view", "source": "{\"code\": \"abc\", \"from\": \"dynamic\"}", ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Корректный объект в sourcePOST /push (JSON: {"event": "view", "source": {"code": "abc", "from": "dynamic"}, ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Некорректный source.fromPOST /push (JSON: {"source": "{\"code\": \"abc\", \"from\": \"example\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.from в JSONPOST /push (JSON: {"source": "{\"code\": \"abc\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.code в JSONPOST /push (JSON: {"source": "{\"from\": \"dynamic\"}"})200 OK (source игнорируется, поля null)
Item Amount/Quantity Logic
items.amount: -1 (ниже минимума)POST /push (JSON: {"items": [{"id": "x", "amount": -1}], ...})200 OK (amount становится 1)
items.amount: 1001 (выше максимума)POST /push (JSON: {"items": [{"id": "x", "amount": 1001}], ...})200 OK (amount становится 1000)
items.quantity: -1 (синоним amount)POST /push (JSON: {"items": [{"id": "x", "quantity": -1}], ...})200 OK (amount становится 1)
Item Price Logic
items.price: -1 (отрицательное число)POST /push (JSON: {"items": [{"id": "x", "price": -1}], ...})200 OK (поле price отсутствует)
items.price: -0.1 (отрицательный float)POST /push (JSON: {"items": [{"id": "x", "price": -0.1}], ...})200 OK (поле price отсутствует)
items.price: '-666' (отрицательная строка)POST /push (JSON: {"items": [{"id": "x", "price": "-666"}], ...})200 OK (поле price отсутствует)
items.price: 'asdasd' (не число)POST /push (JSON: {"items": [{"id": "x", "price": "asdasd"}], ...})200 OK (поле price отсутствует)
Item Other Fields Logic
items.line_id: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "line_id": ""}], ...})200 OK (поле line_id отсутствует)
items.fashion_size: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "fashion_size": ""}], ...})200 OK (поле fashion_size отсутствует)
Пустой items.idPOST /push (JSON: {"items": [{"id": ""}, {"id": "valid"}], ...})200 OK (пустой ID фильтруется)
Слишком длинный items.idPOST /push (JSON: {"items": [{"id": "aaaa...(>255 chars)"}, ...]})200 OK (длинный ID фильтруется)
Successful Tracking
Трекинг просмотра одного товараPOST /push?event=view&stream=test&items[][id]=123&shop_id={valid}&did={valid}200 OK
Трекинг просмотра нескольких товаровPOST /push (JSON: {"event": "view", "items": [{"id": "first", "amount": 42}, {"id": "second", "amount": 23}], ...})200 OK
Трекинг с segment="B"POST /push (JSON: {"event": "view", "segment": "B", ...})200 OK
Трекинг со всеми опциональными параметрамиPOST /push (JSON: {"event": "view", "stream": "test", "sid": "test-session-id", "segment": "A", "referer": "https://example.com", "recommended_by": "dynamic", "recommended_code": "abc123", ...})200 OK

remove from favorites

СценарийПример запросаКод ошибки
HTTP Method Validation
Использование не-POST методаGET /push?event=remove_wish&items[][id]=123405 Method Not Allowed
Authentication & Shop Validation
Запрос без shop_idPOST /push (без параметров)401 Unauthorized
Пустой shop_idPOST /push?shop_id=&event=remove_wish&items[][id]=123422 Unprocessable
Некорректный формат shop_id (не 30 hex)POST /push?shop_id=INVALID_ID&event=remove_wish&items[][id]=123422 Unprocessable
Несуществующий shop_idPOST /push?shop_id=000000000000000000000000000000&event=remove_wish&items[][id]=123404 Not Found
Device Validation
Корректный shop_id, но без didPOST /push?shop_id={valid}&event=remove_wish&items[][id]=123401 Unauthorized
Пустой did (трактуется как отсутствие)POST /push?shop_id={valid}&did=&event=remove_wish&items[][id]=123401 Unauthorized
Некорректный формат didPOST /push?shop_id={valid}&did=INVALID_ID&event=remove_wish&items[][id]=123422 Unprocessable
Несуществующий didPOST /push?shop_id={valid}&did=0000000000&event=remove_wish&items[][id]=123404 Not Found
Shop Status Validation
Магазин неактивен (non-active)POST /push?shop_id={non_active}&did={valid}&event=remove_wish&items[][id]=123403 Access Denied
Магазин ограничен (restricted)POST /push?shop_id={restricted}&did={valid}&event=remove_wish&items[][id]=123403 Access Denied
У магазина истекла оплатаPOST /push?shop_id={unpaid}&did={valid}&event=remove_wish&items[][id]=123403 Access Denied
Required Parameters Validation
Отсутствует параметр eventPOST /push?items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Пустой параметр eventPOST /push?event=&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Некорректное значение event (не 'remove_wish')POST /push?event=INVALID&items[][id]=123&shop_id={valid}&did={valid}422 Unprocessable
Items Validation
Отсутствует параметр itemsPOST /push?event=remove_wish&shop_id={valid}&did={valid}422 Unprocessable
Пустой items (не массив)POST /push?event=remove_wish&items=&shop_id={valid}&did={valid}422 Unprocessable
Пустой массив itemsPOST /push (JSON: {"event": "remove_wish", "items": [], ...})422 Unprocessable
Все items отфильтрованы из-за некорректного IDPOST /push (JSON: {"event": "remove_wish", "items": [{"id": "Hello\\World"}], ...})422 Unprocessable
Optional Parameters Validation
Пустой streamPOST /push?event=remove_wish&items[][id]=123&stream=&shop_id={valid}&did={valid}422 Unprocessable
stream не строка (массив)POST /push?event=remove_wish&items[][id]=123&stream[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой sidPOST /push?event=remove_wish&items[][id]=123&sid=&shop_id={valid}&did={valid}422 Unprocessable
sid не строкаPOST /push?event=remove_wish&items[][id]=123&sid[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой refererPOST /push?event=remove_wish&items[][id]=123&referer=&shop_id={valid}&did={valid}422 Unprocessable
referer не строкаPOST /push?event=remove_wish&items[][id]=123&referer[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой segmentPOST /push?event=remove_wish&items[][id]=123&segment=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный segment (не 'A' или 'B')POST /push?event=remove_wish&items[][id]=123&segment=C&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_byPOST /push?event=remove_wish&items[][id]=123&recommended_by=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный recommended_byPOST /push?event=remove_wish&items[][id]=123&recommended_by=INVALID&shop_id={valid}&did={valid}422 Unprocessable
recommended_by не строка (массив)POST /push?event=remove_wish&items[][id]=123&recommended_by[]=dynamic&shop_id={valid}&did={valid}422 Unprocessable
Пустой recommended_codePOST /push?event=remove_wish&items[][id]=123&recommended_code=&shop_id={valid}&did={valid}422 Unprocessable
recommended_code не строкаPOST /push?event=remove_wish&items[][id]=123&recommended_code[]=42&shop_id={valid}&did={valid}422 Unprocessable
Пустой source (строка)POST /push?event=remove_wish&items[][id]=123&source=&shop_id={valid}&did={valid}422 Unprocessable
Некорректный source (не JSON)POST /push?event=remove_wish&items[][id]=123&source=not-json&shop_id={valid}&did={valid}422 Unprocessable
Source Logic
Корректный JSON в source (строка)POST /push (JSON: {"event": "remove_wish", "source": "{\"code\": \"abc\", \"from\": \"dynamic\"}", ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Корректный объект в sourcePOST /push (JSON: {"event": "remove_wish", "source": {"code": "abc", "from": "dynamic"}, ...})200 OK (recommended_by=dynamic, recommended_code=abc)
Некорректный source.fromPOST /push (JSON: {"source": "{\"code\": \"abc\", \"from\": \"example\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.from в JSONPOST /push (JSON: {"source": "{\"code\": \"abc\"}"})200 OK (source игнорируется, поля null)
Отсутствует source.code в JSONPOST /push (JSON: {"source": "{\"from\": \"dynamic\"}"})200 OK (source игнорируется, поля null)
Item Amount/Quantity Logic
items.amount: -1 (ниже минимума)POST /push (JSON: {"items": [{"id": "x", "amount": -1}], ...})200 OK (amount становится 1)
items.amount: 1001 (выше максимума)POST /push (JSON: {"items": [{"id": "x", "amount": 1001}], ...})200 OK (amount становится 1000)
items.quantity: -1 (синоним amount)POST /push (JSON: {"items": [{"id": "x", "quantity": -1}], ...})200 OK (amount становится 1)
Item Price Logic
items.price: -1 (отрицательное число)POST /push (JSON: {"items": [{"id": "x", "price": -1}], ...})200 OK (поле price отсутствует)
items.price: -0.1 (отрицательный float)POST /push (JSON: {"items": [{"id": "x", "price": -0.1}], ...})200 OK (поле price отсутствует)
items.price: '-666' (отрицательная строка)POST /push (JSON: {"items": [{"id": "x", "price": "-666"}], ...})200 OK (поле price отсутствует)
items.price: 'asdasd' (не число)POST /push (JSON: {"items": [{"id": "x", "price": "asdasd"}], ...})200 OK (поле price отсутствует)
Item Other Fields Logic
items.line_id: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "line_id": ""}], ...})200 OK (поле line_id отсутствует)
items.fashion_size: '' (пустая строка)POST /push (JSON: {"items": [{"id": "x", "fashion_size": ""}], ...})200 OK (поле fashion_size отсутствует)
Пустой items.idPOST /push (JSON: {"items": [{"id": ""}, {"id": "valid"}], ...})200 OK (пустой ID фильтруется)
Слишком длинный items.idPOST /push (JSON: {"items": [{"id": "aaaa...(>255 chars)"}, ...]})200 OK (длинный ID фильтруется)
Successful Tracking
Трекинг удаления одного товара из избранногоPOST /push?event=remove_wish&stream=test&items[][id]=123&shop_id={valid}&did={valid}200 OK
Трекинг удаления нескольких товаров из избранногоPOST /push (JSON: {"event": "remove_wish", "items": [{"id": "first", "amount": 42}, {"id": "second", "amount": 23}], ...})200 OK
Трекинг со всеми опциональными параметрамиPOST /push (JSON: {"event": "remove_wish", "stream": "test", "sid": "test-session-id", "segment": "A", "referer": "https://example.com", "recommended_by": "dynamic", "recommended_code": "abc123", ...})200 OK