I have an interesting use case where I am seeking validation that this is even possible without violating TOS or there existing the technology to do so. I apologize for just word dumping here however I have been pursuing multiple paths to solve this problem it is appearing this might not be supported.
In short: I need the ability to allow the customer to choose how much of a discount they would like to take advantage of at checkout in exchange for receiving rewards proportional to the discount amount
Example: As a customer I a have a 20% off discount code at checkout. I apply the code, however I see a checkout extension with a Stepper component that allows me to exchange 10% of the 20% for rewards in a 3rd party service. Now I see 10% off in the cart then the other 10% is seen inside a 3rd party app. Upon paying, I go to the 3rd party service and observe the 10% worth of rewards in my account.
Shorter Example: As a customer I have a 15% discount code, I want to take 5% in reward points via the 3rd party service then have 10% off the cart.
There are many questions here:
shopify app = shapp
-
This Shapp that gets installed to do this MUST have external API keys stored within shapp memory, is this a violation of TOS since this means the Shopify app relies on a 3rd party service?
-
Right now in my development Shapp I have the Admin side enabling the saving of the API key, then a checkout extension that enables the input of a number 0-20 (ideally the max is the percentage of the discount code, is this possible?)
-
I have investigated Shopify functions rather intensely however I am not certain it is the right tool for the job to be able to update the discount applied in the checkout screen as there exists this clause here (Apps that provide dynamic editing and execution of function code aren’t permitted on the Shopify App Store.) What would be the right tool to enable an interaction between the cart amount and the discount code?
-
The webhook for ‘orders/paid’ is where I would receive the data of the checkout with my order meta field dictated by checkout extension, then retrieve 3rd party api credentials and make the request. Is this a violation of TOS?