Hello and welcome to our community! Is this your first visit?
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New Coder
    Join Date
    Mar 2011
    Thanked 0 Times in 0 Posts

    Help pls !! customize shipping cost

    Hi there, I would like to customize $shippingCost in my shopping cart. I follow a tutorial from:

    This tutorial using flat shipping rate, how to customize shippingCost based on the product weight ?

    Example: shipping method will based on weight & place within Malaysia:

    west malaysia, up to 1kg = rm9
    east malaysia, up to 1kg = rm12

    west malaysia, up to 2kg = rm12
    east malaysia, up to 2kg = rm16

    west malaysia, up to 5kg = rm18
    east malaysia, up to 5kg = rm32

    west malaysia, up to 10kg = rm24
    east malaysia, up to 10kg = rm48

    Do i need to create a new field inside my database for product weight ? is it $weight * $product_quantity ? Does anyone know how to accomplish this customization? . Please help because I am very confuse. Thank you in advanced

    PHP Code:
    require_once 'config.php';

    *                 CHECKOUT FUNCTIONS 
    function saveOrder()
    $orderId       0;
    $shippingCost  5;
    $requiredField = array('hidShippingFirstName''hidShippingLastName''hidShippingAddress1''hidShippingCity''hidShippingPostalCode',
        if (
    checkRequiredPost($requiredField)) {
    // make sure the first character in the 
            // customer and city name are properly upper cased
    $hidShippingFirstName ucwords($hidShippingFirstName);
    $hidShippingLastName  ucwords($hidShippingLastName);
    $hidPaymentFirstName  ucwords($hidPaymentFirstName);
    $hidPaymentLastName   ucwords($hidPaymentLastName);
    $hidShippingCity      ucwords($hidShippingCity);
    $hidPaymentCity       ucwords($hidPaymentCity);
    $cartContent getCartContent();
    $numItem     count($cartContent);
    // save order & get order id
    $sql "INSERT INTO tbl_order(od_date, od_last_update, od_shipping_first_name, od_shipping_last_name, od_shipping_address1, 
                                          od_shipping_address2, od_shipping_phone, od_shipping_state, od_shipping_city, od_shipping_postal_code, od_shipping_cost,
                                          od_payment_first_name, od_payment_last_name, od_payment_address1, od_payment_address2, 
                                          od_payment_phone, od_payment_state, od_payment_city, od_payment_postal_code)
                    VALUES (NOW(), NOW(), '$hidShippingFirstName', '$hidShippingLastName', '$hidShippingAddress1', 
                            '$hidShippingAddress2', '$hidShippingPhone', '$hidShippingState', '$hidShippingCity', '$hidShippingPostalCode', '$shippingCost',
                            '$hidPaymentFirstName', '$hidPaymentLastName', '$hidPaymentAddress1', 
                            '$hidPaymentAddress2', '$hidPaymentPhone', '$hidPaymentState', '$hidPaymentCity', '$hidPaymentPostalCode')"
    $result dbQuery($sql);
    // get the order id
    $orderId dbInsertId();
            if (
    $orderId) {
    // save order items
    for ($i 0$i $numItem$i++) {
    $sql "INSERT INTO tbl_order_item(od_id, pd_id, od_qty)
                            VALUES ($orderId, {$cartContent[$i]['pd_id']}, {$cartContent[$i]['ct_qty']})"
    $result dbQuery($sql);                    
    // update product stock
    for ($i 0$i $numItem$i++) {
    $sql "UPDATE tbl_product 
                            SET pd_qty = pd_qty - {$cartContent[$i]['ct_qty']}
                            WHERE pd_id = {$cartContent[$i]['pd_id']}"
    $result dbQuery($sql);                    
    // then remove the ordered items from cart
    for ($i 0$i $numItem$i++) {
    $sql "DELETE FROM tbl_cart
                            WHERE ct_id = {$cartContent[$i]['ct_id']}"
    $result dbQuery($sql);                    

        Get order total amount ( total purchase + shipping cost )
    function getOrderAmount($orderId)
    $orderAmount 0;
    $sql "SELECT SUM(pd_price * od_qty)
                FROM tbl_order_item oi, tbl_product p 
                WHERE oi.pd_id = p.pd_id and oi.od_id = $orderId
                SELECT od_shipping_cost 
                FROM tbl_order
                WHERE od_id = $orderId"
    $result dbQuery($sql);

        if (
    dbNumRows($result) == 2) {
    $row dbFetchRow($result);
    $totalPurchase $row[0];
    $row dbFetchRow($result);
    $shippingCost $row[0];
    $orderAmount $totalPurchase $shippingCost;


    any help will be greatly appreciated

  • #2
    Master Coder
    Join Date
    Jun 2003
    Cottage Grove, Minnesota
    Thanked 1,096 Times in 1,087 Posts
    You are correct.
    You need to add a weight column to the database table.
    The total weight then becomes the weight * quantity purchased.

    You can use an array for the various levels of weight VS cost.
    Find where your total weight falls within the various levels you set.

    Maybe someone has the spare time to really dive into this and show an example.



    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts