New features


  1. API call calculateShoppingCart
    now supports new promotion type "Special Unit Price".

    In this type of promotion, shopper gets a special price for specific products if they buy at least a certain quantity. The promotion may also be set up with a limit: maximum number of discounted items per sale. To set up this new type of promotion, Classic back office is required — version 4.9 or newer. Alternatively, the promotion can be created over API, with the saveCampaign
    call. (New input fields"specialUnitPrice" and "maxItemsWithSpecialUnitPrice" have been added.)

  2. API call calculateShoppingCart
    now supports "Redemption Limit"

    . This is a way to specify that a promotion may not apply to one sale more than the specified number of times. A Redemption Limit of 3, for a promotion "Buy 2 pies and get an apple 50% off", means that regardless of the quantities the customer purchases, they will only get 3 discounted apples at most. (And to get those, they need to buy 6 pies.) Redemption Limit should not be confused with "maximum number of discounted items". Consider carefully which one you might need. To set up promotions with Redemption Limits, Classic back office is required — version 4.9 or newer. Alternatively, it can be set over API, with the saveCampaign
    call. (New input field "redemptionLimit"has been added.)

  3. Algorithm for the following two promotion types:
    • Buy one product and get % or $ off another product (Buy One Get One)
    • Get N pcs. of a product for a fixed total
    has been changed. As coupon promotions, they will now apply only once per scanned coupon. And when using them manually, cashier must specify how many times they want to apply it. If you set up a coupon promotion "Free apple with every pie", and customer picks three pies and three apples, they will now need to have three coupons as well. Formerly, scanning just one coupon would have given all 3 apples free of charge.
  4. Support for a standalone coupon microservice has been added.
  5. API call addPromotionCountsToInvoice
    has been added. This is meant for Berlin POS, for reporting how many times each promotion applied to a sale.
    1. This data is only used for custom integrations at the moment. This data cannot be managed from back office, or retrieved over API.
    2. This feature needs to be installed to an account as an extra module, "Promotion Count on Invoice".
  6. API call calculateRewardPoints
    has been added. This is a custom integration hook for Berlin POS.

Improvements

  1. Filters "searchEmail" and "searchMobile" have been added to API call getCustomers
    .
  2. Field "timeZone" (store time zone) has been added to API calls getWarehouses
    and saveWarehouse
    .
  3. Field "promotionReasonCodeID" has been added to API call getAppliedPromotionRecords
    .
  4. Field "warehouseValue" in API call getSalesDocuments
    , on each invoice row, which previously was undocumented, has now been documented.
    This field returns the unit cost of sold item.
    To retrieve that field, use input flag "getCOGS" = 1.
    1. Please note that the unit cost is returned in
      invoice currency
      . To get the value in account's main currency, multiply it by the field "currencyRate".
  5. Names of the two parameters introduced in 1.21.6 have been updated to "customer_registry_group_cache_time" and "customer_registry_customer_cache_time", respectively.

Bug fixes

  1. Fixed: input parameter "excludeDiscountedFromPercentageOffEntirePurchase" in API call saveCampaign
    did not work.