Oracle iStore
Thursday, October 18, 2012
How to create a new Cartridge Template in Endeca
Monday, December 20, 2010
How to apply Agreements in iStore
Agreements can be applied at the line level only after the item is added to the Cart, that’s the standard functionality in iStore. Additionally the end user will need to the Agreement code, just as they need to know the Promotion Code to apply it on the Order. This is one of the drawback one of our esteemed client failed to comprehend.
To workaround this gap, we added the following query to ibeCScpAddItem.jsp
SELECT agreement_id, a.price_list_id FROM oe_agreements_vl a, qp_list_lines_v c where a.sold_to_org_id = ” + v_accountId + ” AND SYSDATE BETWEEN NVL(a.START_DATE_ACTIVE,SYSDATE-1) AND NVL(a.end_DATE_ACTIVE ,SYSDATE+1) and product_attr_value = ‘” + v_item_id + “‘ and list_header_id = a.price_list_id ;
And called the following method to apply the agreementId to the active cart
currItem.setAgreementId(rsagree.getString(”agreement_id”));
One of the drawbacks that the client had to accept with this workaround was the fact the item had to be present in the PriceList associated to the store, it cannot merely be part of an agreement.
Cancelling an Order from with in iStore
One of our customer was not convinced with the idea of Oracle’s out-of-the-box functionality that High Risk credit card orders or Authorizatoin Failed Ordres are put on Hold by Order Management. And this is done by the Credit Card Authorization API (technically iby_payment_adapter_pub a public API) which is called from with OE_ORDER_PUB API.
We came up with a solution for this customer where in we cancel the order completely from with in iStore if we do not get an Auth code for the Order. This was done by writting a PL/SQL wrapper around Oralce’s standard API, OE_Order_PUB.Process_Order.
Passing the following should do the trick
l_header_rec.cancelled_flag:=’Y';
l_header_rec.header_id:=p_header_id;
l_header_rec.flow_status_code= ‘CANCELLED’;
l_header_rec.change_reason = ‘Cancel Order APPCON’;
l_header_rec.operation:=OE_GLOBALS.G_OPR_UPDATE;
l_action_request_tbl(1).request_type := OE_GLOBALS.G_CANCEL_ORDER;
l_action_request_tbl(1).entity_code := OE_GLOBALS.G_ENTITY_HEADER;
Call us to know more about this Custom API
Configuring Bins in iStore
You can change the look and feel of the catalog and shopping cart pages by modifying their bin layouts. The seeded pages are divided into bins. Several bins display the content of seeded JSPs. The catalog and shopping cart pages also have bins without seeded source files. You can associate these bins with custom source files to customize the pages’ appearance.
Each bin is listed as a separate logical template in the Oracle iStore template manager.
You can change the bin placement or content in the following ways:
_ Change the profile options that are related to the catalog bins.
For example
You can use the following profile options to enable or disable the section page bins:
_ IBE: Use Global Bin
_ IBE: Use Section Bin
_ IBE: Use Section Path
_ IBE: Use Welcome Bin
_ Associate JSPs with the seeded logical bin templates.
To customize templates for your store, perform the following tasks after planning your web page designs:
_ Gain an understanding of the recommended and/or mandatory page flows through your specialty stores.
_ Create template source files (JSPs) for pages or for blocks within pages. If you are implementing multiple languages, create source files in each of the languages which you plan to support. Or, copy the seeded
JSPs (save with a new name) and apply your modifications; then, map the new JSP to the page flow through Template Manager.
_ Choose Oracle iStore template names.
_ Register templates in the Store Administration UI.
_ Assign template source files to templates.
Setting up Custom Qualifiers for iStore
Advanced Pricing in Oracle Ebusiness Suite has provided the functionality to allow us to set up custom qualifiers based on the attribute values in an active cart. Cart header information resides in aso_quote_headers_all and the line information resides in aso_quote_lines_all table.
Based on any of the 15 attribute values in these tables, one can manipulate the price that shows up in a cart. For eg. if the price is driven by a value derived from a hard-copy catalog (one of our customer had this requirement), we provided a text box for the user to enter the catalog code value and click on ‘Update Cart’, this would display a new price based on the attribute mapping setup for this catalog code. This setup is done via Oracle Pricing Manager responsiblity using Attribute Management functionality, as discussed below. Note : We have used Minisite Site Id as our qualifier in this example.
Integrating PayPal with Oracle iStore
The focus of business these days is to increase the customer base. To ensure this any seller has to be customer friendly. Credit card fraud is a very big concern of any customer. Integrating paypal with business is one of the best ways by which one can assure there is no credit card fraud at their end and also they can tap more customers. Oracle iStore is not an exception to this. We have focussed on integrating PayPal with Orace iStore.
PayPal could be integrated into iStore and the buyer could be provided with an option to checkout using paypal.
One of the advantages of using PayPal is, it is very much configurable. The buyer can view the his cart i.e the items he has selected in the iStore, in his paypal account individually or whole of the cart as a single item. This feature is integrated into the prototype that we have developed.
Also, One of the beauties of PayPal is its Instant Payment Notification. PayPal provides us with many options and it is we who can decide on how we want to integrate this. We can actually update our database the moment the payment is done. This is the best way one can actually track the orders. Also, we can post the parameters back on to our server when returning from paypal to our site. But, the disadvantage of this being not many customers want to return to our site after the payment is done. They feel they are done with their business.
So, Instant Payment Notification is the best solution for this and we have integrated this into the prototype that we have developed. Here we have the business logic to see, if it is an authorized user and if it is an authorized transaction. This helps in preventing fraud.
Another feature that we have integrated is the recurring payment using PayPal. By using this option, sellers can provide an option of subscription to the customers. Also, there is an option of unsubscribing through your site. This is an area where we are continuing to focus.
Following are the options that we have with recurring payment.
1. Setup a Descriptive flexfield at the order header level to capture the frequency of the recurring frequency (Monthly, quarterly, yearly etc) and then based on the values of DFF we will create the Invoices by calling the AUTOINVOICE program or Standard APIs to create the invoices in AR.
Steps required
a. Setup a New Invoice source for Invoices.
b. Custom program to retrieve all the data required to Populate AR Invoice Interface table or to AR invoice Apis.
2. Setup a Descriptive flexfield at the order header level to capture the frequency of the recurring frequency (Monthly, quarterly, yearly etc) and then based on the values of DFF , add the new line to same sales order.
3. Setup the DFF at the customer /customer site level and then based on the frequency
a. Create new Sales Order at each occurrence of recurring billing frequency or
b. Add new line to same sales order. In this case we need to populate the DFF at the order header level too to mark it as a recurring sales order.
Steps required
a. Setup a New Invoice source for Invoices.
b. Custom program to retrieve all the data required to populate Order Management API to create Order /lines.
c. Progress Sales Order to Invoicing.
Link Company Addresses to Address book in Oracle iStore R12 for B2B users
Oracle iStore does not provide the functionality to link company Addresses to Address Book for B2B users. There are few existing Enhancement Requests made on http://metalink.oracle.com to have this functionality. Here we will discuss how to provide solution to them, making company addresses available for B2B users in address book, with access.
The Address book in Oracle iStore display personal addresses for B2B users. To see a personal addresses in the address book, the user has to place an order first using the personal address becuase the address book takes the user’s information from a table which is updated when the user places an order.
When a B2B user registers, the address specified during registration is associated with the company. However when the user logs in, the address book shows only addresses associated with the user and not the company.
It is really nice to have feature for some customer to make end B2B users able access company addresses into Address book so that they modify the address when required.
There are people who search for solution of linking company addresses to Address book for B2B users. Document with ID - 208836.1 on http://metalink.oracle.com says that this functionality does not exist in Oracle iStore.
There are already Enhancement Requests ER #1357606, ER #1873173 on http://metalink.oracle.com for this functionality on Oracle iStore.
Here we will provide solution to implement that functionality to Oracle iStore. We required to change ibeCAddAddrBook.jsp file along with its template from iStore Administration -> Template Manager.
Then pull out Party Site Id into the ibeCAddAddrBook.jsp using LoadControlRec. We can use this Party Site Id to get exact Party Id that in turn we can use to get company Address List. Query the database table to get list of all Company Addresses. Here is some part of the code that would implement this functionality…
/*loadControlRec = new CartLoadControlRecord();
loadControlRec.defaultPreferences = true;
loadControlRec.loadItems = true;*/
//11.5.11 Setting new control record parameters
loadControlRec.setControl(ShoppingCartConstants.SHIPPABLE, true);
loadControlRec.setControl(ShoppingCartConstants.LINE_SHIPPING, true);
//what about default prefrences????
loadControlRec.setControl(ShoppingCartConstants.LOAD_ITEM, true);
loadControlRec.setControl(ShoppingCartConstants.HEADER_SHIPPING,true);
loadControlRec.setControl(ShoppingCartConstants.PRG,true);
loadControlRec.setControl(ShoppingCartConstants.DEFAULT_PREFERENCE, true);
………
………
………
Displaying all the personal addresses of the user along with this company addresses would make the user able to change the addresses from Address Book itself.
We can use this functionality as solution for the ER requests mentioned above.
For complete solution please mail us at support@ibizsoftinc.com