Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Unexpected $end error, missing a curly bracket.


Goanna

Recommended Posts

I have a modified checkout_process.php that has some modifications (Authorize.net, ICW CCGV, MVS, etc).

 

MVS (Multi Vendor Shipment) is the most recent addition, and I used a file comparison tool to install it.

 

I am getting an Unexpected $end error, which I know is most often a missing curly bracket " } " or if you use short PHP Tags (Like <? instead of <?php ).

 

If I add a } to the end of the file I dont get any errors, but then it just sends me back to the first page of checkout and the order doesnt go through.

 

Here is the file. If anyone can help me figure out where I am missing the } I would greatly appreciate it.

 

<?php
/*
 $Id: checkout_process.php,v 1.128 2003/05/28 18:00:29 hpdl Exp $

 Modified for MVS V1.0 2006/03/25 JCK/CWG
 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2006 osCommerce

 Released under the GNU General Public License

  Authorizenet ADC Direct Connection
  Updated: November 10, 2002
  Author: Bao Nguyen
  Email: [email protected]  

 Bug fixes for "special" attributes, multiple attributes 2004/10/26 by Ralph Day
 Amended for Attributes Inventory - FREEZEHELL - 08/11/2003 [email protected]
 Copyright (c) 2003 IBWO

  Updated for: Authorize.net Consolidated v1.5
  Date: March 24, 2004
  Changes: Rewrote many of the customer info fields, also the order id is now inserted
		into the database before it goes to processing so Authorize.net Consolidated
		has an order ID to send to Authorize.net.  However this means that failed orders
	will also have an order ID.
  Author: Austin Renfroe (Austin519)
  Email: [email protected]

 Updated for: Authorize.net Consolidated v1.8
 Date: June 19, 2004
 Changes: Removed comments that no longer applied and brought back to parity
	   with the ms 2 code.
 Author: Chris Cooksey (1.8 changes only)
 Email: [email protected]
 Released under the GNU General Public License
*/

 include('includes/application_top.php');

// if the customer is not logged on, redirect them to the login page
 if (!tep_session_is_registered('customer_id')) {
$navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
 }

 if (!tep_session_is_registered('sendto')) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
 }

 if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

// avoid hack attempts during the checkout procedure by checking the internal cartID
 if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
if ($cart->cartID != $cartID) {
  tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}
 }

 include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);
	tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));


include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);

require(DIR_WS_CLASSES . 'payment.php');
 if ($credit_covers) $payment=''; //ICW added for CREDIT CLASS
$payment_modules = new payment($payment);
// load the selected shipping module
  if (($total_weight > 0 ) || (SELECT_VENDOR_SHIPPING == 'true')){
	include(DIR_WS_CLASSES . 'vendor_shipping.php');
  } elseif (($total_weight > 0 ) || (SELECT_VENDOR_SHIPPING == 'false')){
	include(DIR_WS_CLASSES . 'shipping.php');
  }
  $shipping_modules = new shipping($shipping);
  //MVS End

 require(DIR_WS_CLASSES . 'order.php');
 $order = new order;

