From b7ac60c47b9dca733df2dbc9f9d10197d698310c Mon Sep 17 00:00:00 2001 From: Bdair2002 <107470382+Bdair2002@users.noreply.github.com> Date: Wed, 24 Dec 2025 15:25:29 +0200 Subject: [PATCH] Fix shopify template --- .../e-commerece-shopify/Intuned.jsonc | 3 +- python-examples/e-commerece-shopify/README.md | 129 ++++++----------- .../e-commerece-shopify/Intuned.jsonc | 3 +- .../e-commerece-shopify/README.md | 133 ++++++------------ 4 files changed, 93 insertions(+), 175 deletions(-) diff --git a/python-examples/e-commerece-shopify/Intuned.jsonc b/python-examples/e-commerece-shopify/Intuned.jsonc index fababc62..81568e47 100644 --- a/python-examples/e-commerece-shopify/Intuned.jsonc +++ b/python-examples/e-commerece-shopify/Intuned.jsonc @@ -15,7 +15,8 @@ "metadata": { "template": { "name": "e-commerece-shopify", - "description": "Shopify store product scraper" + "description": "Shopify store product scraper", + "tags": ["web-scraping", "shopify", "e-commerce", "api-based"] }, "defaultRunPlaygroundInput": { "apiName": "shopify-list", diff --git a/python-examples/e-commerece-shopify/README.md b/python-examples/e-commerece-shopify/README.md index 40f4944c..f6042ee5 100644 --- a/python-examples/e-commerece-shopify/README.md +++ b/python-examples/e-commerece-shopify/README.md @@ -2,11 +2,17 @@ Shopify store scraper to list all products and fetch detailed product information from any Shopify store using the JSON API. -## Run on Intuned +## Key Features + +- **Shopify JSON API Integration**: Uses Shopify's public JSON API endpoints for efficient data extraction +- **Pagination Support**: Automatically handles pagination to scrape all products from large stores +- **Zero Browser Overhead**: API-based scraping without browser automation overhead +- **Detailed Product Data**: Extracts comprehensive product information including variants, images, and pricing -Open this project in Intuned by clicking the button below. + +## Run on Intuned -Run on Intuned +[![Run on Intuned](https://cdn1.intuned.io/button.svg)](https://app.intuned.io?repo=https://github.com/Intuned/cookbook/tree/main/python-examples/e-commerece-shopify) ## Getting Started @@ -26,107 +32,60 @@ After installing dependencies, `intuned` command should be available in your env ### Run an API ```bash -# List all products from Shopify store uv run intuned run api shopify-list .parameters/api/shopify-list/default.json - -# Get detailed product information uv run intuned run api shopify-details .parameters/api/shopify-details/default.json ``` -### Deploy project +### Save project ```bash -uv run intuned deploy +uv run intuned run save ``` +Reference for saving project [here](https://docs.intunedhq.com/docs/02-features/local-development-cli#use-runtime-sdk-and-browser-sdk-helpers) - +### Deploy project +```bash +uv run intuned deploy +``` ### `intuned-browser`: Intuned Browser SDK This project uses Intuned browser SDK. For more information, check out the [Intuned Browser SDK documentation](https://docs.intunedhq.com/automation-sdks/overview). + + ## Project Structure -The project structure is as follows: ``` / -├── api/ # Your API endpoints -│ ├── shopify-list.py # API to list all products from a Shopify store -│ └── shopify-details.py # API to fetch detailed product information -└── Intuned.jsonc # Intuned project configuration file +├── .parameters/ # Test parameters for APIs +│ └── api/ +│ ├── shopify-list/ +│ │ └── default.json +│ └── shopify-details/ +│ └── default.json +├── api/ # API endpoints +│ ├── shopify-list.py # List all products from Shopify store +│ └── shopify-details.py # Get detailed product information +├── Intuned.jsonc # Intuned project configuration +└── pyproject.toml # Python project dependencies ``` -## `Intuned.jsonc` Reference -```jsonc -{ - // Your Intuned workspace ID. - // Optional - If not provided here, it must be supplied via the `--workspace-id` flag during deployment. - "workspaceId": "your_workspace_id", - - // The name of your Intuned project. - // Optional - If not provided here, it must be supplied via the command line when deploying. - "projectName": "your_project_name", - - // Replication settings - "replication": { - // The maximum number of concurrent executions allowed via Intuned API. This does not affect jobs. - // A number of machines equal to this will be allocated to handle API requests. - // Not applicable if api access is disabled. - "maxConcurrentRequests": 1, - - // The machine size to use for this project. This is applicable for both API requests and jobs. - // "standard": Standard machine size (6 shared vCPUs, 2GB RAM) - // "large": Large machine size (8 shared vCPUs, 4GB RAM) - // "xlarge": Extra large machine size (1 performance vCPU, 8GB RAM) - "size": "standard" - } - - // Auth session settings - "authSessions": { - // Whether auth sessions are enabled for this project. - // If enabled, "auth-sessions/check.ts" API must be implemented to validate the auth session. - "enabled": true, - - // Whether to save Playwright traces for auth session runs. - "saveTraces": false, - - // The type of auth session to use. - // "API" type requires implementing "auth-sessions/create.ts" API to create/recreate the auth session programmatically. - // "MANUAL" type uses a recorder to manually create the auth session. - "type": "API", - - - // Recorder start URL for the recorder to navigate to when creating the auth session. - // Required if "type" is "MANUAL". Not used if "type" is "API". - "startUrl": "https://example.com/login", - - // Recorder finish URL for the recorder. Once this URL is reached, the recorder stops and saves the auth session. - // Required if "type" is "MANUAL". Not used if "type" is "API". - "finishUrl": "https://example.com/dashboard", - - // Recorder browser mode - // "fullscreen": Launches the browser in fullscreen mode. - // "kiosk": Launches the browser in kiosk mode (no address bar, no navigation controls). - // Only applicable for "MANUAL" type. - "browserMode": "fullscreen" - } - - // API access settings - "apiAccess": { - // Whether to enable consumption through Intuned API. If this is false, the project can only be consumed through jobs. - // This is required for projects that use auth sessions. - "enabled": true - }, - - // Whether to run the deployed API in a headful browser. Running in headful can help with some anti-bot detections. However, it requires more resources and may work slower or crash if the machine size is "standard". - "headful": false, - - // The region where your Intuned project is hosted. - // For a list of available regions, contact support or refer to the documentation. - // Optional - Default: "us" - "region": "us" -} -``` +## APIs + +| API | Description | +|-----|-------------| +| `shopify-list` | Lists all products from a Shopify store using pagination. Extracts product handles, titles, and basic information via Shopify's JSON API | +| `shopify-details` | Fetches comprehensive product details including variants, images, pricing, and availability for a specific product | + + +## Learn More + +- [Intuned Documentation](https://docs.intunedhq.com) +- [Intuned Browser SDK](https://docs.intunedhq.com/automation-sdks/overview) +- [Shopify API Documentation](https://shopify.dev/docs/api) +- [Web Scraping Recipe](https://docs.intunedhq.com/docs/01-learn/recipes/) + diff --git a/typescript-examples/e-commerece-shopify/Intuned.jsonc b/typescript-examples/e-commerece-shopify/Intuned.jsonc index ac9e5f6b..92fa209d 100644 --- a/typescript-examples/e-commerece-shopify/Intuned.jsonc +++ b/typescript-examples/e-commerece-shopify/Intuned.jsonc @@ -15,7 +15,8 @@ "metadata": { "template": { "name": "e-commerece-shopify", - "description": "Shopify store product scraper" + "description": "Shopify store product scraper", + "tags": ["web-scraping", "shopify", "e-commerce", "api-based"] }, "defaultRunPlaygroundInput": { "apiName": "shopify-list", diff --git a/typescript-examples/e-commerece-shopify/README.md b/typescript-examples/e-commerece-shopify/README.md index daee9def..40a36516 100644 --- a/typescript-examples/e-commerece-shopify/README.md +++ b/typescript-examples/e-commerece-shopify/README.md @@ -2,11 +2,17 @@ Shopify store scraper to list all products and fetch detailed product information from any Shopify store using the JSON API. -## Run on Intuned +## Key Features + +- **Shopify JSON API Integration**: Uses Shopify's public JSON API endpoints for efficient data extraction +- **Pagination Support**: Automatically handles pagination to scrape all products from large stores +- **Zero Browser Overhead**: API-based scraping without browser automation overhead +- **Detailed Product Data**: Extracts comprehensive product information including variants, images, and pricing -Open this project in Intuned by clicking the button below. + +## Run on Intuned -Run on Intuned +[![Run on Intuned](https://cdn1.intuned.io/button.svg)](https://app.intuned.io?repo=https://github.com/Intuned/cookbook/tree/main/typescript-examples/e-commerece-shopify) ## Getting Started @@ -30,23 +36,27 @@ yarn ### Run an API - ```bash -# List all products from Shopify store # npm npm run intuned run api shopify-list .parameters/api/shopify-list/default.json +npm run intuned run api shopify-details .parameters/api/shopify-details/default.json # yarn yarn intuned run api shopify-list .parameters/api/shopify-list/default.json +yarn intuned run api shopify-details .parameters/api/shopify-details/default.json +``` -# Get detailed product information +### Save project +```bash # npm -npm run intuned run api shopify-details .parameters/api/shopify-details/default.json +npm run intuned run save # yarn -yarn intuned run api shopify-details .parameters/api/shopify-details/default.json +yarn intuned run save ``` +Reference for saving project [here](https://docs.intunedhq.com/docs/02-features/local-development-cli#use-runtime-sdk-and-browser-sdk-helpers) + ### Deploy project ```bash # npm @@ -54,98 +64,45 @@ npm run intuned deploy # yarn yarn intuned deploy - ``` - - - ### `@intuned/browser`: Intuned Browser SDK This project uses Intuned browser SDK. For more information, check out the [Intuned Browser SDK documentation](https://docs.intunedhq.com/automation-sdks/overview). + + ## Project Structure -The project structure is as follows: ``` / -├── api/ # Your API endpoints -│ ├── shopify-list.ts # API to list all products from a Shopify store -│ └── shopify-details.ts # API to fetch detailed product information -└── Intuned.jsonc # Intuned project configuration file +├── .parameters/ # Test parameters for APIs +│ └── api/ +│ ├── shopify-list/ +│ │ └── default.json +│ └── shopify-details/ +│ └── default.json +├── api/ # API endpoints +│ ├── shopify-list.ts # List all products from Shopify store +│ └── shopify-details.ts # Get detailed product information +├── Intuned.jsonc # Intuned project configuration +└── package.json # Node.js project dependencies ``` -## `Intuned.jsonc` Reference -```jsonc -{ - // Your Intuned workspace ID. - // Optional - If not provided here, it must be supplied via the `--workspace-id` flag during deployment. - "workspaceId": "your_workspace_id", - - // The name of your Intuned project. - // Optional - If not provided here, it must be supplied via the command line when deploying. - "projectName": "your_project_name", - - // Replication settings - "replication": { - // The maximum number of concurrent executions allowed via Intuned API. This does not affect jobs. - // A number of machines equal to this will be allocated to handle API requests. - // Not applicable if api access is disabled. - "maxConcurrentRequests": 1, - - // The machine size to use for this project. This is applicable for both API requests and jobs. - // "standard": Standard machine size (6 shared vCPUs, 2GB RAM) - // "large": Large machine size (8 shared vCPUs, 4GB RAM) - // "xlarge": Extra large machine size (1 performance vCPU, 8GB RAM) - "size": "standard" - } - - // Auth session settings - "authSessions": { - // Whether auth sessions are enabled for this project. - // If enabled, "auth-sessions/check.ts" API must be implemented to validate the auth session. - "enabled": true, - - // Whether to save Playwright traces for auth session runs. - "saveTraces": false, - - // The type of auth session to use. - // "API" type requires implementing "auth-sessions/create.ts" API to create/recreate the auth session programmatically. - // "MANUAL" type uses a recorder to manually create the auth session. - "type": "API", - - - // Recorder start URL for the recorder to navigate to when creating the auth session. - // Required if "type" is "MANUAL". Not used if "type" is "API". - "startUrl": "https://example.com/login", - - // Recorder finish URL for the recorder. Once this URL is reached, the recorder stops and saves the auth session. - // Required if "type" is "MANUAL". Not used if "type" is "API". - "finishUrl": "https://example.com/dashboard", - - // Recorder browser mode - // "fullscreen": Launches the browser in fullscreen mode. - // "kiosk": Launches the browser in kiosk mode (no address bar, no navigation controls). - // Only applicable for "MANUAL" type. - "browserMode": "fullscreen" - } - - // API access settings - "apiAccess": { - // Whether to enable consumption through Intuned API. If this is false, the project can only be consumed through jobs. - // This is required for projects that use auth sessions. - "enabled": true - }, - - // Whether to run the deployed API in a headful browser. Running in headful can help with some anti-bot detections. However, it requires more resources and may work slower or crash if the machine size is "standard". - "headful": false, - - // The region where your Intuned project is hosted. - // For a list of available regions, contact support or refer to the documentation. - // Optional - Default: "us" - "region": "us" -} -``` +## APIs + +| API | Description | +|-----|-------------| +| `shopify-list` | Lists all products from a Shopify store using pagination. Extracts product handles, titles, and basic information via Shopify's JSON API | +| `shopify-details` | Fetches comprehensive product details including variants, images, pricing, and availability for a specific product | + + +## Learn More + +- [Intuned Documentation](https://docs.intunedhq.com) +- [Intuned Browser SDK](https://docs.intunedhq.com/automation-sdks/overview) +- [Shopify API Documentation](https://shopify.dev/docs/api) +- [Web Scraping Recipe](https://docs.intunedhq.com/docs/01-learn/recipes/)