Create

flowchart TD;

subgraph "3. Create Prices"
S[For each price] --> T[Create a price]
S --> |For each channel of a price| U[Create a product price]
end

subgraph "1. Create Product"
A[Get data] --> |Not a draft| B[status = PENDING] --> C
A --> |Is a draft| V[status = DRAFT] --> C
B --> |No variants| R[Generate SKU] --> C
C[Validate & save data]
C --> |Not a draft| D[Create a pending-product task]
C --> |Has variants| E[Create options] & Q[Create variants]
Q --> G
C --> |Has prices| F[Create prices]
F --> S
end

subgraph "2. Create Variants"
G[For each variant]
G --> H[Build variant]
H --> |Not a draft| J[Generate SKU, status = PENDING]
H --> K[status = DRAFT]
G --> L[Build option values]
L --> M[Get option codes]
M --> |For each option code| N[Build option value]
G --> |Has prices| O[Create prices]
O --> S
J --> P[Create a pending-variant task]
end