Jump to content

Billing And Shipping Address Need Not Be Same To Purchase


seetoronto

Recommended Posts

Hi,

I am using Prestashop version 1.3.1.1 .

Yes i know its old but we are not updating it yet.

 

My issue is when visitor is making a purchase and if the billing and shipping addresses are different the prestashop does not let visitor proceed with purchase.

 

But if they are different then the purchase in the shop can move forward.

 

I need this to be removed.

I want the billing and shipping address to be different to proceed with shopping.

How can this be achieved.?

 

I seen a forum thread here

http://www.prestasho...address-module/

Tried to reverse engineer but the lines mentioned were not found to be removed.

 

 

I have pasted the order.php file here... below......

can you tell me what lines needs to be removed / altered.

 

Thanks.. Pls see below..

 

<?php

 

/* SSL Management */

$useSSL = true;

 

include_once(dirname(__FILE__).'/config/config.inc.php');

/* Step number is needed on some modules */

$step = intval(Tools::getValue('step'));

include_once(dirname(__FILE__).'/init.php');

 

/* Disable some cache related bugs on the cart/order */

header('Cache-Control: no-cache, must-revalidate');

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

 

$errors = array();

 

/* Class FreeOrder to use PaymentModule (abstract class, cannot be instancied) */

class FreeOrder extends PaymentModule {}

 

/* If some products have disappear */

if (!$cart->checkQuantities())

{

$step = 0;

$errors[] = Tools::displayError('An item in your cart is no longer available, you cannot proceed with your order');

}

 

/* Check minimal account */

$orderTotal = $cart->getOrderTotal();

 

$orderTotalDefaultCurrency = Tools::convertPrice($cart->getOrderTotal(true, 1), Currency::getCurrency(intval(Configuration::get('PS_CURRENCY_DEFAULT'))));

$minimalPurchase = floatval(Configuration::get('PS_PURCHASE_MINIMUM'));

if ($orderTotalDefaultCurrency < $minimalPurchase)

{

$step = 0;

$errors[] = Tools::displayError('A minimum purchase total of').' '.Tools::displayPrice($minimalPurchase, Currency::getCurrency(intval($cart->id_currency))).

' '.Tools::displayError('is required in order to validate your order');

}

 

if (!$cookie->isLogged() AND in_array($step, array(1, 2, 3)))

Tools::redirect('authentication.php?back=order.php?step='.$step);

 

$smarty->assign('back', Tools::safeOutput(Tools::getValue('back')));

 

if ($cart->nbProducts())

{

/* Manage discounts */

if ((Tools::isSubmit('submitDiscount') OR Tools::isSubmit('submitDiscount')) AND Tools::getValue('discount_name'))

{

$discountName = Tools::getValue('discount_name');

if (!Validate::isDiscountName($discountName))

$errors[] = Tools::displayError('voucher name not valid');

else

{

$discount = new Discount(intval(Discount::getIdByName($discountName)));

if (is_object($discount) AND $discount->id)

{

if ($tmpError = $cart->checkDiscountValidity($discount, $cart->getDiscounts(), $cart->getOrderTotal(), $cart->getProducts(), true))

$errors[] = $tmpError;

}

else

$errors[] = Tools::displayError('voucher name not valid');

if (!sizeof($errors))

{

$cart->addDiscount(intval($discount->id));

Tools::redirect('order.php');

}

else

{

$smarty->assign(array(

'errors' => $errors,

'discount_name' => Tools::safeOutput($discountName)));

}

}

}

elseif (isset($_GET['deleteDiscount']) AND Validate::isUnsignedId($_GET['deleteDiscount']))

{

$cart->deleteDiscount(intval($_GET['deleteDiscount']));

Tools::redirect('order.php');

}

 

/* Is there only virtual product in cart */

if ($isVirtualCart = $cart->isVirtualCart())

setNoCarrier();

$smarty->assign('virtual_cart', $isVirtualCart);

 

/* 4 steps to the order */

switch (intval($step))

{

case 1:

displayAddress();

break;

case 2:

if(Tools::isSubmit('processAddress'))

processAddress();

autoStep(2);

displayCarrier();

break;

case 3:

if(Tools::isSubmit('processCarrier'))

processCarrier();

autoStep(3);

checkFreeOrder();

displayPayment();

break;

default:

$smarty->assign('errors', $errors);

displaySummary();

break;

}

}

else

{

/* Default page */

$smarty->assign('empty', 1);

Tools::safePostVars();

include_once(dirname(__FILE__).'/header.php');

$smarty->display(_PS_THEME_DIR_.'shopping-cart.tpl');

}

 

include(dirname(__FILE__).'/footer.php');

 

/* Order process controller */

function autoStep($step)

