From bc61cec50210609e53d1cf7a5b099f4741c8c10e Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Thu, 27 Sep 2018 14:56:27 +0200 Subject: [PATCH 01/16] Add MondialRelay support --- src/Basket/BasketService.php | 24 ++++++++++++++++++++++++ src/Shipping/MondialRelayService.php | 23 +++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 src/Shipping/MondialRelayService.php diff --git a/src/Basket/BasketService.php b/src/Basket/BasketService.php index 91ee9244..f5f10a82 100644 --- a/src/Basket/BasketService.php +++ b/src/Basket/BasketService.php @@ -431,6 +431,7 @@ public function mergeBaskets(string $targetBasketId, string $sourceBasketId) public function setPickupPoint(SetPickupPointCommand $command): void { $command->validate(); + $this->client->post('basket/'.$command->getBasketId().'/chronorelais-pickup-point', [ RequestOptions::JSON => [ 'pickupPointId' => $command->getPickupPointId(), @@ -441,6 +442,29 @@ public function setPickupPoint(SetPickupPointCommand $command): void ]); } + /** + * Sets a pickup point as the basket's shipping destination. + * + * @param SetPickupPointCommand $command + * + * @return array The full address + * + * @throws SomeParametersAreInvalid + */ + public function setMRPickupPoint(SetPickupPointCommand $command): array + { + $command->validate(); + + return $this->client->post(sprintf('basket/%s/mondialrelay-pickup-point', $command->getBasketId()), [ + RequestOptions::JSON => [ + 'pickupPointId' => $command->getPickupPointId(), + 'title' => $command->getTitle()->getValue(), + 'firstName' => $command->getFirstName(), + 'lastName' => $command->getLastName(), + ], + ]); + } + private static function serializeComment(Comment $comment): array { return $comment->toArray(); diff --git a/src/Shipping/MondialRelayService.php b/src/Shipping/MondialRelayService.php new file mode 100644 index 00000000..11eb851c --- /dev/null +++ b/src/Shipping/MondialRelayService.php @@ -0,0 +1,23 @@ +client->get('mondial-relay/points-relais', [ + RequestOptions::QUERY => [ + 'zipCode' => $zipCode, + ], + ]); + } +} From 6172c76bc45aebf6e52f2f20af8a452e464d217c Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Tue, 30 Oct 2018 15:01:48 +0100 Subject: [PATCH 02/16] Add MondialRelay getBrandCode --- src/Shipping/MondialRelayBrandCode.php | 31 +++++++++++ src/Shipping/MondialRelayService.php | 7 +++ tests/Shipping/MondialRelayServiceTest.php | 31 +++++++++++ .../testGetBrandCode.yml | 55 +++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 src/Shipping/MondialRelayBrandCode.php create mode 100644 tests/Shipping/MondialRelayServiceTest.php create mode 100644 tests/Shipping/MondialRelayServiceTest/testGetBrandCode.yml diff --git a/src/Shipping/MondialRelayBrandCode.php b/src/Shipping/MondialRelayBrandCode.php new file mode 100644 index 00000000..36141e1f --- /dev/null +++ b/src/Shipping/MondialRelayBrandCode.php @@ -0,0 +1,31 @@ +value = $value; + } + + public function getValue(): string + { + return $this->value; + } + + public function __toString() + { + return $this->value; + } +} diff --git a/src/Shipping/MondialRelayService.php b/src/Shipping/MondialRelayService.php index 11eb851c..ca7f273f 100644 --- a/src/Shipping/MondialRelayService.php +++ b/src/Shipping/MondialRelayService.php @@ -20,4 +20,11 @@ public function searchPickupPoints(string $zipCode): array ], ]); } + + public function getBrandCode(): MondialRelayBrandCode + { + $result = $this->client->get('mondial-relay/brand-code'); + + return new MondialRelayBrandCode($result['brandCode']); + } } diff --git a/tests/Shipping/MondialRelayServiceTest.php b/tests/Shipping/MondialRelayServiceTest.php new file mode 100644 index 00000000..1b36c3a4 --- /dev/null +++ b/tests/Shipping/MondialRelayServiceTest.php @@ -0,0 +1,31 @@ +buildMondialRelayService(); + + $brandCode = $mondialRelay->getBrandCode(); + + $this->assertSame($brandCode->getValue(), 'BDTEST13'); + } + + private function buildMondialRelayService($userEmail = 'admin@wizaplace.com', $userPassword = 'password'): MondialRelayService + { + $apiClient = $this->buildApiClient(); + $apiClient->authenticate($userEmail, $userPassword); + + return new MondialRelayService($apiClient); + } +} diff --git a/tests/Shipping/MondialRelayServiceTest/testGetBrandCode.yml b/tests/Shipping/MondialRelayServiceTest/testGetBrandCode.yml new file mode 100644 index 00000000..32a76885 --- /dev/null +++ b/tests/Shipping/MondialRelayServiceTest/testGetBrandCode.yml @@ -0,0 +1,55 @@ + +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/users/authenticate' + headers: + Host: wizaplace.loc + Accept-Encoding: null + Authorization: 'Basic YWRtaW5Ad2l6YXBsYWNlLmNvbTpwYXNzd29yZA==' + User-Agent: Wizaplace-PHP-SDK/v1.40.0 + VCR-index: '0' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Tue, 30 Oct 2018 13:57:40 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 0b224b + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/0b224b' + Content-Length: '62' + Content-Type: application/json + body: '{"id":2,"apiKey":"joU3IzE1zWYTuBx3o9SKAr29cdtzv\/j0fy\/Z2tvn"}' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/mondial-relay/brand-code' + headers: + Host: wizaplace.loc + Accept-Encoding: null + User-Agent: Wizaplace-PHP-SDK/v1.40.0 + Authorization: 'token joU3IzE1zWYTuBx3o9SKAr29cdtzv/j0fy/Z2tvn' + VCR-index: '1' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Tue, 30 Oct 2018 13:57:41 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: aa6a91 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/aa6a91' + Content-Length: '24' + Content-Type: application/json + body: '{"brandCode":"BDTEST13"}' From 851515a64eb590087fc299ad0871354f19337376 Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Tue, 30 Oct 2018 16:29:00 +0100 Subject: [PATCH 03/16] Add MondialRelay model and tests --- src/Basket/BasketService.php | 8 +- src/Shipping/MondialRelayOpening.php | 84 ++++++++ src/Shipping/MondialRelayPoint.php | 198 ++++++++++++++++++ src/Shipping/MondialRelayService.php | 7 + tests/Shipping/MondialRelayServiceTest.php | 35 ++++ .../testGetPickupPoint.yml | 55 +++++ 6 files changed, 384 insertions(+), 3 deletions(-) create mode 100644 src/Shipping/MondialRelayOpening.php create mode 100644 src/Shipping/MondialRelayPoint.php create mode 100644 tests/Shipping/MondialRelayServiceTest/testGetPickupPoint.yml diff --git a/src/Basket/BasketService.php b/src/Basket/BasketService.php index f5f10a82..bbdc2d97 100644 --- a/src/Basket/BasketService.php +++ b/src/Basket/BasketService.php @@ -423,7 +423,8 @@ public function mergeBaskets(string $targetBasketId, string $sourceBasketId) } /** - * Sets a pickup point as the basket's shipping destination. + * Sets a pickup point as the basket's shipping destination for a + * Chrono Relais shipping type. * * @param SetPickupPointCommand $command * @throws SomeParametersAreInvalid @@ -443,7 +444,8 @@ public function setPickupPoint(SetPickupPointCommand $command): void } /** - * Sets a pickup point as the basket's shipping destination. + * Sets a pickup point as the basket's shipping destination for a + * Mondial Relay shipping type. * * @param SetPickupPointCommand $command * @@ -451,7 +453,7 @@ public function setPickupPoint(SetPickupPointCommand $command): void * * @throws SomeParametersAreInvalid */ - public function setMRPickupPoint(SetPickupPointCommand $command): array + public function setMondialrelayPickupPoint(SetPickupPointCommand $command): array { $command->validate(); diff --git a/src/Shipping/MondialRelayOpening.php b/src/Shipping/MondialRelayOpening.php new file mode 100644 index 00000000..bf63dd59 --- /dev/null +++ b/src/Shipping/MondialRelayOpening.php @@ -0,0 +1,84 @@ + + * @copyright Copyright (c) Wizacha + * @license Proprietary + */ +declare(strict_types = 1); + +namespace Wizaplace\SDK\Shipping; + +use function theodorejb\polycast\to_int; + +class MondialRelayOpening +{ + /** + * Day of the week. 0 = Monday + * + * @var int + */ + private $day; + + /** + * The hour at which the relay point opens for the 1st time interval of the day. + * Ex: 0930 + * + * @var string + */ + private $openingHour1; // phpcs:ignore + + /** + * The hour at which the relay point closes for the 1st time interval of the day. + * + * @var string + */ + private $openingHour2; // phpcs:ignore + + /** + * The hour at which the relay point opens for the 2nd time interval of the day. + * + * @var string + */ + private $openingHour3; // phpcs:ignore + + /** + * The hour at which the relay point closes for the 2nd time interval of the day. + * + * @var string + */ + private $openingHour4; // phpcs:ignore + + public function __construct(array $data) + { + $this->day = to_int($data['day']); + $this->openingHour1 = $data['openingHour1']; + $this->openingHour2 = $data['openingHour2']; + $this->openingHour3 = $data['openingHour3']; + $this->openingHour4 = $data['openingHour4']; + } + + public function getDay(): int + { + return $this->day; + } + + public function getOpeningHour1(): string + { + return $this->openingHour1; + } + + public function getOpeningHour2(): string + { + return $this->openingHour2; + } + + public function getOpeningHour3(): string + { + return $this->openingHour3; + } + + public function getOpeningHour4(): string + { + return $this->openingHour4; + } +} diff --git a/src/Shipping/MondialRelayPoint.php b/src/Shipping/MondialRelayPoint.php new file mode 100644 index 00000000..af54423d --- /dev/null +++ b/src/Shipping/MondialRelayPoint.php @@ -0,0 +1,198 @@ + + * @copyright Copyright (c) Wizacha + * @license Proprietary + */ +declare(strict_types = 1); + +namespace Wizaplace\SDK\Shipping; + +use function theodorejb\polycast\to_int; + +class MondialRelayPoint +{ + /** + * @var string + */ + private $id; + + /** + * @var string[] + */ + private $address; + + /** + * @var string + */ + private $zipCode; + + /** + * @var string + */ + private $city; + + /** + * @var string + */ + private $country; + + /** + * @var string|null + */ + private $location1; // phpcs:ignore + + /** + * @var string|null + */ + private $location2; // phpcs:ignore + + /** + * @var string + */ + private $latitude; + + /** + * @var string + */ + private $longitude; + + /** + * @var string + */ + private $activityType; + + /** + * @var string + */ + private $information; + + /** + * @var MondialRelayOpening[] + */ + private $openingHours; + + /** + * @var string + */ + private $availabilityInformation; + + /** + * @var string + */ + private $urlPicture; + + /** + * @var string + */ + private $urlMap; + + /** + * @var int + * + * The distance in meters. + */ + private $distance; + + public function __construct(array $data) + { + $this->id = $data['id']; + $this->address = $data['address']; + $this->zipCode = $data['zipCode']; + $this->city = $data['city']; + $this->country = $data['country']; + $this->location1 = $data['location1']; + $this->location2 = $data['location2']; + $this->latitude = $data['latitude']; + $this->longitude = $data['longitude']; + $this->activityType = $data['activityType']; + $this->information = $data['information']; + $this->openingHours = array_map(function ($elt) { + return new MondialRelayOpening($elt); + }, $data['openingHours']); + $this->availabilityInformation = $data['availabilityInformation']; + $this->urlPicture = $data['urlPicture']; + $this->urlMap = $data['urlMap']; + $this->distance = to_int($data['distance']); + } + + public function getId(): string + { + return $this->id; + } + + public function getAddress(): array + { + return $this->address; + } + + public function getZipCode(): string + { + return $this->zipCode; + } + + public function getCity(): string + { + return $this->city; + } + + public function getCountry(): string + { + return $this->country; + } + + public function getLocation1(): ?string + { + return $this->location1; + } + + public function getLocation2(): ?string + { + return $this->location2; + } + + public function getLatitude(): string + { + return $this->latitude; + } + + public function getLongitude(): string + { + return $this->longitude; + } + + public function getActivityType(): string + { + return $this->activityType; + } + + public function getInformation(): ?string + { + return $this->information; + } + + public function getOpeningHours(): array + { + return $this->openingHours; + } + + public function getAvailabilityInformation(): ?string + { + return $this->availabilityInformation; + } + + public function getUrlPicture(): string + { + return $this->urlPicture; + } + + public function getUrlMap(): string + { + return $this->urlMap; + } + + public function getDistance(): int + { + return $this->distance; + } +} diff --git a/src/Shipping/MondialRelayService.php b/src/Shipping/MondialRelayService.php index ca7f273f..14c2de7b 100644 --- a/src/Shipping/MondialRelayService.php +++ b/src/Shipping/MondialRelayService.php @@ -21,6 +21,13 @@ public function searchPickupPoints(string $zipCode): array ]); } + public function getPickupPoint(string $pickupPointId): MondialRelayPoint + { + $result = $this->client->get('mondial-relay/points-relais/'.$pickupPointId); + + return new MondialRelayPoint($result); + } + public function getBrandCode(): MondialRelayBrandCode { $result = $this->client->get('mondial-relay/brand-code'); diff --git a/tests/Shipping/MondialRelayServiceTest.php b/tests/Shipping/MondialRelayServiceTest.php index 1b36c3a4..d2532235 100644 --- a/tests/Shipping/MondialRelayServiceTest.php +++ b/tests/Shipping/MondialRelayServiceTest.php @@ -7,6 +7,7 @@ namespace Wizaplace\SDK\Tests\Shipping; +use Wizaplace\SDK\Shipping\MondialRelayOpening; use Wizaplace\SDK\Shipping\MondialRelayService; use Wizaplace\SDK\Tests\ApiTestCase; @@ -21,6 +22,40 @@ public function testGetBrandCode() $this->assertSame($brandCode->getValue(), 'BDTEST13'); } + public function testGetPickupPoint() + { + $mondialRelay = $this->buildMondialRelayService(); + + $point = $mondialRelay->getPickupPoint('003393'); + + $this->assertSame($point->getId(), '003393'); + $this->assertSame($point->getAddress(), [ + 'KFE TOLSTOI PMU', + '', + '97 COURS TOLSTOI', + '', + ]); + $this->assertSame($point->getZipCode(), '69100'); + $this->assertSame($point->getCity(), 'VILLEURBANNE'); + $this->assertSame($point->getCountry(), 'FR'); + $this->assertSame($point->getLocation1(), ''); + $this->assertSame($point->getLocation2(), ''); + $this->assertSame($point->getLatitude(), '45,7622380'); + $this->assertSame($point->getLongitude(), '04,8804019'); + $this->assertSame($point->getActivityType(), '000'); + $this->assertSame($point->getInformation(), ''); + $this->assertSame($point->getAvailabilityInformation(), null); + $this->assertSame($point->getUrlPicture(), 'https://ww2.mondialrelay.com/public/permanent/photo_relais.aspx?ens=CC______41&num=003393&pays=FR&crc=579966753D9EE050A340DCDC50842C3D'); + $this->assertSame($point->getUrlMap(), 'https://ww2.mondialrelay.com/public/permanent/plan_relais.aspx?ens=BDTEST1311&num=003393&pays=FR&crc=30ED83CB00D7DC4EFC5B3281E987FE58'); + $this->assertSame($point->getDistance(), 0); + + for ($i = 0; $i <= 6; $i++) { + $opening = $point->getOpeningHours()[$i]; + $this->assertInstanceOf(MondialRelayOpening::class, $opening); + $this->assertSame($opening->getDay(), $i); + } + } + private function buildMondialRelayService($userEmail = 'admin@wizaplace.com', $userPassword = 'password'): MondialRelayService { $apiClient = $this->buildApiClient(); diff --git a/tests/Shipping/MondialRelayServiceTest/testGetPickupPoint.yml b/tests/Shipping/MondialRelayServiceTest/testGetPickupPoint.yml new file mode 100644 index 00000000..b195b49c --- /dev/null +++ b/tests/Shipping/MondialRelayServiceTest/testGetPickupPoint.yml @@ -0,0 +1,55 @@ + +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/users/authenticate' + headers: + Host: wizaplace.loc + Accept-Encoding: null + Authorization: 'Basic YWRtaW5Ad2l6YXBsYWNlLmNvbTpwYXNzd29yZA==' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + VCR-index: '0' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Tue, 30 Oct 2018 14:56:03 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 634c64 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/634c64' + Content-Length: '61' + Content-Type: application/json + body: '{"id":2,"apiKey":"gl1vZXKY3Tl\/qEpmjiRrKQvXV7hRpDvMv4ZGjbnH"}' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/mondial-relay/points-relais/003393' + headers: + Host: wizaplace.loc + Accept-Encoding: null + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token gl1vZXKY3Tl/qEpmjiRrKQvXV7hRpDvMv4ZGjbnH' + VCR-index: '1' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Tue, 30 Oct 2018 14:56:03 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: f872c2 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/f872c2' + Content-Length: '1324' + Content-Type: application/json + body: '{"id":"003393","address":["KFE TOLSTOI PMU","","97 COURS TOLSTOI",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7622380","longitude":"04,8804019","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0900","openingHour2":"1500","openingHour3":"0000","openingHour4":"0000"},{"day":1,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2000"},{"day":2,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2000"},{"day":3,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2000"},{"day":4,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2200"},{"day":5,"openingHour1":"1100","openingHour2":"1530","openingHour3":"1800","openingHour4":"2200"},{"day":6,"openingHour1":"1100","openingHour2":"1530","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=003393\u0026pays=FR\u0026crc=579966753D9EE050A340DCDC50842C3D","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=003393\u0026pays=FR\u0026crc=30ED83CB00D7DC4EFC5B3281E987FE58","distance":0}' From 534b67b8128a3a681a18e7b401602b326b7b9dfb Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Fri, 2 Nov 2018 11:38:46 +0100 Subject: [PATCH 04/16] Add missing fields --- src/Order/ShippingAddress.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Order/ShippingAddress.php b/src/Order/ShippingAddress.php index 1d7792c6..22579959 100644 --- a/src/Order/ShippingAddress.php +++ b/src/Order/ShippingAddress.php @@ -9,4 +9,20 @@ final class ShippingAddress extends Address { + /** @var string */ + private $pickupPointId; + + /** + * @internal + */ + public function __construct(array $data) + { + parent::__construct($data); + $this->pickupPointId = $data['pickupPointId']; + } + + public function getPickupPointId(): string + { + return $this->pickupPointId; + } } From 9102f13e709786970bc65b2e67c9c81c87e65d06 Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Fri, 2 Nov 2018 14:23:29 +0100 Subject: [PATCH 05/16] Fix tests --- tests/ApiClientTest/testAuthentication.yml | 28 +- .../BasketServiceTest/testFullCheckout.yml | 240 ++---------------- tests/Order/OrderServiceTest/testGetOrder.yml | 26 +- .../testGetOrderWithComment.yml | 26 +- .../testGetOrdersWhichReturnsCompanyName.yml | 28 +- 5 files changed, 85 insertions(+), 263 deletions(-) diff --git a/tests/ApiClientTest/testAuthentication.yml b/tests/ApiClientTest/testAuthentication.yml index c1642add..1e06bbed 100644 --- a/tests/ApiClientTest/testAuthentication.yml +++ b/tests/ApiClientTest/testAuthentication.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic Y3VzdG9tZXItMUB3b3JsZC1jb21wYW55LmNvbTpwYXNzd29yZC1jdXN0b21lci0x' - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 14:17:33 GMT' + Date: 'Wed, 14 Nov 2018 12:13:25 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: c75543 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/c75543' - Content-Length: '62' + X-Debug-Token: 931a9c + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/931a9c' + Content-Length: '60' Content-Type: application/json - body: '{"id":7,"apiKey":"+yNl6nweKBf\/OXWvz3QmSa\/4Jot4tzbljkE2y9KQ"}' + body: '{"id":7,"apiKey":"rzCgLWBovhnOL+brOpBl2EZgaMNkuDWE+pqwxGDw"}' - request: method: GET @@ -32,8 +33,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token +yNl6nweKBf/OXWvz3QmSa/4Jot4tzbljkE2y9KQ' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token rzCgLWBovhnOL+brOpBl2EZgaMNkuDWE+pqwxGDw' VCR-index: '1' Accept: null response: @@ -42,12 +43,13 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 14:17:33 GMT' + Date: 'Wed, 14 Nov 2018 12:13:26 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: ab540d - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/ab540d' - Content-Length: '4909' + X-Debug-Token: d7ada4 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/d7ada4' + Content-Length: '6344' Content-Type: application/json - body: '[{"id":2,"basketId":"2b4d182f-af3f-37c4-87d7-e84dec020920","companyId":3,"companyName":"The World Company Inc.","total":108.4,"taxTotal":2.23,"subtotal":108.4,"timestamp":1540563427,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","productImageId":null,"price":54.2,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":1,"basketId":"4fec2923-4eac-3420-a9c6-abf6dc578744","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1540563427,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1540563427,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":5,"basketId":"c3818958-2089-3549-b4ab-66a5c07b77dc","companyId":3,"companyName":"The World Company Inc.","total":66.7,"taxTotal":1.4,"subtotal":66.7,"timestamp":1540563427,"status":"STANDBY_VENDOR","workflow":"workflow_order_validation_pending_vendor_validation_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}]' + body: '[{"id":1,"basketId":"4fec2923-4eac-3420-a9c6-abf6dc578744","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542197575,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":2,"basketId":"2b4d182f-af3f-37c4-87d7-e84dec020920","companyId":3,"companyName":"The World Company Inc.","total":108.4,"taxTotal":2.23,"subtotal":108.4,"timestamp":1542197575,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","productImageId":null,"price":54.2,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542197575,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":5,"basketId":"c3818958-2089-3549-b4ab-66a5c07b77dc","companyId":3,"companyName":"The World Company Inc.","total":66.7,"taxTotal":1.4,"subtotal":66.7,"timestamp":1542197575,"status":"STANDBY_VENDOR","workflow":"workflow_order_validation_pending_vendor_validation_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":10,"basketId":"f5111ec1-894e-3655-94c8-0fd80cf8a32e","companyId":3,"companyName":"The World Company Inc.","total":66.7,"taxTotal":1.4,"subtotal":66.7,"timestamp":1542197575,"status":"STANDBY_VENDOR","workflow":"workflow_order_validation_pending_vendor_validation_processing","shippingName":"","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"mondial","lastname":"relay","address":"25 rue de la gare","address2":"","city":"Lyon","zipcode":"69009","country":"FR","company":"wiz","pickupPointId":"00393"},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}]' diff --git a/tests/Basket/BasketServiceTest/testFullCheckout.yml b/tests/Basket/BasketServiceTest/testFullCheckout.yml index e59771c5..26951a5c 100644 --- a/tests/Basket/BasketServiceTest/testFullCheckout.yml +++ b/tests/Basket/BasketServiceTest/testFullCheckout.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic Y3VzdG9tZXItMUB3b3JsZC1jb21wYW55LmNvbTpwYXNzd29yZC1jdXN0b21lci0x' - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 14:29:37 GMT' + Date: 'Wed, 14 Nov 2018 12:14:05 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 13e80b - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/13e80b' - Content-Length: '60' + X-Debug-Token: 53f5a9 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/53f5a9' + Content-Length: '61' Content-Type: application/json - body: '{"id":7,"apiKey":"9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM"}' + body: '{"id":7,"apiKey":"tKLuzjLbLKfurrtz3+\/sh3I4yEHx96Tokwu0cnwJ"}' - request: method: POST @@ -33,8 +34,8 @@ Host: wizaplace.loc Content-Length: '0' Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token tKLuzjLbLKfurrtz3+/sh3I4yEHx96Tokwu0cnwJ' VCR-index: '1' Accept: null response: @@ -43,232 +44,45 @@ code: '201' message: Created headers: - Date: 'Fri, 26 Oct 2018 14:29:38 GMT' + Date: 'Wed, 14 Nov 2018 12:14:06 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 84e8c1 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/84e8c1' - Set-Cookie: 'sf_redirect=%7B%22token%22%3A%2284e8c1%22%2C%22route%22%3A%22api_basket_create%22%2C%22method%22%3A%22POST%22%2C%22controller%22%3A%7B%22class%22%3A%22Wizacha%5C%5CAppBundle%5C%5CController%5C%5CApi%5C%5CBasketController%22%2C%22method%22%3A%22createAction%22%2C%22file%22%3A%22%5C%2Fvagrant%5C%2Fsrc%5C%2FAppBundle%5C%2FController%5C%2FApi%5C%2FBasketController.php%22%2C%22line%22%3A42%7D%2C%22status_code%22%3A201%2C%22status_text%22%3A%22Created%22%7D; path=/; httponly' + X-Debug-Token: 4df107 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/4df107' + Set-Cookie: 'sf_redirect=%7B%22token%22%3A%224df107%22%2C%22route%22%3A%22api_basket_create%22%2C%22method%22%3A%22POST%22%2C%22controller%22%3A%7B%22class%22%3A%22Wizacha%5C%5CAppBundle%5C%5CController%5C%5CApi%5C%5CBasketController%22%2C%22method%22%3A%22createAction%22%2C%22file%22%3A%22%5C%2Fvagrant%5C%2Fsrc%5C%2FAppBundle%5C%2FController%5C%2FApi%5C%2FBasketController.php%22%2C%22line%22%3A42%7D%2C%22status_code%22%3A201%2C%22status_text%22%3A%22Created%22%7D; path=/; httponly' Content-Length: '38' Content-Type: application/json - body: '"fe7be87e-6aa1-4c22-b7d8-463398389a47"' + body: '"1d80d335-39e2-4772-91a3-6ed98cc2b9ad"' - request: method: POST - url: 'http://wizaplace.loc/api/v1/basket/fe7be87e-6aa1-4c22-b7d8-463398389a47/add' + url: 'http://wizaplace.loc/api/v1/basket/1d80d335-39e2-4772-91a3-6ed98cc2b9ad/add' headers: Host: wizaplace.loc Expect: null Accept-Encoding: null Content-Type: application/x-www-form-urlencoded - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token tKLuzjLbLKfurrtz3+/sh3I4yEHx96Tokwu0cnwJ' VCR-index: '2' Accept: null body: 'declinationId=1&quantity=1' response: status: http_version: '1.1' - code: '200' - message: OK - headers: - Date: 'Fri, 26 Oct 2018 14:29:38 GMT' - Server: 'Apache/2.4.25 (Debian)' - Cache-Control: 'no-cache, private' - Content-Language: fr - X-Debug-Token: 0067a2 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/0067a2' - Content-Length: '14' - Content-Type: application/json - body: '{"quantity":1}' -- - request: - method: POST - url: 'http://wizaplace.loc/api/v1/basket/fe7be87e-6aa1-4c22-b7d8-463398389a47/add' - headers: - Host: wizaplace.loc - Expect: null - Accept-Encoding: null - Content-Type: application/x-www-form-urlencoded - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' - VCR-index: '3' - Accept: null - body: 'declinationId=1&quantity=1' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Date: 'Fri, 26 Oct 2018 14:29:38 GMT' - Server: 'Apache/2.4.25 (Debian)' - Cache-Control: 'no-cache, private' - Content-Language: fr - X-Debug-Token: ce8d90 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/ce8d90' - Content-Length: '14' - Content-Type: application/json - body: '{"quantity":2}' -- - request: - method: GET - url: 'http://wizaplace.loc/api/v1/basket/fe7be87e-6aa1-4c22-b7d8-463398389a47' - headers: - Host: wizaplace.loc - Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' - VCR-index: '4' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK + code: '400' + message: 'Bad Request' headers: - Date: 'Fri, 26 Oct 2018 14:29:38 GMT' + Date: 'Wed, 14 Nov 2018 12:14:07 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: dbf09c - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/dbf09c' - Content-Length: '2414' - Content-Type: application/json - body: '{"id":"fe7be87e-6aa1-4c22-b7d8-463398389a47","comment":"","coupons":[],"billingAddress":{"title":"","firstname":"","lastname":"","company":"","address":"","address2":"","zipcode":"","city":"","state":"","country":"","phone":"","email":""},"shippingAddress":{"title":"","firstname":"","lastname":"","company":"","address":"","address2":"","zipcode":"","city":"","state":"","country":"","phone":"","email":""},"companyGroups":[{"company":{"id":3,"name":"The World Company Inc.","slug":"the-world-company-inc."},"productTotalWithTaxes":135.8,"productTaxes":2.79,"shippingTotalWithTaxes":0,"shippingTaxes":0,"taxTotal":2.79,"shippingGroups":[{"id":1,"items":[{"declinationId":"1_0","productId":1,"productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productUrl":"https:\/\/wizaplace.loc\/it\/test-product-slug.html","individualPrice":67.9,"individualTax":1.4,"crossedOutPrice":null,"greenTax":0,"mainImage":{"id":0},"quantity":2,"total":135.8,"options":[],"comment":"","unitPrice":{"priceWithoutVat":66.5,"priceWithTaxes":67.9,"vat":1.4},"totalPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79}}],"shippings":[{"id":1,"name":"TNT Express","type":"S","price":0,"deliveryTime":"24h","image":null,"shippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"selected":true},{"id":38,"name":"Lettre prioritaire","type":"S","price":0,"deliveryTime":"","image":null,"shippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"selected":false},{"id":39,"name":"Colissmo","type":"S","price":0,"deliveryTime":"","image":null,"shippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"selected":false}],"productTotalWithTaxes":135.8,"productTaxes":2.79,"shippingTotalWithTaxes":0,"shippingTaxes":0,"taxTotal":2.79,"itemsPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79},"selectedShippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"totalPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79}}]}],"subtotal":135.8,"totalDiscount":0,"totalShipping":0,"totalShippingTax":0,"totalTax":2.79,"total":135.8,"totalQuantity":2,"totalItemsPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79},"totalShippingsPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"totalGlobalPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79},"isEligibleToPickupPointsShipping":false,"isPickupPointsShipping":false}' -- - request: - method: POST - url: 'http://wizaplace.loc/api/v1/basket/fe7be87e-6aa1-4c22-b7d8-463398389a47/shippings' - headers: - Host: wizaplace.loc - Expect: null - Accept-Encoding: null + X-Debug-Token: cdbff4 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/cdbff4' + Content-Length: '65' + Connection: close Content-Type: application/json - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' - VCR-index: '5' - Accept: null - body: '{"shippingGroups":{"1":39}}' - response: - status: - http_version: '1.1' - code: '204' - message: 'No Content' - headers: - Date: 'Fri, 26 Oct 2018 14:29:39 GMT' - Server: 'Apache/2.4.25 (Debian)' - Cache-Control: 'no-cache, private' - Content-Language: fr - X-Debug-Token: e38898 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/e38898' - Content-Type: 'text/html; charset=UTF-8' -- - request: - method: GET - url: 'http://wizaplace.loc/api/v1/basket/fe7be87e-6aa1-4c22-b7d8-463398389a47/payments' - headers: - Host: wizaplace.loc - Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' - VCR-index: '6' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Date: 'Fri, 26 Oct 2018 14:29:39 GMT' - Server: 'Apache/2.4.25 (Debian)' - Cache-Control: 'no-cache, private' - Content-Language: fr - X-Debug-Token: 7879f3 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/7879f3' - Content-Length: '415' - Content-Type: application/json - body: '[{"id":1,"name":"CB","description":"Carte Bleue","position":0,"image":{"id":3},"type":"manual"},{"id":2,"name":"Visa","description":"Carte Visa","position":1,"image":null,"type":"manual"},{"id":3,"name":"MasterCard","description":"Carte MasterCard","position":2,"image":null,"type":"manual"},{"id":4,"name":"Paiement \u00e0 \u00e9ch\u00e9ance","description":"","position":3,"image":null,"type":"payment-deferment"}]' -- - request: - method: POST - url: 'http://wizaplace.loc/api/v1/basket/fe7be87e-6aa1-4c22-b7d8-463398389a47/order' - headers: - Host: wizaplace.loc - Expect: null - Accept-Encoding: null - Content-Type: application/x-www-form-urlencoded - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' - VCR-index: '7' - Accept: null - body: 'paymentId=1&acceptTermsAndConditions=1&redirectUrl=https%3A%2F%2Fdemo.loc%2Forder%2Fconfirm' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Date: 'Fri, 26 Oct 2018 14:29:39 GMT' - Server: 'Apache/2.4.25 (Debian)' - Cache-Control: 'no-cache, private' - Content-Language: fr - X-Debug-Token: 5d2958 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/5d2958' - Content-Length: '21' - Content-Type: application/json - body: '{"orders":[{"id":7}]}' -- - request: - method: GET - url: 'http://wizaplace.loc/api/v1/user/orders/7' - headers: - Host: wizaplace.loc - Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' - VCR-index: '8' - Accept: null - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Date: 'Fri, 26 Oct 2018 14:29:40 GMT' - Server: 'Apache/2.4.25 (Debian)' - Cache-Control: 'no-cache, private' - Content-Language: fr - X-Debug-Token: 65675a - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/65675a' - Content-Length: '1245' - Content-Type: application/json - body: '{"id":7,"basketId":"fe7be87e-6aa1-4c22-b7d8-463398389a47","companyId":3,"companyName":"The World Company Inc.","total":135.8,"taxTotal":2.79,"subtotal":135.8,"timestamp":1540564179,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"Colissmo","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":2,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' -- - request: - method: GET - url: 'http://wizaplace.loc/api/v1/user/orders/7/pdf-invoice' - headers: - Host: wizaplace.loc - Accept-Encoding: null - Accept: application/pdf - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token 9SN5a8IROPww3Ofjr2Y21tyzUo3sRK1ggxjWVuPM' - VCR-index: '9' - response: - status: - http_version: '1.1' - code: '200' - message: OK - headers: - Date: 'Fri, 26 Oct 2018 14:29:41 GMT' - Server: 'Apache/2.4.25 (Debian)' - Content-disposition: 'attachment; filename="Commandes-7.pdf"' - Cache-Control: 'no-cache, private' - Content-Language: fr - X-Debug-Token: bc913b - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/bc913b' - Transfer-Encoding: chunked - Content-Type: application/pdf - body: !!binary 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NDcgNzI3IDY0MCA4NDMgNjczIDgzMCA2OTAgNjkwIDM3NyA2OTAgNjkwIDQxMiA2NzggNjkwIDY5MCBdCl0KPj4KZW5kb2JqCjI3IDAgb2JqCjw8IC9MZW5ndGggNzE0ID4+CnN0cmVhbQovQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KMTIgZGljdCBiZWdpbgpiZWdpbmNtYXAKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4gZGVmCi9DTWFwTmFtZSAvQWRvYmUtSWRlbnRpdHktVUNTIGRlZgovQ01hcFR5cGUgMiBkZWYKMSBiZWdpbmNvZGVzcGFjZXJhbmdlCjwwMDAwPiA8RkZGRj4KZW5kY29kZXNwYWNlcmFuZ2UKMiBiZWdpbmJmcmFuZ2UKPDAwMDA+IDwwMDAwPiA8MDAwMD4KPDAwMDE+IDwwMDMyPiBbPDAwNDQ+IDwwMEM5PiA8MDA1ND4gPDAwNDE+IDwwMDQ5PiA8MDA0Qz4gPDAwNTM+IDwwMDIwPiA8MDA0NT4gPDAwNDM+IDwwMDRGPiA8MDA0RD4gPDAwNEU+IDwwMDY4PiA8MDA2NT4gPDAwNTc+IDwwMDZGPiA8MDA3Mj4gPDAwNkM+IDwwMDY0PiA8MDA2RD4gPDAwNzA+IDwwMDYxPiA8MDA2RT4gPDAwNzk+IDwwMDYzPiA8MDAyRT4gPDAwMjM+IDwwMDM3PiA8MDA3Mz4gPDAwNjY+IDwwMDc0PiA8MDA3NT4gPDAwNjk+IDwwMDNBPiA8MDA3Nj4gPDAwNTA+IDwwMDc4PiA8MDA1MT4gPDAwRTk+IDwwMDQ4PiA8MDAzMT4gPDAwMzM+IDwwMDJDPiA8MDAzMD4gPDIwQUM+IDwwMDJEPiA8MDA0Nj4gPDAwMzU+IDwwMDM4PiBdCmVuZGJmcmFuZ2UKZW5kY21hcApDTWFwTmFtZSBjdXJyZW50ZGljdCAvQ01hcCBkZWZpbmVyZXNvdXJjZSBwb3AKZW5kCmVuZAoKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZvbnQgL0RlamFWdVNhbnMtQm9sZAovRW5jb2RpbmcgL0lkZW50aXR5LUgKL0Rlc2NlbmRhbnRGb250cyBbMjYgMCBSXQovVG9Vbmljb2RlIDI3IDAgUj4+CmVuZG9iagoyOSAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9RREJBQUErRGVqYVZ1U2FucwovRmxhZ3MgNCAKL0ZvbnRCQm94IFstMTAyMC41MDc4MSAtNDYyLjg5MDYyNSAxNzkzLjQ1NzAzIDEyMzIuNDIxODcgXQovSXRhbGljQW5nbGUgMCAKL0FzY2VudCA5MjguMjIyNjU2IAovRGVzY2VudCAtMjM1LjgzOTg0MyAKL0NhcEhlaWdodCA5MjguMjIyNjU2IAovU3RlbVYgNDMuOTQ1MzEyNSAKL0ZvbnRGaWxlMiAzMCAwIFIKPj4KZW5kb2JqCjMwIDAgb2JqCjw8Ci9MZW5ndGgxIDIyMTgwIAovTGVuZ3RoIDMzIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJztfAt4VNW56Fp7HsGNIiGBgF7LTkIISEggIYRHeQzJJJkwmQkzkwQCeUxm9iQD82JmkhADhHd4KSACCiFQRMpBa6tVCyi2Visv7enB8vWg1VY5VHuObT32ei9CZuf8a+295xECIuDjft+dyc6svfZa//u1/gwgjBDqh1YgBUJGc1b2vLHNY2FmM1wVDa5WR+UL6btg/B8IDflVI2+1O+p1LyGUdBDmJjbCxIC8u6vh/o9wP6LRHVwyFnHbEBoKt6jb5bVZn7v/JRPcd8P9Crd1iQ9pkQOhYUvhnvNY3fxwb+mTcN+J0LR+CCsH4K1IhZAqR/UEQvgH4qfiD8jBDEKI6a9WKPopGUb5MfL0nEOhHnZE3Wgl4u4uc2jtaCbienrUiUIi3h3nxhfrEO75Uw8hBDHIIexUOlQHgcs4hBLik+PTkuOTHUrUHVDc331J2Bk34PLnfvVohJEd/4lpZ1YTeSQkD062M/eHLjGrDwIMO0LKg6rzMLoHaMPJipz4nMGp8anxybkKtcBgIVc4f/50qEaV1n1R8XZ3zmFhP657nWBf1/ORcovqM3QvGg47U+LUCUzSkLwheRPjB6aPTM9OGhI/ME6drk4fmcDkTWQ2dRrKMC4zdHaWGQxlnVfWrVmz7srVNeswXrdGVfbEHuFt4a3H92C853E8AefseWL/m6eEDqHjzVMYn3oTt+LWU28C9Rt7Lio3UZzjQDIIq+PUgxOThuRk503Mm5A+Mm1k+si8CTAekjRkcGKcOk76TE2B+ZEwr1CLi3NhcTpsZjZtNZnNpq1bzSZsMgtPrS4qwSvaP/hgRXtxyYpt5jlr1v2fy6uBRrPp0RJcUrx6VYlOV7JqdXEJ8xusL+1Yry816Ds6SvWVw6vmrnze2YBxg/P5lXOrhqfW2x95NxAMBt59xF6fimc0zdRoZjYFZs3EeOYsIBx1gvQCwMkEuCFUAjFpIKv0XLjJIxQCK+mpuTKxqSDfuNyJeRNz4HkSLFbM2Gqeg3c9LnxSW887zbzNc4K34fnVTz370mNlxjnmXZaaWn+At8+71LEW48JiRRpnrd/6futDGCfGj3w9e+h9ePbsLWtm6/ChH05ZHJg+bVBC2gvD4wcSBpZZKoDCnWAZJUDhCITSwGYIcvoe2YsaKmh44w3Ma916/6k3c6zpaRibytfWOhe1tC5yzvtk48aU1Pn3rV135MiR5jMnp7pKS0qa9bOTk/PfGnffMBxoem2Byex7YONmsKrT4CcWsMcklCJKJikhVUFQUptUipLC8VTjZFrx8MwZ06a/feGXJdqilj+ewacwWr4cz8wPbRS26XUY6/TbmFeSioqXC424fUf2+NAG1Xm8cNG/P1xdzRhDfy/IX72qYBZwG+j5SJUO3CYD1sFE9pxo0GkEEcGZqkwfGT8wb2Iy0KRKdwSCq4Sejg0Yb+jAeFUw4FjU1LJG+Mnr8MLmtUuaVfXna8Zl4s4u4YLw73u6cFZm3TvFI0bgf/tX3IAb4HdKGmDtACs4AFhzJKxEsMSgk5II5yDYtBTJJsJWCz8jc8HGc8DDlMVBvqHm0NyqH0758UMfuRbibduFTxY1t7Y/1NLsf6a2Jr9gd9tFO7950xeNHrfq4G/y7r9/pqbJPj5n+LCMRZ4X3/UuxkOHZv2uMCW1IL/dPWMaN3RsXd3Tb/r9CYnEwx8C6sYq2yAyZIkeTkgjHp6XmxefmqsW3TsXHCsnmdhrqlo2C6CNefXP5RWamd4nqufjo0dn1NR2/MTuwCuWX8UMNll21c1fYLbX1cz/55IlTE5OTlv95KkYe1wvjNaHVh5xjMvGuL7uwIm6ukHLi7RgBplH0hMTli8nVB0XKpQHgapEaplgFTmDJZQk4KQCRThKkkRuOHDs2JR5c9veWtHevuKttrnzmElgntu2mywW0/Zt5abDoWfV7BFb9rgDB4TLwuUDB3B2Fv70TFMg0HTmLHFiwPoaSKBVnSjF2hyKNvW1o/BS1l3dr078K2gzD8j7XNWFBsPaeHCZeIIfloEOc0FeOfG4BbcJa0eOCJ44cX7OnI4OVZfw6y2h/RvS03eXGc8xdVvwdBIbIrgoJsCiTvzyU/IESTF3WpS9xCXHJasHq5PUSYlJMJRsRbRZEIYiNS9nQi4JfxNyYThIdFrllgXmCr7L7hjOaPJCf2EYjOF6dZKwcbjD3sVXmBdUza+u+9vuPaPeydtEHv46r3PUnt1/s9bMB8t2jh1r54+3DRsyNAXwDW17xc6PHeuk9v3oVqxsGzJsSHIKPG3D6NFt1NJ7rkA0+Sv4NUhPQUQDzqxW/iP097Ohv6vOH7lyXjWG8DcQvL8RVqkRSsY5GH6YktCb7+AL+N1zoZOq81eTlH+9MoZYgbySQSzNW7A0VZGsSGVeEf7OpAltl5jJ59aHatefVw0IDVM8e2UMbhdWAgaIL3g77JNke/rMGdX5KxT3caDQDnaVRLSXGi/Z82DZwEhOUdqP4mnTl+4srzh2bFbV3ObXbDbmYGgB09VVZsQ1dU+GOpR1z9pzxmPcvESEqCgBiMQeRooJJwyOxnFFCZc6csxekwXss3rBuoSkIQ8oXhh0VxzGdseroecBmCMbgCmVhD5fz0XFxwBNjlCpcvIbImsb7CyeESOU4mPIssaf2+D1cyNk3FKTuVp4bAd+fAeOK59Tpsx95sGkwdjnf/u3Pj9OSsw4MmLQoH378AAc37UXD0wgEl4MttYE+ML5PZxpR4r5PYERAwCJikxgR3lFRfmO7RXlGJdXbP9sw3qM12/47POODRs6FH8KBE+fJo50+mRTYG9np/Cp8LfOLoy7OnECTuzsFGUV9wBgexBwSdJOAllNiGhhQh8SVI7W1tWu/mltDT42eXIT5PJjk6c0PwIfx6bPq3yotbJcsWHp1CkYt7Z9RNS032gQ1cR0HTDocVhlRMrTpgMVP4H6Yq6yjthAQnxOvMwwDGm4IxJ+9uj0acsem1sOQa2gcl7Tr208Ps4cCln3Gctqa55i2q7uf8YxPnvJEpCgDyTYDjzdh1KJzpKl1E6Vlc5BYQSCywNBxsmerGzvfr5/o+MXTt5Wb29wLhT+CZljx2PdH61Z9QvGZF6/Z37NPUxN1S/reXzfsNxnHxyShDs7MYsHPbkfb3v0jV1VVZVz9xLdfQb4XlemitEqjxR0cH32DrwEQZkqiH6gTAU/uEusCGm4Sj2tqAr5mLLQz8ApjgjFR0J5AGsFcNEBMYeDmgvlyfVJQnT05yD2MmKywlEFCzGYD/UGw+yTi5z3Tp07z/XnVashX17ECrCOQ4eFS6WlBjx9fZnRWLZ+g6GszDD86IiERAwFS0JFZhak1nWfXtq8iRaC+879Ht97L7OruvrA/trq6tr9B6qrJS4WAhcq6s3Aw+kzzB+6a8Glzx8hcjjd06P6GTxnxZicwwHhTPrI5LRkIDkB0kVaMt7+v3Hu1kcwfmSrcFaYhffh5946g996SygTrKqsqy2bN+EsnLF506EXXhJWCstffAmTHAQyOQgR+l6Sg65JN73SUToRv+JSTMoJbYlJSFOOHWOyohIOY4rNRvxhdaLsk1UwpLkPy2aZniI6IUGKEyO1AiFKceDo0amV85aebV+xov3s0nmVoVOUAouFUqN4ian58tPDfFY2BkT9cL8DB8ZlC0MoEWcpQSDlwyBlKSqDreBUnHxY8avQR+9gIZSjOl9xZSUEb4y6gDY7rEqTLEoOclDFJMuVLY1VsrW/rxgW2j9m7JixVyBJ7Nwp/KO2ztZQVVe36BmHnUTAZ0zGORZiiI/e2y8Ogsl/fg7HhfiB3NnspKF4wfzOPQvmQ9EKmD8E+qqollFecrwqN42agoBLhCcwfwaXdB88ogwUHy0mRkErTOXDdDWN9GGS0pKl0pqUmni78HApRAh96cPCJHzqyqp2jNtXXRHOqLJC/4pLdB1rS3SHIH6+94Fvcegw0ODt+UhxEnxdruTSiUGopUqOlMjpMZXcSKmSo6cSUJtik8FiqdqYr8XZ43bMeMNsalv2hyprvcthq69fWVSIx+c8PfNpfSnGi32/dVTNU854dlRiAn7wQYsmdSQ34EG9YX3n/AV40MARr04cdv/YMaaS0ekj7x0xW7d6b2U5OA6i+hmEX0cC8RWICIrUhM/eObjSJDwj/AqToxSVyyaQS/+oiEA8SvGz0H3MydBk5nL3dKKNwiOhi0fE9erhsP5ush4yMMRlMA0IIngsXobb8djfCO1nhfY3VOe7+ykuXxmjGt6NlOjKh/TsKOyJW6w6AP4D508sVZWyyWLJpEmVS2STBJXTRKn6latMtSRdOaQmSXvS5ROg5INU+uCHKuZKUeGytqLCYl3rQ4XFTPI0vaHhJwtdLtfTDQbD1C3bLKbh3EznY7t+utS3uK6rch6eOsnj3Liha+WypY1Vy7bv2HX8yafaV+QXYKiUVxz5lxPv/OLFNhDyvn3CJ8ywLXPMcEacs2WTxQSnSF3piJF42dJTJ5cvxWkj9atD3ODF3ucW1taUrYJadnjyTMdTP/7Vvk2bnY0TJ+GMMXO89dm5eNbM5UsPPfnqi4eeWtZekF9Zub8+EHxIuLzrcTXRTQXIOhfyEpF1TgL9gXJHkVpx9C+XLvzl0lHhvQv//fkFZV33TsVCcl3dr9jZvZDsnCaUQw6qQ/FQLxEZiUfKvDxaXTHbjbqSpdtd+gcfzEkWpr6Oa3DN642npk3Hu0eMWGdRGrofU7gIlPfg17NgOwoxm7xH8gjR4xbw+Z3SeTzmhECUFa5QFZIyqBvIxyhyRDhIo/4GmgHwXaV6g/6Uc9GAKVVzXR+uXrV+w4dC9/oNh3+M/xc8UEyF0P+j6lqMa6t/BMGfaT2ampjQ0SH8ozIrc/2G//rLps1Sp8D6+3Ng8KRWnsU8L1Z6pDhk+h0JXT6iOv+lG+gmp70L4d6FWjzqEcGQ7JDOibVNGieSqkh/f8VqjFeveP+PK0kYWPlHPPnEyxi/fEI4Kbzx8okTL6v0+MmDwiXh0pMHDz6J78f3H3zyqXO/F/bRtHXuHK4nREk+psqRsy6J38nUYQYyO98QPgstBF+5Olz54ZUxyg+vAmEKkr+Un9JYNQSNpqcKObRHhunJ6USYSVH9jnTIarjgAOm0HBBewWO2lxQXl2wXzp9hlB8vW4pnatoes5jWb7gS+oQ5HXq/YNbmTQWzGIcwfVKe3zc5Dx+qq3tuwxxTQrK9YdcptwcTTb+uaFJMoxJLFTUN542wptMlT0uSaiTiuQwqy5uE8aS8MuOkvLxJxplTp2RkQn7C82vWdlRVLZiv8uZNNpblkjW5ZM2qofeNHTt58qw18xdUVXWsrakG/mkFpXZABTUCjbq5GioNQxS6qUJqq5CD73tCOP6VFRVWnBM24uZbpEcBxndz9Dx3Ujj+xE1Rs57UAnAOrqL1OekhydWxlP6TIOYlx2Qc+bguFwoQVRUHTJbHdswxm+fsAHs42r5CuFpfXjEHXNL8YlXVlLnzlv52Obx+u3Te3ClHmWknvW6M3d6TYBIe938KH27cfO89w3+eMXhwbc0v59vGZ9N6XokVXXvHZ9eTDLEArH14uMbEpImEkwPKHd1lipNXpyl+1t2gOr/7qvfIbuU2xPR8AGa2AGSrIHmcnM0gzKWmx5Hj76DHvtj0wgub6EnbIaz/4gsa2QD6VClf0aMi6B1+Vl7AAdx0QeAYdEFYIMx7lxmsOh86z4wJ5XRfZtpCaxUPwEaopC7Gjab2zKHxaCIqjO0mUquO6h7SMhdLWUfO4KlpOaQYyo4keGL4qn+rHJ+dPb6yPHv8+OzyvTVQrXb+aEE1xK19Vy9XgJjgWSUcOMbnlCs69ndX7Vcc6m7dW1tTXdu1f341RLZtWFeyZrVuNmTvVXrdCuz2vPyKy+NxvfKy181YsW72qrW6khLd2pWzZ7d/+U/1PfD8BHipx/3KcY+b+Co9xYAkk9APrn+OwaJ0+zjObBal3fexRrVdlr8d/1XRybSGe8qKSd2nmNatomZozlHLmkmdJqYWYcEVyFEWxTNX99NuBrmy/8xvq733h1+Qhn3vV88HQnncYuAEE1jSC/bEuQVQ4oCne8p7yuP8FFL0a4bybeRgLiI7swlUnYTscHXAtQmuTrh2qrag06qdKKBKRB3Kj1EbfB5nJqPXFKkoj3zCGqS82HNF1YoGkotZAOsHoeOKEnRc6UCLlZfQ4riz6DjMPav8FC1mnkefKXfDmiS0UtmETqtHwxhgwrUY5g7D1QXXh8p30GnlGOQFurpUA2Ddx+g0cN2h3oQqlK+gaTD/HqzbAvCQWg/0dQOcZbAHodcJHnJRmG1oATO55wP4nBa3G+4JHQjZCQzgfzBKgfcM1Io+gLPLQnwIf8iMY9qYl5hTzKfMl4oKhVOxXLFb8WPF7xT/V5mldCj/Rfk71T0q8peJlaptqhOqL9UT1EXqNeo96jfjkuLS42bEVcd90W9Qv9x+mn5b+u3td6Hff9818a7Fdx27q4ctYxvYdrar/939Z/TX96+j2piBeFJnitq65nUfnh6efxxnS2OM+uOL0phBSvylNFag/swQaayE8RRprEJ3M3XSWI1YZrU07ofiQX7iuD96QCHTcM+gvaOqpPEANGFqvTQeiPpP/ak0jkfKqb8BjFgJMQuPo9jJGKMh+Kw0ZlA//A9prIB5QRor0RAmRRqr0FCmUBqrUSLjlsb9UArziDTuj6Ywb0jje9KmKH4gjQegximXpfFANGTqLmkcj/pNfRnlIy/ygWb9yIkaUCMKQvwahWxQHXAoG6qwcXAC4VA9rODQLFgTRAG4/KAPK3KjDJjVIQ+sz4SRBrngzSFTGFaA3vHwycOeZvhth5XsTWCdGMZqAUzNgGsh7PHAakKHFfZ8PYwFMFoI+ypQE6ywwVorhcbTHVbKEQdQPPDbB2vqAa4T1nGw3wvYrfQZZJJ8r6/V72xoDHKjbKO57HHjcrj6Vm6WMxgI+nmrO4PTeWyZnMbl4kxkVYAz8QHe38zbM9lrtk4kWy3WZvdCr6eBm2VtvM7GAn6htaKJszVaPQ18gLP6ec7p4XxN9S6njbN73VanByiLZdFMGQzAtLjZbPXAzSxgxosWwcDrXXRzW25mTQWVdgBk5KUSzAaZ55D+dQXvDzi9Hi47MycvFlQvQH3hclBook6DksXJeB1eD4goCBJHVO9B0NoUlAVvuwSjGWBkwl4vfPpBkzyF56c6zwS4POxBjcGgb0pWlh2ANjdlBrxNfhvv8Pob+EwPD48LoyiQbUS202u9gTwjdsdT2+XBgryoBdYSS70z9kcgFcGTVljTSHc64ZmP8hWktk6k5qc7iHcQqM29JNmbj4h/NcX41/W4YeHdF++iDVhhFC21az2dRWNv483eVPS48zGrb31HeHbCE5aOgnSGWKGbynoRzHlBA19FC+GsjMJzU2gRb3JSmhrpM17iq4Fi8Uhaz5D0LmpLxCbamGjvGZQuL9W+h+73SR4rYvAC1KBkY07JCqwUhihpVoIZpFT0ticbXUfsUIQuQyCrRdpFW+apw4u2lxJlJSlUc2SvnX4GKF022GOV+GOpF9jAQt0USpA+keXjgJFL8qRRYRojGEjUIvQHwX5F6ycYIzIhMz7qNXbAYKO7ZWrslIMgtbV6eBqkT0Uc7A0wZEjebAPKmigUUSYt1AYaaVQKSpJx07lojmQe/DFWKVLbRGWYEaUdMnZTfYq6ZqMiSAB2Z1yHj4wwn1k0gnAUsugPImynJNVY7d+Ya1lyIrW+sEUHKV0Rq4tw1ELl4b4pDLI3OGhU90gc8lEY7fQ3wZFBP4kkFsIKG4UnrpH1R+zYJUU2WUM2ittOKXZKlE6h3mmRqLMCRC+NDBEdRMeiiASujQQeWB+UvCEQs1b2lYjEomNA9D6O8myllLM0NsfamigNMZdYb6BPL82CnKR7N/2MxI+b0UWQZiKSWa0SR5kxkrrRXiKTVim3iNiJzB2URrtkSS5qp/7wjEgpkak9SufRVidnUCvNiE4aM1z0jg1zZKeUEn15oqTREJNXRUxyDLVS6xFtV8bRWz6Br+RJppKVOIhYmJXq6OYpiMXTWx590ZYh6dtF9zmvE83ZsHb8NM5aaVyJwJVnAmGLlP2ld/bgpTjHUy5kTC2UKzvdn9JHPkwJ8917BwvP5GybEmVlos/oe+WXeurv3ihamyQ/kO2kGZ46+5AYj5ZQOXskT/bBW8xeVhpR+fCOaL2LNMszbJ+e0kgjPEc/AxKNPLWk69mJHOv6it12mgk8VO/R8upLqmyU5KJ1eKu+GqBRU87VEW+TPYlUDq5w7eGXdsRC9FGLXgS/GySNifmQWBUbjqrfZKS6Plf1ko8EpXzoCEuqGGkpHiMywB3BY4Q7C6qEOtJEn+lgjoM6zgRPKuCuAGYLqF409Al5nkK9sRLGBKIRlVNYIgwT/Caw58EMgc3Re3I3G9YbABbZq0VzKQ4tQDMDZUYYE9ilMKuHT620juzIh5lyuCfjIkSqUBGfAXZZqO+QfYQWkVILzEewxlKloxhlykrhzgTwi6WnGoCto/AI/Rm0PiJjg0SnKDkThU5kRCATmPlAkZ7ekdly+CyDdWYqTw3lWaTWQHkohOciL1pKgagJkaJ8+CwD3GRFEdBloVIgmCzSygyqR8JPAd1PsM6mq0TKjJKWyTgCJVOSpUgHkX9FGLOZ8q+HN0f5t8CMhepGA/BluLLtFFEIhG6WSqOc8qehcjBSDLPoOiJFIk992OJMUVrJp/IieiOUF1BMGioRc5+cyNCitdOXdbBhDEWUPy2VlJ6uNoMctbBeF54R7VFHec2XZC3CFO1etAl9lHTzKY9Es3MAq1ayKQ2VXSwXRE+VlP4IF6IGNNLv/CiZRbRvkLQr02OhmC19SKWS+qKWrtJQXZvDPlJI/bdUorw8bGGRGFAu2acxTFmsfGU/ktfdTOwQYcm4YzVYQO1JL1FoDktDXMHeAK4Yu7SQ12z0nBMMx+3YzB1dNUaq0ei6MyMq1kZXAmIULqJr3b3WRWbF05KYsyJnnejara8Ttnw6Fmt5ueqNVB9i7BbPRNFVr53W52INGAhXJV5aB3rDlUkLfRrJ6T6pd+KNOecRzFaa+zPCuORcFIEl1pVWWi0QbIE+pHn9DMVeczL00XwvYmmh46BUmRD+mqS1ZP6hXqdhuf9zrQ64PnUg89JX5RAtfz/Vt086SzmphEk9mSnB9SP5XBaRCZGA2Hdz99J6xPoItCmod1eByKAhinI7lTWLxB4ewcnSeCX3uL77rtOd7ll/n/pBbEw/qHfl9c31g9g++0Hct9wPYm+qHxRbyduiaIr0OuSVN9dB7avDwn5nfSXumr4S+//7SlF9pUiH4f/NvhIbk2G/u74S28dp7fvQV2L77CtFOPp2+krsDfoF305fiUVft68U+avTnewrRfwttq90vex7/e6SeD4XK4nvW3eJRbHdpb67G99Od4m9gXS5KAl+v7tMLLWxa6uZb7/LxH6Pu0xsry5T5Kz7bXaZ2K/sMnHfWpeJ/RpdJu4b6zKxVAYVALWEUitKWwPPv73eEdunzr+r3hF7Te+I+856R+x1e0eRHtA33ztiv0bv6EZwv9nekRxZr59Rru34sLfQ8Ynu0tzJjg97Wx2fa89st9bxYaM6PjfqO9yJDk3wGvgzUaTTwFI85C4ToUL6BS3yVTXyZbfw9+O4UQGe5+p5l7dldCZ3E19sy+SKXK2+xgDndPu8/iBv5xx+r5vT+Plm6UtgMg76Rbom8Yt00WhYNoK9gvdbOZG08Lfx2LE3fLHXfm/vpr/yx/XC7AywVi7ot9p5t9W/iPM6ekNh2TLe73YG6JfmnAGukffzgKvBb/UA6xnAO7AF20Bi/gY+gwt6OaunlfPx/gBs8NYHQWJOEIGVswHRLKwMNvKynGw2r9sHy8mCYCNABynzngBIL4WKJGU0ALNz1kDAa3NaAR9r99qa3LwnaA0SehxOFyhpFIFIN3BmryPYAuJPGU0p8fM+v9feZOMpGLsTGHPWNwV5QgMbsyED1GxzNdkJJS3OYKO3KQjEuJ0SIoLBL4oSwDYFYD1hJ4Nz84RrlhpIoDEjCkcGwZnl9XMBHvQAq51AqsR+L9SEOADrI4IOsqLoKKKWRjCsazYQNTia/B5AyNONdi8X8GZwgab6hbwtSGYIfw6vC4yNMGTzeuxOwkdgCstaAJy13tvMUw5EK6IEhI3A4w2CGgLiLNGKL2IB4jMu0Gh1udh6XpIakAFeYo3h0+sBu/Bzbq+f75NtLtjq4x1WQJQpEhX71G1tBW+B7Xanw0kMzeoKgunBAIBa7XbKuSg64qBWP9DV5LL6WYLIzgecDR5KRoPoq7CJWKjVBkACZIdMT6A3JgKSBQRUYFZX3wCkPTIdEWhAnsfVyjmjzJwl7Ph58t/m0LVkECCCJHqR3YMHm+P9dFOL128PcClhP0whuOUHbApx2xQqMtCMXvKXeh48iUBtAh0QmTR7nWHC+CVB8BjO6vOBe1nrXTx5IPIOkMmAjSil0RrkGq0BgMh7YmRCrC5i3XauyWOXCI6QylLiRA5vpNWA10W8mqqNKMnKuUj0AF+RF/qstkXWBmAM/NDjZYmpfj2jikEFAQtI5F0OQlSxlis0Giyc2VhoqdSYtJzOzJWZjBW6Am0Bl6Ixw31KBlepsxQbyy0crDBpDJZ5nLGQ0xjmcbN1hoIMTju3zKQ1m1mjidOVlul1WpjTGfL15QU6QxE3C/YZjBZOryvVWQCoxUi3SqB0WjMBVqo15RfDrWaWTq+zzMtgC3UWA8AE4kychivTmCy6/HK9xsSVlZvKjGYtwCgAsAadodAEWLSlWmACAOUby+aZdEXFlgzYZIHJDNZi0hRoSzWm2RkcADMCyyaOLskEKgEGp60gm83FGr2em6WzmC0mraaUrCXSKTIYS7VsobHcUKCx6IwGbpYWWNHM0mtF2oCVfL1GV5rBFWhKNUWEHRkJWSayExEHSzYUaQ1ak0afwZnLtPk6MgA56kzafAtdCbIHSegpuflGg1k7pxwmYJ2MIoOtLNZSFMCABn7yKWWUfQOwS+BYjCZLmJRKnVmbwWlMOjPRSKHJCOQSfRoLqQWUgzyJ8gwSvURHZO5a64BVZLfEYIFWoweAZkIGTLAxa8G6tEtsvC9IbFtybjE00jAqxs4MarViEAATLvKA44pzdAhpCTyLZh0xukUSNknHGWLopeEDrBsykRh67c08RMAACSVeP+slwaTFGaCeDinQ7RVzHhewugAZ7CJeRFdBrLS6YFsgTGaMQ7FyMvT5nbClxe8MQjDhrE0w63c+JKVhv5SmKAdchAOCJRIcRPr9fMAHWcrZzLtaM2Gtn+QySonT4/D63RLrVHy24BS5VAhyDRS43Rtkvf6GTI5lacV126XTzf6ThztTB7FiHcTdSh3ERuog7hbrIPbaOkgK8jYKKSDnjD4K1EjBwt5OrcTJtRL7/aiVWFEP31itxIoOe1u1EnsHayU2Uitxt1grsTF1wS3USuz1aiXu5mslNqpWinbfmHIJ8jkEiTtVLrFSucTdVrnExpBLz413umRiPV7utksm9o6WTKxUMnG3XjKxvUsm7lZKJrbPkon7OiUTa9FUlJYYCdma4luqjtgI57dTHbFydcTdTnXERldH3C1VR2yf1RF3O9URMdYYRwkXPux1Cx/uaxQ+7I0LH+4mCh+WFj6xtcNXFzRBef1MWjSwmfCReTv/ZjCL9u0WwZVFe2d2+le9TPr3VR/Mxf618Mb/wjCrxbnImeWEYLUk09foy5Ii5q38W87/AZTdnZgKZW5kc3RyZWFtCmVuZG9iagozMyAwIG9iago4ODU1CmVuZG9iagozMSAwIG9iago8PCAvVHlwZSAvRm9udAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9CYXNlRm9udCAvRGVqYVZ1U2FucwovQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKElkZW50aXR5KSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciAyOSAwIFIKL0NJRFRvR0lETWFwIC9JZGVudGl0eQovVyBbMCBbNTk1IDM1OCAzMTUgNjMxIDYzMSA2MzEgNjMxIDYzMSA2ODkgNjkzIDYzMCA2MDggNjMwIDI3NiAzODkgMjc2IDYzMSA2MDYgNjc5IDY3OSAyOTMgNjI5IDQwOCA1NDUgNjA3IDk2NiA2MjkgNjEwIDMzNCA1NzEgNjMxIDU1MyA3NjQgNjMwIDYzMCA2MzEgNjMxIDYzMSA1OTggNTE3IDMxNSA2MjcgODU2IDk5MiA4MTEgNTg3IDMxNSA2MzEgMzM0IDc4MSA3NDIgNjgxIDQ5NiA2MTAgNjEwIDYzMCA2ODAgMjc2IDY4MCA5NDMgNjI5IDQ5NiA1ODcgXQpdCj4+CmVuZG9iagozMiAwIG9iago8PCAvTGVuZ3RoIDc5OCA+PgpzdHJlYW0KL0NJREluaXQgL1Byb2NTZXQgZmluZHJlc291cmNlIGJlZ2luCjEyIGRpY3QgYmVnaW4KYmVnaW5jbWFwCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+IGRlZgovQ01hcE5hbWUgL0Fkb2JlLUlkZW50aXR5LVVDUyBkZWYKL0NNYXBUeXBlIDIgZGVmCjEgYmVnaW5jb2Rlc3BhY2VyYW5nZQo8MDAwMD4gPEZGRkY+CmVuZGNvZGVzcGFjZXJhbmdlCjIgYmVnaW5iZnJhbmdlCjwwMDAwPiA8MDAwMD4gPDAwMDA+CjwwMDAxPiA8MDAzRT4gWzwwMDJEPiA8MDAyMD4gPDAwMzQ+IDwwMDMwPiA8MDAzOD4gPDAwMzM+IDwwMDMyPiA8MDA1Mj4gPDAwNDM+IDwwMDUzPiA8MDA2MT4gPDAwNzA+IDwwMDY5PiA8MDA3ND4gPDAwNkM+IDwyMEFDPiA8MDA1ND4gPDAwNTY+IDwwMDQxPiA8MDA0OT4gPDAwNkU+IDwwMDcyPiA8MDA2Mz4gPDAwNkY+IDwwMDZEPiA8MDA3NT4gPDAwNjU+IDwwMDNBPiA8MDA0Nj4gPDAwMzk+IDwwMDRDPiA8MDA0ND4gPDAwNjI+IDwwMDY0PiA8MDAzNz4gPDAwMzU+IDwwMDMxPiA8MDA1MD4gPDAwNzM+IDwwMDJDPiA8MDA0NT4gPDAwNEQ+IDwwMDQwPiA8MDA3Nz4gPDAwNzk+IDwwMDJFPiA8MDAzNj4gPDAwMkY+IDwwMDRGPiA8MDA0RT4gPDAwNDI+IDwwMEIwPiA8MDBFOD4gPDAwRTk+IDwwMDY3PiA8MDA1QT4gPDAwRUU+IDwwMDU4PiA8MDAyNT4gPDAwRkI+IDwyMDEzPiA8MDA3Nj4gXQplbmRiZnJhbmdlCmVuZGNtYXAKQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wCmVuZAplbmQKCmVuZHN0cmVhbQplbmRvYmoKNyAwIG9iago8PCAvVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTAKL0Jhc2VGb250IC9EZWphVnVTYW5zCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzIFszMSAwIFJdCi9Ub1VuaWNvZGUgMzIgMCBSPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIApbCjUgMCBSCl0KL0NvdW50IDEKL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDXQo+PgplbmRvYmoKeHJlZgowIDM0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDI0MjU2IDAwMDAwIG4gCjAwMDAwMDAxNTcgMDAwMDAgbiAKMDAwMDAwMDI1MiAwMDAwMCBuIAowMDAwMDAxNTM1IDAwMDAwIG4gCjAwMDAwMTM0MzkgMDAwMDAgbiAKMDAwMDAyNDEyMCAwMDAwMCBuIAowMDAwMDAwMjg5IDAwMDAwIG4gCjAwMDAwMDAzNDAgMDAwMDAgbiAKMDAwMDAwMDM5MSAwMDAwMCBuIAowMDAwMDAwNDQzIDAwMDAwIG4gCjAwMDAwMDA0OTUgMDAwMDAgbiAKMDAwMDAwMDY4NyAwMDAwMCBuIAowMDAwMDAxMzY4IDAwMDAwIG4gCjAwMDAwMDA3OTEgMDAwMDAgbiAKMDAwMDAwMTIxNyAwMDAwMCBuIAowMDAwMDAwOTMzIDAwMDAwIG4gCjAwMDAwMDEwNzcgMDAwMDAgbiAKMDAwMDAwMTQzMSAwMDAwMCBuIAowMDAwMDAxODU5IDAwMDAwIG4gCjAwMDAwMDQxMDIgMDAwMDAgbiAKMDAwMDAwMTY1NiAwMDAwMCBuIAowMDAwMDAxODMyIDAwMDAwIG4gCjAwMDAwMDQxMjMgMDAwMDAgbiAKMDAwMDAwNDM4OCAwMDAwMCBuIAowMDAwMDEyMjUyIDAwMDAwIG4gCjAwMDAwMTI2NzMgMDAwMDAgbiAKMDAwMDAxMjIzMSAwMDAwMCBuIAowMDAwMDEzNTgwIDAwMDAwIG4gCjAwMDAwMTM4NDAgMDAwMDAgbiAKMDAwMDAyMjgwOCAwMDAwMCBuIAowMDAwMDIzMjcwIDAwMDAwIG4gCjAwMDAwMjI3ODcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAzNAovSW5mbyAxIDAgUgovUm9vdCAxOSAwIFIKPj4Kc3RhcnR4cmVmCjI0MzU0CiUlRU9GCg== + body: '{"message":"La quantit\u00e9 que vous avez saisie est invalide."}' diff --git a/tests/Order/OrderServiceTest/testGetOrder.yml b/tests/Order/OrderServiceTest/testGetOrder.yml index a5f3a324..6248277e 100644 --- a/tests/Order/OrderServiceTest/testGetOrder.yml +++ b/tests/Order/OrderServiceTest/testGetOrder.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic Y3VzdG9tZXItMUB3b3JsZC1jb21wYW55LmNvbTpwYXNzd29yZC1jdXN0b21lci0x' - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 13:13:52 GMT' + Date: 'Fri, 16 Nov 2018 15:19:35 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 51b94c - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/51b94c' + X-Debug-Token: 6930c3 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/6930c3' Content-Length: '60' Content-Type: application/json - body: '{"id":7,"apiKey":"YkYN3caqNtCVz0+6tBdkrIns1yNRK7ioVrh3tCkq"}' + body: '{"id":7,"apiKey":"Unx5UubYe+QIPC7y8wJy1G0T7qm1DuLy8beEbB73"}' - request: method: GET @@ -32,8 +33,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a - Authorization: 'token YkYN3caqNtCVz0+6tBdkrIns1yNRK7ioVrh3tCkq' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token Unx5UubYe+QIPC7y8wJy1G0T7qm1DuLy8beEbB73' VCR-index: '1' Accept: null response: @@ -42,12 +43,13 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 13:13:53 GMT' + Date: 'Fri, 16 Nov 2018 15:19:36 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 6f073d - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/6f073d' - Content-Length: '1031' + X-Debug-Token: 86082e + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/86082e' + Content-Length: '1095' Content-Type: application/json - body: '{"id":2,"basketId":"2b4d182f-af3f-37c4-87d7-e84dec020920","companyId":3,"companyName":"The World Company Inc.","total":108.4,"taxTotal":2.23,"subtotal":108.4,"timestamp":1541509976,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","price":54.2,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' + body: '{"id":2,"basketId":"5290d2f4-4634-37a5-9f6a-51cea467e014","companyId":3,"companyName":"The World Company Inc.","total":108.4,"taxTotal":2.23,"subtotal":108.4,"timestamp":1542381535,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","productImageId":null,"price":54.2,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' diff --git a/tests/Order/OrderServiceTest/testGetOrderWithComment.yml b/tests/Order/OrderServiceTest/testGetOrderWithComment.yml index 5b50cc0a..f904d0a3 100644 --- a/tests/Order/OrderServiceTest/testGetOrderWithComment.yml +++ b/tests/Order/OrderServiceTest/testGetOrderWithComment.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic Y3VzdG9tZXItMUB3b3JsZC1jb21wYW55LmNvbTpwYXNzd29yZC1jdXN0b21lci0x' - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 14:13:20 GMT' + Date: 'Wed, 14 Nov 2018 12:15:26 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: af2453 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/af2453' + X-Debug-Token: 78ea9c + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/78ea9c' Content-Length: '61' Content-Type: application/json - body: '{"id":7,"apiKey":"nwXXj+VANCx5zcb\/WF4zpQuocC0cbZ2pJpgEFbvE"}' + body: '{"id":7,"apiKey":"WAPCeglYnDpywE3qC9\/yRZP7UXZja0IFuTRt1giE"}' - request: method: GET @@ -32,8 +33,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token nwXXj+VANCx5zcb/WF4zpQuocC0cbZ2pJpgEFbvE' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token WAPCeglYnDpywE3qC9/yRZP7UXZja0IFuTRt1giE' VCR-index: '1' Accept: null response: @@ -42,12 +43,13 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 14:13:20 GMT' + Date: 'Wed, 14 Nov 2018 12:15:26 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 7a04f2 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/7a04f2' - Content-Length: '1357' + X-Debug-Token: 3d8196 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/3d8196' + Content-Length: '1399' Content-Type: application/json - body: '{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1540563175,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}}' + body: '{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542197696,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}}' diff --git a/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsCompanyName.yml b/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsCompanyName.yml index 92b7704e..e62dad17 100644 --- a/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsCompanyName.yml +++ b/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsCompanyName.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic Y3VzdG9tZXItMUB3b3JsZC1jb21wYW55LmNvbTpwYXNzd29yZC1jdXN0b21lci0x' - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 14:12:13 GMT' + Date: 'Wed, 14 Nov 2018 12:16:04 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 2da196 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/2da196' - Content-Length: '60' + X-Debug-Token: f8a7ab + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/f8a7ab' + Content-Length: '61' Content-Type: application/json - body: '{"id":7,"apiKey":"H6kHeedzeRkRx9ADIxmWIPMYQh205j32S3uTA9Ac"}' + body: '{"id":7,"apiKey":"EjxaIVYeRI4n+\/rjdOZYjIiJ944rtZEU5UdURYfl"}' - request: method: GET @@ -32,8 +33,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@bb180db - Authorization: 'token H6kHeedzeRkRx9ADIxmWIPMYQh205j32S3uTA9Ac' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token EjxaIVYeRI4n+/rjdOZYjIiJ944rtZEU5UdURYfl' VCR-index: '1' Accept: null response: @@ -42,12 +43,13 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 14:12:13 GMT' + Date: 'Wed, 14 Nov 2018 12:16:05 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 2e635d - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/2e635d' - Content-Length: '4909' + X-Debug-Token: cfa412 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/cfa412' + Content-Length: '6344' Content-Type: application/json - body: '[{"id":2,"basketId":"2b4d182f-af3f-37c4-87d7-e84dec020920","companyId":3,"companyName":"The World Company Inc.","total":108.4,"taxTotal":2.23,"subtotal":108.4,"timestamp":1540563109,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","productImageId":null,"price":54.2,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":1,"basketId":"4fec2923-4eac-3420-a9c6-abf6dc578744","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1540563109,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1540563109,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":5,"basketId":"c3818958-2089-3549-b4ab-66a5c07b77dc","companyId":3,"companyName":"The World Company Inc.","total":66.7,"taxTotal":1.4,"subtotal":66.7,"timestamp":1540563109,"status":"STANDBY_VENDOR","workflow":"workflow_order_validation_pending_vendor_validation_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}]' + body: '[{"id":1,"basketId":"4fec2923-4eac-3420-a9c6-abf6dc578744","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542197734,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":2,"basketId":"2b4d182f-af3f-37c4-87d7-e84dec020920","companyId":3,"companyName":"The World Company Inc.","total":108.4,"taxTotal":2.23,"subtotal":108.4,"timestamp":1542197734,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","productImageId":null,"price":54.2,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542197734,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":5,"basketId":"c3818958-2089-3549-b4ab-66a5c07b77dc","companyId":3,"companyName":"The World Company Inc.","total":66.7,"taxTotal":1.4,"subtotal":66.7,"timestamp":1542197734,"status":"STANDBY_VENDOR","workflow":"workflow_order_validation_pending_vendor_validation_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}},{"id":10,"basketId":"f5111ec1-894e-3655-94c8-0fd80cf8a32e","companyId":3,"companyName":"The World Company Inc.","total":66.7,"taxTotal":1.4,"subtotal":66.7,"timestamp":1542197734,"status":"STANDBY_VENDOR","workflow":"workflow_order_validation_pending_vendor_validation_processing","shippingName":"","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"mondial","lastname":"relay","address":"25 rue de la gare","address2":"","city":"Lyon","zipcode":"69009","country":"FR","company":"wiz","pickupPointId":"00393"},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}]' From 8fdae8f1b5a63ebfd1185bf80d81f08ae485137e Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Fri, 2 Nov 2018 16:02:10 +0100 Subject: [PATCH 06/16] Add tests --- src/Basket/BasketService.php | 2 +- src/Shipping/MondialRelayService.php | 8 ++- tests/Shipping/MondialRelayServiceTest.php | 11 ++++ .../testSearchPickupPoints.yml | 55 +++++++++++++++++++ 4 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 tests/Shipping/MondialRelayServiceTest/testSearchPickupPoints.yml diff --git a/src/Basket/BasketService.php b/src/Basket/BasketService.php index bbdc2d97..d66672ea 100644 --- a/src/Basket/BasketService.php +++ b/src/Basket/BasketService.php @@ -453,7 +453,7 @@ public function setPickupPoint(SetPickupPointCommand $command): void * * @throws SomeParametersAreInvalid */ - public function setMondialrelayPickupPoint(SetPickupPointCommand $command): array + public function setMondialRelayPickupPoint(SetPickupPointCommand $command): array { $command->validate(); diff --git a/src/Shipping/MondialRelayService.php b/src/Shipping/MondialRelayService.php index 14c2de7b..0a7a88bb 100644 --- a/src/Shipping/MondialRelayService.php +++ b/src/Shipping/MondialRelayService.php @@ -14,15 +14,21 @@ final class MondialRelayService extends AbstractService { public function searchPickupPoints(string $zipCode): array { - return $this->client->get('mondial-relay/points-relais', [ + $results = $this->client->get('mondial-relay/points-relais', [ RequestOptions::QUERY => [ 'zipCode' => $zipCode, ], ]); + + return array_map(function ($elt) { + return new MondialRelayPoint($elt); + }, $results); } public function getPickupPoint(string $pickupPointId): MondialRelayPoint { + $this->client->mustBeAuthenticated(); + $result = $this->client->get('mondial-relay/points-relais/'.$pickupPointId); return new MondialRelayPoint($result); diff --git a/tests/Shipping/MondialRelayServiceTest.php b/tests/Shipping/MondialRelayServiceTest.php index d2532235..74d9b0cc 100644 --- a/tests/Shipping/MondialRelayServiceTest.php +++ b/tests/Shipping/MondialRelayServiceTest.php @@ -8,6 +8,7 @@ namespace Wizaplace\SDK\Tests\Shipping; use Wizaplace\SDK\Shipping\MondialRelayOpening; +use Wizaplace\SDK\Shipping\MondialRelayPoint; use Wizaplace\SDK\Shipping\MondialRelayService; use Wizaplace\SDK\Tests\ApiTestCase; @@ -22,6 +23,16 @@ public function testGetBrandCode() $this->assertSame($brandCode->getValue(), 'BDTEST13'); } + public function testSearchPickupPoints() + { + $mondialRelay = $this->buildMondialRelayService(); + + $results = $mondialRelay->searchPickupPoints('69100'); + + $this->assertCount(10, $results); + $this->assertContainsOnlyInstancesOf(MondialRelayPoint::class, $results); + } + public function testGetPickupPoint() { $mondialRelay = $this->buildMondialRelayService(); diff --git a/tests/Shipping/MondialRelayServiceTest/testSearchPickupPoints.yml b/tests/Shipping/MondialRelayServiceTest/testSearchPickupPoints.yml new file mode 100644 index 00000000..2782327c --- /dev/null +++ b/tests/Shipping/MondialRelayServiceTest/testSearchPickupPoints.yml @@ -0,0 +1,55 @@ + +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/users/authenticate' + headers: + Host: wizaplace.loc + Accept-Encoding: null + Authorization: 'Basic YWRtaW5Ad2l6YXBsYWNlLmNvbTpwYXNzd29yZA==' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + VCR-index: '0' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Fri, 02 Nov 2018 13:37:48 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: b7052f + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/b7052f' + Content-Length: '60' + Content-Type: application/json + body: '{"id":2,"apiKey":"8qZZXrOpm+U7DjPVYH6m7yFoY0tGIK4Mu6vDNHA8"}' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/mondial-relay/points-relais?zipCode=69100' + headers: + Host: wizaplace.loc + Accept-Encoding: null + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token 8qZZXrOpm+U7DjPVYH6m7yFoY0tGIK4Mu6vDNHA8' + VCR-index: '1' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Fri, 02 Nov 2018 13:37:49 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 55ae1e + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/55ae1e' + Transfer-Encoding: chunked + Content-Type: application/json + body: '[{"id":"003393","address":["KFE TOLSTOI PMU","","97 COURS TOLSTOI",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7622380","longitude":"04,8804019","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0900","openingHour2":"1500","openingHour3":"0000","openingHour4":"0000"},{"day":1,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2000"},{"day":2,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2000"},{"day":3,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2000"},{"day":4,"openingHour1":"0900","openingHour2":"1500","openingHour3":"1730","openingHour4":"2200"},{"day":5,"openingHour1":"1100","openingHour2":"1530","openingHour3":"1800","openingHour4":"2200"},{"day":6,"openingHour1":"1100","openingHour2":"1530","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=003393\u0026pays=FR\u0026crc=579966753D9EE050A340DCDC50842C3D","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=003393\u0026pays=FR\u0026crc=30ED83CB00D7DC4EFC5B3281E987FE58","distance":940},{"id":"002586","address":["MOD TIFF","","136 AVENUE THIERS",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7707200","longitude":"04,8613980","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"},{"day":1,"openingHour1":"0930","openingHour2":"1830","openingHour3":"0000","openingHour4":"0000"},{"day":2,"openingHour1":"0930","openingHour2":"1830","openingHour3":"0000","openingHour4":"0000"},{"day":3,"openingHour1":"0930","openingHour2":"1830","openingHour3":"0000","openingHour4":"0000"},{"day":4,"openingHour1":"0930","openingHour2":"1830","openingHour3":"0000","openingHour4":"0000"},{"day":5,"openingHour1":"0900","openingHour2":"1600","openingHour3":"0000","openingHour4":"0000"},{"day":6,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=002586\u0026pays=FR\u0026crc=577B7042F16A5AD6BF337BD3AE99A28F","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=002586\u0026pays=FR\u0026crc=AEED8CDEA2C10B968BA2A0420413F1A2","distance":975},{"id":"049751","address":["INFORMATIQUE ET MULTISERVICES","","9 AVENUE GENERAL LECLERC",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7588400","longitude":"04,8909890","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"1000","openingHour2":"1200","openingHour3":"1500","openingHour4":"1800"},{"day":1,"openingHour1":"1000","openingHour2":"1200","openingHour3":"1500","openingHour4":"1800"},{"day":2,"openingHour1":"1000","openingHour2":"1200","openingHour3":"1500","openingHour4":"1800"},{"day":3,"openingHour1":"1000","openingHour2":"1200","openingHour3":"1500","openingHour4":"1800"},{"day":4,"openingHour1":"1000","openingHour2":"1200","openingHour3":"1500","openingHour4":"1800"},{"day":5,"openingHour1":"1000","openingHour2":"1400","openingHour3":"0000","openingHour4":"0000"},{"day":6,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=049751\u0026pays=FR\u0026crc=6FABAFD971559E387A441A74ACCA4901","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=049751\u0026pays=FR\u0026crc=B34BEA1655A6D89E291D46DD2429D3D0","distance":982},{"id":"000168","address":["SHOP AND THE CITY","","38 RUE MICHEL SERVET","REVENDEUR YANKEE CANDLE"],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7667360","longitude":"04,8785980","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"},{"day":1,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1900"},{"day":2,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1900"},{"day":3,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1900"},{"day":4,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1900"},{"day":5,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1900"},{"day":6,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=000168\u0026pays=FR\u0026crc=541B4634EA8F550C88CE090D215A5E80","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=000168\u0026pays=FR\u0026crc=9CB357D0E4BC12C4EC8C52EA9A7F7B33","distance":985},{"id":"000347","address":["BA PHONE","","5 PLACE DES MAISONS NEUVES",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7559920","longitude":"04,8764280","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0930","openingHour2":"2000","openingHour3":"0000","openingHour4":"0000"},{"day":1,"openingHour1":"0930","openingHour2":"2000","openingHour3":"0000","openingHour4":"0000"},{"day":2,"openingHour1":"0930","openingHour2":"2000","openingHour3":"0000","openingHour4":"0000"},{"day":3,"openingHour1":"0930","openingHour2":"2000","openingHour3":"0000","openingHour4":"0000"},{"day":4,"openingHour1":"0930","openingHour2":"2000","openingHour3":"0000","openingHour4":"0000"},{"day":5,"openingHour1":"0930","openingHour2":"2000","openingHour3":"0000","openingHour4":"0000"},{"day":6,"openingHour1":"0930","openingHour2":"2000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=000347\u0026pays=FR\u0026crc=C93A59786653B8B70361A894330922F2","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=000347\u0026pays=FR\u0026crc=9A5909390776CC1C6C8BCA597E545886","distance":985},{"id":"004554","address":["BSM CARRELAGE.FR","","88 RUE DE VERDUN",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7788836","longitude":"04,8985275","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0730","openingHour2":"1200","openingHour3":"1330","openingHour4":"1800"},{"day":1,"openingHour1":"0730","openingHour2":"1200","openingHour3":"1330","openingHour4":"1800"},{"day":2,"openingHour1":"0730","openingHour2":"1200","openingHour3":"1330","openingHour4":"1800"},{"day":3,"openingHour1":"0730","openingHour2":"1200","openingHour3":"1330","openingHour4":"1800"},{"day":4,"openingHour1":"0730","openingHour2":"1200","openingHour3":"1330","openingHour4":"1800"},{"day":5,"openingHour1":"0800","openingHour2":"1200","openingHour3":"0000","openingHour4":"0000"},{"day":6,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=004554\u0026pays=FR\u0026crc=19F7FCE9948626855F908ECAA887A098","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=004554\u0026pays=FR\u0026crc=9371297E3F322321BC160CB4261F3542","distance":985},{"id":"097649","address":["DUBAI PHONE LIBERTY PHONE","","8 RUE LEON BLUM",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7594060","longitude":"04,8916320","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"1000","openingHour2":"1900","openingHour3":"0000","openingHour4":"0000"},{"day":1,"openingHour1":"1000","openingHour2":"1900","openingHour3":"0000","openingHour4":"0000"},{"day":2,"openingHour1":"1000","openingHour2":"1900","openingHour3":"0000","openingHour4":"0000"},{"day":3,"openingHour1":"1000","openingHour2":"1900","openingHour3":"0000","openingHour4":"0000"},{"day":4,"openingHour1":"1000","openingHour2":"1900","openingHour3":"0000","openingHour4":"0000"},{"day":5,"openingHour1":"1000","openingHour2":"1900","openingHour3":"0000","openingHour4":"0000"},{"day":6,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=097649\u0026pays=FR\u0026crc=4D3D7D67E89A1D60BC3BAB310E7E7E6E","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=097649\u0026pays=FR\u0026crc=FE179ED049D3B546B62DFC52CB9E1431","distance":985},{"id":"005673","address":["FRANCE LESSIVE","","123 COURS TOLSTOI",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7614135","longitude":"04,8837489","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0900","openingHour2":"1200","openingHour3":"1300","openingHour4":"1830"},{"day":1,"openingHour1":"0900","openingHour2":"1200","openingHour3":"1300","openingHour4":"1830"},{"day":2,"openingHour1":"0900","openingHour2":"1200","openingHour3":"1300","openingHour4":"1830"},{"day":3,"openingHour1":"0900","openingHour2":"1200","openingHour3":"1300","openingHour4":"1830"},{"day":4,"openingHour1":"0900","openingHour2":"1200","openingHour3":"1300","openingHour4":"1830"},{"day":5,"openingHour1":"0900","openingHour2":"1600","openingHour3":"0000","openingHour4":"0000"},{"day":6,"openingHour1":"0900","openingHour2":"1300","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=005673\u0026pays=FR\u0026crc=982FAB38960DBA141EA8C61F147A44BD","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=005673\u0026pays=FR\u0026crc=1B137E40214CCAE7DF0F02D5BD5E1321","distance":988},{"id":"068837","address":["SOS PC MULTIMEDIA","","53 RUE GABRIEL PERI",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7728080","longitude":"04,8663430","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"},{"day":1,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1800"},{"day":2,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1800"},{"day":3,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1800"},{"day":4,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1800"},{"day":5,"openingHour1":"1000","openingHour2":"1230","openingHour3":"1400","openingHour4":"1800"},{"day":6,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=068837\u0026pays=FR\u0026crc=0D3F187AF020A055BF11867B37413B80","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=068837\u0026pays=FR\u0026crc=CA0834EDF17F1E9B160381C9B5D56082","distance":988},{"id":"004670","address":["AU FOURN ILE DE LA TENTATION","","96 RUE LOUIS BECKER",""],"zipCode":"69100","city":"VILLEURBANNE","country":"FR","location1":"","location2":"","latitude":"45,7650220","longitude":"04,8729520","activityType":"000","information":"","openingHours":[{"day":0,"openingHour1":"0630","openingHour2":"1200","openingHour3":"1400","openingHour4":"1930"},{"day":1,"openingHour1":"0630","openingHour2":"1200","openingHour3":"1400","openingHour4":"1930"},{"day":2,"openingHour1":"0630","openingHour2":"1200","openingHour3":"1400","openingHour4":"1930"},{"day":3,"openingHour1":"0630","openingHour2":"1200","openingHour3":"1400","openingHour4":"1930"},{"day":4,"openingHour1":"0630","openingHour2":"1200","openingHour3":"1400","openingHour4":"1930"},{"day":5,"openingHour1":"0630","openingHour2":"1200","openingHour3":"1400","openingHour4":"1930"},{"day":6,"openingHour1":"0000","openingHour2":"0000","openingHour3":"0000","openingHour4":"0000"}],"availabilityInformation":null,"urlPicture":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/photo_relais.aspx?ens=CC______41\u0026num=004670\u0026pays=FR\u0026crc=A4EEF7614FD367CB943EC1801D57457C","urlMap":"https:\/\/ww2.mondialrelay.com\/public\/permanent\/plan_relais.aspx?ens=BDTEST1311\u0026num=004670\u0026pays=FR\u0026crc=9E2F468B7A46687936CD198EE8F2CA87","distance":990}]' From 546eae78a5ff0a79a0feac6120640cec77fce14b Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Fri, 2 Nov 2018 16:31:58 +0100 Subject: [PATCH 07/16] Add changelog --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63fca0fe..cf42e39a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,12 @@ Compatible with Wizaplace 1.27.0 - Added enum `\Wizaplace\SDK\User\UserType` - Added pagination data to the array returned by `\Wizaplace\SDK\Organisation\OrganisationService::getOrganisationOrders` - Added `\Wizaplace\SDK\Organisation\OrganisationBasket::isCheckout` +- Removed phpdoc `@internal` in `\Wizaplace\SDK\User\UserAddress` +- Updated `\Wizaplace\SDK\Organisation\OrganisationService::getOrganisationOrders` +- Updated `tests/Organisation/OrganisationServiceTest` +- Added attribute `checkout` to `\Wizaplace\SDK\Organisation\OrganisationBasket` +- Added `Wizaplace\SDK\Basket\BasketService::setMondialRelayPickupPoint` +- Added `Wizaplace\SDK\Shipping\MondialRelayService` and its associated classes ## 1.40.0 @@ -68,7 +74,7 @@ Compatible with Wizaplace 1.27.0 ### New features - Added optional parameters `$billing` and `$shipping` to `\Wizaplace\SDK\User\UserService::register` -- Added `\Wizaplace\SDK\Order\Order::getCompanyName` +- Added `\Wizaplace\SDK\Order\Order::getCompanyName` ### Corrections From d613c4c17a8186636e56c19ad92c93c3de88752e Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Wed, 7 Nov 2018 09:18:51 +0100 Subject: [PATCH 08/16] Fixed nullable pickupPointId --- src/Order/ShippingAddress.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Order/ShippingAddress.php b/src/Order/ShippingAddress.php index 22579959..67bd35c3 100644 --- a/src/Order/ShippingAddress.php +++ b/src/Order/ShippingAddress.php @@ -9,7 +9,7 @@ final class ShippingAddress extends Address { - /** @var string */ + /** @var string|null */ private $pickupPointId; /** @@ -21,7 +21,7 @@ public function __construct(array $data) $this->pickupPointId = $data['pickupPointId']; } - public function getPickupPointId(): string + public function getPickupPointId(): ?string { return $this->pickupPointId; } From 381e337e154e82280295b9955b53c0e015811757 Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Wed, 7 Nov 2018 16:47:23 +0100 Subject: [PATCH 09/16] Add shipment label URL support --- src/Vendor/Order/CreateShipmentCommand.php | 11 +++ src/Vendor/Order/Shipment.php | 9 ++ tests/Vendor/Order/OrderServiceTest.php | 2 + .../OrderServiceTest/testCreateShipment.yml | 97 ++++++++++--------- 4 files changed, 74 insertions(+), 45 deletions(-) diff --git a/src/Vendor/Order/CreateShipmentCommand.php b/src/Vendor/Order/CreateShipmentCommand.php index c5df9468..eb90fdc7 100644 --- a/src/Vendor/Order/CreateShipmentCommand.php +++ b/src/Vendor/Order/CreateShipmentCommand.php @@ -17,6 +17,9 @@ final class CreateShipmentCommand /** @var string */ private $trackingNumber; + /** @var string */ + private $labelUrl; + /** @var string */ private $comment; @@ -40,6 +43,13 @@ public function setComment(string $comment): self return $this; } + public function setLabelUrl(string $labelUrl): self + { + $this->labelUrl = $labelUrl; + + return $this; + } + /** * @param int[] $shippedQuantityByItemId map of (int) itemId to (int) quantity shipped * @return CreateShipmentCommand @@ -71,6 +81,7 @@ public function toArray(): array 'tracking_number' => $this->trackingNumber, 'comments' => $this->comment, 'products' => $this->shippedQuantityByItemId, + 'label_url' => $this->labelUrl, ]; } } diff --git a/src/Vendor/Order/Shipment.php b/src/Vendor/Order/Shipment.php index 1ce3b0f4..035728ec 100644 --- a/src/Vendor/Order/Shipment.php +++ b/src/Vendor/Order/Shipment.php @@ -24,6 +24,9 @@ final class Shipment /** @var string */ private $trackingNumber; + /** @var string */ + private $labelUrl; + /** @var string */ private $comment; @@ -43,6 +46,7 @@ public function __construct(array $data) $this->shippingId = $data['shipping_id']; $this->shippingName = $data['shipping']; $this->trackingNumber = $data['tracking_number']; + $this->labelUrl = $data['label_url']; $this->comment = $data['comments']; $this->createdAt = new \DateTimeImmutable('@'.$data['shipment_timestamp']); $this->shippedQuantityByItemId = $data['products']; @@ -73,6 +77,11 @@ public function getTrackingNumber(): string return $this->trackingNumber; } + public function getLabelUrl(): string + { + return $this->labelUrl; + } + public function getComment(): string { return $this->comment; diff --git a/tests/Vendor/Order/OrderServiceTest.php b/tests/Vendor/Order/OrderServiceTest.php index b6152086..dac12945 100644 --- a/tests/Vendor/Order/OrderServiceTest.php +++ b/tests/Vendor/Order/OrderServiceTest.php @@ -196,6 +196,7 @@ public function testCreateShipment() $shipmentId = $orderService->createShipment( (new CreateShipmentCommand($orderId, '0ABC0123456798')) ->setComment('great shipment') + ->setLabelUrl('http://mondialrelay.com/shipment-created') ->setShippedQuantityByItemId($itemsShipped) ); @@ -213,6 +214,7 @@ public function testCreateShipment() $this->assertSame($itemsShipped, $shipments[0]->getShippedQuantityByItemId()); $this->assertSame('TNT Express', $shipments[0]->getShippingName()); $this->assertSame('0ABC0123456798', $shipments[0]->getTrackingNumber()); + $this->assertSame('http://mondialrelay.com/shipment-created', $shipments[0]->getLabelUrl()); $this->assertSame(1, $shipments[0]->getShippingId()); $this->assertGreaterThanOrEqual(1500000000, $shipments[0]->getCreatedAt()->getTimestamp()); diff --git a/tests/Vendor/Order/OrderServiceTest/testCreateShipment.yml b/tests/Vendor/Order/OrderServiceTest/testCreateShipment.yml index 9d840de2..d909e371 100644 --- a/tests/Vendor/Order/OrderServiceTest/testCreateShipment.yml +++ b/tests/Vendor/Order/OrderServiceTest/testCreateShipment.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic dmVuZG9yQHdvcmxkLWNvbXBhbnkuY29tOnBhc3N3b3JkLXZlbmRvcg==' - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-171-add-companyId-orders@3e813fb + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Tue, 23 Oct 2018 13:32:33 GMT' + Date: 'Wed, 07 Nov 2018 15:46:45 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: bb5ad8 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/bb5ad8' + X-Debug-Token: 4ead71 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/4ead71' Content-Length: '60' Content-Type: application/json - body: '{"id":6,"apiKey":"SSKpVuab1CZAKqy82vyUBtAuAP7sZWPdenIEh+RJ"}' + body: '{"id":6,"apiKey":"xMspPpWZsb76jskkEyMGLn94LYTRk158JvYt5h63"}' - request: method: PUT @@ -34,8 +35,8 @@ Expect: null Accept-Encoding: null Content-Type: application/json - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-171-add-companyId-orders@3e813fb - Authorization: 'token SSKpVuab1CZAKqy82vyUBtAuAP7sZWPdenIEh+RJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token xMspPpWZsb76jskkEyMGLn94LYTRk158JvYt5h63' VCR-index: '1' Accept: null body: '{"approved":true}' @@ -45,12 +46,13 @@ code: '200' message: OK headers: - Date: 'Tue, 23 Oct 2018 13:32:34 GMT' + Date: 'Wed, 07 Nov 2018 15:46:46 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 460ed7 - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/460ed7' + X-Debug-Token: 524c24 + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/524c24' Content-Length: '16' Content-Type: application/json body: '{"order_id":"5"}' @@ -61,8 +63,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-171-add-companyId-orders@3e813fb - Authorization: 'token SSKpVuab1CZAKqy82vyUBtAuAP7sZWPdenIEh+RJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token xMspPpWZsb76jskkEyMGLn94LYTRk158JvYt5h63' VCR-index: '2' Accept: null response: @@ -71,15 +73,16 @@ code: '200' message: OK headers: - Date: 'Tue, 23 Oct 2018 13:32:36 GMT' + Date: 'Wed, 07 Nov 2018 15:46:46 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 0a30a6 - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/0a30a6' - Content-Length: '2008' + X-Debug-Token: ed933c + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/ed933c' + Content-Length: '2031' Content-Type: application/json - body: '{"order_id":5,"company_id":3,"user_id":7,"basket_id":"c3818958-2089-3549-b4ab-66a5c07b77dc","total":66.7,"discount":0.0,"shipping_cost":0.0,"timestamp":1540301482,"status":"E","notes":"","promotions":{"1471e50c-bd0f-3ff8-aad5-7220da2bc77d":{"id":"1471e50c-bd0f-3ff8-aad5-7220da2bc77d","name":""}},"b_firstname":"Paul","b_lastname":"Martin","b_company":"","b_address":"40 rue Laure Diebold","b_address_2":"3\u00e8me \u00e9tage","b_city":"Lyon","b_country":"FR","b_zipcode":"69009","b_phone":"01234567890","s_firstname":"Paul","s_lastname":"Martin","s_company":"","s_address":"40 rue Laure Diebold","s_address_2":"3\u00e8me \u00e9tage","s_city":"Lyon","s_country":"FR","s_zipcode":"69009","s_phone":"01234567890","email":"customer-1@world-company.com","products":{"2085640488":{"item_id":"2085640488","product_id":1,"price":67.9,"amount":1,"comment":"","extra":{"combinations":null},"discount":0.0,"green_tax":"0.00","shipped_amount":0,"shipment_amount":"1","selected_code":"978020137962","supplier_ref":"INFO-001"}},"taxes":{"2":{"rate_type":"P","rate_value":"2.100","price_includes_tax":"Y","regnumber":"445711","priority":0,"tax_subtotal":1.3966,"description":"TVA 2.1%","applies":{"P_2085640488":1.3966}}},"tax_subtotal":0.0,"need_shipping":true,"shipping":[{"shipping_id":1,"status":"A","shipping":"TNT Express","delivery_time":"24h","rates":[{"amount":0,"value":null},{"amount":1,"value":null}],"specific_rate":false,"description":"

Code : TNT01<\/p>\r\n

Type : Livraison à domicile
Mode : EXP<\/p>\r\n

Tel : 08 25 03 30 33<\/p>\r\n

Email :<\/p>\r\n

Adresse : 58 Avenue Leclerc
69007Lyon
France<\/p>\r\n

URL tracking : http:\/\/www.tnt.fr\/suivi<\/p>\r\n

Service : Transport express au domicile, au travail ou en relais colis.<\/p>"}],"shipment_ids":[],"invoice_number":"","customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_order_preparation_pending_vendor_preparation_end_processing"}' + body: '{"order_id":5,"company_id":3,"user_id":7,"basket_id":"c3818958-2089-3549-b4ab-66a5c07b77dc","total":66.7,"discount":0.0,"shipping_cost":0.0,"timestamp":1541605574,"status":"E","notes":"","promotions":{"1471e50c-bd0f-3ff8-aad5-7220da2bc77d":{"id":"1471e50c-bd0f-3ff8-aad5-7220da2bc77d","name":""}},"b_firstname":"Paul","b_lastname":"Martin","b_company":"","b_address":"40 rue Laure Diebold","b_address_2":"3\u00e8me \u00e9tage","b_city":"Lyon","b_country":"FR","b_zipcode":"69009","b_phone":"01234567890","s_firstname":"Paul","s_lastname":"Martin","s_company":"","s_address":"40 rue Laure Diebold","s_address_2":"3\u00e8me \u00e9tage","s_city":"Lyon","s_country":"FR","s_zipcode":"69009","s_phone":"01234567890","s_pickup_point_id":"","email":"customer-1@world-company.com","products":{"2085640488":{"item_id":"2085640488","product_id":1,"price":67.9,"amount":1,"comment":"","extra":{"combinations":null},"discount":0.0,"green_tax":"0.00","shipped_amount":0,"shipment_amount":"1","selected_code":"978020137962","supplier_ref":"INFO-001"}},"taxes":{"2":{"rate_type":"P","rate_value":"2.100","price_includes_tax":"Y","regnumber":"445711","priority":0,"tax_subtotal":1.3966,"description":"TVA 2.1%","applies":{"P_2085640488":1.3966}}},"tax_subtotal":0.0,"need_shipping":true,"shipping":[{"shipping_id":1,"status":"A","shipping":"TNT Express","delivery_time":"24h","rates":[{"amount":0,"value":null},{"amount":1,"value":null}],"specific_rate":false,"description":"

Code : TNT01<\/p>\r\n

Type : Livraison à domicile
Mode : EXP<\/p>\r\n

Tel : 08 25 03 30 33<\/p>\r\n

Email :<\/p>\r\n

Adresse : 58 Avenue Leclerc
69007Lyon
France<\/p>\r\n

URL tracking : http:\/\/www.tnt.fr\/suivi<\/p>\r\n

Service : Transport express au domicile, au travail ou en relais colis.<\/p>"}],"shipment_ids":[],"invoice_number":"","customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_order_preparation_pending_vendor_preparation_end_processing"}' - request: method: POST @@ -89,24 +92,25 @@ Expect: null Accept-Encoding: null Content-Type: application/json - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-171-add-companyId-orders@3e813fb - Authorization: 'token SSKpVuab1CZAKqy82vyUBtAuAP7sZWPdenIEh+RJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token xMspPpWZsb76jskkEyMGLn94LYTRk158JvYt5h63' VCR-index: '3' Accept: null - body: '{"order_id":5,"tracking_number":"0ABC0123456798","comments":"great shipment","products":{"2085640488":1}}' + body: '{"order_id":5,"tracking_number":"0ABC0123456798","comments":"great shipment","products":{"2085640488":1},"label_url":"http:\/\/mondialrelay.com\/shipment-created"}' response: status: http_version: '1.1' code: '201' message: Created headers: - Date: 'Tue, 23 Oct 2018 13:32:38 GMT' + Date: 'Wed, 07 Nov 2018 15:46:47 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 7700c3 - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/7700c3' - Set-Cookie: 'sf_redirect=%7B%22token%22%3A%227700c3%22%2C%22route%22%3A%22shipments%22%2C%22method%22%3A%22POST%22%2C%22controller%22%3A%7B%22class%22%3A%22Wizacha%5C%5CBridge%5C%5CCsCart%5C%5CApi%22%2C%22method%22%3A%22handleRequest%22%2C%22file%22%3A%22%5C%2Fvagrant%5C%2Fapp%5C%2FTygh%5C%2FApi.php%22%2C%22line%22%3A90%7D%2C%22status_code%22%3A201%2C%22status_text%22%3A%22Created%22%7D; path=/; httponly' + X-Debug-Token: 185fdd + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/185fdd' + Set-Cookie: 'sf_redirect=%7B%22token%22%3A%22185fdd%22%2C%22route%22%3A%22shipments%22%2C%22method%22%3A%22POST%22%2C%22controller%22%3A%7B%22class%22%3A%22Wizacha%5C%5CBridge%5C%5CCsCart%5C%5CApi%22%2C%22method%22%3A%22handleRequest%22%2C%22file%22%3A%22%5C%2Fvagrant%5C%2Fapp%5C%2FTygh%5C%2FApi.php%22%2C%22line%22%3A90%7D%2C%22status_code%22%3A201%2C%22status_text%22%3A%22Created%22%7D; path=/; httponly' Content-Length: '17' Content-Type: application/json body: '{"shipment_id":1}' @@ -117,8 +121,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-171-add-companyId-orders@3e813fb - Authorization: 'token SSKpVuab1CZAKqy82vyUBtAuAP7sZWPdenIEh+RJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token xMspPpWZsb76jskkEyMGLn94LYTRk158JvYt5h63' VCR-index: '4' Accept: null response: @@ -127,15 +131,16 @@ code: '200' message: OK headers: - Date: 'Tue, 23 Oct 2018 13:32:40 GMT' + Date: 'Wed, 07 Nov 2018 15:46:47 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 6c766a - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/6c766a' - Content-Length: '2011' + X-Debug-Token: b4690f + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/b4690f' + Content-Length: '2034' Content-Type: application/json - body: '{"order_id":5,"company_id":3,"user_id":7,"basket_id":"c3818958-2089-3549-b4ab-66a5c07b77dc","total":66.7,"discount":0.0,"shipping_cost":0.0,"timestamp":1540301482,"status":"E","notes":"","promotions":{"1471e50c-bd0f-3ff8-aad5-7220da2bc77d":{"id":"1471e50c-bd0f-3ff8-aad5-7220da2bc77d","name":""}},"b_firstname":"Paul","b_lastname":"Martin","b_company":"","b_address":"40 rue Laure Diebold","b_address_2":"3\u00e8me \u00e9tage","b_city":"Lyon","b_country":"FR","b_zipcode":"69009","b_phone":"01234567890","s_firstname":"Paul","s_lastname":"Martin","s_company":"","s_address":"40 rue Laure Diebold","s_address_2":"3\u00e8me \u00e9tage","s_city":"Lyon","s_country":"FR","s_zipcode":"69009","s_phone":"01234567890","email":"customer-1@world-company.com","products":{"2085640488":{"item_id":"2085640488","product_id":1,"price":67.9,"amount":1,"comment":"","extra":{"combinations":null},"discount":0.0,"green_tax":"0.00","shipped_amount":"1","shipment_amount":0,"selected_code":"978020137962","supplier_ref":"INFO-001"}},"taxes":{"2":{"rate_type":"P","rate_value":"2.100","price_includes_tax":"Y","regnumber":"445711","priority":0,"tax_subtotal":1.3966,"description":"TVA 2.1%","applies":{"P_2085640488":1.3966}}},"tax_subtotal":0.0,"need_shipping":true,"shipping":[{"shipping_id":1,"status":"A","shipping":"TNT Express","delivery_time":"24h","rates":[{"amount":0,"value":null},{"amount":1,"value":null}],"specific_rate":false,"description":"

Code : TNT01<\/p>\r\n

Type : Livraison à domicile
Mode : EXP<\/p>\r\n

Tel : 08 25 03 30 33<\/p>\r\n

Email :<\/p>\r\n

Adresse : 58 Avenue Leclerc
69007Lyon
France<\/p>\r\n

URL tracking : http:\/\/www.tnt.fr\/suivi<\/p>\r\n

Service : Transport express au domicile, au travail ou en relais colis.<\/p>"}],"shipment_ids":["1"],"invoice_number":"","customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_order_preparation_pending_vendor_preparation_end_processing"}' + body: '{"order_id":5,"company_id":3,"user_id":7,"basket_id":"c3818958-2089-3549-b4ab-66a5c07b77dc","total":66.7,"discount":0.0,"shipping_cost":0.0,"timestamp":1541605574,"status":"E","notes":"","promotions":{"1471e50c-bd0f-3ff8-aad5-7220da2bc77d":{"id":"1471e50c-bd0f-3ff8-aad5-7220da2bc77d","name":""}},"b_firstname":"Paul","b_lastname":"Martin","b_company":"","b_address":"40 rue Laure Diebold","b_address_2":"3\u00e8me \u00e9tage","b_city":"Lyon","b_country":"FR","b_zipcode":"69009","b_phone":"01234567890","s_firstname":"Paul","s_lastname":"Martin","s_company":"","s_address":"40 rue Laure Diebold","s_address_2":"3\u00e8me \u00e9tage","s_city":"Lyon","s_country":"FR","s_zipcode":"69009","s_phone":"01234567890","s_pickup_point_id":"","email":"customer-1@world-company.com","products":{"2085640488":{"item_id":"2085640488","product_id":1,"price":67.9,"amount":1,"comment":"","extra":{"combinations":null},"discount":0.0,"green_tax":"0.00","shipped_amount":"1","shipment_amount":0,"selected_code":"978020137962","supplier_ref":"INFO-001"}},"taxes":{"2":{"rate_type":"P","rate_value":"2.100","price_includes_tax":"Y","regnumber":"445711","priority":0,"tax_subtotal":1.3966,"description":"TVA 2.1%","applies":{"P_2085640488":1.3966}}},"tax_subtotal":0.0,"need_shipping":true,"shipping":[{"shipping_id":1,"status":"A","shipping":"TNT Express","delivery_time":"24h","rates":[{"amount":0,"value":null},{"amount":1,"value":null}],"specific_rate":false,"description":"

Code : TNT01<\/p>\r\n

Type : Livraison à domicile
Mode : EXP<\/p>\r\n

Tel : 08 25 03 30 33<\/p>\r\n

Email :<\/p>\r\n

Adresse : 58 Avenue Leclerc
69007Lyon
France<\/p>\r\n

URL tracking : http:\/\/www.tnt.fr\/suivi<\/p>\r\n

Service : Transport express au domicile, au travail ou en relais colis.<\/p>"}],"shipment_ids":["1"],"invoice_number":"","customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_order_preparation_pending_vendor_preparation_end_processing"}' - request: method: GET @@ -143,8 +148,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-171-add-companyId-orders@3e813fb - Authorization: 'token SSKpVuab1CZAKqy82vyUBtAuAP7sZWPdenIEh+RJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token xMspPpWZsb76jskkEyMGLn94LYTRk158JvYt5h63' VCR-index: '5' Accept: null response: @@ -153,15 +158,16 @@ code: '200' message: OK headers: - Date: 'Tue, 23 Oct 2018 13:32:42 GMT' + Date: 'Wed, 07 Nov 2018 15:46:48 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 776b11 - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/776b11' - Content-Length: '196' + X-Debug-Token: f1a544 + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/f1a544' + Content-Length: '254' Content-Type: application/json - body: '[{"shipment_id":1,"shipment_timestamp":1540301559,"comments":"great shipment","order_id":5,"shipping_id":1,"shipping":"TNT Express","tracking_number":"0ABC0123456798","products":{"2085640488":1}}]' + body: '[{"shipment_id":1,"shipment_timestamp":1541605607,"comments":"great shipment","order_id":5,"shipping_id":1,"shipping":"TNT Express","tracking_number":"0ABC0123456798","label_url":"http:\/\/mondialrelay.com\/shipment-created","products":{"2085640488":1}}]' - request: method: GET @@ -169,8 +175,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-171-add-companyId-orders@3e813fb - Authorization: 'token SSKpVuab1CZAKqy82vyUBtAuAP7sZWPdenIEh+RJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token xMspPpWZsb76jskkEyMGLn94LYTRk158JvYt5h63' VCR-index: '6' Accept: null response: @@ -179,12 +185,13 @@ code: '200' message: OK headers: - Date: 'Tue, 23 Oct 2018 13:32:44 GMT' + Date: 'Wed, 07 Nov 2018 15:46:49 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: d235cd - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/d235cd' - Content-Length: '194' + X-Debug-Token: 9705fa + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/9705fa' + Content-Length: '252' Content-Type: application/json - body: '{"shipment_id":1,"shipment_timestamp":1540301559,"comments":"great shipment","order_id":5,"shipping_id":1,"shipping":"TNT Express","tracking_number":"0ABC0123456798","products":{"2085640488":1}}' + body: '{"shipment_id":1,"shipment_timestamp":1541605607,"comments":"great shipment","order_id":5,"shipping_id":1,"shipping":"TNT Express","tracking_number":"0ABC0123456798","label_url":"http:\/\/mondialrelay.com\/shipment-created","products":{"2085640488":1}}' From 1534d969b7c465219a1658e05fb4e5b187f5b1ce Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Thu, 8 Nov 2018 15:48:52 +0100 Subject: [PATCH 10/16] Add Mondial Relay label generation --- src/Shipping/MondialRelayLabel.php | 37 ++++++ src/Vendor/Order/CreateLabelCommand.php | 48 ++++++++ src/Vendor/Order/OrderService.php | 12 ++ tests/Vendor/Order/OrderServiceTest.php | 26 ++++ .../testGenerateMondialRelayLabel.yml | 115 ++++++++++++++++++ 5 files changed, 238 insertions(+) create mode 100644 src/Shipping/MondialRelayLabel.php create mode 100644 src/Vendor/Order/CreateLabelCommand.php create mode 100644 tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml diff --git a/src/Shipping/MondialRelayLabel.php b/src/Shipping/MondialRelayLabel.php new file mode 100644 index 00000000..18427319 --- /dev/null +++ b/src/Shipping/MondialRelayLabel.php @@ -0,0 +1,37 @@ +trackingNumber = $data['tracking_number']; + $this->labelUrl = $data['label_url']; + } + + public function getTrackingNumber(): string + { + return $this->trackingNumber; + } + + public function getLabelUrl(): string + { + return $this->labelUrl; + } +} diff --git a/src/Vendor/Order/CreateLabelCommand.php b/src/Vendor/Order/CreateLabelCommand.php new file mode 100644 index 00000000..2f8be2c8 --- /dev/null +++ b/src/Vendor/Order/CreateLabelCommand.php @@ -0,0 +1,48 @@ +shippedQuantityByItemId = $shippedQuantityByItemId; + + return $this; + } + + /** + * @internal + */ + public function validate(): void + { + if (count($this->shippedQuantityByItemId) === 0) { + throw new SomeParametersAreInvalid('at least 1 order item id is required'); + } + } + + /** + * @internal + */ + public function toArray() + { + return [ + 'products' => $this->shippedQuantityByItemId, + ]; + } +} diff --git a/src/Vendor/Order/OrderService.php b/src/Vendor/Order/OrderService.php index b4d5d7ae..fbf608d0 100644 --- a/src/Vendor/Order/OrderService.php +++ b/src/Vendor/Order/OrderService.php @@ -9,6 +9,7 @@ use GuzzleHttp\RequestOptions; use Wizaplace\SDK\AbstractService; +use Wizaplace\SDK\Shipping\MondialRelayLabel; class OrderService extends AbstractService { @@ -127,6 +128,17 @@ public function reportHandDelivery(int $orderId, ?string $deliveryCode): void ]); } + public function generateMondialRelayLabel(int $orderId, CreateLabelCommand $command) + { + $command->validate(); + + $result = $this->client->post("orders/${orderId}/mondialRelayLabel", [ + RequestOptions::JSON => $command->toArray(), + ]); + + return new MondialRelayLabel($result); + } + private function setOrderIsAccepted(int $orderId, bool $accepted): void { $this->client->mustBeAuthenticated(); diff --git a/tests/Vendor/Order/OrderServiceTest.php b/tests/Vendor/Order/OrderServiceTest.php index dac12945..6aa29c87 100644 --- a/tests/Vendor/Order/OrderServiceTest.php +++ b/tests/Vendor/Order/OrderServiceTest.php @@ -7,7 +7,10 @@ namespace Wizaplace\SDK\Tests\Vendor\Order; +use Wizaplace\SDK\Shipping\MondialRelayLabel; use Wizaplace\SDK\Tests\ApiTestCase; +use Wizaplace\SDK\Order\OrderService as BaseOrderService; +use Wizaplace\SDK\Vendor\Order\CreateLabelCommand; use Wizaplace\SDK\Vendor\Order\CreateShipmentCommand; use Wizaplace\SDK\Vendor\Order\Order; use Wizaplace\SDK\Vendor\Order\OrderAddress; @@ -239,6 +242,29 @@ public function testListTaxes(): void } } + public function testGenerateMondialRelayLabel(): void + { + $orderService = $this->buildVendorOrderService(); + + $orderId = 10; + $orderService->acceptOrder($orderId); + + $order = $orderService->getOrderById($orderId); + + $itemsShipped = []; + foreach ($order->getItems() as $item) { + $itemsShipped[$item->getItemId()] = $item->getQuantityToShip(); + } + + $result = $orderService->generateMondialRelayLabel( + $orderId, + (new CreateLabelCommand()) + ->setShippedQuantityByItemId($itemsShipped) + ); + + $this->assertInstanceOf(MondialRelayLabel::class, $result); + } + private function buildVendorOrderService(string $email = 'vendor@world-company.com', string $password = 'password-vendor'): OrderService { $apiClient = $this->buildApiClient(); diff --git a/tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml b/tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml new file mode 100644 index 00000000..b0f84705 --- /dev/null +++ b/tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml @@ -0,0 +1,115 @@ + +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/users/authenticate' + headers: + Host: wizaplace.loc + Accept-Encoding: null + Authorization: 'Basic dmVuZG9yQHdvcmxkLWNvbXBhbnkuY29tOnBhc3N3b3JkLXZlbmRvcg==' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + VCR-index: '0' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 08 Nov 2018 14:28:44 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 561bc3 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/561bc3' + Content-Length: '60' + Content-Type: application/json + body: '{"id":6,"apiKey":"XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM"}' +- + request: + method: PUT + url: 'http://wizaplace.loc/api/v1/orders/10' + headers: + Host: wizaplace.loc + Expect: null + Accept-Encoding: null + Content-Type: application/json + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM' + VCR-index: '1' + Accept: null + body: '{"approved":true}' + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 08 Nov 2018 14:28:45 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 7f2b79 + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/7f2b79' + Content-Length: '17' + Content-Type: application/json + body: '{"order_id":"10"}' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/orders/10' + headers: + Host: wizaplace.loc + Accept-Encoding: null + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM' + VCR-index: '2' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 08 Nov 2018 14:28:45 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 0a3ed7 + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/0a3ed7' + Content-Length: '1501' + Content-Type: application/json + body: '{"order_id":10,"company_id":3,"user_id":7,"basket_id":"f5111ec1-894e-3655-94c8-0fd80cf8a32e","total":66.7,"discount":0.0,"shipping_cost":0.0,"timestamp":1541687294,"status":"E","notes":"","promotions":{"1471e50c-bd0f-3ff8-aad5-7220da2bc77d":{"id":"1471e50c-bd0f-3ff8-aad5-7220da2bc77d","name":""}},"b_firstname":"Paul","b_lastname":"Martin","b_company":"","b_address":"40 rue Laure Diebold","b_address_2":"3\u00e8me \u00e9tage","b_city":"Lyon","b_country":"FR","b_zipcode":"69009","b_phone":"01234567890","s_firstname":"mondial","s_lastname":"relay","s_company":"wiz","s_address":"25 rue de la gare","s_address_2":"","s_city":"Lyon","s_country":"FR","s_zipcode":"69009","s_phone":"01234567890","s_pickup_point_id":"00393","email":"customer-1@world-company.com","products":{"2085640488":{"item_id":"2085640488","product_id":1,"price":67.9,"amount":1,"comment":"","extra":{"combinations":null},"discount":0.0,"green_tax":"0.00","shipped_amount":0,"shipment_amount":"1","selected_code":"978020137962","supplier_ref":"INFO-001"}},"taxes":{"2":{"rate_type":"P","rate_value":"2.100","price_includes_tax":"Y","regnumber":"445711","priority":0,"tax_subtotal":1.3966,"description":"TVA 2.1%","applies":{"P_2085640488":1.3966}}},"tax_subtotal":0.0,"need_shipping":true,"shipping":[[]],"shipment_ids":[],"invoice_number":"","customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_order_preparation_pending_vendor_preparation_end_processing"}' +- + request: + method: POST + url: 'http://wizaplace.loc/api/v1/orders/10/mondialRelayLabel' + headers: + Host: wizaplace.loc + Expect: null + Accept-Encoding: null + Content-Type: application/json + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + Authorization: 'token XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM' + VCR-index: '3' + Accept: null + body: '{"products":{"2085640488":1}}' + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 08 Nov 2018 14:28:46 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: abe90d + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/abe90d' + Content-Length: '212' + Content-Type: application/json + body: '{"tracking_number":"31262419","label_url":"http:\/\/www.mondialrelay.com\/ww2\/PDF\/StickerMaker2.aspx?ens=BDTEST1311\u0026expedition=31262419\u0026lg=FR\u0026format=A4\u0026crc=9E04C47581D992259707C88BC90AFAD8"}' From 1213d1243d18480f292d7ab5bb2d4e8d8599ffb3 Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Thu, 8 Nov 2018 16:55:39 +0100 Subject: [PATCH 11/16] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf42e39a..a3f50080 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ Compatible with Wizaplace 1.27.0 - Added attribute `checkout` to `\Wizaplace\SDK\Organisation\OrganisationBasket` - Added `Wizaplace\SDK\Basket\BasketService::setMondialRelayPickupPoint` - Added `Wizaplace\SDK\Shipping\MondialRelayService` and its associated classes +- Added `Wizaplace\SDK\Vendor\Order\OrderService::generateMondialRelayLabel` ## 1.40.0 From 694c224793013b898e7f4e85c9ec1068c10986fe Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Wed, 14 Nov 2018 13:45:52 +0100 Subject: [PATCH 12/16] Fix test --- ...estGetOrdersWhichReturnsProductImageId.yml | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsProductImageId.yml b/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsProductImageId.yml index 15df8e23..f716e7d1 100644 --- a/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsProductImageId.yml +++ b/tests/Order/OrderServiceTest/testGetOrdersWhichReturnsProductImageId.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic Y3VzdG9tZXItMUB3b3JsZC1jb21wYW55LmNvbTpwYXNzd29yZC1jdXN0b21lci0x' - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@3e5a28a + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 13:07:39 GMT' + Date: 'Wed, 14 Nov 2018 12:20:11 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 2688c7 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/2688c7' + X-Debug-Token: 4d30f9 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/4d30f9' Content-Length: '60' Content-Type: application/json - body: '{"id":7,"apiKey":"5ZNKXAp+IBuHVuXoInPHOCfHBHbY4RRdgVmagc36"}' + body: '{"id":7,"apiKey":"bYbPePrHSmHGyz6oWzlhvRnBqga5ol12BqMRqKRo"}' - request: method: GET @@ -32,8 +33,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@3e5a28a - Authorization: 'token 5ZNKXAp+IBuHVuXoInPHOCfHBHbY4RRdgVmagc36' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token bYbPePrHSmHGyz6oWzlhvRnBqga5ol12BqMRqKRo' VCR-index: '1' Accept: null response: @@ -42,15 +43,16 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 13:07:40 GMT' + Date: 'Wed, 14 Nov 2018 12:20:11 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 6f9bf0 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/6f9bf0' - Content-Length: '1245' + X-Debug-Token: a82e97 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/a82e97' + Content-Length: '1287' Content-Type: application/json - body: '{"id":1,"basketId":"4fec2923-4eac-3420-a9c6-abf6dc578744","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1540559235,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' + body: '{"id":1,"basketId":"4fec2923-4eac-3420-a9c6-abf6dc578744","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542197980,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' - request: method: GET @@ -58,8 +60,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/wiz-84-add-productimageid-orders-sdk@3e5a28a - Authorization: 'token 5ZNKXAp+IBuHVuXoInPHOCfHBHbY4RRdgVmagc36' + User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + Authorization: 'token bYbPePrHSmHGyz6oWzlhvRnBqga5ol12BqMRqKRo' VCR-index: '2' Accept: null response: @@ -68,12 +70,13 @@ code: '200' message: OK headers: - Date: 'Fri, 26 Oct 2018 13:07:40 GMT' + Date: 'Wed, 14 Nov 2018 12:20:12 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: bd0a57 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/bd0a57' - Content-Length: '1357' + X-Debug-Token: 32837e + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/32837e' + Content-Length: '1399' Content-Type: application/json - body: '{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1540559235,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}}' + body: '{"id":4,"basketId":"90c50bbf-9dbb-3497-a71a-7554303b4875","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542197980,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"Please deliver at the front desk of my company.","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":1,"options":[],"customerComment":"Please, gift wrap this product.","greenTax":0}],"payment":{"type":"manual","processorName":null}}' From a662e68eed84322e0c4195a156e8fafe935c73b4 Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Wed, 14 Nov 2018 16:46:02 +0100 Subject: [PATCH 13/16] Update generateMondialRelayLabel route --- src/Vendor/Order/OrderService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Vendor/Order/OrderService.php b/src/Vendor/Order/OrderService.php index fbf608d0..af812234 100644 --- a/src/Vendor/Order/OrderService.php +++ b/src/Vendor/Order/OrderService.php @@ -132,7 +132,7 @@ public function generateMondialRelayLabel(int $orderId, CreateLabelCommand $comm { $command->validate(); - $result = $this->client->post("orders/${orderId}/mondialRelayLabel", [ + $result = $this->client->post("_orders/${orderId}/mondialRelayLabel", [ RequestOptions::JSON => $command->toArray(), ]); From e6fb70ae8c0678856af54772a3b167067ae27295 Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Thu, 15 Nov 2018 13:49:48 +0100 Subject: [PATCH 14/16] Fix tests --- .../BasketServiceTest/testFullCheckout.yml | 242 ++++++++++++++++-- .../testGenerateMondialRelayLabel.yml | 48 ++-- 2 files changed, 243 insertions(+), 47 deletions(-) diff --git a/tests/Basket/BasketServiceTest/testFullCheckout.yml b/tests/Basket/BasketServiceTest/testFullCheckout.yml index 26951a5c..07092b3e 100644 --- a/tests/Basket/BasketServiceTest/testFullCheckout.yml +++ b/tests/Basket/BasketServiceTest/testFullCheckout.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic Y3VzdG9tZXItMUB3b3JsZC1jb21wYW55LmNvbTpwYXNzd29yZC1jdXN0b21lci0x' - User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e VCR-index: '0' Accept: null response: @@ -16,16 +16,16 @@ code: '200' message: OK headers: - Date: 'Wed, 14 Nov 2018 12:14:05 GMT' + Date: 'Thu, 15 Nov 2018 12:48:55 GMT' Server: 'Apache/2.4.25 (Debian)' X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 53f5a9 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/53f5a9' + X-Debug-Token: 7467c0 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/7467c0' Content-Length: '61' Content-Type: application/json - body: '{"id":7,"apiKey":"tKLuzjLbLKfurrtz3+\/sh3I4yEHx96Tokwu0cnwJ"}' + body: '{"id":7,"apiKey":"Fe3rhALTtZrW7Tr81\/ZqN2SOTkknj2EWHCvwtmN7"}' - request: method: POST @@ -34,8 +34,8 @@ Host: wizaplace.loc Content-Length: '0' Accept-Encoding: null - User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' - Authorization: 'token tKLuzjLbLKfurrtz3+/sh3I4yEHx96Tokwu0cnwJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' VCR-index: '1' Accept: null response: @@ -44,45 +44,241 @@ code: '201' message: Created headers: - Date: 'Wed, 14 Nov 2018 12:14:06 GMT' + Date: 'Thu, 15 Nov 2018 12:48:55 GMT' Server: 'Apache/2.4.25 (Debian)' X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 4df107 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/4df107' - Set-Cookie: 'sf_redirect=%7B%22token%22%3A%224df107%22%2C%22route%22%3A%22api_basket_create%22%2C%22method%22%3A%22POST%22%2C%22controller%22%3A%7B%22class%22%3A%22Wizacha%5C%5CAppBundle%5C%5CController%5C%5CApi%5C%5CBasketController%22%2C%22method%22%3A%22createAction%22%2C%22file%22%3A%22%5C%2Fvagrant%5C%2Fsrc%5C%2FAppBundle%5C%2FController%5C%2FApi%5C%2FBasketController.php%22%2C%22line%22%3A42%7D%2C%22status_code%22%3A201%2C%22status_text%22%3A%22Created%22%7D; path=/; httponly' + X-Debug-Token: f5af78 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/f5af78' + Set-Cookie: 'sf_redirect=%7B%22token%22%3A%22f5af78%22%2C%22route%22%3A%22api_basket_create%22%2C%22method%22%3A%22POST%22%2C%22controller%22%3A%7B%22class%22%3A%22Wizacha%5C%5CAppBundle%5C%5CController%5C%5CApi%5C%5CBasketController%22%2C%22method%22%3A%22createAction%22%2C%22file%22%3A%22%5C%2Fvagrant%5C%2Fsrc%5C%2FAppBundle%5C%2FController%5C%2FApi%5C%2FBasketController.php%22%2C%22line%22%3A42%7D%2C%22status_code%22%3A201%2C%22status_text%22%3A%22Created%22%7D; path=/; httponly' Content-Length: '38' Content-Type: application/json - body: '"1d80d335-39e2-4772-91a3-6ed98cc2b9ad"' + body: '"9cda893a-d807-41de-ad88-b14d24119c8e"' - request: method: POST - url: 'http://wizaplace.loc/api/v1/basket/1d80d335-39e2-4772-91a3-6ed98cc2b9ad/add' + url: 'http://wizaplace.loc/api/v1/basket/9cda893a-d807-41de-ad88-b14d24119c8e/add' headers: Host: wizaplace.loc Expect: null Accept-Encoding: null Content-Type: application/x-www-form-urlencoded - User-Agent: 'Wizaplace-PHP-SDK/No version set (parsed as 1.0.0)@' - Authorization: 'token tKLuzjLbLKfurrtz3+/sh3I4yEHx96Tokwu0cnwJ' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' VCR-index: '2' Accept: null body: 'declinationId=1&quantity=1' response: status: http_version: '1.1' - code: '400' - message: 'Bad Request' + code: '200' + message: OK + headers: + Date: 'Thu, 15 Nov 2018 12:48:55 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: c5c95c + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/c5c95c' + Content-Length: '14' + Content-Type: application/json + body: '{"quantity":1}' +- + request: + method: POST + url: 'http://wizaplace.loc/api/v1/basket/9cda893a-d807-41de-ad88-b14d24119c8e/add' + headers: + Host: wizaplace.loc + Expect: null + Accept-Encoding: null + Content-Type: application/x-www-form-urlencoded + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' + VCR-index: '3' + Accept: null + body: 'declinationId=1&quantity=1' + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 15 Nov 2018 12:48:56 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 4ff7c1 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/4ff7c1' + Content-Length: '14' + Content-Type: application/json + body: '{"quantity":2}' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/basket/9cda893a-d807-41de-ad88-b14d24119c8e' + headers: + Host: wizaplace.loc + Accept-Encoding: null + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' + VCR-index: '4' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 15 Nov 2018 12:48:56 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: b0dd6e + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/b0dd6e' + Content-Length: '2452' + Content-Type: application/json + body: '{"id":"9cda893a-d807-41de-ad88-b14d24119c8e","comment":"","coupons":[],"billingAddress":{"title":"","firstname":"","lastname":"","company":"","address":"","address2":"","zipcode":"","city":"","state":"","country":"","phone":"","email":"","pickupPointId":""},"shippingAddress":{"title":"","firstname":"","lastname":"","company":"","address":"","address2":"","zipcode":"","city":"","state":"","country":"","phone":"","email":"","pickupPointId":""},"companyGroups":[{"company":{"id":3,"name":"The World Company Inc.","slug":"the-world-company-inc."},"productTotalWithTaxes":135.8,"productTaxes":2.79,"shippingTotalWithTaxes":0,"shippingTaxes":0,"taxTotal":2.79,"shippingGroups":[{"id":1,"items":[{"declinationId":"1_0","productId":1,"productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productUrl":"https:\/\/wizaplace.loc\/it\/test-product-slug.html","individualPrice":67.9,"individualTax":1.4,"crossedOutPrice":null,"greenTax":0,"mainImage":{"id":0},"quantity":2,"total":135.8,"options":[],"comment":"","unitPrice":{"priceWithoutVat":66.5,"priceWithTaxes":67.9,"vat":1.4},"totalPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79}}],"shippings":[{"id":1,"name":"TNT Express","type":"S","price":0,"deliveryTime":"24h","image":null,"shippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"selected":true},{"id":38,"name":"Lettre prioritaire","type":"S","price":0,"deliveryTime":"","image":null,"shippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"selected":false},{"id":39,"name":"Colissmo","type":"S","price":0,"deliveryTime":"","image":null,"shippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"selected":false}],"productTotalWithTaxes":135.8,"productTaxes":2.79,"shippingTotalWithTaxes":0,"shippingTaxes":0,"taxTotal":2.79,"itemsPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79},"selectedShippingPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"totalPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79}}]}],"subtotal":135.8,"totalDiscount":0,"totalShipping":0,"totalShippingTax":0,"totalTax":2.79,"total":135.8,"totalQuantity":2,"totalItemsPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79},"totalShippingsPrice":{"priceWithoutVat":0,"priceWithTaxes":0,"vat":0},"totalGlobalPrice":{"priceWithoutVat":133.01,"priceWithTaxes":135.8,"vat":2.79},"isEligibleToPickupPointsShipping":false,"isPickupPointsShipping":false}' +- + request: + method: POST + url: 'http://wizaplace.loc/api/v1/basket/9cda893a-d807-41de-ad88-b14d24119c8e/shippings' + headers: + Host: wizaplace.loc + Expect: null + Accept-Encoding: null + Content-Type: application/json + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' + VCR-index: '5' + Accept: null + body: '{"shippingGroups":{"1":39}}' + response: + status: + http_version: '1.1' + code: '204' + message: 'No Content' + headers: + Date: 'Thu, 15 Nov 2018 12:48:56 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 5ad9f9 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/5ad9f9' + Content-Type: 'text/html; charset=UTF-8' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/basket/9cda893a-d807-41de-ad88-b14d24119c8e/payments' headers: - Date: 'Wed, 14 Nov 2018 12:14:07 GMT' + Host: wizaplace.loc + Accept-Encoding: null + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' + VCR-index: '6' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 15 Nov 2018 12:48:57 GMT' Server: 'Apache/2.4.25 (Debian)' X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: cdbff4 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/cdbff4' - Content-Length: '65' - Connection: close + X-Debug-Token: 953f0c + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/953f0c' + Content-Length: '415' Content-Type: application/json - body: '{"message":"La quantit\u00e9 que vous avez saisie est invalide."}' + body: '[{"id":1,"name":"CB","description":"Carte Bleue","position":0,"image":{"id":3},"type":"manual"},{"id":2,"name":"Visa","description":"Carte Visa","position":1,"image":null,"type":"manual"},{"id":3,"name":"MasterCard","description":"Carte MasterCard","position":2,"image":null,"type":"manual"},{"id":4,"name":"Paiement \u00e0 \u00e9ch\u00e9ance","description":"","position":3,"image":null,"type":"payment-deferment"}]' +- + request: + method: POST + url: 'http://wizaplace.loc/api/v1/basket/9cda893a-d807-41de-ad88-b14d24119c8e/order' + headers: + Host: wizaplace.loc + Expect: null + Accept-Encoding: null + Content-Type: application/x-www-form-urlencoded + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' + VCR-index: '7' + Accept: null + body: 'paymentId=1&acceptTermsAndConditions=1&redirectUrl=https%3A%2F%2Fdemo.loc%2Forder%2Fconfirm' + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 15 Nov 2018 12:48:57 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 5ad0c5 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/5ad0c5' + Content-Length: '22' + Content-Type: application/json + body: '{"orders":[{"id":11}]}' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/user/orders/11' + headers: + Host: wizaplace.loc + Accept-Encoding: null + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' + VCR-index: '8' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 15 Nov 2018 12:48:58 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: b7efdb + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/b7efdb' + Content-Length: '1288' + Content-Type: application/json + body: '{"id":11,"basketId":"9cda893a-d807-41de-ad88-b14d24119c8e","companyId":3,"companyName":"The World Company Inc.","total":135.8,"taxTotal":2.79,"subtotal":135.8,"timestamp":1542286137,"status":"STANDBY_BILLING","workflow":"workflow_manual_payment_pending_manual_payment_processing","shippingName":"Colissmo","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":2,"options":[],"customerComment":"","greenTax":0},{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":"0","price":67.9,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' +- + request: + method: GET + url: 'http://wizaplace.loc/api/v1/user/orders/11/pdf-invoice' + headers: + Host: wizaplace.loc + Accept-Encoding: null + Accept: application/pdf + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token Fe3rhALTtZrW7Tr81/ZqN2SOTkknj2EWHCvwtmN7' + VCR-index: '9' + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Date: 'Thu, 15 Nov 2018 12:48:59 GMT' + Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen + Content-disposition: 'attachment; filename="Commandes-11.pdf"' + Cache-Control: 'no-cache, private' + Content-Language: fr + X-Debug-Token: 7aba57 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/7aba57' + Transfer-Encoding: chunked + Content-Type: application/pdf + body: !!binary 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MiA2NzggNjkwIDY5MCBdCl0KPj4KZW5kb2JqCjI3IDAgb2JqCjw8IC9MZW5ndGggNzA3ID4+CnN0cmVhbQovQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KMTIgZGljdCBiZWdpbgpiZWdpbmNtYXAKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4gZGVmCi9DTWFwTmFtZSAvQWRvYmUtSWRlbnRpdHktVUNTIGRlZgovQ01hcFR5cGUgMiBkZWYKMSBiZWdpbmNvZGVzcGFjZXJhbmdlCjwwMDAwPiA8RkZGRj4KZW5kY29kZXNwYWNlcmFuZ2UKMiBiZWdpbmJmcmFuZ2UKPDAwMDA+IDwwMDAwPiA8MDAwMD4KPDAwMDE+IDwwMDMxPiBbPDAwNDQ+IDwwMEM5PiA8MDA1ND4gPDAwNDE+IDwwMDQ5PiA8MDA0Qz4gPDAwNTM+IDwwMDIwPiA8MDA0NT4gPDAwNDM+IDwwMDRGPiA8MDA0RD4gPDAwNEU+IDwwMDY4PiA8MDA2NT4gPDAwNTc+IDwwMDZGPiA8MDA3Mj4gPDAwNkM+IDwwMDY0PiA8MDA2RD4gPDAwNzA+IDwwMDYxPiA8MDA2RT4gPDAwNzk+IDwwMDYzPiA8MDAyRT4gPDAwMjM+IDwwMDMxPiA8MDA3Mz4gPDAwNjY+IDwwMDc0PiA8MDA3NT4gPDAwNjk+IDwwMDNBPiA8MDA3Nj4gPDAwNTA+IDwwMDUxPiA8MDBFOT4gPDAwNzg+IDwwMDQ4PiA8MDAzMz4gPDAwMkM+IDwwMDMwPiA8MjBBQz4gPDAwMkQ+IDwwMDQ2PiA8MDAzNT4gPDAwMzg+IF0KZW5kYmZyYW5nZQplbmRjbWFwCkNNYXBOYW1lIGN1cnJlbnRkaWN0IC9DTWFwIGRlZmluZXJlc291cmNlIHBvcAplbmQKZW5kCgplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUwCi9CYXNlRm9udCAvRGVqYVZ1U2Fucy1Cb2xkCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzIFsyNiAwIFJd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b2JlLUlkZW50aXR5LVVDUyBkZWYKL0NNYXBUeXBlIDIgZGVmCjEgYmVnaW5jb2Rlc3BhY2VyYW5nZQo8MDAwMD4gPEZGRkY+CmVuZGNvZGVzcGFjZXJhbmdlCjIgYmVnaW5iZnJhbmdlCjwwMDAwPiA8MDAwMD4gPDAwMDA+CjwwMDAxPiA8MDAzRT4gWzwwMDJEPiA8MDAyMD4gPDAwMzQ+IDwwMDMwPiA8MDAzOD4gPDAwMzM+IDwwMDMyPiA8MDA1Mj4gPDAwNDM+IDwwMDUzPiA8MDA2MT4gPDAwNzA+IDwwMDY5PiA8MDA3ND4gPDAwNkM+IDwyMEFDPiA8MDA1ND4gPDAwNTY+IDwwMDQxPiA8MDA0OT4gPDAwNkU+IDwwMDcyPiA8MDA2Mz4gPDAwNkY+IDwwMDZEPiA8MDA3NT4gPDAwNjU+IDwwMDNBPiA8MDA0Nj4gPDAwMzk+IDwwMDRDPiA8MDA0ND4gPDAwNjI+IDwwMDY0PiA8MDAzNz4gPDAwMzU+IDwwMDMxPiA8MDA1MD4gPDAwNzM+IDwwMDJDPiA8MDA0NT4gPDAwNEQ+IDwwMDQwPiA8MDA3Nz4gPDAwNzk+IDwwMDJFPiA8MDAyRj4gPDAwNEY+IDwwMDRFPiA8MDA0Mj4gPDAwQjA+IDwwMEU4PiA8MDBFOT4gPDAwNjc+IDwwMDM2PiA8MDA1QT4gPDAwRUU+IDwwMDU4PiA8MDAyNT4gPDAwRkI+IDwyMDEzPiA8MDA3Nj4gXQplbmRiZnJhbmdlCmVuZGNtYXAKQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wCmVuZAplbmQKCmVuZHN0cmVhbQplbmRvYmoKNyAwIG9iago8PCAvVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTAKL0Jhc2VGb250IC9EZWphVnVTYW5zCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzIFszMSAwIFJdCi9Ub1VuaWNvZGUgMzIgMCBSPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIApbCjUgMCBSCl0KL0NvdW50IDEKL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDXQo+PgplbmRvYmoKeHJlZgowIDM0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDI0MjA1IDAwMDAwIG4gCjAwMDAwMDAxNTcgMDAwMDAgbiAKMDAwMDAwMDI1MiAwMDAwMCBuIAowMDAwMDAxNTM3IDAwMDAwIG4gCjAwMDAwMTMzODcgMDAwMDAgbiAKMDAwMDAyNDA2OSAwMDAwMCBuIAowMDAwMDAwMjg5IDAwMDAwIG4gCjAwMDAwMDAzNDAgMDAwMDAgbiAKMDAwMDAwMDM5MSAwMDAwMCBuIAowMDAwMDAwNDQzIDAwMDAwIG4gCjAwMDAwMDA0OTUgMDAwMDAgbiAKMDAwMDAwMDY4NyAwMDAwMCBuIAowMDAwMDAxMzcwIDAwMDAwIG4gCjAwMDAwMDA3OTEgMDAwMDAgbiAKMDAwMDAwMTIxNyAwMDAwMCBuIAowMDAwMDAwOTMzIDAwMDAwIG4gCjAwMDAwMDEwNzcgMDAwMDAgbiAKMDAwMDAwMTQzMyAwMDAwMCBuIAowMDAwMDAxODYxIDAwMDAwIG4gCjAwMDAwMDQwOTAgMDAwMDAgbiAKMDAwMDAwMTY1OCAwMDAwMCBuIAowMDAwMDAxODM0IDAwMDAwIG4gCjAwMDAwMDQxMTEgMDAwMDAgbiAKMDAwMDAwNDM3NiAwMDAwMCBuIAowMDAwMDEyMjExIDAwMDAwIG4gCjAwMDAwMTI2MjggMDAwMDAgbiAKMDAwMDAxMjE5MCAwMDAwMCBuIAowMDAwMDEzNTI4IDAwMDAwIG4gCjAwMDAwMTM3ODggMDAwMDAgbiAKMDAwMDAyMjc1NyAwMDAwMCBuIAowMDAwMDIzMjE5IDAwMDAwIG4gCjAwMDAwMjI3MzYgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAzNAovSW5mbyAxIDAgUgovUm9vdCAxOSAwIFIKPj4Kc3RhcnR4cmVmCjI0MzAzCiUlRU9GCg== diff --git a/tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml b/tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml index b0f84705..82ad0f07 100644 --- a/tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml +++ b/tests/Vendor/Order/OrderServiceTest/testGenerateMondialRelayLabel.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic dmVuZG9yQHdvcmxkLWNvbXBhbnkuY29tOnBhc3N3b3JkLXZlbmRvcg==' - User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e VCR-index: '0' Accept: null response: @@ -16,16 +16,16 @@ code: '200' message: OK headers: - Date: 'Thu, 08 Nov 2018 14:28:44 GMT' + Date: 'Thu, 15 Nov 2018 10:13:41 GMT' Server: 'Apache/2.4.25 (Debian)' X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 561bc3 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/561bc3' - Content-Length: '60' + X-Debug-Token: bb6cba + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/bb6cba' + Content-Length: '61' Content-Type: application/json - body: '{"id":6,"apiKey":"XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM"}' + body: '{"id":6,"apiKey":"1i\/qxZFh2pWHrHNg9aY3R142XOkZQCQe9AhiSUGu"}' - request: method: PUT @@ -35,8 +35,8 @@ Expect: null Accept-Encoding: null Content-Type: application/json - User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 - Authorization: 'token XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token 1i/qxZFh2pWHrHNg9aY3R142XOkZQCQe9AhiSUGu' VCR-index: '1' Accept: null body: '{"approved":true}' @@ -46,13 +46,13 @@ code: '200' message: OK headers: - Date: 'Thu, 08 Nov 2018 14:28:45 GMT' + Date: 'Thu, 15 Nov 2018 10:13:41 GMT' Server: 'Apache/2.4.25 (Debian)' X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 7f2b79 - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/7f2b79' + X-Debug-Token: ee4ca9 + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/ee4ca9' Content-Length: '17' Content-Type: application/json body: '{"order_id":"10"}' @@ -63,8 +63,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 - Authorization: 'token XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token 1i/qxZFh2pWHrHNg9aY3R142XOkZQCQe9AhiSUGu' VCR-index: '2' Accept: null response: @@ -73,27 +73,27 @@ code: '200' message: OK headers: - Date: 'Thu, 08 Nov 2018 14:28:45 GMT' + Date: 'Thu, 15 Nov 2018 10:13:42 GMT' Server: 'Apache/2.4.25 (Debian)' X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 0a3ed7 - X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/0a3ed7' + X-Debug-Token: 51ed1a + X-Debug-Token-Link: 'https://wizaplace.loc/_profiler/51ed1a' Content-Length: '1501' Content-Type: application/json - body: '{"order_id":10,"company_id":3,"user_id":7,"basket_id":"f5111ec1-894e-3655-94c8-0fd80cf8a32e","total":66.7,"discount":0.0,"shipping_cost":0.0,"timestamp":1541687294,"status":"E","notes":"","promotions":{"1471e50c-bd0f-3ff8-aad5-7220da2bc77d":{"id":"1471e50c-bd0f-3ff8-aad5-7220da2bc77d","name":""}},"b_firstname":"Paul","b_lastname":"Martin","b_company":"","b_address":"40 rue Laure Diebold","b_address_2":"3\u00e8me \u00e9tage","b_city":"Lyon","b_country":"FR","b_zipcode":"69009","b_phone":"01234567890","s_firstname":"mondial","s_lastname":"relay","s_company":"wiz","s_address":"25 rue de la gare","s_address_2":"","s_city":"Lyon","s_country":"FR","s_zipcode":"69009","s_phone":"01234567890","s_pickup_point_id":"00393","email":"customer-1@world-company.com","products":{"2085640488":{"item_id":"2085640488","product_id":1,"price":67.9,"amount":1,"comment":"","extra":{"combinations":null},"discount":0.0,"green_tax":"0.00","shipped_amount":0,"shipment_amount":"1","selected_code":"978020137962","supplier_ref":"INFO-001"}},"taxes":{"2":{"rate_type":"P","rate_value":"2.100","price_includes_tax":"Y","regnumber":"445711","priority":0,"tax_subtotal":1.3966,"description":"TVA 2.1%","applies":{"P_2085640488":1.3966}}},"tax_subtotal":0.0,"need_shipping":true,"shipping":[[]],"shipment_ids":[],"invoice_number":"","customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_order_preparation_pending_vendor_preparation_end_processing"}' + body: '{"order_id":10,"company_id":3,"user_id":7,"basket_id":"f5111ec1-894e-3655-94c8-0fd80cf8a32e","total":66.7,"discount":0.0,"shipping_cost":0.0,"timestamp":1542276790,"status":"E","notes":"","promotions":{"1471e50c-bd0f-3ff8-aad5-7220da2bc77d":{"id":"1471e50c-bd0f-3ff8-aad5-7220da2bc77d","name":""}},"b_firstname":"Paul","b_lastname":"Martin","b_company":"","b_address":"40 rue Laure Diebold","b_address_2":"3\u00e8me \u00e9tage","b_city":"Lyon","b_country":"FR","b_zipcode":"69009","b_phone":"01234567890","s_firstname":"mondial","s_lastname":"relay","s_company":"wiz","s_address":"25 rue de la gare","s_address_2":"","s_city":"Lyon","s_country":"FR","s_zipcode":"69009","s_phone":"01234567890","s_pickup_point_id":"00393","email":"customer-1@world-company.com","products":{"2085640488":{"item_id":"2085640488","product_id":1,"price":67.9,"amount":1,"comment":"","extra":{"combinations":null},"discount":0.0,"green_tax":"0.00","shipped_amount":0,"shipment_amount":"1","selected_code":"978020137962","supplier_ref":"INFO-001"}},"taxes":{"2":{"rate_type":"P","rate_value":"2.100","price_includes_tax":"Y","regnumber":"445711","priority":0,"tax_subtotal":1.3966,"description":"TVA 2.1%","applies":{"P_2085640488":1.3966}}},"tax_subtotal":0.0,"need_shipping":true,"shipping":[[]],"shipment_ids":[],"invoice_number":"","customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_order_preparation_pending_vendor_preparation_end_processing"}' - request: method: POST - url: 'http://wizaplace.loc/api/v1/orders/10/mondialRelayLabel' + url: 'http://wizaplace.loc/api/v1/_orders/10/mondialRelayLabel' headers: Host: wizaplace.loc Expect: null Accept-Encoding: null Content-Type: application/json - User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@12c01f1 - Authorization: 'token XwBVVKsgEgco2dq+DtfBDooFg3N1xxzwbocdQWEM' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@ede8c2e + Authorization: 'token 1i/qxZFh2pWHrHNg9aY3R142XOkZQCQe9AhiSUGu' VCR-index: '3' Accept: null body: '{"products":{"2085640488":1}}' @@ -103,13 +103,13 @@ code: '200' message: OK headers: - Date: 'Thu, 08 Nov 2018 14:28:46 GMT' + Date: 'Thu, 15 Nov 2018 10:13:42 GMT' Server: 'Apache/2.4.25 (Debian)' X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: abe90d - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/abe90d' + X-Debug-Token: d5108e + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/d5108e' Content-Length: '212' Content-Type: application/json - body: '{"tracking_number":"31262419","label_url":"http:\/\/www.mondialrelay.com\/ww2\/PDF\/StickerMaker2.aspx?ens=BDTEST1311\u0026expedition=31262419\u0026lg=FR\u0026format=A4\u0026crc=9E04C47581D992259707C88BC90AFAD8"}' + body: '{"tracking_number":"31262852","label_url":"http:\/\/www.mondialrelay.com\/ww2\/PDF\/StickerMaker2.aspx?ens=BDTEST1311\u0026expedition=31262852\u0026lg=FR\u0026format=A4\u0026crc=1B8F139336BE0CD8B03B6832E70611E9"}' From dd8ceba42dab32bd606688657fe6351a23399fdd Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Fri, 16 Nov 2018 16:25:13 +0100 Subject: [PATCH 15/16] Fix test --- .../OrganisationServiceTest/testGetOrder.yml | 99 ++++++++++--------- 1 file changed, 53 insertions(+), 46 deletions(-) diff --git a/tests/Organisation/OrganisationServiceTest/testGetOrder.yml b/tests/Organisation/OrganisationServiceTest/testGetOrder.yml index 70c7264f..230f733c 100644 --- a/tests/Organisation/OrganisationServiceTest/testGetOrder.yml +++ b/tests/Organisation/OrganisationServiceTest/testGetOrder.yml @@ -7,7 +7,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic dXNlcitvcmdhQHVzYy5jb206cGFzc3dvcmQ=' - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@e6fb70a VCR-index: '0' Accept: null response: @@ -16,15 +16,16 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 10:49:15 GMT' + Date: 'Fri, 16 Nov 2018 15:24:44 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: '186996' - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/186996' - Content-Length: '61' + X-Debug-Token: 36b70c + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/36b70c' + Content-Length: '64' Content-Type: application/json - body: '{"id":12,"apiKey":"wD8GnxAoymSjAQSmkP6FwDzKX5JgocD8n585Q+hy"}' + body: '{"id":12,"apiKey":"4gGQTm\/MWqzHjA84u\/EAqjbwUBgqHmygfQd\/9Ex+"}' - request: method: GET @@ -33,7 +34,7 @@ Host: wizaplace.loc Accept-Encoding: null Authorization: 'Basic YWRtaW5Ad2l6YXBsYWNlLmNvbTpwYXNzd29yZA==' - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@e6fb70a VCR-index: '1' Accept: null response: @@ -42,15 +43,16 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 10:49:16 GMT' + Date: 'Fri, 16 Nov 2018 15:24:45 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 57dd0a - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/57dd0a' - Content-Length: '60' + X-Debug-Token: a9e73e + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/a9e73e' + Content-Length: '61' Content-Type: application/json - body: '{"id":2,"apiKey":"BeZFhjvhLWyQfblEtAn1PorBhHSrN3Jyv97BVkMR"}' + body: '{"id":2,"apiKey":"XffTnC9tYotGvZa2jDyKreQ5Rv+dl3LGbmrMD9O\/"}' - request: method: GET @@ -58,8 +60,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a - Authorization: 'token BeZFhjvhLWyQfblEtAn1PorBhHSrN3Jyv97BVkMR' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@e6fb70a + Authorization: 'token XffTnC9tYotGvZa2jDyKreQ5Rv+dl3LGbmrMD9O/' VCR-index: '2' Accept: null response: @@ -68,24 +70,25 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 10:49:16 GMT' + Date: 'Fri, 16 Nov 2018 15:24:45 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: '982678' - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/982678' + X-Debug-Token: 01b92e + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/01b92e' Content-Length: '1146' Content-Type: application/json - body: '{"total":2,"count":2,"_embedded":{"organisations":[{"id":"814cdd73-e1b1-11e8-9b50-080027ea4cb6","name":"University of New York","businessName":"University of New York","siret":"44229377500031","vatNumber":"FR99999999999","businessUnitCode":"NTW","businessUnitName":"Network Infrastructure","address":{"address":"194 Lindale Avenue","additionalAddress":"","zipCode":"94801","city":"Richmond","state":"","country":"US"},"shippingAddress":{"address":"4917 Snyder Avenue","additionalAddress":"","zipCode":"28209","city":"North Carolina","state":"","country":"US"},"status":"pending"},{"id":"818d83c8-e1b1-11e8-9b50-080027ea4cb6","name":"University of Southern California","businessName":"Southern California","siret":"80295478500028","vatNumber":"FR63802954785","businessUnitCode":"IT","businessUnitName":"Information Technology","address":{"address":"42228 Hunter Summit Suite 058","additionalAddress":"","zipCode":"13736-4550","city":"Bettyeburgh","state":"","country":"FR"},"shippingAddress":{"address":"99410 Dach Views Apt. 994","additionalAddress":"","zipCode":"00229","city":"West Geraldport","state":"","country":"FR"},"status":"approved"}]}}' + body: '{"total":2,"count":2,"_embedded":{"organisations":[{"id":"a9906b0b-e9b3-11e8-87b0-080027ea4cb6","name":"University of New York","businessName":"University of New York","siret":"44229377500031","vatNumber":"FR99999999999","businessUnitCode":"NTW","businessUnitName":"Network Infrastructure","address":{"address":"194 Lindale Avenue","additionalAddress":"","zipCode":"94801","city":"Richmond","state":"","country":"US"},"shippingAddress":{"address":"4917 Snyder Avenue","additionalAddress":"","zipCode":"28209","city":"North Carolina","state":"","country":"US"},"status":"pending"},{"id":"aaa0cf6b-e9b3-11e8-87b0-080027ea4cb6","name":"University of Southern California","businessName":"Southern California","siret":"80295478500028","vatNumber":"FR63802954785","businessUnitCode":"IT","businessUnitName":"Information Technology","address":{"address":"42228 Hunter Summit Suite 058","additionalAddress":"","zipCode":"13736-4550","city":"Bettyeburgh","state":"","country":"FR"},"shippingAddress":{"address":"99410 Dach Views Apt. 994","additionalAddress":"","zipCode":"00229","city":"West Geraldport","state":"","country":"FR"},"status":"approved"}]}}' - request: method: GET - url: 'http://wizaplace.loc/api/v1/organisations/818d83c8-e1b1-11e8-9b50-080027ea4cb6/orders?start=0&limit=10' + url: 'http://wizaplace.loc/api/v1/organisations/aaa0cf6b-e9b3-11e8-87b0-080027ea4cb6/orders?start=0&limit=10' headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a - Authorization: 'token wD8GnxAoymSjAQSmkP6FwDzKX5JgocD8n585Q+hy' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@e6fb70a + Authorization: 'token 4gGQTm/MWqzHjA84u/EAqjbwUBgqHmygfQd/9Ex+' VCR-index: '3' Accept: null response: @@ -94,15 +97,16 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 10:49:16 GMT' + Date: 'Fri, 16 Nov 2018 15:24:46 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 1a212c - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/1a212c' + X-Debug-Token: a8b020 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/a8b020' Content-Length: '1138' Content-Type: application/json - body: '{"total":3,"count":3,"start":"0","limit":"10","_embedded":{"orders":[{"order_id":9,"user_id":14,"basket_id":"83114012-c3cf-32bc-ab21-42b8aae7712d","company_id":3,"timestamp":1541501304,"email":"user2@usc.com","status":"H","total":54.2,"customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed"},{"order_id":8,"user_id":13,"basket_id":"d29c05dc-a220-3c66-a7fb-5342dbc7f6cd","company_id":3,"timestamp":1541501304,"email":"user@usc.com","status":"H","total":147.4,"customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed"},{"order_id":7,"user_id":12,"basket_id":"e787f554-3cea-3c9a-9de0-25479dffc8c2","company_id":3,"timestamp":1541501304,"email":"user+orga@usc.com","status":"H","total":67.9,"customer_firstname":"Antonio","customer_lastname":"Damasio","payment":{"type":"manual","processorName":null},"workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed"}]}}' + body: '{"total":3,"count":3,"start":"0","limit":"10","_embedded":{"orders":[{"order_id":9,"user_id":14,"basket_id":"3fc93210-6f77-3092-90e4-b77da29e71e5","company_id":3,"timestamp":1542381845,"email":"user2@usc.com","status":"H","total":54.2,"customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed"},{"order_id":8,"user_id":13,"basket_id":"ba988183-24a0-38eb-9a28-283893021f67","company_id":3,"timestamp":1542381845,"email":"user@usc.com","status":"H","total":147.4,"customer_firstname":"Paul","customer_lastname":"Martin","payment":{"type":"manual","processorName":null},"workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed"},{"order_id":7,"user_id":12,"basket_id":"e6baa950-87e2-39fe-b29e-9cf4ae985b23","company_id":3,"timestamp":1542381845,"email":"user+orga@usc.com","status":"H","total":67.9,"customer_firstname":"Antonio","customer_lastname":"Damasio","payment":{"type":"manual","processorName":null},"workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed"}]}}' - request: method: GET @@ -110,8 +114,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a - Authorization: 'token wD8GnxAoymSjAQSmkP6FwDzKX5JgocD8n585Q+hy' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@e6fb70a + Authorization: 'token 4gGQTm/MWqzHjA84u/EAqjbwUBgqHmygfQd/9Ex+' VCR-index: '4' Accept: null response: @@ -120,15 +124,16 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 10:49:17 GMT' + Date: 'Fri, 16 Nov 2018 15:24:46 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 4b9554 - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/4b9554' - Content-Length: '1032' + X-Debug-Token: c1063c + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/c1063c' + Content-Length: '1096' Content-Type: application/json - body: '{"id":9,"basketId":"83114012-c3cf-32bc-ab21-42b8aae7712d","companyId":3,"companyName":"The World Company Inc.","total":54.2,"taxTotal":1.11,"subtotal":54.2,"timestamp":1541501304,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","price":54.2,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' + body: '{"id":9,"basketId":"3fc93210-6f77-3092-90e4-b77da29e71e5","companyId":3,"companyName":"The World Company Inc.","total":54.2,"taxTotal":1.11,"subtotal":54.2,"timestamp":1542381845,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"19377517","declinationId":"4_0","productName":"Corsair Gaming VOID Pro RGB Dolby 7.1 Sans fil - Edition Carbon","productCode":"7531596248951","productImageId":null,"price":54.2,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' - request: method: GET @@ -136,8 +141,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a - Authorization: 'token wD8GnxAoymSjAQSmkP6FwDzKX5JgocD8n585Q+hy' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@e6fb70a + Authorization: 'token 4gGQTm/MWqzHjA84u/EAqjbwUBgqHmygfQd/9Ex+' VCR-index: '5' Accept: null response: @@ -146,15 +151,16 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 10:49:17 GMT' + Date: 'Fri, 16 Nov 2018 15:24:46 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 9e8c6b - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/9e8c6b' - Content-Length: '1037' + X-Debug-Token: 0e7e69 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/0e7e69' + Content-Length: '1101' Content-Type: application/json - body: '{"id":8,"basketId":"d29c05dc-a220-3c66-a7fb-5342dbc7f6cd","companyId":3,"companyName":"The World Company Inc.","total":147.4,"taxTotal":3.03,"subtotal":147.4,"timestamp":1541501304,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":""},"items":[{"itemId":"856805359","declinationId":"6_0","productName":"Casque Gaming Razer ManO\u0027War Sans fil 7.1 Surround (PC\/PS4)","productCode":"7531596248953","price":73.7,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' + body: '{"id":8,"basketId":"ba988183-24a0-38eb-9a28-283893021f67","companyId":3,"companyName":"The World Company Inc.","total":147.4,"taxTotal":3.03,"subtotal":147.4,"timestamp":1542381845,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Paul","lastname":"Martin","address":"40 rue Laure Diebold","address2":"3\u00e8me \u00e9tage","city":"Lyon","zipcode":"69009","country":"FR","company":"","pickupPointId":null},"items":[{"itemId":"856805359","declinationId":"6_0","productName":"Casque Gaming Razer ManO\u0027War Sans fil 7.1 Surround (PC\/PS4)","productCode":"7531596248953","productImageId":null,"price":73.7,"amount":2,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' - request: method: GET @@ -162,8 +168,8 @@ headers: Host: wizaplace.loc Accept-Encoding: null - User-Agent: Wizaplace-PHP-SDK/dev-feature/WIZ-185-New-organisation-order-endpoint@39bc86a - Authorization: 'token wD8GnxAoymSjAQSmkP6FwDzKX5JgocD8n585Q+hy' + User-Agent: Wizaplace-PHP-SDK/dev-feat-mondialrelay@e6fb70a + Authorization: 'token 4gGQTm/MWqzHjA84u/EAqjbwUBgqHmygfQd/9Ex+' VCR-index: '6' Accept: null response: @@ -172,12 +178,13 @@ code: '200' message: OK headers: - Date: 'Tue, 06 Nov 2018 10:49:17 GMT' + Date: 'Fri, 16 Nov 2018 15:24:47 GMT' Server: 'Apache/2.4.25 (Debian)' + X-Protected-By: Sqreen Cache-Control: 'no-cache, private' Content-Language: fr - X-Debug-Token: 6a996c - X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/6a996c' - Content-Length: '1077' + X-Debug-Token: 2c41c3 + X-Debug-Token-Link: 'http://wizaplace.loc/_profiler/2c41c3' + Content-Length: '1141' Content-Type: application/json - body: '{"id":7,"basketId":"e787f554-3cea-3c9a-9de0-25479dffc8c2","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1541501304,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Antonio","lastname":"Damasio","address":"99410 Dach Views Apt. 994","address2":"","city":"West Geraldport","zipcode":"00229","country":"FR","company":"University of Southern California"},"billingAddress":{"title":"mr","firstname":"Antonio","lastname":"Damasio","address":"42228 Hunter Summit Suite 058","address2":"","city":"Bettyeburgh","zipcode":"13736-4550","country":"FR","company":"University of Southern California"},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' + body: '{"id":7,"basketId":"e6baa950-87e2-39fe-b29e-9cf4ae985b23","companyId":3,"companyName":"The World Company Inc.","total":67.9,"taxTotal":1.4,"subtotal":67.9,"timestamp":1542381845,"status":"COMPLETED","workflow":"workflow_withdrawal_period_pending_withdrawal_period_end_completed","shippingName":"TNT Express","customerComment":"","declineReason":null,"shippingAddress":{"title":"mr","firstname":"Antonio","lastname":"Damasio","address":"99410 Dach Views Apt. 994","address2":"","city":"West Geraldport","zipcode":"00229","country":"FR","company":"University of Southern California","pickupPointId":null},"billingAddress":{"title":"mr","firstname":"Antonio","lastname":"Damasio","address":"42228 Hunter Summit Suite 058","address2":"","city":"Bettyeburgh","zipcode":"13736-4550","country":"FR","company":"University of Southern California","pickupPointId":null},"items":[{"itemId":"2085640488","declinationId":"1_0","productName":"Z11 Plus Bo\u00eetier PC en Acier ATX","productCode":"978020137962","productImageId":null,"price":67.9,"amount":1,"options":[],"customerComment":"","greenTax":0}],"payment":{"type":"manual","processorName":null}}' From 26955c02474aa10b070cbe553b1834d379e48f19 Mon Sep 17 00:00:00 2001 From: Hubert Moutot Date: Mon, 19 Nov 2018 09:53:04 +0100 Subject: [PATCH 16/16] Update Changelog --- CHANGELOG.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3f50080..4350d879 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ ### New features +- Added `Wizaplace\SDK\Basket\BasketService::setMondialRelayPickupPoint` +- Added `Wizaplace\SDK\Shipping\MondialRelayService` and its associated classes +- Added `Wizaplace\SDK\Vendor\Order\OrderService::generateMondialRelayLabel` - Added `\Wizaplace\SDK\Order\OrganisationOrderService::getOrder` - Added attribute `hidden` to `\Wizaplace\SDK\Organisation\OrganisationBasket` @@ -23,13 +26,6 @@ Compatible with Wizaplace 1.27.0 - Added enum `\Wizaplace\SDK\User\UserType` - Added pagination data to the array returned by `\Wizaplace\SDK\Organisation\OrganisationService::getOrganisationOrders` - Added `\Wizaplace\SDK\Organisation\OrganisationBasket::isCheckout` -- Removed phpdoc `@internal` in `\Wizaplace\SDK\User\UserAddress` -- Updated `\Wizaplace\SDK\Organisation\OrganisationService::getOrganisationOrders` -- Updated `tests/Organisation/OrganisationServiceTest` -- Added attribute `checkout` to `\Wizaplace\SDK\Organisation\OrganisationBasket` -- Added `Wizaplace\SDK\Basket\BasketService::setMondialRelayPickupPoint` -- Added `Wizaplace\SDK\Shipping\MondialRelayService` and its associated classes -- Added `Wizaplace\SDK\Vendor\Order\OrderService::generateMondialRelayLabel` ## 1.40.0