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.s3.jpg

s4.jpg

s5.jpg

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.

s11.jpg

s12.jpg

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

“iStore-Personalize” Custom Functionality for Release 12

Customization is an important phase in the implementation of iStore module in EBS. JSPs are customized to make the look and feel changes in iStore. Hence customized iStore looks different from site to site. This is tough, but its the most efficient methodoloy used across the industry.

Utility, a very efficient tool developed by iBizSoft, is the best solution for this complexity. “iStore-Personalize” a custom functionality developed is an add-on to Utility. Its application results in providing a personalized look for each accout in iStore minisite.

Using the user friendly interface of “iStore-Personalize” in R12 environment, user can personalize the background color, font, template, css etc.

iStore-personalize” key features:-

  • Personalize the look and feel of Item Detail, Catalog, Cart, Shipping & Billing and Order Review page of a perticular account by selecting a template.
  • Personalize the background color.
  • Personalize the font.
  • Create your own styles by editing CSS file.

“iStore-Personalize” UI includes:

  • Form for personalizing Item Details page
  • Form for personalizing Catalog page
  • Form for personalizing Cart page
  • Form for personalizing Billing & Shipping page
  • Form for personalizing Order Review page
  • Form for Editing CSS files.

Screenshot of iStore-Personalize Item Detail page is shown below

Step 1) Select a Background color
Step 2) Select Font
Step 3) Select Item Detail page template.
Step 4) Click “Apply” button.

To view the result before and after the personalization

Item Detail page before applying personalization

Item Detail page after personalization




Screen shot of iStore-Personalize - Catalog page is shown below

Step 1) Select Background color.
Step 2) Select Font.
Step 3) Select Catalog page template.
Step 4) Click “Apply” button.

To view the result before and after the personalization

Catalog page before applying personalization

Catalog page after personalization




Similarly iStore-Personalize provides option for personalizing the Cart, Shipping & Billing, Order Review pages.

iStore Personalize also provides an option for personalizing the CSS file associated with your minisite.

UI developed for editing CSS file is shown below

Please contact support@ibizsoftinc.com for more details.

Utility for Customizing iStore

Customization of iStore is an important phase in the Oracle Ebusiness Suite implementation. Customization involves the modification of JSP pages. JSP pages for displaying different user interfaces, need to be modified. Oracle is not providing any easy method for customization.

iBizSoft developed a Utility for Customizing iStore. This Utility provides
an interface for customizing jsp pages of Release 12 and 11i. It converts the HTML pages to corresponding JSP program.

User need to create HTML pages for different user interfaces eg Login Page, Cart Page, Billing Page, Shipping Page etc. iBizSoft’s Utility for Customizing iStore will convert this HTML page into corresponding iStore JSP page. User must follow the guide lines suppied by iBizsoft for creating HTML pages.

iBizSoft’s Utility for Customizing iStore provides a user interface page. Users need to submit the HTML page name and other input values for converting their HTML pages.

User can create html pages either on the server or on his local machine.If it is on server give the full path of file name in the UI page and if it is on client machine,browse the file.

Minisite Name-Template Name-File Name” value for conversion can select from the drop down list of UI page. On clicking Submit button, it will execute the conversion program and convert the HTML to JSP. From the result page, user can view the input, intermediate and converted files.

Contact support@ibizsoftinc.com for more details.

Fixing a common bug in iStore Billing Page of Release 12

This article describes you how to fix a common bug in iStore Billing page of Release 12.

Billing page error show up is

“cannot find symbol symbol : method setAttribute(java.lang.String,boolean,int) location: class javax.servlet.jsp.PageContext pageContext.setAttribute(”reloadFlag”, false, PageContext.REQUEST_SCOPE); ”

this error won’t take you beyond the Billing Page, results not able to place any order using iStore.

For fixing this issue, you have to edit line 948 of the ibeCCkpBHdrBillPay.jsp page

ie,

original code on line 948:-

pageContext.setAttribute(”reloadFlag”, false, PageContext.REQUEST_SCOPE);

change it to:-

