orcaqubits/agentic-commerce-skills-plugins/saleor-payments

Claude Code and agent skill by orcaqubits/agentic-commerce-skills-plugins

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Implement Saleor payment processing — transaction-based payment flow, payment Apps, sync webhook events, Stripe/Adyen patterns, and refunds. Use when building payment integrations.

Install

npx vskill@latest install orcaqubits/agentic-commerce-skills-plugins/saleor-payments

SKILL.md

Saleor Payment Processing

Before writing code

Fetch live docs:

  1. Web-search site:docs.saleor.io transaction payment flow for the transaction-based payment model
  2. Web-search site:docs.saleor.io payment app sync webhooks for payment App implementation patterns
  3. Web-search site:docs.saleor.io transaction events CHARGE_REQUESTED for transaction event types
  4. Fetch https://docs.saleor.io/developer/payments/overview and review the full payment lifecycle
  5. Web-search site:docs.saleor.io refund transactionRequestAction for refund processing flow
  6. Fetch https://docs.saleor.io/developer/app-store/apps/stripe/overview and review Stripe App integration patterns

Transaction Payment Flow

Saleor uses a transaction-based payment model (replacing the legacy Payment model):

StepComponentDescription
1. List gatewayscheckout.availablePaymentGatewaysQuery available payment Apps for the checkout
2. Initialize sessiontransactionInitializeSend payment request to the payment App
3. Process (if needed)transactionProcessHandle additional steps (3DS, redirect)
4. Transaction eventsAutomaticPayment App reports events via webhooks
5. Complete checkoutcheckoutCompleteFinalize order after successful payment
The transaction flow is designed for asynchronous payment processing. The payment App controls the actual charge timing and reports results back via transaction events.

Transaction Events

Transaction events track the lifecycle of a payment:

Request Events (Saleor to Payment App)
Event TypeDescription
AUTHORIZATION_REQUESTRequest to authorize (hold) funds
CHARGE_REQUESTRequest to capture payment
REFUND_REQUESTRequest to refund payment
CANCEL_REQUESTRequest to void/cancel authorization
Success Events (Payment App to Saleor)
Event TypeDescription
AUTHORIZATION_SUCCESSFunds successfully authorized
CHARGE_SUCCESSPayment successfully captured
REFUND_SUCCESSRefund successfully processed
CANCEL_SUCCESSAuthorization successfully cancelled
Failure Events (Payment App to Saleor)
Event TypeDescription
AUTHORIZATION_FAILUREAuthorization failed
CHARGE_FAILURECharge failed
REFUND_FAILURERefund failed
CANCEL_FAILURECancellation failed
Action Required Events
Event TypeDescription
AUTHORIZATION_ACTION_REQUIREDAdditional customer action needed (e.g., 3DS)
CHARGE_ACTION_REQUIREDAdditional step required to complete charge
Fetch live docs for the complete TransactionEventTypeEnum -- additional event types may exist for pending states and information events.

Payment App Pattern

Payment processing in Saleor is handled by Apps that implement sync webhooks:

ComponentDescription
Payment AppA Saleor App that handles payment gateway communication
Sync webhooksSynchronous webhook calls from Saleor to the App
Transaction eventsApp reports payment status back to Saleor
Gateway configPer-channel payment gateway configuration
Key Sync Webhook Events
Webhook EventWhen TriggeredExpected Response
PAYMENT_GATEWAY_INITIALIZE_SESSIONWhen storefront queries payment gatewaysGateway configuration and client-side data
TRANSACTION_INITIALIZE_SESSIONOn transactionInitialize mutationPayment session data (e.g., client secret)
TRANSACTION_PROCESS_SESSIONOn transactionProcess mutationUpdated payment status and next actions
TRANSACTION_CHARGE_REQUESTEDOn transactionRequestAction with CHARGECharge result event
TRANSACTION_REFUND_REQUESTEDOn transactionRequestAction with REFUNDRefund result event
TRANSACTION_CANCELATION_REQUESTEDOn transactionRequestAction with CANCELCancellation result event
Payment App Implementation Pattern