// load the before_process function from the payment modules
 $payment_modules->before_process();

 require(DIR_WS_CLASSES . 'order_total.php');
 $order_total_modules = new order_total;

 $order_totals = $order_total_modules->process();

 /* Authorize.net Consolidated */
 /* The orders_id field is no longer based on auto-increment value. We will		*/
 /* explicitly set it to the next unused invoice number. We use a dedicated table	*/
 /* in the database to store our next unused invoice number. This table must be	*/
 /* created and its one row initialized using the provided script. Although we		*/
 /* could have just used "highest order number" + 1 that would probably be too		*/
 /* slow if large numbers of orders are stored in the database.					*/
 tep_db_query( "lock tables " . orders_invoice_id . " write, " . TABLE_ORDERS . " write" );
 $invoice_id_query = tep_db_query( "select * from " . orders_invoice_id . " limit 1" );
 $invoice_id_array = tep_db_fetch_array($invoice_id_query);
 $invoice_id = $invoice_id_array['invoice_id'];

 /* Make sure that the selected invoice_id is not already taken. This need never	*/
 /* occur if proper care is used to set the initial invoice value high enough.		*/
 /* Our corrective action is to set the invoice id one higher than the highest		*/
 /* order_id in existence and then carry on.										*/
 $orders_query = tep_db_query( "select * from " . TABLE_ORDERS . " where orders_id = '" . (int)$invoice_id . "' limit 1" );
 if (tep_db_num_rows($orders_query) == 1) {
	$orders_query = tep_db_query( "select * from " . TABLE_ORDERS . " order by orders_id desc limit 1" );
$orders_array = tep_db_fetch_array($orders_query);
$invoice_id = $orders_array['orders_id'] + 1;
tep_db_query( "update " . orders_invoice_id . " set invoice_id = '" . (int)$invoice_id . "'" );
  	}

 /* Insert the order only if the payment module successfully authorizes			*/
 /* payment. Note that 'authorize' is only implemented in authorizenet.php.		*/
 /* payment.php returns true for any module that doesn't implement authorize().	*/
 /* No other modules need to implement authorize() since they are all set up to	*/
 /* authorize in the POST that brings us to this page and to redirect on error		*/
 /* in before_process() called above.												*/
 if( $payment_modules->authorize( $invoice_id ) ) {
 $sql_data_array = array('customers_id' => $customer_id,
					  'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
					  'customers_company' => $order->customer['company'],
					  'customers_street_address' => $order->customer['street_address'],
					  'customers_suburb' => $order->customer['suburb'],
					  'customers_city' => $order->customer['city'],
					  'customers_postcode' => $order->customer['postcode'],
					  'customers_state' => $order->customer['state'],
					  'customers_country' => $order->customer['country']['title'],
					  'customers_telephone' => $order->customer['telephone'],
					  'customers_email_address' => $order->customer['email_address'],
					  'customers_address_format_id' => $order->customer['format_id'],
					  'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],
					  'delivery_company' => $order->delivery['company'],
					  'delivery_street_address' => $order->delivery['street_address'],
					  'delivery_suburb' => $order->delivery['suburb'],
					  'delivery_city' => $order->delivery['city'],
					  'delivery_postcode' => $order->delivery['postcode'],
					  'delivery_state' => $order->delivery['state'],
					  'delivery_country' => $order->delivery['country']['title'],
					  'delivery_address_format_id' => $order->delivery['format_id'],
					  'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],
					  'billing_company' => $order->billing['company'],
					  'billing_street_address' => $order->billing['street_address'],
					  'billing_suburb' => $order->billing['suburb'],
					  'billing_city' => $order->billing['city'],
					  'billing_postcode' => $order->billing['postcode'],
					  'billing_state' => $order->billing['state'],
					  'billing_country' => $order->billing['country']['title'],
					  'billing_address_format_id' => $order->billing['format_id'],
					  'payment_method' => $order->info['payment_method'] . $approvalnumber, 
					  'payment_info' => $GLOBALS['payment_info'],
					  'cc_type' => $order->info['cc_type'],
					  'cc_owner' => $order->info['cc_owner'],
					  'cc_number' => $order->info['cc_number'],
					  'cc_expires' => $order->info['cc_expires'],
					  'date_purchased' => 'now()',
					  'orders_status' => $order->info['order_status'],
					  'currency' => $order->info['currency'],
					  'currency_value' => $order->info['currency_value']);
 tep_db_perform(TABLE_ORDERS, $sql_data_array);
 $insert_id = tep_db_insert_id();
 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
$sql_data_array = array('orders_id' => $insert_id,
						'title' => $order_totals[$i]['title'],
						'text' => $order_totals[$i]['text'],
						'value' => $order_totals[$i]['value'],
						'class' => $order_totals[$i]['code'],
						'sort_order' => $order_totals[$i]['sort_order']);
tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
 }

 $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';
 $sql_data_array = array('orders_id' => $insert_id,
					  'orders_status_id' => $order->info['order_status'],
					  'date_added' => 'now()',
					  'customer_notified' => $customer_notification,
					  'comments' => $order->info['comments']);
 tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

 //MVS - added insert for new orders_shipping table
	$shipping_array = $shipping['vendor'];
 foreach ($shipping_array as $vendors_id => $shipping_data) {
$vendors_query = tep_db_query("select vendors_name
							   from " . TABLE_VENDORS . "
							   where vendors_id = '" . (int)$vendors_id . "'"
							 );
$vendors_name = 'Unknown';
if ($vendors = tep_db_fetch_array($vendors_query)) {
  $vendors_name = $vendors['vendors_name'];
}
			$shipping_method_array = explode ('_', $shipping_data['id']);
			if ($shipping_method_array[0] == 'fedex1') {
					$shipping_method = 'Federal Express';
					} elseif ($shipping_method_array[0] == 'upsxml') {
					$shipping_method = 'UPS';
					} elseif ($shipping_method_array[0] == 'usps') {
					$shipping_method = 'USPS';
					} else {
				$shipping_method = $shipping_method_array[0];
				}
$sql_data_array = array('orders_id' => $insert_id,
						'vendors_id' => $vendors_id,
						'shipping_module' => $shipping_method,
						'shipping_method' => $shipping_data['title'],
						'shipping_cost' => $shipping_data['cost'],
						'shipping_tax' =>  $shipping_data['ship_tax'],
						'vendors_name' => $vendors_name,
						'vendor_order_sent' => 'no'
					   );
tep_db_perform(TABLE_ORDERS_SHIPPING, $sql_data_array);
 }
