Creare articol¶
Descriere - Creare articol¶
Această secțiune este dedicată creării unui articol nou
Articolul nou creat din acest apel se poate folosi pe orice factură ulterioară
Această operațiune va returna identificatorul Keez al noului articol externalId
- Operații care se pot realiza după ce un articol a fost creat:
Model de utilizare API - Creare articol¶
Așa cum este explicat în zona de Informații generale utilizare API orice apel către API se face prin URL-ul de bază + endpoint-ul respectivei operații
Notă
Verb: POST
Endpoint: /{clientEid}/items
Request parameter: {clientEid}
Request body: {data_body}
Returns: externalId
Type of return: String
Atenționare
A se observa parametrul {clientEid} și tipul acestuia (path variable)
A se observa parametrul {data_body} și tipul acestuia (request body)
Model de request body - Creare articol¶
Request body-ul se creează în prealabil, înaintea apelului către API
Acesta va conține informațiile specifice acelui articol
Modelul acestui request body se regăsește în tabelul din Vezi Model Articol
Informațiile obligatorii de completat pentru un articol sunt semnalizate în coloana «Coloană obligatorie» din modelul de mai sus
Formatul de date primit de fiecare parametrul în parte este specificat în coloana «Format» din modelul de mai sus
data_body = {
'name': 'Servicii',
'currencyCode': 'RON',
'measureUnitId': 1,
'isActive': True,
'categoryExternalId': 'MISCSRV'
}
Validări - Creare articol¶
La momentul executării acestui apel se vor verifica și valida următoarele:
Toate proprietățile obligatorii trebuie să fie completate
Numele produselor existente sau nou create trebuie să fie unice (validarea se face pe totalitatea produselor deja existente)
Caracterele speciale (șțâăî) vor fi transformate în caractere normale fără accente
Verificările și validările vor arunca (throw) mesaje de eroare sub formă de excepție (Vezi Model Excepție) atașate de un cod HTTP error 500. Vezi Coduri eroare posibile
Mod de folosire - Wrapper - Creare articol¶
- Dacă se folosește wrapper-ul scris în Python se utilizează astfel:
Se preia token-ul Vezi Autorizarea
Se apelează metoda specifică 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_id, 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 - Fără 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 găsește la secțiunea Autorizarea: Vezi Autorizarea