Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by ecartz

  1. ecartz

    Is it possible to clone products?

    If they can give you a spreadsheet, you could manipulate it to match what is expected by Easy Populate (App) or another import App from the Marketplace.
  2. ecartz

    Oscommerce integrate with nolapro

    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.
  3. ecartz

    1064 error and worse ...

    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.
  4. ecartz

    1064 error and worse ...

    Unfortunately, is the version on the download page. The line to remove to fix that is at https://github.com/gburton/CE-Phoenix/commit/82d528731f600565d113614e0733a831c5a27f8a Alternately, download the entire https://github.com/gburton/CE-Phoenix/archive/master.zip and extract includes/modules/product_listing.php and copy it over.
  5. ecartz

    1064 error and worse ...

    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?
  6. ecartz

    Google ads

    I'm not sure how they ended up on your site, but you may want to report the publisher to Google. Link: https://support.google.com/adsense/answer/1208370?hl=en Publisher: data-ad-client="ca-pub-4145666569613767" Google may be able to use that report to keep that person from being paid for the ads on your site. This might be a good time to change the passwords associated with your site: your admin password, FTP password, etc.
  7. ecartz

    Remove Extra Type from PDF Invoice

    Did you search for Customer\'s Comments? The apostrophe would need escaped in a string, so an overly literal search might miss it.
  8. https://github.com/gburton/CE-Phoenix/commit/8f4c98ab496f47b58bcc8accf81b183fab013013 Or just update to
  9. 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) { to $files = tep_opendir(DIR_FS_CATALOG_LANGUAGES . $_GET['lngdir']); usort($result, function ($a, $b) { return strcmp($a['name'], $b['name']); }); foreach ($files as $file) {
  10. ecartz

    Wrong redirect after add to cart

    tep_redirect(tep_href_link($goto, tep_get_all_get_params(array('action'))); would probably solve your immediate problem.
  11. I think that you would have to name it hook_admin_siteWide_hMenu instead, as it is a hook now. Note that I haven't tried it, so I'm not really sure what would happen. Overriding hooks may lead to gremlins.
  12. 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.
  13. 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.
  14. Also, this usually means that there is an error. This error might be logged somewhere. And knowing what the error was would be helpful. You'd have to put the files in navbar not navbar_modules.
  15. ecartz

    Free Shipping Per Product for v2.3

    Create a checkout_shipping, injectRedirects hook. public function listen_injectRedirects() { $GLOBALS['products_ship_free'] = false; if (!GLOBALS['free_shipping']) { define('TEXT_CHOOSE_SHIPPING_METHOD', TEXT_CHOOSE_SHIPPING_METHOD_NO_PFS); define('TEXT_ENTER_SHIPPING_INFORMATION', TEXT_ENTER_SHIPPING_INFORMATION_NO_PFS); return; } 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)); } or similar. In the language files for that page, for each language, change TEXT_CHOOSE_SHIPPING_METHOD to TEXT_CHOOSE_SHIPPING_METHOD_NO_PFS and TEXT_ENTER_SHIPPING_INFORMATION to TEXT_ENTER_SHIPPING_INFORMATION_NO_PFS. In your overridden shopping_cart class, also change function count_contents() { $total_items = 0; if (is_array($this->contents)) { foreach (array_keys($this->contents) as $products_id) { $total_items += $this->get_quantity($products_id); } } return $total_items; } to function count_contents() { $total_items = 0; if (is_array($this->contents)) { foreach ($this->contents as $products_id => $product) { if (1 != $product['ship_free']) { $total_items += $this->get_quantity($products_id); } } } return $total_items; } and change in the calculate function $this->weight += ($qty * $products_weight); to if (1 != $this->contents[$products_id]['ship_free']) { $this->weight += ($qty * $products_weight); } That should cover the checkout_shipping instructions Lambros posted. There may be other changes necessary to other files that are not included here. For example, there are other changes to the shopping_cart class posted in the instructions. And the catalog/shopping_cart.php change would now be made in includes/modules/content/shopping_cart/templates/tpl_cm_sc_product_listing.php Replace echo '<th><a href="' . tep_href_link('product_info.php', 'products_id=' . $product['id']) . '">' . $product['name'] . '</a>'; foreach (($product['attributes'] ?? []) as $option => $value) { with echo '<th><a href="' . tep_href_link('product_info.php', 'products_id=' . $product['id']) . '">' . $product['name'] . '</a>'; if (1 == $product['ship_free']) { echo '<br /><span class="smallText">(' . TEXT_PRODUCT_SHIPS_FREE . ')</span>'; } foreach (($product['attributes'] ?? []) as $option => $value) { That's three lines added between two existing lines. Hopefully that will be enough to get you going. @Omar_one
  16. If you do not have a shipping module installed, you can't get past the checkout_shipping page unless you have only virtual products in your cart. There needs to be at least one shipping method that is valid for your current address. That has nothing to do with this App. You'd get the exact same behavior if you registered an account. He means under admin > Modules > Customer Data > Email Address -- you need, at minimum, the email module enabled for the create_account_pwa page. You will have to click the Edit button and check the box next to create_account_pwa
  17. ecartz

    Wrong redirect after add to cart

    This suggests that you should ask in the Ultimate SEO URLs thread.
  18. Given the problems that you were reporting with the guest module triggering on the create_account and admin/customers pages, one solution would be to make it possible to shut off modules on those pages. Currently every module displays on those pages, as they traditionally showed every input. Presumably Rainer's solution shuts off the module on other pages in some other way. If it is easier to make the module work with the modified version, then I can put those changes in core. Then the version that I posted would essentially become standard Phoenix.
  19. @raiwa @rupruprup If you want, you could try the alternative version of Phoenix at https://github.com/ecartz/CE-Phoenix/tree/guest On a live store, you might want to run UPDATE configuration SET configuration_value = CONCAT(configuration_value, ';create_account;customers') WHERE configuration_key LIKE 'MODULE_CUSTOMER_DATA%PAGES' Although you could get the same effect by uninstalling and reinstalling or simply editing the configuration of those modules. Note that after running that SQL, you might have to edit the guest module to remove those two pages. I have done no testing of that version at the moment. Use at your own risk, only on test stores.
  20. Did you click the Install Module button and look under index_nested? After checking that it isn't already installed of course.
  21. I can tell you that we are not. There is a third party who wrote a slug-based URL rewriter that might be adaptable into something integrated with mod_rewrite. But I don't know if that is going to launch and would not be built-in.
  22. Go to and click Reply to this Topic. It seems that you keep hitting Start a New Topic, which is one reason why you can't see your previous posts in that thread. If you go to https://forums.oscommerce.com/forum/23-order-total-modules/ then you should be able to see your posts.
  23. I can see your previous threads: But please note that none of these do what Jack suggested. Which is to find the existing thread for the particular App that you are using and post in that existing thread. You keep posting new threads. I can't even tell just by reading what App you have tried. You posted a name but I'd have to search to see if I could find it. You seem to be confusing a forum with a thread. This is the Order Total module forum. It is where developers go to post support threads for Apps. It's not really intended for users to post question threads. And in general, your threads aren't asking the kind of questions that people can help you. I've read them. I don't know the answer to the questions you are asking. The only person who might know is the developer who made the App. If the developer has not responded to you so far, then it is quite likely that that person is not reading the forum actively. Posting in the actual support thread might notify that person. It's also possible that the App is not actively supported. It might need a new developer to take it over or to code a new one. To interest such a developer, you would have to pay that person. Because there aren't roving developers just waiting around to do free work. Alternately, if you are actively trying to code something yourself, you could show us what you tried, what you thought/hoped would happen, and what actually did happen. Then ask for help making it work the way that you wanted. But as is, your question basically comes down to you wanting to do something and asking us to figure out how to do it for you. And frankly, I'm far too lazy to do that. In general, if your question requires us to find and download an App (or two) just to figure out what you're actually asking, it's unlikely that anyone will try to answer it.
  24. I'm not sure what you did, but if you were using some variation of the osCommerce form, the products_id would show like 666{1}. But in your image, it is showing as just 666.
  25. It looks like you are doing something custom to differentiate your products. The osC way would be for you to create attributes for the sizes. Then there would be multiple product IDs. E.g. product_info1.php?products_id=666{1} and product_info1.php?products_id=666{2} They would have the same base product ID, but the cart would show different extended ones. The tep_get_prid function takes the long form and trims off the attributes to get the base ID. The tep_get_uprid function adds the attributes to the base product ID to produce the long form. Your shop is customized enough that I can't say concretely how you would have to do things differently. But that's how things are intended to work in this situation. Hopefully that at least gives you an idea of where to look in your modifications.