有没有一种方法可以借助EDI获得订单。我试图将其与SFTP连接并获取一个文件。
AmazonConnectivityTest文件。但不知道如何使用EDI。
任何人都可以告诉我使用EDI的步骤是什么。无需使用第三方软件。
答案 0 :(得分:2)
这完全取决于您自己的软件。 EDI(X12)是针对机器对机器使用的,您在SFTP上收到的文档不太容易被人阅读。因此,您将需要软件来 1.在SFTP上获取文件, 2.解释它,并 3.将其推入您的ERP。
如果您的ERP无法做到这一点,并且您没有可以自己使用的软件,那么您可能确实需要第三方来获取它,或将其转换为您自己的格式,或将其推送到您的ERP中。
答案 1 :(得分:0)
我曾经写过一个函数。它从服务器读取并下载了亚马逊文件,您可以使用数据以订单格式对其进行更改:
public function execute(Arguments $args, ConsoleIo $io)
{
$conn = ssh2_connect('sftp-eu.amazonsedi.com', 2222);
if (ssh2_auth_pubkey_file(
$conn,
'<your secret>',
'address to id_rsa.pub',//same as you uploaded in amazon
'address to id_rsa'
)) {
echo "Public Key Authentication Successful\n";
$sftp = ssh2_sftp($conn);
if (!$dir = opendir("ssh2.sftp://$sftp"."/download/")) {
die('Failed to open the directory.');
}
echo "dir open";
$files = array();
while (($file = readdir($dir)) !== false) {
$files[]=$file;
}
closedir($dir);
foreach ($files as $file) {
echo "Copying file: TMP.AMAZON\n";
if (!$remote = fopen("ssh2.sftp://$sftp/download/$file", 'r')) {
echo "Failed to open remote file: $file\n";
continue;
}
if (!$local = fopen(TMP."amazon/" . $file, 'w')) {
echo "Failed to create local file: $file\n";
continue;
}
$read = 0;
$filesize = filesize("ssh2.sftp://$sftp/download/$file");
while (($read < $filesize) && ($buffer = fread($remote, $filesize - $read))) {
$read += strlen($buffer);
if (fwrite($local, $buffer) === false) {
echo "Failed to write to local file: $file\n";
break;
}
}
fclose($local);
fclose($remote);
}
} else {
die('Public Key Authentication Failed');
}
}