This repository has been archived by the owner on Jun 27, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.php
79 lines (61 loc) · 2.42 KB
/
app.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
ini_set('display_errors', true);
set_time_limit(600);
require 'config.php';
require 'vendor/autoload.php';
function dd($content) {
var_dump($content);
die();
}
function logThis($message) {
file_put_contents('sync.log', date('Y-m-d H:i:s') . ' - ' . $message . PHP_EOL, FILE_APPEND);
echo $message . PHP_EOL;
}
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local as LocalAdapter;
use League\Flysystem\Adapter\Ftp as FtpAdapter;
use Picqer\Api\Client as PicqerClient;
// Local filesystem
$filesystem = new Filesystem(new LocalAdapter(__DIR__));
// FTP connection
$ftpserver = new Filesystem(new FtpAdapter(array(
'host' => $config['ftp-host'],
'username' => $config['ftp-username'],
'password' => $config['ftp-password'],
)));
// Picqer connection
$picqerclient = new PicqerClient($config['picqer-company'], $config['picqer-apikey']);
// Get data
$datakeeper = new PicqerSync\DataKeeper($filesystem);
$data = $datakeeper->getData();
// Create FTP orders from Picqer picklists
logThis("Create orders on FTP");
$orderCreator = new PicqerSync\PicklistToOrderConverter($picqerclient, $ftpserver, $data, $config);
$orderCreator->convertPicklistsToOrders();
$processedPicklists = $orderCreator->getProcessedPicklists();
foreach ($processedPicklists as $processedPicklist) {
$data['picklists'][] = $processedPicklist;
}
// Save changed data
$datakeeper->saveData($data);
// Process picklists who are completed
logThis("Process track trace from FTP");
$completedOrdersProcessor = new PicqerSync\CompletedOrdersProcessor($picqerclient, $ftpserver, $config);
$completedOrdersProcessor->processCompletedOrders();
// Process returns from FTP
logThis("Process returns from FTP");
$returnsProcessor = new PicqerSync\ReturnsProcessor($picqerclient, $ftpserver, $config);
$returnsProcessor->processReturns();
// Process inbound products from FTP
logThis("Process inbound products from FTP");
$inboundsProcessor = new PicqerSync\InboundsProcessor($picqerclient, $ftpserver, $config);
$inboundsProcessor->processInbounds();
// Sync stock levels from FTP
logThis("Process stock updates from FTP");
$stockLevelsSyncer = new PicqerSync\StockLevelsSyncer($picqerclient, $ftpserver, $config);
$stockLevelsSyncer->syncStockLevels();
// Let Picqer process the backorders
logThis("Backorders being processed");
$backordersProcessor = new PicqerSync\BackordersProcessor($picqerclient);
$backordersProcessor->processBackorders();
echo 'DONE';