Login  Sign up

April 2019 | Build 4.8.5

***Client was hotfixed to 4.8.5 to fix issue where Android client was not respecting the PreventWeightToleranceOverride False setting.

System Messages configurable as Store Attributes

By popular demand, we have now pushed all of the system messaging attributes down to the store level. Anything defined at this level will override any settings configured at the client level. With this new functionality you now be able to enable carryout notifications at a store level as well as personalize all the messages that customers receive so they are specific and relevant to the store that customer's orders belongs too.

EnableOrderNotificationsThis setting allows ShopperKit to send a the Order Notification Message to the customer when their order is picked, staged and ready for carryout. 
OrderNotificationMessageBodyThis attribute contains the text of the Order Notification message that is sent to the customer when the EnableOrderNotifications attribute is set to True.
MessagingConfirmCarryoutMessageThis attribute contains the text of the message that is sent back to the customer as a response when the Carryout notification (HERE) message has been received and actioned by a user in the store.
MessagingOrderNotReadyForPickupThis attribute contains the text of the message that is sent back to the customer as a response when receiving a Carryout notification message for an order that is not yet ready for carryout.
MessagingParkingSpotPromptThis attribute contains the text of an optional message that may be used to query the customer for additional information on where to find them in the parking lot when bringing out the order. This message (if enabled) is sent after the Confirm Carryout message is sent. 
OrderNotificationCarryoutFollowupMessageThis attribute contains the text of the message that is sent to customer after receiving the Carryout Notification message and the Notification Carryout Follow threshold has been breached.  This means that users in the store may not have received or actioned the message and is meant as a message to prevent the customers from waiting for a response.

All of these messages are optionally configured by store in the Client Admin menu level of the Admin Portal. If no value is defined, ShopperKit will use whatever is already defined at the app attributes. To configure a new store level attribute, simply click to add a new store attribute on the store edit screen, select the desired attribute from the dropdown and set your value.

User Admin Activity Logging 

Another popular demand feature in this release is the Admin Portal change tracking.  Now all changes that are made in the admin portal are tracked by user and visible from the Reports Menu via the User Admin Activity Logging report. This report uses the same date option parameters as all other reports and analytics and can be downloaded and exported to Excel.

Weight Tolerance check improvements and hardstop

The weight tolerance check logic has been improved with this release to understand tolerance at a package level vs. just an overall order weight level. When picking weighted items using a type 2 price embedded barcode for an item where the quantity is greater than 1, you will be prompted to enter the quantity you are picking as normal and then you will be prompted to confirm the weight. If the calculated weight from the price embedded barcode is out of threshold for the quantity that was indicated then you will be required to confirm the weight before proceeding. Additionally, we have now introduced a new PreventWeightToleranceOverride attribute. When this attribute is set to True, users will not be allowed to override weight inputs that are exceed the defined WeightTolerancePercentage attribute.

As example, let's assume we have an order for 2 units of salmon at a total weight of 1lb where the unit price is $14.99 per pound and our WeightToleancePercentage is set at 20%. If we are picking this item at a unit level using price embedded barcodes (meaning 1 unit per package) then we will expect the price value in the barcode to be between $6 and $9 and the weight to be between .4 lbs and .6 lbs. If the during the pick the user indicates they are picking 2 unites for the scanned barcode, then we will expect the price to be between $11.99 and $17.99 and the weight to be between .8 lb and 1.2 lb.

Also of note, is that now when manually changing the weight value in the weight input, the price value will no longer change, if that price value was set from a type 2 price embedded barcode. This is to reflect that changing weight will not override the price that was captured from the package barcode.

Type 2 price check thresholds

In an effort to ensure customers are not being over or under charged for items based relative to the price values displayed to customers at the time of checkout, ShopperKit is introducing an optional Type 2 Price check functionality. When enabled, this will functionality check to make sure that the embedded price value in the barcode being scanned is within the defined Price Thresholds.

Price Thresholds are defined as a JSON object within the PriceThreshold attribute. The Price Threshold are defined as Min and Max Buffer percentages and Min and Max Threshold percentages. The buffer values define upper and lower variance that will not require confirmation. The Threshold values define the upper and lower limits of the allowed variance. Anything that exceeds either upper or lower threshold will not be allow and anything that falls between the buffer value and the threshold value will require confirmation before proceeding.

