- 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 adult products dropshipping with Dreamlove, leading Spanish B2B wholesaler in Europe: CSV import of 12,800+ products (sextoys, lingerie, lubricants, BDSM, sensual cosmetics) in English.
✅ Variable multi-level category hierarchy (3-4 levels via "|")
✅ Multi-images up to 10 per product (cover + images_csv)
✅ Automatic weight + dimensions extraction from XML columns
✅ minimum_units_per_order → PS minimal_quantity (native field)
✅ RRP provided by Dreamlove (recommended_sale_price)
✅ 205 MB CSV natively handled · 24/7 CRON · Compatible PS 1.7 to 9.x · PS9 BO fix included
You configure. The module imports. You sell. 💜
demos.akimania.com/ps9-dreamlove/PrestaShop dropshipping module DREAMLOVE
🌐 Source catalog available in:
🎯 Single-import, your choice. The supplier provides one catalog per language. You select the one that fits your market during setup (FR for French-speaking store, EN for international…). Multi-market possible with a 2nd module instance.
The module that automates from A to Z your adult dropshipping with Dreamlove, leading Spanish B2B wholesaler, on PrestaShop
PrestaShop 1.7 → 9.x · 12,800+ references · 4-level hierarchy · XML weight+dim · 24/7 CRON
Are you launching or running an online sex shop in the UK, US, Canada or Australia? You work with Dreamlove (Spain's leading B2B adult products wholesaler in Europe) and you spend your days copying 12,000+ product sheets from their portal, manually rebuilding their 4-level category hierarchy in PrestaShop, uploading multiple images per product, extracting weight and dimensions from their XML tags, recalculating your sale prices with your margin?
With the Dreamlove adult products dropshipping module, everything becomes automatic. You enter the Dreamlove CSV URL, click "Start import", and the module creates your 12,800+ PrestaShop products before your eyes, in real time, with up to 10 images each, their multi-level hierarchy preserved, weight and dimensions extracted from XML columns.
| Task | ❌ Without the module | ✅ With the module |
|---|---|---|
| Import 12,800 adult references | 200h+ manual, copying from the Dreamlove portal | 1 click, ~6h in the background |
| 3-4 level hierarchy per product | Manual creation of each level in PS | Split "|" + automatic recursive creation |
| Multi-images (up to 10/product) | Manual download image by image | Auto from main_image_url_big + images_csv |
| Weight extraction from XML | Manually parse <shipping_weight> for each product | Auto regex + grams → kg conversion |
| Dimensions extraction from XML | Rebuild width/height/depth manually | Auto regex + mm → cm conversion |
| minimum_units_per_order (PS field) | Manual entry in each BO product sheet | → minimal_quantity filled automatically |
| Margins & sale prices | Excel calculation product by product | RRP provided by Dreamlove (recommended_sale_price) |
| 205 MB CSV (12,800 lines + heavy XML) | PHP out of memory / Apache timeout | Built-in memory/time optimizations |
| Original image PrestaShop 9 BO | Broken image in PS9 BO (official bug) | PS9 BO fix included: 1:1 copy of original file |
You launch or operate an adult store in the UK, US, Canada, Ireland, Australia and want to multiply your catalog (12,800+ products) without managing stock.
Dreamlove is a historic player in Spanish B2B adult, with mature European logistics and a wide catalog covering all international brands (BATHMATE, PRETTY LOVE, FUN FACTORY, JE JOUE, SHOTS MEDIA…).
You manage 1,000+ references manually and lose time on operations. The module gives you back dozens of hours per week to focus on acquisition.
The Dreamlove CSV exposes the main_category column as N1|N2|N3|N4 with variable depth (3 or 4 levels observed). The module recursively creates each level under the previous one, with their exact CSV name, without imposing an artificial fixed tree.
Concrete example — product BATHMATE HYDRO 7 HERCULES CLEAR (sku D-196690):
SEXTOYS|Sex toys for men|Penis accessories|Penis Enlarger Pump
→ product placed in:
SEXTOYS › Sex toys for men › Penis accessories › Penis Enlarger Pump
The Dreamlove CSV provides two image columns:
| Slot | CSV Source | Description |
|---|---|---|
| Image 1 (cover) | main_image_url_big | High-resolution URL of the main photo |
| Images 2-10 | images_csv (split by "|") | Additional URLs: packaging, accessories, usage scenes… |
getimagesize(): JPEG/PNG/GIF/WebP, corrupted files rejectedImageManager::resize()<id>.jpg file in addition to variants — without this fix, the image does not display in the PS9 BO product edit page (known PS9 bug)Unique feature of this module. Dreamlove encodes weight and dimensions in structured XML columns rather than in simple numerical columns. The module automatically extracts these values with robust regex and normalizes them to PrestaShop units.
| CSV Column | Raw format | PS field filled |
|---|---|---|
weight_info_xml | <shipping_weight unit="g">326</shipping_weight> | Product->weight = 0.326 kg(g → kg auto) |
dimensions_info_xml | <size unit="mm"><width>96</width><height>306</height><depth>93</depth></size> | width=9.6 height=30.6 depth=9.3 cm(mm → cm auto) |
The CSV column minimum_units_per_order is read and applied automatically to Product->minimal_quantity — a native PrestaShop field often forgotten by competing import modules.
When a customer wants to buy a pack of condoms sold in minimums of 12, or a BDSM set with a minimum of 2, the "Add to cart" button is automatically blocked until the entered quantity reaches the minimum. No need to configure this manually for 12,000 products.
Product->minimal_quantity filled at importThe Dreamlove catalog does not contain size/color combinations (each sku in D-XXXXXX format is a distinct finished product). Advantages:
Dreamlove provides the html_description column with a long description in pre-formatted HTML (paragraphs, lists, bold) — directly usable on the front without rework. If the CSV description is empty or too short (< 30 characters of text excluding HTML), the module automatically generates a structured HTML description from the name, brand, category and SKU — so you never have a ghost product page.
The module never overwrites a description provided by the supplier.
The scenario that changes everything:
→ No more lagging page. No more anxiety. You see everything that happens.
Dreamlove advantage: the CSV provides a real recommended retail price (recommended_sale_price), so RRP mode is enabled by default.
| Mode | Description |
|---|---|
| RRP ⭐ (default) | Dreamlove recommended retail price (recommended_sale_price) applied as is — the simplest, and what most competing sex shops use |
| Tiers | Different % depending on net purchase price tier (5 default tiers, configurable: 0-15€/15-30€/30-60€/60-120€/120€+) |
| Fixed markup | A single % applied to all products |
| Wholesale | Net purchase price as is (B2B sale) |
{name}, {brand}| CRON Action | Role | Recommended frequency |
|---|---|---|
full_import | Full catalog import (creations + light updates) | 1×/day |
light_sync | Update price + stock + availability of products already imported (light mode) | every 2-4h |
cleanup_logs | Purge logs > N days (configurable retention) | 1×/week |
Flagship brands of the Dreamlove catalog (excerpt):
Universes covered: sextoys (vibrators, dildos, plugs, masturbators, cockrings, penis pumps), sexy lingerie, BDSM & bondage, lubricants, sensual cosmetics, aphrodisiacs, libertine games, erotic accessories, intimate care — the entire adult product range covered by a single supplier.
Triple confirmation (dialog box + DELETE input + button). No "Orphan attributes" checkbox (Dreamlove has no size/color combinations). No "Categories" checkbox: the tree is managed by the module and recreated if manually deleted from the BO.
DlCompat compatibility layer + PS9 BO image bug fix includedDownload the ZIP, install via the BO. Auto-creation of 5 tables, the Dreamlove supplier, the CRON key. The category hierarchy will be built on the fly at import (nothing is pre-created).
Go to Settings, paste the URL provided by Dreamlove (placeholder: https://store.dreamlove.es/exports/dreamlove-en.csv), configure the image-in-description option.
RRP mode by default (recommended_sale_price). You can also choose Tiers (5 brackets) / Fixed markup / Wholesale. Customizable SEO templates with {name}/{brand}.
Click "Start import". Test mode 50 products first to validate, then full import 12,866 lines (~6h in the background). You see each product created before your eyes.
| PrestaShop | 1.7.x → 9.x (tested on PS 9.0) |
| PHP | 7.4 minimum, recommended 8.1+ |
| MySQL / MariaDB | 5.7+ / 10.3+ |
| cURL | Enabled (CSV + images download) |
| PHP memory_limit | Override built into prepare (set to -1 during parse), no strict requirement |
| Disk space | ~250 MB available in uploads/state/ for the prepare JSON cache |
| Multi-shop | Compatible (forces CONTEXT_ALL for deletion) |
| Hooks used | None (no event chain pollution) |
| Class override | None (preserves your other modules) |
| AdminController | None |
| BO sidebar tab | None (does not pollute your menu) |
| Dreamlove B2B account | Account required for billing and CSV access |
| CSV URL | Request from your Dreamlove sales rep (CSV URL per language) |
A: Yes, fully compatible with PS 9.x. The module handles the PS9-specific migration where meta_keywords was removed (automatic switch 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 in addition to resized variants).
A: The module forces set_time_limit(0) and memory_limit=-1 at the start of the prepare phase to handle large catalogs without constraint. The 12,866 lines are parsed in memory, enriched with 14 synthetic columns (categories, 10 images, weight, dimensions), then serialized as JSON in uploads/state/. The import itself loads 1 line at a time (AJAX architecture), so the memory footprint stays low on the worker side.
A: The module splits the main_category string by the "|" separator. Each trimmed segment becomes a level of the PS tree, created under the previous one. For SEXTOYS|Sex toys for men|Penis accessories|Penis Enlarger Pump, you get 4 levels: SEXTOYS (under root) → Sex toys for men (under SEXTOYS) → Penis accessories (under Sex toys…) → Penis Enlarger Pump (leaf category = id_category_default of the product). The full mapping is stored in DB for subsequent imports.
A: The module uses robust regex to parse the weight_info_xml and dimensions_info_xml columns. For weight: preg_match('/<shipping_weight[^>]*>(\\d+(?:[.,]\\d+)?)<\\/shipping_weight>/i'), value in grams divided by 1000 → kg. For dimensions: 3 similar regex on <width>, <height>, <depth>, values in mm divided by 10 → cm. If data is missing, the PS field stays at 0.
A: On the front, when a customer wants to buy a pack of condoms sold in minimums of 12, or a BDSM set requiring at least 2 to qualify for a wholesale discount, the "Add to cart" button is automatically blocked until the entered quantity reaches the minimum (native PS validation via Product->minimal_quantity). The module fills this field automatically from the CSV column — no need to do it manually for 12,000 products.
A: Yes. Automatic light mode: existing products are detected by their sku and only their price + stock are refreshed. Your descriptions, images, categories and tags are not overwritten — you keep your customizations. Ideal for a daily refresh (or via CRON light_sync).
A: Yes, the "1 product = 1 AJAX call" architecture guarantees that no call exceeds 2-3 seconds. The only critical moment is the prepare phase (parsing the 205 MB CSV in memory) — the module forces memory_limit=-1 at that precise moment. If your host restricts that override, ask them to disable it for the module or take a VPS for very large catalogs.
A: Import tab → Selective deletion → check "Imported products" → DELETE. You can add "Orphan brands / Supplier" for full cleanup. Triple confirmation to avoid mistakes.
A: Dreamlove provides a separate CSV URL per language. The module loads the EN version by default. To import in another language, configure the URL of the relevant language in Settings. If you need simultaneous multi-language imports, ask us for a module variant.
A: "Stop" button available during import (UI) and during CRON (flag file). Clean stop at the end of the current product, state saved for resume.
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.
A: Yes, but uninstall intentionally keeps your imported products (irreversible loss avoided). The "Selective deletion" zone allows granular cleanup with triple confirmation: products / brands / supplier / logs, independent.
The Dreamlove adult products dropshipping module is the most complete tool to sell the 12,800+ Dreamlove references (sextoys, lingerie, lubricants, BDSM, sensual cosmetics) on PrestaShop. Once configured, it automatically imports the catalog at your pace with 4-level hierarchy, up to 10 images per product, weight and dimensions extracted from XML, automated minimum_units_per_order.
⚡ 3-MIN INSTALL · 📚 REAL-TIME IMPORT · 🛡️ COMPATIBLE PS 1.7 → 9 · 🇬🇧 ENGLISH SUPPORT
DB tables created (5): wp_dreamlove_history, wp_dreamlove_import_errors, wp_dreamlove_product_meta (sku unique = D-XXXXXX), wp_dreamlove_combination_meta (unused — no combinations), wp_dreamlove_category_mapping (csv_path unique = normalized "N1 > N2 > N3 > N4" string)
PS configurations: WPDL_SETTINGS (JSON), WPDL_SUPPLIER_ID, WPDL_CRON_KEY, WPDL_LAST_IMPORT_AT, WPDL_LAST_IMPORT_COUNT, WPDL_CRON_LAST_*
Dreamlove CSV (50 UTF-8 BOM columns): product_id, discharge_date, date_of_last_modification, name, sku, description, html_description, currency, dealer_price, price, vat_percentage, price_with_taxes, shipping_costs, availability, there_is_stock, available_stock, main_category, product_url, brand, ean, delivery_term, kind_of_promotion, main_image_url, main_image_url_big, minimum_units_per_order, maximum_units_per_order, minimum_amount_per_order, maximum_amount_per_order, unit_of_measurement, release_date, with_serial_numbers, prepaid_reservation, on_sale, brand_hierarchy, weight_info_xml, offer_info_xml, dimensions_info_xml, cooling_info_xml, novelty_info_xml, packaging_info_xml, barcode_info_xml, categories_info_xml, translations_xml, images_csv, variations_info_xml, recommended_sale_price, hs_intrastat_code, pack_info_xml, recommended_sale_price_with_taxes, last_column
Architecture: 5 clean PHP classes (DlCompat, DlCategoryTaxonomy, DlCategoryMapper, DlFeatureMapper [dead code by design], DlCsvImporter) + main module + AJAX router + CRON. No PrestaShop core class override. Code commented in French.
Synthetic columns generated in parseCsvToArray: 14 columns added to each line after reading — CATEGORY (= main_category as is, the mapper will split by "|"), IMG_1..IMG_10 (cover + extras images_csv deduped), WEIGHT_KG (XML grams /1000 extract), WIDTH_CM, HEIGHT_CM, DEPTH_CM (XML mm /10 extracts).
Shared engine compatibility aliases: sku → sku, name_fr → name, description_fr → html_description, brand → brand, parent → sku, price → price, recommended-retail-price → recommended_sale_price, qty → available_stock, min_qty → minimum_units_per_order, category → IMG_CAT_SYNTH, image-url-1..10 → IMG_*, weight/width/height/depth → SYNTH_*.
Category mapping (DlCategoryMapper::resolveByName): split main_category by "|" → array of 1 to N segments. Recursive creation under root via ensureCategoryByName(). Full mapping cache in wp_dreamlove_category_mapping with normalized key. No fuzzy matching or fallback (direct and deterministic mapping).
Security: pSQL() everywhere, uploads/ folder protected, image format validation (getimagesize), native PS CSRF on AJAX, systematic HTML escaping (htmlspecialchars), hash_equals() on CRON key.
PS9-specific compatibility: automatic meta_keywords → ps_tag/ps_product_tag migration via Tag::addTags(), handling of the Product::delete() quirk that returns false in multi-shop, PS9 BO original image fix (1:1 copy of the <id>.jpg file before the ImageManager::resize variants).
Large CSV optimization: @set_time_limit(0); @ini_set('memory_limit', '-1'); called at the start of parseCsvToArray() to handle the 205 MB / 12,866 lines / heavy XML columns without constraint.
📦 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-ECO-XML
Brand: WebPoint
Reference: wp-watchimport-dropshipping-montres-ila-uhren-csv-prestashop
Brand: WebPoint
Reference: WP-BTS2026-DROP
Brand: WebPoint
Reference: WP-BGS-XML
Brand: WebPoint
Reference: WP-ETC-FRX
Brand: WebPoint
Reference: WP-DSX-AFR
Brand: WebPoint
Reference: WP-TFC-CSV
Brand: WebPoint
Reference: WP-BXP-FRX
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 adult products dropshipping with Dreamlove, leading Spanish B2B wholesaler in Europe: CSV import of 12,800+ products (sextoys, lingerie, lubricants, BDSM, sensual cosmetics) in English.
✅ Variable multi-level category hierarchy (3-4 levels via "|")
✅ Multi-images up to 10 per product (cover + images_csv)
✅ Automatic weight + dimensions extraction from XML columns
✅ minimum_units_per_order → PS minimal_quantity (native field)
✅ RRP provided by Dreamlove (recommended_sale_price)
✅ 205 MB CSV natively handled · 24/7 CRON · Compatible PS 1.7 to 9.x · PS9 BO fix included
You configure. The module imports. You sell. 💜