Modificare proprietăți articol¶
Descriere - Modificare proprietăți articol¶
Această secțiune este dedicată modificării informațiilor unui articol
Articolul modificat poate fi folosit pe o factură nouă sau pe una deja existentă, însă PDF-ul facturii nu se va reîmprospăta cu noile informații din articol dacă acesta a fost deja generat
Această operațiune va returna doar un mesaj de succes
- Operații care se pot realiza după ce un articol a fost modificat:
Model de utilizare API - Modificare proprietăți 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: PATCH
Endpoint: /{clientEid}/items/{itemExternalId}
Request parameter: {clientEid} si {itemExternalId}
Request body: {data_body}
Returns: Success Response
Atenționare
A se observa parametrul {clientEid} și tipul acestuia (path variable)
A se observa parametrul {itemExternalId} și tipul acestuia (path variable)
A se observa parametrul {data_body} și tipul acestuia (request body)
Model de request body - Modificare proprietăți articol¶
Request body-ul se creează în prealabil, înaintea apelului către API
Acesta va conține doar noile informațiile care se vor modificate
Modelul acestui request body se regăsește în tabelul din Vezi Model Articol
Informațiile obligatorii deja completate pentru articol nu pot fi șterse (completate cu null)
Formatul de date primit de fiecare parametrul în parte este specificat în coloana «Format» din modelul de mai sus
data_body = {
'name': 'Servicii zilnice',
'measureUnitId': 1,
}
Se poate observa cum JSON-ului de mai sus conține doar 2 proprietățile care vor fi modificate
Dacă o proprietate nu este completata în JSON-ul de mai sus, acea informație din articol nu va fi modificată
Validări - Modificare proprietăți articol¶
La momentul executării acestui apel se vor verifica și valida următoarele:
Dacă există articolul
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 - Modificare proprietăți 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 PATCH
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) item_external_id = '{ID_EXTERN_ARTICOL}' data_body = { 'name': 'Servicii zilnice', 'measureUnitId': 1, } result = api.update_item(client_eid, item_external_id, data_body)
Mod de folosire - Fără Wrapper - Modificare proprietăți 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 updateItem(self): item_external_id = 'TEST' item_url = f'{self.api_endpoint}/{self.client_eid}/items/{item_external_id}' item_data = { 'name': 'Servicii zilnice', 'measureUnitId': 1, } _req = requests.patch(url=item_url, headers={'Content-Type': 'application/json', 'Authorization': self.token}, json=item_data) return _req.json() if __name__ == '__main__': service = ItemService() item = service.updateItem() print(item)Notă
Clasa TokenService() se găsește la secțiunea Autorizarea: Vezi Autorizarea