Modificare proprietati articol¶
Descriere - Modificare proprietati articol¶
Aceasta sectiune este dedicata modificarii informatiilor unui articol
Articolul modificat poate fi folosit pe o factura noua sau pe una deja existenta, dar daca PDF-ul facturii a fost deja generat, PDF-ul nu se va reimprospata cu noile informatii din articol
Aceasta operatiune dupa finalizare va returna doar un mesaj de success
- Operatii care se pot realiza dupa ce un articol a fost modificat:
Model de utilizare API - Modificare proprietati 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: PATCH
Endpoint: /{clientEid}/items/{itemExternalId}
Request parameter: {clientEid} si {itemExternalId}
Request body: {data_body}
Returns: Success
Atenționare
A se observa parametru {clientEid} si tipul acestuia (path variable)
A se observa parametru {itemExternalId} si tipul acestuia (path variable)
A se observa parametru {data_body} si tipul acestuia (request body)
Model de request body - Modificare proprietati articol¶
Request body -ul se creaza in prealabil, inaintea apelului catre API
Acesta va contine doar noile informatiile care se vor modificate
Modelul acestui body se regasete in tabelul din Vezi Model Articol
Informatiile obligatorii deja completate pentru articol nu pot fi sterse (completate cu null)
Formatul de date primit de fiecare parametru in parte este specificat in coloane „Format” din modelul de mai sus
data_body = {
"name": "Servicii zilnice",
'measureUnitId': 1,
}
Se poate observa cum JSON-ului de mai sus contine doar 2 proprietati care vor fi modificate
Daca o proprietate nu este completata in JSON -ul de mai sus, acea informatie din articol nu va fi modificata
Validari - Modificare proprietati articol¶
La momentul executarii acestul apel se vor verifica/valida urmatoarele:
Daca exista articolul
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 - Modificare proprietati 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 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, 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 - Fara Wrapper - Modificare proprietati 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 gaseste la sectiunea Autorizarea: Vezi Autorizarea