Jump to content

JangoF

Members
  • Content count

    239
  • Joined

  • Last visited

Posts posted by JangoF


  1. you'll have to hack the code for that. look for "case 'category':"

    just ABOVE that is the SQL that need to be hacked. Change the WHERE clause to this

                WHERE
                p.products_id = ptoc.products_id AND
                p.products_quantity > 2 AND
                ptoc.categories_id = subc.categories_id

    Thanks again. I think I found another weird issue. When I try to export using the following url, it exports only inactive products. Any idea why?

     

    easypopulate.php?download=tempfile&dltype=custom&epcust_status_filter=active&epcust_name=show&epcust_description=show&epcust_image=show&epcust_category=show&epcust_price=show&epcust_quantity=show&epcust_status=show


  2. I am building a shop for a client who uses easy populate to upload a csv to add products. They now want to put all the catalog on to a specials price so you see the cross out price on the product info page. But they have hundreds of products and are reluctant to add specials one by one to the admin area.

     

    I have googled this but i was wondering if it's possible to add the specials price to the main upload feed of easy populate, sat next the normal price column???? I know it's in a different table, but if the product_id can be linked to specials price and expiary date that would be amazing!!

    You could always use this excellent contribution: http://www.oscommerce.com/community/contributions,5273


  3. that's an overkill, see why you need to brush up on html forms? (not to mention a little patience)

    Thanks for the help surfalot, I guess I was half-way sleeping!  :blush:

    One more question: How can I export only products that have 2 or more quantity? Would this require some modification in the code? If so, where?


  4. I almost got it now! For anyone looking for a partial solution:

     

    Find at line 1653: case 'full', and one some lines below comment out:

     

    $filelayout['v_products_url_'.$lang['id']] = $iii++;

    $filelayout['v_products_weight'] = $iii++;

    $filelayout['v_date_avail'] = $iii++;

    $filelayout['v_date_added'] = $iii++;

    $filelayout['v_categories_image_' . $i] = $iii++;

    $filelayout['v_manufacturers_name'] = $iii++;

     

    However, I am unsure how to only include the categories v_categories_name_1_1 and v_categories_name_2_1, and how to only include active products. Any solution?


  5. Got a question related to the export function:

     

    I am using Easy Populate 2.76h-MS2 (with attributes) surfalot 13 Feb 2009, works excellent out of the box with all functions.

    What I am trying to do is make a cron job that exports the products automatically at certain intervals to a tab-separated file.

     

    I don't think "Export EP or Froogle Products File" can do this, as the information is passed through a form, but "Create Complete .txt file in temp dir" can be run from cron because it passes it through an URL.

     

    Here's my problem though: I don't want all fields included, so does anyone know where in easypopulate.php I can modify this?

    The fields I would like to use is only:

     

    v_products_model

    v_products_name_1

    v_products_description_1

    v_products_image

    v_products_price

    v_products_quantity

    v_categories_name_1_1

    v_categories_name_2_1

    v_status (only Active products)


  6. I'm using FEC 3.2 with Paypal Express and CC as payment methods, and I'm trying to limit the methods available depending on what users do.

     

    For instance, I have the Paypal Express button placed at the login- and shoppingcart-pages. When the user returns from paypal to checkout_shipping, the paypal method is automatically set.

    If the user does this, cc should be hidden. If the user chooses to go straight to the normal checkout, paypal express should be hidden.

     

    But, when I try to add an if-clause in checkout_shipping.php the page loads until it times out:

     

    I replace this:

     

    require(DIR_WS_CLASSES . 'payment.php');

    $payment_modules = new payment;

     

    With this:

     

    if ($payment == "ppec")) {

    require(DIR_WS_CLASSES . 'payment.php');

    $payment_modules = new payment("ppec");

    } else {

    require(DIR_WS_CLASSES . 'payment.php');

    $payment_modules = new payment("cc");

    }

     

     

    Anyone know why this does not work?


  7. I just installed this on a testsite before transferring over to live, but doesn't it seem strange to anyone that the stock update is commented out? When I go through with test orders, the stock is in fact not depleted by 1 for the item. Just a FYI, someone should check this, because it could cause some serious problems in your store.

     

    Edit: Easy to fix though, just uncomment the stock code in ppeb.php


  8. In your admin/includes/functions/general.php, add in this function:

     

    function tep_get_products_special_price($product_id) {
        $product_query = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . "  where products_id = '" . $product_id . "'");
        $product = tep_db_fetch_array($product_query);
      
        return $product['specials_new_products_price'];
      }

     

     

     

    This worked for me, thanks a lot! Before adding this fix, all I got was a blank screen when trying to edit orders.


  9. I never expected to see my little contribution getting so many post fixes/releases, that's nice to see.

     

    I realize that when I first added the initial release, a lot of things were missing and/or could cause problems for vanilla users, because I use such a heavily modded store. I don't even use the left admin menu, but a horizontal top menu.

     

    But I just wanted to drop in and say thanks to everyone for keeping it alive. Especially Sam/spooks here. Btw, I am also a huge fan of Blade Runner! B)


  10. While I haven't seen your work yet, I don't think it's sloppy. I think it sounds like a much needed improvement ;)

     

    The language definition files isn't so hard to do:

     

    require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_AUCTONS); (must be in includes\filenames.php)

     

    Then instead of the actual text you use ' . TEXT_WHATEVER . ' in the files.

     

    In includes\languages\english\auctions.php, add definition for each text: define('TEXT_WHATEVER', 'Auctions Whatever');

     

    That's basically it.


  11. Well I don't know exactly what kind of changes you made Dan, but they sound extensive. From my standpoint I would suggest you call it version 2.0, and instead of listing all the changes and improvements you have done, list;

     

    - Current Features

    - Comparison of Before and After

    - Known/Remaining Bugs

    - (To-Do (for any future updates you might have planned after release, if any))

     

    EDIT: As for installation, I wouldn't mind helping documenting changes and/or testing it.

     

    Just a suggestion :)


  12. Hi surfalot,

     

    I installed your contribution and it works simply marvelous ;)

     

    I am working on a very small tool that let's you search for a product, then you can go to the next page to quickly edit it. Although I haven't really started on the update-product part, it works great. Only small problem I have is to insert the calendar for 'featured until date available' (I get a small javascript error), and was wondering if you could take a quick look?

     

    Here is the code (it can easily be tested by putting it in /admin and entering ?pID=x after the url - x being a product id):

    <?php
     require('includes/application_top.php');
     require('includes/languages/product_list.php');
     require('includes/languages/english/categories.php');
    
    if (isset($HTTP_GET_VARS['pID'])) $HTTP_GET_VARS['pID'] = $pID;
    
    $product_query = tep_db_query("select p.products_id, p.products_model, pd.products_name, pd.products_description, p.products_briefdesc, p.products_condition, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.products_featured, p.products_featured_until from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . $pID . "' and p.products_id = pd.products_id");
    
       if ($product['products_status'] = '0') $pInfo->products_status = '1';
       switch ($pInfo->products_status) {
         case '0': $in_status = false; $out_status = true; break;
         case '1':
         default: $in_status = true; $out_status = false;
       }
      if (empty($pInfo->products_featured)) $pInfo->products_featured = '0';
       switch ($pInfo->products_featured) {
         case '0': $in_f_status = false; $out_f_status = true; break;
         case '1':
         default: $in_f_status = true; $out_f_status = false;
       }
    
     if($_REQUEST['update']=="update")
     {
      while($product1 = tep_db_fetch_array($product_query))
    		{
    
    		$str=tep_db_query("update products set products_price='".$_REQUEST['price_'.$product1['products_id']]."',products_weight='".$_REQUEST['weight_'.$product1['products_id']]."', products_quantity='".$_REQUEST['qty_'.$product1['products_id']]."' where products_id='".$product1[products_id]."'");
    
    		}
    		header("location:product_list.php?Update=Success&prod_search=".$_REQUEST['prod_search']);
    
     }
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html <?php echo HTML_PARAMS; ?>>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
    <title><?php echo TITLE; ?></title>
    <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
    <link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
    <script language="JavaScript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
    <script language="JavaScript"><!-- 
     var ProductsFeaturedUntil = new ctlSpiffyCalendarBox("ProductsFeaturedUntil", "new_product", "products_featured_until","btnDate1","<?php echo $pInfo->products_featured_until; ?>", scBTNMODE_CUSTOMBLUE);
    //--></script>
    <script language="javascript" src="includes/general.js"></script>
    </head>
    <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
    <div id="spiffycalendar" class="text"></div>
    <!-- header //-->
    <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
    <!-- header_eof //-->
    <!-- body //-->
    <?php while($product = tep_db_fetch_array($product_query))
         {
    ?>
    <td valign="top">
    		<table border="0" width="100%" cellspacing="0" cellpadding="0">
    			<tr>					
    				<td class="pageHeading">Edit Product (<?php echo $pID;?>)</td>
                          </tr>
    
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
         </tr>
         <tr>
           <td><table border="0" cellspacing="0" cellpadding="2">
             <tr>
               <td class="main">Products Status:</td>
               <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_radio_field('products_status', '1', $in_status) . ' ' . TEXT_PRODUCT_AVAILABLE . ' ' . tep_draw_radio_field('products_status', '0', $out_status) . ' ' . TEXT_PRODUCT_NOT_AVAILABLE; ?></td>
             </tr>
             <tr>
               <td class="main">Featured Product:</td>
               <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_radio_field('products_featured', '1', $in_f_status) . ' ' . TEXT_PRODUCT_YES . ' ' . tep_draw_radio_field('products_featured', '0', $out_f_status) . ' ' . TEXT_PRODUCT_NO; ?></td>
             </tr>
             <tr>
               <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
             </tr>
             <tr>
               <td class="main">Featured Until Date Available:<br><small>(YYYY-MM-DD)</small></td>
               <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' '; ?><script language="javascript">ProductsFeaturedUntil.writeControl(); ProductsFeaturedUntil.dateFormat="yyyy-MM-dd";</script></td>
             </tr>
             <tr>
               <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
             </tr>
             <tr>
               <td class="main">Products Name:</td>
               <td  class="main"><input type="text" name="name_<?php echo $product['products_id'];?>" id="name" value="<?php echo $product['products_name'];?>" size="100"></td>
             </tr>
             <tr bgcolor="#ebebff">
               <td class="main">Products Price:</td>
               <td  class="main" align="left"><input type="text" name="price_<?php echo $product['products_id'];?>" id="price" value="<?php echo $product['products_price'];?>" size="10"></td>
             </tr>
             <tr>
               <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
             </tr>
             <tr>
               <td class="main" valign="top">Products Description:</td>
               <td><table border="0" cellspacing="0" cellpadding="0">
                 <tr>
                 <td  class="main"><textarea name="description_<?php echo $product['products_id'];?>" rows="60" cols="150" id="description"><?php echo $product['products_description'];?></textarea></td>
                 </tr>
               </table></td>
             </tr>
              </tr>
             <tr>
               <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
             </tr>
             <tr>
               <td class="main">Products Quantity:</td>
               <td class="main"><input type="text" name="qty_<?php echo $product['products_id'];?>" id="qty" value="<?php echo $product['products_quantity'];?>" size="10"></td>
             </tr>
             <tr>
       <td class="main">Products Brief Description:</td>
       <td  class="main"><input type="text" name="briefdesc_<?php echo $product['products_id'];?>" id="briefdesc" value="<?php echo $product['products_briefdesc'];?>" size="100"></td>
             </tr>
             <tr>
       <td class="main">Products Condition:</td>
       <td  class="main"><input type="text" name="condition_<?php echo $product['products_id'];?>" id="condition" value="<?php echo $product['products_condition'];?>" size="10"></td>
             </tr>
             <tr>
               <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
             </tr>  
             <tr>
               <td class="main">Products Model:</td>
               <td  class="main"><input type="text" name="model_<?php echo $product['products_id'];?>" id="model" value="<?php echo $product['products_model'];?>" size="30"></td>
             </tr>
             <tr>
               <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
             </tr>        
                       <tr>
               <td class="main">Change Products Image (Without Uploading):</td>
               <td  class="main"><input type="text" name="image_<?php echo $product['products_id'];?>" id="image" value="<?php echo $product['products_image'];?>" size="30"></td>
                </td>
             </tr>         
             <tr>
               <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
             </tr>
           </table></td>
         </tr>
       </table>
    			 </td>
    			  </tr>
    			</table>
    		</td>
    	</tr>
    </table>
    <?php 
    }
    ?>
    <!-- body_text //-->
    <?php
    			if($_REQUEST['Update']=="Success")
    			{
    			?>
    			<tr><td><font color="#FF3333">Record has been updated successfully</font></td></tr>
    			<?php
    			}	
    			?>
    						<tr>
    							<td class="dataTableContent">
    							<input type="hidden" name="prod_search" value="<?php echo $_REQUEST['prod_search']; ?>"><input type="submit" name="update" value="update">
    							</td>
    						</tr>
    						</table>
    						</form>
    				 </td>
    			  </tr>
    			</table>
    		</td>
    	</tr>
    </table>
    <!-- body_text_eof //-->
    <!-- body_eof //-->
    <!-- footer //-->
    <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
    <!-- footer_eof //-->
    </body>
    </html>
    <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>


  13. So the delete-button is supposed to be cancel (as in undo any changes)?

    And the close-button is supposed to save the changes and hide the window?

     

    But the Update-button does the same anyway, so I don't see a need for it?

     

    I just removed the fermer-button and replace the delete-button with a cancel-button.


  14. I dunno if anyone posted this here yet, but since I just posted this in another topic, here is a simple way to add your own field to ep:

     

    Open easypopulate.php:

     

    1. Find $default_these = array(

     

    -add your field in the list

     

    2. Find the first ocurrence of // build the categories name section of the array based on the number of categores the user wants to have

    A few lines below, find $filelayout = array_merge($filelayout, array(

     

    -add your field in the list

     

    3. Just below that, find $filelayout_sql = "SELECT

     

    -add your field in the list

     

    4. Find // now do a query to get the record's current contents

     

    -add your field to the list

     

    5. Find $query = "INSERT INTO ".TABLE_PRODUCTS." (

     

    -add your field to the list

     

     

    That's should be all ;)

     

     

     

    And here is an easy way to SKIP existing products instead of overwriting them:

     

    Open easypopulate.php:

     

    1. Find: // and update the product data

     

    -Replace echo "<font color='black'> Updated</font><br>";

     

    With: echo "<font color='red'> SKU already exists, skipped!</font><br>";

     

    2. Delete/comment out:

     

    $row = tep_db_fetch_array($result);

    $query = 'UPDATE '.TABLE_PRODUCTS.'

    SET

    products_price="'.$v_products_price.

    '" ,products_image="'.$v_products_image;

     

    3. A few lines more lines below, delete/comment out:

     

    $query .= '", products_weight="'.$v_products_weight .

    '", products_tax_class_id="'.$v_tax_class_id .

    '", products_date_available= ' . $v_date_avail .

    ', products_date_added= ' . $v_date_added .

    ', products_last_modified=CURRENT_TIMESTAMP

    , products_quantity="' . $v_products_quantity .

    '" ,manufacturers_id=' . $v_manufacturer_id .

    ' , products_status=' . $v_db_status . '

    WHERE

    (products_id = "'. $v_products_id . '")';

     

    $result = tep_db_query($query);

     

    That's all ;)


  15. OK, I finally got around to installing your contribution, angel. I applied the two latests fixes, but I still get a javascript error on the page (this is related to the "Fermier" button, is that supposed to close the window? Because even after the "fix" on the contribution page, it doesn't work). But even so, your contribution seems to be in working order.

     

    I just had to think for a moment to get how it works. Because it seems to be the procedure to update the status of several orders is like this:

     

    1. Select the orders you want to update by ticking the checkboxes (in the 'select'-column) next to them.

    2. Click on the select-button on each of them ('fastupdate'-column), entering a comment for each order and changing the status. Then click Update in the small window to save your changes (what does the delete button do in this window? Deletes the order?).

    3. Finally, click on the Update-button at the top to apply your changes to the selected orders.

     

    I tested selecting 3 orders, changed status of them and added comments. Status changed correctly and comments were sent out through mail correctly.

     

    I use custom html mails and also a script that deletes the image + thumbnail of a product when quantity is zero. I plan to test this later, but I expect that everything will work fine, as this is embedded in the same loop as the standard order comments.

     

    Anyway I just wanted to say thanks for a great contribution. It seems the only small thing left to fix is the 'Fermer' button as far as I can tell.


  16. Hello, I have used this script before on another site but with the one that I am working on now it has mySQL 5 and I believe this is a mySQL 5 error. Does anyone know how to fix this? This appears in the admin/auctions.php file

     

    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20, 20' at line 1

    This has nothing to do with MySQL 5 specifically, but is a generic SQL error.

     

    I believe the correct syntax for 'limit' is: limit <starting record>, <number of records>, and as such, sql would return a syntax error as in the case above when trying to start at record -20, which will never exist.


  17. Anyone? I am using Featured Products 1.5.9, but cannot limit the queries for some reason.

     

    $product_query = tep_db_query("select p.products_id, p.products_status, pd.products_name, s.expires_date from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_FEATURED . " s where p.products_status = 1 and p.products_id = pd.products_id and pd.language_id = '" . $languages_id . "' and p.products_id = s.products_id and s.featured_id = '" . $HTTP_GET_VARS['sID'] . "' order by pd.products_name");

    $product = tep_db_fetch_array($product_query);

     

    $sInfo = new objectInfo($product);

    } else {

    $sInfo = new objectInfo(array());

     

    // create an array of featured products, which will be excluded from the pull down menu of products

    // (when creating a new featured product)

    $featured_array = array();

    $featured_query = tep_db_query("select p.products_id, p.products_status from " . TABLE_PRODUCTS . " p, " . TABLE_FEATURED . " s where s.products_id = p.products_id OR p.products_status = '0'");

    while ($featured = tep_db_fetch_array($featured_query)) {

    $featured_array[] = $featured['products_id'];

    }

    }

     

    $featured_query_raw = "select p.products_id, p.products_status, pd.products_name, s.featured_id, s.featured_date_added, s.featured_last_modified, s.expires_date, s.date_status_change, s.status from " . TABLE_PRODUCTS . " p, " . TABLE_FEATURED . " s, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . $languages_id . "' and p.products_id = s.products_id order by pd.products_name";

     

    Adding limit doesn't seem to do much.

×