//MVS End

// initialized for the email confirmation
 $products_ordered = '';
 $subtotal = 0;
 $total_tax = 0;

 for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
// Stock Update - Joao Correia
if (STOCK_LIMITED == 'true') {
	$products_attributes = $order->products[$i]['attributes'];
  if (DOWNLOAD_ENABLED == 'true') {
	$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
						FROM " . TABLE_PRODUCTS . " p
						LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
						 ON p.products_id=pa.products_id
						LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
						 ON pa.products_attributes_id=pad.products_attributes_id
						WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
	if (is_array($products_attributes)) {
	  $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
	}
	$stock_query = tep_db_query($stock_query_raw);
  } else {
		if (is_array($products_attributes)) {
			$allspecial = true;
			$products_stock_attributes_array = array();
			For($k = 0, $n3 = sizeof($products_attributes); $k < $n3; $k++) {
				if ($products_attributes[$k]['special'] == 0) {
					$products_stock_attributes_array[] = $products_attributes[$k]['option_id'] . "-" . $products_attributes[$k]['value_id'];
					$allspecial = false;
				}
			} 
			if (!$allspecial) {
			  asort($products_stock_attributes_array, SORT_NUMERIC);
			  reset($products_stock_attributes_array);
			  $products_stock_attributes = implode(",", $products_stock_attributes_array);
			  $attributes_stock_query = tep_db_query("select products_stock_quantity from " . TABLE_PRODUCTS_STOCK . " where products_stock_attributes = '$products_stock_attributes' AND products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
			  if (tep_db_num_rows($attributes_stock_query) > 0) {
				  $attributes_stock_values = tep_db_fetch_array($attributes_stock_query);
				  $attributes_stock_left = $attributes_stock_values['products_stock_quantity'] - $order->products[$i]['qty'];
				  if ($attributes_stock_left < 1) {
					  tep_db_query("update " . TABLE_PRODUCTS_STOCK . " set products_stock_quantity = '0' where products_stock_attributes = '$products_stock_attributes' AND products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
					  $actual_stock_bought = $attributes_stock_values['products_stock_quantity'];
				  } else {
					  tep_db_query("update " . TABLE_PRODUCTS_STOCK . " set products_stock_quantity = '" . $attributes_stock_left . "' where products_stock_attributes = '$products_stock_attributes' AND products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
					  $actual_stock_bought = $order->products[$i]['qty'];
				  } 
			  } else {
				  $actual_stock_bought = 0;
			  }
		   }  else {
			 $actual_stock_bought = $order->products[$i]['qty'];
		   }
		} else {
			$actual_stock_bought = $order->products[$i]['qty'];
		} 
	$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
  }
  if (tep_db_num_rows($stock_query) > 0) {
	$stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
	if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
			$stock_left = $stock_values['products_quantity'] - $actual_stock_bought;
	} else {
	  $stock_left = $stock_values['products_quantity'];
	}
	tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
	if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
	  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
	}
  }
}

// Update products_ordered (for bestsellers list)
tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

//MVS start - added 'vendors_id' => ...
$sql_data_array = array('orders_id' => $insert_id,
						'products_id' => tep_get_prid($order->products[$i]['id']),
						'products_model' => $order->products[$i]['model'],
						'products_name' => $order->products[$i]['name'],
						'products_price' => $order->products[$i]['price'],
						'final_price' => $order->products[$i]['final_price'],
						'products_tax' => $order->products[$i]['tax'],
						'products_quantity' => $order->products[$i]['qty'],
						'vendors_id' => $order->products[$i]['vendors_id']
					   ); //MVS end
tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
$order_products_id = tep_db_insert_id();
$order_total_modules->update_credit_account($i);//ICW ADDED FOR CREDIT CLASS SYSTEM
//------insert customer choosen option to order--------
$attributes_exist = '0';
$products_ordered_attributes = '';
if (isset($order->products[$i]['attributes'])) {
  $attributes_exist = '1';
  for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
	if (DOWNLOAD_ENABLED == 'true') {
	  $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
						   from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
						   left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
							on pa.products_attributes_id=pad.products_attributes_id
						   where pa.products_id = '" . $order->products[$i]['id'] . "'
							and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'
							and pa.options_id = popt.products_options_id
							and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'
							and pa.options_values_id = poval.products_options_values_id
							and popt.language_id = '" . $languages_id . "'
							and poval.language_id = '" . $languages_id . "'";
	  $attributes = tep_db_query($attributes_query);
	} else {
	  $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
	}
	$attributes_values = tep_db_fetch_array($attributes);

	$sql_data_array = array('orders_id' => $insert_id,
							'orders_products_id' => $order_products_id,
							'products_options' => $attributes_values['products_options_name'],
							'products_options_values' => $attributes_values['products_options_values_name'],
							'options_values_price' => $attributes_values['options_values_price'],
							'price_prefix' => $attributes_values['price_prefix']);
	tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

	if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
	  $sql_data_array = array('orders_id' => $insert_id,
							  'orders_products_id' => $order_products_id,
							  'orders_products_filename' => $attributes_values['products_attributes_filename'],
							  'download_maxdays' => $attributes_values['products_attributes_maxdays'],
							  'download_count' => $attributes_values['products_attributes_maxcount']);
	  tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
	}
	$products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
  }
}
//------insert customer choosen option eof ----
$total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
$total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
$total_cost += $total_products_price;

