Two-rail abstraction — card under the cap, ACH over
`payment-clover/index.ts` and `payment-aeropay/index.ts` both implement the Medusa 2.x payment provider contract. The card rail (Clover Ecomm SDK via Global Payments Solutions ISO) handles tokenize → auth → capture → refund → void → status sync → webhook decode. The ACH rail (Aeropay) handles the bank-linked pull (1-2 business days) → settlement → reversal — used for any card-over-cap purchase and for the 50% deposit on the 500+ clone Standard-tier orders.
- Before
- Single payment surface inside Wix — no rail switching, no cap enforcement, no admin policy.
- After
- Two independent rails under one Medusa module, swappable per order amount, with a single admin policy endpoint.
- Clover: 7-method contract (initiate, authorize, capture, refund, cancel, retrieve, webhook)
- Aeropay: 6-method contract (initiate, authorize, capture-n/a, refund, retrieve, webhook)
- Both modules expose sandbox vs production URLs via environment switch
- Sandbox merchant id JM3X09S2DHK06 (B-IT) for Clover dev