Skip to content

Meduse Integration ​

The inspected Meduse–Logidav connector exchanges files over FTP and processes them with scheduled commands. The source snapshot does not establish a Meduse RabbitMQ consumer. It shows several distinct file flows, plus separate application queues described below. Deployment settings and runtime behavior were not checked.

Role ​

  • Product intake: Logidav places new-product JSON files on the Meduse FTP connector; Meduse scans those files and queues product-import jobs.
  • Stock and price feeds: Logidav writes CSV exports that Meduse reads from the FTP connector.
  • Product export: Meduse writes a product CSV for Logidav. The matching Logidav reader currently exits at die('stopped'), so source code alone does not prove this flow completes.

See connector folders and file formats, queue details, and scheduled connector jobs.

Command names and paths below describe source behavior. Do not run them against production; production use requires approval for the exact command and target.

Components ​

ComponentLocationSource-backed role
Logidav FTP servicesrc/CoreBundle/Services/MeduseService.phpConnects to the configured Meduse FTP service and reads or writes connector files.
Meduse Logidav moduleModules/Logidav/Services/Logidav.phpUses Laravel Storage's FTP driver for connector folders and scheduled file commands.
New-product importerGenerateSyncJobsForCommand, ProcessNewProductScans pending JSON files, dispatches ProcessNewProduct on the named Laravel queue, then moves files to complete or failed.
Meduse SQL queueMeduseQueue.phpSeparate Logidav database queue mapped to mz_meduse_queue; it is not RabbitMQ.

For a task-oriented walkthrough on the receiving application, see Meduse integration workflows and Mosaikasa catalog enrichment.

Data Flow ​

The directions below follow the code that writes and reads each FTP path. A configured schedule is source evidence for intended invocation, not proof that a deployed schedule is running.

DirectionFTP path and formatReader / outcome in the source
Logidav → Medusemeduse/connectors/logidav/new-product/pending/, JSONMeduse scans the folder, moves files to processing, and pushes ProcessNewProduct to the Laravel queue named process-new-product. The job moves the remote file to complete or failed. (Logidav FTP writer; Meduse scanner; job outcomes)
Logidav → Medusemeduse/connectors/logidav/export-stock/, semicolon-delimited CSVLogidav exports stock data; Meduse reads and deletes the files while updating its availability-tracking data. (Logidav writer; Meduse reader)
Logidav → Medusemeduse/connectors/logidav/export-price/, semicolon-delimited CSVLogidav exports price data; Meduse reads and deletes the files while applying price updates. (Logidav writer; Meduse reader)
Logidav → Medusemeduse/connectors/logidav/syncProduct/pending/, CSVA Meduse-specific Logidav processor can write updates here from mz_meduse_queue; Meduse reads the files and moves them through processing to complete or failed. The normal QueueService::addQueue() path currently forces the Meduse queue option off, so this producer path is not established as active. (processor output; Meduse reader; queue routing switch)
Meduse → Logidavmeduse/connectors/logidav/export-logidav/pending/, pipe-delimited CSVMeduse writes the product export. The matching Logidav reader currently exits at die('stopped'), so source code alone does not prove this flow completes. (Meduse writer; Logidav reader stop)

Inbound Data ​

For Meduse, the verified inbound file flows are the new-product JSON, stock CSV, and price CSV listed above. Product updates from Logidav also have a code-defined syncProduct CSV path, but its queue producer is not established as active in this source snapshot.

Outbound Data ​

Meduse has a scheduled product-export command that writes a pipe-delimited CSV to export-logidav/pending/. The corresponding Logidav consumer is currently stopped in source before it reads the FTP folder. Order-status exchange and any additional stock direction were not traced in the inspected connector code.

Configuration ​

Logidav's CoreBundle\Services\MeduseService reads the meduse.ftp parameter group. The Meduse module builds an FTP filesystem from its meduse-ftp.ftp configuration. This page records configuration keys only; endpoint values and credentials belong to deployment configuration and are not part of this source audit.

Queue Architecture ​

Do not treat the FTP folders, Logidav SQL queue rows, RabbitMQ messages, and Meduse Laravel jobs as one queue:

  • mz_meduse_queue is a Doctrine-backed Logidav table. The meduse:queue:processor implementation selects pending rows grouped by model and invokes that model. MeduseQueueService is currently a stub, and QueueService::addQueue() contains a temporary hard-coded disable for inserting into this table.
  • mz_queue is the separate general Logidav SQL queue, processed by menzzo:queue:processor.
  • General Logidav product processors publish RabbitMQ messages to logidav.api.product.put.queue. A separate consumer reads logidav.api.product.messages.exchange.queue and updates mz_queue rows from Magento status messages. (publisher; status consumer, row update and acknowledgement)
  • ProductMeduseDataUpdateProcessor writes logidav.api.product.put.queue as a CSV topic field on its FTP output. That field is not itself a RabbitMQ publish. (CSV row)
  • Meduse's new-product importer calls Laravel Queue::push with queue name process-new-product. Its backend is selected with QUEUE_CONNECTION; the source-only audit cannot establish the deployed value.

For the separate queue models and commands, see Queue Model. The Meduse queue details document the Meduse-specific table and job lane.

Error Handling ​

The inspected file workflows expose file-state outcomes, not a shared RabbitMQ dead-letter/retry policy:

WorkflowSource-backed behavior
New-product importThe job moves the FTP file to complete after processing or failed when it catches an exception.
syncProduct CSV importMeduse moves a file to complete when rows succeed, to failed when all rows error, or to complete with row errors written into the CSV when only some rows fail.
Stock and price file importThe inspected commands read and delete source files; deployment-level recovery or replay behavior was not established here.

Queue monitoring, dead-letter routing, automatic retries, and supervisor restart behavior are not described here because these inspected connector paths do not establish those policies.

Internal developer documentation for Menzzo systems.