pageContext.setAttribute(”reloadFlag”, “false”, PageContext.REQUEST_SCOPE);

just change the type of second argument from boolean to string by adding ” “.

ie from-> false

to -> “false”

This change will fix the above bug and allows you to go beyond billing page and Place order Successfully.

Encryption and Decryption

Encryption and Decryption of data is very important for everyone of us . I was just scrolling through found lot of options provide by Oracle.

Oracle is provide an API -DBMS_OBFUSCATION_TOOLKIT that enables an application to encrypt data using either the Data Encryption Standard (DES) or the Triple DES algorithms

Oracle installs this package in the SYS schema. You can then grant package access to existing users and roles as needed. The package also grants access to the PUBLIC role so no explicit grant needs to be done.

When we do Encryption and Decryption, Most Important part of this Process is Key Management.

  1. Key Management
  2. Key Generation
  3. Key Maintainance.

Key management, including both generation and secure storage of cryptographic keys, is one of the most important aspects of encryption. If keys are poorly chosen or stored improperly, then it is far easier for a malefactor to break the encryption. Rather than using an exhaustive key search attack (that is, cycling through all the possible keys in hopes of finding the correct decryption key), cryptanalysts typically seek weaknesses in the choice of keys, or the way in which keys are stored.

Key generation is an important aspect of encryption. The DBMS_OBFUSCATION_TOOLKIT package includes tools for generating random material that can be used for encryption keys, but it does not provide a mechanism for maintaining them. Care must be taken by the application developer to ensure the secure generation and storage of encryption keys used with this package.

As per mosr author on this subject ,we have three options available for Key Maintainance and those are

  1. Store the key in the database
  2. Store the key in the operating system
  3. Have the user manage the key

In this post I will not discuss about what option one should choose or what are the Pros and Cons of these 3 .

Here I will just talk about the Encryption and Decryption API provide by Oracle.API DBMS_OBFUSCATION_TOOLKIT provide by Oracle has 3 procedures/Functions

  1. DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT
  2. DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt
  3. DBMS_OBFUSCATION_TOOLKIT.DES3GetKey

Each of these 3 has 4 options (Please refere Oracle user guide or seach www.oracle.com for more details).I will discuss only 1 example each for these 3.

DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT - this subprogram generate the decrypted form of the input data.

DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT(

input IN RAW,

key IN RAW,

which IN PLS_INTEGER DEFAULT TwoKeyMode

iv IN RAW DEFAULT NULL)

RETURN RAW;

Please refere oracle.com for other DECRYPT options provide by this API.

Restrictions

You must supply a single key of either 128 bits for a 2-key implementation (of which only 112 are used), or a single key of 192 bits for a 3-key implementation

DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT – this subprogram generate the encrypted form of the input data by passing it through the Triple DES (3DES) encryption algorithm.

DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt(

input IN RAW,

key IN RAW,

which IN PLS_INTEGER DEFAULT TwoKeyMode

iv IN RAW DEFAULT NULL)

RETURN RAW;

Please refere oracle.com for other Encrypt options provide by this API.

Restrictions

The DES3ENCRYPT procedure has two restrictions. The first is that the DES key length for encryption is fixed at 128 bits (for 2-key DES) or 192 bits (for 3-key DES); you cannot alter these key lengths.

The second is that you cannot execute multiple passes of encryption using 3DES.

DBMS_OBFUSCATION_TOOLKIT.DES3GetKey – this subprogram take a random value and uses it to generate an encryption key.

DBMS_OBFUSCATION_TOOLKIT.DES3GetKey(

which IN PLS_INTEGER DEFAULT TwoKeyMode,

seed IN RAW)

RETURN RAW;

Below is one complete Test case of these 3.

Test case – Store Customer # and Seed in database table ( Restrict the access to Seed Key).

Now Run the pl/sql program , It will take

Employee_id

Credit card # and

Operation (E- Encrypt / D-Decrupt) as parameter

If operation is E, it encrypt the Credit crad # and store the encrypted value in database.

If operation is D, it then Decrypt the encrypted CC# and Print it on the screen.

