Skip to content

Commit 3f610cd

Browse files
authored
Merge pull request #44 from JeremyDunn/open-ship
Add Open Ship 11.0
2 parents 43992f6 + 291da98 commit 3f610cd

File tree

441 files changed

+35178
-3366
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

441 files changed

+35178
-3366
lines changed

Diff for: composer.lock

-3,363
This file was deleted.

Diff for: examples/create-open-shipment.php

+143
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
<?php
2+
3+
require_once 'credentials.php';
4+
require_once 'bootstrap.php';
5+
6+
use FedEx\OpenShipService\Request;
7+
use FedEx\OpenShipService\ComplexType;
8+
use FedEx\OpenShipService\SimpleType;
9+
10+
/********************************************************
11+
* Create initial open shipment request with 1 package...
12+
********************************************************/
13+
$shipDate = new \DateTime();
14+
15+
$createOpenShipmentRequest = new ComplexType\CreateOpenShipmentRequest();
16+
// web authentication detail
17+
$createOpenShipmentRequest->WebAuthenticationDetail->UserCredential->Key = FEDEX_KEY;
18+
$createOpenShipmentRequest->WebAuthenticationDetail->UserCredential->Password = FEDEX_PASSWORD;
19+
// client detail
20+
$createOpenShipmentRequest->ClientDetail->MeterNumber = FEDEX_METER_NUMBER;
21+
$createOpenShipmentRequest->ClientDetail->AccountNumber = FEDEX_ACCOUNT_NUMBER;
22+
// version
23+
$createOpenShipmentRequest->Version->ServiceId = 'ship';
24+
$createOpenShipmentRequest->Version->Major = 11;
25+
$createOpenShipmentRequest->Version->Intermediate = 0;
26+
$createOpenShipmentRequest->Version->Minor = 0;
27+
28+
// package 1
29+
$requestedPackageLineItem1 = new ComplexType\RequestedPackageLineItem();
30+
$requestedPackageLineItem1->SequenceNumber = 1;
31+
$requestedPackageLineItem1->ItemDescription = 'Product description 1';
32+
$requestedPackageLineItem1->Dimensions->Width = 10;
33+
$requestedPackageLineItem1->Dimensions->Height = 10;
34+
$requestedPackageLineItem1->Dimensions->Length = 15;
35+
$requestedPackageLineItem1->Dimensions->Units = SimpleType\LinearUnits::_IN;
36+
$requestedPackageLineItem1->Weight->Value = 2;
37+
$requestedPackageLineItem1->Weight->Units = SimpleType\WeightUnits::_LB;
38+
39+
// requested shipment
40+
$createOpenShipmentRequest->RequestedShipment->DropoffType = SimpleType\DropoffType::_REGULAR_PICKUP;
41+
$createOpenShipmentRequest->RequestedShipment->ShipTimestamp = $shipDate->format('c');
42+
$createOpenShipmentRequest->RequestedShipment->ServiceType = SimpleType\ServiceType::_FEDEX_2_DAY;
43+
$createOpenShipmentRequest->RequestedShipment->PackagingType = SimpleType\PackagingType::_YOUR_PACKAGING;
44+
$createOpenShipmentRequest->RequestedShipment->LabelSpecification->ImageType = SimpleType\ShippingDocumentImageType::_PDF;
45+
$createOpenShipmentRequest->RequestedShipment->LabelSpecification->LabelFormatType = SimpleType\LabelFormatType::_COMMON2D;
46+
$createOpenShipmentRequest->RequestedShipment->LabelSpecification->LabelStockType = SimpleType\LabelStockType::_PAPER_4X6;
47+
$createOpenShipmentRequest->RequestedShipment->RateRequestTypes = [SimpleType\RateRequestType::_PREFERRED];
48+
$createOpenShipmentRequest->RequestedShipment->PackageCount = 1;
49+
$createOpenShipmentRequest->RequestedShipment->RequestedPackageLineItems = [$requestedPackageLineItem1];
50+
51+
// requested shipment shipper
52+
$createOpenShipmentRequest->RequestedShipment->Shipper->AccountNumber = FEDEX_ACCOUNT_NUMBER;
53+
$createOpenShipmentRequest->RequestedShipment->Shipper->Address->StreetLines = ['1234 Main Street'];
54+
$createOpenShipmentRequest->RequestedShipment->Shipper->Address->City = 'Anytown';
55+
$createOpenShipmentRequest->RequestedShipment->Shipper->Address->StateOrProvinceCode = 'NY';
56+
$createOpenShipmentRequest->RequestedShipment->Shipper->Address->PostalCode = '12345';
57+
$createOpenShipmentRequest->RequestedShipment->Shipper->Address->CountryCode = 'US';
58+
$createOpenShipmentRequest->RequestedShipment->Shipper->Contact->CompanyName = 'Company Name';
59+
$createOpenShipmentRequest->RequestedShipment->Shipper->Contact->PersonName = 'Person Name';
60+
$createOpenShipmentRequest->RequestedShipment->Shipper->Contact->EMailAddress = '[email protected]';
61+
$createOpenShipmentRequest->RequestedShipment->Shipper->Contact->PhoneNumber = '1-123-123-1234';
62+
63+
// requested shipment recipient
64+
$createOpenShipmentRequest->RequestedShipment->Recipient->Address->StreetLines = ['54321 1st Ave.'];
65+
$createOpenShipmentRequest->RequestedShipment->Recipient->Address->City = 'Anytown';
66+
$createOpenShipmentRequest->RequestedShipment->Recipient->Address->StateOrProvinceCode = 'NY';
67+
$createOpenShipmentRequest->RequestedShipment->Recipient->Address->PostalCode = '12345';
68+
$createOpenShipmentRequest->RequestedShipment->Recipient->Address->CountryCode = 'US';
69+
$createOpenShipmentRequest->RequestedShipment->Recipient->Contact->PersonName = 'John Doe';
70+
$createOpenShipmentRequest->RequestedShipment->Recipient->Contact->EMailAddress = '[email protected]';
71+
$createOpenShipmentRequest->RequestedShipment->Recipient->Contact->PhoneNumber = '1-321-321-4321';
72+
73+
// shipping charges payment
74+
$createOpenShipmentRequest->RequestedShipment->ShippingChargesPayment->Payor->ResponsibleParty = $createOpenShipmentRequest->RequestedShipment->Shipper;
75+
$createOpenShipmentRequest->RequestedShipment->ShippingChargesPayment->PaymentType = SimpleType\PaymentType::_SENDER;
76+
77+
// send the create open shipment request
78+
$openShipServiceRequest = new Request();
79+
$createOpenShipmentReply = $openShipServiceRequest->getCreateOpenShipmentReply($createOpenShipmentRequest);
80+
81+
// shipment is created and we have an index number
82+
$index = $createOpenShipmentReply->Index;
83+
84+
85+
/********************************
86+
* Add a package to open shipment
87+
********************************/
88+
$addPackagesToOpenShipmentRequest = new ComplexType\AddPackagesToOpenShipmentRequest();
89+
90+
// set index
91+
$addPackagesToOpenShipmentRequest->Index = $index;
92+
93+
// reuse web authentication detail from previous request
94+
$addPackagesToOpenShipmentRequest->WebAuthenticationDetail = $createOpenShipmentRequest->WebAuthenticationDetail;
95+
96+
// reuse client detail from previous request
97+
$addPackagesToOpenShipmentRequest->ClientDetail = $createOpenShipmentRequest->ClientDetail;
98+
99+
// reuse version from previous request
100+
$addPackagesToOpenShipmentRequest->Version = $createOpenShipmentRequest->Version;
101+
102+
// requested package line item
103+
$requestedPackageLineItem2 = new ComplexType\RequestedPackageLineItem();
104+
$requestedPackageLineItem2->SequenceNumber = 2;
105+
$requestedPackageLineItem2->ItemDescription = 'New package added to open shipment';
106+
$requestedPackageLineItem2->Dimensions->Width = 20;
107+
$requestedPackageLineItem2->Dimensions->Height = 10;
108+
$requestedPackageLineItem2->Dimensions->Length = 12;
109+
$requestedPackageLineItem2->Dimensions->Units = SimpleType\LinearUnits::_IN;
110+
$requestedPackageLineItem2->Weight->Value = 4;
111+
$requestedPackageLineItem2->Weight->Units = SimpleType\WeightUnits::_LB;
112+
$addPackagesToOpenShipmentRequest->RequestedPackageLineItems = [$requestedPackageLineItem2];
113+
114+
// send the add packages to open shipment request
115+
$addPackagesToOpenShipmentReply = $openShipServiceRequest->getAddPackagesToOpenShipmentReply($addPackagesToOpenShipmentRequest);
116+
117+
var_dump($addPackagesToOpenShipmentReply);
118+
119+
/************************************
120+
* Retrieve the open shipment details
121+
************************************/
122+
$retrieveOpenShipmentRequest = new ComplexType\RetrieveOpenShipmentRequest();
123+
$retrieveOpenShipmentRequest->Index = $index;
124+
$retrieveOpenShipmentRequest->WebAuthenticationDetail = $createOpenShipmentRequest->WebAuthenticationDetail;
125+
$retrieveOpenShipmentRequest->ClientDetail = $createOpenShipmentRequest->ClientDetail;
126+
$retrieveOpenShipmentRequest->Version = $createOpenShipmentRequest->Version;
127+
128+
$retrieveOpenShipmentReply = $openShipServiceRequest->getRetrieveOpenShipmentReply($retrieveOpenShipmentRequest);
129+
130+
var_dump($retrieveOpenShipmentReply);
131+
132+
/***********************
133+
* Confirm open shipment
134+
***********************/
135+
$confirmOpenShipmentRequest = new ComplexType\ConfirmOpenShipmentRequest();
136+
$confirmOpenShipmentRequest->WebAuthenticationDetail = $createOpenShipmentRequest->WebAuthenticationDetail;
137+
$confirmOpenShipmentRequest->ClientDetail = $createOpenShipmentRequest->ClientDetail;
138+
$confirmOpenShipmentRequest->Version = $createOpenShipmentRequest->Version;
139+
$confirmOpenShipmentRequest->Index = $index;
140+
141+
$confirmOpenShipmentReply = $openShipServiceRequest->getConfirmOpenShipmentReply($confirmOpenShipmentRequest);
142+
143+
var_dump($confirmOpenShipmentReply);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?php
2+
namespace FedEx\OpenShipService\ComplexType;
3+
4+
use FedEx\AbstractComplexType;
5+
6+
/**
7+
* AddPackagesToOpenShipmentReply
8+
*
9+
* @author Jeremy Dunn <[email protected]>
10+
* @package PHP FedEx API wrapper
11+
* @subpackage OpenShip Service
12+
*
13+
* @property \FedEx\OpenShipService\SimpleType\NotificationSeverityType|string $HighestSeverity
14+
* @property Notification[] $Notifications
15+
* @property TransactionDetail $TransactionDetail
16+
* @property VersionId $Version
17+
* @property string $JobId
18+
* @property \FedEx\OpenShipService\SimpleType\ServiceType|string $ServiceType
19+
* @property CompletedShipmentDetail $CompletedShipmentDetail
20+
* @property ShippingDocument[] $ErrorLabels
21+
22+
*/
23+
class AddPackagesToOpenShipmentReply extends AbstractComplexType
24+
{
25+
/**
26+
* Name of this complex type
27+
*
28+
* @var string
29+
*/
30+
protected $name = 'AddPackagesToOpenShipmentReply';
31+
32+
/**
33+
* Set HighestSeverity
34+
*
35+
* @param \FedEx\OpenShipService\SimpleType\NotificationSeverityType|string $highestSeverity
36+
* @return $this
37+
*/
38+
public function setHighestSeverity($highestSeverity)
39+
{
40+
$this->values['HighestSeverity'] = $highestSeverity;
41+
return $this;
42+
}
43+
44+
/**
45+
* Set Notifications
46+
*
47+
* @param Notification[] $notifications
48+
* @return $this
49+
*/
50+
public function setNotifications(array $notifications)
51+
{
52+
$this->values['Notifications'] = $notifications;
53+
return $this;
54+
}
55+
56+
/**
57+
* Set TransactionDetail
58+
*
59+
* @param TransactionDetail $transactionDetail
60+
* @return $this
61+
*/
62+
public function setTransactionDetail(TransactionDetail $transactionDetail)
63+
{
64+
$this->values['TransactionDetail'] = $transactionDetail;
65+
return $this;
66+
}
67+
68+
/**
69+
* Set Version
70+
*
71+
* @param VersionId $version
72+
* @return $this
73+
*/
74+
public function setVersion(VersionId $version)
75+
{
76+
$this->values['Version'] = $version;
77+
return $this;
78+
}
79+
80+
/**
81+
* Set JobId
82+
*
83+
* @param string $jobId
84+
* @return $this
85+
*/
86+
public function setJobId($jobId)
87+
{
88+
$this->values['JobId'] = $jobId;
89+
return $this;
90+
}
91+
92+
/**
93+
* Set ServiceType
94+
*
95+
* @param \FedEx\OpenShipService\SimpleType\ServiceType|string $serviceType
96+
* @return $this
97+
*/
98+
public function setServiceType($serviceType)
99+
{
100+
$this->values['ServiceType'] = $serviceType;
101+
return $this;
102+
}
103+
104+
/**
105+
* Provides Completed Shipment Details for PAY AS YOU GO scenarios of FXRS
106+
*
107+
* @param CompletedShipmentDetail $completedShipmentDetail
108+
* @return $this
109+
*/
110+
public function setCompletedShipmentDetail(CompletedShipmentDetail $completedShipmentDetail)
111+
{
112+
$this->values['CompletedShipmentDetail'] = $completedShipmentDetail;
113+
return $this;
114+
}
115+
116+
/**
117+
* Empty unless error label behavior is PACKAGE_ERROR_LABELS and one or more errors occured during transaction processing.
118+
*
119+
* @param ShippingDocument[] $errorLabels
120+
* @return $this
121+
*/
122+
public function setErrorLabels(array $errorLabels)
123+
{
124+
$this->values['ErrorLabels'] = $errorLabels;
125+
return $this;
126+
}
127+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<?php
2+
namespace FedEx\OpenShipService\ComplexType;
3+
4+
use FedEx\AbstractComplexType;
5+
6+
/**
7+
* This request adds one or more packages to an existing open shipment.
8+
*
9+
* @author Jeremy Dunn <[email protected]>
10+
* @package PHP FedEx API wrapper
11+
* @subpackage OpenShip Service
12+
*
13+
* @property WebAuthenticationDetail $WebAuthenticationDetail
14+
* @property ClientDetail $ClientDetail
15+
* @property TransactionDetail $TransactionDetail
16+
* @property VersionId $Version
17+
* @property string $Index
18+
* @property \FedEx\OpenShipService\SimpleType\AddPackagesToOpenShipmentActionType|string[] $Actions
19+
* @property RequestedPackageLineItem[] $RequestedPackageLineItems
20+
21+
*/
22+
class AddPackagesToOpenShipmentRequest extends AbstractComplexType
23+
{
24+
/**
25+
* Name of this complex type
26+
*
27+
* @var string
28+
*/
29+
protected $name = 'AddPackagesToOpenShipmentRequest';
30+
31+
/**
32+
* Descriptive data to be used in authentication of the sender's identity (and right to use FedEx web services).
33+
*
34+
* @param WebAuthenticationDetail $webAuthenticationDetail
35+
* @return $this
36+
*/
37+
public function setWebAuthenticationDetail(WebAuthenticationDetail $webAuthenticationDetail)
38+
{
39+
$this->values['WebAuthenticationDetail'] = $webAuthenticationDetail;
40+
return $this;
41+
}
42+
43+
/**
44+
* Set ClientDetail
45+
*
46+
* @param ClientDetail $clientDetail
47+
* @return $this
48+
*/
49+
public function setClientDetail(ClientDetail $clientDetail)
50+
{
51+
$this->values['ClientDetail'] = $clientDetail;
52+
return $this;
53+
}
54+
55+
/**
56+
* Set TransactionDetail
57+
*
58+
* @param TransactionDetail $transactionDetail
59+
* @return $this
60+
*/
61+
public function setTransactionDetail(TransactionDetail $transactionDetail)
62+
{
63+
$this->values['TransactionDetail'] = $transactionDetail;
64+
return $this;
65+
}
66+
67+
/**
68+
* Set Version
69+
*
70+
* @param VersionId $version
71+
* @return $this
72+
*/
73+
public function setVersion(VersionId $version)
74+
{
75+
$this->values['Version'] = $version;
76+
return $this;
77+
}
78+
79+
/**
80+
* Customer-assigned identifier for this shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
81+
*
82+
* @param string $index
83+
* @return $this
84+
*/
85+
public function setIndex($index)
86+
{
87+
$this->values['Index'] = $index;
88+
return $this;
89+
}
90+
91+
/**
92+
* Specifies the optional actions to be performed during the addition of packages to this open shipment.
93+
*
94+
* @param \FedEx\OpenShipService\SimpleType\AddPackagesToOpenShipmentActionType[]|string[] $actions
95+
* @return $this
96+
*/
97+
public function setActions(array $actions)
98+
{
99+
$this->values['Actions'] = $actions;
100+
return $this;
101+
}
102+
103+
/**
104+
* One or more package-attribute descriptions, each of which describes an individual package in the shipment.
105+
*
106+
* @param RequestedPackageLineItem[] $requestedPackageLineItems
107+
* @return $this
108+
*/
109+
public function setRequestedPackageLineItems(array $requestedPackageLineItems)
110+
{
111+
$this->values['RequestedPackageLineItems'] = $requestedPackageLineItems;
112+
return $this;
113+
}
114+
}

0 commit comments

Comments
 (0)