12 fév. 2024 11:13

Gestion des réceptions et expéditions de produits par l'API Toucan

Un compte délègue l'entreposage de certains de ses produits à une entreprise externe.
Cette publication explique comment utiliser l'API de Toucan pour y parvenir.


Contexte

  • Un compte délègue l'entreposage de certains de ses produits à une entreprise externe et enregistre des adresses d'entreposage pour celle-ci dans son module d'entreposage (ex.: BAQ)
  • Une entreprise est responsable de l'entreposage et indirectement de la réception et de l'expédition de produits (ex.: Congébec) pour ce compte
  • Cette entreprise (Congébec) veut pouvoir:
    •  consulter la liste des produits qu'elle va devoir recevoir et entreposer
    •  trouver un produit par sa référence (étiquette)
    •  rentrer la quantité reçue dans leur entrepôt, potentiellement avec des informations additionnelles comme du texte et une photo, une référence externe
    •  consulter la liste des produits qu'elle entrepose et va devoir expédier
    •  rentrer la quantité expédiée depuis leur entrepôt, potentiellement avec des informations additionnelles comme du texte et une photo, une référence externe
  •  Le compte (BAQ) veut pouvoir:
    •    - consulter son stock en cours dans les entrepôts gérés par l'entreprise tierce (Congébec)

Pré-requis

Consulter la liste des produits à recevoir dans un entrepôt créés entre deux dates

  • $ACCOUNT_ID L'identifiant toucan du compte 
  • $ID de l'adresse de l'entrepot dans le CRM du compte, ex `999`
  • $FROM_CREATION_DATE la liste des produits à recevoir à partir d'une date de création,  ex: `2023-02-16`
  • $TO_CREATION_DATE la liste des produits à recevoir jusqu'à une date de création,  ex: `2023-02-16`

Appel d'API (GET)
curl -X GET "https://app-staging.toucanhq.com/$ACCOUNT_ID/api/v1/warehouses/incoming_items?full=true&q[created_at_gteq]=$FROM_CREATION_DATE&q[created_at_lteq]=$TO_CREATION_DATE&q[address_id_eq]=$ID" -H  "accept: application/json"

Consulter la liste des produits à recevoir dans un entrepôt entre deux dates de réception prévues

  • $ACCOUNT_ID L'identifiant toucan du compte 
  • $ID de l'adresse de l'entrepot dans le CRM du compte, ex `999`
  • $FROM_DATE la liste des produits à recevoir à partir d'une date de réception prévue,  ex: `2023-02-16`
  • $TO_DATE la liste des produits à recevoir jusqu'`a une date de réception prévue,  ex: `2023-02-16`

Appel d'API (GET)
curl -X GET "https://app-staging.toucanhq.com/$ACCOUNT_ID/api/v1/warehouses/incoming_items?full=true&q[location_at_gteq]=$FROM_DATE&q[location_at_lteq]=$TO_DATE&q[address_id_eq]=$ID" -H  "accept: application/json"

Filtrer la liste des produits à recevoir dans un entrepôt par nom de produit

  • $ACCOUNT_ID L'identifiant toucan du compte 
  • $ID de l'adresse de l'entrepot dans le CRM du compte, ex `999`
  • $PRODUCT la liste des produits à recevoir à partir d'une date de réception prévue,  ex: `lait`
Appel d'API (GET)
curl -X GET "https://app-staging.toucanhq.com/$ACCOUNT_ID/api/v1/warehouses/incoming_items?full=true&q[name_or_item_code_or_item_name_or_item_category_name_or_item_sub_category_name_or_product_variant_title_i_cont]=$PRODUCT&q[address_id_eq]=$ID" -H  "accept: application/json"

Afficher une ligne de commande par son identifiant unique

  • $ACCOUNT_ID L'identifiant toucan du compte 
  • $ID de la ligne de commande à recevoir ou expédier, ex `1`
  • $PRODUCT la liste des produits à recevoir à partir d'une date de réception prévue,  ex: `lait`

Appel d'API (GET)
curl -X GET "https://app-staging.toucanhq.com/$ACCOUNT_ID/api/v1/transport_requests/$ID" -H  "accept: application/json"

Réceptionner une ligne de commande par son identifiant unique

  • $ACCOUNT_ID L'identifiant toucan du compte 
  • $ID de la ligne de commande à recevoir ou expédier, ex `1`
  • $STATUS_ENUM:
    • `received`

Exemple de JSON à envoyer:
{
  "status": "received",
  "address_id": 999,
  "quantity": 2,
  "total_weight_value": 985,
  "total_weight_unit": "kg", // valeurs possibles: `kg` ou `lb`
  "note": "",
  "timestamp: "", // si nulle, heure courante
}
Appel d'API (POST)
curl -X POST "https://app-staging.toucanhq.com/$ACCOUNT_ID/api/v1/item_inventories/$ID/trackings" -H  "accept: application/json"