Evyoo POS API v1

Stock et prix d'un produit

Le prix et le stock sont calculés pour vous dans chaque produit. Lisez un produit :

bash
curl "https://votre-entreprise.evyooht.com/api/v1/products/463" \
  -H "Authorization: Bearer evy_at_votre_jeton"
powershell
$headers = @{ Authorization = "Bearer evy_at_votre_jeton" }
Invoke-RestMethod -Uri "https://votre-entreprise.evyooht.com/api/v1/products/463" -Headers $headers
javascript
const response = await fetch("https://votre-entreprise.evyooht.com/api/v1/products/463", {
  headers: { Authorization: "Bearer evy_at_votre_jeton" },
});
const data = await response.json();
console.log(data);
php
$ch = curl_init("https://votre-entreprise.evyooht.com/api/v1/products/463");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer evy_at_votre_jeton"],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data);
python
import requests

response = requests.get(
    "https://votre-entreprise.evyooht.com/api/v1/products/463",
    headers={"Authorization": "Bearer evy_at_votre_jeton"},
)
print(response.json())

Réponse (raccourcie) :

json
{
  "data": {
    "id": 463,
    "name": "Rouleau papier thermique 57x18m",
    "quantity_total": 12.0,
    "on_sales_order": 4.0,
    "price": 125.0,
    "second_unit_price": 250.0,
    "price_lists": [
      { "price_list_id": 1, "price": 125.0, "second_unit_price": 250.0 },
      { "price_list_id": 2, "price": 118.0, "second_unit_price": 236.0 }
    ],
    "stock": [
      { "store_id": 1, "quantity": 8.0, "on_sales_order": 3.0, "on_purchase_order": 0.0 },
      { "store_id": 2, "quantity": 4.0, "on_sales_order": 1.0, "on_purchase_order": 0.0 }
    ]
  }
}

Le stock#

ChampSens
stockLe stock par succursale : une entrée par succursale où le produit est géré.
stock[].quantityLa quantité en stock dans cette succursale.
stock[].on_sales_orderLa quantité réservée sur des commandes de vente en cours.
stock[].on_purchase_orderLa quantité attendue sur des bons de commande en cours.
quantity_totalLe total, toutes succursales visibles.
on_sales_order, on_purchase_orderLes mêmes totaux, toutes succursales visibles.

Pour connaître le nom d'une succursale à partir de son store_id :

bash
curl "https://votre-entreprise.evyooht.com/api/v1/stores" \
  -H "Authorization: Bearer evy_at_votre_jeton"
powershell
$headers = @{ Authorization = "Bearer evy_at_votre_jeton" }
Invoke-RestMethod -Uri "https://votre-entreprise.evyooht.com/api/v1/stores" -Headers $headers
javascript
const response = await fetch("https://votre-entreprise.evyooht.com/api/v1/stores", {
  headers: { Authorization: "Bearer evy_at_votre_jeton" },
});
const data = await response.json();
console.log(data);
php
$ch = curl_init("https://votre-entreprise.evyooht.com/api/v1/stores");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer evy_at_votre_jeton"],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data);
python
import requests

response = requests.get(
    "https://votre-entreprise.evyooht.com/api/v1/stores",
    headers={"Authorization": "Bearer evy_at_votre_jeton"},
)
print(response.json())

Le prix#

Un produit a un prix de base et un prix par liste de prix (Détaillant, Distributeur…).

  • price : le prix de votre clé.
  • second_unit_price : le prix de la seconde unité de vente, quand le produit s'en vend deux (par exemple à l'unité et à la caisse).
  • price_lists : le prix dans chaque liste de prix. Il n'est renvoyé que si votre clé n'est pas limitée à une liste.

Une clé limitée à une liste de prix reçoit un seul price : celui de sa liste ; si le prix de la liste est à zéro, c'est le prix de base (comme dans Evyoo POS). Elle ne voit pas les autres listes, et la ressource price-lists se réduit à la sienne.

bash
curl "https://votre-entreprise.evyooht.com/api/v1/price-lists" \
  -H "Authorization: Bearer evy_at_votre_jeton"
powershell
$headers = @{ Authorization = "Bearer evy_at_votre_jeton" }
Invoke-RestMethod -Uri "https://votre-entreprise.evyooht.com/api/v1/price-lists" -Headers $headers
javascript
const response = await fetch("https://votre-entreprise.evyooht.com/api/v1/price-lists", {
  headers: { Authorization: "Bearer evy_at_votre_jeton" },
});
const data = await response.json();
console.log(data);
php
$ch = curl_init("https://votre-entreprise.evyooht.com/api/v1/price-lists");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer evy_at_votre_jeton"],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data);
python
import requests

response = requests.get(
    "https://votre-entreprise.evyooht.com/api/v1/price-lists",
    headers={"Authorization": "Bearer evy_at_votre_jeton"},
)
print(response.json())

Savoir si un produit est disponible#

L'API donne les faits (quantité par succursale, réservations). C'est à vous de décider ce que « disponible » veut dire pour votre cas : par exemple quantity > 0 dans la succursale qui vous concerne, ou quantity - on_sales_order > 0 si vous ne voulez pas vendre ce qui est déjà réservé.

Les coûts#

Les coûts du produit (cost, average_cost, order_cost) n'existent que si votre clé a la permission costs:read. Voir les notions.