n8n-nodes-apivault-woocommerce 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +78 -0
- package/dist/credentials/ApifyApi.credentials.d.ts +9 -0
- package/dist/credentials/ApifyApi.credentials.js +37 -0
- package/dist/credentials/ApifyApi.credentials.js.map +1 -0
- package/dist/nodes/WooCommerce/WooCommerce.node.d.ts +5 -0
- package/dist/nodes/WooCommerce/WooCommerce.node.js +283 -0
- package/dist/nodes/WooCommerce/WooCommerce.node.js.map +1 -0
- package/dist/nodes/WooCommerce/woocommerce.svg +7 -0
- package/index.js +3 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 apivault_labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# n8n-nodes-apivault-woocommerce
|
|
2
|
+
|
|
3
|
+
An [n8n](https://n8n.io) community node for the **WooCommerce Product Scraper** — scrape any WooCommerce catalog via the public Store API.
|
|
4
|
+
|
|
5
|
+
No login. Pay-as-you-go, no monthly subscription. The catalog crawl and enrichment run server-side on [Apify](https://apify.com); this node is a thin connector you drive with your own Apify API token.
|
|
6
|
+
|
|
7
|
+
Built by **[apivault_labs](https://apify.com/apivault_labs)** — see [all our actors](https://apify.com/apivault_labs).
|
|
8
|
+
|
|
9
|
+
## What you get per product
|
|
10
|
+
|
|
11
|
+
- **Core**: title, price, regular/sale price, discount %, SKU, description, short description, currency
|
|
12
|
+
- **Catalog**: categories, tags, attributes (brand, material…), images
|
|
13
|
+
- **Stock & rating**: in-stock status, low-stock count, average rating, review count
|
|
14
|
+
- **Variants**: variation IDs, or full per-variant prices/stock with "one row per variant"
|
|
15
|
+
- **Reviews text** (optional): actual review text + reviewer info
|
|
16
|
+
- **Intelligence**: discount %, popularity rank, new-arrival flag, product intelligence score
|
|
17
|
+
- **FX**: optional converted price (USD/EUR/GBP) via live rates
|
|
18
|
+
|
|
19
|
+
## Export formats
|
|
20
|
+
|
|
21
|
+
- **Default JSON** — full structured fields
|
|
22
|
+
- **Shopify CSV** / **Shopify CSV only** — WooCommerce → Shopify migration
|
|
23
|
+
- **Google Merchant** / **Google Merchant only** — Google Shopping ad feed
|
|
24
|
+
- **Custom CSV** — your own columns
|
|
25
|
+
- **Catalog Snapshot** — one aggregate record per store
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
In your n8n instance:
|
|
30
|
+
|
|
31
|
+
1. Go to **Settings → Community Nodes**
|
|
32
|
+
2. Select **Install**
|
|
33
|
+
3. Enter `n8n-nodes-apivault-woocommerce`
|
|
34
|
+
4. Confirm and install
|
|
35
|
+
|
|
36
|
+
## Credentials
|
|
37
|
+
|
|
38
|
+
This node uses an **Apify API token**:
|
|
39
|
+
|
|
40
|
+
1. Create a free account at [apify.com](https://apify.com)
|
|
41
|
+
2. Go to **Apify Console → Settings → Integrations** and copy your **API token**
|
|
42
|
+
3. In n8n, create new **Apify API** credentials and paste the token
|
|
43
|
+
|
|
44
|
+
A free Apify account includes monthly usage credits.
|
|
45
|
+
|
|
46
|
+
## Usage
|
|
47
|
+
|
|
48
|
+
- **WooCommerce Store or Product URLs** — store domain (whole catalog), product URL, or bare domain. One per line, or comma-separated.
|
|
49
|
+
- **Export Format** — JSON / Shopify CSV / Google Merchant / Custom CSV / Catalog Snapshot
|
|
50
|
+
- **Limits & Filters** — max products, per-page, only in-stock, category slug, FX currency
|
|
51
|
+
- **Variants & Reviews** — flatten variants, enrich variants, review text
|
|
52
|
+
- **Fields to Extract** — toggle any of the 14 product fields
|
|
53
|
+
- **Advanced** — concurrency, timeout
|
|
54
|
+
|
|
55
|
+
## Pricing
|
|
56
|
+
|
|
57
|
+
Billed per product through Apify (pay-per-event): **$3 / 1,000 products** ($0.003 each).
|
|
58
|
+
|
|
59
|
+
## Use cases
|
|
60
|
+
|
|
61
|
+
- **Shopify migration** — export any WooCommerce catalog to Shopify CSV
|
|
62
|
+
- **Price monitoring** — track competitor prices and discounts
|
|
63
|
+
- **Google Shopping** — generate a Merchant feed from any store
|
|
64
|
+
- **Dropshipping research** — sample catalogs, ratings and intelligence scores
|
|
65
|
+
|
|
66
|
+
## Resources
|
|
67
|
+
|
|
68
|
+
- [WooCommerce Product Scraper actor on Apify](https://apify.com/apivault_labs/woocommerce-product-scraper)
|
|
69
|
+
- [All actors by apivault_labs](https://apify.com/apivault_labs)
|
|
70
|
+
- [n8n community nodes docs](https://docs.n8n.io/integrations/community-nodes/)
|
|
71
|
+
|
|
72
|
+
## License
|
|
73
|
+
|
|
74
|
+
[MIT](LICENSE)
|
|
75
|
+
|
|
76
|
+
## Keywords
|
|
77
|
+
|
|
78
|
+
`woocommerce-scraper` `product-scraper` `ecommerce` `price-monitoring` `shopify-migration` `google-merchant` `dropshipping` `catalog-export` `n8n` `apify`
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class ApifyApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
authenticate: IAuthenticateGeneric;
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApifyApi = void 0;
|
|
4
|
+
class ApifyApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'apifyApi';
|
|
7
|
+
this.displayName = 'Apify API';
|
|
8
|
+
this.documentationUrl = 'https://docs.apify.com/platform/integrations/api';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'API Token',
|
|
12
|
+
name: 'apiToken',
|
|
13
|
+
type: 'string',
|
|
14
|
+
typeOptions: { password: true },
|
|
15
|
+
default: '',
|
|
16
|
+
required: true,
|
|
17
|
+
description: 'Your personal Apify API token. Find it in Apify Console → Settings → Integrations → API token. A free account includes monthly usage credits.',
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
this.authenticate = {
|
|
21
|
+
type: 'generic',
|
|
22
|
+
properties: {
|
|
23
|
+
headers: {
|
|
24
|
+
Authorization: '=Bearer {{$credentials.apiToken}}',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
this.test = {
|
|
29
|
+
request: {
|
|
30
|
+
baseURL: 'https://api.apify.com/v2',
|
|
31
|
+
url: '/users/me',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.ApifyApi = ApifyApi;
|
|
37
|
+
//# sourceMappingURL=ApifyApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApifyApi.credentials.js","sourceRoot":"","sources":["../../credentials/ApifyApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,QAAQ;IAArB;QACC,SAAI,GAAG,UAAU,CAAC;QAElB,gBAAW,GAAG,WAAW,CAAC;QAE1B,qBAAgB,GAAG,kDAAkD,CAAC;QAEtE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EACV,+IAA+I;aAChJ;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,mCAAmC;iBAClD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,0BAA0B;gBACnC,GAAG,EAAE,WAAW;aAChB;SACD,CAAC;IACH,CAAC;CAAA;AAnCD,4BAmCC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class WooCommerce implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WooCommerce = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const ACTOR_ID = 'apivault_labs~woocommerce-product-scraper';
|
|
6
|
+
class WooCommerce {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.description = {
|
|
9
|
+
displayName: 'WooCommerce Product Scraper',
|
|
10
|
+
name: 'wooCommerce',
|
|
11
|
+
icon: 'file:woocommerce.svg',
|
|
12
|
+
group: ['transform'],
|
|
13
|
+
version: 1,
|
|
14
|
+
subtitle: '={{$parameter["storeUrls"]}}',
|
|
15
|
+
description: 'Scrape any WooCommerce catalog via the public Store API: variant prices, reviews text, related products, discount %, intelligence score. Export to Shopify CSV or Google Merchant feed.',
|
|
16
|
+
defaults: {
|
|
17
|
+
name: 'WooCommerce Product Scraper',
|
|
18
|
+
},
|
|
19
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
20
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
21
|
+
usableAsTool: true,
|
|
22
|
+
credentials: [
|
|
23
|
+
{
|
|
24
|
+
name: 'apifyApi',
|
|
25
|
+
required: true,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
properties: [
|
|
29
|
+
{
|
|
30
|
+
displayName: 'WooCommerce Store or Product URLs',
|
|
31
|
+
name: 'storeUrls',
|
|
32
|
+
type: 'string',
|
|
33
|
+
typeOptions: { rows: 3 },
|
|
34
|
+
default: '',
|
|
35
|
+
required: true,
|
|
36
|
+
placeholder: 'https://woocommerce.com',
|
|
37
|
+
description: 'Store domain (pulls entire catalog), product URL, or bare domain. Mix them freely. Separate multiple with a new line or comma.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
displayName: 'Export Format',
|
|
41
|
+
name: 'exportFormat',
|
|
42
|
+
type: 'options',
|
|
43
|
+
options: [
|
|
44
|
+
{ name: 'Default JSON (full structured fields)', value: 'default' },
|
|
45
|
+
{ name: 'Default + Shopify CSV Columns (migration)', value: 'shopify-csv' },
|
|
46
|
+
{ name: 'Shopify CSV Only (clean migration export)', value: 'shopify-csv-only' },
|
|
47
|
+
{ name: 'Default + Google Merchant Feed', value: 'google-merchant' },
|
|
48
|
+
{ name: 'Google Merchant Only (clean ad feed)', value: 'google-merchant-only' },
|
|
49
|
+
{ name: 'Custom CSV (specify columns)', value: 'custom-csv' },
|
|
50
|
+
{ name: 'Catalog Snapshot (one aggregate record per store)', value: 'catalog-snapshot' },
|
|
51
|
+
],
|
|
52
|
+
default: 'default',
|
|
53
|
+
description: 'Output format for each product record',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
displayName: 'Custom CSV Columns',
|
|
57
|
+
name: 'customColumns',
|
|
58
|
+
type: 'string',
|
|
59
|
+
default: '',
|
|
60
|
+
placeholder: 'productId,title,price,brand,inStock,averageRating',
|
|
61
|
+
description: 'Comma-separated column names. Only used when Export Format is "Custom CSV". Available: productId, productUrl, slug, title, price, regularPrice, salePrice, currency, discountPct, sku, brand, autoCategory, categories, tags, inStock, averageRating, reviewCount, popularityRank, isNewArrival, productIntelligenceScore, mainImage, images, variationsCount.',
|
|
62
|
+
displayOptions: {
|
|
63
|
+
show: {
|
|
64
|
+
exportFormat: ['custom-csv'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
displayName: 'Limits & Filters',
|
|
70
|
+
name: 'limits',
|
|
71
|
+
type: 'collection',
|
|
72
|
+
placeholder: 'Add Option',
|
|
73
|
+
default: {},
|
|
74
|
+
options: [
|
|
75
|
+
{
|
|
76
|
+
displayName: 'Max Products per Store',
|
|
77
|
+
name: 'maxProducts',
|
|
78
|
+
type: 'number',
|
|
79
|
+
typeOptions: { minValue: 0, maxValue: 10000 },
|
|
80
|
+
default: 250,
|
|
81
|
+
description: 'Limit per store (0 = unlimited)',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
displayName: 'Products per Page',
|
|
85
|
+
name: 'perPage',
|
|
86
|
+
type: 'number',
|
|
87
|
+
typeOptions: { minValue: 1, maxValue: 100 },
|
|
88
|
+
default: 100,
|
|
89
|
+
description: 'Products per API page (WooCommerce max 100)',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
displayName: 'Only In-Stock Products',
|
|
93
|
+
name: 'onlyInStock',
|
|
94
|
+
type: 'boolean',
|
|
95
|
+
default: false,
|
|
96
|
+
description: 'Whether to skip out-of-stock products',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
displayName: 'Filter by Category Slug',
|
|
100
|
+
name: 'category',
|
|
101
|
+
type: 'string',
|
|
102
|
+
default: '',
|
|
103
|
+
placeholder: 'hoodies',
|
|
104
|
+
description: 'Only fetch products from this category slug',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
displayName: 'Convert Prices to Currency',
|
|
108
|
+
name: 'convertToCurrency',
|
|
109
|
+
type: 'string',
|
|
110
|
+
default: '',
|
|
111
|
+
placeholder: 'USD',
|
|
112
|
+
description: 'Optional ISO currency code (USD, EUR, GBP). Adds an FX-converted price field when the store currency differs.',
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
displayName: 'Variants & Reviews',
|
|
118
|
+
name: 'variantsReviews',
|
|
119
|
+
type: 'collection',
|
|
120
|
+
placeholder: 'Add Option',
|
|
121
|
+
default: {},
|
|
122
|
+
options: [
|
|
123
|
+
{
|
|
124
|
+
displayName: 'One Row per Variant',
|
|
125
|
+
name: 'flattenVariants',
|
|
126
|
+
type: 'boolean',
|
|
127
|
+
default: false,
|
|
128
|
+
description: 'Whether to output one row per variant (size/color) with full variant prices and stock. Auto-enables Enrich Variants.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
displayName: 'Enrich Variants (Full Data)',
|
|
132
|
+
name: 'enrichVariants',
|
|
133
|
+
type: 'boolean',
|
|
134
|
+
default: false,
|
|
135
|
+
description: 'Whether to make a second API call per product for full variant prices, stock, attributes, related_ids and cross-sells. Slower but richer.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
displayName: 'Extract Review Text',
|
|
139
|
+
name: 'extractReviewsText',
|
|
140
|
+
type: 'boolean',
|
|
141
|
+
default: false,
|
|
142
|
+
description: 'Whether to pull actual review text + reviewer info per product. Adds 1 extra API call per product.',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
displayName: 'Reviews per Product',
|
|
146
|
+
name: 'reviewsPerProduct',
|
|
147
|
+
type: 'number',
|
|
148
|
+
typeOptions: { minValue: 1, maxValue: 50 },
|
|
149
|
+
default: 5,
|
|
150
|
+
description: 'How many recent reviews to fetch per product when Extract Review Text is on',
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
displayName: 'Fields to Extract',
|
|
156
|
+
name: 'fields',
|
|
157
|
+
type: 'collection',
|
|
158
|
+
placeholder: 'Add Field',
|
|
159
|
+
default: {},
|
|
160
|
+
description: 'Toggle which product fields to extract. All on by default.',
|
|
161
|
+
options: [
|
|
162
|
+
{ displayName: 'Product Title', name: 'extractTitle', type: 'boolean', default: true, description: 'Whether to extract the product name' },
|
|
163
|
+
{ displayName: 'Price', name: 'extractPrice', type: 'boolean', default: true, description: 'Whether to extract the current price' },
|
|
164
|
+
{ displayName: 'Regular Price', name: 'extractRegularPrice', type: 'boolean', default: true, description: 'Whether to extract the regular (non-sale) price' },
|
|
165
|
+
{ displayName: 'Sale Price', name: 'extractSalePrice', type: 'boolean', default: true, description: 'Whether to extract the sale price' },
|
|
166
|
+
{ displayName: 'SKU', name: 'extractSku', type: 'boolean', default: true, description: 'Whether to extract SKU codes' },
|
|
167
|
+
{ displayName: 'Description', name: 'extractDescription', type: 'boolean', default: true, description: 'Whether to extract the full description (HTML stripped)' },
|
|
168
|
+
{ displayName: 'Short Description', name: 'extractShortDescription', type: 'boolean', default: true, description: 'Whether to extract the short description' },
|
|
169
|
+
{ displayName: 'Images', name: 'extractImages', type: 'boolean', default: true, description: 'Whether to extract all image URLs' },
|
|
170
|
+
{ displayName: 'Categories', name: 'extractCategories', type: 'boolean', default: true, description: 'Whether to extract the category list' },
|
|
171
|
+
{ displayName: 'Tags', name: 'extractTags', type: 'boolean', default: true, description: 'Whether to extract product tags' },
|
|
172
|
+
{ displayName: 'Attributes', name: 'extractAttributes', type: 'boolean', default: true, description: 'Whether to extract product attributes (brand, material, etc.)' },
|
|
173
|
+
{ displayName: 'Stock / Availability', name: 'extractStock', type: 'boolean', default: true, description: 'Whether to extract stock status and low-stock count' },
|
|
174
|
+
{ displayName: 'Rating', name: 'extractRating', type: 'boolean', default: true, description: 'Whether to extract average rating and review count' },
|
|
175
|
+
{ displayName: 'Variations', name: 'extractVariations', type: 'boolean', default: true, description: 'Whether to extract variation IDs (when not flattening)' },
|
|
176
|
+
],
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
displayName: 'Advanced Options',
|
|
180
|
+
name: 'advancedOptions',
|
|
181
|
+
type: 'collection',
|
|
182
|
+
placeholder: 'Add Option',
|
|
183
|
+
default: {},
|
|
184
|
+
options: [
|
|
185
|
+
{
|
|
186
|
+
displayName: 'Max Concurrency',
|
|
187
|
+
name: 'maxConcurrency',
|
|
188
|
+
type: 'number',
|
|
189
|
+
typeOptions: { minValue: 1, maxValue: 10 },
|
|
190
|
+
default: 3,
|
|
191
|
+
description: 'Parallel store fetches',
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
displayName: 'Timeout per Request (Seconds)',
|
|
195
|
+
name: 'timeout',
|
|
196
|
+
type: 'number',
|
|
197
|
+
typeOptions: { minValue: 10, maxValue: 120 },
|
|
198
|
+
default: 30,
|
|
199
|
+
description: 'HTTP timeout per API call',
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
async execute() {
|
|
207
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
208
|
+
const items = this.getInputData();
|
|
209
|
+
const returnData = [];
|
|
210
|
+
for (let i = 0; i < items.length; i++) {
|
|
211
|
+
try {
|
|
212
|
+
const rawUrls = this.getNodeParameter('storeUrls', i);
|
|
213
|
+
const storeUrls = rawUrls
|
|
214
|
+
.split(/[\n,]+/)
|
|
215
|
+
.map((u) => u.trim())
|
|
216
|
+
.filter((u) => u.length > 0);
|
|
217
|
+
if (storeUrls.length === 0) {
|
|
218
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'At least one WooCommerce store or product URL is required', { itemIndex: i });
|
|
219
|
+
}
|
|
220
|
+
const exportFormat = this.getNodeParameter('exportFormat', i, 'default');
|
|
221
|
+
const customColumns = this.getNodeParameter('customColumns', i, '');
|
|
222
|
+
const limits = this.getNodeParameter('limits', i, {});
|
|
223
|
+
const variantsReviews = this.getNodeParameter('variantsReviews', i, {});
|
|
224
|
+
const fields = this.getNodeParameter('fields', i, {});
|
|
225
|
+
const advanced = this.getNodeParameter('advancedOptions', i, {});
|
|
226
|
+
const body = {
|
|
227
|
+
storeUrls,
|
|
228
|
+
exportFormat,
|
|
229
|
+
customColumns,
|
|
230
|
+
maxProducts: (_a = limits.maxProducts) !== null && _a !== void 0 ? _a : 250,
|
|
231
|
+
perPage: (_b = limits.perPage) !== null && _b !== void 0 ? _b : 100,
|
|
232
|
+
onlyInStock: (_c = limits.onlyInStock) !== null && _c !== void 0 ? _c : false,
|
|
233
|
+
category: (_d = limits.category) !== null && _d !== void 0 ? _d : '',
|
|
234
|
+
convertToCurrency: (_e = limits.convertToCurrency) !== null && _e !== void 0 ? _e : '',
|
|
235
|
+
flattenVariants: (_f = variantsReviews.flattenVariants) !== null && _f !== void 0 ? _f : false,
|
|
236
|
+
enrichVariants: (_g = variantsReviews.enrichVariants) !== null && _g !== void 0 ? _g : false,
|
|
237
|
+
extractReviewsText: (_h = variantsReviews.extractReviewsText) !== null && _h !== void 0 ? _h : false,
|
|
238
|
+
reviewsPerProduct: (_j = variantsReviews.reviewsPerProduct) !== null && _j !== void 0 ? _j : 5,
|
|
239
|
+
extractTitle: (_k = fields.extractTitle) !== null && _k !== void 0 ? _k : true,
|
|
240
|
+
extractPrice: (_l = fields.extractPrice) !== null && _l !== void 0 ? _l : true,
|
|
241
|
+
extractRegularPrice: (_m = fields.extractRegularPrice) !== null && _m !== void 0 ? _m : true,
|
|
242
|
+
extractSalePrice: (_o = fields.extractSalePrice) !== null && _o !== void 0 ? _o : true,
|
|
243
|
+
extractSku: (_p = fields.extractSku) !== null && _p !== void 0 ? _p : true,
|
|
244
|
+
extractDescription: (_q = fields.extractDescription) !== null && _q !== void 0 ? _q : true,
|
|
245
|
+
extractShortDescription: (_r = fields.extractShortDescription) !== null && _r !== void 0 ? _r : true,
|
|
246
|
+
extractImages: (_s = fields.extractImages) !== null && _s !== void 0 ? _s : true,
|
|
247
|
+
extractCategories: (_t = fields.extractCategories) !== null && _t !== void 0 ? _t : true,
|
|
248
|
+
extractTags: (_u = fields.extractTags) !== null && _u !== void 0 ? _u : true,
|
|
249
|
+
extractAttributes: (_v = fields.extractAttributes) !== null && _v !== void 0 ? _v : true,
|
|
250
|
+
extractStock: (_w = fields.extractStock) !== null && _w !== void 0 ? _w : true,
|
|
251
|
+
extractRating: (_x = fields.extractRating) !== null && _x !== void 0 ? _x : true,
|
|
252
|
+
extractVariations: (_y = fields.extractVariations) !== null && _y !== void 0 ? _y : true,
|
|
253
|
+
maxConcurrency: (_z = advanced.maxConcurrency) !== null && _z !== void 0 ? _z : 3,
|
|
254
|
+
timeout: (_0 = advanced.timeout) !== null && _0 !== void 0 ? _0 : 30,
|
|
255
|
+
};
|
|
256
|
+
const options = {
|
|
257
|
+
method: 'POST',
|
|
258
|
+
url: `https://api.apify.com/v2/acts/${ACTOR_ID}/run-sync-get-dataset-items`,
|
|
259
|
+
body,
|
|
260
|
+
json: true,
|
|
261
|
+
};
|
|
262
|
+
const response = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', options);
|
|
263
|
+
const results = Array.isArray(response) ? response : [response];
|
|
264
|
+
for (const result of results) {
|
|
265
|
+
returnData.push({ json: result, pairedItem: { item: i } });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
if (this.continueOnFail()) {
|
|
270
|
+
returnData.push({
|
|
271
|
+
json: { error: error.message },
|
|
272
|
+
pairedItem: { item: i },
|
|
273
|
+
});
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex: i });
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return [returnData];
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
exports.WooCommerce = WooCommerce;
|
|
283
|
+
//# sourceMappingURL=WooCommerce.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WooCommerce.node.js","sourceRoot":"","sources":["../../../nodes/WooCommerce/WooCommerce.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
|
|
2
|
+
<rect width="64" height="64" rx="12" fill="#7F54B3"/>
|
|
3
|
+
<path d="M16 26h32l-3 14a3 3 0 0 1-3 2.4H22A3 3 0 0 1 19 40l-3-14z" fill="none" stroke="#fff" stroke-width="3.2" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M16 26l-2-6h-4" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
<circle cx="25" cy="48" r="2.6" fill="#fff"/>
|
|
6
|
+
<circle cx="41" cy="48" r="2.6" fill="#fff"/>
|
|
7
|
+
</svg>
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-apivault-woocommerce",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "n8n community node for WooCommerce Product Scraper — scrape any WooCommerce catalog via the public Store API. Full variant prices, reviews text, related products, discount %, product intelligence score. Export to Shopify CSV (migration) or Google Merchant feed. No login. Pay-as-you-go, no monthly fee.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"homepage": "https://apify.com/apivault_labs/woocommerce-product-scraper",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"n8n-community-node-package",
|
|
9
|
+
"n8n",
|
|
10
|
+
"woocommerce-scraper",
|
|
11
|
+
"product-scraper",
|
|
12
|
+
"ecommerce",
|
|
13
|
+
"price-monitoring",
|
|
14
|
+
"shopify-migration",
|
|
15
|
+
"google-merchant",
|
|
16
|
+
"dropshipping",
|
|
17
|
+
"catalog-export",
|
|
18
|
+
"apify"
|
|
19
|
+
],
|
|
20
|
+
"author": {
|
|
21
|
+
"name": "apivault_labs"
|
|
22
|
+
},
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "https://github.com/apivault-labs/n8n-nodes-apivault-woocommerce.git"
|
|
26
|
+
},
|
|
27
|
+
"main": "index.js",
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc && copyfiles \"nodes/**/*.svg\" dist",
|
|
30
|
+
"dev": "tsc --watch",
|
|
31
|
+
"prepublishOnly": "npm run build"
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"dist"
|
|
35
|
+
],
|
|
36
|
+
"n8n": {
|
|
37
|
+
"n8nNodesApiVersion": 1,
|
|
38
|
+
"credentials": [
|
|
39
|
+
"dist/credentials/ApifyApi.credentials.js"
|
|
40
|
+
],
|
|
41
|
+
"nodes": [
|
|
42
|
+
"dist/nodes/WooCommerce/WooCommerce.node.js"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/node": "^20.10.0",
|
|
47
|
+
"copyfiles": "^2.4.1",
|
|
48
|
+
"n8n-workflow": "*",
|
|
49
|
+
"typescript": "^5.4.0"
|
|
50
|
+
},
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"n8n-workflow": "*"
|
|
53
|
+
}
|
|
54
|
+
}
|