Add api payment method

It will be used to credit customer via the customer account transaction
API
This commit is contained in:
Gaetan Craig-Riou
2026-02-03 13:44:48 +11:00
parent 45786780a8
commit e10fd0b020
4 changed files with 49 additions and 1 deletions

View File

@@ -5170,3 +5170,6 @@ en:
invisible_captcha:
sentence_for_humans: "Please leave empty"
timestamp_error_message: "Please try again after 5 seconds."
api_payment_method:
name: API customer credit
description: Used to credit customer via customer account transactions endpoint

View File

@@ -0,0 +1,33 @@
# frozen_string_literal: true
class AddApiCustomerCreditPaymentMethod < ActiveRecord::Migration[7.1]
def up
# Create payment method
execute(<<-SQL.squish
INSERT INTO spree_payment_methods ( type, name, description, environment, active, display_on, created_at, updated_at)
VALUES ('Spree::PaymentMethod::Check', 'api_payment_method.name', 'api_payment_method.description', '#{Rails.env}', true, 'back_end', NOW(), NOW())
SQL
)
# Link to existing hub
execute(<<-SQL.squish
INSERT INTO distributors_payment_methods (distributor_id, payment_method_id, created_at, updated_at)
SELECT id, (SELECT id FROM spree_payment_methods WHERE name = 'api_payment_method.name') as payment_method_id, NOW() as created_at, NOW() as updated_at
FROM enterprises WHERE sells != 'none'
SQL
)
end
def down
execute(<<-SQL.squish
DELETE FROM distributors_payment_methods
WHERE payment_method_id = (SELECT id FROM spree_payment_methods WHERE name = 'api_payment_method.name')
SQL
)
execute(<<-SQL.squish
DELETE FROM spree_payment_methods WHERE name = 'api_payment_method.name'
SQL
)
end
end

View File

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.1].define(version: 2026_01_19_024509) do
ActiveRecord::Schema[7.1].define(version: 2026_01_29_230557) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_stat_statements"
enable_extension "plpgsql"

View File

@@ -14,6 +14,7 @@ module SampleData
distributors.each do |enterprise|
create_payment_methods(enterprise)
end
create_api_method(distributors)
end
private
@@ -45,5 +46,16 @@ module SampleData
payment_method.calculator = calculator
payment_method.save!
end
def create_api_method(enterprises)
log "Creating api payment method"
Spree::PaymentMethod::Check.create!(
name: "api_payment_method.name",
description: "api_payment_method.description",
environment: Rails.env,
distributors: enterprises,
display_on: "back_end"
)
end
end
end