- New
Reference: WP-VI-CON-V1
Brand: WebPoint
Reference: BOUT-93K2X
Brand: WebPoint
Reference: EXT-CRMAX-MULTILANG
Brand: WebPoint
Reference: EBP-2025-PRO
Brand: WebPoint
Turnkey module to automate your electronic components dropshipping with Velleman Group, the historic Belgian wholesaler (since 1976) and European leader in components, modules, kits and audio: automated FTP import of up to 6,000 SKUs (resistors, capacitors, LEDs, Arduino/Raspberry modules, educational kits, pro audio, stage lighting, measurement tools).
✅ Individual FTP connection per reseller (5 secure fields)
✅ Multi-images up to 25 views/product via 2nd CDN CSV (hidden URL)
✅ Auto-generated PREMIUM 10-section description (technical cards, GPSR, CTA…)
✅ 10 hierarchical category levels · 10 volume-discount price tiers
✅ EU GPSR 2024 compliance via dedicated form · 24/7 CRON · Compatible PS 1.7 to 9.x
You configure. The module imports. You sell European electronics online. 🔌
PrestaShop dropshipping module VELLEMAN
The module that automates from A to Z your dropshipping of components, modules, kits and audio on PrestaShop
PrestaShop 1.7 → 9.x · ~6,000 products · secure FTP · 25 images/product · 24/7 CRON · EU GPSR 2024
Are you launching an electronic components store, a specialized Arduino / Raspberry / DIY makers website, an e-commerce site for stage lighting or pro audio? You work with Velleman Group (historic Belgian wholesaler founded in 1976, European leader in components, modules, educational kits, sound systems, stage lighting, measurement tools) and you spend your days re-typing 6,000 product sheets, manually uploading 25 photos per product, recreating each category across 10 hierarchical levels, hand-parsing detailed technical specs (Physical / Electrical / Technical / Installation), managing 10 volume-discount price tiers based on your purchase volume?
With the Velleman dropshipping module electronic components modules kits FTP, everything becomes automatic. You enter your Velleman FTP credentials (host, port, user, pass, path of your custom file), you click "Start import", and the module downloads your 64-column Windows-1252 CSV, converts it to UTF-8 cell by cell, downloads the 2nd image-mapping CSV from the Velleman CDN (hardcoded URL hidden client-side), and creates your ~6,000 PrestaShop products in a 10-level tree generated on the fly, each with its 10-section PREMIUM sheet (brand identity banner + EAN + status, short intro, key points, technical spec cards, dimensions, packaging, origin, eco-contribution, EU GPSR 2024 compliance, supplier CTA), up to 25 images per product, and European GPSR compliance powered by your dedicated form.
| Task | ❌ Without the module | ✅ With the module |
|---|---|---|
| Import 6,000 electronic SKUs | 200h+ manual, copy from Velleman B2B portal | 1 click, ~5h in the background via auto-restarting CRON |
| Source catalog download | Manual download via FTP / B2B extranet + BO upload | Automatic FTP connection with 5 fields (host, port, user, pass, path) |
| Multi-images (up to 25 per product) | Manual download from CDN, server copy, PS upload one by one | 2nd Velleman CDN mapping CSV + auto-download · 1st = cover |
| Windows-1252 encoding (legacy) | Broken French characters, accents in mojibake (« é », « ° ») | Automatic cell-by-cell conversion via mb_convert_encoding() |
| 64-column CSV without header | Manual parsing by numeric index, errors guaranteed | Symbolic mapping in constants (COL_SKU, COL_NAME, COL_BULLETS…) |
| Comma decimals + dotted prefix (.354) | Float cast errors, prices at 0 or absurd | parseDecimal(): comma → dot + leading dot fix (.354 → 0.354) |
| Detailed technical specs (col 63) | Plain text, unreadable, not SEO-friendly | Parsing into cards by group (Physical / Electrical / Technical / Installation) |
| EU GPSR 2024 compliance | EU fine risk for missing manufacturer details on sheets | Dedicated 5-field form (manufacturer, address, email, phone, EU rep.) — automatic display |
| 10 Velleman volume-discount price tiers | Random guess for cost price, unstable margin | Purchase tier selector (5/25/100/500…) in Settings |
| Category hierarchy (10 levels) | Manual creation, hours to align nomenclature | On-the-fly creation level by level under your PS root |
| Refresh prices/stock | Redo everything from scratch every day | light_sync CRON every 2-4h: prices+stock update only (light mode) |
You sell resistors, capacitors, LEDs, transistors, microcontrollers (Arduino, Raspberry, ESP32), sensors, expansion modules. Velleman offers a historic range that is a European reference in these maker / DIY / education niches.
Robotics kits, soldering kits for beginners, Arduino teaching kits, educational projects for middle/high schools and engineering schools. Velleman EDU is a range dedicated to education for 30 years.
Amplifiers, speakers, microphones, mixers, LED stage projectors, effect lasers, smoke machines. Velleman offers a pro/semi-pro audio range (HQ Power, Vonyx, Skytec, Showtec, BoomTone DJ) in high demand across Europe.
Multimeters, oscilloscopes, soldering irons, pliers, precision screwdrivers, magnifying glasses, USB microscopes. Measurement and repair tools for technicians, hobbyists, technical schools.
IP cameras, motion detectors, wired/wireless alarms, sirens, access control, lighting management. A growing niche with PERFECT (Velleman range dedicated to security).
Velleman specifics. Each partner reseller receives a customized CSV file on the Velleman FTP server, with their own pricing terms (volume-discount tiers specific to your account). The file has a unique name (e.g.: YourFile.csv). FTP credentials (host, port, user, pass) are never shared and remain strictly individual.
Solution adopted by the module: 5 FTP fields in Settings, never hardcoded, password masked in the database and in JSON returns. "Test FTP connection" button that validates authentication, passive mode and file accessibility live.
5 FTP fields: - Host : ftp.velleman.eu (or regional variant) - Port : 21 (default, editable) - User : your Velleman B2B login - Password : masked in the database, never displayed in clear - Path : /YourFile.csv
ftp_connect + ftp_login + ftp_pasv (compatible with virtually all firewalls)ftp_size) before download to reject empty/corrupted filesftp://user:pass@host:port/path — robust and high-performanceThe Velleman CSV has 64 columns without a header (first record = data, not headings), encoded in Windows-1252 (European legacy) with semicolon separator. The module handles these inherited specifics:
COL_SKU=0, COL_NAME=1, COL_INTRO=2, COL_RECYCLE_NAME=23, …, COL_CAT_FROM=37, COL_CAT_TO=46, COL_PACKAGING=53, COL_STOCK=58, COL_BULLETS=61, COL_TECH_DETAILS=62. No more magic numbers, readable and maintainable code.mb_convert_encoding() with prior detection if already valid UTF-8uploads/state/full_import_rows/<idx>.json to allow precise resume after interruptionInnovation specific to the Velleman module: a 2nd image-mapping CSV is automatically downloaded from the public Velleman CDN (URL hardcoded in the code, never visible client-side) which associates each SKU to a list of product image URLs (up to 25 views). The module splits, validates each URL, and imports all images in order.
<id>.jpg in addition to variants (otherwise broken image in BO product edit page)The module automatically composes a visually rich product sheet, structured into 10 individually toggleable sections via switches in the Options tab. Each section has its own design, colors, icons, and SEO/conversion goal:
| Section | Description |
|---|---|
| 🏷️ Identity banner | Colored header block: brand, reference, EAN + status badge (New / Coming soon / In stock) |
| 📝 Short intro | Summary description provided by Velleman (col 3) — 1-2 sentences for general context |
| ✨ Key points (bullets) | Transforms the "•" of the long description field into a styled bullet list (blue frame) |
| 🔬 Technical cards | Parses "Detailed specifications" (col 63) into visual cards by group (Color, Voltage, Capacity, Pitch, Mounting…) |
| 📐 Dimensions & weight | Width / height / depth / weight table from columns 55-58 |
| 📦 Packaging | Packaging type (Bulk/Pack), order multiple, qty per inner/outer carton |
| 🌍 Origin + HS Code | Country of origin + Intrastat customs code (useful B2B + intra/extra-EU trade compliance) |
| ♻️ Eco-contribution | WEEE / environment block (cols 23-27) — customer transparency, environmental compliance |
| ✅ GPSR compliance | Manufacturer + EU representative details — sourced from your dedicated form in Settings |
| 📞 Supplier CTA | Bottom-of-sheet block: "A question?" + store name + clickable phone + warranty duration |
All sections can be enabled/disabled individually in the Options tab. You can enable everything for very rich sheets, or turn everything off except identity + CTA for a clean look.
The European Union's GPSR (General Product Safety Regulation), in force since December 13, 2024, requires all e-commerce sellers in the area to display the manufacturer's contact details (and the EU representative's if the manufacturer is outside the EU) on each product sheet. Failure to comply = fine.
Solution adopted by the module: a dedicated panel in the Settings tab with 5 fully optional fields you fill in once. The contact details automatically display on all Velleman product sheets.
mailto:)tel:)Smart conditional display: the GPSR section only displays in product sheets if at least one field is filled in. You can start without GPSR, the module will not crash. Light red visual format to highlight its regulatory nature.
Velleman offers up to 10 volume-discount price tiers based on purchase quantities (typically: 1, 5, 10, 25, 50, 100, 250, 500, 1000, 5000+). Each tier has its own pre-tax price negotiated in your Velleman B2B contract.
Solution adopted by the module: a selector in Settings to choose the tier matching your actual average purchase volume. The module uses this tier as the unique cost price to compute the final selling price according to your mode (margins / fixed / wholesale).
The Velleman CSV provides up to 10 "Category title 1..10" columns forming a deep linear hierarchy (root → child → grandchild → great-grandchild…). Each product belongs to a leaf at the end of a category chain.
Solution adopted by the module: on-the-fly creation of missing categories under your configured PrestaShop root. Lookup before creation (anti-duplicates) with optimized SQL query.
Example:
"Electronic Components & Accessories"
→ "Electronic components"
→ "Capacitors"
→ "Tantalum"
→ "Low height"
→ ...
id_category_default = deepest leaf, category_product filled with the entire chain (facetedsearch filters work at all levels)VlCompat::slug() (URL-safe, normalized accents)The scenario that changes everything:
→ No more lagging page. No more worry. You see everything that happens.
| CRON action | Role | Recommended frequency |
|---|---|---|
full_import | Full import (creations + light updates) | 1×/day (off-peak hour) |
light_sync | Update prices + stock + availability of already imported products | every 2-4h |
rebuild_tags | Rebuild PS tags on all already imported products (useful after tagging rule changes) | on demand |
cleanup_logs | Purge logs > N days (configurable retention) | 1×/week |
@ignore_user_abort(true)Velleman catalog product universe (excerpt by major families):
Velleman in-house brands: Velleman Kit (soldering kits), Velleman Modules, Vellight (lighting), HQ Power (pro audio), Vonyx, Skytec, Showtec, BoomTone DJ, PERFECT (security), Toolland (tools), Velleman EDU (education).
Product::delete() returns falseSingle or double confirmation depending on scope, with a dedicated Tools → Selective deletion tab. The category tree is preserved if you have non-Velleman products still using it.
Download the ZIP, install via the BO. Auto-creation of 3 tables, the Velleman supplier, the CRON key.
Request your credentials from your Velleman sales rep (host, user, pass, custom file path). Test the connection in 1 click.
Choose the cost price tier (5/25/100…). Margins mode (6 tiers) or fixed markup or wholesale. Fill in the optional GPSR form.
Options tab: enable/disable each of the 10 sections of the PREMIUM description (everything is ON by default).
10-product test mode first to validate, then full import of ~6,000 products (~5h via auto-restarting CRON).
| PrestaShop | 1.7.x → 9.x (tested on PS 9.0) |
| PHP | 7.4 minimum, 8.1+ recommended |
| MySQL / MariaDB | 5.7+ / 10.3+ |
| cURL + FTP ext | Enabled (FTP CSV download + CDN images) |
| Multi-shop | Compatible (forces CONTEXT_ALL for deletion) |
| Hooks used | None (no pollution of the event chain) |
| Class override | None (preserves your other modules) |
| AdminController | None |
| BO sidebar tab | None (does not pollute your menu) |
| Velleman B2B account | Partner reseller account required (individual FTP access + negotiated tiers) |
| FTP credentials | To be requested from your Velleman sales rep (host, port, user, pass, file path) |
A: Yes, fully compatible with PS 9.x. The module handles the specific PS9 migration where meta_keywords was removed (auto-fallback to ps_tag) as well as the PS9 bug where the original image does not appear in the BO product edit page (fix by 1:1 copy of the <id>.jpg file). All characters forbidden by PS9 (<>{}) are cleaned before Tag::addTags() to avoid rejection of the entire list.
A: It is Velleman's decision. Each partner reseller receives a customized CSV file on the Velleman B2B FTP server, with their individual pricing tiers. No public HTTPS URL. The module handles this specificity: 5 FTP fields, secure masked password, firewall-compatible passive mode, size check before download.
A: Velleman publishes a 2nd public CSV on its CDN that associates each SKU with a list of product image URLs (up to 25 views: front, back, side, in hand, packaging, diagram, manual…). The CDN URL is hardcoded in the module's code (never visible client-side) — you have nothing to configure. The mapping is reloaded automatically every 24h.
A: The module converts each cell from Windows-1252 to UTF-8 via mb_convert_encoding() (with auto-detection if the cell is already valid UTF-8). European technical characters (degrees °, micro µ, ohm Ω, plus-or-minus ±, etc.) are preserved. Comma decimals converted to dot. Dotted prefixes (.354) corrected to (0.354) to avoid absurd float casts.
A: Yes, since December 13, 2024 throughout the EU. However, the module does not force you to fill in the form — the 5 fields are all optional. You can start without GPSR (for your tests) and then fill in the form before going live. The section only displays in sheets if at least one field is filled in.
A: The selector in Settings offers the usual Velleman tiers (1, 5, 25, 100, 500). Choose the one that matches your actual average purchase volume. If you buy in lots of 25 on the majority of references, choose 25. The module will use this tier as the cost price to compute the final selling price (according to your margins/fixed/wholesale mode).
A: Yes, each of the 10 sections (identity banner, intro, key points, technical cards, dimensions, packaging, origin, eco-contribution, GPSR, CTA) can be enabled/disabled individually via switch in the Options tab. Everything is ON by default to offer the richest sheet, but you can turn everything off except identity + CTA for a clean look.
A: Yes. Automatic light mode (CRON action light_sync): existing products are detected via their unique SKU and only their price + stock are refreshed. Your descriptions, images, categories and custom tags are not rewritten — your BO modifications are preserved.
A: Tools → Selective deletion tab → check "Imported products" + "Empty categories" + "Velleman brand" + "Logs" → Run. Single or double confirmation depending on scope. The tree is preserved if it is used by non-Velleman products.
A: "Stop" button available during import (UI) and during CRON (flag file). Clean stop at the end of the current product, precise state save for resume at the exact stop line. The module survives even a server reboot thanks to the per-file JSON streaming.
A: Yes. Categories and products are created on all active shops. Deletion forces CONTEXT_ALL to avoid the PS9 quirk where Product->delete() returns false in multi-shop. The Velleman supplier is linked to all active shops via ps_supplier_shop.
A: Confirmed. The module only uses getContent() + AJAX. No pollution of the PrestaShop BO menu. No core class override. No hooks (the PS event chain remains intact). Your other modules are not impacted at install or uninstall.
The Velleman dropshipping module electronic components modules kits FTP is the most complete tool to sell the ~6,000 Velleman SKUs (components, Arduino/Raspberry modules, educational kits, pro audio, stage lighting, tools, security) on PrestaShop. Once configured, it automatically downloads your customized catalog via FTP, imports up to 25 images per product from the CDN, generates a 10-section PREMIUM description, and remains EU GPSR 2024 compliant.
⚡ 5-MIN INSTALL · 📚 REAL-TIME IMPORT · 🛡️ COMPATIBLE PS 1.7 → 9 · ✅ EU GPSR 2024 · 🇫🇷 FRENCH SUPPORT
DB tables created (3): wp_velleman_product_meta (unique sku, id_product, ean, last_price, wholesale, last_stock, dates), wp_velleman_history (event_type, message, JSON payload, date_add), wp_velleman_import_errors (error_type, csv_index, sku, message, payload).
PS Configurations: WPVL_SETTINGS (JSON 30+ keys), WPVL_SUPPLIER_ID, WPVL_CRON_KEY, WPVL_LAST_IMPORT_AT, WPVL_CRON_LAST_*.
Velleman CSV (64 columns Windows-1252, semicolon separator, no header): COL_SKU=0, COL_NAME=1, COL_INTRO=2, COL_RECYCLE_NAME=23, COL_RECYCLE_PRICE=24, COL_ECO_NAME=25, COL_ECO_PRICE=26, COL_CURRENCY=27, COL_HS_CODE=29, COL_ORIGIN=30, COL_OBSOLETE=31, COL_COMING_SOON=32, COL_NEW=33, COL_THUMB=34, COL_MAIN_IMG=35, COL_BRAND_CODE=36, COL_CAT_FROM=37, COL_CAT_TO=46, COL_QTY_INNER=47, COL_QTY_OUTER=48, COL_EAN=49, COL_PACKAGING=53, COL_WIDTH=54, COL_HEIGHT=55, COL_DEPTH=56, COL_WEIGHT=57, COL_STOCK=58, COL_BULLETS=61, COL_TECH_DETAILS=62.
Architecture: 8 PHP classes (VlCompat, VlCsvImporter, VlCategoryMapper, VlDescriptionBuilder, VlTagBuilder, VlFeatureMapper, VlMediaDownloader, VlParameterMapper) + main module + AJAX dispatcher + CRON. No PrestaShop core class override, no hook, no AdminController, no BO Tab.
FTP: download via VlCompat::downloadFromFtp() (curl URL ftp://user:pass@host:port/path). Connection test via ftp_connect + ftp_login + ftp_pasv + ftp_size. Password stored encrypted in WPVL_SETTINGS, masked in JSON returns (• repeated).
Encoding: Windows-1252 → UTF-8 conversion cell by cell via mb_convert_encoding() with prior detection if already valid UTF-8. parseDecimal(): comma → dot + leading dot fix (.354 → 0.354).
Multi-images CDN: VlCompat::downloadPicturesMappingCsv() downloads the 2nd mapping CSV from hardcoded URL VL_PICTURES_MAPPING_URL. 24h cache. loadPicturesMapping() returns array SKU → [URL1, URL2, …, URL25]. importMultiImages() calls imageUrlExists() (curl HEAD NOBODY) then ImageManager::resize, PS9 BO fix by 1:1 copy of the original file.
JSON streaming: streamParseToFiles() writes each CSV row to a file uploads/state/full_import_rows/<idx>.json. Allows precise resume after interruption + resilience to server reboots.
CRON auto-restart: via asynchronous curl loopback to the same endpoint with the secret key. Time-budget 60s default, @ignore_user_abort(true) for survival during the relaunch. Anti-concurrency lock via flock on uploads/state/cron_*.lock.
VlCategoryMapper: resolveChainOrCreate(array $names) over 10 levels. SQL lookup before Category::add() (anti-duplicates via SELECT by name + parent — without LIMIT 1 because PrestaShop adds it auto, duplicating = fatal SQL error). Slug via VlCompat::slug(). Multilingual (all active languages get the same name).
EU GPSR 2024: 5 settings fields (gpsr_manufacturer_name, gpsr_address, gpsr_email, gpsr_phone, gpsr_eu_representative) all optional. VlDescriptionBuilder reads the settings (never the CSV for GPSR — product decision). Conditional display: the section only appears if at least one field is filled. Email + phone made clickable (mailto: / tel:).
Security: pSQL() everywhere, uploads/ folder protected by index.php redirect, HEAD HTTP image validation, native PS CSRF on AJAX, systematic HTML escapes, hash_equals() on CRON key, FTP password masked in returns.
PS9-specific compatibility: auto-migration meta_keywords → ps_tag/ps_product_tag via Tag::addTags(), handling of the Product::delete() quirk that returns false in multi-shop, PS9 BO original image fix, <>{} cleanup before Tag::addTags() (otherwise Validate::isGenericName rejects the whole list).
Multi-shop: ensureSupplierExists() in direct INSERT SQL (bypass new Supplier() + ->add() that fails silently on PS9). Dynamic detection of the meta_keywords column in ps_supplier_lang (present PS7, removed PS9). Link ps_supplier_shop on all active shops.
📦 Module developed by WebPoint · webpoint.fr · Regular updates · Clean & commented code
play_circle_filled
play_circle_filled
play_circle_filled
play_circle_filled
Aucun avis pour ce produit pour le moment.
Reference: WP-TRD-CFR
Brand: WebPoint
Reference: PLG-2025-F5V987
Brand: WebPoint
Reference: WP-SDE-MVR
Brand: WebPoint
Reference: WP-ETC-FRX
Brand: WebPoint
Reference: wp-matterhorn-dropshipping-mode-lingerie-prestashop
Brand: WebPoint
Reference: WP-YNS-PLX
Brand: WebPoint
Reference: MOD-CUST-EXPO
Brand: WebPoint
Reference: MOD-COOK-BAR
Brand: WebPoint
Maîtriser le State Management en Clojure : Atoms, Refs, Agents et STM 🚀 Dans le monde de la programmation...
Lire la suiteSupervision Tree in Elixir: Achieving Infinite Depth and Immortal Hierarchies 🌳 In the world of concurrent...
Lire la suiteMaîtriser gRPC en Go : Services avec Protocol Buffers et Streaming RPCs 🚀 Dans le monde des microservices, les...
Lire la suite
Turnkey module to automate your electronic components dropshipping with Velleman Group, the historic Belgian wholesaler (since 1976) and European leader in components, modules, kits and audio: automated FTP import of up to 6,000 SKUs (resistors, capacitors, LEDs, Arduino/Raspberry modules, educational kits, pro audio, stage lighting, measurement tools).
✅ Individual FTP connection per reseller (5 secure fields)
✅ Multi-images up to 25 views/product via 2nd CDN CSV (hidden URL)
✅ Auto-generated PREMIUM 10-section description (technical cards, GPSR, CTA…)
✅ 10 hierarchical category levels · 10 volume-discount price tiers
✅ EU GPSR 2024 compliance via dedicated form · 24/7 CRON · Compatible PS 1.7 to 9.x
You configure. The module imports. You sell European electronics online. 🔌