My test exapmle is bad example of encryption and description, but purpose of this post is to just show how this API work .

create table test_mk

( eid NUMBER,

sed RAW(1000),

ekey RAW(1000),

evalue RAW(1000));

select * from test_mk

insert into test_mk

(eid,sed)

values

(1,’22222222222222222AAAAAAAAAAA67465465465465465AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFAAAAAAAAAACCCCCCCCCCDDDDDDDDDDEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA’)

8988988899898898

drop table test_mk

l_string RAW(2000);– :=’22222222222222222AAAAAAAAAAA67465465465465465AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFAAAAAAAAAACCCCCCCCCCDDDDDDDDDDEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA’;

declare

l_encrypted_data RAW(1000);

l_decrypted_data RAW(1000);

l_key RAW(1000);

l_emp_id NUMBER :=&Enter_Emp_id;

l_seed RAW(1000);

no_rec EXCEPTION;

l_case VARCHAR2(1):=’&EnterCase’;

l_evalue RAW(1000);

l_ovalue VARCHAR2(20):=’&EnterOriginal_Value’;

BEGIN

BEGIN

SELECT sed, ekey,evalue

INTO l_seed,l_key,l_evalue

FROM test_mk

WHERE eid = l_emp_id;

EXCEPTION

WHEN OTHERS THEN

dbms_output.put_line(’Error = ‘||Sqlerrm);

raise no_rec;

END;

CASE

WHEN l_case = ‘E’ THEN

–l_ovalue:=’8988988899898898′;

dbms_output.put_line(l_ovalue);

dbms_output.put_line(l_seed);

dbms_output.put_line(’l_input = ‘||l_emp_id);

l_key:=DBMS_OBFUSCATION_TOOLKIT.DES3GetKey(

which =>0,

seed =>l_seed

);

dbms_output.put_line(’l_key = ‘||l_key);

l_encrypted_data :=DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt

(input =>l_ovalue

,key =>l_key

,which =>0

,iv =>NULL

);

dbms_output.put_line(’l_encrypted_data = ‘||l_encrypted_data);

update test_mk

set evalue = l_encrypted_data,

ekey = l_key

where eid = l_emp_id;

WHEN l_case = ‘D’ THEN

l_decrypted_data:=DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT

(

input=>l_evalue

,key =>l_key

,which =>0

,iv =>NULL

);

dbms_output.put_line(’l_decrypted_data = ‘||l_decrypted_data);

END CASE;

EXCEPTION

WHEN no_rec THEN

dbms_output.put_line(’Exception raised- Quitting Process’);

WHEN OTHERS THEN

dbms_output.put_line(’Error - ‘||sqlerrm);

END;

Punchout to iStore 11.5.10

Punchout from iProcurement to iStore is an out-of-box functionality in R12 and is not available in the older versions.
We have back ported the functionality to 11.5.10 and have been successful in punching out back and forth.
For POC we were able to punchout from iProcurement in R12 to iStore in 11.5.10 and punchout back to iProcurement with the shopping cart
The technical design is based on the technical documentation provided by Oracle.
For POC purposes we focused on achieving the functionality only using cXML format.
We had to deviate a little from the actual design document to achieve the required functionality for POC within a short span of time.
User logs into iProcurement and selects the store-front to initiate the punchout process.




On punching out the user is validated and redirected to iStore site selection page where he is logged in behind the scene.




Upon selection of the site, the user is redirected to the site and able to shop




Add items to cart and punchout




On punching out from iStore to iProcurement the shopping cart information is transferred in cXML format to iProcurement and can be retrieved in shopping cart of iProcurement




During the actual implementation the solution would be extended to support both XML and cXML formats
The design would also be changed to follow the technical architecture provided by Oracle.
For more information on this functionality please contact sales@ibizsoftinc.com

Autosuggest in iStore Search

Features:

Autosuggestion feature in iStore Search enables a user to find the required search results faster by just typing in the initial keywords.
As the keywords are typed a drop down menu showing the related results shows up.
The search thus becomes faster and more efficient.Shown below are the screen shots of implementation of autosuggest in both iStore 11i and R12 .The product numbers are keyed in and the results are displayed.

