- 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 Drop-sexy, a French wholesaler: CSV import of 3,768 erotic references (sexy lingerie, sextoys, lubricants, aphrodisiacs, naughty costumes, bondage…) from 20+ brands Mapalé, Obsessive, Dreamgirl, René Rofé, Fiore, PENTHOUSE…
✅ Mono-language native French (Windows-1252 BOM CSV, auto-conversion)
✅ 4 dynamic attribute pairs per variant: Capacity, Size, Color, etc.
✅ Native variant reference = PS Combination::reference field
✅ 9 photos per product · Auto-generated short description if empty (66% of catalog)
✅ Native CSV hierarchy · CRON 24/7 · Compatible PS 1.7 → 9.x
You configure. The module imports. You sell French passion online. 💋
demos.akimania.com/ps9-drop-sexy/PrestaShop dropshipping module DROP-SEXY
🌐 Source catalog available in:
🇫🇷 100% native French catalog. No automatic translation: texts written directly in FR by the supplier, ideal for 🇫🇷 FR / 🇧🇪 BE / 🇨🇭 CH / 🇨🇦 CA stores.
The module that automates your French adult products dropshipping on PrestaShop from A to Z, with dynamic multi-attribute variants
PrestaShop 1.7 → 9.x · 3,768 products · 20+ brands · 4 dynamic attributes · CRON 24/7
Are you launching an online sex shop, a sexy lingerie site, an e-commerce store for sextoys or naughty products? You work with Drop-sexy (French wholesaler specialized in adult products) and you spend your days re-typing 3,768 product sheets, manually rebuilding variants by capacity/size/color with their individual stock, uploading 9 photos per product, creating each variant as a distinct combination with its own reference?
With the Drop-sexy adult sextoys lingerie dropshipping module, everything becomes automatic. You enter the Drop-sexy CSV URL, click "Start import", and the module creates your 3,768 PrestaShop products in French with their multi-attribute variants (Capacity × Size × Color), their 9 photos, their per-variant stock, their native supplier reference, in a clean category tree built on the fly from the native CSV hierarchy.
| Task | ❌ Without the module | ✅ With the module |
|---|---|---|
| Import 3,768 adult references | 120h+ manual, copy from Drop-sexy portal | 1 click, ~3h in the background |
| Multi-attribute variants | Manual creation attribute by attribute | Auto via 4 dynamic Name/Value pairs per CSV row |
| Native reference per combination | Manual entry « D-234893-30ML », « D-234893-100ML »… | CSV "Variant reference" field used as-is |
| Empty short description (66% of catalog) | Ghost sheets, bad SEO, bounce rate | Auto-generated structured HTML from name + brand + cat |
| Native category hierarchy (3 CSV levels) | Manual creation Lingerie/Sets, Sextoys/Vibrators… | Native CSV reproduction (filter "Home/Root") |
| Multi-images (9 photos/product) | Manual download image by image | Auto from default image URL + image 1..8 |
| Windows-1252 BOM encoding | Broken characters in UTF-8 (« Mapalé » → « Mapalé ») | Automatic Win-1252 → UTF-8 conversion |
| Original BO image PrestaShop 9 | Broken BO PS9 image (official bug) | BO PS9 fix included: 1:1 copy of the original file |
| Refresh prices/stock | Redo everything from scratch every day | Automatic light mode: price+stock update only |
You sell sextoys, vibrators, plugs, handcuffs, BDSM masks, bondage accessories… Drop-sexy offers a wide catalog (sextoys, lubricants, aphrodisiacs, delay sprays) with French stock, fast and discreet delivery.
You offer erotic lingerie (bodystocking, sets, nightgowns, corsets, stockings, garter belts, naughty costumes). Brands Mapalé, Obsessive, Dreamgirl, René Rofé represent the bulk of the Drop-sexy catalog.
You target the French/Belgian/Swiss/French-Canadian market with native French product sheets (no DeepL). Drop-sexy provides human-written FR descriptions.
Unique feature of this module. Drop-sexy does not fix the attributes (just size×color like other suppliers) — it exposes 4 dynamic Name/Value pairs per CSV row. Depending on the product, it will be Capacity + Size, or Size + Color, or Capacity alone, or all 3 combined. The module automatically detects active pairs and creates the corresponding PS attribute groups on the fly.
Example 1 — Lubricant 2 capacities: Row 1: Product Id=21845, Reference=D-234893, Variant ref=D-234893-30ML → Variant: Attr name 3 = "Capacity", Attr value 3 = "30 ML" Row 2: Product Id=21845, Reference=D-234893, Variant ref=D-234893-100ML → Variant: Attr name 3 = "Capacity", Attr value 3 = "100 ML" → 1 PS product « Relaxing anal gel » with 2 combinations • combination ref = D-234893-30ML • combination ref = D-234893-100ML Example 2 — Lingerie 4 sizes × 1 color: Rows: Product Id=21402, Variant ref=MAL80025NUBKL/M/S/XL → Variant: Attr name 1="Size", Attr value 1=L/M/S/XL → Variant: Attr name 2="Color", Attr value 2="Skin/Black" → 1 PS product « Lingerie set » with 4 combinations • Size L × Color Skin/Black • Size M × Color Skin/Black • Size S × Color Skin/Black • Size XL × Color Skin/Black
Combination::reference (native PS field)color_group mode (for swatches on the front)StockAvailable::setQuantity()Drop-sexy exposes 3 hierarchical columns per product: "Category Name 1/2/3". The 1st is usually "Home" or "Root" (= the PS root, ignored by the module). Levels 2 and 3 form the real chain, created on the fly during import without an artificial fixed tree.
CSV columns: Category Name 1: Home ← ignored (PS root) Category Name 2: Wellness and aphrodisiacs Category Name 3: Lubricant & Cream & Aphrodisiac → PS leaf category created: Wellness and aphrodisiacs › Lubricant & Cream & Aphrodisiac
Main categories of the Drop-sexy catalog (excerpt):
| Level 2 Category | Typical sub-categories (level 3) |
|---|---|
| Women's Lingerie | Sexy Sets, Bodystocking, Dresses, Nightgowns, Naughty Costumes, Stockings/Tights, Garter Belts, Bras, Accessories |
| Sextoys | Vibrators, Stimulators, Anal plugs, Geisha balls, Vibrating eggs, Ergonomic, Couples |
| Wellness and aphrodisiacs | Lubricants, Creams, Aphrodisiacs, Massage oils, Delay sprays, Stimulants |
| Bondage / SM | Handcuffs, Ropes, Gags, Whips, Masks, BDSM Sets |
| Men's Lingerie | Thongs, Sexy boxers, Costumes, Accessories |
wp_dropsexy_category_mapping for subsequent imports (idempotent)Drop-sexy reality: 66% of products have an empty or too short "Short description without HTML". Without intervention, you end up with 2,500 ghost product sheets on the front — disastrous for SEO, bounce rate and conversion.
The module automatically detects empty or too short SDs (< 30 characters excluding HTML) and generates a structured HTML short description from the name + brand + category of the sheet.
<p> </p>), or a supplier placeholderdescription_short filled with HTML allowed in multi-languageThe Drop-sexy CSV provides 9 native image columns: Default image URL (cover) + Image URL 1 to Image URL 8. The module imports them all, the 1st defined as cover. Empty slot silently ignored (no crash if fewer than 9 photos).
getimagesize(): JPEG/PNG/GIF/WebP, corrupt files rejected without crashing the import<id>.jpg file in addition to the variants (without this fix, the image does not appear in the BO PS9 product edit page — known PS9 bug)The Drop-sexy CSV is in Windows-1252 with UTF-8 BOM at the start of the file — an exotic mix that crashes native PrestaShop imports. The module handles this intelligently:
\xEF\xBB\xBF) and automatic skipmb_convert_encoding() (with detection if the cell is already in UTF-8)The scenario that changes everything:
→ No more lagging page. No more worry. You see everything that happens.
The CSV exposes Discounted ex-VAT sale price (negotiated ex-VAT) + Pre-discount incl. VAT price (supplier RRP) + VAT rate. The module uses RRP mode by default (supplier incl. VAT price). You can change in Margins & SEO:
| Mode | Description |
|---|---|
| RRP ⭐ (default) | Supplier incl. VAT price as-is — practical fallback mode to start. |
| Tiers | Different % depending on the ex-VAT price bracket (5 configurable tiers: 0-15€/15-30€/30-60€/60-120€/120€+ — adapted to the diversity of the Drop-sexy catalog). |
| Fixed markup | A single % applied (50% by default → ex-VAT price × 1.5). The simplest if your entire catalog has a homogeneous margin. |
| Wholesale | Ex-VAT purchase price as-is (B2B sale to professionals / physical sex shops). |
{name}, {brand}| CRON Action | Role | Recommended frequency |
|---|---|---|
full_import | Full import (creations + light updates) | 1×/day |
light_sync | Update price + stock + availability of already imported products (light mode) | every 2-4h |
cleanup_logs | Purge logs > N days (configurable retention) | 1×/week |
Flagship brands of the Drop-sexy catalog:
wp_dropsexy_category_mapping table. Deletion from leaves to root + safe cleanup of parents that became empty. Preserves PS_HOME and PS_ROOTTriple confirmation (dialog box + typing DELETE + button). The category tree can be recreated on next opening of the module if you do not check the "Imported categories" option.
Download the ZIP, install via the BO. Auto-creation of 5 tables, the Drop-sexy supplier, the CRON key. The category hierarchy will be built on the fly during import.
Go to Settings, paste the URL provided by Drop-sexy. Configure the root category under which the native tree will be created (Home by default).
RRP mode by default. You can also choose Tiers (5 brackets) / Fixed markup / Wholesale. Customizable SEO templates with {name}/{brand}.
Click "Start import". Test mode with 20 products first to validate, then full import of 3,768 products (~3h). You see each product created with its N combinations before your eyes.
| 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 | Enabled (CSV + image download) |
| 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) |
| Drop-sexy B2B account | Account required for billing and CSV access |
| CSV URL | To be requested from your Drop-sexy account manager |
A: Yes, totally compatible PS 9.x. The module handles the specific PS9 migration where meta_keywords has been removed (automatic switch to ps_tag) as well as the PS9 bug where the original image does not appear on the BO product edit page (fix by 1:1 copy of the <id>.jpg file).
A: Drop-sexy exposes 4 dynamic Name/Value pairs per CSV row ("Variant: Attribute Name 1/2/3" + "Attribute Type 4" with their respective values). The module automatically detects active pairs per product and creates the corresponding PS attribute groups (Capacity, Size, Color…) on the fly. N CSV rows with the same "Product Id" become N combinations on 1 single PS product.
A: The Drop-sexy supplier often leaves the "Short description without HTML" empty or too short (≈66% of the catalog, i.e. ~2,500 products). To never have a ghost product sheet on the front (and harmful for SEO), the module generates a structured HTML text from the name + brand + category. You can then manually customize the sheets that interest you — light mode will no longer overwrite them.
A: The module guarantees that there is only ONE SINGLE group per attribute name in your PrestaShop BO, regardless of the number of successive imports. Instance cache to avoid redundant queries + automatic consolidation of any duplicates (legacy from previous imports). If the attribute name contains "color", the group is created in color_group mode.
A: For each CSV row, the module retrieves "Category Name 2" (parent level) + "Category Name 3" (leaf level). The 1st category "Home" or "Root" is ignored (= the PS root). Idempotent and cached in DB for subsequent imports. Category Mappings tab to merge or rename after the import.
A: The module detects the UTF-8 BOM at the start of the file (3 bytes), then converts each cell from Windows-1252 to UTF-8 via mb_convert_encoding() (with detection if the cell is already in valid UTF-8 to avoid double-encoding). French characters like « Mapalé » or « René Rofé » are preserved. Comma decimals converted to dot on price columns.
A: Yes. Automatic light mode: existing products are detected via the "Variant reference" (= unique sku per row) and only their price + stock are refreshed. Your descriptions, images, categories and tags are not rewritten — you keep your customizations.
A: Import tab → Selective deletion → check the 6 boxes (Products + Attributes + Categories + Brands + Supplier + Logs) → DELETE. Triple confirmation to avoid errors. The "Imported categories" box cleans the tree created by the import (preserves PS_HOME and PS_ROOT).
A: "Stop" button available during import (UI) and during CRON (flag file). Clean stop at the end of the current product, state saved to resume at the exact stop row.
A: Yes. Categories, products and combinations are created on all active shops. Deletion forces CONTEXT_ALL to avoid the PS9 quirk where Product->delete() returns false in multi-shop. attribute_group_shop and attribute_shop are filled automatically for each shop.
A: Confirmed. The module uses only getContent() + AJAX. No pollution of the BO PrestaShop menu. No core class override.
The Drop-sexy adult sextoys lingerie dropshipping module is the most comprehensive tool for selling the 3,768 Drop-sexy references (lingerie, sextoys, lubricants, aphrodisiacs, naughty costumes, bondage) on PrestaShop. Once configured, it automatically imports the catalog with its dynamic multi-attribute combinations, its 9 photos per product, its native French hierarchy.
⚡ 3-MIN INSTALLATION · 📚 REAL-TIME IMPORT · 🛡️ COMPATIBLE PS 1.7 → 9 · 🇫🇷 FRENCH SUPPORT
DB tables created (5): wp_dropsexy_history, wp_dropsexy_import_errors, wp_dropsexy_product_meta (unique sku = Variant reference), wp_dropsexy_combination_meta (unique sku = Variant reference), wp_dropsexy_category_mapping (csv_path unique)
PS configurations: WPDS_SETTINGS (JSON), WPDS_SUPPLIER_ID, WPDS_CRON_KEY, WPDS_LAST_IMPORT_AT, WPDS_LAST_IMPORT_COUNT, WPDS_CRON_LAST_*
Drop-sexy CSV (46 Windows-1252 BOM columns, separator ";"): Name, Variant name, Description without HTML, Short description without HTML, Default image URL, Image URL 1..8, Quantity, Product reference, Variant reference, Simplified URL, Meta description/keywords/title, EAN13, UPC, Discounted ex-VAT sale price, VAT rate, Default category name, Manufacturer, Product Id, Pre-discount incl. VAT price, Variant: Name/Value of attribute 1/2/3, Variant: Type/Value of attribute 4, Variant Id, Category Name 1/2/3, Parent Category Name 1/2/3
Architecture: 5 clean PHP classes (DsCompat, DsCategoryTaxonomy [empty taxonomy by design — native CSV hierarchy], DsCategoryMapper, DsFeatureMapper, DsCsvImporter) + main module + AJAX router + CRON. No PrestaShop core class override. Code commented in French.
Synthetic columns generated in parseCsvToArray: 1 category column = string « cat1 > cat2 > cat3 » (root filter applied in DsCategoryMapper).
Shared engine compatibility aliases: sku → Variant reference, parent_sku → Product reference, parent → Product Id, brand → Manufacturer, price → Discounted ex-VAT sale price, recommended-retail-price → Pre-discount incl. VAT price, qty → Quantity, image-url-1..9 → Default image URL + Image URL 1..8, combo_ref → Variant reference.
Combinations creation (createCombinationFor): reading the 4 dynamic attribute pairs (loop N=1..4), "color" detection → color_group, otherwise select. Reference = CSV "Variant reference". ean13 on the combination from EAN13. wholesale_price = price. Stock via StockAvailable::setQuantity.
ensureAttributeGroup / ensureAttribute (bulletproof): 3 layers of defense — (1) instance cache via $attrGroupCache and $attrCache, (2) multi-language + multi-shop lookup via agnostic TRIM, (3) automatic consolidation of duplicates (moves attribute and product_attribute_combination to the keep, deletes orphan rows). Direct SQL INSERT to bypass PS9 multi-shop quirks. Systematic backfill of attribute_group_lang, attribute_group_shop, attribute_lang, attribute_shop.
parent_key grouping bug fix (2026-05-04): existence queries in processRow use executeS() (parent_key lookup) or getValue($sql, false) (others) to bypass the Db::getInstance() static cache that persists between PHP-FPM workers and made rows 2-N of the same parent see a cached "0". Without this fix, each variant created a new product instead of adding a combination to the parent.
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, BO PS9 original image fix (1:1 copy of the <id>.jpg file before the ImageManager::resize variants).
Encoding: UTF-8 BOM detection (skip 3 bytes) + mb_convert_encoding(Win-1252 → UTF-8) conversion per cell, with prior detection if the cell is already in valid UTF-8 to avoid double-encoding.
📦 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-BXP-FRX
Brand: WebPoint
Reference: WP-TRD-CFR
Brand: WebPoint
Reference: WP-ECO-XML
Brand: WebPoint
Reference: wp-matterhorn-dropshipping-mode-lingerie-prestashop
Brand: WebPoint
Reference: WP-DLV-FRX
Brand: WebPoint
Reference: wp-watchimport-dropshipping-montres-ila-uhren-csv-prestashop
Brand: WebPoint
Reference: WP-MAL-XML
Brand: WebPoint
Reference: WP-DBR-EHU
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 Drop-sexy, a French wholesaler: CSV import of 3,768 erotic references (sexy lingerie, sextoys, lubricants, aphrodisiacs, naughty costumes, bondage…) from 20+ brands Mapalé, Obsessive, Dreamgirl, René Rofé, Fiore, PENTHOUSE…
✅ Mono-language native French (Windows-1252 BOM CSV, auto-conversion)
✅ 4 dynamic attribute pairs per variant: Capacity, Size, Color, etc.
✅ Native variant reference = PS Combination::reference field
✅ 9 photos per product · Auto-generated short description if empty (66% of catalog)
✅ Native CSV hierarchy · CRON 24/7 · Compatible PS 1.7 → 9.x
You configure. The module imports. You sell French passion online. 💋