Skip to content

General Information

Florin D edited this page Jan 23, 2018 · 19 revisions

About

CEL.ro's API Wrapper uses the namespace "celmarket".
It contains 3 main scripts: Auth.php, Config.php, and Dispatcher.php. Alongside these, there are specific scripts for each action and method grouped in different folders.

Access information and use methods

In this section relevant information about the site, the API and the connection to the marketplace are presented. Please read this section in order to avoid misunderstandings.

Marketplace access

  • In order to prevent unauthorized access and limit its consequences in case it occurs, each client is granted 10 simultaneous connections to the marketplace. You can choose to use them either by accessing the site or by connecting to the API.

Methods to use the marketplace

Site

  • The site's advantage is that it provides you with a complete set of tools in order to manage your marketplace page.
  • Its disadvantage is the fact that you'll have to manually process data or upload them in standard format files where it's applicable.

API

  • The API's advantage is the ability to send data directly from your system. Also, by using the API on a server that you own, can make it possible to manage employees' access so that they can share the same authentication token. On a more general note, the API wrapper's main reason to exist is so that you can integrate it into your own software in order to facilitate the automation of processes.
  • Its disadvantage is that it needs a programmer to write a software that will connect your business's processes and databases to the marketplace.

Demo

  • In order to make the testing process easier, every minute (server time) all products imported through a testing account will be automatically approved/rejected. The approval rule is the following:
    • price <= 5000 = approve
    • price > 5000 = reject

Project's structure

Namespaces and classes

Main namespace: celmarket

Config

Contains constants pointing to the server's address and a method to easily switch to the demo server.

Link: https://github.com/celdotro/marketplace/blob/master/src/Config.php

Auth

A singleton for authentication with built-in token generation and regeneration methods.

Link: https://github.com/celdotro/marketplace/blob/master/src/Auth.php

Dispatcher

This is the main part of the API wrapper.

  • getGuzzleClient = enforces the use of a single connection
  • whitelistMethod = check if method is correct, otherwise don't contact the API unnecessarily
  • send ($method, $action, $data) = main function that does the following
    1. Validates method, action and data, then builds URL based on method and action
    2. Authenticates user
    3. Instantiates a guzzleClient object and makes a POST request to the API server with
      1. Data received via the 3rd parameter as the request's body
      2. Token used for bearer type authorization header
    4. Processes the response in order to throw relevant exception messages or return the correctly formed response

Link: https://github.com/celdotro/marketplace/blob/master/src/Dispatcher.php

Action and method namespaces

Actions are sub-namespaces and folders in the project's structure that contain multiple files, each one describing a class that groups relevant methods.

Actions

  1. AWB
  2. Campaigns
  3. Invoices
  4. Orders
  5. Pages
  6. Products
  7. Admin (administrative information)

Methods

Usually methods contain:

  • data sanity check
  • API's action and method names
  • data array setting and sometimes processing
  • dispatcher call
  • result returning statement