//MVS begin
 if (SELECT_VENDOR_EMAIL_OPTION == 'false') {
 $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
}
}
if (SELECT_VENDOR_EMAIL_OPTION == 'true') {
  $order_id = $insert_id;
   require(DIR_WS_INCLUDES . 'vendor_order_data.php');
	   }
function vendors_email($vendors_id, $oID, $status, $vendor_order_sent) {
   $vendor_order_sent =  false;
  $debug='no';
  $vendor_order_sent = 'no';
$index2 = 0;
		  //let's get the Vendors
		  $vendor_data_query = tep_db_query("select v.vendors_id, v.vendors_name, v.vendors_email, v.vendors_contact, v.vendor_add_info, v.vendor_street, v.vendor_city, v.vendor_state, v.vendors_zipcode, v.vendor_country, v.account_number, v.vendors_status_send, os.shipping_module, os.shipping_method, os.shipping_cost, os.shipping_tax, os.vendor_order_sent from " . TABLE_VENDORS . " v,  " . TABLE_ORDERS_SHIPPING . " os where v.vendors_id=os.vendors_id and v.vendors_id='" . $vendors_id . "' and os.orders_id='" . (int)$oID . "' and v.vendors_status_send='" . $status . "'");
	   while ($vendor_order = tep_db_fetch_array($vendor_data_query)) {
$vendor_products[$index2] = array('Vid' => $vendor_order['vendors_id'],
						 'Vname' => $vendor_order['vendors_name'],
						 'Vemail' => $vendor_order['vendors_email'],
						 'Vcontact' => $vendor_order['vendors_contact'],
						 'Vaccount' => $vendor_order['account_number'],
						 'Vstreet' => $vendor_order['vendor_street'],
						 'Vcity' => $vendor_order['vendor_city'],
						 'Vstate' => $vendor_order['vendor_state'],
						 'Vzipcode' => $vendor_order['vendors_zipcode'],
						 'Vcountry' => $vendor_order['vendor_country'],
						 'Vaccount' => $vendor_order['account_number'],							   'Vinstructions' => $vendor_order['vendor_add_info'],
						 'Vmodule' => $vendor_order['shipping_module'],							   'Vmethod' => $vendor_order['shipping_method']);
if ($debug == 'yes') {
echo 'The vendor query: ' . $vendor_order['vendors_id'] . '<br>';
  }

							   $index = 0;
$vendor_orders_products_query = tep_db_query("select o.orders_id, o.orders_products_id, o.products_model, o.products_id, o.products_quantity, o.products_name, p.vendors_id,  p.vendors_prod_comments, p.vendors_prod_id, p.vendors_product_price from " . TABLE_ORDERS_PRODUCTS . " o, " . TABLE_PRODUCTS . " p where p.vendors_id='" . (int)$vendor_order['vendors_id'] . "' and o.products_id=p.products_id and o.orders_id='" . $oID . "' order by o.products_name");
	while ($vendor_orders_products = tep_db_fetch_array($vendor_orders_products_query)) {
  $vendor_products[$index2]['vendor_orders_products'][$index] = array(
								  'Pqty' => $vendor_orders_products['products_quantity'],
								  'Pname' => $vendor_orders_products['products_name'],
								  'Pmodel' => $vendor_orders_products['products_model'],
								  'Pprice' => $vendor_orders_products['products_price'],
								  'Pvendor_name' => $vendor_orders_products['vendors_name'],
								  'Pcomments' => $vendor_orders_products['vendors_prod_comments'],
								  'PVprod_id' => $vendor_orders_products['vendors_prod_id'],
								  'PVprod_price' => $vendor_orders_products['vendors_product_price'],
								  'spacer' => '-');
							   //MVS end
			   if ($debug == 'yes') {
echo 'The products query: ' . $vendor_orders_products['products_name'] . '<br>';
}
	$subindex = 0;
  $vendor_attributes_query = tep_db_query("select products_options, products_options_values, options_values_price, price_prefix from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$oID . "' and orders_products_id = '" . (int)$vendor_orders_products['orders_products_id'] . "'");
	if (tep_db_num_rows($vendor_attributes_query)) {
	  while ($vendor_attributes = tep_db_fetch_array($vendor_attributes_query)) {
	  $vendor_products[$index2]['vendor_orders_products'][$index]['vendor_attributes'][$subindex] = array('option' => $vendor_attributes['products_options'],
																 'value' => $vendor_attributes['products_options_values'],
																 'prefix' => $vendor_attributes['price_prefix'],
																 'price' => $vendor_attributes['options_values_price']);

		$subindex++;
	  }
	}
	$index++;
  }
 $index2++;
// let's build the email
  // Get the delivery address
 $delivery_address_query = tep_db_query("select distinct delivery_company, delivery_name, delivery_street_address, delivery_city, delivery_state, delivery_postcode from " . TABLE_ORDERS . " where orders_id='" . $oID ."'");
 $vendor_delivery_address_list = tep_db_fetch_array($delivery_address_query);

if ($debug == 'yes') {
echo 'The number of vendors: ' . sizeof($vendor_products) . '<br>';
 }
$email='';
for ($l=0, $m=sizeof($vendor_products); $l<$m; $l++) {

$vendor_country = tep_get_country_name($vendor_products[$l]['Vcountry']);
$order_number= $oID;
$vendors_id=$vendor_products[$l]['Vid'];
$the_email=$vendor_products[$l]['Vemail'];
$the_name=$vendor_products[$l]['Vname'];
$the_contact=$vendor_products[$l]['Vcontact'];
$email=  '<b>To: ' . $the_contact . '  <br>' . $the_name . '<br>' . $the_email . '<br>' .
$vendor_products[$l]['Vstreet'] .'<br>' .
$vendor_products[$l]['Vcity'] .', ' .
$vendor_products[$l]['Vstate'] .'  ' .
$vendor_products[$l]['Vzipcode'] . ' ' . $vendor_country . '<br>' . '<br>' . EMAIL_SEPARATOR . '<br>' . 'Special Comments or Instructions:  ' . $vendor_products[$l]['Vinstructions'] .'<br>' . '<br>' . EMAIL_SEPARATOR . '<br>' . 'From: ' . STORE_OWNER . '<br>' . STORE_NAME_ADDRESS . '<br>' . 'Accnt #: ' . $vendor_products[$l]['Vaccount'] . '<br>' . EMAIL_SEPARATOR . '<br>' . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . '<br>' .  EMAIL_SEPARATOR . '<br>' . '<br> Shipping Method: ' .  $vendor_products[$l]['Vmodule'] . ' -- '  .  $vendor_products[$l]['Vmethod'] .  '<br>' .  EMAIL_SEPARATOR . '<br>' . '<br>Dropship deliver to:<br>' .
$vendor_delivery_address_list['delivery_company'] .'<br>' .
$vendor_delivery_address_list['delivery_name'] .'<br>' .
$vendor_delivery_address_list['delivery_street_address'] .'<br>' .
$vendor_delivery_address_list['delivery_city'] .', ' .
$vendor_delivery_address_list['delivery_state'] . ' ' . $vendor_delivery_address_list['delivery_postcode'] . '<br><br>';
$email = $email .  '<table width="75%" border=1 cellspacing="0" cellpadding="3">
<tr><td>Qty:</td><td>Product Name:</td><td>Item Code/Number:</td><td>Product Model:</td><td>Per Unit Price:</td><td>Item Comments: </td></tr>';
	   for ($i=0, $n=sizeof($vendor_products[$l]['vendor_orders_products']); $i<$n; $i++) {
  $product_attribs ='';
  if (isset($vendor_products[$l]['vendor_orders_products'][$i]['vendor_attributes']) && (sizeof($vendor_products[$l]['vendor_orders_products'][$i]['vendor_attributes']) > 0)) {

	for ($j = 0, $k = sizeof($vendor_products[$l]['vendor_orders_products'][$i]['vendor_attributes']); $j < $k; $j++) {
	 $product_attribs .= '  ' . $vendor_products[$l]['vendor_orders_products'][$i]['vendor_attributes'][$j]['option'] . ': ' .  $vendor_products[$l]['vendor_orders_products'][$i]['vendor_attributes'][$j]['value'] . '<br>';
	}
	}
	$email = $email . '<tr><td> ' . $vendor_products[$l]['vendor_orders_products'][$i]['Pqty'] .
 '</td><td> ' . $vendor_products[$l]['vendor_orders_products'][$i]['Pname'] . '<br>  <i>Option<br> ' . $product_attribs .
 '</td><td> ' . $vendor_products[$l]['vendor_orders_products'][$i]['PVprod_id'] .
 '</td><td> ' . $vendor_products[$l]['vendor_orders_products'][$i]['Pmodel'] .
 '</td><td> ' . $vendor_products[$l]['vendor_orders_products'][$i]['PVprod_price'] . '</td><td>' .
 $vendor_products[$l]['vendor_orders_products'][$i]['Pcomments'] . '</b></td></tr>';

  }
}
$email = $email . '</table><br><HR><br>';

tep_mail($the_name, $the_email, EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID ,  $email .  '<br>', STORE_NAME, STORE_OWNER_EMAIL_ADDRESS) ;
 $vendor_order_sent = 'yes';

 tep_db_query("update " . TABLE_ORDERS_SHIPPING . " set vendor_order_sent = '" . tep_db_input($vendor_order_sent) . "' where orders_id = '" . (int)$oID . "'  and vendors_id = '" . (int)$vendors_id . "'");

 if ($debug == 'yes') {
	   echo 'The $email(including headers:<br>Vendor Email Addy' . $the_email . '<br>Vendor Name' . $the_name . '<br>Vendor Contact' . $the_contact . '<br>Body--<br>' . $email . '<br>';
	   }
 }

 return true;
} //MVS end

// lets start with the email confirmation
 $email_order = STORE_NAME . "\n" .
			 EMAIL_SEPARATOR . "\n" .
			 EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
			 EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
			 EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
 if ($order->info['comments']) {
$email_order .= tep_db_output($order->info['comments']) . "\n\n";
 }
 $email_order .= EMAIL_TEXT_PRODUCTS . "\n" .
			  EMAIL_SEPARATOR . "\n" .
			  $products_ordered .
			  EMAIL_SEPARATOR . "\n";

 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
$email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }

 if ($order->content_type != 'virtual') {
$email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" .
				EMAIL_SEPARATOR . "\n" .
				tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
 }

 $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .
			  EMAIL_SEPARATOR . "\n" .
			  tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";
 if (is_object($$payment)) {
$email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .
				EMAIL_SEPARATOR . "\n";
$payment_class = $$payment;
$email_order .= $payment_class->title;

if ($GLOBALS['lynksystems_trans_id']) {
	$email_order .= "\n" . "Approval Code: " . $GLOBALS['lynksystems_trans_id'] . "\n";
	$email_order .= "Lynk Order ID: " . $GLOBALS['lynksystems_order_id'] . "\n";
} 

$email_order .= "\n\n";
$email_order .= $payment_class->title . "\n\n";
if ($payment_class->email_footer) {
  $email_order .= $payment_class->email_footer . "\n\n";
}
 }
 tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

