Creare articol¶
Descriere - Creare articol¶
Aceasta sectiune este dedicata crearii unui articol nou
Articolul nou creat din acest apel se poate folosi pe o factura
Aceasta operatiune dupa finalizare va returna identificatorul Keez al noului articol externalId
- Operatii care se pot realiza dupa ce un articol a fost creat:
Model de utilizare API - Creare articol¶
Asa cum este explicat in zona de Informatii generale utilizare API orice apel catre API se face catre un URL de baza la care apoi se adauga endpoint-ul respectivei operatii
Notă
Verb: POST
Endpoint: /{clientEid}/items
Request parameter: {clientEid}
Request body: {data_body}
Returns: externalId
Type of return: String
Atenționare
A se observa parametru {clientEid} si tipul acestuia (path variable)
A se observa parametru {data_body} si tipul acestuia (request body)
Model de request body - Creare articol¶
Request body -ul se creaza in prealabil, inaintea apelului catre API
Acesta va contine informatiile specifice acelui articol care se vrea a fi creat
Modelul acestui body se regasete in tabelul din Vezi Model Articol
Informatiile obligatorii de completat pentru un articol sunt semnalizate in coloana „Coloana obligatorie” din modelul de mai sus
Formatul de date primit de fiecare parametru in parte este specificat in coloane „Format” din modelul de mai sus
data_body = {
"name": "Servicii",
"currencyCode": "RON",
'measureUnitId': 1,
"isActive": True,
"categoryExternalId": "MISCSRV"
}
Validari - Creare articol¶
La momentul executarii acestul apel se vor verifica/valida urmatoarele:
Toate proprietatiile obligatorii trebuie sa fie completate
Numele de produse existente sau noi create trebuie sa fie unice (se valideaza pe totalitatea produselor deja existente)
Caracterele speciale (șțâăî) vor fi transformate in caractere normale fara accente
Verificarile si validarile vor arunca (throw) mesaje de eroare sub forma de exceptie (Vezi Model Exceptie) atasate de un cod HTTP error 500. Vezi Coduri eroare posibile
Mod de folosire - Wrapper - Creare articol¶
- Daca se foloseste wrapper -ul scris in Python se utilizeaza astfel:
Se preia token-ul pe baza parametrilor specifici
Se apeleaza metoda specifica acestui request POST
token_url = 'https://staging.keez.ro/idp/connect/token' api_url = f'https://{ENVIRONMENT}.keez.ro/api/v1.0/public-api' client_eid = '{RECEIVED_CLIENT_EID}' application_id = '{RECEIVED_APPLICATION_ID}' secret = '{RECEIVED_SECRET}' api = KeezPublicApi(app=application, secret=secret, token_url=token_url, api_url=api_url) data_body = { "name": "Servicii", "currencyCode": "RON", 'measureUnitId': 1, "isActive": True, "categoryExternalId": "MISCSRV" } result = api.create_item(client_eid, data_body)
Mod de folosire - Fara Wrapper - Creare articol¶
class ItemService: def __init__(self): token = TokenService() self.auth_token = token.generate_token() self.token = f'{self.auth_token.get("token_type")} {self.auth_token.get("access_token")}' self.client_eid = token.client_eid self.api_endpoint = token.api_endpoint def createItem(self): item_url = f'{self.api_endpoint}/{self.client_eid}/items' item_data = { "name": "Servicii", "currencyCode": "RON", 'measureUnitId': 1, "isActive": True, "categoryExternalId": "MISCSRV" } _req = requests.post(url=item_url, headers={'Content-Type': 'application/json', 'Authorization': self.token}, json=item_data) return _req.json() if __name__ == '__main__': service = ItemService() items = service.createItem() print(items)Notă
Clasa TokenService() se gaseste la sectiunea Autorizarea: Vezi Autorizarea