Hola les dejo en ingles la funcionalidad que se necesita, necesito urgentemente alguien que desarrolle una app que pueda ser inicialmente instalada en cualquier tienda Shopify y a futuro publicada en el App store. Lo unico que hace la App es que cuando estas en la pagina de carrito, que haya un campo donde puedas ingresar un numero y presionar "Aplicar". Lo que se hara aqui es usar ese numero para hacer una llamada de API y recibir un numero de respuesta.
Este numero que se recibe del callback se debe de aplicar como descuento en el carrito.
STEP 1: When a user in the Shopify store gets to Checkout (during the entire checkout process there is a pane with total amount on the right side) we need to add an input field and a button. This input field will allow a user to input a Client Number, when the 'Apply' button is clicked, the plugin will send a POST call to X endpoint with the following data:
{
"storeId": 1,
"companyYClientNumber": 12345678,
"origin":"web",
"totalOrderPrice":"500",
"products":[
{
"sku": 412424,
"quantity": 4
},
{
"sku": 535255,
"quantity": 1
}
]
}
** storeId = a fixed number that I will provide
companyYClientNumber = the number that was provided by the user in the input field in the Checkout
origin = Will always be 'web'
totalOrderPrice = The Subtotal of the order in checkout (this excludes shipping fees if any)
products = an array of all the products in the order in which every product includes sku of that product and the quantity of bought products
step 2:
the /post request sent in step 1 will return a response like the one below:
{"status":"success","apitoken":"amppd6ju1mhsm","grant":{"cash":200,"paymentinkind":0,"volunteer":100,"prize":300},"redeem":{"prize":0, "prizeallow":0},"invalidproducts":["product x", "product y"]}
here we are only looking for the value of
redeem.prize, if it is greater than 0 the value will be applied as a discount to the subtotal. We don't need to store or interact in any way with the rest.
If the response returns status:failed we will disaplay a small message that says "It appears that your client number is not valid or the products in your cart are not part of an active promotion".
STEP 3:
When the order is processed and is successful we will send a /post request to X endpoint with the following data:
{
"typeOperation":"Sale",
"apiToken":"AmPPd6jU1mHSm",
"status":"Done",
"folio":"F12"
}
Where typeOperation, apiToken and folio: will be provided and will never change.
And 'status' will be "Done" if order was completed successfully or "Unsuccessful" if it wasn't
Delivery term: Not specified