[ http://jira.undersunconsulting.com/browse/OFBIZ-814?page=all ]
     
Marco Risaliti closed OFBIZ-814:
--------------------------------

     Resolution: Duplicate
    Fix Version:     (was: SVN)

replaced by https://issues.apache.org/jira/browse/OFBIZ-288

> FinAccount Transactions for Gift Certificates, Calling Cards, Customer 
> Accounts, etc.
> -------------------------------------------------------------------------------------
>
>          Key: OFBIZ-814
>          URL: http://jira.undersunconsulting.com/browse/OFBIZ-814
>      Project: [OFBiz] Open For Business
>         Type: New Feature
>   Components: accounting
>     Versions: SVN
>     Reporter: Si Chen
>     Assignee: Jira Administrator
>  Attachments: finaccount.bsh
>
>
> We will be implementing support for FinAccount and FinAccountTransactions as 
> a way to purchase and pay with gift certificates, calling cards, or customer 
> accounts in OFBiz.  Below is a general outline of how it would work:
> Setting up Gift Certificates as Products
> 1.Create a new ProductType = “FIN_ACCOUNT” with isPhysical=”N” and isDigital 
> = “Y”
> 2.Add a new field Product.fixedAmount which stores the amount of the gift 
> certificate.  (This allows the price to be different than the amount, for 
> promotions and such.)
> Ordering Gift Certificates
> 1.When gift certificate is ordered, system generates a unique random 12-digit 
> code of numbers and uppercase letters.  It then creates FinAccount, stores 
> email in a ContactMech and associates it with FinAccount through a 
> FinAccountContactMech.  It creates a CommunicationEvent for the gift message 
> and stores the gift message there, sets the CommunicationEvent to PENDING, 
> and associates it with FinAccount through a finAccountId on 
> CommunicationEvent.
> 2.Associate finAccountId with ShoppingCartItem, OrderItem, and InvoiceItem 
> with finAccountId. This allows us later to create a feature where people 
> could add value to a FinAccount.
> 3.When the order is created, the gift certificate products will be fulfilled 
> automatically and separately from the other physical products using the 
> checkDigitalFulfillment services.  Note: This will always be the case, 
> regardless of whether the physical items are in stock or not.  Separate 
> invoices will be generated for the gift certificates and physical products.
> 4.When a payment is processed, then the FinAccountTransaction is created for 
> the finAccountId. This assures that gift certificates won't be charged until 
> the payment is actually collected. FinAccountTransaction is only related to 
> payment.
> Using Gift Certificates to Pay 
> 1.Setting up Gift Certificates as PaymentMethods with PaymentMethodType = 
> FIN_ACCOUNT (or GIFT_CERTIFICATE) Model it similar to EXT_BILLACT payments 
> Add finAccountId to OrderPaymentPreference.  OrderPaymentPreference.maxAmount 
> stores maximum amount to be deducted from the FinAccount.
> 2.On check out, separate box for Gift Certificate code.
> 3.Look up FinAccount from gift certificate code (case insensitive)
> 4.Authorize the FinAccount (new authorizeFinAccount service) which checks if 
> gift certificate balance plus all un-expired authorizations (in a new entity 
> FinAccountAuths) > order amount
> 5.If not, return to ask user to add another payment method
> 6.Modify authOrderPaymentPreference so that for GIFT_CERTIFICATE it 
> authorizes based on balances of FinAccount in FinAccountTransactions and 
> FinAccountAuths and store the new authorization in FinAccountAuths
> 7.Modify captureOrderPayments to create a FinAccountTransaction.  Release 
> FinAccountAuth by updating its expiration date to time of payment.
> Email 
> 1.Email address is Stored in ContactMech and associated with 
> FinAccountContactMechPurpose
> 2.Message is stored as a CommunicationEvent with the finAccountId 
> 3.Create new ProductStoreEmailSetting for the template of the email
> 4.Get all CommunicationEvent which are PENDING with finAccountId, find 
> matching email setting from (3) based on type of CommunicationEvent, and send 
> them.
> 5.SECA to send email when any FinAccountTransaction happens?
> Order Cancellation
> 1.If an order is cancelled, we should release the authorization by setting 
> its expiration date to time in the past.
> Returns
> 1.New refundToFinAccount service which creates a Payment and a 
> FinAccountTransaction to increase value of FinAccount, related with paymentId
> 2.Modify processRefund/processCreditReturn to call service from (1).  If 
> multiple payment methods are available, refund to credit card, then to gift 
> certificates.  Each payment methods should be refunded up to the maximum of 
> the original OrderPaymentPreference amount.
> (Note about Recording Gift Certificate Authorizations: It is important to 
> record the authorizations explicitly rather than rely upon an implicit check 
> of current balances because orders usually cause inventory to be reserved for 
> the customer.  Thus, we don't want several FinAccount transactions to cause 
> excessive inventory to be set aside, when in fact the transactions could not 
> go through.)
> Entity Model Changes
> 1.New Product.fixedAmount field
> 2.FinAccountContactMechPurpose entity with fields: finAccountId*, 
> contactMechId*, fromDate*, thruDate, contactMechPurposeTypeId
> 3.New CommunicationEvent.finAccountId
> 4.OrderItem.finAccountId
> 5.InvoiceItem.finAccountId
> 6.OrderPaymentPreference.finAccountId
> 7.FinAccountAuth entity with finAccountAuthId*, finAccountId, authAmount, 
> currencyUomId, authTimestamp, fromDate, thruDate
> New Seed Data
> ContactMechPurposeTypeId = “GIFT_CERT_RECIPIENT”
> CommunicationEventTypeId = “GIFT_CERT_MESSAGE”
> PaymentMethodTypeId = “FIN_ACCOUNT” and “GIFT_CERTIFICATE”

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.undersunconsulting.com/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to