Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

mikimiki

Pioneers
  • Posts

    11
  • Joined

  • Last visited

Posts posted by mikimiki

  1. I have easy populate installed, & it has been working fine, but now I am having problems uploading a csv file to update all the weights of the products.

     

    When I try to upload I get this error

     

    Easy Populate 2.76g-MS2 - Default Language : english(1)

    File uploaded. 
Temporary filename: 
User filename: EP2012May28-1503.csv
Size: 0

Warning: file(/var/www/vhosts/xxxxxx.com/httpdocs/shop/temp/EP2012May28-1503.csv): failed to open stream: No such file or directory in /var/www/vhosts/xxxxxx.com/httpdocs/shop/admin/easypopulate.php on line 1069

     

    

Warning: fopen(/var/www/vhosts/xxxxxx.com/httpdocs/shop/temp/EP2012May28-1503.csv): failed to open stream: No such file or directory in /var/www/vhosts/xxxxxx.com/httpdocs/shop/admin/easypopulate.php on line 1094
##Can not open file for reading. Script will terminate.

     

    Any & all help gratefully received !

     

    My config looks like this

    EP vers: 2.76g-MS2

    osCommerce 2.2-MS2

     

    I have been able to upload by ftp the csv file I want to update my database to the /httpdocs/shop/temp folder, & I can choose it as an option in EasyPopulate admin, but when I try to upadte I still get an error,

    Warning: Invalid argument supplied for foreach() in /var/www/vhosts/xxxxxx.com/httpdocs/shop/admin/easypopulate.php on line 1197.

     

    Problems lines my easypopulate.php file read like this

    [b]lines 1191 > 1198 :[/b]
       // Now we'll populate the filelayout based on the header row.
      $theheaders_array = explode( $ep_separator, $readed[0] ); // explode the first row, it will be our filelayout
       }
    
       $lll = 0;
       $filelayout = array();
       foreach( $theheaders_array as $header ){
        $cleanheader = str_replace( '"', '', $header);
    
    
    [b]lines 1048 >1069[/b]
    // UPLOAD AND INSERT FILE
    //*******************************
    if (!empty($_POST['localfile']) or (isset($_FILES['usrfl']) && isset($_GET['split']) && $_GET['split']==0)) {
       if (isset($_FILES['usrfl'])){
        // move the file to where we can work with it
        $file = tep_get_uploaded_file('usrfl');
        if (is_uploaded_file($file['tmp_name'])) {
    	    tep_copy_uploaded_file($file, EP_TEMP_DIRECTORY);
        }
        echo "<p class=smallText>";
        echo "File uploaded. <br />";
        echo "Temporary filename: " . $file['tmp_name'] . "<br />";
        echo "User filename: " . $file['name'] . "<br />";
        echo "Size: " . $file['size'] . "<br />";
        // get the entire file into an array
        $readed = file(EP_TEMP_DIRECTORY . $file['name']);

    
    
    [b]lines 1087 > 1094[/b]
    // get the entire file into an array
        $readed = file(EP_TEMP_DIRECTORY . $_POST['localfile']);
       }
    
       if (EP_EXCEL_SAFE_OUTPUT == true) {
    
        // do excel safe input
        $fp = fopen(EP_TEMP_DIRECTORY . (isset($_FILES['usrfl'])?$file['name']:$_POST['localfile']),'r') or die('##Can not open file for reading. Script will terminate.<br />');  // open file

    

     

    Anyone out there with any suggestions ?

  2. I have easy populate installed, & it has been working fine, but now I am having problems uploading a csv file to update all the weights of the products.

     

    When I try to upload I get this error

     

    Easy Populate 2.76g-MS2 - Default Language : english(1)

    File uploaded. 
Temporary filename: 
User filename: EP2012May28-1503.csv
Size: 0

Warning: file(/var/www/vhosts/xxxxxx.com/httpdocs/shop/temp/EP2012May28-1503.csv): failed to open stream: No such file or directory in /var/www/vhosts/xxxxxx.com/httpdocs/shop/admin/easypopulate.php on line 1069

Warning: fopen(/var/www/vhosts/xxxxxx.com/httpdocs/shop/temp/EP2012May28-1503.csv): failed to open stream: No such file or directory in /var/www/vhosts/xxxxxx.com/httpdocs/shop/admin/easypopulate.php on line 1094
##Can not open file for reading. Script will terminate.

     

    Any & all help gratefully received !

     

    My config looks like this

    EP vers: 2.76g-MS2

    osCommerce 2.2-MS2

    OS: Linux 2.6.18-028stab089.1

    HTTP: Apache/2.0.52 (CentOS)

    DB: MySQL 4.1.20

    PHP: 4.3.9 (Zend: 1.3.0)

     

    Temp Directory:

    /var/www/vhosts/xxxxxxx.com/httpdocs/shop/temp/

    Temp Dir is Writable

    Magic Quotes is: off

    register_globals is: on

    Split files on: 300 records

    Model Num Size: 24

    Price with tax: false

    Calc Precision: 2

    Replace quotes: false

    Field seperator: comma

    Excel safe output: true

    Preserve tab/cr/lf: false

    Category depth: 7

    Enable attributes: false

    SEF Froogle URLS: false

    More Pics: false

    Unknown Pics: true

    HTC: false

    SPPC: false

    Extra Fields: false

  3. I have easy populate installed, but am having problems uploading a file to update all the weights of the products.

     

    When I try to upload I get this error

     

    Easy Populate 2.76g-MS2 - Default Language : english(1)

    File uploaded. 
Temporary filename: 
User filename: EP2012May28-1503.csv
Size: 0

Warning: file(/var/www/vhosts/xxxxxx.com/httpdocs/shop/temp/EP2012May28-1503.csv): failed to open stream: No such file or directory in /var/www/vhosts/xxxxxx.com/httpdocs/shop/admin/easypopulate.php on line 1069

Warning: fopen(/var/www/vhosts/xxxxxx.com/httpdocs/shop/temp/EP2012May28-1503.csv): failed to open stream: No such file or directory in /var/www/vhosts/xxxxxx.com/httpdocs/shop/admin/easypopulate.php on line 1094
##Can not open file for reading. Script will terminate.

     

    Any & all help gratefully received !

     

    My config looks like this

    EP vers: 2.76g-MS2

    osCommerce 2.2-MS2

    OS: Linux 2.6.18-028stab089.1

    HTTP: Apache/2.0.52 (CentOS)

    DB: MySQL 4.1.20

    PHP: 4.3.9 (Zend: 1.3.0)

     

    Temp Directory:

    /var/www/vhosts/xxxxxxx.com/httpdocs/shop/temp/

    Temp Dir is Writable

    Magic Quotes is: off

    register_globals is: on

    Split files on: 300 records

    Model Num Size: 24

    Price with tax: false

    Calc Precision: 2

    Replace quotes: false

    Field seperator: comma

    Excel safe output: true

    Preserve tab/cr/lf: false

    Category depth: 7

    Enable attributes: false

    SEF Froogle URLS: false

    More Pics: false

    Unknown Pics: true

    HTC: false

    SPPC: false

    Extra Fields: false

  4. Hi Fuz

    I just installed your great timesaving contrib, but find it falls short in one area.

    Maybe you have a workaround ?

    My product attributes are sizes for clothing, and have a sort order so they will display S, M , L , XL or S/M , M/L , XL etc (Product Attributes Sort Order - http://addons.oscommerce.com/info/1822)

    The Product attribute clone tool does a great job at copying the actual sizes but not the order they sort in, so I end up with them in a wierd order like XL, M, S, L.

    Any idea how I can get the cloner to copy the sort order info as well ?

     

    Any help is greatly appreciated !

     

    bing bong

     

    miki

  5. Hi Y'all !

    One aspect of my problem is this .... customers billing &/or shipping addresses are sporadically missing from orders,

    It happens about once every few weeks, though we process orders every day.

    With these the order emails come with just a comma in the address fields, like this

     

    Delivery Address

    ------------------------------------------------------

     

     

    ,

     

     

    Billing Address

    ------------------------------------------------------

     

     

    ,

     

     

    Some times the Delivery address is there but the billing address is blank.

    Sometimes its repeat customers whose orders processed fine before.

     

    The 2nd aspect of the problem is this.

    Some of the customers I have been able to track down thru their email addresses, which I get from 2checkout.

    In os-commerce admin, when I make a search in the customer database for their email address.

    It finds their record, but all their fields are blank, including their email address ! Wierd !

    The record loads with the following message as a Header

     

    Warning: reset() [function.reset]: Passed variable is not an array or object in /home/qwerty/public_html/shop/admin/includes/classes/object_info.php on line 17

     

    Warning: Variable passed to each() is not an array or object in /home/qwerty/public_html/shop/admin/includes/classes/object_info.php on line 18

     

    I do not understand quite what that means ! :unsure:

    I cannot delete these accounts with the problem of lost address details in the oscommerce database,

     

    The customers must have entered their details when they created their accounts, so I don't know how or why that info is disappearing !

     

    It happens with credit card sales through 2checkout.com, and also with bank transfer orders, so I guess the problem lies within os-commerce somewhere, but i have no clue where !

    It is hard to pinpoint the problem as it seems to be random, and even if I make a test order that is the same from my account, it comes thru ok, so the problem is impossible to recreate!

     

    Any help solving this mind-boggling brain strain is greatly appreciated.

    :rolleyes:

  6. The loyalty module is basically flawed.

    You see, it does not take into account that in the order_total table, different currencies can be stored. So when you add up the amounts you may have US$, Pounds etc. in there if the customer previously ordered using a different currency.

     

    So the function needs to be altered and access the orders table where the currency is stored for any particular order.

     

    So for stores with only 1 currency it is OK as well as when you can trust customers to always order in the same currency. Otherwise, the loyalty discount is bogus.

    the function in loyalty discount should be something like this :

     

    function get_cum_order_total() {

    global $order, $customer_id;

     

    $history_query_raw = "select o.date_purchased, o.currency_value,

    ot.value as order_total

    from " . TABLE_ORDERS . " o left join

    " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id)

    where o.customers_id = '" . $customer_id . "' and

    ot.class = 'ot_total' and

    o.orders_status >= '" . MODULE_LOYALTY_DISCOUNT_ORDER_STATUS . "'

    order by date_purchased DESC";

     

    $history_query = tep_db_query($history_query_raw);

     

    if (tep_db_num_rows($history_query)) {

    $cum_order_total_twd = 0;

    $cutoff_date = get_cutoff_date();

    while ($history = tep_db_fetch_array($history_query)) {

    if (get_date_in_period($cutoff_date, $history['date_purchased']) == true){

    $cum_order_total = $cum_order_total + $history['order_total'] * $history['currency_value'];

    }

    }

    } else {

    $cum_order_total = 0;

    }

     

    return $cum_order_total;

     

    }

     

    so with the currency value incorporated

     

    right ?

     

    Can anyone please help a floundering newbie ?

    I am having problems with this patch to incorporate the Customer Loyalty Discount Scheme into my multi-currency shop.

    When I cut & paste the above code into ot_loyalty_discount.php, I get a Parse error: syntax error, unexpected '}' on line 213.

    When i take that out of the code, the discount scheme fails to appear on the order confirmation page

     

    My code looks like this

     

    <?php

    /*

    ot_loyalty_discount.php

    $Id: ot_loyalty_discount.php,v 1.0 2003/06/09 22:49:11 sp Exp $

     

     

    osCommerce, Open Source E-Commerce Solutions

    http://www.oscommerce.com

     

    Copyright © 2002 osCommerce

     

    Released under the GNU General Plic License

    */

     

    class ot_loyalty_discount {

    var $title, $output;

     

    function ot_loyalty_discount() {

    $this->code = ot_loyalty_discount;

    $this->title = MODULE_LOYALTY_DISCOUNT_TITLE;

    $this->description = MODULE_LOYALTY_DISCOUNT_DESCRIPTION;

    $this->enabled = MODULE_LOYALTY_DISCOUNT_STATUS;

    $this->sort_order = MODULE_LOYALTY_DISCOUNT_SORT_ORDER;

    $this->include_shipping = MODULE_LOYALTY_DISCOUNT_INC_SHIPPING;

    $this->include_tax = MODULE_LOYALTY_DISCOUNT_INC_TAX;

    $this->calculate_tax = MODULE_LOYALTY_DISCOUNT_CALC_TAX;

    $this->table = MODULE_LOYALTY_DISCOUNT_TABLE;

    $this->loyalty_order_status = MODULE_LOYALTY_DISCOUNT_ORDER_STATUS;

    $this->cum_order_period = MODULE_LOYALTY_DISCOUNT_CUMORDER_PERIOD;

    $this->output = array();

    }

     

    function process() {

    global $order, $ot_subtotal, $currencies;

    $od_amount = $this->calculate_credit($this->get_order_total(), $this->get_cum_order_total());

     

    // round discount to nearest cent. Discount of less than .5 cent will not be deducted from amount payable.

    $od_amount = round($od_amount, 2);

    if ($od_amount>0) { // deduct discount from amount payable

    $this->deduction = $od_amount;

    $this->output[] = array('title' => $this->title . ':<br>' . MODULE_LOYALTY_DISCOUNT_SPENT . $currencies->format($this->cum_order_total) . $this->period_string . MODULE_LOYALTY_DISCOUNT_QUALIFY . $this->od_pc . '%:',

    'text' => '<b>' . $currencies->format($od_amount) .'<b>' ,

    'value' => $od_amount);

    $order->info['total'] = $order->info['total'] - $od_amount;

    if ($this->sort_order < $ot_subtotal->sort_order) {

    $order->info['subtotal'] = $order->info['subtotal'] - $od_amount;

    }

    }

    } // end of function process()

     

     

    function calculate_credit($amount_order, $amount_cum_order) {

    global $order;

    $od_amount=0;

    $table_cost = split("[:,]" , MODULE_LOYALTY_DISCOUNT_TABLE);

    for ($i = 0; $i < count($table_cost); $i+=2) {

    if ($amount_cum_order >= $table_cost[$i]) {

    $od_pc = $table_cost[$i+1];

    $this->od_pc = $od_pc;

    }

    }

    // Calculate tax reduction if necessary

    if($this->calculate_tax == 'true') {

    // Calculate main tax reduction

    $tod_amount = $order->info['tax']*$od_pc/100;

    $order->info['tax'] = $order->info['tax'] - $tod_amount;

    // Calculate tax group deductions

    reset($order->info['tax_groups']);

    while (list($key, $value) = each($order->info['tax_groups'])) {

    $god_amount = $value*$od_pc/100;

    $order->info['tax_groups'][$key] = $order->info['tax_groups'][$key] - $god_amount;

    }

    }

    $od_amount = $amount_order*$od_pc/100;

    $od_amount = $od_amount + $tod_amount;

    return $od_amount;

    }

     

     

    function get_order_total() {

    global $order, $cart;

    $order_total = $order->info['total'];

    // Check if gift voucher is in cart and adjust total

    $products = $cart->get_products();

    for ($i=0; $i<sizeof($products); $i++) {

    $t_prid = tep_get_prid($products[$i]['id']);

    $gv_query = tep_db_query("select products_price, products_tax_class_id, products_model from " . TABLE_PRODUCTS . " where products_id = '" . $t_prid . "'");

    $gv_result = tep_db_fetch_array($gv_query);

    if (ereg('^GIFT', addslashes($gv_result['products_model']))) {

    $qty = $cart->get_quantity($t_prid);

    $products_tax = tep_get_tax_rate($gv_result['products_tax_class_id']);

    if ($this->include_tax =='false') {

    $gv_amount = $gv_result['products_price'] * $qty;

    } else {

    $gv_amount = ($gv_result['products_price'] + tep_calculate_tax($gv_result['products_price'],$products_tax)) * $qty;

    }

    $order_total=$order_total - $gv_amount;

    }

    }

    if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax'];

    if ($this->include_shipping == 'false') $order_total=$order_total-$order->info['shipping_cost'];

    return $order_total;

    }

     

    function get_cum_order_total() {

    global $order, $customer_id;

    $history_query_raw = "select o.date_purchased, o.currency_value, ot.value as order_total from " .

    TABLE_ORDERS . " o left join " .

    TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id) where o.customers_id = '" . $customer_id . "' and ot.class = 'ot_total' and o.orders_status = '" .

    $this->loyalty_order_status . "' order by date_purchased DESC";

     

    $history_query = tep_db_query($history_query_raw);

    if (tep_db_num_rows($history_query)) {

    $cum_order_total_twd = 0;

    $cutoff_date = get_cutoff_date();

    while ($history = tep_db_fetch_array($history_query)) {

    if (get_date_in_period($cutoff_date, $history['date_purchased']) == true){

    $cum_order_total = $cum_order_total + $history['order_total'] * $history['currency_value'];

    }

    }

    $this->cum_order_total = $cum_order_total;

    return $cum_order_total;

     

    }

    else {

    $cum_order_total = 0;

    }

     

    return $cum_order_total;

     

    }

    }

     

    function get_cutoff_date() {

    $rightnow = time();

    switch ($this->cum_order_period) {

    case alltime:

    $this->period_string = MODULE_LOYALTY_DISCOUNT_WITHUS;

    $cutoff_date = 0;

    return $cutoff_date;

    break;

    case year:

    $this->period_string = MODULE_LOYALTY_DISCOUNT_LAST . MODULE_LOYALTY_DISCOUNT_YEAR;

    $cutoff_date = $rightnow - (60*60*24*365);

    return $cutoff_date;

    break;

    case quarter:

    $this->period_string = MODULE_LOYALTY_DISCOUNT_LAST . MODULE_LOYALTY_DISCOUNT_QUARTER;

    $cutoff_date = $rightnow - (60*60*24*92);

    return $cutoff_date;

    break;

    case month:

    $this->period_string = MODULE_LOYALTY_DISCOUNT_LAST . MODULE_LOYALTY_DISCOUNT_MONTH;

    $cutoff_date = $rightnow - (60*60*24*31);

    return $cutoff_date;

    break;

    default:

    $cutoff_date = $rightnow;

    return $cutoff_date;

    }

    }

     

    function get_date_in_period($cutoff_date, $raw_date) {

    if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false;

     

    $year = (int)substr($raw_date, 0, 4);

    $month = (int)substr($raw_date, 5, 2);

    $day = (int)substr($raw_date, 8, 2);

    $hour = (int)substr($raw_date, 11, 2);

    $minute = (int)substr($raw_date, 14, 2);

    $second = (int)substr($raw_date, 17, 2);

     

    $order_date_purchased = mktime($hour,$minute,$second,$month,$day,$year);

    if ($order_date_purchased >= $cutoff_date) {return true;}

    else {return false;}

    }

     

     

    function check() {

    if (!isset($this->check)) {

    $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_LOYALTY_DISCOUNT_STATUS'");

    $this->check = tep_db_num_rows($check_query);

    }

     

    return $this->check;

    }

     

    function keys() {

    return array('MODULE_LOYALTY_DISCOUNT_STATUS', 'MODULE_LOYALTY_DISCOUNT_SORT_ORDER', 'MODULE_LOYALTY_DISCOUNT_CUMORDER_PERIOD', 'MODULE_LOYALTY_DISCOUNT_TABLE', 'MODULE_LOYALTY_DISCOUNT_INC_SHIPPING', 'MODULE_LOYALTY_DISCOUNT_INC_TAX', 'MODULE_LOYALTY_DISCOUNT_CALC_TAX', 'MODULE_LOYALTY_DISCOUNT_ORDER_STATUS');

    }

     

    function install() {

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Display Total', 'MODULE_LOYALTY_DISCOUNT_STATUS', 'true', 'Do you want to enable the Order Discount?', '6', '1','tep_cfg_select_option(array(\'true\', \'false\'), ', now())");

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_LOYALTY_DISCOUNT_SORT_ORDER', '999', 'Sort order of display.', '6', '2', now())");

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function ,date_added) values ('Include Shipping', 'MODULE_LOYALTY_DISCOUNT_INC_SHIPPING', 'true', 'Include Shipping in calculation', '6', '3', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now())");

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function ,date_added) values ('Include Tax', 'MODULE_LOYALTY_DISCOUNT_INC_TAX', 'true', 'Include Tax in calculation.', '6', '4','tep_cfg_select_option(array(\'true\', \'false\'), ', now())");

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function ,date_added) values ('Calculate Tax', 'MODULE_LOYALTY_DISCOUNT_CALC_TAX', 'false', 'Re-calculate Tax on discounted amount.', '6', '5','tep_cfg_select_option(array(\'true\', \'false\'), ', now())");

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function ,date_added) values ('Cumulative order total period', 'MODULE_LOYALTY_DISCOUNT_CUMORDER_PERIOD', 'year', 'Set the period over which to calculate cumulative order total.', '6', '6','tep_cfg_select_option(array(\'alltime\', \'year\', \'quarter\', \'month\'), ', now())");

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Discount Percentage', 'MODULE_LOYALTY_DISCOUNT_TABLE', '1000:5,1500:7.5,2000:10,3000:12.5,5000:15', 'Set the cumulative order total breaks per period set above, and discount percentages', '6', '7', now())");

    tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Order Status', 'MODULE_LOYALTY_DISCOUNT_ORDER_STATUS', '3', 'Set the minimum order status for an order to add it to the total amount ordered', '6', '8', now())");

    }

     

    function remove() {

    $keys = '';

    $keys_array = $this->keys();

    for ($i=0; $i<sizeof($keys_array); $i++) {

    $keys .= "'" . $keys_array[$i] . "',";

    }

    $keys = substr($keys, 0, -1);

     

    tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in (" . $keys . ")");

    }

    }

    ?>

×
×
  • Create New...