{

global $cart, $isVirtualCart;

 

if ($step >= 2 AND (!$cart->id_address_delivery OR !$cart->id_address_invoice))

Tools::redirect('order.php?step=1');

$delivery = new Address(intval($cart->id_address_delivery));

$invoice = new Address(intval($cart->id_address_invoice));

if ($delivery->deleted OR $invoice->deleted)

{

if ($delivery->deleted)

unset($cart->id_address_delivery);

if ($invoice->deleted)

unset($cart->id_address_invoice);

Tools::redirect('order.php?step=1');

}

elseif ($step >= 3 AND !$cart->id_carrier AND !$isVirtualCart)

Tools::redirect('order.php?step=2');

}

 

/* Bypass payment step if total is 0 */

function checkFreeOrder()

{

global $cart;

 

if ($cart->getOrderTotal() <= 0)

{

$order = new FreeOrder();

$order->validateOrder(intval($cart->id), _PS_OS_PAYMENT_, 0, Tools::displayError('Free order', false));

Tools::redirect('history.php');

}

}

 

/**

* Set id_carrier to 0 (no shipping price)

*

*/

function setNoCarrier()

{

global $cart;

$cart->id_carrier = 0;

$cart->update();

}

 

/*

* Manage address

*/

function processAddress()

{

global $cart, $smarty;

$errors = array();

 

if (!isset($_POST['id_address_delivery']) OR !Address::isCountryActiveById(intval($_POST['id_address_delivery'])))

$errors[] = 'this address is not in a valid area';

else

{

$cart->id_address_delivery = intval(Tools::getValue('id_address_delivery'));

$cart->id_address_invoice = Tools::isSubmit('same') ? $cart->id_address_delivery : intval(Tools::getValue('id_address_invoice'));

if (!$cart->update())

$errors[] = Tools::displayError('an error occured while updating your cart');

 

if (Tools::isSubmit('message') AND !empty($_POST['message']))

{

if (!Validate::isMessage($_POST['message']))

$errors[] = Tools::displayError('invalid message');

elseif ($oldMessage = Message::getMessageByCartId(intval($cart->id)))

{

$message = new Message(intval($oldMessage['id_message']));

$message->message = htmlentities($_POST['message'], ENT_COMPAT, 'UTF-8');

$message->update();

}

else

{

$message = new Message();

$message->message = htmlentities($_POST['message'], ENT_COMPAT, 'UTF-8');

$message->id_cart = intval($cart->id);

$message->id_customer = intval($cart->id_customer);

$message->add();

}

}

}

if (sizeof($errors))

{

if (Tools::getValue('ajax'))

die('{\'hasError\' : true, errors : [\''.implode('\',\'', $errors).'\']}');

$smarty->assign('errors', $errors);

displayAddress();

include_once(dirname(__FILE__).'/footer.php');

exit;

}

if (Tools::getValue('ajax'))

die(true);

}

 

/* Carrier step */

function processCarrier()

{

global $cart, $smarty, $isVirtualCart, $orderTotal;

 

$errors = array();

 

$cart->recyclable = (isset($_POST['recyclable']) AND !empty($_POST['recyclable'])) ? 1 : 0;

 

if (isset($_POST['gift']) AND !empty($_POST['gift']))

{

if (!Validate::isMessage($_POST['gift_message']))

$errors[] = Tools::displayError('invalid gift message');

else

{

$cart->gift = 1;

$cart->gift_message = strip_tags($_POST['gift_message']);

}

}

else

$cart->gift = 0;

 

$address = new Address(intval($cart->id_address_delivery));

if (!Validate::isLoadedObject($address))

die(Tools::displayError());

if (!$id_zone = Address::getZoneById($address->id))

$errors[] = Tools::displayError('no zone match with your address');

if (isset($_POST['id_carrier']) AND Validate::isInt($_POST['id_carrier']) AND sizeof(Carrier::checkCarrierZone(intval($_POST['id_carrier']), intval($id_zone))))

$cart->id_carrier = intval($_POST['id_carrier']);

elseif (!$isVirtualCart)

$errors[] = Tools::displayError('invalid carrier or no carrier selected');

 

$cart->update();

 

if (sizeof($errors))

{

$smarty->assign('errors', $errors);

displayCarrier();

include(dirname(__FILE__).'/footer.php');

exit;

}

$orderTotal = $cart->getOrderTotal();

}

 

/* Address step */

function displayAddress()

