We've released Shipping Director 1.03 for NopCommerce 2.4. You can download it from the Download Trial link on its product page.
We've corrected a localization problem, and added additional localization capability. This is most useful when you want to display numeric values – many languages use different decimal and thousands separators – e.g. “,” vs. “.”. For example, in English, [$TotalWeight].ToString() would show “6.25”, but in Spanish it would show “6,25”.
Also, you can now set up error messages, etc. for all your languages, and use the new GetLocaleString() function to get a language specific message.
This is a "special function" - it must be assigned to a String variable and must be the first word in the variable’s Expression field. The expression cannot be complex: it can be like GetLocaleString("..."), or GetLocaleString([someotherstringvar]), but cannot include any operators.
As an example, you should validate that Country State Zip have been entered because the front end does not enforce it on Estimate Shipping. Create a language resource string for each of your languages using the Resource Name like Shipping.Director.PleaseEnterCountryStateZip, and assign appropriate Values for each language.
Order | Type | Name | Expression | Description Expression |
10 | String | PleaseEnterCountryStateZip | GetLocaleString("Shipping.Director.PleaseEnterCountryStateZip") |
|
20 | ErrorExit | Missing Country State Zip | ShippingAddress.Country = null or ShippingAddress.ZipPostalCode = null or ("US,CA".Contains(ShippingAddress.Country.TwoLetterIsoCode) and ShippingAddress.StateProvince = null) | [PleaseEnterCountryStateZip] |
Also, in case there are any unforeseen problems during calculation you may want to localize the default “Sorry, we are unable to calculate your shipping. Please contact the store." That's already there as Resource Name: Plugins.Shipping.Director.Error.UnableToCalculateShipping
Similarly, we’ve added a GetSetting() special function. It can be assigned to an appropriate variable type based on the setting’s type.
We’ve also added additional debugging capability. The $Debug variable was there previously, but was mostly for packing and rate tracing. Now it will also show variable assignments, etc. Just add a Boolean record with name $Debug. By default it is false.
Order | Type | Name | Expression | Description Expression |
0 | Boolean | $Debug | true |
|
Check the system log for the messages. Previously, “debugging” was best accomplished by using Error type records, so now you don't have to do extra Error records for that purpose. Because the log view page is html, the messages will all appear concatenated. To read it more clearly, right click the page and view source. Scroll down a bit and you'll see each message on its own line.
And finally, we’ve moved the trial check to the end of the evaluation routine. This way, the records will always be evaluated, and messages, etc. will be logged; you will still see the trial warning on the web page after 5 transactions, but it will still evaluate and log the messages. This will allow you to continue testing without having to reset the app or reload the plugins.