com.ibm.commerce.returns.commands

Class ReturnProcessCmdImpl

  • All Implemented Interfaces:
    AccCommand, ControllerCommand, ECCommand, ECTargetableCommand, ReturnProcessCmd, Protectable, com.ibm.websphere.cache.Sizeable, com.ibm.websphere.command.CacheableCommand, com.ibm.websphere.command.Command, com.ibm.websphere.command.CommandCaller, com.ibm.websphere.command.TargetableCommand, java.io.Serializable


    public class ReturnProcessCmdImpl
    extends ReturnBaseCmdImpl
    implements ReturnProcessCmd
    This is the default implementation of the controller command ReturnProcessCmd interface.

    Finalizes the agreement between the merchant and the customer as to the terms of a return merchandise authorization (RMA).

    Parameters

    RMAId (mandatory)
    The Id of the RMA to finalize.
    refundPolicyId (optional)
    The policy Id of the refund mechanism to use. This is mandatory if there is more than one possible refund policy and it was not specified in a prior call to ReturnProcess for this RMA.
    URL (mandatory)
    The URL to redirect to if the RMA is approved.
    URL2 (optional)
    The URL to redirect to if the RMA is not approved. If not specified, the value specified in the URL parameter will be used.
    RMAExpiryURL (optional)
    The URL to redirect to if the RMA had expired and was re-prepared.

    Behaviour

    • Checks to see if the RMA exists. If not, ECApplicationException is thrown with message _ERR_RMA_IN_INVALID_STATE_FOR_COMMAND.
    • Checks to see if a refund policy has been specified, either within the command call or previously, or because there is only one choice. If not, returns an error. If not, ECApplicationException is thrown with message_ERR_BAD_MISSING_CMD_PARAMETER.
    • Checks to see if the RMA has been prepared. If not, ECApplicationException is thrown with message _ERR_RMA_IN_INVALID_STATE_FOR_COMMAND.
    • Calls the RePrepareExpiredRMACmd task command to check to see if the RMAGOODFOR time frame has expired for any RMA Item. If so, calls the ReturnPrepare command and a redirection will take place to the RMAExpiryURL if it is specified. If the RMAExpiryURL parameter is not specified, then ReturnProcess completes normally.
    • Calls the CalculateRMAApprovalCmd task command to calculate the overall status of the Return. If the RMA is approved, then the command marks it as approved (RMA.status='APP'), logs the authorization notice, and redirects to the URL specified. If the RMA is not approved, then the command marks it as pending (RMA.status='PND') and redirects to URL2.
    • Calls PrimeRefundCmd to store the refund information in a backend system.

Utilizes these access beans

See Also:
Serialized Form
    • Constructor Detail

      • ReturnProcessCmdImpl

        public ReturnProcessCmdImpl()
        ReturnProcessCmdImpl constructor.
    • Method Detail

      • reset

        public void reset()
        Reset the command.
        Specified by:
        reset in interface com.ibm.websphere.command.Command
        Overrides:
        reset in class AbstractECTargetableCommand
      • validateParameters

        public void validateParameters()
                                throws ECException
        Check mandatory parameters.

        Parameters

        • RMA.status
          • the status of the RMA must be in process or in edit state
        • URL
          • The URL to redirect to if the RMA is approved.
        • refundPolicyId
          • the refundPolicyId id for the RMA.

        Specified by:
        validateParameters in interface ECCommand
        Overrides:
        validateParameters in class AbstractECTargetableCommand
        Throws:
        ECApplicationException - If the RMA.status is not in the right state,(Process or edit) throws com.ibm.commerce.exception.ECApplicationException with ECMessage.ECMessage._ERR_RMA_IN_INVALID_STATE_FOR_COMMAND

        ECApplicationException - If there is no refundPolicyId or if no "approved" redirect URL has been specified, throws com.ibm.commerce.exception.ECApplicationException with ECMessage._ERR_BAD_MISSING_CMD_PARAMETER
        ECException