// send emails to other people
 if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
 }

  //MVS start
if (SELECT_VENDOR_EMAIL_WHEN == 'Catalog' || SELECT_VENDOR_EMAIL_WHEN == 'Both') {
		$status=$order->info['order_status'];
		 if (isset($status)) {
 $order_sent_query = tep_db_query("select vendor_order_sent, vendors_id from " . TABLE_ORDERS_SHIPPING . " where orders_id = '" . $insert_id . "'");
   while ($order_sent_data = tep_db_fetch_array($order_sent_query)) {
 $order_sent_ckeck = $order_sent_data['vendor_order_sent'];
 $vendors_id = $order_sent_data['vendors_id'];
//   echo $order_sent_check . ' The order sent check<br>';
//		  echo $insert_id . 'The order number<br>';
  if ($order_sent_ckeck == 'no') {
	 $status='';
	 $oID=$insert_id;
	 $vendor_order_sent = false;
	 $status=$order->info['order_status'];

	 vendors_email($vendors_id, $oID, $status, $vendor_order_sent);

		}// if order check
	  }// while
	}// if isset
	 //  echo 'Email sent? ' . $vendor_order_sent . '<br>';
 }// if enabled
 //MVS end this file is complete
// load the after_process function from the payment modules
 $payment_modules->after_process();

 $cart->reset(true);

