Shopping cart Catch-22
I wanted to purchase Eureka, season 1, but in shopping cart - instead of a buy this button - there is a view button that just returns to the Eureka page.
Get error msg. when I try to remove from cart.
Get error msg. when I try to re-add to cart-says that it is already in cart - no duplicates.
Catch-22
Windows XP Pro
Apple, this is why you need to implement a wish list feature. I'll often stumble across a song that I'm not sure I want to buy yet but may be interested in the future. Now, finding out that the shopping cart is limited makes that an even better idea.
I tried submitting this idea in the iTunes Feedback Form, but no go yet. Anyone else want to submit the idea?
Similar Messages
-
Not able to modify list of approver on when Shopping Cart is on Hold
Hi All
We are facing the following situation.
We are creating a new shopping cart and then putting it on Hold. If we open the shopping cart again ( the SC being on Hold), we are not able to add or change the app rovers in approval flow. But if we order the Shopping Cart and then open it back and try to add or change the approvers we are able to do this.
We are using BAdI BBP_CHNG_AGNT_GET to add or change approver and we are trying to debug this BADi to analyse the issue. But we are not able to catch what's happening when the SC is in Hold status. Is there any other method by which we can check in debugging what's happening in the BBP_CHNG_AGNT_GET with SC on Hold.
Any information in this regard is much appreciated.
Best regards
Indrajit Dutta Choudhury
Atanu MondalDear Poster,
As no response has been provided to the thread in some time I must assume the issue is resolved, if the question is still valid please create a new thread rephrasing the query and providing as much data as possible to promote response from the community.
Best Regards,
SDN SRM Moderation Team -
How to access parameters from an object stored in a shopping-cart vector?
Hello;
I am writing some code that will be part of a website that will have the
ability to allow customers to place items into a shopping cart and then
purchase them.
The way that the shopping cart works is that a products page is displayed on the website that has 'add' buttons on it next to each product on the page.
When the customer clicks the 'add' button next to a particular product to purchase it, the code performs a query of a products database table for the numeric product id linked to the 'add' button they clicked.
When the product id is found, the query then loads the
product information for it from the DB table columns into the shopping cart
Vector as an object in the form of a result set string. This object contains
the parameters that define the product, i.e. product_id, product_quantity,
date_ordered, ship_status and so on.
In the code, when the customer is done shopping and clicks on a button
labelled 'place order', I want the code to access the shopping cart Vector
and extract each item object from the cart. I then want the code to be able
to get from each item object, the parameters that make up each item as
described above and take the values stored in each of the parameters and
store them in variables. Finally I want to take those variables and write
them to an orders DB table in the proper columns via a query.
I have tried researching information on Vectors to see if I could find out a way to do this but the little information that I located did not give me a clear idea
of how to go about writing the code, it only seemed to suggest a vague,
rough idea as to how it might be done. I am relatively new to Java
programming and so don't have any experience working with Vectors.
I have enclosed the code below that shows how the items are being stored in the shopping cart Vector. Can anybody tell me how I could go about writing the code that will extract the items from the shopping cart as described above in a servlet? Any assistance you can give me will be greatly appreciated.
Thank you!
String productID = request.getParameter("productID");
String qty = request.getParameter("qty");
Vector cartlist = new Vector();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
java.sql.Connection conn = java.sql.DriverManager.getConnection("jdbc:odbc:website", "", "");
java.sql.Statement st = conn.createStatement();
String query = "SELECT productID, productName, productCategory,
productPrice from Products WHERE productID ='" + productID + "'";
java.sql.ResultSet rs = st.executeQuery(query);
while(rs.next()){
cartlist.addElement(rs.getString("productID") + " " +
rs.getString("productName") + " " +
rs.getString("productCategory") + " " +
rs.getString("productPrice") + " " + qty);
} catch(SQLException sqlex){
} catch(Exception e){
}//Try Changing your code this way.
String productID = request.getParameter("productID");
String qty = request.getParameter("qty");
Vector cartlist = new Vector();
try
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
java.sql.Connection conn = java.sql.DriverManager.getConnection("jdbc:odbc:website", "", "");
java.sql.Statement st = conn.createStatement();
String query = "SELECT productID, productName, productCategory, productPrice from Products WHERE productID ='" + productID + "'";
java.sql.ResultSet rs = st.executeQuery(query);
while(rs.next())
String productID = rs.getString("productID");
String productName = rs.getString("productName");
String productCategory = rs.getString("productCategory");
String productPrice = rs.getString("productPrice");
String productID = rs.getString("productID");
cartlist.addElement(new AddCardElement(productID, productName, productCategory, productPrice, productID, qty));
//class AddCardElement should be there in your application
catch(SQLException sqlex)
catch(Exception e)
//you have to add a new class AddCardElement like this
class AddCardElement
public String m_productID;
public String m_productName;
public String m_productCategory;
public String m_productPrice;
public String m_productID;
public GenerateLocationData(String productID, String productName, String productCategory, String productPrice, String productID, String qty)
m_productID = productID;
m_productName = productName;
m_productCategory = productCategory;
m_productPrice = productPrice;
m_productID = productID;
}//-Achyuth B -
Dump while adding a shopping cart in work area in Carryout Sourcing
Hi Experts,
We are getting dump while adding a shopping cart to the work area in Carryout Sourcing.
We want to replicate the Purchase Requisition from R/3 to SRM. And SC contains the limit item with free text service.
The dump details are as follows :
The exception 'CX_BBP_PD_ABORT' was raised, but it was not caught anywhere
along
the call hierarchy.
Since exceptions represent error situations and this error was not
adequately responded to, the running ABAP program 'SAPLBBP_PDH' has to be
Error analysis
An exception occurred which is explained in detail below.
The exception, which is assigned to class 'CX_BBP_PD_ABORT', was not caught and
therefore caused a runtime error.
The reason for the exception is:
Buffer table not up to date
How to correct the error
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"UNCAUGHT_EXCEPTION" "CX_BBP_PD_ABORT"
"SAPLBBP_PDH" or "LBBP_PDHU08"
"BBP_PD_ABORT"
Information on where terminated
Termination occurred in the ABAP program "SAPLBBP_PDH" - in "BBP_PD_ABORT".
The main program was "SAPLBBP_SOCO_UI_ITS ".
In the source code you have the termination point in line 73
of the (Include) program "LBBP_PDHU08".
READ TABLE lt_callstack INTO ls_callstack2 INDEX 4.
CONCATENATE '/' ls_callstack2-eventtype
ls_callstack2-eventname ls_callstack2-progname
INTO lv_msgarg3 SEPARATED BY space.
CALL FUNCTION 'BBP_ALERT_INTERNAL_OT'
EXPORTING
msgid = gc_msgid_bbp_pd
msgno = 047
msgarg1 = lv_msgarg1
msgarg2 = lv_msgarg2
msgarg3 = lv_msgarg3.
MESSAGE ID gc_msgid_bbp_pd TYPE c_msgty_i NUMBER iv_msg_no
WITH ls_callstack1-eventtype
ls_callstack1-eventname
ls_callstack1-progname.
rollback work.
get the messages from the application log
TRY.
CALL FUNCTION 'BBP_PD_LOG_GET_MESSAGES'
TABLES
e_messages = lt_messages.
CATCH cx_bbp_pd_abort.
REFRESH lt_messages.
ENDTRY.
RAISE EXCEPTION TYPE cx_bbp_pd_abort EXPORTING
worked_on_document = lv_guid
t100_msgid = gc_msgid_bbp_pd
t100_msgno = iv_msg_no
t_appl_log_messages = lt_messages.
ENDFUNCTION.
Could you please help me on this, how to rectify the dump ?
Thank you very much in advance.Hello,
I have seen this dump many times because the ERP version defined in table BBP_BACKEND_DEST was not correct.
Please, check the following note related to this configuration:
1230789 - Dump: BBPSOCO01 at include LBBP_PDH_TEOF0B
Kind regards,
Ricardo -
Want to copy Delivery address of one line item in shopping cart to all item
Hi Experts,
We are upgrading from SRM 5.0 to SRM 7.0,In SC Creation We want to copy Delivery address of one line item in shopping cart to all line items in Shopping cart by clicking Change All Items button.This is custom button we added this button and we had written code to achieve the functionality but it is not working.This is same like Change All Items button in Account Assigment for copy accont details of one line item to all other line items in SC.
Web Dynpro Component:/SAPSRM/WDC_UI_DO_SHIPTO
Web Dynpro View:V_DODC_SHIPTO
Thanks,
Aarthi.Hi Prasad,
Our customer needs that button,they want whenever they are clicking the button delivery address should copy to all line items.
In my action ONCHANGE_ALL_ITEMS i called this method
wd_this->mo_dodm_shipto->zchange_all_items( ).
zchange_all_items( ) is implemented in class /SAPSRM/CL_CH_WD_DODM_SHIPTO.
the code i wrote inside zchange_all_items( )
*Error
DATA: LX_PDO_ABORT TYPE REF TO /SAPSRM/CX_PDO_ABORT, " Class for Fatal error caught by PDO Layer
LX_PDO_ERROR TYPE REF TO /SAPSRM/CX_PDO_ERROR. " Class for PDO General Exception
Object Instances
DATA: LO_MSG_CONSUMER TYPE REF TO /SAPSRM/IF_PDO_MSG_CONSUMER,
LO_PDO_SHIPTO TYPE REF TO /SAPSRM/IF_PDO_DO_PARTNER.
Context-Data
DATA: lte_cll_shipto TYPE /sapsrm/if_ch_wd_set_facade=>gt_guid_element,
loe_cll_shipto TYPE REF TO /sapsrm/if_ch_wd_set_element.
Field Symbols
FIELD-SYMBOLS <lse_cll_shipto> LIKE LINE OF lte_cll_shipto.
DATA : lo_pdo_acc TYPE REF TO /sapsrm/if_pdo_do_acct_assgmnt.
DATA : ls_shipto_cll type /SAPSRM/S_CLL_SHIPTO,
lt_pdo_partnerdetails TYPE bbp_pdt_partner,
ls_pdo_partnerdetails TYPE bbp_pds_partner,
LV_GUID TYPE BBP_GUID,
lv_item_guid type bbp_guid,
lv_filled TYPE wdy_boolean.
*exceptions
DATA : LX_ABORT TYPE REF TO /SAPSRM/CX_PDO_ABORT.
*Constants
CONSTANTS : LC_OBJECT_ID TYPE CRMT_SUBOBJECT_CATEGORY_DB VALUE 'BUS2121001',
LC_ADDR_ORIGIN TYPE /SAPSRM/S_CLL_SHIPTO-ADDR_ORIGIN VALUE 'B'.
IF LV_FILLED = ABAP_TRUE.
Downcasting to shipto
LO_PDO_SHIPTO ?= MO_PDO.
insert the clipboard into facade and update and submit update
me->/sapsrm/if_cll_do_mapper~insert_from_clipboard( io_set_facade = mon_cll_set_facade ).
Add new Accounting entries.
lte_cll_shipto = mon_cll_set_facade->get_data_elements( ). "get all elements from the context
LOOP AT lte_cll_shipto ASSIGNING <lse_cll_shipto>.
loe_cll_shipto = <lse_cll_shipto>-set_element.
loe_cll_shipto->get_static_attributes( IMPORTING rv_attributes = ls_shipto_cll ).
Map ui-structure to pdo-structure
MOVE-CORRESPONDING ls_shipto_cll TO ls_pdo_partnerdetails.
IF LS_SHIPTO_CLL-PARTNER_FCT = mv_part_func.
LS_PDO_PARTNERDETAILS-PARTNER_FCT = ''.
ELSE.
LS_PDO_PARTNERDETAILS-PARTNER_FCT = LS_SHIPTO_CLL-PARTNER_FCT.
ENDIF.
IF ls_pdo_partnerdetails-del_ind NE 'X'.
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_16 = ls_pdo_partnerdetails-p_guid.
mv_acc_guid_split = ls_pdo_shipto-guid .
IF mo_scope = 1.
ls_pdo_partnerdetails-p_guid = mon_cll_set_facade->get_bo_guid( ).
ELSE.
ls_pdo_partnerdetails-p_guid = mo_parent_bo_mapper->items_get_lead_selection( ).
ENDIF.
APPEND ls_pdo_partnerdetails TO lt_pdo_partnerdetails.
ENDIF.
CLEAR : ls_pdo_partnerdetails, ls_shipto_cll.
ENDLOOP.
Add New items to PDO
IF NOT lt_pdo_partnerdetails[] IS INITIAL.
TRY.
LO_PDO_SHIPTO->update_item_partners( EXPORTING it_partner = lt_pdo_partnerdetails
iv_item_guid = lv_item_guid
CHANGING co_message_handler = mo_pdo_message_consumer ).
CATCH /sapsrm/cx_pdo_abort INTO lx_pdo_abort.
mo_cll_message_handler->set_abort( io_pdo_abort_exception = lx_pdo_abort ).
CATCH /sapsrm/cx_pdo_error INTO lx_pdo_error.
mo_cll_message_handler->add_exception( io_pdo_error_exception = lx_pdo_error ).
ENDTRY.
Update PDO with the changed data.
TRY.
mo_pdo->submit_update( ).
CATCH /sapsrm/cx_pdo_abort INTO lx_pdo_abort.
mo_cll_message_handler->set_abort( io_pdo_abort_exception = lx_pdo_abort ).
CATCH /sapsrm/cx_pdo_error INTO lx_pdo_error.
mo_cll_message_handler->add_exception( io_pdo_error_exception = lx_pdo_error ).
ENDTRY.
Fire refresh of DO Mappers registered for refresh since the item table has acc related data.
mo_parent_bo_mapper->fire_event_refresh( iv_perform_updates = abap_false ).
ENDIF.
ENDIF.
Thanks,
Aarthi. -
Hello,
I'm writing a JSP page with a shopping cart so the user can add products to it, nfortunately the thing won't work.. I keep getting an NullPointerException.. I'm probably screwing up somewhere.. I would be very thankful if you could help me out..
this is the code for the Shopping Cart Bean:
[myCart.java]
package myCart;
import java.util.*;
public class myCart implements java.io.Serializable{
private Vector items;
public String[] getItems(){
String strTemp[] = new String[items.size()];
items.copyInto(strTemp);
return strTemp;
public void setItems(Vector newItems){
items=newItems;
public void addItem(String newId){
items.addElement(newId);
This is the JSP page that I'm using:
[myCart.jsp]
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<jsp:useBean id="myCart" class="myCart.myCart" scope="session" />
<%
Connection con;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:produkten");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM tblProdukten WHERE NR= "+request.getParameter("nr")+"");
while (rs.next()) {
String merk = rs.getString("MERK");
long temp = rs.getLong("NR");
String nr = Long.toString(temp);
-----> myCart.addItem(nr);
%>
<BR>Nr : <%=nr%>
<BR>test : <%=merk%>
<HR>
<% } %>
<%
con.close();
catch(ClassNotFoundException cnfex)
out.println("jdbc odbc driver not found // muzz");
catch(SQLException sqlex)
out.println(sqlex);
%>
</TABLE>
</BODY>
</HTML>
I think I probably(??) put the <myCart.addItem> in the wrong part of the code..??
Greetings,
Michaelyes, I see, I forgot to initiate that, I'm still
learning so please bare with me :)
I now initiated the <items> vector like this:
Vector items = new Vector();
and added this:
myCart.items.addItem(nr);
But it still won't work correctly >>
First error: Your Vector items is not a public variable. Therefore, outside classes will not be able to access it. No problem though, you have a method to take care of that. Instead of what you're doing, simply call
myCart.addItem(nr)This calls the public method addItem(String) which accesses your private Vector items, and adds a string to the vector.
Your second error should be taken care of. It is resulting from the fact that instead of calling the method addItem() from teh class instance, youre trying to access the Vector items first, and then trying to call addItem() from that... not only can you not access that variable, as stated above, but there is no method in Vector called addItems(). You could conceivably make items public, but I'd stick with what you've got. -
Shopping cart!! Retriving values from Hashtable?
Hi,
Could you please help me solve this problem?
I am adding some values to the Hashtable. For every time I add the server is definitely showing
me that some thing is added to the Hashtable. But when I try to print the values present in
Hashtable, I do not see any thing on the browser other than "table headers" ? Can any one help
me?
Here are the codes
ShopBean.java
import java.util.*;
import java.lang.*;
public class ShopBean
private Hashtable hashtable = new Hashtable();
public ShopBean()
public void addToCart(String itemid,String name,float price,int quantity)
String[] items = {itemid,name,Float.toString(price),Integer.toString(quantity)};
if(hashtable.containsKey(itemid))
String[] tmpItem = (String[])hashtable.get(itemid);
int tmpQuantity = Integer.parseInt(tmpItem[3]);
quantity += tmpQuantity;
tmpItem[3] = Integer.toString(quantity);
else
hashtable.put(itemid,items);
public Enumeration getEnumeration()
return hashtable.elements();
Tibre.java
public class Tibre extends HttpServlet
String user,s1,s2,s3,s4,s5,s6,s7,prev,next,flag;
int i,count=0,i1,i2,i3,i4,records=0,from,to,no,rem,k,c;
public void doGet(HttpServletRequest req,HttpServletResponse res)
doPost(req,res);
public void doPost(HttpServletRequest req,HttpServletResponse res)
try
ServletOutputStream sos = res.getOutputStream();
HttpSession ses = req.getSession(true);
user=(String)ses.getValue("user");
ShopBean cart = new ShopBean();
String id = req.getParameter("id");
if(id != null)
String name = req.getParameter("name");
Float price = new Float(req.getParameter("price"));
cart.addToCart(id,name,price.floatValue(),1);
System.out.println("cart values in tibre.java"+cart);
sos.println("<html>");
sos.println("<body bgcolor=lightyellow>");
sos.println("<p>Welcome to Online shopping "+user+" , Please see the
gallery of items.</p>");
sos.println("<table border='1' cellspacing='1' width='41%'
cellpadding='2' id='AutoNumber1'>");
sos.println("<tr>");
sos.println("<td width='21%'>");
sos.println("<img border='0' src='images/11.gif' width='120'
height='150'> ");
sos.println("</td>");
sos.println("<td width='79%'>");
sos.println("<img border='0' src='images/22.gif' width='120'
height='150'></td>");
sos.println("</tr>");
sos.println("<tr>");
sos.println("<form method='post'
action='http://localhost:8080/servlet/Tibre'>");
sos.println("<td width='21%'>$300 <input type=submit value='Add
to Cart' name=tibre1>");
sos.println("</td>");
sos.println("<input type='hidden' value='100' name='id'>");
sos.println("<input type='hidden' value='Tibre' name='name'>");
sos.println("<input type='hidden' value='300.89' name='price'>");
res.sendRedirect("http://localhost:8080/servlet/Tibre");
sos.println("</form>");
sos.println("<form method='post'
action='http://localhost:8080/servlet/Tibre'>");
sos.println("<td width='79%'>$800.99 <input type=submit
value='Add to Cart' name=tibre2>");
sos.println("</td>");
sos.println("<input type='hidden' value='200' name='id'>");
sos.println("<input type='hidden' value='Compaq' name='name'>");
sos.println("<input type='hidden' value='800.99' name='price'>");
res.sendRedirect("http://localhost:8080/servlet/Tibre");
sos.println("</form>");
sos.println("</tr>");
sos.println("</table>");
sos.println("<a href='http://localhost:8080/servlet/ViewCart'>View
Cart</a>");
sos.println("</body>");
sos.println("</html>");
catch(Exception e)
e.printStackTrace();
ViewCart.java // When I click viewcart I should display the contents from the hashtable
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class ViewCart extends HttpServlet
public void doGet(HttpServletRequest req,HttpServletResponse res)
try
ServletOutputStream sos = res.getOutputStream();
ShopBean cart = new ShopBean();
sos.println("<html><head>");
sos.println("<title> Shopping Cart Contents</title>");
sos.println("</head>");
sos.println("<body bgcolor=lightyellow>");
sos.println("<table border='1' width='300' cellspacing='0'
cellpadding='2' align='center'>");
sos.println("<caption><b>Shopping cart contents</b></caption>");
sos.println("<tr><th>description</th><th>Price</th><th>Quantity</th></tr>");
Enumeration enum=cart.getEnumeration();
String[] tmpItem;
while(enum.hasMoreElements())
tmpItem=(String[])enum.nextElement();
sos.println("<tr>");
sos.println("<td>"+tmpItem[1]+"</td>");
sos.println("<td align='center'>"+tmpItem[2]+"</td>");
sos.println("<td align='center'>"+tmpItem[3]+"</td></tr>");
sos.println("</table>");
sos.println("</center>");
sos.println("<a href='http://localhost:8080/servlet/Tibre'>Back to
Catalog</a>");
sos.println("</body>");
sos.println("</html>");
catch(Exception e)
e.printStackTrace();
Also please correct me if there are any mistakes in my code.
Thanks for any help
UmaFew errors,
1.Your 'addToCart' method in the bean will not work as you are thinking. Try to find out the reason by yourself.
2.ShopBean cart = new ShopBean(); in your ViewCart servlet gives you a fresh bean with a blank hashtable. Obviously it will not contain any items and hence you are not getting them displayed in the browser. Again you need to find out the error, I can give you a clue, Insert an item in the bean's constructor and test your code.
3.You need to carry the information between your servlets, session is the best thing to use. So, your bean's scope must be session.
Try to solve it by yourself, this forum will always be there to guide you.
Hope this helps.
Sudha -
Function module to read Shopping cart
Folks,
The answer I am looking for is not BBP_PD_SC_GETDETAIL.
Here is the situation: During the approval process, the approver needs to be able to change few fields. So, i used the secur_badi to give him a "Change shopping cart" button. But, when he hits the change, all the fields on the shopping cart are available for change. So, this guy could monkey around and change some of the fields he is not suppose to change and I need to catch this in the check badi.
So, I started using the BADI "BBP_DOC_CHECK_BADI" and used FM 'BBP_PD_SC_GETDETAIL' to get the shopping cart details. But, this gives me only the PRESENT values on the screen ... and I need to compare it with the shopping cart values in the database. Is there any function module that could help me here?
The idea is to compare field by field and throw an error if he chnages the fields he is not supposed to chnage. (ugly ha!)
Thanks
SriHi Sri,
You are right, calling BBP_PD_SC_GETDETAIL during the user session will retrieve the data in user session memory, and not the physical one stored in the database.
So you have 2 solutions:
- check each field value against physical value in DB: direct SQL access in SRM tables (CRMD_ORDERADM..., BBP_PD...)
- change the PBO modules "modify_screen" of each SC screen to close wanted fields if sy-tcode = SC aproval TCODE. this would be eased if a BADI was available for SC screens (like BBP_UI_CONTROL_BADI).
I prefer the 2nd one.
Rgds
Christophe -
Shopping cart only accepting credit cards sometimes
I replaced a Prostores shopping cart with a BC cart and my client keeps telling me of the significant number of people who are having getting the shopping cart to accept their credit cards. While there are a certain number of people who mistype, we've been doing this for a number of years and we can tell when there are lots more such complaints than usual.
I just put in a credit card for someone (on Chrome) and it gave me an error "Go Back." I entered the same information on Firefox and it was successful.
If we didn't all have years of experience with this, I would simply dismiss, but I really believe there are problems.
Is anyone else having this experience? Is there anything else I can do to improve the performance?
KatieOne thing that we find very helpful is we added a script that emails the admin the results of every transaction, both succesful and not. We post in this email the communications that come back from the payment gateway, which normally you never see. This is extremely helpful in quickly catching and diagnosing errors or miscommunications between the site and the gateway that otherwise would be very hard to figure out, or sometimes even know about.
Another good thing about this is you will know a customer has an unsuccessful transaction the same time they do and if you wish you can contact them to see if you can help. This often saves sales and customers that you may otherwise unknowingly lose.
The way we have it set up, this can be turned off or on, incase the merchant finds all the emails annoying, but it's a good safety net to have in place if you are having issues like you describe.
I'm not familiar with the code in the cart that you are using, but there is always a point in the gateway transaction flow where you can add in this sort of "listening" system. I'd recommend doing something like this.
Hope this helps.
Lawrence Cramer - *Adobe Community Professional*
http://www.Cartweaver.com
PHP & ColdFusion Shopping Cart for Adobe Dreamweaver
Stay updated:
http://www.facebook.com/cartweaver
http://www.twitter.com/cartweaver
http://blog.cartweaver.com -
SAP function to delete shopping cart (set header status I1040)?
Does anyone know of a SAP function which can delete a shopping cart (set header status I1040)?
We're running the EBP extended classic scenario with SRM 4.0 and SRM_SERVER 5.00.
Thanks,
BradI don't know about the OP's reasons, but I've been looking for a similar solution as well. In my case our users sometimes create shopping carts under e.g. the wrong budget code, and the approvers don't always catch this, resulting in an approved SC that we can't change or delete but equally can't use.
I'll check out those fcns, thanks for that. From your question it sounds like there's some reason why this shouldn't be done though? Would this be seen as a bad practice? How would you recommend dealing with the above situation?
Thanks, John. -
Workflow goes in error when the shopping cart is rejected
Hi All,
We have implemented n step approval workflow.
The issue is when the shopping cart gets rejected, the workflow WS14900032 gets called which sends the mail to approver/initiator/reviewer.
The catch here is this workflow is going in error only in case of approvers and that too sometimes.
Can anybody tell me what might be the issue with this. I have already compared the correct and errored workflow data but do not find anything specific.
Please help.
Regards,
NehaHi,
What was the error detail in SWI2_DIAG transaction?
Regards,
Masa -
About shopping cart. Please help!
How can I add some statements to the following program to check whether the selected item has been tried to add to the shopping cart the second time so that the user can be warned "You can only choose this item once!"?
Here is the servlet that adds the chosen item to the cart by invoking the add(String) method of the ShoppingCart class.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
public class CatalogServlet extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, NullPointerException
Connection dbConn=null;
PreparedStatement p_pt=null;
ResultSet rs_pt=null;
PrintWriter out = null;
try
//load JDBC-ODBC Bridge driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//establish database connection using ODBC
dbConn = DriverManager.getConnection("jdbc:odbc:cartlet");
catch (ClassNotFoundException e) //Class.forName throws
System.out.println("JDBC-ODBC bridge not found!");
return;
catch (SQLException e) //DriverManager.getConnection throws
System.out.println("SQL exception thrown in init!");
return;
try{
// set content-type header before accessing the Writer
response.setContentType("text/html");
// Additions to the shopping cart
HttpSession clientSession = request.getSession( true );
ShoppingCart vBasket = (ShoppingCart)clientSession.getValue("thecart");
if ( vBasket == null ){
System.out.println("NO CART");
vBasket = new ShoppingCart();
clientSession.putValue("thecart", vBasket);
System.out.println("MADE THE CART");
out = response.getWriter();
// then write the data of the response
out.println("<html>" +
"<head><title> CD Catalog </title></head>" +
"<body bgcolor=\"#ffffff\">" +
"<center>" +
"<hr> <br> " +
"<h1>" +
"<font size=\"+3\" color=\"red\">CD </font>" +
"<font size=\"+3\" color=\"purple\">Catalog</font>" +
"</h1>" +
"</center>" +
"<br> <hr> <br> ");
String the_item=null;
String movieToAdd = request.getParameter("ic");
if (movieToAdd != null) {
p_pt = dbConn.prepareStatement("select itemid, item from item_master where itemid=?");
p_pt.setString(1, movieToAdd);
rs_pt = p_pt.executeQuery();
if (rs_pt.next()) {
the_item=rs_pt.getString("itemid");
out.println("<p><h3>" + "<font color=\"#ff0000\">"
+ "You just added <i><BR>" + "<IMG SRC=\"http://eric-fyp:9111/emovie/"
+ rs_pt.getString("item") + "\">"
+ "<BR></i> " + "to your shopping cart</font></h3>");
vBasket.add(the_item);
System.out.println("ADDED");
System.out.println("Here are the items");
Hashtable shoppeditems = vBasket.getItems();
Enumeration enum = shoppeditems.keys();
while (enum.hasMoreElements()) {
System.out.println((String)enum.nextElement());
out.println("</body></html>");
out.close();
catch(SQLException ex)
out.println("<HTML>");
out.println("<HEAD><TITLE>Database Error!</TITLE>");
out.println("</HEAD>");
out.println("<BODY><H3>Error</H3><h6>" + ex.getMessage() +"</h6>");
out.println("</BODY>");
out.println("</HTML>");
catch (Exception e)
System.out.println(e.getMessage());
finally
if (rs_pt!=null) {
try{
rs_pt.close();
catch (SQLException e) {}
if (p_pt!=null) {
try{
p_pt.close();
catch (SQLException e) {}
if (dbConn!=null) {
try{
dbConn.close();
catch (SQLException e) {}
public String getServletInfo()
return "CatalogServlet.java";
Here is the ShoppingCart class
import java.util.*;
public class ShoppingCart {
Hashtable items = null;
public ShoppingCart() {
items = new Hashtable();
public void add(String movieId) {
Integer sc_value=null;
int sc_i_value=0;
if(items.containsKey(movieId)) {
sc_value = (Integer)items.get(movieId);
sc_i_value=sc_value.intValue();
sc_i_value++;
items.remove(movieId);
items.put(movieId, new Integer(sc_i_value));
System.out.println("UPDATED!!");
else {
items.put(movieId, new Integer(1));
public Hashtable getItems() {
return items;
Hope anyone can help! Thx!After you retrieves the shopping cart items from the database, store the items in a HashSet, so when the user adds a new item, you just need to check whether the HashSet contains that item, if it is already in the set, show the warning. If not exist, insert the item to your database. You can use the response.sendRedirect() method to redirect the user to a warning page.
HashSet is a very good data structure since it doesn't contain duplicate elements. It is also extremely fast.
String itemID = 2323; // some item id in your catalog
HashSet itemset = new HashSet(); // you should add your existing cart items to this HashSet
// no do the checking
if(itemset.contains(itemID) {
response.sendRedirect("warning.jsp"); // forward it to a warning page
return; // processing no further
} else {
// in here, do the db update, and display the cart to the user -
Need Help Badly on Shopping Cart Using JSP And Java Servlet
Hi All,
This is the 1st time i am trying to create a shopping cart using JSP and Servlet.
I have read through a few acticles but i still do not get the whole idea of how it works.
Please guide me as i need help very badly.
Thanks.
This is one of the jsp page which displays the category of products user would like to buy : Products.jsp
<html>
<head>
<title>Purchase Order</title>
</head>
<body topmargin="30">
<table border="0" width="100%" id="table1" cellpadding="2">
<tr>
<td bgcolor="#990000" width="96">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">
Code</font></b></td>
<td bgcolor="#990000" width="260">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">
Description </font></b></td>
<td bgcolor="#990000" width="130">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">Brand
</font></b></td>
<td bgcolor="#990000" width="146">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">UOM
</font></b></td>
<td bgcolor="#990000" width="57">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">Unit<br>
Price </font></b></td>
<td bgcolor="#990000" width="62">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">
Carton<br>
Price </font></b></td>
<td bgcolor="#990000" width="36">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">
Qty</font></b></td>
<td bgcolor="#990000" width="65">
<p align="center"><b><font face="Verdana" size="2" color="#FFFFFF">Add<br>
To Cart</font></b></td>
</tr>
<tr>
<td align="center" width="96" bgcolor="#CCCCCC">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">123</font>
</td>
<td align="center" width="260" bgcolor="#CCCCCC">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Tom Yam</font>
</td>
<td align="center" width="130" bgcolor="#CCCCCC">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nissin</font>
</td>
<td align="center" width="146" bgcolor="#CCCCCC">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">12 x 10's</font>
</td>
<td align="center" width="57" bgcolor="#CCCCCC">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">$3.85</font>
</td>
<td align="center" width="62" bgcolor="#CCCCCC">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">$46.2</font>
</td>
<td align="center" width="36" bgcolor="#CCCCCC">
<!--webbot bot="Validation" S-Data-Type="Integer" S-Number-Separators="x" -->
<p align="center"><input type="Integer" name="Q10005" size="1"></p>
</td>
<td align="center" width="65" bgcolor="#CCCCCC">
<p><input type="checkbox" name="checkbox" value="123"></p>
</tr>
<tr>
</table>
<table border="0" width="100%" id="table2">
<tr>
<td>
<div align="right">
<input type="hidden" name="hAction" value="AddToCart"/>
<input type=submit name="submit" value="Add To Cart"/>
</div>
</td>
</tr>
</table>
</body>
</html>
After user has make his selection by entering the qty and ticking on the check box, he would click the "Add To Cart" button ... and this would call my servlet : AddToAddControlSerlvet.java
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.util.*;
import java.util.ArrayList;
public class AddToCartControlServlet extends HttpServlet
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException
String action = req.getParameter("hAction");
if (action.equals("AddToCart"))
addToCart(req,res);
public void addToCart(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
try
String url = "";
String[] addList = req.getParameterValues("checkbox");
HttpSession sess = req.getSession(true);
//String sessionID = sess.getId();
DBClass dbClass = new DBClass();
ArrayList cartList = new ArrayList();
for (int i = 0; i < addList.length; i++)
String productCode = (String)addList;
int qty = Integer.parseInt(req.getParameter("Q"+productCode));
Products product = dbClass.getProductDetail(productCode);
double totalUnitAmt = qty * product.getUnitPrice();
double totalCartonAmt = qty * product.getCartonPrice();
Order order = new Order(product.getProductCode(),product.getProductDesc(),product.getBrandName(),product.getUom(),qty,product.getUnitPrice(),product.getCartonPrice(),totalUnitAmt,totalCartonAmt);
cartList.add(order);
sess.setAttribute("cartList", cartList);
url = "/Cart/CartDetails.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(url);
rd.forward(req, res);
catch (Exception e)
System.out.println(e);
From here, i would get the list of items which user has selected and add to the cartList, then i would direct the user to CartDetails.jsp which displayed the items user has selected.
From there, user would be able to remove or to continue shopping by selecting other category.
How i do store all the items user has selected ... everytime he would wan to view his cart ...
As i would be calling from jsp to servlet .. or jsp to servlet ... and i do not know how i should go about in creating the shopping cart.Hi !
Yon can use a data structure as vector and store the items selected by the user into the vector . Keep the vector in session using session object , so the user can access the entire shopping cart from anywhere in the application .
Then , you can change the cart accordingly .
Hope this works.
Cheers ,
Pranav -
How to use customer extension table for schedule line for shopping cart ?
Dear Experts,
One of our client wants to have schedule lines in shopping cart item. I am thinking of using customer extension table at item level for shopping cart. Could you please help me on how I should proceed with the appending the structures so that the end user can fill the shopping cart schedule line details?
Which fields should I consider in such cases?
Thanks and regards,
RanjanHi.
I guess you use SRM 7.0. Please go to IMG.
SRM -> SRM Server -> Cross-Application Basic Settings -> Extensions and Field Control (Personalization) -> Create Table Extensions and Supply with Data
Regards,
Masa -
Creation of User defined field in Shopping Cart
Hi All,
We are using SRM 4.0, we have requirement to have MRP controller field on basic data screen of shopping cart(for services as well as material). This field will get transferred to R/3, based on which release strategy will get triggred.
We have table in which we maintain user & his MRP controller. Requirement is that the MRP controller filled should get filled with the table value (in case of shop on behalf, MRP controller should of respective user on whose behalf the SC is being created).
I know how to create the field. I want to know the flow/logic to achieve this.
Please give suggestion to me.
Thanks & Regards,
Ajay Pakhale
Edited by: Ajay Pakhale on Jun 10, 2008 7:19 PMRe: BBP_CUF_BADI_2
Re: Custom screen
Re: badi for custom field check
Re: Control Busniess Area Field in Account Assignment..
Re: CUF display or input
Maybe you are looking for
-
ID not working in App store only. Anyone having this issue?
-
Read/Write pdf's as blobs using forms 10g
Hi All, I have a table called IMAGES in which i store the pdfs as blobs. It was successfully working fine with me when I was using forms 6i. Recently I installed oracle 10g and just found that 10G doesnt support OLE. I came to know about WEBUTIL pack
-
Capture TelNet Screen From Remote Server.....
Iam using Sun Solaris having an ERP package, which requires its screens & its datas to be captured from a remote server. Presently Iam able to capture the screen & its datas by using telnet and logging on to the remore server. Now my requirement is t
-
Hi, I am in RSPC (Process Chain) How can i switch the view of Process Chain from Network -->Tree or Tree-->Network Thanks
-
Internet stops working after being connected for 5 minutes to wifi
My macbook pro running on os x mavericks is giving me an issue. After 5 minutes of connection with the wifi network, the internet stops working even though its connected the network. Reconnecting fixes it for yet another 5 minutes.