Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Mark Russell

Archived
  • Posts

    139
  • Joined

  • Last visited

Profile Information

Recent Profile Visitors

3,608 profile views

Mark Russell's Achievements

  1. Tim, The easypolpulate step gets you the Product Detail section with the itemized products. Hope that answers your question. Mark
  2. Products do get inserted into the db on the fly. However, the first time a product is purchased and passed to 2CO (i.e. it isn't already in the 2CO db) that product will not show up as an itemized entry on the order page for that purchase only. Subsequent purchases of that same product will be itemized on the order page. Uploading a full product file to start ensures that all products get itemized on the order page from the start. That's all... Mark
  3. Lia, Those fields are not required, so I decided in my case not to upload them with my products. The Approved URL is the URL to redirect the buyer to when the purchase succeeds. - I didn't enter this URL because 2CO already has my redirect URL to checkout_process.php. This redirect works and I didn't want to take the chance that entering the URL with products would screw something up. The Pending URL is the URL to redirect the buyer to when the purchase cannot be immediately determined. - I guess it would be good to redirect back to my shop if something went wrong in the checkout process, but again, I just wanted to get it to work. Also, if something happens during checkout that requires redirect back to my shop, I figure there's a good chance I'll lose the customer anyway. I may upload this URL in the future and point them back to checkout_confirmation. Maybe they'd try again... Mark
  4. I got my cart to work with 2CO V2. I'm running a real old version of OSC - a snapshot from Sept 02, so I guess 2CO's claim that V2 will work with MS2 V2 is not true. Here's what I did: Change pm2checkout.php code. Note: newer versions of OSC will look different than this, but the overall concept of the script is the same. The 'for' loop is to capture multiple products in the cart, if needed. The reason to pass c_prod, c_name, etc is so 2CO can read those variables off the pass through URL, match them in the 2CO database and list the items on the order page when the customer hits the order page at 2CO. See the jpg down below. The 'demo' variable is to put the cart in/out of test mode. The id_type of '1' identifies that the product passed through has a an id assigned by me. A '2' would be for a system-assigned prod_id. Note: I'm passing through the product name in the description field also. function process_button() { global $HTTP_POST_VARS, $CardNumber, $order, $i; for ($i=0; $i<sizeof($order->products); $i++) { $process_button_string .= tep_draw_hidden_field('c_prod_' . $i, $order->products[$i]['model'] . ',' . $order->products[$i]['qty']); $process_button_string .= tep_draw_hidden_field('c_name_' . $i, $order->products[$i]['name']); $process_button_string .= tep_draw_hidden_field('c_price_' . $i, $order->products[$i]['price']); $process_button_string .= tep_draw_hidden_field('c_description_' . $i, $order->products[$i]['name']); // input name as the description } $process_button_string .= tep_draw_hidden_field('x_login', MODULE_PAYMENT_2CHECKOUT_LOGIN) . tep_draw_hidden_field('x_amount', number_format($order->info['total'], 2)) . tep_draw_hidden_field('x_invoice_num', date('YmdHis')) . tep_draw_hidden_field('demo', N) . tep_draw_hidden_field('id_type', 1) . tep_draw_hidden_field('x_first_name', $order->customer['firstname']) . tep_draw_hidden_field('x_last_name', $order->customer['lastname']) . tep_draw_hidden_field('x_address', $order->customer['street_address']) . tep_draw_hidden_field('x_city', $order->customer['city']) . tep_draw_hidden_field('x_state', $order->customer['state']) . tep_draw_hidden_field('x_zip', $order->customer['postcode']) . tep_draw_hidden_field('x_country', $order->customer['country']['title']) . tep_draw_hidden_field('x_email', $order->customer['email_address']) . tep_draw_hidden_field('x_phone', $order->customer['telephone']) . tep_draw_hidden_field('x_ship_to_first_name', $order->delivery['firstname']) . tep_draw_hidden_field('x_ship_to_last_name', $order->delivery['lastname']) . tep_draw_hidden_field('x_ship_to_address', $order->delivery['street_address']) . tep_draw_hidden_field('x_ship_to_city', $order->delivery['city']) . tep_draw_hidden_field('x_ship_to_state', $order->delivery['state']) . tep_draw_hidden_field('x_ship_to_zip', $order->delivery['postcode']) . tep_draw_hidden_field('x_ship_to_country', $order->delivery['country']['title']) . tep_draw_hidden_field('x_receipt_link_url', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'NONSSL')) . tep_draw_hidden_field('x_email_merchant', MODULE_PAYMENT_2CHECKOUT_EMAIL_MERCHANT); return $process_button_string; } Upload Product File - I used the contribution Easy Populate to download a complete tab-delimited .txt file. I then opened in Excel and escaped all the commas (,) with (\,). I also modified the file to meet 2COs file spec available here: https://www2.2checkout.com/2co/admin/product_upload. I then saved as a CSV and opened in Textpad. I removed the header column and added my 5-digit SID to the first line (commented out below) . The first couple of lines of the product file are below. Alex (arm1tage) wisely pointed out the following "I've learned the c_prod and associated variables have to be passed once in a LIVE transaction so they are entered into 2CO's database, before they show up in the cart details. So for those of you that do not see the itemized list, it is because you have not had a live sale of that item yet. One way around this is to upload your inventory in a .CSV file." That was critical for me because I was expecting the itemized products to show up on the 2CO order page upon the products being passed through in the URL. They don't. They have to already be in the 2CO database. Product File: MYSID A-1044,Ivory Velvet Bow Clip,,2.99,,,1,Ivory Velvet Bow Clip A-1005,Hair Accesory - Yellow Flower Hair Elastic,,3.99,,,1,Hair Accesory - Yellow Flower Hair Elastic A-1005,Hair Accesory - Yellow Flower Hair Elastic,,3.99,,,1,Hair Accesory - Yellow Flower Hair Elastic A-1013,Harlequin Headband,,4.99,,,1,Harlequin Headband Test Mode - V2 does not work like V1 where you use the drop-down menu in the admin area to turn test mode on/off. You have to pass the variable 'Y' to indicate a test transaction. Test Credit Card - use 597910143452349, any expiration date in the future, and 000 for the security code. Pass Through URL - when you hit the Confirmation button on checkout_confirmation.php and hit the first page at 2CO, the pass through URL should be in the browser address bar. Mine looked like the following for the successful transaction. (I modified some of the variables.) (Removed 'http://w' to prevent this from being a link)ww.2checkout.com/2co/buyer/purchase?TCOID=c393c06c94e930f050f18563b086b1?=&c_prod_0=S-6063,2&c_name_0=Girls socks - Light Blue and white stripes and flowers Size 6.5&c_price_0=2.9900&c_description_0=&c_prod_1=S-4013,1&c_name_1=White Sunflower Lace Cuffed Girls Socks Size 4 - 5.5&c_price_1=4.4900&c_description_1=&x_login=MYSID&x_amount=13.76&x_invoice_num=20050401084151&demo=Y&id_type=1&x_first_name=joe&x_last_name=schmo&x_address=377 Anywhere Dr &x_city=Somewhere&x_state=California&x_zip=90210&x_country=United States&[email protected]&x_phone=5555551212&x_ship_to_first_name=joe&x_ship_to_last_name=schmo&x_ship_to_address=377 Anywhere Dr &x_ship_to_city=Somewhere&x_ship_to_state=California&x_ship_to_zip=90210&x_ship_to_country=United States&x_receipt_link_url=http://www.mydomain.com/checkout_process.php&x_email_merchant=FALSE&x=43&y=19 I hope this helps. Mark
  5. Alex, Thanks for the info on the inventory upload and how the products won't show up until they are actually in the 2CO db. I'm going to try and upload my product catalog and then test. Should I then see itemized products for the TEST transaction or are you saying that the only way to see itemized products is if the transaction is LIVE? Mark
  6. I've converted to V2 and actually booked an order from a customer today. My shop passed the correct demographic and sale parameters to 2CO. 2CO passed back to my shop and the order was captured in the db. Problem is though, I haven't yet successfully passed the product data to 2CO (c_prod, c_name, c_price, etc). I'm starting to think the problem is with 2CO. Here's the string that I am passing to them: (Removed 'http://w' to prevent this from being a link)ww.2checkout.com/2co/buyer/purchase?TCOID=c393c306c94e930f5050f18563b086b1∏=&c_prod_0=S-6063,2&c_name_0=Girls socks - Light Blue and white stripes and flowers Size 6.5&c_price_0=2.9900&c_description_0=&c_prod_1=S-4013,1&c_name_1=White Sunflower Lace Cuffed Girls Socks Size 4 - 5.5&c_price_1=4.4900&c_description_1=&x_login=MYSID&x_amount=13.76&x_invoice_num=20050401084151&demo=Y&id_type=1&x_first_name=joe&x_last_name=schmo&x_address=377 Anywhere Dr 200&x_city=Somewhere&x_state=California&x_zip=90210&x_country=United States&[email protected]&x_phone=5555551212&x_ship_to_first_name=joe&x_ship_to_last_name=schmo&x_ship_to_address=377 Anywhere Dr &x_ship_to_city=Somewhere&x_ship_to_state=California&x_ship_to_zip=90210&x_ship_to_country=United States&x_receipt_link_url=http://www.mydomain.com/checkout_process.php&x_email_merchant=FALSE&x=43&y=19 This looks ok to me except maybe for the TCOID and I don't have the prod_desc in yet. I don't know why having the TCOID would be an issue though because I did successfully book a sale on V2 with this as the pass through. Anyone have any thoughts / comments on why 2CO is not capturing the product? My pm2checkout.php code is below. Thanks, Mark function process_button() { global $HTTP_POST_VARS, $CardNumber, $order, $i; for ($i=0; $i<sizeof($order->products); $i++) { $process_button_string .= tep_draw_hidden_field('c_prod_' . $i, $order->products[$i]['model'] . ',' . $order->products[$i]['qty']); $process_button_string .= tep_draw_hidden_field('c_name_' . $i, $order->products[$i]['name']); $process_button_string .= tep_draw_hidden_field('c_price_' . $i, $order->products[$i]['price']); $process_button_string .= tep_draw_hidden_field('c_description_' . $i, ''); // not sure how to input the description here } $process_button_string .= tep_draw_hidden_field('x_login', MODULE_PAYMENT_2CHECKOUT_LOGIN) . tep_draw_hidden_field('x_amount', number_format($order->info['total'], 2)) . tep_draw_hidden_field('x_invoice_num', date('YmdHis')) . tep_draw_hidden_field('demo', N) . tep_draw_hidden_field('id_type', 1) . //tep_draw_hidden_field('x_card_num', $CardNumber) . //tep_draw_hidden_field('x_exp_date', $this->cc_expires_month . $this->cc_expires_year) . tep_draw_hidden_field('x_first_name', $order->customer['firstname']) . tep_draw_hidden_field('x_last_name', $order->customer['lastname']) . tep_draw_hidden_field('x_address', $order->customer['street_address']) . tep_draw_hidden_field('x_city', $order->customer['city']) . tep_draw_hidden_field('x_state', $order->customer['state']) . tep_draw_hidden_field('x_zip', $order->customer['postcode']) . tep_draw_hidden_field('x_country', $order->customer['country']['title']) . tep_draw_hidden_field('x_email', $order->customer['email_address']) . tep_draw_hidden_field('x_phone', $order->customer['telephone']) . tep_draw_hidden_field('x_ship_to_first_name', $order->delivery['firstname']) . tep_draw_hidden_field('x_ship_to_last_name', $order->delivery['lastname']) . tep_draw_hidden_field('x_ship_to_address', $order->delivery['street_address']) . tep_draw_hidden_field('x_ship_to_city', $order->delivery['city']) . tep_draw_hidden_field('x_ship_to_state', $order->delivery['state']) . tep_draw_hidden_field('x_ship_to_zip', $order->delivery['postcode']) . tep_draw_hidden_field('x_ship_to_country', $order->delivery['country']['title']) . tep_draw_hidden_field('x_receipt_link_url', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'NONSSL')) . tep_draw_hidden_field('x_email_merchant', MODULE_PAYMENT_2CHECKOUT_EMAIL_MERCHANT); return $process_button_string; }
  7. I successfully ran a test transaction with 2CO V2 from my site which is a snapshot from Sep 2002, though, without the required c_prod and id_type parameters. My pm2checkout.php code is below. Why do you have (c_prod, '1') and ('id_type', '2')? The '2' for id_type indicates a system-assigned (i.e. 2CO-assigned) product ID. Isn't that for those who have their products hosted at 2CO? And the '1' for c_prod indicates you are just passing a number 1 through for the product id. Isn't c_prod supposed to match your product id as uploaded in the 2CO database? Seems that us OSC users would have to code c_prod to actually pass our product id in the string and we'd want to set the id_type as '1'. Am I correct, or missing something? Thanks, Mark $process_button_string = tep_draw_hidden_field('x_login', MODULE_PAYMENT_2CHECKOUT_LOGIN) . tep_draw_hidden_field('x_amount', number_format($order->info['total'], 2)) . tep_draw_hidden_field('x_invoice_num', date('YmdHis')) . tep_draw_hidden_field('demo', Y) . //tep_draw_hidden_field('x_card_num', $CardNumber) . //tep_draw_hidden_field('x_exp_date', $this->cc_expires_month . $this->cc_expires_year) . tep_draw_hidden_field('x_first_name', $order->customer['firstname']) . tep_draw_hidden_field('x_last_name', $order->customer['lastname']) . tep_draw_hidden_field('x_address', $order->customer['street_address']) . tep_draw_hidden_field('x_city', $order->customer['city']) . tep_draw_hidden_field('x_state', $order->customer['state']) . tep_draw_hidden_field('x_zip', $order->customer['postcode']) . tep_draw_hidden_field('x_country', $order->customer['country']['title']) . tep_draw_hidden_field('x_email', $order->customer['email_address']) . tep_draw_hidden_field('x_phone', $order->customer['telephone']) . tep_draw_hidden_field('x_ship_to_first_name', $order->delivery['firstname']) . tep_draw_hidden_field('x_ship_to_last_name', $order->delivery['lastname']) . tep_draw_hidden_field('x_ship_to_address', $order->delivery['street_address']) . tep_draw_hidden_field('x_ship_to_city', $order->delivery['city']) . tep_draw_hidden_field('x_ship_to_state', $order->delivery['state']) . tep_draw_hidden_field('x_ship_to_zip', $order->delivery['postcode']) . tep_draw_hidden_field('x_ship_to_country', $order->delivery['country']['title']) . tep_draw_hidden_field('x_receipt_link_url', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'NONSSL')) . tep_draw_hidden_field('x_email_merchant', MODULE_PAYMENT_2CHECKOUT_EMAIL_MERCHANT); return $process_button_string;
  8. I have 2checkout working. It would help to know how it doesn't work. What is happening? Mark
  9. Thanks for the pointer to that file. I restored line 220 back to original state and uploaded the new .dat file. Flags work and no 'traverse errors'. Muggity, you did it! This thread can now be closed. :wink: Mark
  10. I got sick of seeing this error come up so I just commented out line 220 in geoip.inc. /* trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR); */ This appears to have worked! No more errors... Too easy? :D M
  11. Doh! :o Of course. I get it now. :oops: Thanks, Robert. Mark
  12. Robert, Thanks for the tip on contacting Greg W. I lost ya here, though. Mark
  13. Greetings, I just installed 1.34 over my old 0.2 version. Nice work putting this together. I really like the new look and added whois functionality. Plus all the 'times' now seem to work. No more 3:00 minute idle times for everyone! Everything was working fine and I could expand to view the session until, it appears, a customer actually had something in their cart. When I view session with something in the cart I get the following error: Fatal error: error traversing database - perhaps it is corrupt? in /home/web/sites/everythingtights/admin/includes/geoip.inc on line 220 Also, this is what the link appears like in the address bar: http://www.mysite.com/admin/user_tracking.php?viewsession=c627ed6b6d26111bdb1b46e4f4f1b274#c627ed6b6d26111bdb1b46e4f4f1b274 Note the duplicate session ids. Does anyone know what might be wrong and how I can correct? Thanks for your time. Mark
  14. Thanks Tim, for the reply. I should have caught these in the earlier part of this thread. :oops: One note: I had to set $froogle_SEF_urls = 0; versus $froogle_SEF_urls = 'false'; to get the URLs to download as non-search engine safe. Mark
×
×
  • Create New...