Spryker Engineer GPT
Edit on GitHubBefore using AI tools, consult with your legal department.
Spryker Engineer GPT is an innovative AI-powered assistant designed specifically for developers working with the Spryker Commerce OS. Currently in its beta phase, Spryker Engineer GPT aims to streamline Spryker project development, improve productivity, and ensure adherence to best practices.
The following sections describe GPT’s features and use cases.
Code snippet generation
Spryker Engineer GPT generates accurate and compliant code snippets for common Spryker development tasks. Whether you’re working on a Glue API, module facade, or business logic, this assistant provides ready-to-use PHP and XML code based on Spryker standards.
Example use case: Creating facades and model structures for a new feature–for example, image upload functionality in the Merchant Portal.
Adherence to Spryker architecture
The assistant helps developers adhere to Spryker’s architectural guidelines, such as stateless classes, PSR-4 compliance, and proper utilization of factories and facades.
Example use case: Ensuring repository patterns, transfer objects, and Propel ORM schemas are correctly implemented.
Enhanced productivity for business logic implementation
By focusing on the business logic and offloading boilerplate code generation to Spryker Engineer GPT, developers can allocate more time to solving complex problems.
Example use case: Designing a product discount feature by generating both backend logic and transfer definitions.
Improved development velocity
With Spryker Engineer GPT, developers can quickly set up new features, reducing the learning curve for newcomers to Spryker while maintaining high-quality output.
Example use case: Onboarding new developers to a Spryker project and having them deliver quality work immediately using AI assistance.
Debugging and refactoring assistance
Spryker Engineer GPT can analyze existing code snippets, suggest improvements, and refactor them to align with best practices, ensuring maintainability.
Example use case: Refactoring outdated module logic to align with modern Spryker standards.
Usage example
Prompt: Provide the PHP Facade and model implementations for the Image Upload feature for the MerchantProductImage module
Output:
//MerchantProductImageFacade.php
<?php
namespace Spryker\Zed\MerchantProductImage\Business;
use Generated\Shared\Transfer\ProductImageUploadRequestTransfer;
use Generated\Shared\Transfer\ProductImageUploadResponseTransfer;
class MerchantProductImageFacade
{
. /**
* Specification:
* - Handles image upload for a product.
* - Accepts a DTO with merchant ID, product SKU, image set ID, and raw image data.
* - Routes the request to the respective model for processing.
* - Returns a response transfer indicating success or error reasons.
*
* @param \Generated\Shared\Transfer\ProductImageUploadRequestTransfer $productImageUploadRequestTransfer
*
* @return \Generated\Shared\Transfer\ProductImageUploadResponseTransfer
*/
public function uploadProductImages(ProductImageUploadRequestTransfer $productImageUploadRequestTransfer): ProductImageUploadResponseTransfer
{
return $this->getFactory()->createProductImageUploader()->uploadImages($productImageUploadRequestTransfer);
}
}
//ProductImageUploader.php
<?php
namespace Spryker\Zed\MerchantProductImage\Business\Model;
use Generated\Shared\Transfer\ProductImageUploadRequestTransfer;
use Generated\Shared\Transfer\ProductImageUploadResponseTransfer;
class ProductImageUploader
{
...<here GPT provides an actual implementation>
}
//Transfer definition
<transfer name="ProductImageUploadRequest">
<property name="merchantId" type="int" />
<property name="sku" type="string" />
<property name="imageSetId" type="int" />
<property name="rawImages" type="array" />
</transfer>
<transfer name="ProductImageUploadResponse">
<property name="isSuccessful" type="bool" />
<property name="errorMessage" type="string" />
</transfer>
Access
You can find it here: Spryker Engineer GPT
Early Access Program
As part of Spryker’s Early Access Program, we use your feedback to refine early-access features that are still under development. This section describes how the program works and how you can participate.
Program goals
- Integration and compatibility testing: Evaluate how well the tool integrates into various Spryker projects.
- Identify gaps and issues: Because this is a third-party tool using another third-party tool, Spryker is not in control of how ChatGPT behaves. There may be unexpected issues and unsatisfactory results which we need to track and collect to understand if they can be improved upon.
- Understand user onboarding and learning curve:
- Evaluate if the tool can be successfully used by engineers with varying levels of expertise.
- Assess whether engineers can effectively use the tool without extensive training and derive valuable insights for testing processes.
- Drive adoption: Promote the usage of comprehensive functional testing checklists and dependency analysis, providing an easy entry point for users.
- Gather case studies and success stories: Gather case studies and success stories of early users who derived significant value from the tool.
Your feedback will help us understand if we are meeting these goals effectively.
Early Access Program
Early Access Program enables real-world testing of our product’s new capabilities and tools. This helps us refine and improve the product based on feedback from partners and customers.
Early access release GPTs may be unsupported and are subject to change, potentially leading to changes or discontinuation before a general availability release.
Participate
You can start participating by using the tool and providing feedback.
Provide feedback
You can provide feedback through surveys, interviews, and Feedback Exchange Portal.
Iteration and improvement
Based on your feedback, we will continuously improve Spryker GPTs.
Program shutdown activities
We will announce the program shutdown two weeks in advance. After that, we will transition the tool to a General Availability Release, or discontinue it based on our analysis. Regardless of the outcome, we will communicate the next steps, learnings, and insights from the program.
Thank you!
For submitting the form