n8n-nodes-prestashop8 2.6.1 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,6 +30,7 @@ A comprehensive n8n community node for PrestaShop 8 integration with automatic X
30
30
  - ✅ **25+ resources supported**: products, customers, orders, stocks...
31
31
  - ✅ **Advanced filtering** with 10 search operators
32
32
  - ✅ **Raw mode** for debugging and advanced use cases
33
+ - ✅ **Retry on error** to automatically recover from transient failures (timeouts, connection drops)
33
34
 
34
35
  ## 🚀 Quick Start
35
36
 
@@ -137,6 +138,7 @@ npm install n8n-nodes-prestashop8
137
138
  - **Sorting**: `[price_ASC]`, `[date_add_DESC]`
138
139
  - **Fields**: `full`, `minimal`, or custom
139
140
  - **Debug**: URL, headers, timeout
141
+ - **Retry on error**: automatically retry a call that fails on a transient error — network timeout, connection drop, 5xx server error or 429 rate-limit (never on 4xx). Configurable max attempts and fixed delay between attempts; the retry budget is reset for each failing call. Each attempt is logged to the n8n server logs.
140
142
 
141
143
  ## 🎯 Usage Examples
142
144
 
@@ -169,7 +171,7 @@ Cron → PrestaShop 8 Node → Calculate KPIs → Email Report
169
171
  ### Common Problems
170
172
  - **401 Unauthorized** → Check API key and permissions
171
173
  - **404 Not Found** → Verify base URL and Webservices enabled
172
- - **Timeout** → Increase timeout in debug options
174
+ - **Timeout** → Increase timeout in debug options, or enable **Retry on error** to auto-recover from transient timeouts
173
175
 
174
176
  ### Get Help
175
177
  - 🐞 **[GitHub Issues](https://github.com/PPCM/n8n-nodes-prestashop8/issues)** - Bugs and questions
@@ -276,9 +276,12 @@ class PrestaShop8 {
276
276
  const filterValue = filter.value !== null && filter.value !== undefined ? String(filter.value).trim() : '';
277
277
  const format = http_1.FILTER_OPERATOR_FORMATS[filter.operator];
278
278
  if (format) {
279
- if (!format.requiresValue || filterValue) {
280
- filterParams[key] = format.template.replace('{v}', filterValue);
279
+ // Guard: operators that require a value must not be silently dropped
280
+ // when the value is empty, otherwise PrestaShop returns all records.
281
+ if (format.requiresValue && !filterValue) {
282
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Filter operator "${filter.operator}" on field "${filter.field}" requires a value. Use the "IS_EMPTY" operator to match empty fields.`);
281
283
  }
284
+ filterParams[key] = format.template.replace('{v}', filterValue);
282
285
  }
283
286
  else if (filterValue) {
284
287
  filterParams[key] = `[${filterValue}]`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-prestashop8",
3
- "version": "2.6.1",
3
+ "version": "2.7.0",
4
4
  "description": "Nœud n8n personnalisé pour PrestaShop 8 avec support CRUD complet et conversion XML/JSON automatique",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
@@ -86,7 +86,7 @@
86
86
  "brace-expansion": "^1.1.13",
87
87
  "uuid": "^14.0.0",
88
88
  "axios": "^1.16.0",
89
- "form-data": "^4.0.4",
89
+ "form-data": "^4.0.6",
90
90
  "follow-redirects": "^1.16.0"
91
91
  }
92
92
  }