Found in both 1.55f and 1.56c the stock Zen Store Pickup (storepickup.php) shipping module will create the following error in 1.56c and NO error in 1.55f (just disappearing text)

shopping_cart
Request URI: /shop/index.php?main_page=shopping_cart, IP address: ...
#1 currencies->rateAdjusted() called at [/shop/includes/classes/currencies.php:66]
#2 currencies->format() called at [/shop/includes/templates/template_default/templates/tpl_modules_shipping_estimator.php:157]
#3 require(/shop/includes/templates/template_default/templates/tpl_modules_shipping_estimator.php) called at [/shop/includes/modules/shipping_estimator.php:261]
#4 require(/shop/includes/modules/shipping_estimator.php) called at [/shop/includes/templates/responsive_rest/templates/tpl_shopping_cart_default.php:215]
#5 require(/shop/includes/templates/responsive_rest/templates/tpl_shopping_cart_default.php) called at [/shop/includes/templates/responsive_rest/common/tpl_main_page.php:181]
#6 require(/shop/includes/templates/responsive_rest/common/tpl_main_page.php) called at [/shop/index.php:97]
--> PHP Warning: A non-numeric value encountered in /shop/includes/classes/currencies.php on line 99.


checkout_shipping
Request URI: /shop/index.php?main_page=checkout_shipping IP address: ...
#1 currencies->rateAdjusted() called at [../shop/includes/classes/currencies.php:66]
#2 currencies->format() called at [shop/includes/templates/responsive_rest/templates/tpl_checkout_shipping_default.php:114]
#3 require(/shop/includes/templates/responsive_rest/templates/tpl_checkout_shipping_default.php) called at [/shop/includes/templates/responsive_rest/common/tpl_main_page.php:181]
#4 require(/shop/includes/templates/responsive_rest/common/tpl_main_page.php) called at [/shop/index.php:97]
--> PHP Warning: A non-numeric value encountered in /shop/includes/classes/currencies.php on line 99.


Problems start on the shopping_cart page if your shipping estimator is turned on, if not they begin on the first checkout_shipping page where the shipping modules are displayed.


This error is caused by unique nature of the code to provide single or multiple shipping locations WITH location specific pricing.


Stock example:
121 Main Street;20 Church Street Sunnyside,4.00;Lee Park,5.00;High Street,0.00 Dallas;Tulsa,5.00;Phoenix,0.00

The stock example does work!


However if a client types this in natively:
121 Main St., Coderville, ON

All text past the comma will disappear in both 1.55f and 1.56c, the error above ^ gets posted in the logs folder for 1.56c.


This example works:
121 Main St Coderville ON


This example also works:
2020 Main St Coderville ON;33 Church St Jarvis ON


And finally this example works the best:
121 Ruth St Coderville ON, 19.26; 33 Church St Jarvis ON, 20.18


Although not a direct 'bug' this is a condition of the way the features in this module have been coded for display and scaling.

The text (only coders can see) in the define pages describes the 'typical formats' but does not account for human nature when writing an address.


/languages/english/modules/shipping/storepickup.php
define('MODULE_SHIPPING_STOREPICKUP_TEXT_TITLE', 'Store Pickup');
define('MODULE_SHIPPING_STOREPICKUP_TEXT_DESCRIPTION', 'Customer In Store Pick-up');
define('MODULE_SHIPPING_STOREPICKUP_TEXT_WAY', 'Walk In');


// The following is for defining multiple locations/methods on a per-language basis. It is only used if the shopper has selected a language other than the store's default.
// The content of the MODULE_SHIPPING_STOREPICKUP_MULTIPLE_WAYS definition should be the same as the multiple locations in the shipping module's settings in your admin, just with names changed.
// Typical formats are:
// "Location One, 5.00; Location Two, 3.50; Location Three, 0.00"
// "Location One, Location Two, Location Three"
// or leave it blank to simply use the same text as defined in the Admin, regardless of language
// TIP: This should really be left blank for the default language, otherwise the Admin settings field is never used.
define('MODULE_SHIPPING_STOREPICKUP_MULTIPLE_WAYS', "");


Could read (for coders reading the define page):
// DO NOT USE PUNCTUATION OR SPECIAL CHARACTERS in pickup location address
// "Location One
// "Location One; Location Two; Location Three"
// "Location One, 5.00; Location Two, 3.50; Location Three, 0.00"


Note: // "Location One, Location Two, Location Three" in the example works but clearly it will break the code if folks natively enter their pickup locations in using commas so we should not be suggesting their use as data breaks.


The stock code (two locations):
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Pickup Locations', 'MODULE_SHIPPING_STOREPICKUP_LOCATIONS_LIST', 'Walk In', 'Enter a list of locations, separated by semicolons (;).<br>Optionally you may specify a fee/surcharge for each location by adding a comma and an amount. If no amount is specified, then the generic Shipping Cost amount from the next setting will be applied.<br><br>Examples:<br>121 Main Street;20 Church Street<br>Sunnyside,4.00;Lee Park,5.00;High Street,0.00<br>Dallas;Tulsa,5.00;Phoenix,0.00<br>For multilanguage use, see the define-statement in the language file for this module.', '6', '0', now())");

Could read (for shop owners):
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Pickup Locations', 'MODULE_SHIPPING_STOREPICKUP_LOCATIONS_LIST', 'Walk In', 'Enter a list of locations, separated by semicolons (;).<br>Optionally you may specify a fee/surcharge for each location by adding a comma and an amount. If no amount is specified, then the generic Shipping Cost amount from the next setting will be applied.<br><br><b>Example One:</b><br>121 Main St Coderville ON<br><b>Example Two:</b><br>2020 Main St Coderville ON;33 Church St Jarvis ON<br><b>Example Three:</b><br>121 Ruth St Coderville ON, 19.26; 33 Church St Jarvis ON, 20.18<br><br><b>Note: DO NOT USE PUNCTUATION OR SPECIAL CHARACTERS in the address</b><br><br>For multilanguage use, see the define-statement in the language file for this module.', '6', '0', now())");


And, we could improve the display to notify shop owners of the features within the Store Pickup module here:
define('MODULE_SHIPPING_STOREPICKUP_TEXT_DESCRIPTION', 'Customer In Store Pick-up WITH Multiple Pickup Locations (optional)');


These improvements will be included in the public release of Twitch Base6.