All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
4.2.0 - 2025-11-04
- Support for OXID eShop 7.4
- update deptrac in composer to use new deptrac/deptrac package
- WishedPrice notification sending now validates empty email addresses upfront, throwing
NotificationSendFailureexception instead of internal server errors. This improves PHP 8.4 compatibility and provides clearer error messages.
- CategoryIdFilter didn't implemented matches method from FilterInterface
4.1.0 - 2025-06-11
This is stable release for v4.1.0. No changes have been made since v4.1.0-rc.1.
4.1.0-rc.1 - 2025-04-25
- OXID SDK recipe for development setup
- Support for PHP 8.4
4.0.0 - 2024-11-27
This is stable release for v4.0.0. No changes have been made since v4.0.0-rc.1.
4.0.0-rc.1 - 2024-11-04
customerPasswordChangemutation- On a successful password change, all old tokens are invalidated, and new ones are returned
- Return type was changed from
booltoOxidEsales\GraphQL\Base\DataType\LoginInterface
- Return type of
OxidEsales\GraphQL\Storefront\Customer\Service\PasswordInterface::changewas changed frombooltoOxidEsales\GraphQL\Storefront\Customer\DataType\Customer
3.1.0 - 2024-07-05
This is stable release for v3.1.0. No changes have been made since v3.1.0-rc.1.
3.1.0-rc.1 - 2024-06-12
variantSelectionsquery for fetching multidimensional variants PR-11- Add the
CategoryAttributedata type and possibility to get Attributes for category PR-13 - Workflow trigger to update schema in documentation
- Shop 7.1 dependencies match
- PHP 8.2 support
- Classes
OxidEsales\GraphQL\Storefront\Manufacturer\DataType\ManufacturerImageOxidEsales\GraphQL\Storefront\Shared\Infrastructure\OxNewFactoryOxidEsales\GraphQL\Storefront\Shared\Infrastructure\OxNewFactoryInterface
- Password forgotten feature
- Mutations:
customerPasswordForgotRequestcustomerPasswordReset
- Classes:
OxidEsales\GraphQL\Storefront\Customer\Infrastructure\PasswordOxidEsales\GraphQL\Storefront\Customer\Infrastructure\PasswordInterfaceOxidEsales\GraphQL\Storefront\Customer\Exception\CustomerNotFoundByUpdateHashOxidEsales\GraphQL\Storefront\Customer\Exception\PasswordValidationExceptionOxidEsales\GraphQL\Storefront\Customer\Infrastructure\RepositoryInterfaceOxidEsales\GraphQL\Storefront\Customer\Service\CustomerInterfaceOxidEsales\GraphQL\Storefront\Customer\Service\PasswordInterfaceOxidEsales\GraphQL\Storefront\Shared\Infrastructure\RepositoryInterface
- Methods:
OxidEsales\GraphQL\Storefront\Customer\Infrastructure\Repository::saveNewPasswordForCustomerOxidEsales\GraphQL\Storefront\Customer\Infrastructure\Repository::getCustomerByPasswordUpdateHashOxidEsales\GraphQL\Storefront\Customer\Service\Password::sendPasswordForgotEmailOxidEsales\GraphQL\Storefront\Customer\Service\Password::resetPasswordByUpdateHash
- Mutations:
- Aliases for Dependency Injection
OxidEsales\GraphQL\Storefront\Customer\Service\CustomerOxidEsales\GraphQL\Storefront\Customer\Infrastructure\Repository
- Replace webmozart/path-util usage with symfony/filesystem
- New module logo
- Updated the structure to Codeception 5
- Modify github workflows to use new universal workflow
- Use new interfaces instead of direct classes
- PHP 8.0 support
- Migration trigger on module activation
OxidEsales\GraphQL\Storefront\Shared\Service\AuthorizationbyLengthinOxidEsales\GraphQL\Storefront\Customer\Exception\PasswordMismatch
- Add error message to product response when variant loading is disabled #0007421
3.0.0 - 2023-06-08
- Support for PHP 8.1
- Support for MySQL 8
- Classes:
OxidEsales\GraphQL\Storefront\Basket\Service\BasketFinder
- Classes:
OxidEsales\GraphQL\Storefrnt\Address\Exception\DeliveryAddressMissingFieldsOxidEsales\GraphQL\Storefrnt\Address\Exception\InvoiceAddressMissingFields
- Module upgraded for eshop version 7
- NAME-constant removed from events
- Support PHP 7.4
- Refactored NotFound exception and children to create instance with constructor instead of static methods.
- Moved methods from Basket-Service to BasketItem, BasketVoucher and BasketFinder-Service
- License file was updated to be consistent with other OXID eSales modules
- Module upgraded for eshop version 7
- Assetspath updated
- Migrations config structure updated
2.2.0 - Unreleased
- Dependency on Base module. Base module cannot be deactivated till Storefront is active.
- Workflow trigger to update schema in documentation
- License updated - now using OXID Module and Component License
2.1.0 - 2022-07-14
- New Event
OxidEsales\GraphQL\Storefront\Basket\Event\AfterRemoveItem - Not mandatory
remarkparameter added forplaceOrdermutation PR-9 - New service
OxidEsales\GraphQL\Storefront\Shared\Infrastructure\ListConfiguration. Optionally supply core table name of list objects that must be instantiated with BaseModel::load().
- Code quality tools list simplified and reconfigured to fit our quality requirements
- Send registration email when creating a user
- Do not crush on not available Address country PR-10
OxidEsales\GraphQL\Storefront\Basket\Service\BasketRelationService::owner()return value will be null for anonymous user.
- Workflow trigger to update schema in documentation
2.0.1 - 2022-01-03
- New event
BeforeBasketRemoveOnPlaceOrder
2.0.0 - 2021-12-08
- Support for PHP 8.0 and
oxid-esales/graphql-base ^6.0.0 OxidEsales\GraphQL\Storefront\Customer\Service::fetchCustomeris now public- New Events:
OxidEsales\GraphQL\Storefront\Basket\Event\AfterAddItemOxidEsales\GraphQL\Storefront\Basket\Event\BasketAuthorizationOxidEsales\GraphQL\Storefront\Basket\Event\BeforeAddItemOxidEsales\GraphQL\Storefront\Basket\Event\BeforeBasketDeliveryMethodsOxidEsales\GraphQL\Storefront\Basket\Event\BeforeBasketModifyOxidEsales\GraphQL\Storefront\Basket\Event\BeforeBasketRemoveBeforeBasketPaymentsupdated with payment methods list so it can be adjusted
- Interface
OxidEsales\GraphQL\Storefront\Basket\Event\BasketModifyInterface
- Classes
OxidEsales\GraphQL\Storefront\Basket\DataType\AbstractBasketOxidEsales\GraphQL\Storefront\Basket\DataType\PublicBasketOxidEsales\GraphQL\Storefront\Basket\Service\PublicBasketRelationServiceOxidEsales\GraphQL\Storefront\Basket\Exception\BasketItemAmountLimitedStockOxidEsales\GraphQL\Storefront\Contact\Service\ContactInfrastructureAwareServiceOxidEsales\GraphQL\Storefront\Shared\Exception\GraphQLServiceNotFoundOxidEsales\GraphQL\Storefront\Shared\Service\Authorization
- Methods
OxidEsales\GraphQL\Storefront\Basket\Controller\Basket::publicBasket()OxidEsales\GraphQL\Storefront\Basket\DataType\Basket::getDeliveryAddressId()OxidEsales\GraphQL\Storefront\Basket\DataType\Basket::getDeliveryMethodId()OxidEsales\GraphQL\Storefront\Basket\DataType\Basket::getPaymentId()OxidEsales\GraphQL\Storefront\Basket\DataType\BasketItem::basketId()OxidEsales\GraphQL\Storefront\Basket\Exception\BasketItemNotFound::byIdInBasket()OxidEsales\GraphQL\Storefront\Basket\Exception\PlaceOrder::productsNotOrdarable()OxidEsales\GraphQL\Storefront\Basket\Infrastructure\Basket::getBasketItemByProductId()OxidEsales\GraphQL\Storefront\Basket\Infrastructure\Basket::checkBasketItems()
- Extracted basket authorization block to be handled with event so can be easier overwritten if needed
- Updated paths to bin directory in README PR-5
OxidEsales\GraphQL\Storefront\DeliveryMethod\DataType\DeliveryMethod::getPosition()method returns correct field dataOxidEsales\GraphQL\Storefront\WishedPrice\DataType\WishedPriceFilterListnow uses IDFilter instead of StringFilter
- Method
OxidEsales\GraphQL\Storefront\Basket\Service\Basket::publicBasketsByOwnerNameOrEmailnow returns an array ofOxidEsales\GraphQL\Storefront\Basket\DataType\PublicBasket baskets(owner String)now returns an array ofOxidEsales\GraphQL\Storefront\Basket\DataType\PublicBasketin order to not expose address or payment information on a public basketdeliveryAddressIdparameter ofbasketSetDeliveryAddressmutation can be null.basketAddItem,basketRemoveItem,placeOrdermutations andbasketquery honour stockflag and calls may give you back an error- Drop support for PHP 7.3
- DataTypes related to
OxidEsales\Eshop\Core\Model\BaseModelimplementOxidEsales\GraphQL\Base\DataType\ShopModelAwareInterface OxidEsales\Eshop\Core\Model\BaseModel::getRawFieldData()is used instead ofOxidEsales\Eshop\Core\Model\BaseModel::getFieldData()- Improved basket product stock check and related error messages
- Interface
OxidEsales\GraphQL\Storefront\Shared\DataType\DataType - Method
OxidEsales\GraphQL\Storefront\Customer\Service\Customer::basketOwner()
1.0.0 - 2021-05-28
baskets(owner ID)tobaskets(owner String)
- Query
foobarleft over from testing
1.0.0-rc1 - 2021-05-19
- Queries and Mutations for Storefront
- 3rd Party checkout support
- Schema documentation
- Remove
finalstatement from shop extending classes PR-3
- Use
@Rightsannotation instead of@Loggedso that an anonymous token user could create/modify basket and place an order
0.1.0 - 2020-12-16
- Initial release
- deprecates
oxid-esales/graphql-catalogueoxid-esales/graphql-accountoxid-esales/graphql-checkout