Skip to content

Kirim tovarlari ​

Kirim qatorlari va ularni to‘ldirish vositalari: Excel’dan import (oddiy va nomenklatura yaratadigan to‘liq) hamda yuk xati rasmini AI orqali tanish. Import faqat faylni tahlil qilib, kirim formasi uchun qatorlarni qaytaradi.

MetodManzilVazifasi
POST/company/trade/purchase-product/importExcel’dan tovar importi
POST/company/trade/purchase-product/full-importExcel’dan to‘liq import
POST/company/trade/purchase-product/ai-importYuk xatini rasmdan tanish
GET/company/trade/purchase-product/download-exampleImport uchun shablon
GET/company/trade/purchase-product/download-full-exampleTo‘liq import shabloni
GET/company/trade/purchase-productKirim tovarlari ro‘yxati
GET/company/trade/purchase-product/{model}Kirim qatori

Excel’dan tovar importi ​

POST/company/trade/purchase-product/import

Faylni shablon bo‘yicha tahlil qiladi (500 qatorgacha): tovar to‘liq nomi bo‘yicha qidiriladi, har bir qatorda miqdor, kirim narxi va ustama (foiz yoki summa) tekshiriladi. Kirim formasi uchun products qaytaradi; xatolar katakni ko‘rsatadi. Hech narsa saqlamaydi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
filefileHaFayl. Formatlar: xlsx. Maks. 1024 KB
json
{
    "company_id": 1
}
bash
curl -X POST "https://api.wasyt.uz/company/trade/purchase-product/import" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_id":1}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
productsobject[]Mahsulotlar
products[].product_idintegerMahsulot
products[].namestringNomlanish
products[].quantityintegerMiqdori
products[].purchase_priceintegerSotib olish narxi
products[].markup_percentintegerUstama %
products[].markup_fixedintegerUstama
json
{
    "products": [
        {
            "product_id": 3,
            "name": "Product 2",
            "quantity": 2,
            "purchase_price": 1500,
            "markup_percent": 15,
            "markup_fixed": 0
        }
    ]
}

Xato misoli · 422 ​

json
{
    "message": "Ошибка в ячейке D2 (Изменение значения поля markup percent запрещает присутствие markup fixed.) (and 1 more error)",
    "errors": {
        "file": [
            "Ошибка в ячейке D2 (Изменение значения поля markup percent запрещает присутствие markup fixed.)",
            "Ошибка в ячейке E2 (Изменение значения поля markup fixed запрещает присутствие markup percent.)"
        ]
    }
}

Excel’dan to‘liq import ​

POST/company/trade/purchase-product/full-import

To‘liq shablon faylini tahlil qiladi (1000 qatorgacha): tovar avval shtrix-kod, keyin nom bo‘yicha qidiriladi; yetishmayotgan toifa, brend va tovarlar yaratiladi, bo‘sh shtrix-kod generatsiya qilinadi. Kirim formasi uchun products qaytaradi — kirimning o‘zi yaratilmaydi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
filefileHaFayl. Formatlar: xlsx. Maks. 1024 KB
json
{
    "company_id": 1
}
bash
curl -X POST "https://api.wasyt.uz/company/trade/purchase-product/full-import" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_id":1}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
productsobject[]Mahsulotlar
products[].product_idintegerMahsulot
products[].namestringNomlanish
products[].category_idintegerKategoriya
products[].categorystringKategoriya
products[].brand_idintegerBrend
products[].brandstringBrend
products[].unit_idintegerO'lchov birligi
products[].unitstring
products[].barcodestringShtrix kod
products[].quantityintegerMiqdori
products[].purchase_priceintegerSotib olish narxi
products[].markup_percentintegerUstama %
products[].markup_fixedintegerUstama
json
{
    "products": [
        {
            "product_id": 3,
            "name": "Product 2",
            "category_id": 5,
            "category": "Category 1-1-2 ru",
            "brand_id": 1,
            "brand": "Brand 1",
            "unit_id": 2,
            "unit": "Unit 2 ru",
            "barcode": "0000000000002",
            "quantity": 2,
            "purchase_price": 1500,
            "markup_percent": 15,
            "markup_fixed": 0
        },
        {
            "product_id": 90,
            "name": "Product 3",
            "category_id": 3,
            "category": "Category 1-1 ru",
            "brand_id": 1,
            "brand": "Brand 1",
            "unit_id": 50,
            "unit": "Шт",
            "barcode": "4780000000017",
            "quantity": 5,
            "purchase_price": 1000,
            "markup_percent": 0,
            "markup_fixed": 500
        }
    ]
}

Xato misoli · 422 ​

json
{
    "message": "Ошибка в ячейке D2 (Выбранная запись не существует или была удалена)",
    "errors": {
        "file": [
            "Ошибка в ячейке D2 (Выбранная запись не существует или была удалена)"
        ]
    }
}

Yuk xatini rasmdan tanish ​

POST/company/trade/purchase-product/ai-import

AI yetkazib beruvchi yuk xati rasmini (jpg/png, 8 MB gacha) o‘qiydi va products qaytaradi: nomi, miqdori, kirim narxi va katalogdagi mos tovar (shtrix-kod yoki nom bo‘yicha). Topilmagan qatorlar product_id = null va matched = false bilan keladi; tovarlar yaratilmaydi. Pozitsiyalar tanilmasa — 400 xato.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
filefileHaFayl. Formatlar: jpg, jpeg, png. Maks. 8192 KB
json
{
    "company_id": 1
}
bash
curl -X POST "https://api.wasyt.uz/company/trade/purchase-product/ai-import" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_id":1}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
productsobject[]Mahsulotlar
products[].product_idintegerMahsulot
products[].namestringNomlanish
products[].quantityintegerMiqdori
products[].purchase_priceintegerSotib olish narxi
products[].matchedboolean
json
{
    "products": [
        {
            "product_id": 3,
            "name": "Product 2",
            "quantity": 3,
            "purchase_price": 1500,
            "matched": true
        }
    ]
}

