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:
  1. Vezi Modificare articol

  2. Vezi Creare factură

Model de utilizare API - Creare articol

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:
    1. Se preia token-ul Vezi Autorizarea

    2. 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