Skip to content

VidaXL ​

VidaXL is a dropship supplier. Product records are keyed by the supplier SKU and the order path uses the exact product value drop_ship = "vidaxl".

Evidence boundary

This page describes the source at commit 42116ebc0ba509bce9cc6651a55ecefd9a5fdb38. It does not prove that the configured feed URLs, schedules, VidaXL account, or deployed code are current.

Entry points ​

OperationCommand or eventSource behavior
Product feed import`menzzo:vidaxl:products --onlyCreatedProducts=01`
Category importmenzzo:vidaxl:categoriesImports VidaXL categories into the local supplier catalog.
Manual selection`menzzo:vidaxl:addProductsToSelection --onlyCreatedProducts=01`
Order submissionAfterSaleCreatedEvent and AfterSaleUpdatedEventBuilds one VidaXL order from eligible lines and stores the returned VidaXL order id.

The import option is a filter for already-created supplier products. It is not a preview or dry run.

Catalog and availability ​

The product service keeps a supplier row for each SKU, imports feed quantity and price fields, and updates the linked mz_product row. When a feed row is unavailable, the source can set the linked product inactive and quantity to zero and write a quantity log. Product updates also queue downstream price changes when the linked product has a source id.

The source has separate per-store feed URLs for France, Germany, the Netherlands, Italy, Spain, and Belgium. The feed map is code evidence only; the active account and current feed contents require runtime confirmation.

Order submission rules ​

VidaxlBundle\Services\OrderService::processSale() runs after a sale is created or updated, but returns unless the sale is processing. It considers only non-canceled, non-shipped lines whose product has drop_ship = "vidaxl" and no existing VidaXL order id.

For a France store-3 sale, postcode prefixes 20 and 21, or a city containing Corse, block submission. The source cancels the affected product line and sends a VidaXL cancellation email using the configured MZ_VIDAXL_EMAIL_CANCELLATION_PRODUCT recipients. This is a source rule and needs business-owner confirmation before it is changed.

For eligible lines, the service sends the supplier SKU, quantity, and a split shipping address (first 29 characters in address, remainder in address2). It groups lines under the sale increment id. On an HTTP 200 response it stores the returned order id on each submitted sale product. Exceptions roll back the transaction, create a VidaxlAlert, and persist the provider error on each affected line.

Error handling and remaining unknowns ​

  • Which cron entries invoke the product and order paths, and whether they are enabled in each environment.
  • Whether all configured per-store feeds are reachable and contain the fields expected by the importer.
  • The downstream tracking import and the provider status lifecycle after order submission.

Do not use the generic “channel push” wording as proof that every catalog field is published to Magento or a marketplace. The reviewed source establishes local supplier/product updates and order submission; it does not establish downstream publication.

Source locations ​

  • src/VidaxlBundle/Services/ProductService.php — feed import, quantity/price updates, and supplier mapping.
  • src/VidaxlBundle/Services/OrderService.php — order eligibility, Corsica exclusion, provider request, and error persistence.
  • src/VidaxlBundle/Command/Product/AddProductsToSelectionCommand.php — spreadsheet-based selection workflow.

Internal developer documentation for Menzzo systems.