Web 2.0 Feature “Drag To Cart” Implemented in iStore

iBizSoft has developed a new feature that adheres to the Web 2.0 feature, where in an item can be dragged and dropped to the Cart, rather than the conventional selecting of the items and then proceeding to checkout.

As shown in the screenshots the products are dragged and dropped to the shopping cart, deleted if not required and then finally checked out.








There is a distinct advantage in being able to add the items to a temporary place holder and then make it permanently show up on the Cart page. Advantage is related to the performance gain. In certain customer cases we did notice that as we keep adding items, the performance starts to deteriorate. Here are some of the reason behind performance issues

The cart is re-priced when the status of the cart changes.
For example, adding an item to the cart or removing items from the cart causes all the items in the cart to be re-priced - which is done by a pricing call made to the pricing engine.
The call to the pricing engine in iStore is achieved via JAVA API calls.
The relevant Java classes that contain the main calls to the pricing engine are found in ShoppingCart.java and ShoppingCartUtil.java. These files are seeded Java classes that come with iStore and it’s not easy to customize these .java files.
With the Web 2.0 feature incorporated into 11i and R12 iStore Catalog, the items in the temporary place holder is priced all at once when the customer is finally ready to checkout to the cart, thereby reducing the number of times the pricing engine is called to price the items in the cart.

For more information on how to implement this feature in your current or future iStore implementation, please contact us at support@ibizsoftinc.com

Oracle iStore Training

Oracle iStore allows businesses from all industries to establish business-to-business (B2B) and business-to-consumer (B2C) electronic commerce. It provides merchants with an easy-to-use interface for setting up Internet-based sites that capture and process customer orders. By integrating with other Oracle products provides a broad range of ecommerce capabilitiesoracle-istore-training.pdf

Custom Template Management

The Custom Template Management utility allows iStore sites to display flash images or images of any other extension, as landing page, promo bins etc in a minisite.

This utility allows the administrator to upload the flash files / images for templates that can be used in following areas:

Landing Page
Center Page
Catalog Left Bin
Catalog Right Bin
Cart Left Bin
Cart Right Bin
Bottom Bin

The user has the option to upload any type of file (Flash, non-flash) for the above listed templates. The iStore pages will display these uploaded files on the browser while loading the corresponding minisite.

Also, note that these files need not be ftped to the $OA_MEDIA directory, Custom Template Management utility takes care of this functionality as well. Where in a typical Oracle iStore Template Management we assign it to a Media object and then assoicate the media object to a bin, after which an administrator of the server has to ftp the files to the $OA_MEDIA directory. Custom Template Management utility cuts down on the maintenance time of the site and deployment of new images (including Flash, which is not supported by iStore), is much more easier.

Following Screen shows the UI page for selecting






The following screen shows the option to upload landing page,



Newly uploaded landing page showing on the minisite:



Following Screens show the uploading page for different bins and the minisite pages where the uploaded bins displaying,



Left Catalog Bin




Uploaded left catalog bin on iStore,



Uploading left Cart bin



Left cart bin on shopping cart page




Uploading Bottom bin



Uploaded bottom bin

Web-published Quote Item added To Cart

This article describes the functionality wherein users can add items from an existing web-published quote into a shopping cart, checkout and place the Order in Oracle iStore.

It allows users to select single or multiples items from a quote and add it to the cart. It is also possible to select items from different carts and consolidate it into 1 cart. On the cart page we can display a column called quote# that will show the quotenumber from where the item was added to the cart. The quantity, price and other details will carry over from the Quote to the Cart. However, the quantity of these items are cannot be updated on the cart page.


Following screenshots illustrates the flow from Quote to the cart page.



Items with quantity greater than 0 will be added to cart when the users clicks on the “Add To Cart” button.

Quote details are as follows



This is another Quote with the same item, however with a different price



Shopping cart page with items from different quotes as illustrated in the screenshot below



The quote, from where the item is added to the cart will remain the same and the user can use this quote for future use as well.

