AGIQON Connector | OCI, SAP, Ariba, Coupa, cXML
Description
Highlights
- OCI and cXML functionality - compatible with SAP Ariba and Coupa (Level1 and 2)
- Dynamic structure of product and shipping data, as well as units of measurement
- Default/standard and fallback values
- Agile structuring of product data in XML
- GET and POST functionality
Features
- Units of measure (packaging units) can be maintained globally or item- specific
- Definition of the format of the tax number
- Detailed readme file
- Activate/deactivate URL validation for the HOOK_URL
- Customised access restriction
- Complete configuration options in the backend
- Individual configurations per system
- Assignment of customer to system
About the Extension
Product information
By installing our app, various procurement systems can be connected to Shopware 6 shops using OCI or cXML. The order is compiled in the Shopware 6 shop and transferred to SAP using the punchout function. An individual OCI or cXML system can be created for each customer by customising the fields to be transferred, the URL variables and the corresponding mapping. This version is now available for OCI and also for cXML.
The plugin is configured in such a way that it can be easily extended and customised to individual requirements. In the backend, adjustments can be made at article, dispatch and configuration level.
Cost/License
In order to use our plugin, an active license is required. You can purchase this at https://agiqon-connector.de/.
Article
The eClass number and an alternative packaging unit can be specified for the item. The packaging unit can also be defined globally in the units of measurement - but is overwritten by the maintenance at item level. It is possible to create new additional fields and connect them in the configuration.
Dispatch
The SAP article number and an alternative name can be maintained for shipping. The transfer of the dispatch can optional be deactivated.
Configuration
It is possible to specify the supplier number in SAP, the variable names for user, password and hook URL. You can also define whether the data should be transferred via GET or POST.
If you have individual customisation requests, please do not hesitate to contact us. We will evaluate the possibilities and the costs involved.
Functions at a glance
- User-related access control (So you can use a specific range and pricing of products)
- Access to My Account and the normal checkout are deactivated
- The variable names for user, password and hook URL are freely definable
- User data can be transferred by Get or by post
Information for developers
GET example OCI
https://www.shop.de/AgiqonOciEntry/login?url=https://deinshop.de&user=deine@email.de&pass=1234&hook=https://testdomain.de
POST Target address OCI
https://www.shop.de/AgiqonOciEntry/login
Please read our documentation
https://docs.agiqon-connector.de/en/user/intro/Support
Our team possesses many years of experience in the OCI connection of Shopware shops. Please send any questions to web@agiqon.de.
We can only provide free support as part of the subscription for all errors that originate from our app. This is possible if no changes have been made to our app by the user. If set-up support or adjustments are required for interaction with third-party apps, we will charge for the work involved in accordance with an offer and corresponding order.
Product information
By installing our app, various procurement systems can be connected to Shopware 6 shops using OCI or cXML. The order is compiled in the Shopware 6 shop and transferred to SAP using the punchout function. An individual OCI or cXML system can be created for each customer by customising the fields to be transferred, the URL variables and the corresponding mapping. This version is now available for OCI and also for cXML.
The plugin is configured in such a way that it can be easily extended and customised to individual requirements. In the backend, adjustments can be made at article, dispatch and configuration level.
Cost/License
In order to use our plugin, an active license is required. You can purchase this at https://agiqon-connector.de/.
Article
The eClass number and an alternative packaging unit can be specified for the item. The packaging unit can also be defined globally in the units of measurement - but is overwritten by the maintenance at item level. It is possible to create new additional fields and connect them in the configuration.
Dispatch
The SAP article number and an alternative name can be maintained for shipping. The transfer of the dispatch can optional be deactivated.
Configuration
It is possible to specify the supplier number in SAP, the variable names for user, password and hook URL. You can also define whether the data should be transferred via GET or POST.
If you have individual customisation requests, please do not hesitate to contact us. We will evaluate the possibilities and the costs involved.
Functions at a glance
- User-related access control (So you can use a specific range and pricing of products)
- Access to My Account and the normal checkout are deactivated
- The variable names for user, password and hook URL are freely definable
- User data can be transferred by Get or by post
Information for developers
GET example OCI
https://www.shop.de/AgiqonOciEntry/login?url=https://deinshop.de&user=deine@email.de&pass=1234&hook=https://testdomain.de
POST Target address OCI
https://www.shop.de/AgiqonOciEntry/login
Please read our documentation
https://docs.agiqon-connector.de/en/user/intro/Support
Our team possesses many years of experience in the OCI connection of Shopware shops. Please send any questions to web@agiqon.de.
We can only provide free support as part of the subscription for all errors that originate from our app. This is possible if no changes have been made to our app by the user. If set-up support or adjustments are required for interaction with third-party apps, we will charge for the work involved in accordance with an offer and corresponding order.
Details
- Available: English, German
- Latest update: 3 July 2026
- Publication date: 18 September 2024
- Version: 3.7.200
- Category: ERP
Resources
Reviews (4)
Average rating of 4.88 out of 5 stars
Super Support
Average rating of 5 out of 5 stars
Stabiler Connector mit überzeugendem Support
Average rating of 5 out of 5 stars
Der Connector arbeitet stabil und erfüllt sämtliche Funktionen wie in der Beschreibung angegeben.
Wenn es einmal läuft, läuft es super.
Average rating of 5 out of 5 stars
Der Support ist stets aktiv und antwortete immer innerhalb von 24 Stunden, sehr oft sogar von nur wenigen Stunden.
Die Funktionalität ist einfach und alles wird entweder in der Dokumentation oder auch vom Support gern nochmal erklärt.
Bis jetzt, kann ich nichts Negatives berichten.
Funktioniert wie gewünscht
Average rating of 4.5 out of 5 stars
Das Plugin arbeitet wie beschrieben und verursacht bis jetzt keine Probleme!
About the Extension Partner
AGIQON
Partner Status
-
Shopware
Platinum Partner -
Shopware
Extension Partner
Details
-
Ø-Rating:
5
Average rating of 5 out of 5 stars
- Partner since: 2018
- Extensions: 4
- Certifications: 27
Support
- Based in: Germany
- Speaks: German, English
- Response time: Very quickly
Please read our documentation
https://docs.agiqon-connector.de/en/user/intro/3.6.001
Fixed
- Removed an old migration file that generated an incorrect transmission table.
3.6.000
Added
- Complete architectural rewrite of the plugin (version 3.x series).
- OCI and cXML protocol logic moved from storefront/checkout classes into a dedicated `Connector` domain layer.
- Each OCI function (`DETAIL`, `VALIDATE`, `SOURCING`, `BACKGROUND_SEARCH`, `DOWNLOADJSON`, `QUANTITYCHECK`) now has its own dedicated controller.
- Each cXML transfer type (`Inspect`, `TransferCart`, `TransferDirect`) now has its own dedicated controller.
- Shipping method extension to mark shipping methods as OCI/cXML-compatible directly in the Shopware shipping method administration.
- Unified administration module: OCI and cXML systems are now managed in a single consolidated plugin module with improved navigation and ACL support.
- Role-based access control (ACL) for all connector administration views.
- New DataField system: a typed, registry-based mapping layer for product, order, line item, shipping, context and system fields. Custom fields can be registered via the Symfony service container without manual configuration.
- New transmission management in the administration: a list view and a detail view for all connector transmissions, including status tracking (open, order created, transferred, closed, cancelled).
- Transmissions now have a dedicated number range for unique transmission numbers.
- Transmission customers are recorded per transmission to track which customer was logged in.
- Dashboard in the administration showing transmission statistics and key metrics.
- Transmission mode can be configured per system: "manual" (transfer triggered by the user) or "auto" (transfer happens automatically on logout).
- Cart payload and active rule IDs are saved on the transmission for reproducibility.
- Payment method and shipping method can now be configured per OCI and cXML system. If no method is configured, the customer's last used methods are applied automatically.
- New order settings card added to the cXML system detail view.
- Route names refactored to constants for better usage in Twig templates and controllers.
- Additional Twig blocks in templates for easier customization.
- Dedicated rotating log files per connector area under `log/AgiqonConnector/`:
- `api_.log` — License API HTTP calls
- `oci_.log` — OCI login and function controllers
- `cxml_.log` — cXML login controller
- `connector_.log` — general connector events
Each file rotates with up to 14 files at DEBUG level.
- Typed exception classes for license API errors:
- `LicenseValidationException` — thrown on 4xx responses (carries HTTP status code)
- `LicenseApiUnavailableException` — thrown on network/connection failures
- `OciAuthenticationException` — for failed OCI authentication flows
- License check result caching to reduce live HTTP calls on every login:
- Results cached for 10 minutes via Symfony `cache.object`
- 24-hour stale fallback: logins continue to work during temporary license API outages
- Cache is invalidated on 401/403 responses so invalid licenses are never served from cache
- Structured server-side logging to OCI login controller: every failure branch (wrong credentials, inactive system, missing fields, invalid URL, invalid license) is logged as WARNING; successful logins are logged as INFO; function dispatch errors as ERROR.
- Structured server-side logging to cXML login controller: equivalent coverage for all failure and success paths.
- Structured logging to `OciDownloadJsonController`: unhandled errors in the download JSON flow are now logged as ERROR.
- `errorType` and `hint` fields in the test-connection API response to help administrators diagnose configuration issues:
- `missing_config` — Client ID or Client Secret not set
- `network_error` — license API unreachable
- `auth_error` — credentials rejected by the license API
- Structured server-side logging to `CxmlAuthController`: all failure paths (invalid/expired auth key, customer not found, system not found, malformed stored XML) are logged as WARNING; successful auth flows as INFO.
- `OciUndefinedFunctionController` now logs unsupported OCI function names as WARNING.
Changed
- Session is now an immutable value object (`ConnectorSession`) shared by both OCI and cXML, replacing the mutable `OciSession` entity.
- Minimum PHP version raised to 8.2.
- All Symfony DI service configuration files migrated from XML to YAML (`.xml` → `.yaml`). Plugin developers extending the service container should use the `.yaml` format going forward.
- Transmission detail page redesigned: improved layout and visual structure across all tabs.
- Transferred transmissions now allow adding, editing and removing cart items as long as no order has been created yet.
Fixed
- No frame login now works with new Connector version.
- Removed dead HTTP request method validation blocks in `OciLoginController` and `CxmlLoginController` that referenced an undefined class (`HTTPRequestMethod`) and lacked a `return` statement, causing a potential fatal PHP error at runtime. The `OciLoginController` now correctly validates the configured HTTP method of the customer's OCI system after authentication.
- Replaced deprecated `utf8_encode()` with `mb_convert_encoding()` in `CxmlDuplicateController` (deprecated since PHP 8.2, removed in PHP 9).
- `CxmlLoginController` and `CxmlInspectController` now catch `SimpleXMLElement` parse exceptions and return a proper error response instead of an unhandled 500.
- `CxmlInspectController` Twig template path corrected from `@Storefront/...` to `@AgiqonConnector/...` (template was never found at runtime).
- `CxmlDuplicateController` now correctly extends `AbstractController` instead of `StorefrontController`; storefront-scoped base class was incompatible with the API route scope.
- `OciProductService::addProductToCart()` now returns the recalculated cart from `CartService::add()` instead of the original cart object, ensuring prices are always up to date after adding a line item.
- `OciCustomerService::deleteOldTempCustomers()` no longer filters by `languageId`; temporary customers created in any language context are now cleaned up correctly.
- `CxmlLoginController` URL decoding unified to `html_entity_decode()` to handle all HTML entities, not just `&`.
- `ConnectorTransmissionController::updateCart()` and `CxmlDuplicateController::duplicateSystem()` now validate the incoming ID as a valid UUID before executing any DAL queries, preventing invalid input from reaching the database layer.
- `OciCustomerService` and `OciProductService` single-result queries now set `Criteria::setLimit(1)` to avoid fetching unnecessary rows when only the first match is needed.
Refactored
- `ConnectorResponseGenerator` promoted to abstract class; shared `resolveDataFieldValue()` and `getConfigKey()` methods extracted from `OciConnectorResponseGenerator` and `CxmlConnectorResponseGenerator` to eliminate duplication.
- OCI login controller credential-presence check extracted into an explicit `$credentialsPresent` variable for improved readability.
3.7.200
Added
- Dedicated rotating log files per connector area under `log/AgiqonConnector/`:
- `api_.log` — License API HTTP calls
- `oci_.log` — OCI login and function controllers
- `cxml_.log` — cXML login controller
- `connector_.log` — general connector events
Each file rotates with up to 14 files at DEBUG level.
- Typed exception classes for license API errors:
- `LicenseValidationException` — thrown on 4xx responses (carries HTTP status code)
- `LicenseApiUnavailableException` — thrown on network/connection failures
- `OciAuthenticationException` — for failed OCI authentication flows
- License check result caching to reduce live HTTP calls on every login:
- Results cached for 10 minutes via Symfony `cache.object`
- 24-hour stale fallback: logins continue to work during temporary license API outages
- Cache is invalidated on 401/403 responses so invalid licenses are never served from cache
- Structured server-side logging to OCI login controller: every failure branch (wrong credentials, inactive system, missing fields, invalid URL, invalid license) is logged as WARNING; successful logins are logged as INFO; function dispatch errors as ERROR.
- Structured server-side logging to cXML login controller: equivalent coverage for all failure and success paths.
- Structured logging to `OciDownloadJsonController`: unhandled errors in the download JSON flow are now logged as ERROR.
- `errorType` and `hint` fields in the test-connection API response to help administrators diagnose configuration issues:
- `missing_config` — Client ID or Client Secret not set
- `network_error` — license API unreachable
- `auth_error` — credentials rejected by the license API
- Structured server-side logging to `CxmlAuthController`: all failure paths (invalid/expired auth key, customer not found, system not found, malformed stored XML) are logged as WARNING; successful auth flows as INFO.
- `OciUndefinedFunctionController` now logs unsupported OCI function names as WARNING.
Changed
- All Symfony DI service configuration files migrated from XML to YAML (`.xml` → `.yaml`). Plugin developers extending the service container should use the `.yaml` format going forward.
- Transmission detail page redesigned: improved layout and visual structure across all tabs.
- Transferred transmissions now allow adding, editing and removing cart items as long as no order has been created yet.
Fixed
- Removed dead HTTP request method validation blocks in `OciLoginController` and `CxmlLoginController` that referenced an undefined class (`HTTPRequestMethod`) and lacked a `return` statement, causing a potential fatal PHP error at runtime. The `OciLoginController` now correctly validates the configured HTTP method of the customer's OCI system after authentication.
- Replaced deprecated `utf8_encode()` with `mb_convert_encoding()` in `CxmlDuplicateController` (deprecated since PHP 8.2, removed in PHP 9).
- `CxmlLoginController` and `CxmlInspectController` now catch `SimpleXMLElement` parse exceptions and return a proper error response instead of an unhandled 500.
- `CxmlInspectController` Twig template path corrected from `@Storefront/...` to `@AgiqonConnector/...` (template was never found at runtime).
- `CxmlDuplicateController` now correctly extends `AbstractController` instead of `StorefrontController`; storefront-scoped base class was incompatible with the API route scope.
- `OciProductService::addProductToCart()` now returns the recalculated cart from `CartService::add()` instead of the original cart object, ensuring prices are always up to date after adding a line item.
- `OciCustomerService::deleteOldTempCustomers()` no longer filters by `languageId`; temporary customers created in any language context are now cleaned up correctly.
- `CxmlLoginController` URL decoding unified to `html_entity_decode()` to handle all HTML entities, not just `&`.
- `ConnectorTransmissionController::updateCart()` and `CxmlDuplicateController::duplicateSystem()` now validate the incoming ID as a valid UUID before executing any DAL queries, preventing invalid input from reaching the database layer.
- `OciCustomerService` and `OciProductService` single-result queries now set `Criteria::setLimit(1)` to avoid fetching unnecessary rows when only the first match is needed.
Refactored
- `ConnectorResponseGenerator` promoted to abstract class; shared `resolveDataFieldValue()` and `getConfigKey()` methods extracted from `OciConnectorResponseGenerator` and `CxmlConnectorResponseGenerator` to eliminate duplication.
- OCI login controller credential-presence check extracted into an explicit `$credentialsPresent` variable for improved readability.
3.7.1
Added
- Refactored all route names to be constants for better usage in twig templates and controllers.
- Added more twig block in twig templates for easier customization.
Fixed
- No frame login now works with new Connector version.
3.7.0
Added
- Complete architectural rewrite of the plugin (version 3.x series).
- OCI and cXML protocol logic moved from storefront/checkout classes into a dedicated `Connector` domain layer.
- Each OCI function (`DETAIL`, `VALIDATE`, `SOURCING`, `BACKGROUND_SEARCH`, `DOWNLOADJSON`, `QUANTITYCHECK`) now has its own dedicated controller.
- Each cXML transfer type (`Inspect`, `TransferCart`, `TransferDirect`) now has its own dedicated controller.
- Shipping method extension to mark shipping methods as OCI/cXML-compatible directly in the Shopware shipping method administration.
- Unified administration module: OCI and cXML systems are now managed in a single consolidated plugin module with improved navigation and ACL support.
- Role-based access control (ACL) for all connector administration views.
- New DataField system: a typed, registry-based mapping layer for product, order, line item, shipping, context and system fields. Custom fields can be registered via the Symfony service container without manual configuration.
- New transmission management in the administration: a list view and a detail view for all connector transmissions, including status tracking (open, order created, transferred, closed, cancelled).
- Transmissions now have a dedicated number range for unique transmission numbers.
- Transmission customers are recorded per transmission to track which customer was logged in.
- Dashboard in the administration showing transmission statistics and key metrics.
- Transmission mode can be configured per system: "manual" (transfer triggered by the user) or "auto" (transfer happens automatically on logout).
- Cart payload and active rule IDs are saved on the transmission for reproducibility.
- Payment method and shipping method can now be configured per OCI and cXML system. If no method is configured, the customer's last used methods are applied automatically.
- New order settings card added to the cXML system detail view.
Changed
- Session is now an immutable value object (`ConnectorSession`) shared by both OCI and cXML, replacing the mutable `OciSession` entity.
- Minimum PHP version raised to 8.2.
2.2.3
Added
- cXML post url now decodes query parameters.
2.2.2
Fixed
- cXML Elements can now provide values with zero.
2.2.1
Fixed
- Only product line items or individual product line items can be converted into OCI items.
2.2.0
Added
- Hook URL validation can be disabled for cXML systems.
- The guest session configuration has been moved to "Login" for cXML.
2.1.0
Added
- Guest sessions now use the normal user but different carts, allowing guest sessions to also use the normal customer information, improving integration with OCI and cXML systems.
1.3.3
- OCI user can now log in with their customer number
2.0.7
- OCI user can now log in with their customer number
1.3.2
- Request method checker removed from OCI logout
2.0.6
- Request method checker removed from OCI logout
2.0.5
- Session Logout button not working
2.0.4
Added
- All customer properties are copied when creating a customer copy
1.3.1
Added
- All customer properties are copied when creating a customer copy
Fixed
- Typo in admin template
2.0.3
- Fixed a typo that blocked the save of the starting value of the character limit
2.0.2
Fixed
- Bug where systems could no longer be created
- Bug where direct product transfer in punchout level 2 was not working
1.3.0
Added
- Login URL display in OCI and cXML systems configuration
- New login test functionality for OCI systems
Fixed
- Bug with cXML inspect when session is not available
2.0.1
Added
- Login URL display in OCI and cXML systems configuration
- New login test functionality for OCI systems
Fixed
- Bug with cXML inspect when session is not available
2.0.0
- Support for Shopware 6.7
- Compatibility with new structures in Shopware 6.7
1.2.1
- Fixed a bug with the no frame login.
1.2.0
- Added support for older Shopware 6.5 versions.
1.1.2
- Fixed a bug within the migration order.
1.1.1
- Fixed a bug with cXML session and config property.
1.1.0
- Fixed X-Frame-Options for newer Shopware versions.
- Added a new option for oci systems to show the 'Your account' button.
1.0.4
- Fixed a bug with token login.
1.0.3
- Fixed unit handling.
- Fixed removing of guest session.
1.0.2
- Required composer components and versions adjusted.
1.0.1
- Compatibility with Shopware 6.6.7.1
1.0.0
Initial Release of the plugin