Improved - after a successful Stripe payment notification webhook is received, Spaaza updates the (external) identity handler after user opt_in_secondary is set
Improved - when nullifying user username in alter-user, use a chain's dummy email domain, if available, to set a dummy email address
Improved - if a chain does not allow repeated use of retailer_basket_code values for baskets, an exclusive retailer_basket_code parameter in claim-vouchers and lock_voucher will now generate a basket_already_exists error when an associated basket already exists.
Improved - the get-campaigns endpoint now supports pagination for API requests.
Improved - in a return transaction, if it is not possible to match a returned item to an original purchase item, the item will be treated as a negatively-priced purchase item in the returning basket and the excluded_from_spaaza parameter will be set to true to avoid applying any Spaaza campaign logic to the item. See returns documentation for more information.
Improved - return a parameter_mismatch warning in basket endpoints when sum of item_price amounts for items does not match basket_total_price value
Improved - return a warning in basket endpoints when a returned item cannot be matched to an original purchase transaction
Improved - when all purchase items in a basket have both item_price and item_original_price fields populated, the difference between the two values is used to calculate the redemption amount and distribution of vouchers being redeemed instead of making any reference to previously calculated voucher redemption values. This allows client-specific discounts to still be applied between calls to the get-basket-price and add-basket endpoints, although we recommend caution. See the subsection called Basket Discounts and Vouchers for more information about voucher redemption. (versions >= 1.5.4)
Improved - added address fields to Profile Completion campaign
Improved - excluded delete campaigns from campaign groups in responses
Improved - return a warning in basket endpoints when a returned item cannot be matched to an original purchase transaction
Improved - return a warning in basket endpoints when sum of item_price amounts for items does not match basket_total_price value. (versions >= 1.5.4)
Added - added Fixed Unit basket voucher and fixed_unit_basket_voucher reward method to campaign award which provides a fixed monetary discount per purchase unit of a matching item
Added - added content zones functionality and alter-content-page and get-content-page API endpoints to API
Added claim-vouchers endpoint to allow claiming (and optional locking) of multiple vouchers in a single call
Added new business endpoints get-business, get-businesses, delete-business
Users can now be created in add-user without requiring an email address or any other parameters
Added third party id to voucher object when chain configuration is set to allow third party id
Added default 400 HTTP response code for certain older API errors when request version is >= 1.5.2
Added template-based transaction messages to created vouchers and purchase progress in get-basket-price and add-basket responses
Restricted the implementation of dummy email addresses when a username value of null is passed in alter-user, so that this only happens in requests with a version \>= 1.5.2
Garden Connect/Green Solutions integration now supports adding users with password
Google and Apple wallet integration for showing membership passes
Allow an end user to request to update their own password
"Favorite Store" - added functionality calculating and returning a user's favorite store in API endpoints, based on their recent purchase history
"ARTS POSlog" - added functionality to import ARTS (Association for Retail Technology Standards) POSlog transaction files into the Spaaza system
Added cost price functionality to basket items in get-basket-price and add-basket endpoints in order to allow profit margin calculations and analytics sliced by various parameters such as store, product, user segment etc
Standardised custom headers to use X-Spaaza- prefix
Services API now returns standardised error codes and messages
Upgraded unit price rounding to max 4 decimal places in basket items and receipt line items in get-basket-price, add-basket and ARTS POSLog endpoints endpoints
Added authentication_point_identifier as a parameter in get-user-vouchers endpoint
Rich text editor for notes fields: format campaign notes and voucher notes in Markdown with visual feedback as selectors to be used in app/website client.
Voucher expiry notifications: add and manage task triggers related to a specific voucher expiry notification.
Product price trends graph: visualized product price changes over time on the dashboard.
Local time zone for analytics: reports and analytics automatically align with your local time.
External URLs in app content section: link to external resources within app/website client.
Sorted country codes: selection of countries when creating new users.
Chain ID visible in settings: view chain ID in the settings page.
General improvements and bug fixes: enhanced performance and reliability of the console.
"Business Groups" - features to group chain branches and introduce the concept of a user belonging to a business group, which can be used as a region and based on user location, and used to target campaigns.
"Meal Deal Promotions" - promotional campaigns allowing grouping of campaign assignments, and redemption in basket calls
"Client-Led promotions" - allow basket API endpoint clients (e.g. a POS or e-commerce) to define which promotions are applied to items in a basket, rather than requiring a call to get-basket-price to do that
"Fixed Monetary Discount" - promotional campaigns allowing a fixed monetary discount to be applied to each matching item in a basket
Various performance improvements, bug fixes and deprecation notices
The purchase_progress section of the response to get-basket-price and add-basket now includes an array of objects -
one for each active wallet or progress campaign. Each object contains general wallet or progress campaign information, the previous and new balance for the
customer, and an array of individual mutations. This allows API clients to build a full picture for inclusion in e.g. receipts.
The response to get-basket-price and add-basket now includes a voucher_created section describing vouchers which
may have (provisionally) been created as a result of a transaction.