User can checkout from the cart page and place the order with the values of selected items. Order review page and order confirmation page with same value for the items as in cart page shown below,




Order lines in order mangement will have the same values for items as in shopping cart, with the price from Quote carried over to Order Management

Sunday, December 19, 2010

Download Shopping Cart as a PDF Document

The custom feature “Download As PDF” allows the user to view and download iStore Shopping Cart page as a PDF document. Following steps are required to be following implement this functionality,


  1. Create new button “Download As PDF” on the cart page.
  2. Create new custom JSP, that would convert the cart into PDF document.

The PDF document would be displayed in a new window, when user clicks on the button “Download As PDF”. User can save this PDF file for future use.

Below screen shows the cart page with custom button “Download As PDF”.

11.png

Page for PDF View



The Custom JSP uses the iStore APIs to retrieve the cart information and create a PDF file. “iText” package is used to create the PDF document.

The below screen shows the generated PDF view of the cart shown in above screenshot,

21.png

Stop and Continue XML Uploading

iBizSoft developed this utility to Stop and Continue XML uploading of documents one line at a time. It also allows the user to Stop , Pause or Continue the upload process after selecting the XML file for uploading. This utility is used in the situations where you would like to upload list of addresses from XML document to say the Customer Standard tables in Oracle EBS or you would like to upload the data into Order Import related tables. User can stop and continue the process at will.


Following screen allows the user to select an XML file in specified format for uploading.

xml-1.png

The selected XML file will upload to server and process the line one at a time when the user clicks the “Start” button from the following screen.

xml-2.png

Below screen shows the page after starting the XML upload.

xml-3.png

User can click on the “STOP” button for stopping the upload as in below screen. It will stop the further uploading process until the user clicks on the “CONTINUE” button.

xml-4.png

Page after pressing continue button is shown below. It will process the next line from where the last line was processed.

xml-5.png

Following screen shows the page after completing the upload.

xml-6.png

Email CartPage

iBizSoft customized the iStore Cart page for the users to Email or Print the Cart infomormation, as shown below. The custom functionality Email/Print cart will allow the user to send iStore Shopping cart page as an email or allow the user to take a printout of the whole shopping cart page..

To implement this feature, iStore cart page has the “Email/Print Cart” butto and a custom JSP was created. “Email/Print Cart” button will open this custom JSP in a new window.Java APIs are used in the Custom JSP send out email and / or print the cart details according to the option selected by the user.

ecp-1.png

Email/Print Cart button will open pop up page and it contains the fields to enter the comments, TO,CC email Ids and the buttons for Send/Print as shown in the below screen.

ecp-2.png

Send button will send the Cart details with customer login information to the email ids entered on this page. User clicks on the Print button to Print the Cart details.

Customizing Returns in Oracle iStore

