API late July 2026 improvements (1.6.8)
Additional API features, improvements and fixes that shipped to production in late July 2026, on top of the earlier mid July 2026 release.
- Added support for campaigns contributing progress into a stamp card. Any campaign that supports purchase progress (for example a
matching_itemcampaign) can add stamps to anitem_purchase_countcampaign by setting itsrecipient_campaign_idto the stamp card'scampaign_idand itsrecipient_reward_methodtopoints. The card's reward is issued when itstarget_countis reached, whether the completing stamps come from the card's own qualifying items, from contributions, or from a combination of both within the same basket. Existing stamp card behaviour is unchanged. - Added an
owner_codefield to composable campaign reward methods, settable throughalter-reward-methodand returned byget-reward-methodandget-reward-methods. It is a short label of your own choosing (maximum 64 characters) used to identify a reward method when several are listed together, and has no effect on how rewards are calculated or issued. - Changed the
max_basket_items_consideredfield on the reward-methodbasket_itemrestriction so that it counts individual items rather than basket lines. A single basket line with a quantity of 3 now counts as three items, exactly as three separate quantity-1 lines would, and the same limit is applied when the reward value is distributed across the matched items. - Fixed the promotional state of stored basket items so that it is no longer re-derived from current product data when a basket is processed again, for example by claim-basket or a return. An item that was not on promotion when it was bought continues to earn from campaigns configured with
earn_on_promotional_itemsset tofalse, even if the product has since been flagged as promotional. - Fixed the handling of non-boolean
item_is_promotionalvalues in add-basket. Values such as"false","0"and0are now interpreted as not promotional, values such as"true"and1as promotional, and any unrecognised value defaults to not promotional.