Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Posts posted by ecartz

  1. How do you generate the PDF?  Do you click a link on an osCommerce page?  Or do you go somewhere else?  If an osC page, which one and what actions do you do?  Press a button?  Does it link somewhere?  Where? 

    I don't want to grill you, but those are the kinds of things we would need to help you find what you need.  All this assumes that it is not in the EPOS, as we wouldn't offer much help then. 

  2. 1 hour ago, mmmarcelo said:

    Defining case-insensitive constants is deprecated as of PHP 7.3.0.

    This is not from core code, which doesn't use that parameter.  Certainly not in the current Phoenix and I don't believe so in older versions of osCommerce. 

    If you are simply getting

    1 hour ago, mmmarcelo said:

    Warning: Use of undefined constant

    that's telling you that a define is missing.  Nothing to do with case sensitivity.  Someone might be able to help more if you gave the actual error which says which "constant" is missing. 

  3. The options module would be at a location like admin > Layout Modules > Product Info > Options & Attributes. 

    Alternately, if that is not installed, look under admin > Modules > Content.  Look for the product_info modules.  One of them is called Options & Attributes. 

  4. I made a mistake in the second line. 

    public function listen_injectRedirects() {
      $products_ship_free = false;
      if (!GLOBALS['free_shipping']) {
      foreach ($_SESSION['cart']->get_products() as $product) {
        if (1 == $product['ship_free']) {
          $ship_free_count += $product['quantity'];
      if (($GLOBALS['total_weight'] == 0) && ($GLOBALS['total_count'] == 0)) {
        $products_ship_free = true;
        $GLOBALS['free_shipping'] = true;
        if (!defined('FREE_SHIPPING_TITLE')) {
          include 'includes/languages/' . $_SESSION['language'] . '/modules/order_total/ot_shipping.php';
      define('TEXT_CHOOSE_SHIPPING_METHOD', ($products_ship_free ? sprintf(PRODUCTS_SHIP_FREE_COUNT, $ship_free_count); : TEXT_CHOOSE_SHIPPING_METHOD_NO_PFS));
      define('TEXT_ENTER_SHIPPING_INFORMATION', ((!$products_ship_free && ($ship_free_count > 0)) ? sprintf(PRODUCTS_SHIP_FREE_COUNT_ONLY, $ship_free_count) : TEXT_ENTER_SHIPPING_INFORMATION_NO_PFS));

    Note that this assumes that you've modified the shoppingCart->get_products method to return the 'ship_free' column. 

  5. jQuery has a selector, which looks like


    The part inside the quotes can be pretty much anything that could appear in a CSS definition.  But remember that you probably only want it to apply to one menu, so try for something unique, like ID (rather than class or HTML element).  Remember that it is possible to say something like #css_id SELECT to get the select menu inside the #css_id element.  Then you attach an onchange handler like

    $('SELECT#css_id').change(function () {/* JS here */});

    That would be close to the equivalent of the onchange in

    <SELECT id="css_id" onchange="/* JS here */">

    assuming that you have

    <SELECT id="css_id">

    somewhere in the HTML. 

    Relevant reference:  https://stackoverflow.com/q/11179406

    If you post the HTML for the select menu and the recommended jQuery, someone could probably give more help. 

  6. 4 hours ago, cdetdi said:

    Whenever I do testing my orders seem to use the payments_standard file and skip the ipn file, but, maybe 20-25% of orders seem to be doing the opposite.

    Just to highlight something that others have noted in passing but may not have stated explicitly enough.  If you want to test the IPN path, then don't go back to your site after making the payment.  Because if you just click quickly through everything, chances are that you get back to the site before PayPal sends the IPN.  So act like a customer.  When you get to the screen that says something like "Click here to return to the merchant", close the browser window.  Then your test will work like their order.  Because some customers do exactly that. 

    Note that both the IPN and the click through flow use the paypal_standard file.  The IPN file also has some logic of its own.  This contrasts to the logic triggered from the checkout_process file. 

  7. You should ask Nolapro if they guarantee compatibility with OSCOM CE Phoenix (the official name) v1.0.7.1 and later. 

    They do not have an integration in the Apps Marketplace that we could discuss here.  In general, products not available for download here are not for discussion here, as per the forum rules.  There is an exception for Partners, but they do not have a partnership. 

    The Phoenix Club rules are a bit laxer if you wanted to join there. 

  8. The one and only important difference is in includes/modules/product_listing.php , so you can just copy that file from the download (either the second link that I posted or it's on the downloads page now).  Or use the first link and delete the single line that it shows to delete. 

    The only other file that has changed is the includes/version.php file.  If you want, you can copy that over too. 

    I don't know that update instructions have been posted yet, but they would essentially be to copy those two files. 

  9. If you use phpMyAdmin to run

    select p.*, pd.*, m.*, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price, p.products_quantity as in_stock, if(s.status, 1, 0) as is_special from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id, products_to_categories p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '2' order by pd.products_name

    what does it say? 

  10. I would do it right before the return rather than where you're doing it, for efficiency's sake and to make sure you sort every file. 

    I think that you are implicitly sorting by path most of the time but not always.  Try

    usort($result, function ($a, $b) {
      return strcmp($a['name'], $b['name']);
    return $result;

    That explicitly sorts by path. 

    Or even better might be to move it outside the function entirely. 

        foreach (tep_opendir(DIR_FS_CATALOG_LANGUAGES . $_GET['lngdir']) as $file) {


        $files = tep_opendir(DIR_FS_CATALOG_LANGUAGES . $_GET['lngdir']);
        usort($result, function ($a, $b) {
          return strcmp($a['name'], $b['name']);
        foreach ($files as $file) {


  11. You might want to change lines 67-71 to

          $tpl_data = ['group' => $this->group, 'file' => __FILE__];
          include 'includes/modules/block_template.php';

    Which happens to be robust in the face of name changes as well as forwardly compatible with switchable templates.  See https://github.com/gburton/CE-Phoenix/commit/e8280d9fdf6364c01484fb5f292adf2511bcefbb#diff-da2a69f7f229fdc1ad483c93b286d7f2 for examples. 

  12. 1 hour ago, rupruprup said:

    Please ensure that the class definition "manualCart" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide an autoloader to load the class definition

    Nothing to do with this App (PWA), but this suggests that the class name and file of manualCart do not match or are not in includes/classes or includes/modules.  I would expect a class name of ManualCart and a file name of manual_cart.php -- it's possible that just changing those to match expectations would work.  You might want to post in that App's support thread for more help.