In today’s e-commerce world accepting return item using a webstore has become a standard way. Oracle iStore provides customer UI for achieving this business requirement. Returns customer UI can be accessed from Orders Menu. From there customers can return orders which are in ‘Booked’ status in Oracle Order Management. If there is an approval process returns the administrator will approve or reject the returns. Oracle iStore mainly focus on the return of orders which are in ‘Booked’ status. The usual Oracle iStore returns flow from a customer point of view is as follows :

  1. Customer selects the returns page using links provided in Order menu, which is a Returns search page. Customer can search all the returns he had done using search queries (Note it will show only approved returns if Order Management Approval process is enabled).

    customizing-returns-in-oracle-istore_clip_image002.jpg

  2. If a customer would like to return a particular item then we can use return Items button which will redirect the customer to create return page. By which customer can search items he/she wants to return using Sales Order Number/Purchase Order Number/Part Number search queries. Customer can also return selected searched items using Add to Return, which will redirect to Return Review Page which shows all the pending returns, need to be submitted for approval process to finish the return process.

    customizing-returns-in-oracle-istore_clip_image004.jpg

    customizing-returns-in-oracle-istore_clip_image006.jpg

  3. After submitting the returns items from Return Review Page customer will get return Summary page, which shows all the items and their order number and prices related to that.

    customizing-returns-in-oracle-istore_clip_image008.jpg

    iBizSoft has customized the Return proces in Oracle iStore where in customers can now return an item or items, even if they do not have Order Number or Purchase Order number associated with it. The process has been customized in such a way that the web store will accept items which does not have Order in the Booked status. Normal process for Returns, that is using an existing Order Number or Purchase Order number, would still exist.

    The customized returns flow for Returns is as follows :

  1. Customer goes to Returns Page using returns in Order Menu. From which he/she can go to create returns page

    customizing-returns-in-oracle-istore_clip_image010.jpg

  2. Create return Page now has separate query search box for Order Number/Purchase Order Number/Part Numbers. Customer can search the items which is to be returned using Part Number (doesn’t have any order number / purchase order number) an item results information shows up on the same create return page.

    customizing-returns-in-oracle-istore_clip_image012.jpg

  3. Customer has to enter return quantity in provided text box and check the checkbox to return it using Add to Return button.(Please not that customer can return items that are only returnable or repairable) .After Adding item to return customer will be redirected to return Summary Page which will show the return, as shown below.

    customizing-returns-in-oracle-istore_clip_image014.jpg

    Note that this particular customer had two lines associated to a return – one ‘Inbound Repair’ and the other ‘Outbound Repair, as shown in the Order Management Lines screenshot below :

    Screen From Order Lines

    customizing-returns-in-oracle-istore_clip_image016.jpg

Thursday, October 21, 2010

Updating Contact Information

Oracle iStore has a very tight integration with the TCA Architecture or the Customer information that can be managed via the Customer Standard form. Although there are lot of fields Oracle CRM modules update in the backend, there are certain significant fields that are required for further market analysis and statistics.

Job Title is one such field that does not get updated and this is related to the Contact information with in the Customer Standard information. There are standard APIs in TCA that allow us to insert or update records, however to understand how this can be put to best use needs some good understanding of pl/sql and the TCA Architecture.

Creating Customer Information using Java APIs

There are standard PL/SQL TCA APIs that can be used to create customer information as per following notes on metalink.oracle. or support.oracle.com


Using TCA API’s Including Examples [ID 201243.1]

How To Create A Customer Via TCA API [ID 159393.1]

Different uses of TCA API. [ID 230753.1]

How to create a cust_account via TCA API to an existing PARTY (PERSON Customer)? [ID 204545.1]


However when it comes to using Java APIs, there is no documentation on how to use them or where to find them.


Here’s a list of Java APIs that we have created to create Locations, Account and other related data that’s required when one queries for information in Customer Standard form.


Create Account :

HzCustAccountV2Pub.CustAccountRec : Model class for an Account, required by HzCustAccountV2Pub.createCustAccount

HzCustomerProfileV2Pub.CustomerProfileRec : Model class for customer profile. Required by HzCustAccountV2Pub.createCustAccount

HzCustAccountV2Pub.createCustAccount : Creates an Account. This API creates both Party and Account in Oracle.

HzCustAccountV2Pub.getCustAccountRec : Loads HzCustomerProfileV2Pub.CustomerProfileRec and HzCustAccountV2Pub.CustAccountRec objects based on account_id passed to the function.

HzLocationV2Pub.LocationRec : Model class for a Location, required by HzLocationV2Pub.createLocation.

HzLocationV2Pub.createLocation : Creates a Location in Oracle, represented by HzLocationV2Pub.LocationRec

HzPartySiteV2Pub.PartySiteRec: Model class for party site, required by HzPartySiteV2Pub.createPartySite. This links a Party and a Location.

HzPartySiteV2Pub.createPartySite : Creates party site represented by HzPartySiteV2Pub.PartySiteRec

HzCustAccountSiteV2Pub.CustAcctSiteRec : Model class for account site, required by HzCustAccountSiteV2Pub.createCustAcctSite. This links a party site and an account.

HzCustAccountSiteV2Pub.CustSiteUseRec: Model class foran account site use. This record has property for use_code. This allows to create bill to and ship to account site use. For, ship_to account site use we can specify bill_to account site use ID.

