Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

ecartz

♥Ambassador
  • Posts

    3,864
  • Joined

  • Last visited

  • Days Won

    69

Reputation Activity

  1. Like
    ecartz got a reaction from radhavallabh in ULTIMATE Seo Urls 5 - by FWR Media   
    I think that a "non-consecutive numerical sort order" is probably the best solution.  Note that it doesn't need to be a database entry.  A hook file in includes/hooks/system would work as well. 
    The closest thing to documentation is the commit notes (and the commit itself):  https://github.com/gburton/CE-Phoenix/commit/ae01e0d4d91b2e4a561735168ef4fbe6ba8e6899
    Related commit:  https://github.com/gburton/CE-Phoenix/commit/d2adabebe2efbdcd28513c6057758cd25ed48fc4
    I don't think that it is very complicated.  HTTP_SERVER . DIR_WS_CATALOG should always be used now, where previously it was only sometimes used (in the ENABLE_SSL false case).  For the most part, this is just simpler.  Because instead of having to check various things to determine the correct link, the code can just consistently use one thing.  The old system was complicated, as it had to try to mix SSL and non-SSL pages.  But this always uses whatever the HTTP_SERVER is configured to provide. 
  2. Like
    ecartz got a reaction from ce7 in Wholesale (SPPC lite)   
    This has nothing to do with Rainer's Wholesale App (so this really isn't the right place to ask), but you should copy the latest version into includes/system/override (which you may have to create) and modify it there. 
  3. Thanks
    ecartz got a reaction from raiwa in Wholesale (SPPC lite)   
    I think that removing the line is the correct response.  The class should be autoloaded in any newer version, so it shouldn't break anything.  It should not be necessary to manually require/include anything under includes/system/versioned.  Nor for that matter under includes/classes, includes/system/override, includes/modules, or includes/hooks. 
  4. Like
    ecartz got a reaction from burt in Order missing after paypal payment received   
    It might be easier just to remove the requirement that the order status exist. 
    LEFT JOIN orders_status s ON o.orders_status = s.orders_status_id AND s.language_id = " . (int)$languages_id . " WHERE Also consider the case where the missing order status is not 0. 
  5. Like
    ecartz got a reaction from valquiria23 in Converting Points and Rewards system for osC BS   
    https://github.com/gburton/CE-Phoenix/commit/03411792e3fe0c344f6dbbb78dc92afcc2d3014a
  6. Like
    ecartz got a reaction from raiwa in Converting Points and Rewards system for osC BS   
    https://github.com/gburton/CE-Phoenix/commit/03411792e3fe0c344f6dbbb78dc92afcc2d3014a
  7. Like
    ecartz got a reaction from peterpil19 in Free Shipping Per Product for v2.3   
    I made a mistake in the second line. 
    public function listen_injectRedirects() { $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)); } Note that this assumes that you've modified the shoppingCart->get_products method to return the 'ship_free' column. 
  8. Like
    ecartz got a reaction from Smoky Barnable in When is /ext/.../standard_ipn used?   
    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. 
  9. Like
    ecartz got a reaction from cdetdi in When is /ext/.../standard_ipn used?   
    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. 
  10. Like
    ecartz got a reaction from GetSirius in Categories Navbar Module - Phoenix v1.0.6.0   
    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. 
  11. Like
    ecartz got a reaction from Omar_one in 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
  12. Like
    ecartz got a reaction from GetSirius in Categories Navbar Module - Phoenix v1.0.6.0   
    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. 
  13. Thanks
    ecartz got a reaction from Patty in [Contribution] Ship In Cart   
    It looks like it needs to have the $customer object created. 
    $customer = new customer($customer_id); You may have to find a way to make it work with a fake customer ID when the customer is not logged in.  Possibly would require shipto and billto to be stored in the session (as arrays of information). 
  14. Like
    ecartz got a reaction from TomB01 in FedEx - Web Services v9   
    If it is traversable, then replacing line 313 with
    $cost = (reset($rateReply->RatedShipmentDetails)->ShipmentRateDetail->TotalNetCharge->Amount)/MODULE_SHIPPING_FEDEX_WEB_SERVICES_CURRENCY; might work. 
    Setting it to List and explicitly casting to array might work. 
    foreach ((array)$rateReply->RatedShipmentDetails as $ShipmentRateDetail) I'm not sure what line that is, but it is before 313 and I just added (array) to it. 
    In a test store (not a live store, as it would break it), you could add
    var_dump($rateReply->RatedShipmentDetails); exit(); just before line 313 and see what it says.  Try twice, once each for domestic and international. 
     
  15. Like
    ecartz got a reaction from Mac2256 in USPS Rate V4, Intl Rate V2 (official support thread)   
    The problem is not that it needs to be updated with every increment.  The problem is that the current version of this module requires a core change (to admin/modules.php ).  So every time that the modules.php file gets updated, it wipes out the core change which then needs to be reapplied. 
    This could be fixed by adding a hook file or database defined hook to replace the core change.  The hook point was added in this commit.  But no one has updated the package with that.  @greasemonkey uses that hookpoint for another module requiring the same change. 
    Someone could also modify the module to use the standard form:  https://github.com/gburton/CE-Phoenix/blob/master/admin/modules.php#L40..L42.  That might avoid the need for a hook.  But again, no one has updated the module to to do that. 
  16. Like
    ecartz got a reaction from mhsuffolk in Stripe v3 module for SCA   
    Or actually, remove the entire build email step 
    // lets start with the email confirmation $email_order = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $order_id . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link('account_history_info.php', 'order_id=' . $order_id, 'SSL', false) . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n"; if ($order->info['comments']) { $email_order .= tep_db_output($order->info['comments']) . "\n\n"; } $email_order .= EMAIL_TEXT_PRODUCTS . "\n" . EMAIL_SEPARATOR . "\n" . $products_ordered . EMAIL_SEPARATOR . "\n"; for ($i = 0, $n = sizeof($order_totals); $i < $n; $i++) { $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n"; } if ($order->content_type != 'virtual') { $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . EMAIL_SEPARATOR . "\n" . tep_address_format($order->delivery['format_id'], $order->delivery, false, '', "\n") . "\n"; } $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" . EMAIL_SEPARATOR . "\n" . tep_address_format($order->billing['format_id'], $order->billing, false, '', "\n") . "\n\n"; $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . EMAIL_SEPARATOR . "\n"; $email_order .= $this->title . "\n\n"; if ($this->email_footer) { $email_order .= $this->email_footer . "\n\n"; } tep_mail($order->customer['name'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); // send emails to other people if (SEND_EXTRA_ORDER_EMAILS_TO != '') { tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } and replace it with
    tep_notify('checkout', $order); as done in PayPal or in checkout_process.php. 
  17. Like
    ecartz got a reaction from Fredi in NEW! Complete Order Editing Tool!   
    foreach($this->modules as $value) { $class = pathinfo($value, PATHINFO_FILENAME); $GLOBALS[$class] = new $class(); } } }
  18. Like
    ecartz got a reaction from SuperPower09 in [Addon] Twitter Typeahead Autocomplete Search for osC 2.3.4 (BS and nonBS)   
    I still think that a better solution to this would be to fix the DIR_FS_CATALOG value in includes/configure.php to not change with the location of the calling page.  Then you can leave the files inside ext. 
  19. Like
    ecartz got a reaction from azpro in [Addon] Twitter Typeahead Autocomplete Search for osC 2.3.4 (BS and nonBS)   
    The error will tell you what it should be.  For example if that is the correct value, then the error will tell you that it is using /data/www/my_website/public_html/ext/modules/header_tags/twitter_typeahead/includes/hooks
    When you see the ext/modules/ part, you know that the part that you want is to the left of it.  It should end with a /
  20. Like
    ecartz got a reaction from raiwa in Stripe v3 module for SCA   
    Or actually, remove the entire build email step 
    // lets start with the email confirmation $email_order = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $order_id . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link('account_history_info.php', 'order_id=' . $order_id, 'SSL', false) . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n"; if ($order->info['comments']) { $email_order .= tep_db_output($order->info['comments']) . "\n\n"; } $email_order .= EMAIL_TEXT_PRODUCTS . "\n" . EMAIL_SEPARATOR . "\n" . $products_ordered . EMAIL_SEPARATOR . "\n"; for ($i = 0, $n = sizeof($order_totals); $i < $n; $i++) { $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n"; } if ($order->content_type != 'virtual') { $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . EMAIL_SEPARATOR . "\n" . tep_address_format($order->delivery['format_id'], $order->delivery, false, '', "\n") . "\n"; } $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" . EMAIL_SEPARATOR . "\n" . tep_address_format($order->billing['format_id'], $order->billing, false, '', "\n") . "\n\n"; $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . EMAIL_SEPARATOR . "\n"; $email_order .= $this->title . "\n\n"; if ($this->email_footer) { $email_order .= $this->email_footer . "\n\n"; } tep_mail($order->customer['name'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); // send emails to other people if (SEND_EXTRA_ORDER_EMAILS_TO != '') { tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } and replace it with
    tep_notify('checkout', $order); as done in PayPal or in checkout_process.php. 
  21. Thanks
  22. Thanks
    ecartz got a reaction from azpro in [Addon] Twitter Typeahead Autocomplete Search for osC 2.3.4 (BS and nonBS)   
    I still think that a better solution to this would be to fix the DIR_FS_CATALOG value in includes/configure.php to not change with the location of the calling page.  Then you can leave the files inside ext. 
  23. Like
    ecartz got a reaction from 14steve14 in [Addon] Twitter Typeahead Autocomplete Search for osC 2.3.4 (BS and nonBS)   
    I still think that a better solution to this would be to fix the DIR_FS_CATALOG value in includes/configure.php to not change with the location of the calling page.  Then you can leave the files inside ext. 
  24. Like
    ecartz reacted to raiwa in Display Tax Info V3.0   
    Tested and working with Phoenix 1.0.5.1
    Display Tax Info Phoenix
  25. Like
    ecartz reacted to raiwa in shop by price   
    Checked and working with Phoenix 1.0.5.1
    Shop by Price CE Phoenix v.5.1
×
×
  • Create New...