Repository navigation
Record completed Shopify payments and refunds - #6
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR: Adds optional one-way records of completed Shopify payments and refunds to Inventoros' payment ledger, with transaction IDs preventing duplicates. It does not charge or refund customers.
Successful sales/captures and refunds use the audited core import API; pending/failed transactions and authorizations create no receipts. Currencies must match, active manual entries require reconciliation, voids stay voided, and refunds cannot exceed recorded receipts. Historical/cancelled orders are supported without stock changes or historical payment announcements. Current-order announcements wait until the complete order, ledger and mapping commit. Refund webhooks refresh the complete transaction snapshot; histories beyond 100 transactions or incomplete responses stop for manual review.
Off by default. Requires Inventoros/Inventoros#305 for payment imports; older cores retain the existing sync features and show an upgrade hint. Enabling the option retests the connection and registers refund notifications.
Stacked on #5; merge #3, #4 and #5 first. Merge core Inventoros/Inventoros#305 before enabling payments. The setup guide, release version and changelog are updated.
Validation: the complete combined stack passes 150 tests / 857 assertions on PostgreSQL. The MySQL suite passes 149 tests / 856 assertions, with the final token-renewal regression also passing separately (6 authentication tests / 30 assertions). The final combined shipment/import stack passes 162 tests / 900 assertions on SQLite, including console-handler compatibility. Both 1.3.0 and 1.4.0 release ZIPs install, activate, reactivate and uninstall through the real installer in an isolated database. Runtime UI builds pass. Requests use fakes; no live store was changed.
GitHub-hosted CI cannot start because GitHub reports failed account payments or a spending-limit restriction. No build steps ran; local checks above cover the changes.