Added - added add-note, get-notes, delete-note endpoints to manage Note objects (these endpoints are restricted to admin authentication)
Added - added get-content-pages and delete-content-page endpoints to manage content pages
Added - Added opt_in_secondary_last_modified_date to a user, which is a datetime field that records the last time opt_in_secondary date changed
Added - added non-payment error response to API to indicate when Spaaza customers are in payment default and cannot use the API
Added - it is now possible to configure an optional maximum_basket_total_value_spend in a campaign - a maximum basket total value for a reward to be redeemed in a basket
Added - it is now possible to configure an optional maximum_basket_total_value_earn in a campaign - a maximum basket total value for a reward to be earned
Added - the add-basket and get-basket-price endpoints can now override the campaign redemption grace period. By specifying a redemption grace period in a specific basket, the campaign's default grace period can be overridden
Added - the alter-chain and get-chain endpoints can now set a chain redemption grace period, which is the number of hours during which a campaign's vouchers can still be redeemed correctly after the active_date_until has passed
Added - user authentication against the Shopify API is now supported, allowing end-users to authenticate against the Shopify API using their Spaaza credentials, such as when using the Spaaza whitelabel mobile app
Added - issue a reward when a customer subscription renewal is received via a Stripe webhook
Improved — improved retry handling when making calls to external APIs such as Magento 2, Green Solutions and other providers
Improved - it is now possible to apply basket value restrictions (maximum_basket_total_value_spend and maximum_basket_total_value_earn) to matching item campaigns, allowing for more control over the redemption process
Improved - improvements in content page campaign handling
Improved - it is now possible to restrict redemption of a competition grand prize to the store in which the prize was issued
Improved - updates to IOS mobile pass wallet handling
Improved - completed Shopify API communication migration to Shopify GraphQL admin API
Improved - improvements to win distribution time algorithm for store-budgeted competition campaigns
Improved - performance improvements in competition budget checking when issuing instant win vouchers
Improved - webhook handling for Stripe subscription features
Improved - event pipeline performance improvements for wallet mutation events
Improved - locale (language) field is now synchronised between Spaaza user account and Shopify customer account, allowing for better localisation of content and campaigns
Improved - performance when user member number updates take place
Improved - issue-avoidance when processing simultaneous duplicate webhooks received from Shopify
Fixed - issues in Shopify account activation flow
Fixed - bug in matching non-product campaign assignments
Fixed - issue with missing title when creating Shopify discount code for wallet voucher
Fixed - issue with unhandled exception when no response is received from Green Solutions (formerly Garden Connect) API
Fixed - issue with voucher redemption after campaign active date has passed
Fixed - issue where wallet mutation event was not dispatched correctly when a customer used points to receive a reward
Deprecated - the user-specific notes field has been replaced by the new Note object in the add-note, get-notes and delete-note endpoints, which allows for more flexible and structured note management. The notes field will be removed from the response to the get-card endpoint in version 1.6.0.
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