{"id":19607166,"url":"https://github.com/robocorp/example-web-store-order-processor","last_synced_at":"2025-06-11T16:07:48.314Z","repository":{"id":55014105,"uuid":"315299978","full_name":"robocorp/example-web-store-order-processor","owner":"robocorp","description":"Swag order processing robot.","archived":false,"fork":false,"pushed_at":"2023-11-01T16:12:06.000Z","size":124,"stargazers_count":1,"open_issues_count":1,"forks_count":4,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-02-26T16:50:22.227Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"RobotFramework","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robocorp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-23T11:55:10.000Z","updated_at":"2022-09-07T16:16:55.000Z","dependencies_parsed_at":"2023-01-20T16:29:45.116Z","dependency_job_id":"3ee1da8b-5d67-4e23-aa6b-4bbef6909495","html_url":"https://github.com/robocorp/example-web-store-order-processor","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/robocorp/example-web-store-order-processor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Fexample-web-store-order-processor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Fexample-web-store-order-processor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Fexample-web-store-order-processor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Fexample-web-store-order-processor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robocorp","download_url":"https://codeload.github.com/robocorp/example-web-store-order-processor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robocorp%2Fexample-web-store-order-processor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259293373,"owners_count":22835601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T10:09:08.602Z","updated_at":"2025-06-11T16:07:48.297Z","avatar_url":"https://github.com/robocorp.png","language":"RobotFramework","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web store order processor example robot\n\n![Orders Excel file](readme-resources/orders-excel.png)\n\nThis example robot orders swag from a [web store](https://www.saucedemo.com/) based on an Excel file. The robot uses credentials stored in a _vault_ file for logging into the store.\n\n\u003e Never commit sensitive information in your project. Provide the credentials for your robot from a vault file, environment variables, or with some other mechanism where the credentials are not exposed.\n\nThe robot will:\n\n- open a real web browser and load the web store login page\n- log into the web store using credentials provided using a vault file\n- collect the orders from the provided Excel file using a custom Python library\n- loop through the orders and complete the checkout for each order\n- close the browser on process completion\n\n\u003e We have used this scenario as an example when explaining how to create a [Process Definition Document](/courses/implementing-rpa-robots/process-definition-document) for your RPA projects. Check it out!\n\nThis robot demonstrates some concepts and features of the Robot Framework and the RPA Framework:\n\n- Using a vault for sensitive data such as credentials (`vault.json`, Control Room vault)\n- Asserting task state (`Assert logged in`, `Assert item in cart`...)\n- Resetting task state for the next item (`Reset application state`)\n- Retrying keywords `n` times with a given delay (`Wait Until Keyword Succeeds`)\n- Using a custom library (`Orders.py`)\n- Using a third-party library in your own library (`from RPA.Excel.Files import Files`)\n- Transforming Excel files to business entities, in this case, web store orders\n\n## Setup\n\n### Configure local vault (not recommended)\n\nThe robot is _almost_ ready to run, but still needs the vault for the credentials. See [how to use a vault for secrets](/development-guide/variables-and-secrets/vault) on how to set up the vault.\n\nPaste this content in the vault file:\n\n```json\n{\n  \"swaglabs\": {\n    \"username\": \"standard_user\",\n    \"password\": \"secret_sauce\"\n  }\n}\n```\n\nIn [*devdata/env-local.json*](./devdata/env-local.json), edit the `RPA_SECRET_FILE`\nvariable to point to your *vault.json* file on your filesystem. On macOS / Linux,\nuse normal file paths (e.g.: `\"/Users/\u003cusername\u003e/vault.json\"` or\n`\"/home/\u003cusername\u003e/vault.json\"`). On Windows, you need to escape the path:\n`\"C:\\\\Users\\\\User\\\\vault.json\"`.\n\n\u003e Make sure you rename the *env-local.json* file into *env.json* if you want it picked\nautomatically by VSCode when the extension is not connected to the cloud, otherwise\nthe extension will be able to pick them up from Control Room's online Vault if\nconnected to the Workspace.\n\n\u003e Also set up the vault in Control Room, if you want to run the robot there.\n\n### Control Room's online Vault (recommended)\n\nConfigure your Vault using the UI. The name of the vault should be `swaglabs`.\nProvide the user name and the password as key-value pairs (see the vault file\nfor the exact naming).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobocorp%2Fexample-web-store-order-processor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobocorp%2Fexample-web-store-order-processor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobocorp%2Fexample-web-store-order-processor/lists"}