// unregister session variables used during checkout
 tep_session_unregister('sendto');
 tep_session_unregister('billto');
 tep_session_unregister('shipping');
 tep_session_unregister('payment');
 tep_session_unregister('comments');

 tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));

 require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Link to comment
Share on other sites

If I were you I'd start all over again and concentrate better this time. Just use your backup checkout_process.php and do the modifications again. If you have a missing "}" you can't just add it anywhere you like. It can take a considerable amount of time to find the fault even if you know in which line of the code the error occurred. If you insist on finding the fault, try from line 122 if( $payment_modules->authorize( $invoice_id ) ) { as this is the curly bracket that isn't closed.

Link to comment
Share on other sites

If I were you I'd start all over again and concentrate better this time. Just use your backup checkout_process.php and do the modifications again. If you have a missing "}" you can't just add it anywhere you like. It can take a considerable amount of time to find the fault even if you know in which line of the code the error occurred. If you insist on finding the fault, try from line 122 if( $payment_modules->authorize( $invoice_id ) ) { as this is the curly bracket that isn't closed.

 

I have tried a couple of times now using beyond compare to merge the files, and each time I still wind up with an error.

 

 

Just a wild guess here, but try to put the closing } in line 216 right under //MVS End.

 

That gets rid of the error but as before instead of completing the checkout procedure, it just brings me back to checkout_shipping.php to start over :(. Perhaps I have some other error that I am not aware of that is causing this then. Why would it keep taking me back to checkout_shipping?

Link to comment
Share on other sites

I have tried a couple of times now using beyond compare to merge the files, and each time I still wind up with an error.

That gets rid of the error but as before instead of completing the checkout procedure, it just brings me back to checkout_shipping.php to start over :(. Perhaps I have some other error that I am not aware of that is causing this then. Why would it keep taking me back to checkout_shipping?

 

Okay, well I found my problem. After I added the last closing } the problem was I had some duplicate lines due to the use of beyond compare without me paying full attention.

 

I had this line listed outside of an if statement at the top of the script.

 

tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));

 

So once the script loaded it would just take me back to checkout shipping :/

 

Thanks for the help though guys.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...