diff --git a/Changelog.md b/Changelog.md index 4551ed44..2a932f73 100644 --- a/Changelog.md +++ b/Changelog.md @@ -69,6 +69,15 @@ - BC: Added the void return type to `Checkout::setShippingAddress()` - BC: Added the following methods to the Checkout interface: - `removeShippingAddress()` + - `getShipToBillingAddress()` + - `setShipToBillingAddress()` + - `getShippingMethodId()` + - `setShippingMethodId()` + - `getPaymentMethodId()` + - `setPaymentMethodId()` + - `getNotes()` + - `setNotes()` + - `clear()` - `getShippingAmount()` - `setShippingAmount()` - `getTaxesAmount()` diff --git a/src/Checkout/Changelog.md b/src/Checkout/Changelog.md index f5f37cd9..eaf13208 100644 --- a/src/Checkout/Changelog.md +++ b/src/Checkout/Changelog.md @@ -24,6 +24,15 @@ - BC: Added the void return type to `Checkout::setShippingAddress()` - BC: Added the following methods to the Checkout interface: - `removeShippingAddress()` + - `getShipToBillingAddress()` + - `setShipToBillingAddress()` + - `getShippingMethodId()` + - `setShippingMethodId()` + - `getPaymentMethodId()` + - `setPaymentMethodId()` + - `getNotes()` + - `setNotes()` + - `clear()` - `getShippingAmount()` - `setShippingAmount()` - `getTaxesAmount()` diff --git a/src/Checkout/CheckoutManager.php b/src/Checkout/CheckoutManager.php index 897cd09b..124fa4d4 100644 --- a/src/Checkout/CheckoutManager.php +++ b/src/Checkout/CheckoutManager.php @@ -109,6 +109,51 @@ public function removeShippingAddress(): void $this->store->removeShippingAddress(); } + public function getShipToBillingAddress(bool $default = true): bool + { + return $this->store->getShipToBillingAddress($default); + } + + public function setShipToBillingAddress(bool $value): void + { + $this->store->setShipToBillingAddress($value); + } + + public function getShippingMethodId(): null|int|string + { + return $this->store->getShippingMethodId(); + } + + public function setShippingMethodId(int|string|null $shippingMethodId): void + { + $this->store->setShippingMethodId($shippingMethodId); + } + + public function getPaymentMethodId(): null|int|string + { + return $this->store->getPaymentMethodId(); + } + + public function setPaymentMethodId(int|string|null $paymentMethodId): void + { + $this->store->setPaymentMethodId($paymentMethodId); + } + + public function getNotes(): ?string + { + return $this->store->getNotes(); + } + + public function setNotes(?string $text): void + { + $this->store->setNotes($text); + } + + public function clear(): void + { + $this->store->clear(); + } + public function setCustomAttribute(string $key, $value): void { $this->store->setCustomAttribute($key, $value); diff --git a/src/Checkout/Contracts/Checkout.php b/src/Checkout/Contracts/Checkout.php index d08fcbe9..410ff6fa 100644 --- a/src/Checkout/Contracts/Checkout.php +++ b/src/Checkout/Contracts/Checkout.php @@ -25,18 +25,8 @@ interface Checkout extends Shippable, ArrayAccess { public function getCart(): ?CheckoutSubject; - /** - * Set the cart for the checkout - * - * @param CheckoutSubject $cart - */ public function setCart(CheckoutSubject $cart); - /** - * Returns the state of the checkout - * - * @return CheckoutState - */ public function getState(): CheckoutState; /** @@ -46,26 +36,32 @@ public function getState(): CheckoutState; */ public function setState($state); - /** - * Returns the bill payer details - * - * @return Billpayer - */ public function getBillpayer(): Billpayer; - /** - * Sets the bill payer details - * - * @param Billpayer $billpayer - */ public function setBillpayer(Billpayer $billpayer); - public function getShippingAddress(): ?Address; - public function setShippingAddress(Address $address): void; public function removeShippingAddress(): void; + public function getShipToBillingAddress(bool $default = true): bool; + + public function setShipToBillingAddress(bool $value): void; + + public function getShippingMethodId(): null|int|string; + + public function setShippingMethodId(null|int|string $shippingMethodId): void; + + public function getPaymentMethodId(): null|int|string; + + public function setPaymentMethodId(null|int|string $paymentMethodId): void; + + public function getNotes(): ?string; + + public function setNotes(?string $text): void; + + public function clear(): void; + public function setCustomAttribute(string $key, $value): void; public function getCustomAttribute(string $key); @@ -93,10 +89,5 @@ public function itemsTotal(): float; */ public function update(array $data); - /** - * Returns the grand total of the checkout - * - * @return float - */ public function total(); } diff --git a/src/Checkout/Drivers/BaseCheckoutStore.php b/src/Checkout/Drivers/BaseCheckoutStore.php index 3e794cf6..eda9ff34 100644 --- a/src/Checkout/Drivers/BaseCheckoutStore.php +++ b/src/Checkout/Drivers/BaseCheckoutStore.php @@ -207,16 +207,6 @@ public function offsetGet(mixed $offset): mixed } } - abstract public function clear(): void; - - abstract public function getShippingAmount(): DetailedAmount; - - abstract public function setShippingAmount(float|DetailedAmount $amount): void; - - abstract public function getTaxesAmount(): DetailedAmount; - - abstract public function setTaxesAmount(float|DetailedAmount $amount): void; - protected function getShipToName(Billpayer $billpayer): string { if ($billpayer->isOrganization()) { diff --git a/src/Checkout/Tests/Example/MemoryStore.php b/src/Checkout/Tests/Example/MemoryStore.php index 400da435..20b60a3f 100644 --- a/src/Checkout/Tests/Example/MemoryStore.php +++ b/src/Checkout/Tests/Example/MemoryStore.php @@ -133,6 +133,51 @@ public function setTaxesAmount(float|DetailedAmount $amount): void // TODO: Implement setTaxesAmount() method. } + public function getShipToBillingAddress(bool $default = true): bool + { + // TODO: Implement getShipToBillingAddress() method. + } + + public function setShipToBillingAddress(bool $value): void + { + // TODO: Implement setShipToBillingAddress() method. + } + + public function getShippingMethodId(): null|int|string + { + // TODO: Implement getShippingMethodId() method. + } + + public function setShippingMethodId(int|string|null $shippingMethodId): void + { + // TODO: Implement setShippingMethodId() method. + } + + public function getPaymentMethodId(): null|int|string + { + // TODO: Implement getPaymentMethodId() method. + } + + public function setPaymentMethodId(int|string|null $paymentMethodId): void + { + // TODO: Implement setPaymentMethodId() method. + } + + public function getNotes(): ?string + { + // TODO: Implement getNotes() method. + } + + public function setNotes(?string $text): void + { + // TODO: Implement setNotes() method. + } + + public function clear(): void + { + // TODO: Implement clear() method. + } + public function update(array $data) { // TODO: Implement update() method.