diff --git a/README.md b/README.md
index 64001a19..f6d49bb5 100644
--- a/README.md
+++ b/README.md
@@ -146,6 +146,32 @@ class Order extends BaseOrder implements SetonoSyliusGiftCardPluginOrderInterfac
}
}
```
+
+**Extend `OrderItemUnit`**
+
+```php
+orderItemUnit = $orderItem;
+ $orderItem->setGiftCard($this);
}
public function getOrder(): ?OrderInterface
diff --git a/src/Model/GiftCardInterface.php b/src/Model/GiftCardInterface.php
index 2e85bd5d..14472e5f 100644
--- a/src/Model/GiftCardInterface.php
+++ b/src/Model/GiftCardInterface.php
@@ -8,7 +8,6 @@
use Sylius\Component\Core\Model\ChannelInterface;
use Sylius\Component\Core\Model\CustomerInterface;
use Sylius\Component\Core\Model\OrderInterface;
-use Sylius\Component\Core\Model\OrderItemUnitInterface;
use Sylius\Component\Resource\Model\CodeAwareInterface;
use Sylius\Component\Resource\Model\ResourceInterface;
use Sylius\Component\Resource\Model\TimestampableInterface;
diff --git a/src/Model/OrderItemUnitInterface.php b/src/Model/OrderItemUnitInterface.php
new file mode 100644
index 00000000..3c0a0075
--- /dev/null
+++ b/src/Model/OrderItemUnitInterface.php
@@ -0,0 +1,14 @@
+giftCard;
+ }
+
+ public function setGiftCard(GiftCardInterface $giftCard): void
+ {
+ $this->giftCard = $giftCard;
+ }
+}
diff --git a/src/Model/OrderTrait.php b/src/Model/OrderTrait.php
index 4b7794e1..2e747245 100644
--- a/src/Model/OrderTrait.php
+++ b/src/Model/OrderTrait.php
@@ -4,10 +4,15 @@
namespace Setono\SyliusGiftCardPlugin\Model;
+use function assert;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
+use Sylius\Component\Core\Model\Order;
+/**
+ * @mixin Order
+ */
trait OrderTrait
{
/**
@@ -38,6 +43,8 @@ public function hasGiftCards(): bool
public function addGiftCard(GiftCardInterface $giftCard): void
{
+ assert($this instanceof OrderInterface);
+
if (!$this->hasGiftCard($giftCard)) {
$this->giftCards->add($giftCard);
$giftCard->addAppliedOrder($this);
@@ -46,6 +53,8 @@ public function addGiftCard(GiftCardInterface $giftCard): void
public function removeGiftCard(GiftCardInterface $giftCard): void
{
+ assert($this instanceof OrderInterface);
+
if ($this->hasGiftCard($giftCard)) {
$this->giftCards->removeElement($giftCard);
$giftCard->removeAppliedOrder($this);
diff --git a/src/Operator/OrderGiftCardOperator.php b/src/Operator/OrderGiftCardOperator.php
index 8a2705d2..8cba7efa 100644
--- a/src/Operator/OrderGiftCardOperator.php
+++ b/src/Operator/OrderGiftCardOperator.php
@@ -9,11 +9,11 @@
use Setono\SyliusGiftCardPlugin\EmailManager\GiftCardEmailManagerInterface;
use Setono\SyliusGiftCardPlugin\Factory\GiftCardFactoryInterface;
use Setono\SyliusGiftCardPlugin\Model\GiftCardInterface;
+use Setono\SyliusGiftCardPlugin\Model\OrderItemUnitInterface;
use Setono\SyliusGiftCardPlugin\Model\ProductInterface;
use Setono\SyliusGiftCardPlugin\Repository\GiftCardRepositoryInterface;
use Sylius\Component\Core\Model\OrderInterface;
use Sylius\Component\Core\Model\OrderItemInterface;
-use Sylius\Component\Core\Model\OrderItemUnitInterface;
use Webmozart\Assert\Assert;
/**
diff --git a/src/Resources/config/app/fixtures.yaml b/src/Resources/config/app/fixtures.yaml
index e7ba7415..db52d513 100644
--- a/src/Resources/config/app/fixtures.yaml
+++ b/src/Resources/config/app/fixtures.yaml
@@ -24,18 +24,17 @@ sylius_fixtures:
code: '1USD'
channel: 'FASHION_WEB'
currency: 'USD'
- initial_amount: 2.00
amount: 1.00
gift_card_two_usd:
code: '2USD'
channel: 'FASHION_WEB'
- initial_amount: 2.00
+ amount: 2.00
setono_gift_card_configuration:
options:
custom:
default_configuration:
code: 'default_configuration'
- background_image: '@SetonoSyliusGiftCardPlugin/Resources/fixtures/default_background.jpg'
+ background_image: '@SetonoSyliusGiftCardPlugin/Resources/fixtures/default_background.png'
enabled: true
default: true
diff --git a/src/Resources/config/doctrine/model/GiftCard.orm.xml b/src/Resources/config/doctrine/model/GiftCard.orm.xml
index 79acf90b..23ce53c5 100644
--- a/src/Resources/config/doctrine/model/GiftCard.orm.xml
+++ b/src/Resources/config/doctrine/model/GiftCard.orm.xml
@@ -1,6 +1,5 @@