Hi,
I'm working on an install of 1.2.3 (don't have the option to update it sadly) and I'm implementing a 'guest checkout'. The logic behind the below approach was to keep the user from checking in until they had provided all of their shipping/billing information at which time an account would be created and their order inserted into the database.
I have been outputting the $order object in PHP and can see the different arrays (billing, delivery and product) all being filled out as I go, however, when I submit the order while I see a successful entry in the customer table, AND I can see the payment information in the orders table, I am not seeing the customer, shipping or billing information.
Steps taken so far:
1. Commented out the check for the customer_ids in the headers of my checkout funnel pages.
2. Copied the code from create_account responsible for creating the customer account into the checkout process:
PHP Code:
if (!$_SESSION['customer_id']) {
$firstname = zen_db_prepare_input($_SESSION['request']['firstname']);
$lastname = zen_db_prepare_input($_SESSION['request']['lastname']);
$email_address = zen_db_prepare_input($_SESSION['request']['email_address']);
$customers_authorization = CUSTOMERS_APPROVAL_AUTHORIZATION;
$password = 'guest123-' . $email_address;
$password = zen_db_prepare_input($password);
$sql_data_array = array('customers_firstname' => $firstname,
'customers_lastname' => $lastname,
'customers_email_address' => $email_address,
'customers_nick' => '',
'customers_telephone' => '',
'customers_fax' => '',
'customers_newsletter' => '',
'customers_email_format' => 'HTML',
'customers_default_address_id' => '0',
'customers_password' => zen_encrypt_password($password),
'customers_authorization' => CUSTOMERS_APPROVAL_AUTHORIZATION
);
zen_db_perform(TABLE_CUSTOMERS, $sql_data_array);
$_SESSION['customer_id'] = $db->Insert_ID();
$sql = "insert into " . TABLE_CUSTOMERS_INFO . "
(customers_info_id, customers_info_number_of_logons,
customers_info_date_account_created)
values ('" . (int)$_SESSION['customer_id'] . "', '0', now())";
$db->Execute($sql);
}
From what I can tell, and this is where it may I would love some confirmation, that in the checkout_process file when the
PHP Code:
$order = new order;
is called, why are some of my arrays coming in blank?
HTML Code:
order Object
(
[info] => Array
(
[order_status] => 1
[currency] => USD
[currency_value] => 1.00000000
[payment_method] => Credit Card
[payment_module_code] => payflowpro
[coupon_code] =>
[shipping_method] => UPS Ground (7-10 Business Days)
[shipping_cost] => 4.5
[subtotal] => 14.95
[tax] => 0
[total] => 19.45
[tax_groups] => Array
(
[Unknown tax rate] => 0
)
[comments] =>
)
[totals] => Array
(
)
[products] => Array
(
[0] => Array
(
[qty] => 1
[name] => My Quotable Kid
[model] => 9780811868846
[tax] => 0
[tax_description] => Unknown tax rate
[price] => 14.9500
[final_price] => 14.95
[onetime_charges] => 0
[weight] => 0
[products_priced_by_attribute] => 0
[product_is_free] => 0
[products_discount_type] => 0
[products_discount_type_from] => 0
[id] => 8016
)
)
[customer] => Array
(
[firstname] =>
[lastname] =>
[company] =>
[street_address] =>
[suburb] =>
[city] =>
[postcode] =>
[state] =>
[zone_id] =>
[country] => Array
(
[id] =>
[title] =>
[iso_code_2] =>
[iso_code_3] =>
)
[format_id] =>
[telephone] =>
[email_address] =>
)
[delivery] => Array
(
[firstname] =>
[lastname] =>
[company] =>
[street_address] =>
[suburb] =>
[city] =>
[postcode] =>
[state] =>
[zone_id] =>
[country] => Array
(
[id] =>
[title] =>
[iso_code_2] =>
[iso_code_3] =>
)
[country_id] =>
[format_id] =>
)
[content_type] => physical
[email_low_stock] =>
[products_ordered_attributes] =>
[products_ordered] =>
[products_ordered_email] =>
[billing] => Array
(
[firstname] =>
[lastname] =>
[company] =>
[street_address] =>
[suburb] =>
[city] =>
[postcode] =>
[state] =>
[zone_id] =>
[country] => Array
(
[id] =>
[title] =>
[iso_code_2] =>
[iso_code_3] =>
)
[country_id] =>
[format_id] =>
)
)
Thank you so much for any assistance!
Bookmarks