HzCustAccountSiteV2Pub.createCustSiteUse: Creates an account site use record in oracle represented by HzCustAccountSiteV2Pub.CustSiteUseRec.


Update Account:

HzPartyV2Pub.PersonRec : Model class for person.

HzPartyV2Pub.PartyRec : Model class for a party. Required by HzPartyV2Pub.PersonRec.

HzPartyV2Pub.updatePerson : Updates party of type person represented by HzPartyV2Pub.PersonRec.

HzLocationV2Pub.LocationRec : Model class for a location.

HzLocationV2Pub.updateLocation : Update a location, represented by HzLocationV2Pub.LocationRec.


Load:

HzLocationV2Pub.LocationRec : Model class for a location.

HzLocationV2Pub.getLocationRec : Loads a location in HzLocationV2Pub.LocationRec object.

HzCustAccountV2Pub.CustAccountRec : Model class for an Account, required by HzCustAccountV2Pub.createCustAccount

HzCustomerProfileV2Pub.CustomerProfileRec : Model class for customer profile. Required by HzCustAccountV2Pub.createCustAccount

HzCustAccountV2Pub.getCustAccountRec : Loads HzCustomerProfileV2Pub.CustomerProfileRec and HzCustAccountV2Pub.CustAccountRec objects based on account_id passed to the function

Monday, October 18, 2010

Using Google Analytics in iStore

With the advent of internet growth, it has become imperative for a merchant to find out the ROI on a website. Who is visiting the site, from what part of the world, what pages are being viewed on daily, weekly or a monthly basis are some of the things that a merchant is always interested in konwing. Google Analytics shows you how people found your site, how they explored it, what pages were visited and lot of other useful information. Basically you can see the ROI on your website very quickly.



IbizSoft has received lot of requests to be able to integrate iStore with some online Analytic tool. Google is an obvious choice to show case how best we can integrate the tools with Oracle iStore.



Implementing Returns in iStore

In today’s e-commerce environment, accepting return items in web stores is standard functionality. Providing returns functionality both reduces the cost of doing business for merchants, and provides a invaluable step toward a complete customer self-service orientation. To address this business requirement, Oracle iStore provides Returns functionality in the Customer UI. Using the Orders menu in the Customer UI, customers can initiate returns for orders which are in “Booked” status in Oracle Order Management. If an approval process is being used, an administrator can use Oracle Order Management to evaluate the returns, and either approve or reject the returns. Merchants can set up returns with or without Oracle Workflow approval mechanisms in place.


The following is a high-level Returns flow:



1. To initiate a return (also known as a Return Material Authorization, or RMA), customers select applicable items, specifying the return quantities and return reasons.



2. After the customer submits the RMA, Oracle iStore automatically sends a confirmation e-mail notification to the customer.



3. Once Oracle Order Management processes the return order, the appropriate e-mail notification is sent to the user, notifying him whether the RMA has been approved or not (if approvals are being used). For approved RMAs, merchants can set up a return location to be sent in the e-mail notification.



4. After an RMA is approved, on the back end, Oracle Purchasing and Oracle Accounts Receivable work to complete the RMA processing, by fulfilling the order lines and generating credit memos.



5. RMAs are then available for the customer to track in Order Tracker.





Setting up the Profile Options:




For setting up returns in the iStore you need to set up the following profile options as per the iStore Implementation Guide.




  1. IBE: Use Returns – YES


  2. IBE: Return Orders Transaction Type not able to set this option since throws an error message "APP-FND-04136: List of Values cannot find any values for you to choose. Cause: The SQL statement specified to fdlfch() failed to return any values"


  3. IBE: Enable Return Pre-booking Approval set to YES


  4. IBE: Enable Return Policy intially set to YES but was giving "Application Error" so made to NO

  5. ASO: Default Salesrep set to "NO Sales Credit




returns_articles_clip_image002.jpg




Set profile option "IBE: Return Orders Transaction Type" to the transaction type you wish returns to be created under. This must be the transaction defined for the iStore returns as described in the iStore documentation (Step 3 - Set up Transaction Type of section Implementing Returns)

