Les produits génériques et spécifiques utilisent les opérations standard de l’API sur les Produits. Aucun endpoint métier supplémentaire n’est nécessaire : les mêmes champs, listes connexes, validations et calculs sont utilisés depuis Kafinea, l’API REST et le serveur MCP.
Avant une intégration, utilisez describe sur le module Produits. Si les champs attendus ne sont pas retournés, l’administrateur doit les rendre visibles dans le gestionnaire d’agencement.
Créer ou modifier un produit générique #
Utilisez create ou revise et renseignez la nature du produit ainsi que sa politique tarifaire. L’exemple suivant transforme un produit existant en produit générique avec un prix calculé depuis le spécifique le moins cher :
curl -X POST "https://apps.kafinea.com/{instance}/webservice.php" \
--data-urlencode "operation=revise" \
--data-urlencode "sessionName=YOUR_SESSION_ID" \
--data-urlencode 'element={
"id": "14x1201",
"is_standard": 1,
"standard_pricing_mode": "CHEAPEST_SPECIFIC",
"standard_margin_pct": 25,
"standard_price_rounding": "0.01"
}'
Le prix est recalculé automatiquement après l’enregistrement. En mode de saisie manuelle, le prix fourni reste inchangé.
Rattacher un produit spécifique #
Deux chemins équivalents sont disponibles.
Vous pouvez réviser le produit spécifique en renseignant son produit générique parent :
curl -X POST "https://apps.kafinea.com/{instance}/webservice.php" \
--data-urlencode "operation=revise" \
--data-urlencode "sessionName=YOUR_SESSION_ID" \
--data-urlencode 'element={
"id": "14x1250",
"is_standard": 0,
"standard_parent_id": "14x1201"
}'
Vous pouvez également utiliser la liste connexe déclarée sur le produit générique :
curl -X POST "https://apps.kafinea.com/{instance}/webservice.php" \
--data-urlencode "operation=add_related" \
--data-urlencode "sessionName=YOUR_SESSION_ID" \
--data-urlencode "sourceRecordId=14x1201" \
--data-urlencode "relatedRecordId=14x1250" \
--data-urlencode "relationIdLabel=Specific Products"
Dans les deux cas, Kafinea valide que le parent est bien un produit générique, enregistre le spécifique par le chemin normal de la fiche et recalcule les prix concernés.
Pour retirer le rattachement, révisez le produit spécifique avec une valeur vide :
{
"id": "14x1250",
"standard_parent_id": ""
}
Lire les produits spécifiques #
Utilisez relatedtypes pour découvrir la liste connexe, puis query_related avec son libellé exact. Vous pouvez aussi interroger directement les Produits avec query lorsque vous connaissez l’identifiant du parent.
Le serveur MCP expose les mêmes possibilités avec relatedtypes, query_related, add_related, find_records, get_record et update_record. Il n’introduit pas de vocabulaire propre aux produits génériques.
Droits et recalculs #
La lecture respecte les droits d’accès de l’utilisateur connecté. Un rattachement par liste connexe exige le droit de modifier le produit générique et le produit spécifique, car l’opération met à jour la fiche du spécifique.
Les recalculs nécessaires sont lancés automatiquement après les modifications de configuration, de coût, de prix, de rattachement ou d’offre fournisseur. Une erreur de validation ou d’autorisation interrompt l’opération avec un message explicite.