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

  2. Vezi Create factura

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:
    1. Se preia token-ul pe baza parametrilor specifici

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