You may use the following steps as an example setup for Oracle iStore returns transaction type. See the Oracle Order Management Suite Implementation Manual for additional setup information.



Creating a Transaction Type:



Important: For Oracle iStore returns, only set up transaction types using Order

Category = Return. Mixed should not be used and will not work.



1. As Order Management Superuser, navigate to the Transaction Types window and set up a new Order Type with following attributes:

a. Name/Description – iStore RMA (user definable)

b. Order Category – Return

c. Transaction Type Code – Order

d. Workflow Fulfillment Flow/Order Flow -- Depends on whether the returns pre-booking feature is enabled:

--If the profile, IBE: Enable Returns Pre-Booking Approval, is set to No, use Order Flow - Return with Approval. If this workflow is used, you can enable an approval process, after the return is Booked in Order Management and if an Approval List has been set up.

--If the profile, IBE: Enable Returns Pre-Booking Approval, is set to Yes, use Order Flow - Return with Submission and Approval. See Section 12.8.2, "Returns Functionality With and Without OM Release

11.5.10", for more details on the returns pre-booking approval feature.

e. Sales Document Type – Sales Order

f. Default Transaction Phase – Fulfillment (applicable only if the returns

pre-booking feature is enabled)



2. Associate a price list with the above transaction type if using return fees, multi-currency price lists, and/or Order Management defaulting rules based on price list.

a. Set the 'Default Return Line Type' field to "Return (Receipt)".

3. Enter other required/optional information and Save.

4. Select Assign Line Flows, and assign a line type with Line Flow – Return for Credit with Receipt line flow. Note that Line Type is a required value in Transaction Types setup; otherwise, a "LineTypeId missing" error will display.

returns_articles_clip_image004.jpg



5. Document Sequence Assignment --- Assign the RMA Document Sequence on

the newly created, iStore RMA, transaction type.

Creating a Document Sequence

With an Order Management responsibility



1. Set up of Document Sequence:

- Navigate to Setup > Documents > Define

- Specify a Name for your sequence

- For the Application, select 'iStore'

- Specify the Effective From Date

- Set the Type as 'Automatic'



2. Set up of Document Assignment:

- Navigate to Setup > Documents > Assign

- For the Application, select 'iStore'

- For the Category, select the category that you want for this assignment

- For the Set of Books, select the Set of Books for this Organization

- For the Method, select 'Automatic'

- On the Assignment tab, enter the Start Date

- For the Sequence, select the Document Sequence defined above

Document Sequences form

Name: iStore RMA

Application: iStore

From: 07-OCT-2010

Type: Automatic

Once the document sequence is created you need to assign the document sequence

Sequence Assignments form



Application: iStore

Category: RMA



-- Document tab

Set of Books: DONAHER MOTION US

Method: Automatic



-- Assignment tab

Start Date: 07-OCT-2010

End Date: <blank>

Sequence: iStore RMA

returns_articles_clip_image006.jpg


returns_articles_clip_image008.jpg


With an Order Management responsibility



1. Set up of Document Sequence:

- Navigate to Setup > Documents > Define

- Specify a Name for your sequence

- For the Application, select 'Oracle Order Management'

- Specify the Effective From Date

- Set the Type as 'Automatic'



2. Set up of Document Assignment:

- Navigate to Setup > Documents > Assign

- For the Application, select 'Oracle Order Management'

- For the Category, select the Order Transaction Type defined for the iStore Return setup

- For the Set of Books, select the Set of Books for this Organization

- For the Method, select 'Null'

- On the Assignment tab, enter the Start Date

- For the Sequence, select the Document Sequence defined above

Application: Order Management

Category: iStore RMA



--Document

Set of Books: DONAHER MOTION US

Method: Automatic



--Assignment

Start Date: 11-Oct-2010

Sequence: Order RMA



Document Sequence



Name: Order RMA

Application: Order Management

From: 11-Oct-2010

Type: Automatic

Initial Value: 1



returns_articles_clip_image010.jpg




returns_articles_clip_image012.jpg



returns_articles_clip_image014.jpg