{

global $smarty, $cookie, $cart;

 

if (!Customer::getAddressesTotalById(intval($cookie->id_customer)))

Tools::redirect('address.php?back=order.php?step=1');

$customer = new Customer(intval($cookie->id_customer));

if (Validate::isLoadedObject($customer))

{

/* Getting customer addresses */

$customerAddresses = $customer->getAddresses(intval($cookie->id_lang));

$smarty->assign('addresses', $customerAddresses);

 

/* Setting default addresses for cart */

if ((!isset($cart->id_address_delivery) OR empty($cart->id_address_delivery)) AND sizeof($customerAddresses))

{

$cart->id_address_delivery = intval($customerAddresses[0]['id_address']);

$update = 1;

}

if ((!isset($cart->id_address_invoice) OR empty($cart->id_address_invoice)) AND sizeof($customerAddresses))

{

$cart->id_address_invoice = intval($customerAddresses[0]['id_address']);

$update = 1;

}

/* Update cart addresses only if needed */

if (isset($update) AND $update)

$cart->update();

 

/* If delivery address is valid in cart, assign it to Smarty */

if (isset($cart->id_address_delivery))

{

$deliveryAddress = new Address(intval($cart->id_address_delivery));

if (Validate::isLoadedObject($deliveryAddress) AND ($deliveryAddress->id_customer == $customer->id))

$smarty->assign('delivery', $deliveryAddress);

}

 

/* If invoice address is valid in cart, assign it to Smarty */

if (isset($cart->id_address_invoice))

{

$invoiceAddress = new Address(intval($cart->id_address_invoice));

if (Validate::isLoadedObject($invoiceAddress) AND ($invoiceAddress->id_customer == $customer->id))

$smarty->assign('invoice', $invoiceAddress);

}

}

if ($oldMessage = Message::getMessageByCartId(intval($cart->id)))

$smarty->assign('oldMessage', $oldMessage['message']);

$smarty->assign('cart', $cart);

 

Tools::safePostVars();

include_once(dirname(__FILE__).'/header.php');

$smarty->display(_PS_THEME_DIR_.'order-address.tpl');

}

 

/* Carrier step */

function displayCarrier()

{

global $smarty, $cart, $cookie, $defaultCountry, $link;

 

$address = new Address(intval($cart->id_address_delivery));

$id_zone = Address::getZoneById(intval($address->id));

if (isset($cookie->id_customer))

$customer = new Customer(intval($cookie->id_customer));

else

die(Tools::displayError($this->l('Hack attempt: No customer')));

$result = Carrier::getCarriers(intval($cookie->id_lang), true, false, intval($id_zone), $customer->getGroups());

if (!$result)

$result = Carrier::getCarriers(intval($cookie->id_lang), true, false, intval($id_zone));

$resultsArray = array();

foreach ($result AS $k => $row)

{

$carrier = new Carrier(intval($row['id_carrier']));

 

// Get only carriers that are compliant with shipping method

if ((Configuration::get('PS_SHIPPING_METHOD') AND $carrier->getMaxDeliveryPriceByWeight($id_zone) === false)

OR (!Configuration::get('PS_SHIPPING_METHOD') AND $carrier->getMaxDeliveryPriceByPrice($id_zone) === false))

{

unset($result[$k]);

continue ;

}

 

// If out-of-range behavior carrier is set on "Desactivate carrier"

if ($row['range_behavior'])

{

// Get id zone

if (isset($cart->id_address_delivery) AND $cart->id_address_delivery)

$id_zone = Address::getZoneById(intval($cart->id_address_delivery));

else

$id_zone = intval($defaultCountry->id_zone);

 

// Get only carriers that have a range compatible with cart

if ((Configuration::get('PS_SHIPPING_METHOD') AND (!Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $cart->getTotalWeight(), $id_zone)))

OR (!Configuration::get('PS_SHIPPING_METHOD') AND (!Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $cart->getOrderTotal(true, 4), $id_zone))))

{

unset($result[$k]);

continue ;

}

}

$row['name'] = (strval($row['name']) != '0' ? $row['name'] : Configuration::get('PS_SHOP_NAME'));

$row['price'] = $cart->getOrderShippingCost(intval($row['id_carrier']));

$row['price_tax_exc'] = $cart->getOrderShippingCost(intval($row['id_carrier']), false);

$row['img'] = file_exists(_PS_SHIP_IMG_DIR_.intval($row['id_carrier']).'.jpg') ? _THEME_SHIP_DIR_.intval($row['id_carrier']).'.jpg' : '';

$resultsArray[] = $row;

}

 

// Wrapping fees

$wrapping_fees = floatval(Configuration::get('PS_GIFT_WRAPPING_PRICE'));

$wrapping_fees_tax = new Tax(intval(Configuration::get('PS_GIFT_WRAPPING_TAX')));

$wrapping_fees_tax_inc = $wrapping_fees * (1 + ((floatval($wrapping_fees_tax->rate) / 100)));

 

if (Validate::isUnsignedInt($cart->id_carrier) AND $cart->id_carrier)

{

$carrier = new Carrier(intval($cart->id_carrier));

if ($carrier->active AND !$carrier->deleted)

$checked = intval($cart->id_carrier);

}

$cms = new CMS(3, intval($cookie->id_lang));

