IP Library › Granted Patent US 12,260,250
Granted Patent B2
US 12,260,250 · App. 18/480,037 · Granted Mar 25, 2025

System and method for executing multiple scripts at a single extension point

Inventors: David Cameron (Kitchener, CA); Jonathan Mitchell Dickinson (Kitchener, CA)
Assignee: SHOPIFY INC.
G06F9/4881
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,260,250
App. No.
18/480,037
Granted
Mar 25, 2025
Kind
B2
Abstract

Systems and methods of executing multiple scripts at an extension point are provided. If there are multiple scripts that are associated with an extension point for a service instance in a SAAS platform, a script execution schedule is determined. This can indicate the order of execution of the multiple scripts, but may also specify how the inputs and outputs of the multiple script executions are obtained. For example, the inputs for multiple scripts can be the same, and be those provided by the SAAS platform at the extension point. In this case, in effect the multiple scripts are executed independently. Alternatively, the output of one script can function as the input to another script, which requires a certain order of execution. After all of the scripts are executed, output rules are used to determine an overall output of the script execution to be returned the platform through the extension point.

Claims (42)

1. A computer-implemented method comprising:

executing computer executable code to provide a service instance in a software as a service (SAAS) platform, the computer executable code including an extension point;

during the execution of said computer executable code for the service instance, responsive to reaching the extension point, executing multiple scripts associated with the extension point, wherein the executing the multiple scripts results in a respective output for each of the multiple scripts; and

determining an overall output of executing the multiple scripts, wherein the overall output is a function of at least one of the respective outputs, and returning the overall output to the service instance through the extension point.

2. The method of claim 1 , further comprising:

determining a script execution schedule for executing multiple scripts to be executed for the extension point,

wherein the multiple scripts are executed in accordance with the script execution schedule.

3. The method of claim 2 wherein determining the script execution schedule comprises performing an automated analysis of the scripts.

4. The method of claim 1 wherein the overall output is a selected one of the respective outputs.

5. The method of claim 1 , wherein the overall output is a function of two or more of the respective outputs.

6. The method of claim 1 , wherein each script is run independently based on an input from the extension point.

7. The method of claim 1 , wherein the scripts are executed in a specific order, the specific order including a last script to be executed; and

the overall output is the respective output of the last script to be executed.

8. A computer system comprising:

at least one processor; and

a memory, storing instructions that, when executed by at least one of the least one processor cause the computer system to:

execute computer executable code to provide a service instance in a software as a service (SAAS) platform, the computer executable code including an extension point;

during the execution of said computer executable code for the service instance, responsive to reaching the extension point, execute multiple scripts associated with the extension point to result in a respective output for each of the multiple scripts; and

determine an overall output of executing the multiple scripts, wherein the overall output is a function of at least one of the respective outputs, and returning the overall output to the service instance through the extension point.

9. The computer system of claim 8 , wherein the instructions further cause the system to:

determine a script execution schedule for executing multiple scripts to be executed for the extension point,

wherein the multiple scripts are executed in accordance with the script execution schedule.

10. The computer system of claim 9 , wherein the instructions further cause the system to:

determine the script execution schedule by performing an automated analysis of the scripts.

11. The computer system of claim 8 wherein the overall output is a selected one of the respective outputs.

12. The computer system of claim 8 , wherein the overall output is a function of two or more of the respective outputs.

13. The computer system of claim 8 , wherein each script is run independently based on an input from the extension point.

14. The computer system of claim 8 , wherein the scripts are executed in a specific order, the specific order including a last script to be executed; and

the overall output is the respective output of the last script to be executed.

15. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a computer, cause the computer to perform a method comprising:

executing computer executable code to provide a service instance in a software as a service (SAAS) platform, the computer executable code including an extension point;

during the execution of said computer executable code for the service instance, responsive to reaching the extension point, executing multiple scripts associated with the extension point, wherein the executing the multiple scripts results in a respective output for each of the multiple scripts; and

determining an overall output of executing the multiple scripts, wherein the overall output is a function of at least one of the respective outputs, and returning the overall output to the service instance through the extension point.

16. The non-transitory computer readable medium of claim 15 , the method further comprising:

determining a script execution schedule for executing multiple scripts to be executed for the extension point,

wherein the multiple scripts are executed in accordance with the script execution schedule.

