From magento2-commerce
Implement Magento 2 service contracts: repository/data interfaces, SearchCriteria patterns, and repositories for module APIs, data access layers, Web API.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin magento2-commerceThis skill is limited to using the following tools:
**Fetch live docs**:
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Fetch live docs:
https://developer.adobe.com/commerce/php/development/components/web-api/services/ for service contract guidehttps://developer.adobe.com/commerce/php/development/components/searching-with-repositories/ for SearchCriteria patternssite:developer.adobe.com commerce php development components service-contracts for additional referenceService contracts are PHP interfaces that define a module's public API. They guarantee backward compatibility — implementations can change across versions without breaking consumers.
Repository Interfaces (Api/SomeRepositoryInterface.php)
getById($id) — retrieve single entitysave(SomeInterface $entity) — create or updatedelete(SomeInterface $entity) — removegetList(SearchCriteriaInterface $criteria) — filtered/sorted/paginated resultsData Interfaces (Api/Data/SomeInterface.php)
getId(), setId($id), getName(), setName($name), etc.const NAME = 'name';SearchResults Interface (Api/Data/SomeSearchResultsInterface.php)
Magento\Framework\Api\SearchResultsInterfacegetItems() / setItems() with typed returnsUsed for querying repositories with filters, sorting, and pagination:
eq, neq, gt, gteq, lt, lteq, like, in, nin, notnull, null, from, toThe concrete repository class:
getById() — creates model via factory, loads via resource modelsave() — calls resource model save(), handles exceptionsdelete() — calls resource model delete()getList() — creates collection, applies criteria via CollectionProcessor, wraps in SearchResultsWhen you define a service contract interface and map it in webapi.xml, the same code serves:
@api annotation to indicate public API stabilitySearchCriteriaBuilder instead of raw collection filtering in service layerNoSuchEntityException, CouldNotSaveException, CouldNotDeleteExceptionwebapi.xml for automatic REST/SOAP exposureFetch the service contracts and searching-with-repositories docs for exact interface signatures, exception classes, and CollectionProcessor usage before implementing.