products — import kartoteki produktów
Klucz JSON: products · Handler: App\Api\Bizami\Products
Import tworzy lub aktualizuje produkt (Product) oraz jego dane dodatkowe (ProductData). Rekord jest zapisywany tylko wtedy, gdy przynajmniej jedna wartość uległa zmianie względem stanu w bazie.
Pola rekordu
| Pole | Wymagane | Opis |
|---|---|---|
PK | tak | Identyfikator rekordu do zwrotki wyniku |
product_id | tak | Unikalny identyfikator produktu |
sku | nie | Kod SKU; jeśli pusty, używany jest product_id |
catalog_number | nie | Numer katalogowy dostawcy |
provider | tak | Kod dostawcy |
producent | tak | Kod producenta |
catalog_group | tak | Kod grupy towarowej |
gross_weight | tak | Waga brutto (float, akceptuje przecinek dziesiętny) |
gross_volume | tak | Objętość brutto (float) |
is_active | tak | "Y" → produkt nieaktywny (is_active = 0), inna wartość → aktywny |
value | tak | Cena zakupu (float) |
name | nie | Nazwa produktu |
catalog_price | nie | Cena katalogowa (float) — pole zapisywane tylko jeśli obecne w żądaniu |
data.package_class_a | nie | Wielkość opakowania klasy A (float) |
data.package_class_b | nie | Wielkość opakowania klasy B (float) |
data.is_for_shares | tak | "Y" → produkt akcyjny (1), w przeciwnym razie 0 |
data.is_discontinued | tak | "Y" → produkt wycofany (1), w przeciwnym razie 0 |
data.comments | nie | Komentarz / uwagi |
substitutes | nie | Lista kodów zamienników jako string rozdzielony przecinkami, np. "ABC123,DEF456" |
Przykład żądania
{
"products": [
{
"PK": 1,
"product_id": "ABC123",
"sku": "SKU-ABC123",
"catalog_number": "NK-001",
"provider": "D-001",
"producent": "F-100",
"catalog_group": "GRP-01",
"gross_weight": "1,250",
"gross_volume": "0,003",
"is_active": "N",
"value": "12,50",
"name": "Przykładowy produkt",
"catalog_price": "19,99",
"data.package_class_a": "10",
"data.package_class_b": "1",
"data.is_for_shares": "N",
"data.is_discontinued": "N",
"data.comments": "Uwaga: produkt sezonowy",
"substitutes": "XYZ001,XYZ002"
}
]
}
Przykład odpowiedzi
{
"products": [
{ "PK": 1, "SendStatus": "Y" }
]
}
Przy błędzie (np. brak wymaganego pola):
{
"products": [
{ "PK": 1, "SendStatus": "N", "SendMessage": "Undefined array key \"provider\"" }
]
}