Retail Extensions · App · checked 2026-10-23
Expiry and recall keeps bad stock away from your customers. When a regulator recalls a batch, one press blocks it at every till at once, tells each store how much it has and lists the sales that reached customers. Controlled stock leaves for destruction only with the regulator's visit on record. A delivery with too little shelf life left is refused at goods-in unless the supplier's Letter of Undertaking covers it. A worklist shows each store the lots near their expiry date. It suits a pharmacy, a grocery or any shop that sells stock by lot and expiry date. This page covers what the app adds, how to set it up, how to run a recall, a disposal and goods-in, and how to remove it.
What it does
| What happens | When |
|---|---|
| Each lot on the notice is disabled, so no online till offers it; the notice lists each store's stock of it and, at consumer depth, every sale that reached a customer; each selling store gets a progress record to work | A Recall Officer presses Block these batches on a recall notice |
| The disposal is refused | A stock entry writes off a scheduled item (an issue, a consumption, a repack into an unscheduled item), or takes stock out of quarantine, or moves a blocked or expired lot anywhere but quarantine, without a Disposal Record of the regulator's visit for that store that still covers the lot |
| The count is refused | A stock count lowers a scheduled item's stock in quarantine, or of a blocked or expired lot |
| The receipt is refused | A lot has fewer days left than your minimum and no Letter of Undertaking covers it, or it is expired, or its pack's expiry date is not typed on the line (where the item has a shelf life), or the supplier's invoice number is missing |
| The receipt or stock entry goes through, its problems written in its Receiving check or ERP check field | It was posted by your ERP connector's own user |
| The worklist lists each store's lots expiring within your window, and the medicine lots with no expiry date | Anyone with stock rights presses Refresh on an expiry worklist |
What you set up first
Items sold by lot need Has Batch No and Has Expiry Date. You also need at least one quarantine store, a warehouse where recalled and expired stock waits.
-
Install the app. Its service handles the names of customers who bought a recalled lot, so your iVendNext partner installs it and runs its service for you, in your region: the App library lists it as an app you get through your partner. Your partner's copy is the developers' sample S40 under the partner's own prefix, which takes the place of IVENDNEXT RCL in the names on this page (see About Retail Extensions). The install adds the record types IVENDNEXT RCL Settings, Recall Notice, Recall Store Progress, Disposal Record and Expiry Worklist, eight fields on Item, Purchase Receipt and Stock Entry, two buttons, three checks, a workflow and five save rules on the Disposal Record, two reports, two print layouts, and the roles IVENDNEXT RCL Integration and IVENDNEXT RCL Recall Officer. Everything comes in switched off.
-
Make a user for the app. Tick Is Desk User, give it the role IVENDNEXT RCL Integration alone and save. Then generate its API key: on the user, open Settings and press Generate Keys.
-
Search Desk for Role Permissions Manager. Give IVENDNEXT RCL Integration these rights:
Record type Right Why Batch Read, Write the lots, and blocking them (it writes only Disabled) Item Read expiry tracking, shelf life, the minimum and the schedules Serial and Batch Bundle Read where each lot is and which sales moved it POS Invoice, Sales Invoice, Delivery Note Read the customers a recalled lot reached Stock Entry Read what earlier disposals drew on a Disposal Record Retail Save Rule Read that the Disposal Record's lock is on -
Search Desk for Registered Application and open IVENDNEXT RCL Recall feed. Choose the app's user as its Application User and save. Leave the feed switched off.
-
Fill in the settings (below), and give IVENDNEXT RCL Recall Officer to whoever runs recalls and disposals.
-
Switch the services, the buttons and the save rules on (below).
-
Your partner connects the app to the service they host for you: on the app's record, Connect again.
Settings
Search Desk for IVENDNEXT RCL Settings and make the record Default.
| Field | What it does |
|---|---|
| Hours from UTC at the shop | Your site's own time zone: 3 for Nairobi or Riyadh, 4 for Dubai, 1 for Lagos, 2 for Cairo, −6 for Mexico City. It decides today for days left. |
| Minimum shelf life at receipt (days) | A lot received with fewer days left is refused, unless its line has a Letter of Undertaking. An item can set its own minimum, or be marked exempt. |
| Pack expiry required where the item has a shelf life | On by default: with a shelf life set, iVendNext can work a lot's expiry out from its manufacturing date, so the line must carry the date printed on the pack. |
| Supplier's invoice or credit-note number required | Supplier Delivery Note must be filled on every receipt and return. |
| ERP users | The users your ERP connector posts as, one per line. Never a person's own login. |
| Near-expiry window (days) | How far ahead the worklist looks. |
| Quarantine stores | One per line. Stock leaving one, except into another, is a disposal. |
| Recall clocks | For each class: start within (hours), complete within (days) and depth (Consumer, Retail or Wholesale). The defaults are Kenya's: 24 hours and 14 days for Class I. |
| The regulator's visit is needed for | Items with a listed schedule (default, read from the item's schedules), Every disposal, or No disposal. |
Switch it on
- Search Desk for Retail Extension Subscription. Open each of the five services (Recall service, Expiry worklist service, Shelf life at receipt, Disposal with the regulator's visit, No disposal by a stock count), read what it is sent, tick the consent and switch it on.
- Search Desk for Retail Desk Action. Switch on Block these batches and Refresh.
- Search Desk for Retail Save Rule. Switch on the five rules whose names start with IVENDNEXT RCL. Until the lock rule is on, every disposal is refused.
- Choose the app's print layouts as the defaults: on Customize Form for Recall Notice and Disposal Record, set Default Print Format.
Recall
- Open IVENDNEXT RCL Recall Notice and make a new one: the regulator's reference, who issued it, the class, when it was received, and the lots it names. Save it.
- Press Block these batches and confirm. The answer counts what happened, such as "Blocked 2 lots. Stock found in 2 stores; 3 sales to 3 customers."
- The notice now shows what was done to each lot, the stock found per store and the customers supplied. Start by and Complete by are filled from the class's clock. Each selling store has a Recall Store Progress record.
- Each store moves its stock into a quarantine store with an ordinary stock transfer, then writes what it moved and marks its record Done.
- Press the button again at any time: nothing is written to a lot twice, and the stock and customers are read again.
- For the regulator, print the notice with the IVENDNEXT RCL Recall Report layout, and run the report IVENDNEXT RCL Recall progress.
Disposal
- When the regulator's officer comes, the Recall Officer makes an IVENDNEXT RCL Disposal Record for the quarantine store: the reason, the lots and quantities. Then the visit: officer, authority, the officer's identification, the date of the visit, the signed form, and who attested for the shop. Where the regulator must be told first, the date it was told.
- Use Record the visit. The record is locked from then on.
- Make the stock entry that disposes of the stock and choose the record in Disposal record. It is submitted only if the record covers each lot and quantity, after what earlier disposals drew on it.
Goods-in
When a receipt is refused, the reason says what to do: type the date printed on the pack in Pack expiry, tick Letter of Undertaking and type its days, or refuse the goods. A Letter of Undertaking with no days is refused.
Worklist
Open IVENDNEXT RCL Expiry Worklist, make one for a store (or none, for every store) and press Refresh. Set each lot's action as you work it; a refresh keeps it. A medicine lot with no expiry date is listed with whether a recall names it: enter the pack's date, then enable it, unless a recall names it.
What leaves your shop
Its service runs where your iVendNext partner hosts it, in your region, never with CitiXsys. After the install, and when you press Connect again, your site sends the service its address, the signing keys and the API key of the app's user.
On each press it is sent the notice's name, class, depth, dates and lots, or the worklist's store and window. On each receipt, stock entry and count it is sent their names, dates, and their lines' items, quantities, stores, lots and bundles. With the app's user it then reads lots, items, bundles and the sales that moved a recalled lot, including the names of the customers who bought it, and writes a lot's Disabled box and the app's own records, the customers onto the notice. It keeps nothing between calls.
Limits
- A Desk delivery or invoice that names a blocked lot by hand is not refused yet. Online tills never offer a blocked lot; an offline till keeps it until it next syncs.
- A lot with no expiry date is not blocked by the app (saving it would make iVendNext guess a date): enter the pack's date, then press again.
- While the service is down, receipts, stock entries and counts wait, an ERP connector's stock sync included.
- A recall reaching thousands of sales may not finish within 10 seconds: press again.
- A disposal refused because the visit was not yet recorded gives the same answer for 5 minutes if submitted again unchanged.
- Shelf-life check exempt and the Letter of Undertaking can be ticked by whoever receives.
- A schedule set only on an item group is not read: give the item its own schedule, or choose Every disposal.
- Handheld's receipt cannot send the supplier's number or the pack's date: a shop receiving on Handheld turns those two settings off.
How to remove it
- In the App library, find the app under Installed and press Details.
- On the app's record, press Export and uninstall and confirm. iVendNext first exports the app's records to a file, and tells the service the app was removed.
- iVendNext removes the record types, the fields, the buttons, the checks, the save rules and the feed registration. Lots the app blocked stay blocked.
- Make a new API key for the app's user, or disable the user.