A payment App must:

StepDescription
1. Register webhooksSubscribe to the sync webhook events above
2. Handle initializeCreate payment session with the gateway (e.g., Stripe PaymentIntent)
3. Return session dataSend client-side data back (e.g., clientSecret for Stripe Elements)
4. Handle processProcess additional steps and return updated status
5. Report eventsUse transactionEventReport to report async payment updates
6. Handle actionsProcess charge, refund, and cancel requests

Transaction Actions

Staff and Apps can request actions on existing transactions:

ActionMutationDescription
ChargetransactionRequestAction with CHARGECapture authorized funds
RefundtransactionRequestAction with REFUNDRefund charged amount
CanceltransactionRequestAction with CANCELVoid authorization
Manual Transaction Creation

For manual or offline payments:

MutationPurpose
transactionCreateCreate a transaction record manually
transactionUpdateUpdate transaction details
transactionEventReportReport payment events from external systems

Refund Flow

Saleor implements a two-step refund process:

StepMutationDescription
1. Grant refundorderGrantRefundCreateMerchant decides refund amount or lines
2. Process refundtransactionRequestAction with REFUNDPayment App processes the actual refund
Grant Refund Options
OptionDescription
Amount-basedSpecify a flat refund amount
Line-basedSpecify order lines and quantities to refund
Shipping refundInclude shipping cost in the refund
ReasonOptional text reason for the refund
The grant-then-process pattern allows merchants to review and approve refunds before the payment is actually reversed.

Legacy Payments (Deprecated)

Legacy MutationReplacement
checkoutPaymentCreatetransactionInitialize
checkoutComplete (with payment data)transactionProcess + checkoutComplete
orderCapturetransactionRequestAction with CHARGE
orderRefundorderGrantRefundCreate + transactionRequestAction
orderVoidtransactionRequestAction with CANCEL
Legacy payment mutations are deprecated. All new integrations should use the transaction-based flow. Existing integrations should migrate to transactions.

Stripe Integration Pattern

The official Saleor Stripe App follows this flow:

StepClientServer
1. InitializeCall transactionInitializeApp creates Stripe PaymentIntent
2. Client secretReceive data.clientSecret--
3. ConfirmUse Stripe.js to confirm payment--
4. ProcessCall transactionProcess if neededApp checks PaymentIntent status
5. Webhook--Stripe webhook updates transaction

Adyen Integration Pattern

The official Saleor Adyen App follows a similar pattern:

StepClientServer
1. InitializeCall transactionInitializeApp creates Adyen session
2. Session dataReceive Adyen Drop-in config--
3. SubmitUse Adyen Web Components--
4. ProcessCall transactionProcess with resultApp verifies with Adyen
5. Webhook--Adyen webhook updates transaction

Best Practices

  • Use the transaction-based flow for all new payment integrations (not legacy payments)
  • Implement idempotency keys on transactionInitialize to prevent duplicate charges
  • Handle ACTION_REQUIRED events for 3DS and redirect-based payment methods
  • Use transactionEventReport for webhook-based async payment updates from gateways
  • Separate grant refund (business decision) from payment refund (gateway action)
  • Test payment flows with gateway sandbox/test modes before going live
  • Subscribe to both success and failure events for comprehensive error handling
  • Store gateway-specific data in transaction metadata for debugging
  • Validate checkout.totalPrice matches the amount passed to transactionInitialize
  • Use channel-specific payment gateway configuration for multi-channel setups

Fetch the Saleor payment and transaction documentation for exact webhook payloads, event types, and App implementation patterns before implementing.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
31
Repository forks
14
7-day trend score
17

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/orcaqubits/agentic-commerce-skills-plugins/saleor-payments/badge)](https://verified-skill.com/skills/orcaqubits/agentic-commerce-skills-plugins/saleor-payments)

Something wrong with this skill or its page? Tell us.