PdC de paiement fractionné : prérequis et configuration de l’environnement
Suivez toutes les étapes de ce tutoriel avant d’exécuter l’une des invites de build. La raison la plus courante de l’interruption du flux en milieu de tutoriel est qu’une seule étape n’est pas renseignée.
1. Configuration requise pour Adobe Commerce
- Adobe Commerce 2.4.5 ou version ultérieure (sur site ou Commerce Cloud)
- Accès Git au projet Commerce (vous ajoutez un module sous
app/code/) - Accès à Commerce Admin
Commerce Cloud uniquement : activer les événements I/O
Ajoutez les éléments suivants à .magento.env.yaml et déployez-les avant d’ajouter le module :
stage:
global:
ENABLE_EVENTING: true
Avertissement : ce déploiement doit se terminer correctement avant que la dépendance du module Événement I/O puisse être résolue.
2. Configuration d’administration de Commerce
Effectuez ces étapes avant toute autre chose. Le JavaScript d’extraction dépend des correspondances de chaîne exactes.
2 bis. Activer l’option Contre remboursement avec le titre exact
Stores > Configuration > Sales > Payment Methods > Cash On Delivery Payment
- Enabled : Oui
- Title :
Cash(cette chaîne exacte est celle à laquelle correspond le JavaScript de passage en caisse)
Remarque : si votre boutique utilise une implémentation ou un titre de paiement à la livraison (COD) différent, ajustez les
payment-method-helper.jsdans le module Commerce.
2 ter. Activer le crédit de magasin
Stores > Configuration > Customers > Customer Configuration > Store Credit Options
- Enable Store Credit Functionality : Oui
2 quater. Ajouter du crédit de boutique à votre client de test
Customers > All Customers > [votre client de test] > Store Credit > Update Balance
Ajoutez au moins 50 de dollars de crédit en magasin. Vous effectuerez un test avec une commande inférieure à 100 $ au total.
2j. Création de l’intégration Commerce
System > Integrations > Add New Integration
-
Name :
Split Payment App Builder(ou tout nom que vous préférez) -
Dans l’onglet API , accordez au minimum :
Magento_Sales::actions(obligatoire pour le point d’entréecash-received)Magento_Sales::cancel(obligatoire pour le point d’entréecash-decline)- Gestion des devis ou des paniers (complet ou un sous-ensemble approprié)
- Customer balance (complet ou un sous-ensemble approprié)
Sélectionnez Save, puis Activate.
Copiez les quatre valeurs ; elles ne s’affichent qu’une seule fois :
COMMERCE_CONSUMER_KEYCOMMERCE_CONSUMER_SECRETCOMMERCE_ACCESS_TOKENCOMMERCE_ACCESS_TOKEN_SECRETStockez ces valeurs en toute sécurité. Vous en avez besoin dans chaque fichier .env d’App Builder.
3. Adobe Developer Console et App Builder
- Accès à une organisation Adobe Developer Console
- Un projet (nouveau ou réutilisé)
- Un espace de travail configuré ; les invites supposent Stage
- Adobe I/O Events ajouté en tant que service à l’espace de travail
- connecté en tant que fournisseur d’événements pour l’espace de travail
Le code d’événement utilisé dans la preuve de concept est le suivant : com.adobe.commerce.observer.sales_order_place_before
Si vous n’avez pas connecté Commerce en tant que fournisseur d’événements, consultez Configuration de Commerce pour émettre des événements vers Adobe I/O dans le guide Extensibilité de Commerce.
4. Environnement de développement local
# Required versions
node --version # 18.x or later
npm --version # any recent version
# Adobe I/O CLI
npm install -g @adobe/aio-cli
# Authenticate
aio login
# Select your project and workspace
aio app use
# Confirm the org, project, and workspace shown are correct
5. Deux répertoires de projet à connaître
Ce tutoriel utilise deux racines de répertoire distinctes. Gardez-les séparées.
racine du projet (votre référentiel git Magento) :
<commerce-root>/
└── app/code/Client/SplitPayment/ ← Module goes here
Racine du projet (le dossier split-payment-orchestrator du package source ou un nouveau projet que vous créez) :
split-payment-orchestrator/
├── app.config.yaml
├── package.json
├── .env ← Copy from .env.example, then fill in
└── actions/
6. entity_id comparé à increment_id
Utilisez toujours
entity_id(l’identifiant numérique de base de données), et nonincrement_id(par exemple000000042), dans les appels REST.
Recherchez des entity_id à partir de l’URL de commande Commerce Admin :
/admin/sales/order/view/order_id/42/ → entity_id = 42
Ou à partir du script de simulation :
node scripts/simulate-split-payment.mjs show 42
7. Le seuil de 100 $
L’interface utilisateur de paiement partagé et les commandes cibles de garde de seuil 100,00 $ ou moins. Le flux se comporte comme suit :
- À 100 $ ou moins : l’interface utilisateur de paiement partagé s’affiche ; le client peut définir un fractionnement de l’encaisse et du crédit en magasin
- Au-dessus de $100:
CheckoutPluginrenvoie une erreur à l’étape de paiement
Pour effectuer un test, créez un panier dont le sous-total, les frais d’expédition et les taxes sont inférieurs ou égaux à 100 $ (par exemple, un produit de moins de 90 $, de sorte que les frais d’expédition et de taxe soient toujours inclus dans la limite).
Le seuil est stocké dans :
- Configuration de Commerce :
split_payment/general/threshold(100par défaut enetc/config.xml) - Environnement App Builder :
PAYMENT_THRESHOLD=100(doit correspondre à Commerce).
8. Fastly (Commerce Cloud uniquement)
Les actions App Builder appellent Commerce via REST (/rest/V1/split-payment/orders/...). Si votre projet Commerce Cloud utilise Fastly avec une liste autorisée IP, les adresses IP de sortie du runtime App Builder doivent être placées sur la liste autorisée.
Comment vérifier : Exécutez d’abord le script de simulation (curl direct avec signature OAuth). Si cela fonctionne mais que l’action App Builder renvoie 403, Fastly bloque probablement la requête.
Utilisez la documentation actuelle d’Adobe sur les plages d’adresses IP de sortie App Builder et ajoutez-les à votre configuration Fastly si nécessaire.
Liste de contrôle de vérification
Avant de démarrer les invites de build, vérifiez les points suivants :
- [ ] version de Commerce est la version 2.4.5 ou ultérieure
- [ Les événements d’E/S ] sont activés (Commerce Cloud) et déployés.
- [ ] l’option Contre remboursement est activée avec le titre défini exactement sur
Cash - [ Le crédit de la boutique ] est activé.
- [ ] Le client du test a un crédit de magasin d’au moins 50 $
- [ ] L’intégration Commerce est créée et activée, et les quatre valeurs OAuth sont enregistrées
- [ ] Le service Événements I/O et le fournisseur d’événements Commerce sont configurés pour le projet App Builder
- [ ]
aio loginest terminé et l’espace de travail approprié est sélectionné avecaio app use - [ ] Node.js version 18 ou ultérieure est installé et l’interface de ligne de commande
aioest installée - [ ] fichiers
.envsont préparés conformément à Répartition des POC de paiement : référence des variables d’environnement (et votre package source, le cas échéant)