Added product fields: stockQuantity, discountAmount, promotionTag, variant, isMarketplaceProduct, longDescription, preparationInstructions and safetyWarning (null when the store does not provide them).
Fixed category and subcategory showing internal codes instead of names. Names now come from detailed product data; the codes are kept in attributes.categoryCodes.
Fixed brand, regular price and availability being empty on some products, and detail pages now return the full image gallery. Because brand and regular price changed for these products, incremental runs may report them as UPDATED once.
Arabic-language detail pages now return allergens, package type, description and storage conditions.
Fixed a basket of barcodes (GTIN/EAN) in Product IDs returning no products. Barcodes are now matched to the store's products, and barcodes the store does not sell are named in the run log.
Webhook and notification deliveries now go out directly instead of through the scraping proxy, so they arrive more reliably.
Fixed the ingredient filter returning no products unless detailed product data was switched on. The filter now reads full product details automatically.
Fixed detailed product data (barcode, brand, ingredients, nutrition, allergens, description) coming back empty, and product URL / product ID inputs returning no products, after a change on the store's website.
Runs now stop collecting once your maximum cost per run is reached, so they finish cleanly instead of being aborted.