Les pages du carnet d'adresses du modèle de magasin permettent aux clients enregistrés d'ajouter des adresses d'expédition ou de facturation à un carnet d'adresses.
Un client enregistré se connecte puis clique sur Modifier carnet d'adresses dans la page Mon compte (myaccount.jsp). La page Carnet d'adresses (addressbookform.jsp) s'affiche. Dans cette page, un client peut ajouter une nouvelle adresse ou modifier une adresse existante. Pour plus d'informations, consultez les sections relatives à l'ajout d'une nouvelle adresse et à la modification d'une adresse.
Les procédures du carnet d'adresses du modèle de magasin utilisent les fichiers JSP suivants :
Instructions
account.jsp utilise les instructions suivantes :
addressbookform.jsp utilise les instructions suivantes :
address.jsp utilise les instructions suivantes :
Beans
addressbook.jsp utilise les beans suivants :
address.jsp utilise les beans suivants :
Détails d'implémentation
Remarque : pour plus d'informations sur les techniques d'implémentation communes à toutes les pages de modèle de magasin, parmi lesquelles les informations multiculturelles, reportez-vous à la rubrique Pages du modèle de magasin : techniques d'implémentation communes.
Si un client clique sur Modifier carnet d'adresses dans la page Mon compte, l'instruction AddressBookForm est appelée. L'instruction AddressBookForm charge alors la page Carnet d'adresses (addressbookform.jsp). Si un client clique sur Ajouter une nouvelle adresse, l'instruction AddressForm est appelée. L'instruction AddressForm est enregistrée avec le fichier AddressForm.jsp de la base de données et vérifie le paramètre de la page. Si la page est définie à la page newshipaddress la Vérification 1 : ajouter l'Adresse de facturation (billingaddress.jsp) est chargée, autrement la page Ajouter une adresse (address.jsp) est chargée.
Remarque : AddressForm va charger la page billingaddress.jsp si elle est installée sur newshipaddress à cause du traitement d'erreur pour l'ajout d'une adresse de facturation. Si page égale newshipaddress, cela signifie que les clients ont crée une nouvelle adresse à partir de la page d'adresse de facturation, et ont essayé de se rendre à la page d'adresse de livraison, mais une erreur s'est produite. En définitive, les clients sont ramenés à la page Adresse de facturation.
Une fois que le client a complété les zones de la page Ajouter une adresse (address.jsp), le système vérifie l'existence de addressId . Si addressId existe, le carnet d'adresses est mis à jour. Sinon, une adresse est créée. Si l'ID d'adresse addressId est fourni, le fichier address.jsp est chargé en tant que page de mise à jour de l'adresse. Dans le cas contraire, il charge la page Ajouter une adresse. Dans la page de mise à jour d'adresse, les zones d'entrée sont pré-remplies avec les anciennes valeurs comme indiqué ci-dessous :
if (addressId != null)
bUpdateAddress = true;
else
bUpdateAddress = false;
Lorsqu'un client fournit une adresse et clique sur Envoyer à la fois à la page Ajouter une adresse (address.jsp) et à la page Mettre à jour l'adresse (address.jsp), l'instruction AddressAdd est appelée. La page Carnet d'adresses (addressbookform.jsp) affiche les adresses existantes.
Les client peuvent cliquer sur Modification du carnet d'adresses à partir de la page Choix de l'adresse de livraison, pour accéder au carnet d'adresses. Si les clients se rendent à la page du carnet d'adresses à partir de la page Choix de l'adresse de livraison, la page du carnet d'adresses affiche le lien Retourner au règlement des achats. Ces clients n'ont pas le droit de supprimer d'adresse de la page Carnet d'adresses. De ce fait, un nouveau code est ajouté pour vérifier que les clients proviennent de la page Choix de l'adresse de livraison, comme indiqué ci-dessous :
String mode = jhelper.getParameter("mode"); if (mode.equals("AddressBookReturnToCheckout"))
Traitement d'erreurs
Si le client ne remplit pas les zones obligatoires des pages Ajouter une adresse (address.jsp) ou Mettre à jour l'adresse (address.jsp), le système lui demande de revenir sur ces zones. Le code suivant gère l'erreur :
TypedProperty hshErrorProperties = bnError.getExceptionData();
if (hshErrorProperties != null)
{
//L'adresse d'envoi comporte une erreur.
strErrorCode = hshErrorProperties.getString(ECConstants.EC_ERROR_CODE, "");
if (strErrorCode.equals(ECUserConstants.EC_ADDR_ERR_BAD_NICKNAME))
strErrorMessage = infashiontext.getString("ERROR_MESSAGE1");
...
}
![]() |