17. The non-transitory computer readable medium of claim 16 , wherein determining the script execution schedule comprises performing an automated analysis of the scripts.

18. The non-transitory computer readable medium of claim 15 wherein the overall output is a selected one of the respective outputs.

19. The non-transitory computer readable medium of claim 15 , wherein the overall output is a function of two or more of the respective outputs.

20. The non-transitory computer readable medium of claim 15 , wherein each script is run independently based on an input from the extension point.

21. The non-transitory computer readable medium of claim 15 , wherein the scripts are executed in a specific order, the specific order including a last script to be executed; and

the overall output is the respective output of the last script to be executed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2023
From: CAMERON, DAVID; DICKINSON, JONATHAN MITCHELL
To: SHOPIFY INC.
Reel/Frame 065110/0376 →
Continuity (2)
Continuation 17244086 · Apr 29, 2021
Related Publication 20240028393A1 · Jan 25, 2024
References Cited (47)
US 1151384A · Owen · 1915 [cited by examiner]
US 8291490B1 · Ahmed · 2012 [cited by examiner]
US 8374894B2 · Weinstock · 2013 [cited by examiner]
US 8543508B2 · Katzin · 2013 [cited by examiner]
US 8818975B2 · Aigner · 2014 [cited by examiner]
US 8868751B2 · Kylau · 2014 [cited by examiner]
US 9135311B2 · Decker · 2015 [cited by examiner]
US 9442700B2 · Sarid · 2016 [cited by examiner]
US 9455876B1 · Grebenschikov · 2016 [cited by examiner]
US 9531745B1 · Sharma · 2016 [cited by examiner]
US 9582598B2 · Kalgi · 2017 [cited by examiner]
US 9674168B2 · Kottahachchi · 2017 [cited by examiner]
US 9733921B1 · Saenz · 2017 [cited by examiner]
US 9753701B2 · Liu · 2017 [cited by examiner]
US 9825964B2 · Mellor et al. · 2017 [cited by applicant]
US 10057140B2 · Fulton · 2018 [cited by examiner]
US 10296321B2 · Liu · 2019 [cited by examiner]
US 10417690B2 · Mueller · 2019 [cited by examiner]
US 10606582B2 · Yehuda · 2020 [cited by examiner]
US 10659542B2 · Ignatyev · 2020 [cited by examiner]
US 10768953B2 · Dobson · 2020 [cited by examiner]
US 10789048B2 · Kismartoni · 2020 [cited by examiner]
US 10819861B2 · Leemet · 2020 [cited by examiner]
US 10951606B1 · Shahidzadeh · 2021 [cited by examiner]
US 11004071B2 · Kruse · 2021 [cited by examiner]
US 11042953B1 · Delgado · 2021 [cited by examiner]
US 11176153B2 · Carvalho · 2021 [cited by examiner]
US 11237814B2 · Lindholm · 2022 [cited by examiner]
US 11316954B2 · Cameron · 2022 [cited by examiner]
US 11341443B2 · Chu · 2022 [cited by examiner]
US 11425070B2 · Young · 2022 [cited by examiner]
US 11449815B2 · Shakhnovich · 2022 [cited by examiner]
US 11494825B2 · Wall · 2022 [cited by examiner]
US 11513842B2 · Wang et al. · 2022 [cited by applicant]
US 11586685B2 · Feijoo · 2023 [cited by examiner]
US 11809904B2 · Cameron · 2023 [cited by examiner]
US 20120197811A1 · Kearney · 2012 [cited by examiner]
US 20130159892A1 · Suraj · 2013 [cited by examiner]
US 20130290141A1 · Bhaskar · 2013 [cited by examiner]
US 20140278722A1 · Duerr · 2014 [cited by examiner]
US 20160117650A1 · Weidenmiller · 2016 [cited by examiner]
US 20170060650A1 · Anderson · 2017 [cited by examiner]
US 20180047018A1 · De Ganon · 2018 [cited by examiner]
US 20190056926A1 · Lindholm et al. · 2019 [cited by applicant]
US 20190287314A1 · Rojo · 2019 [cited by examiner]
US 20200126105A1 · Joglekar · 2020 [cited by examiner]
US 20200242590A1 · Sarjaz · 2020 [cited by examiner]