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 | Mapowane na | Opis |
|---|---|---|---|
PK | tak | — | Identyfikator rekordu do zwrotki wyniku |
ItemCode | tak | product_id | Unikalny identyfikator produktu (SAP item code) |
KodFemax | nie | sku | Kod SKU; jeśli pusty, używany jest ItemCode |
U_NrKatDost | nie | catalog_number | Numer katalogowy dostawcy |
CardCode | tak | provider | Kod dostawcy |
FirmCode | tak | producent | Kod producenta |
ItmsGrpCod | tak | catalog_group | Kod grupy towarowej |
SWeight1 | tak | gross_weight | Waga brutto (float, akceptuje przecinek dziesiętny) |
SVolume | tak | gross_volume | Objętość brutto (float) |
FrozenFor | tak | is_active | "Y" → produkt nieaktywny (is_active = 0), inna wartość → aktywny |
PurchasePrice | tak | value | Cena zakupu (float) |
ItemName | nie | name | Nazwa produktu |
CatalogPrice | nie | catalog_price | Cena katalogowa (float) — pole zapisywane tylko jeśli obecne w żądaniu |
PurPackUn | nie | data.package_class_a | Wielkość opakowania klasy A (float) |
SalPackUn | nie | data.package_class_b | Wielkość opakowania klasy B (float) |
Qrygroup5 | tak | data.is_for_shares | "Y" → produkt akcyjny (1), w przeciwnym razie 0 |
Qrygroup1 | tak | data.is_discontinued | "Y" → produkt wycofany (1), w przeciwnym razie 0 |
UserText | nie | data.comments | Komentarz / uwagi |
substitutes | nie | — | Lista kodów zamienników jako string rozdzielony przecinkami, np. "ABC123,DEF456" |
Przykład żądania
{
"products": [
{
"PK": 1,
"ItemCode": "ABC123",
"KodFemax": "SKU-ABC123",
"U_NrKatDost": "NK-001",
"CardCode": "D-001",
"FirmCode": "F-100",
"ItmsGrpCod": "GRP-01",
"SWeight1": "1,250",
"SVolume": "0,003",
"FrozenFor": "N",
"PurchasePrice": "12,50",
"ItemName": "Przykładowy produkt",
"CatalogPrice": "19,99",
"PurPackUn": "10",
"SalPackUn": "1",
"Qrygroup5": "N",
"Qrygroup1": "N",
"UserText": "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 \"CardCode\"" }
]
}