@bijection/connectors/woocommerce entrypoint to declare WooCommerce resources.
Availability
This page describes the pinned source package. Published availability is unestablished for this artifact. Source build and package availability.Resources and modes
| Resource | Mode | Description |
|---|---|---|
| Orders | pull | Carried modified walk, signed webhook hints and unconditional updates |
| Products | pull | Carried modified walk with point-read deletion |
Orders
pull: Carried modified walk, signed webhook hints and unconditional updates
The following example matches configurationstandard.
import { woocommerce } from "@bijection/connectors/woocommerce";
export const orders = woocommerce.orders.pull({});
Inferred record types
Inferred record types
Resource without an operational record table
Configuration: standard
Case:woocommerce/orders/pull/standard.
Connection and resource configuration are declared by this exact case.
Credential kind: woocommerce. Keep credential material in the private credential inventory.
| Setting | Type | Required | Owner |
|---|---|---|---|
siteUrl | string | Yes | Shared connection |
Complete configuration contract
Complete configuration contract
{
"setup": [],
"resource": {
"access": {},
"defaults": {},
"connector": "woocommerce",
"output": {
"kind": "single",
"collection": "orders"
},
"credential_kind": "woocommerce",
"connection_fields": [
"siteUrl"
],
"address": {
"kind": "setup",
"field": "siteUrl"
}
},
"connection_setup": {
"type": "object",
"value": {
"siteUrl": {
"fieldType": {
"type": "string"
},
"optional": false
}
}
},
"execution": null
}
| Contract | Meaning |
|---|---|
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Reconciliation |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |
Complete native profile
Complete native profile
{
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
Commands, occurrences and artifacts
Commands, occurrences and artifacts
{
"records": {
"orders": {
"protocol": "record_observation",
"coverage": "records",
"consistency": "observations",
"atomicity": "record",
"history": "observations",
"recordRefresh": true,
"reconciliation": true,
"notifications": false,
"snapshotMaxRows": null,
"profile": {
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
}
},
"occurrences": null,
"artifacts": {
"raw_archive": false,
"native_file_transfer_limit_bytes": null,
"external_versions": false,
"files": {}
},
"commands": {}
}
| Requirement | Scope | Evidence | Result |
|---|---|---|---|
| page-publication-recovery | {“kind”:“collection”,“name”:“orders”} | Native test: integrations/acquisition/acquisition_windows_preserve_sequences_and_restart_fences_old_work (shared_engine) | Execution result unavailable |
| backoff-stated-wait | {“kind”:“connection”} | Native test: integrations/acquisition/backoff_a_stated_wait_defers_the_next_dispatch_and_then_resumes (shared_engine) | Execution result unavailable |
| identity-account | {“kind”:“connection”} | Fixture: ./src/connectors/woocommerce/fixtures/identity.json | passed (2026-10-24T21:36:12.458Z) |
Configuration: webhooks
Case:woocommerce/orders/pull/webhooks.
Connection and resource configuration are declared by this exact case.
Credential kind: woocommerce. Keep credential material in the private credential inventory.
| Setting | Type | Required | Owner |
|---|---|---|---|
siteUrl | string | Yes | Shared connection |
Complete configuration contract
Complete configuration contract
{
"setup": [],
"resource": {
"access": {},
"defaults": {},
"connector": "woocommerce",
"output": {
"kind": "single",
"collection": "orders"
},
"credential_kind": "woocommerce",
"connection_fields": [
"siteUrl"
],
"address": {
"kind": "setup",
"field": "siteUrl"
}
},
"connection_setup": {
"type": "object",
"value": {
"siteUrl": {
"fieldType": {
"type": "string"
},
"optional": false
}
}
},
"execution": null
}
| Contract | Meaning |
|---|---|
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Reconciliation |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |
Complete native profile
Complete native profile
{
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "acquire.4",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "listener changes",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3",
"acquire.4"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
Commands, occurrences and artifacts
Commands, occurrences and artifacts
{
"records": {
"orders": {
"protocol": "record_observation",
"coverage": "records",
"consistency": "observations",
"atomicity": "record",
"history": "observations",
"recordRefresh": true,
"reconciliation": true,
"notifications": true,
"snapshotMaxRows": null,
"profile": {
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "acquire.4",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "listener changes",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3",
"acquire.4"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
}
},
"occurrences": null,
"artifacts": {
"raw_archive": false,
"native_file_transfer_limit_bytes": null,
"external_versions": false,
"files": {}
},
"commands": {}
}
| Requirement | Scope | Evidence | Result |
|---|---|---|---|
| listener-custody-before-ack | {“kind”:“listener”,“collection”:“orders”} | Native test: integrations/listeners/webhook_delivery_commits_responsibility_before_acknowledging (shared_engine) | Execution result unavailable |
| listener-duplicate-delivery | {“kind”:“listener”,“collection”:“orders”} | No check exercises this packaged WooCommerce declaration against WooCommerce; it has not run or been qualified. | Execution result unavailable |
| page-publication-recovery | {“kind”:“collection”,“name”:“orders”} | Native test: integrations/acquisition/acquisition_windows_preserve_sequences_and_restart_fences_old_work (shared_engine) | Execution result unavailable |
| backoff-stated-wait | {“kind”:“connection”} | Native test: integrations/acquisition/backoff_a_stated_wait_defers_the_next_dispatch_and_then_resumes (shared_engine) | Execution result unavailable |
| identity-account | {“kind”:“connection”} | Fixture: ./src/connectors/woocommerce/fixtures/identity.json | passed (2026-10-24T21:36:12.459Z) |
Configuration: updates
Case:woocommerce/orders/pull/updates.
Connection and resource configuration are declared by this exact case.
Credential kind: woocommerce. Keep credential material in the private credential inventory.
| Setting | Type | Required | Owner |
|---|---|---|---|
siteUrl | string | Yes | Shared connection |
Complete configuration contract
Complete configuration contract
{
"setup": [],
"resource": {
"access": {},
"defaults": {},
"connector": "woocommerce",
"output": {
"kind": "single",
"collection": "orders"
},
"credential_kind": "woocommerce",
"connection_fields": [
"siteUrl"
],
"address": {
"kind": "setup",
"field": "siteUrl"
}
},
"connection_setup": {
"type": "object",
"value": {
"siteUrl": {
"fieldType": {
"type": "string"
},
"optional": false
}
}
},
"execution": null
}
| Contract | Meaning |
|---|---|
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Reconciliation |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |
Complete native profile
Complete native profile
{
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {
"update": {
"target": "orders",
"delivery": "single_attempt",
"condition": "unconditional",
"replayWindowMs": null,
"maxDeliveryHours": "1",
"providerEnforcedExpiry": false
}
}
}
| Command | Target | Condition | Delivery |
|---|---|---|---|
update | orders | Unconditional | Single dispatch attempt |
Commands, occurrences and artifacts
Commands, occurrences and artifacts
{
"records": {
"orders": {
"protocol": "record_observation",
"coverage": "records",
"consistency": "observations",
"atomicity": "record",
"history": "observations",
"recordRefresh": true,
"reconciliation": true,
"notifications": false,
"snapshotMaxRows": null,
"profile": {
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {
"update": {
"target": "orders",
"delivery": "single_attempt",
"condition": "unconditional",
"replayWindowMs": null,
"maxDeliveryHours": "1",
"providerEnforcedExpiry": false
}
}
}
}
},
"occurrences": null,
"artifacts": {
"raw_archive": false,
"native_file_transfer_limit_bytes": null,
"external_versions": false,
"files": {}
},
"commands": {
"update": {
"target": "orders",
"condition": {
"kind": "unconditional"
},
"delivery": {
"kind": "single_attempt",
"retention": {
"kind": "unknown"
},
"max_delivery_hours": 1
}
}
}
}
| Requirement | Scope | Evidence | Result |
|---|---|---|---|
| page-publication-recovery | {“kind”:“collection”,“name”:“orders”} | Native test: integrations/acquisition/acquisition_windows_preserve_sequences_and_restart_fences_old_work (shared_engine) | Execution result unavailable |
| command-response-lost | {“kind”:“command”,“name”:“update”} | Native test: integrations/listeners/calendar_repair_preserves_accepted_responsibility (shared_engine) | Execution result unavailable |
| backoff-stated-wait | {“kind”:“connection”} | Native test: integrations/acquisition/backoff_a_stated_wait_defers_the_next_dispatch_and_then_resumes (shared_engine) | Execution result unavailable |
| identity-account | {“kind”:“connection”} | Fixture: ./src/connectors/woocommerce/fixtures/identity.json | passed (2026-10-24T21:36:12.459Z) |
Products
pull: Carried modified walk with point-read deletion
The following example matches configurationstandard.
import { woocommerce } from "@bijection/connectors/woocommerce";
export const products = woocommerce.products.pull();
Inferred record types
Inferred record types
Resource without an operational record table
Configuration: standard
Case:woocommerce/products/pull/standard.
Connection and resource configuration are declared by this exact case.
Credential kind: woocommerce. Keep credential material in the private credential inventory.
| Setting | Type | Required | Owner |
|---|---|---|---|
siteUrl | string | Yes | Shared connection |
Complete configuration contract
Complete configuration contract
{
"setup": [],
"resource": {
"access": {},
"defaults": {},
"connector": "woocommerce",
"output": {
"kind": "single",
"collection": "products"
},
"credential_kind": "woocommerce",
"connection_fields": [
"siteUrl"
],
"address": {
"kind": "setup",
"field": "siteUrl"
}
},
"connection_setup": {
"type": "object",
"value": {
"siteUrl": {
"fieldType": {
"type": "string"
},
"optional": false
}
}
},
"execution": null
}
| Contract | Meaning |
|---|---|
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Reconciliation |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |
Complete native profile
Complete native profile
{
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
Commands, occurrences and artifacts
Commands, occurrences and artifacts
{
"records": {
"products": {
"protocol": "record_observation",
"coverage": "records",
"consistency": "observations",
"atomicity": "record",
"history": "observations",
"recordRefresh": true,
"reconciliation": true,
"notifications": false,
"snapshotMaxRows": null,
"profile": {
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
}
},
"occurrences": null,
"artifacts": {
"raw_archive": false,
"native_file_transfer_limit_bytes": null,
"external_versions": false,
"files": {}
},
"commands": {}
}
| Requirement | Scope | Evidence | Result |
|---|---|---|---|
| page-publication-recovery | {“kind”:“collection”,“name”:“products”} | Native test: integrations/acquisition/acquisition_windows_preserve_sequences_and_restart_fences_old_work (shared_engine) | Execution result unavailable |
| backoff-stated-wait | {“kind”:“connection”} | Native test: integrations/acquisition/backoff_a_stated_wait_defers_the_next_dispatch_and_then_resumes (shared_engine) | Execution result unavailable |
| identity-account | {“kind”:“connection”} | Fixture: ./src/connectors/woocommerce/fixtures/identity.json | passed (2026-10-24T21:36:12.459Z) |
Configuration: webhooks
Case:woocommerce/products/pull/webhooks.
Connection and resource configuration are declared by this exact case.
Credential kind: woocommerce. Keep credential material in the private credential inventory.
| Setting | Type | Required | Owner |
|---|---|---|---|
siteUrl | string | Yes | Shared connection |
Complete configuration contract
Complete configuration contract
{
"setup": [],
"resource": {
"access": {},
"defaults": {},
"connector": "woocommerce",
"output": {
"kind": "single",
"collection": "products"
},
"credential_kind": "woocommerce",
"connection_fields": [
"siteUrl"
],
"address": {
"kind": "setup",
"field": "siteUrl"
}
},
"connection_setup": {
"type": "object",
"value": {
"siteUrl": {
"fieldType": {
"type": "string"
},
"optional": false
}
}
},
"execution": null
}
| Contract | Meaning |
|---|---|
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Reconciliation |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |
Complete native profile
Complete native profile
{
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "acquire.4",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "listener changes",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3",
"acquire.4"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
Commands, occurrences and artifacts
Commands, occurrences and artifacts
{
"records": {
"products": {
"protocol": "record_observation",
"coverage": "records",
"consistency": "observations",
"atomicity": "record",
"history": "observations",
"recordRefresh": true,
"reconciliation": true,
"notifications": true,
"snapshotMaxRows": null,
"profile": {
"movement": {
"exchanges": {
"all": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"record": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"404": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
},
"since": {
"200": {
"placement": "retained_bytes",
"interpretation": "json",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
},
"429": {
"placement": "retained_bytes",
"interpretation": "opaque",
"projectsBeforeRetention": false,
"retainedBodyLimitBytes": "524288",
"fileLimitBytes": null
}
}
},
"nativeInputLimitBytes": null,
"steps": [
{
"id": "acquire.1",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange all",
"limitBytes": null
}
},
{
"id": "acquire.2",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange record",
"limitBytes": null
}
},
{
"id": "acquire.3",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "exchange since",
"limitBytes": null
}
},
{
"id": "acquire.4",
"inputs": [],
"action": {
"operation": "acquire",
"subject": "listener changes",
"limitBytes": null
}
},
{
"id": "retain.1",
"inputs": [
"acquire.1",
"acquire.2",
"acquire.3",
"acquire.4"
],
"action": {
"operation": "retain",
"subject": "acquisition evidence",
"reason": "recovery",
"release": "acquisition_custody"
}
},
{
"id": "interpret.1",
"inputs": [
"retain.1"
],
"action": {
"operation": "interpret",
"subject": "acquired input",
"produces": "records"
}
},
{
"id": "materialize.1",
"inputs": [
"interpret.1"
],
"action": {
"operation": "materialize",
"subject": "source rows",
"reason": "serving",
"release": "replacement"
}
},
{
"id": "publish.1",
"inputs": [
"materialize.1"
],
"action": {
"operation": "publish",
"subject": "source rows",
"visibility": "with_acquisition"
}
}
]
},
"initial": "enumeration",
"changes": "observations",
"deletions": "reconciliation",
"resume": "none",
"retentionMs": null,
"gap": "not_applicable",
"limits": {
"http_response_bytes": "524288"
},
"restrictions": [],
"commands": {}
}
}
},
"occurrences": null,
"artifacts": {
"raw_archive": false,
"native_file_transfer_limit_bytes": null,
"external_versions": false,
"files": {}
},
"commands": {}
}
| Requirement | Scope | Evidence | Result |
|---|---|---|---|
| listener-custody-before-ack | {“kind”:“listener”,“collection”:“products”} | Native test: integrations/listeners/webhook_delivery_commits_responsibility_before_acknowledging (shared_engine) | Execution result unavailable |
| listener-duplicate-delivery | {“kind”:“listener”,“collection”:“products”} | No check exercises this packaged WooCommerce declaration against WooCommerce; it has not run or been qualified. | Execution result unavailable |
| page-publication-recovery | {“kind”:“collection”,“name”:“products”} | Native test: integrations/acquisition/acquisition_windows_preserve_sequences_and_restart_fences_old_work (shared_engine) | Execution result unavailable |
| backoff-stated-wait | {“kind”:“connection”} | Native test: integrations/acquisition/backoff_a_stated_wait_defers_the_next_dispatch_and_then_resumes (shared_engine) | Execution result unavailable |
| identity-account | {“kind”:“connection”} | Fixture: ./src/connectors/woocommerce/fixtures/identity.json | passed (2026-10-24T21:36:12.459Z) |
Provider guidance
Compiled declaration examples and configuration details are published in the connector reference. The connection dials the store’s site URL (siteUrl setup) under
/wp-json/wc/v3 and holds a woocommerce credential (woocommerce.credential):
the consumer key and secret as a Basic envelope, which WooCommerce accepts over
HTTPS. OAuth 1.0a signing (plain HTTP only) is not supported. Identity is
system_status’s environment.site_url.
Both collections are walks over date_modified_gmt: orderby=modified&order=asc,
dates_are_gmt=true, 100 a page, ended by the stated X-WP-TotalPages, and
carried between passes (sync.carry) from five minutes before the latest time
the previous pass read. modified_after compares strictly, so a request asks
from one second before the walk’s inclusive bound; re-read rows deduplicate by
date_modified_gmt, their opaque version.
The listing’s default status=any leaves trashed records out, so coverage is
filtered: a record missing from the walk is never withdrawn. The point read
decides: a trashed record reads as present with WooCommerce’s own trash
status (trash is restorable), and only WooCommerce’s …_invalid_id 404 withdraws
a record deleted for good; any other 404 is unresolved.
Order money (total, total_tax, shipping_total, shipping_tax,
discount_total, discount_tax, cart_tax) is decimal text beside currency
and declared exact. Product prices are decimal text (an empty price is null);
the store currency is a store setting no product names. status is kept as
stated, plugin statuses included. Customers are not offered: the customers
listing has no modification filter.
With updates: "webhooks", a delivery verified as base64 HMAC-SHA256 over the
raw body (x-wc-webhook-signature, keyed by the webhook secret) and identified
by x-wc-webhook-delivery-id requests an incremental pass. It has no timestamp,
so replay is bounded by the delivery ring and it proves only a hint. Integer ids
are no record key a hint can carry. Whether the creation ping is signed is not
documented. A delivery carries the whole resource, so an order larger than the
64 KiB listener cap is refused, and repeated refusals make WooCommerce disable
the webhook.
orders update sends the given fields as one PUT /orders/{id}.
WooCommerce has no ETag, precondition or idempotency key, so it is one
unconditional attempt and a lost answer stays unknown.
Nothing here has run against WooCommerce or been qualified.
Provider references
Provider references and prerequisites are maintained in the connector guidance above. No separate provider-documentation review date is recorded.Source and evidence
Canonical connector source, native analysis and check receipts. Connector artifact:905888ea276a2a28e36981a79e8142b2547ea451c3e63162cb6915ad4a7d1305.
The resource declaration examples above are compiled and compared with exact catalog declarations. Recorded checks apply only to their source, declaration and runtime identities. Configure a connection and inspect its status to establish deployment-specific readiness.