Import uchun shablon ​

GET/company/trade/purchase-product/download-example

Kirim tovarlarini oddiy import qilish uchun Excel fayl namunasini yuklab beradi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Javob · 200 ​

Javob — fayl yoki matn, JSON emas.

To‘liq import shabloni ​

GET/company/trade/purchase-product/download-full-example

Nomenklatura yaratadigan to‘liq import uchun Excel fayl namunasini yuklab beradi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Javob · 200 ​

Javob — fayl yoki matn, JSON emas.

Kirim tovarlari ro‘yxati ​

GET/company/trade/purchase-product

Kirim qatorlari sahifalab va filtrlar bilan; format=excel bilan — Excel’ga eksport.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov parametrlari ​

MaydonTuriMajburiyTavsif
formatstringYo‘qJavob formati: excel — ro‘yxatni JSON o‘rniga Excel fayl sifatida yuklab olish (xuddi shu filtrlar qo‘llanadi)
filter[id]—Yo‘qID — aniq qiymat
filter[company_id]—Yo‘qKompaniya — bitta qiymat yoki ro‘yxat filter[company_id][]
filter[purchase_id]—Yo‘qJoylash — aniq qiymat
filter[product_id]—Yo‘qMahsulot — aniq qiymat
filter[quantity]—Yo‘qMiqdori — oraliq: [0] — dan, [1] — gacha
filter[actual_quantity]—Yo‘qHaqiqiy miqdor — oraliq: [0] — dan, [1] — gacha
filter[created_at]—Yo‘qYaratilgan — davr: [0] — dan, [1] — gacha (Y-m-d)
filter[product.category_id]—Yo‘qKategoriya — aniq qiymat (ichki elementlar bilan)
filter[product.brand_id]—Yo‘qBrend — aniq qiymat
sort[]—Yo‘qSaralash, - — kamayish bo‘yicha: id, -id
with[]—Yo‘qBog‘liq ma’lumotlarni qo‘shish: company, purchase, purchase.stock, purchase.supplier, product, product.parent, product.category.ancestors, product.brand, product.unit
page—Yo‘qSahifa raqami, 1 dan
page-size—Yo‘qSahifadagi yozuvlar soni, ko‘pi bilan 50

Javob · 200 ​

Sahifalangan javob: yozuvlar data[] ichida, sahifalash links va meta da.

Javob maydonlari
MaydonTuriTavsif
dataobject[]Ma'lumotlar
data[].idintegerID
data[].company_idintegerKompaniya
data[].purchase_idintegerJoylash
data[].product_idintegerMahsulot
data[].purchase_pricenumberSotib olish narxi
data[].sale_pricenumberSotish narxi
data[].quantityintegerMiqdori
data[].actual_quantityintegerHaqiqiy miqdor
data[].created_atstringYaratilgan
data[].updated_atstringYangilangan
data[].currencystringValyuta
data[].purchase_price_uzsinteger
data[].sale_price_uzsinteger
data[].purchase_price_usdnumber
data[].sale_price_usdnumber
data[].purchase_price_eurnumber
data[].sale_price_eurnumber
data[].purchase_price_rubnumber
data[].sale_price_rubnumber
json
{
    "data": [
        {
            "id": 120,
            "company_id": 1,
            "purchase_id": 139,
            "product_id": 1,
            "purchase_price": 8.5,
            "sale_price": 10.12,
            "quantity": 1,
            "actual_quantity": 0,
            "created_at": "2026-09-30 12:54:37",
            "updated_at": "2026-09-30 12:54:37",
            "currency": "usd",
            "purchase_price_uzs": 8500,
            "sale_price_uzs": 10120,
            "purchase_price_usd": 8.5,
            "sale_price_usd": 10.12,
            "purchase_price_eur": 8.5,
            "sale_price_eur": 10.12,
            "purchase_price_rub": 8.5,
            "sale_price_rub": 10.12
        }
    ],
    "links": {
        "first": "https://api.wasyt.uz/company/trade/purchase-product?page=1",
        "last": "https://api.wasyt.uz/company/trade/purchase-product?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/trade/purchase-product",
        "per_page": 50,
        "to": 1,
        "total": 1
    }
}

Kirim qatori ​

GET/company/trade/purchase-product/{model}

Kirimning bitta qatori: tovar, miqdor, kirim va sotuv narxi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
idintegerID
company_idintegerKompaniya
purchase_idintegerJoylash
product_idintegerMahsulot
purchase_priceintegerSotib olish narxi
sale_priceintegerSotish narxi
quantityintegerMiqdori
actual_quantityintegerHaqiqiy miqdor
created_atstringYaratilgan
updated_atstringYangilangan
currencystringValyuta
purchase_price_uzsinteger
sale_price_uzsinteger
purchase_price_usdinteger
sale_price_usdnumber
purchase_price_eurinteger
sale_price_eurnumber
purchase_price_rubinteger
sale_price_rubnumber
json
{
    "id": 1,
    "company_id": 1,
    "purchase_id": 1,
    "product_id": 1,
    "purchase_price": 1000,
    "sale_price": 1100,
    "quantity": 1,
    "actual_quantity": 1,
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:47:59",
    "currency": "uzs",
    "purchase_price_uzs": 1000,
    "sale_price_uzs": 1100,
    "purchase_price_usd": 1,
    "sale_price_usd": 1.1,
    "purchase_price_eur": 1,
    "sale_price_eur": 1.1,
    "purchase_price_rub": 1,
    "sale_price_rub": 1.1
}