scandltd / rhenus-wms
Rhenus WMS Library
dev-master
2018-07-24 00:00 UTC
Requires
- php: >=5.4.0
- php-curl-class/php-curl-class: ^4.11
Requires (Dev)
- phpunit/phpunit: ~5.3
- squizlabs/php_codesniffer: 2.*
This package is not auto-updated.
Last update: 2024-10-13 06:34:18 UTC
README
A PHP library to communication with Rhenus Logistics Warehouse Management System (WMS).
The library based on specification "General Interface Definition Customer System/Rhenus WMS Version 1.4".
The data files are transferred by means of FTP or SFTP.
Message types
The following types for communication Customer -> Rhenus are possible:
The following types for communication Rhenus -> Customer are possible:
Usage Instructions
AR message (Customer -> Rhenus)
<?php use Scand\RhenusWMS\Message; use Scand\RhenusWMS\Messages\Files\FileTypeInterface; use Scand\RhenusWMS\Messages\Segments\Segment; use Scand\RhenusWMS\Messages\Segments\SegmentInterface; /** @var $messageAR \Scand\RhenusWMS\Messages\Types\AR */ $messageAR = Message::factory(FileTypeInterface::FILE_TYPE_ARTICLE); /** @var $segmentAR \Scand\RhenusWMS\Messages\Segments\Types\AR */ $segmentAR = Segment::factory(SegmentInterface::TYPE_AR); $segmentAR->setAttributeValue('branch', '11'); $segmentAR->setAttributeValue('client', '15'); $segmentAR->setAttributeValue('sub_client', '04'); $segmentAR->setAttributeValue('article_number', '1233421'); $segmentAR->setAttributeValue('type', 'NORM'); $segmentAR->setAttributeValue('mandatory_ean', 'N'); $segmentAR->setAttributeValue('mandatory_batch', 'J'); $segmentAR->setAttributeValue('mandatory_ed', 'N'); $segmentAR->setAttributeValue('mandatory_supplier', 'N'); $segmentAR->setAttributeValue('mandatory_s_n', 'J'); $segmentAR->setAttributeValue('brand_name', 'Brand Name'); $segmentAR->setAttributeValue('brand_number', '234'); $segmentAR->setAttributeValue('hazardous_attribute', 'N'); $segmentAR->setAttributeValue('origin_country', 'CN'); $segmentAR->setAttributeValue('tariff_number', 'CustomTariff3546'); $messageAR->addSegment($segmentAR); /** @var $segmentText \Scand\RhenusWMS\Messages\Segments\Types\AR_TEXT */ $segmentText = Segment::factory(SegmentInterface::TYPE_AR_TEXT); $segmentText->setAttributeValue('text', 'dies ist ein Text 1'); $segmentText->setAttributeValue('language', 'DE'); $messageAR->addSegment($segmentText); $segmentText = Segment::factory(SegmentInterface::TYPE_AR_TEXT); $segmentText->setAttributeValue('text', 'this is a text 1'); $segmentText->setAttributeValue('language', 'EN'); $messageAR->addSegment($segmentText); $segmentText = Segment::factory(SegmentInterface::TYPE_AR_TEXT); $segmentText->setAttributeValue('text', 'se trata de un texto 1'); $segmentText->setAttributeValue('language', 'ES'); $messageAR->addSegment($segmentText); /** @var $segmentLog \Scand\RhenusWMS\Messages\Segments\Types\AR_LOG_EINH */ $segmentLog = Segment::factory(SegmentInterface::TYPE_AR_LOG_EINH); $segmentLog->setAttributeValue('quantity_unit', 'ST'); $segmentLog->setAttributeValue('length', 50); $segmentLog->setAttributeValue('width', 50); $segmentLog->setAttributeValue('height', 50); $segmentLog->setAttributeValue('weight', 200); $segmentLog->setAttributeValue('base_quantity_attribute', 'J'); $segmentLog->setAttributeValue('number_quantity_unit', 1); $messageAR->addSegment($segmentLog); /** @var $segmentEan \Scand\RhenusWMS\Messages\Segments\Types\AR_EAN */ $segmentEan = Segment::factory(SegmentInterface::TYPE_AR_EAN); $segmentEan->setAttributeValue('code', '4006381333931'); $messageAR->addSegment($segmentEan); $segmentEan = Segment::factory(SegmentInterface::TYPE_AR_EAN); $segmentEan->setAttributeValue('code', '4003994155486'); $messageAR->addSegment($segmentEan); $segmentLog = Segment::factory(SegmentInterface::TYPE_AR_LOG_EINH); $segmentLog->setAttributeValue('quantity_unit', 'VE'); $segmentLog->setAttributeValue('length', 250); $segmentLog->setAttributeValue('width', 50); $segmentLog->setAttributeValue('height', 100); $segmentLog->setAttributeValue('weight', 2000); $segmentLog->setAttributeValue('base_quantity_attribute', 'N'); $segmentLog->setAttributeValue('number_quantity_unit', 10); $messageAR->addSegment($segmentLog); $segmentEan = Segment::factory(SegmentInterface::TYPE_AR_EAN); $segmentEan->setAttributeValue('code', '4006366333931'); $messageAR->addSegment($segmentEan); $segmentEan = Segment::factory(SegmentInterface::TYPE_AR_EAN); $segmentEan->setAttributeValue('code', '4003994155111'); $messageAR->addSegment($segmentEan); $segmentEan = Segment::factory(SegmentInterface::TYPE_AR_EAN); $segmentEan->setAttributeValue('code', '4002394155111'); $messageAR->addSegment($segmentEan); /** @var $segmentZusInfo \Scand\RhenusWMS\Messages\Segments\Types\AR_ZUS_INFO */ $segmentZusInfo = Segment::factory(SegmentInterface::TYPE_AR_ZUS_INFO); $segmentZusInfo->setAttributeValue('zus_info3', 'Zus Info 3'); $segmentZusInfo->setAttributeValue('zus_info9', 'Zus Info 9'); $messageAR->addSegment($segmentZusInfo); $csv = $message->toCSV();
BEW message (Rhenus -> Customer)
<?php use Logistic\StockTransfer; use Scand\RhenusWMS\Message; $file_path = dirname(__FILE__) . '/data/valid/BEW181300000000001.csv'; /** @var $line \Scand\RhenusWMS\Messages\Types\BEW */ $message = Message::createFromFile($file_path); $segments = $message->getSegments(); /** @var $segment \Scand\RhenusWMS\Messages\Segments\Types\BEW */ $segment = $segments[0]; $stockTransfer = new StockTransfer(); $stockTransfer->fromItemCode = $segment->getAttributeValue('from_article_number'); $stockTransfer->toItemCode = $segment->getAttributeValue('to_article_number'); $stockTransfer->fromStockType = $segment->getAttributeValue('from_stock_type'); $stockTransfer->toStockType = $segment->getAttributeValue('to_stock_type'); $stockTransfer->quantity = $segment->getAttributeValue('quantity'); $stockTransfer->text = $segment->getAttributeValue('document_text'); $stockTransfer->typeOfMovement = $segment->getAttributeValue('movement_type'); $stockTransfer->zusInfo1 = $segment->getAttributeValue('zus_info1'); $stockTransfer->zusInfo2 = $segment->getAttributeValue('zus_info2'); $stockTransfer->save();
Run code tests
composer test