As example, we have defined our Min and Max threshold values to 10% and our Buffer values to 5%. This means that any scanned price value that represents less then a 5% variance of the unit price value will not require any confirmation, however any value that exceeds 10% will be prevented.









For this example, we have a product that is priced at $1.78 per lb and the ordered weight is 1.5 lbs. Based on the unit price and ordered weight the "exact" price for this item would be $2.67. When picking the product, the user scanned a barcode where the price is $2.50 which is outside of the 5% buffer space but within the 10% threshold. In this case, ShopperKit will display the price value as a possible warning and require the user to confirm the entry before proceeding.

For this example, the scanned price is $3.25. As this value exceeds the 10% threshold, the price is not accepted and the user must cancel the transaction and select another package with a price that is more appropriate for our defined thresholds.

Pre-Selected Sub Option

Up until now, substitution selection in ShopperKit has always been at the discretion of the store associate and through communication with customer. With the April release, we are now supporting pre-selected substitution options directly from the commerce solution. In order to enable this feature in ShopperKit, your commerce platform provider must first provide a way to allow your customers to pre-select their acceptable substitution items at the time they place their orders online. However, when enabled the substitution workflow changes in that when the store associate indicates that they must substitute the original ordered item by tapping the Sub button in the UI, rather than being prompted to identify and lookup the sub product, ShopperKit will simply expose the pre-selected sub item in the picking workflow and require the user to complete the sub by picking the pre-selected item. This feature does require coordination from your commerce provider and changes in how they are sending order data to ShopperKit. Contact support@shopperkit.com for updated order interface specifications to see how these changes are implemented in the API.

Fulfillment Complete Option

Similar to the Pre-selected sub option, the Fulfillment Complete Option also requires coordination from your commerce provider to implement. The Fulfillment Complete option is a new attribute that is carried at the item level in the order that is sent to ShopperKit. When this attribute is set, for items where the ordered quantity is greater than 1, the entirety of the ordered quantity must be picked, or the line must be shorted. The setting will prevent partial picks, and when used in conjunction with the pre-selected sub option, either the entirety of the ordered item must be fulfilled, or the entirety of the pre-selected sub item must be fulfilled.

POS Limit Threshold

In an effort to prevent gross customer overcharges by accidental or careless entries when using the Manual POS Entry mode, ShopperKit has introduced a new PricePOSThreshold attribute. When set, ShopperKit will not allow any attempt to charge the customer an amount greater than the threshold to go through. This is in addition to the existing 20% price check warning. While the value can be configured to any value, the default value is set to 500%.

Allow Payment Method override when using Manual POS Entry

For customers using the Manual POS Entry mode, ShopperKit will now allow you to overwrite the selected payment method for the order even when there is no payment error present on the order. This change only applies to Manual POS Entry. For customers who are using integrated POS, you will still only be allowed to change payment method when a payment error exists on the order.

Client Localization

As ShopperKit continues to grow, we are beginning to branch out internationally. To better support our non-english speaking customers domestically and abroad, we have taken on the arduous task of enabling localization of the client application. To enable a new localization in ShopperKit we will first need to ensure that we have the necessary string translations (ShopperKit currently support Spanish, Italian and of course, English). Depending on the language, we may need to work with a native speaking customer resource to provide the required translations. Once the string files have been enabled, ShopperKit will adopt the its settings based on the localization settings of the device OS. Please contact support@shopperkit.com if you would like to enable support for a new language/locale.


  • Corrected issue where order exceptions were showing in Command Center order inspector
  • Enable server side error messaging to display at POS Manual entry screen
  • Fixed issued that allowed Carryout UI to show containers in incorrect staging sections
  • Corrected user setup issue that prevented Credits from loading correctly in the Manual POS Entry screen
  • Corrected Issue with Aisle and Shelf pick indicator showing incorrect pick status after unpick
  • Fixed the issue where order details would fail to load when an added or substituted item was removed from order.
  • Added additional connection logic to iOS scanner reconnect button
  • Corrected issue where Manual POS Entry screen would not close on input (iOS)
  • Decoupled the OrderNotificationCarryoutFollowupMessage from the EnableOrderNotifications setting so that customers who send a Carryout Notification message will receive the followup message regardless of whether or not the order notifications have been enabled.