For more information regarding a method, check the accompanying comments for each method.

  • Prima pagina [RO] | First page [EN]
  • Instalare [RO] | Install [EN]
  • Informatii generale [RO] | General information [EN]
  • AWB [RO] | [EN]
    • Adaugare [RO] | Import [EN]
    • Stergere [RO] | Delete [EN]
    • Listare [RO] | Print [EN]
    • Status [RO] | Status [EN]
    • Generare AWB [RO] | Generate AWB [EN]
  • Campanii [RO] | Campaigns [EN]
    • Adaugare campanie [RO] | Add campaign [EN]
    • Salvare campanie [RO] | Save campaign [EN]
    • Citire campanie [RO] | Read campaign [EN]
    • Adaugare produs in campanie [RO] | Add product to campaign [EN]
    • Salvare produs in campanie [RO] | Save product in campaign [EN]
    • Eliminare produs din campanie [RO] | Remove product from campaign [EN]
    • Listare campanii active [RO] | List active campaigns [EN]
    • Setare stoc limitat [RO] | Set limited stock [EN]
    • Preia campaniile de cupoane [RO] | Get coupon campaigns [EN]
    • Date campanie cupoane [RO] | Coupon campaign data [EN]
    • Adaugare campanie cupoane noua [RO] | Add new coupon campaign [EN]
    • Genereaza cupon [RO] | Generate coupon [EN]
    • Schimbare status cupon [RO] | Change coupon status [EN]
    • Verifica utilizarea cuponului [RO] | Check coupon usage [EN]
    • Date cupon [RO] | Coupons data [EN]
    • Adaugare grup de produse in campanie [RO] | Add group of products to campaign [EN]
  • Facturi [RO] | Invoices [EN]
    • Listeaza facturi [RO] | List invoices [EN]
    • Adaugare factura [RO] | Add invoice [EN]
    • Printare factura [RO] | Print invoice [EN]
    • Stergere factura [RO] | Remove invoice [EN]
  • Comenzi [RO] | Orders [EN]
    • Listare [RO] | List [EN]
    • Actualizare [RO] | Update [EN]
    • Datele unei comenzi [RO] | Order's data [EN]
    • Anulare [RO] | Cancel [EN]
    • Sumar [RO] | Summary [EN]
    • Setare date AWB [RO] | Set AWB data [EN]
    • Adaugarea de noi produse in comanda [RO] | Add products to order [EN]
    • Stergerea unui model de produs din comanda [RO] | Remove product model from order [EN]
    • Confirmare comanda [RO] | Confirm order [EN]
    • Listare statusuri anulare [RO] | List cancelling statuses [EN]
    • Verifica plata pentru comanda [RO] | Check payment for order [EN]
    • Reactiveaza comanda [RO] | Reactivate order [EN]
    • Preluare lista statusuri pentru comenzi [RO] | Retrieve list of statuses for orders [EN]
    • Actualizare SN [RO] | Update SN [EN]
    • Adauga observatiile comenzii[RO] | Add order observations [EN]
    • Import factura [RO] | Import Invoice [EN]
    • Stornare comanda [RO] | Order cancellation [EN]
    • Schimba statusul unui produs din comanda [RO] | Changes the status of a product from a specific order [EN]
    • Listare statusuri comenzi [RO] | List orders statuses [EN]
    • Listeaza statusurile produselor din comanda [RO] | List order product statuses [EN]
    • Preia metode de plata [RO] | Get payment methods [EN]
    • Schimba modul de plata [RO] | Change order payment method [EN]
    • Finalizeaza comanda [RO] | Finish order [EN]
    • Tipareste comanda [RO] | Print order [EN]
    • Retur produs [RO] | Return product [EN]
    • Finalizare combinata [RO] | Finish combined [EN]
    • Adaugare greutate [RO] | Add weight [EN]
    • Schimba data finalizarii [RO] | Change finishing date [EN]
    • Disputa comanda [RO] | Mark order as disputed [EN]
  • Pagini [RO] | Pages [EN]
    • Listare [RO] | List [EN]
    • Salvare [RO] | Save [EN]
    • Stergere [RO] | Remove [EN]
  • Produse [RO] | Products [EN]
    • Listare categorii [RO] | List categories [EN]
    • Listare produse [RO] | List products [EN]
    • Import produse [RO] | Import products [EN]
    • Listare status import produse [EN] | List product import status [EN]
    • Actualizare stoc, pret, status [RO] | Update stock, price, status [EN]
    • Adaugare bonus [RO] | Add bonus [EN]
    • Listare bonus [RO] | Get bonus [EN]
    • Stergere bonus [RO] | Delete bonus [EN]
    • Actualizare date [RO] | Update data [EN]
    • Listeaza caracteristicile unei categorii [RO] | List characteristics of a category [EN]
    • Adauga noi valori unei caracteristici [RO] | Add new values to a characteristic [EN]
    • Listeaza filtre [RO] | List filters [EN]
    • Listeaza caracteristicile obligatorii ale unei categorii [RO] | List mandatory characteristics of a category [RO]
    • Preluare produse live din categorie [RO] | Retrieve live products from category [EN]
    • Adauga o noua oferta unui produs existent [RO] | Add offer to existing product [EN]
    • Preia produsele live pe categorii [RO] | Get live products categories [EN]
    • Actualizeaza status produs [RO] | Update products status [EN]
    • Exporta produse [RO] | Export products [EN]
    • Listeaza familiile de produse [RO] | List product families [EN]
    • Adauga produs in familie [RO] | Add product to family [EN]
    • Preia produs din familie [RO] | Get product from family [EN]
    • Elimina produs din familie [RO] | Remove product from family [EN]
    • Actualizare promotie produs [RO] | Update product promotion [EN]
    • Preia ID producator [RO] | Get manufacturer ID [EN]
    • Adauga familie de produse [RO] | Add products family [EN]
    • Preia lista produselor in asteptare [RO] | Get waiting products list [EN]
    • Preia lista produse respinse [RO] | Get rejected products list [EN]
  • Email [RO] | Email [EN]
    • Listare email-uri pred`efinite pentru comenzi [RO] | Predefined email list for orders [EN]
    • Preia email-urile unui client pentru o comanda [RO] | Get client emails for an order [EN]
    • Trimite email aferent comenzii [RO] | Send predefined order email [EN]
    • Trimite email personalizat aferent comenzii [RO] | Send custom order email [EN]
    • Trimitere raport bug [RO] | Send bug report [EN]
    • Preia email-urile pentru produse [RO] | Retrieve products emails [EN]
    • Raspunde email-ului unui produs [RO] | Answer a specific email for a product [EN]
    • Preia cererile de service [RO] | Get service requests[EN]
    • Raspunde unei cereri de service [RO] | Answer service request [EN]
    • Preia cererile de retur [RO] | Get return requests [EN]
    • Raspunde cererii de retur [RO] | Answer return request [EN]
    • Notificare eliminare factura [RO] | Notify invoice removal [EN]
    • Preia intrebari comanda [RO] | Get order questions [EN]
    • Raspunde intrebarii comenzii [RO] | Answer order's question [EN]
    • Descarca atasamentul email-ului comenzii [RO] | Download order email attachment [EN]
    • Numara cererile de retur [RO] | Count return requests [EN]
    • Trimitere notificare de stergere a AWB-ului [RO] | Send AWB notification removal [EN]
    • Preia cerere retur [RO] | Get return request [EN]
    • Preia cerere service [RO] | Get service request [EN]
    • Preia mesajele comenzilor [RO] | Get orders messages [EN]
    • Preia numarul de mesaje fara raspuns ale comenzilor [RO] | Get unanswered orders message number [EN]
  • Informatii administrative [RO] | Administrative information [EN]
    • Date plati facturi [RO] | Invoices payment data [EN]
    • Date plati pentru o factura [RO] | Detailed payment data for an invoice [EN]
    • Istoric importuri [RO] | Import history [EN]
    • Adaugare adresa [RO] | Add address [EN]
    • Editare adresa [RO] | Edit address [EN]
    • Listare adrese [RO] | List addresses [EN]
    • Stergere adresa [RO] | Delete address [EN]
    • Actualizeaza informatiile contului [RO] | Update account information [EN]
    • Listeaza informatiile contului [RO] | List account information [EN]
    • Listeaza produsele facturabile [RO] | List billable products [EN]
    • Factureaza produse [RO] | Bill products [EN]
    • Preia cererile de service [RO] | Retrieve service requests [EN]
    • Preia taxa de transport [RO] | Retrieve transport tax[EN]
    • Actualizeaza taxa de transport [RO] | Update transport tax[EN]
    • Actualizare in grup a taxelor de transport [RO] | Bulk update transport taxes [EN]
    • Actualizeaza informatiile livrarii [RO] | Update delivery information [EN]
    • Preia informatii despre livrare [RO] | Get delivery information [EN]
    • Seteaza gata de livrare [RO] | Set as ready for delivery [EN]
    • Preia notificarile [RO] | Get notifications [EN]
    • Marcheaza notificare drept citita [RO] | Mark as seen [EN]
    • Adauga curier [RO] | Add courier [EN]
    • Preia date despre afiliat [RO] | Get affiliate's data [EN]
    • Marcheaza toate notificarile drept citite [RO] | Mark all as read [EN]
    • Preia lista curieri [RO] | Get couriers [EN]
    • Preia FAQ categorii [RO] | Get categories FAQ [EN]
    • Continut FAQ categorie [RO] | Category FAQ contents [EN]
    • Preia coduri MCC [RO] | Get MCC Codes [EN]
    • Atribuie cod MCC [RO] | Add MCC Code [EN]
    • Preia MCC-uri atribuite [RO] | Get currently used MCC [EN]
    • Elimina MCC [RO] | Remove MCC Code [EN]
    • Preia informatii despre accesul la categorii [RO] | Retrieve information about categories access [EN]
    • Cere acces la o categorie [RO] | Request category access [EN]
    • Lista cereri acces la categorii [RO] | Category access request list [EN]
    • Abonare la newsletter API [RO] | Subscribe to API newsletter [EN]
    • Dezabonare de la newsletter API [RO] | Unsubscribe from API newsletter [EN]
    • Status abonare newsletter API [RO] | Subscription status to API newsletter [EN]
    • Preia informatii combinate [RO] | Get combined information [EN]
    • Preluare prefix [RO] | Get prefix [EN]
    • Listare pagini cu incalcari de contract [RO] | List pages that breach the contract [EN]
  • Rapoarte [RO] | Reports [EN]
    • Plati cu cardul [RO] | Card payments [EN]
    • Diferenta pret [RO] | Price difference [EN]
  • Plati [RO] | Payments [EN]
    • Preia platile lunare cu cardul [RO] | Monthly card payments [EN]
    • Lunile platilor cu cardul [RO] | Card payments months [EN]
    • Lunile borderourilor [RO] | Payments summary months [EN]
    • Comisioane nefacturate [RO] | Unbilled commissions [EN]
    • Comisioane facturate [RO] | Billed commissions [EN]
    • Aproba comanda [RO] | Approve order [EN]
    • Respinge comanda [RO] | Reject order [EN]
    • Genereaza factura [RO] | Generate invoice [EN]
    • Descarca factura [RO] | Download invoice [EN]
    • Descarca borderou XLSX [RO] | Download summary XLSX [EN]
    • Descarca borderou PDF [RO] | Download summary PDF [EN]
Clone this wiki locally