[ic] Order Checkout Oddities

Cameron lists at cameroncorda.com
Mon Jul 7 04:09:52 EDT 2003


About a month ago a client's site was migrated from Authorize.net to 
Echo for payment processing (using IC 4.8.7).  Ever since then the 
checkout process has been FUBAR'ed.

The site uses Paul Jordan's multi-step checkout, and has worked for some 
time.  If you had an existing account, typing in your username and 
password would simply refresh the page.  The only way to get to the 
checkout was to create a new account, but trying to submit a credit card 
would take you back to the basket. Error logs revealed the following: 
"Order profile credit_card not found".

Seaching through the list archives, I finally found a tip about moving 
these lines above the order routing:
OrderCounter    etc/order.number
OrderLineLimit  200
OrderProfile    etc/profiles.order etc/profiles.login etc/profiles.misc

Sure enough, this enabled users to login.  You can even use the offline 
payment method (checkout2).  Using the credit card payment sends you 
back to an empty cart.  I've checked the Echo logs, and my test orders 
have gone through, but the customer doesn't get their receipt.  Other 
oddities are that the order number increases regardless of checkout 
method.  The order folder doesn't have order records of any transaction. 
Tracking.asc records the offline checkout transactions, but has nothing 
on the online credit card ones. The error logs reveal this after 
submitting a credit card transaction:

/cgi-bin/shop/process.html PGP failed with status 2:
/cgi-bin/shop/process.html Non-existent order routing log, skipping.
/cgi-bin/shop/process.html Non-existent order routing main, skipping.
/cgi-bin/shop/process.html Non-existent order routing copy_user, skipping.
/cgi-bin/shop/process.html Non-existent order routing log, skipping.
/cgi-bin/shop/process.html Non-existent order routing main, skipping.
/cgi-bin/shop/process.html Non-existent order routing copy_user, skipping.

What the heck is going on?  I've racked my brain for hours upon hour on 
this, but am completely lost.  Below I've included what I think are the 
relevant snippets from catalog.cfg.  If you'd like to take a look at 
profiles.order, it can be downloaded here: 
http://toknowaveil.com/profiles.order

Any help would be GREATLY appreciated.

--
catalog.cfg
--
OrderCounter    etc/order.number
OrderLineLimit  200
OrderProfile    etc/profiles.order etc/profiles.login etc/profiles.misc

# Cart, order, and route settings.

Variable    MV_PAYMENT_MODE  echo
Variable    MV_PAYMENT_ID    ********
Variable    MV_PAYMENT_SECRET    ********
Variable    MV_DEMO_MODE 0

ParseVariables  Yes

ValuesDefault   country      __SHIP_DEFAULT_COUNTRY__
ValuesDefault   mv_shipmode  __SHIP_DEFAULT_MODE__
DefaultShipping FLATD

MailOrderTo     __ORDERS_TO__

AlwaysSecure    ord/basket ord/checkout account logout customerservice 
login change_password ord/promoarea ord/checkarea ord/editprofile order

## Set this if you have a different secure server
#AlwaysSecure   order ord/checkout ord/basket login change_password process

PriceField      0
CommonAdjust    :sale_price, ;:price, ;$, ==:options

EncryptKey  __PGP_KEY__

# This prevents a user from setting this value, you may want to unset
# this if you have user-selectable handling charges like insurance
FormIgnore   mv_handling
#
#

# Along these lines further, for better integrity and less chance of a
# user screwing up your order routes:
# Note that __ORDER_ROUTES__ is empty by default, default Route "default"
# is used with cascades
FormIgnore      mv_order_route

## This route places the order entry in the database. If you don't
## have an inventory table (or a userdb table for that matter) make
## sure you remove it from the list of "transactions" tables.

Route log  <<EOF
    empty        1
    encrypt      0
    increment    0
    report       etc/log_transaction
    supplant     0
    track        logs/log
EOF

## This route places the order entry in the database when you are
## entering an order from the admin. See above.
Route log_entry  <<EOF
    empty        1
    encrypt      0
    report       etc/log_entry
    supplant     0
    track        logs/log
EOF

ifdef TRANSACTION_TABLES
Route log       transactions '__TRANSACTION_TABLES__'
Route log_entry transactions '__TRANSACTION_TABLES__'
endif

## This route copies the user if they requested that. We don't
## care (much) if it fails, so error_ok is set and failure will
## not cause the order to fail
Route copy_user  <<EOF
    empty        1
    error_ok     1
    encrypt      0
    increment    0
    report       etc/mail_receipt
    supplant     0
    track        logs/log
EOF

ParseVariables Yes
## This route emails the order to you unless email is set to "",
## and failsafe-logs the order report a couple of places
Route main  <<EOF
    attach            0
    credit_card       0
    default           1
    email             '__ORDERS_TO__'
    encrypt           0
    errors_to         '__ORDERS_TO__'
    pgp_cc_key        "__PGP_KEY__"
    pgp_key           "__PGP_KEY__"
    report            etc/report
    receipt           etc/receipt.html
    supplant          1
    master              1
    individual_track  orders
    track             logs/tracking.asc
EOF

Route main_b  <<EOF
    attach            0
    credit_card       0
    default           1
    email             '__ORDERS_TO__'
    encrypt           0
    errors_to         '__ORDERS_TO__'
    pgp_cc_key        "__PGP_KEY__"
    pgp_key           "__PGP_KEY__"
    report            etc/report
    receipt           etc/receipt2.html
    supplant          1
    master            1
    individual_track  orders
    track             logs/tracking.asc
EOF

# Order routes can be maintained in a database
# CHANGES TO THIS WILL OVERRIDE THE ROUTES ABOVE.
RouteDatabase   route

# Default route is run if no routes set, this should be last Route
# always
## Route   default   master          1
## Route   default   cascade         "log main copy_user"
## Route   default   empty           1
## Route   default   supplant        1
## Route   default   email           '__ORDERS_TO__'

## Uncomment this if you want Routes read dynamically from DB
#Route   default   dynamic_routes  1
## Uncomment this if you want ITL allowed in routes
#Route   default   expandable      1

SalesTax        county
TaxShipping     __TAXSHIPPING__
SeparateItems   Yes




More information about the interchange-users mailing list