$link_conditions = $link->getCMSLink($cms, $cms->link_rewrite);

if (!strpos($link_conditions, '?'))

$link_conditions .= '?content_only=1&TB_iframe=true&width=450&height=500&thickbox=true';

else

$link_conditions .= '&content_only=1&TB_iframe=true&width=450&height=500&thickbox=true';

if (!isset($checked) OR intval($checked) == 0)

$checked = intval(Configuration::get('PS_CARRIER_DEFAULT'));

$smarty->assign(array(

'checkedTOS' => intval($cookie->checkedTOS),

'recyclablePackAllowed' => intval(Configuration::get('PS_RECYCLABLE_PACK')),

'giftAllowed' => intval(Configuration::get('PS_GIFT_WRAPPING')),

'conditions' => intval(Configuration::get('PS_CONDITIONS')),

'link_conditions' => $link_conditions,

'recyclable' => intval($cart->recyclable),

'gift_wrapping_price' => floatval(Configuration::get('PS_GIFT_WRAPPING_PRICE')),

'carriers' => $resultsArray,

'default_carrier' => intval(Configuration::get('PS_CARRIER_DEFAULT')),

'HOOK_EXTRACARRIER' => Module::hookExec('extraCarrier', array('address' => $address)),

'checked' => intval($checked),

'total_wrapping' => Tools::convertPrice($wrapping_fees_tax_inc, new Currency(intval($cookie->id_currency))),

'total_wrapping_tax_exc' => Tools::convertPrice($wrapping_fees, new Currency(intval($cookie->id_currency)))));

Tools::safePostVars();

$css_files = array(__PS_BASE_URI__.'css/thickbox.css' => 'all');

$js_files = array(__PS_BASE_URI__.'js/jquery/thickbox-modified.js');

include_once(dirname(__FILE__).'/header.php');

$smarty->display(_PS_THEME_DIR_.'order-carrier.tpl');

}

 

/* Payment step */

function displayPayment()

{

global $smarty, $cart, $currency, $cookie, $orderTotal;

 

// Redirect instead of displaying payment modules if any module are grefted on

Hook::backBeforePayment(strval(Tools::getValue('back')));

 

/* We may need to display an order summary */

$smarty->assign($cart->getSummaryDetails());

 

$cookie->checkedTOS = '1';

$smarty->assign(array(

'HOOK_PAYMENT' => Module::hookExecPayment(),

'total_price' => floatval($orderTotal),

'taxes_enabled' => intval(Configuration::get('PS_TAX'))

));

 

Tools::safePostVars();

include_once(dirname(__FILE__).'/header.php');

$smarty->display(_PS_THEME_DIR_.'order-payment.tpl');

}

 

/* Confirmation step */

function displaySummary()

{

global $smarty, $cart;

 

if (file_exists(_PS_SHIP_IMG_DIR_.intval($cart->id_carrier).'.jpg'))

$smarty->assign('carrierPicture', 1);

$summary = $cart->getSummaryDetails();

$customizedDatas = Product::getAllCustomizedDatas(intval($cart->id));

Product::addCustomizationPrice($summary['products'], $customizedDatas);

 

if ($free_ship = Tools::convertPrice(floatval(Configuration::get('PS_SHIPPING_FREE_PRICE')), new Currency(intval($cart->id_currency))))

{

$discounts = $cart->getDiscounts();

$total_free_ship = $free_ship - ($summary['total_products_wt'] + $summary['total_discounts']);

foreach ($discounts as $discount)

if ($discount['id_discount_type'] == 3)

{

$total_free_ship = 0;

break ;

}

$smarty->assign('free_ship', $total_free_ship);

}

// for compatibility with 1.2 themes

foreach($summary['products'] AS $key => $product)

$summary['products'][$key]['quantity'] = $product['cart_quantity'];

$smarty->assign($summary);

$token = Tools::getToken(false);

$smarty->assign(array(

'token_cart' => $token,

'isVirtualCart' => $cart->isVirtualCart(),

'productNumber' => $cart->nbProducts(),

'voucherAllowed' => Configuration::get('PS_VOUCHERS'),

'HOOK_SHOPPING_CART' => Module::hookExec('shoppingCart', $summary),

'HOOK_SHOPPING_CART_EXTRA' => Module::hookExec('shoppingCartExtra', $summary),

'shippingCost' => $cart->getOrderTotal(true, 5),

'shippingCostTaxExc' => $cart->getOrderTotal(false, 5),

'customizedDatas' => $customizedDatas,

'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_,

'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_,

'lastProductAdded' => $cart->getLastProduct()

));

Tools::safePostVars();

include_once(dirname(__FILE__).'/header.php');

$smarty->display(_PS_THEME_DIR_.'shopping-cart.tpl');

}

 

?>

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...