elsa-workflows / elsa-workflows/elsa-extensions
Add WooCommerce Integration
- Dominant language
- C#
- Stars
- 49
- Forks
- 48
- Avg merge
- 21h 35m
- Merged PRs (30d)
- 20
Description
This issue tracks the implementation of an integration for **WooCommerce** in Elsa Workflows. The module should allow workflows to interact with WooCommerce, supporting product management, orders, customers, and event monitoring.
## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.WooCommerce`
- [ ] Implement **Workflow Activities**:
- [ ] **CreateProductAttributeTermsBatch** - Batch creates multiple product attribute terms.
- [ ] **CreateProductAttributesBatch** - Batch creates multiple product attributes.
- [ ] **CreateProductsBatch** - Batch creates multiple products.
- [ ] **CreateCoupon** - Creates a new coupon.
- [ ] **CreateCustomer** - Creates a new customer.
- [ ] **CreateProduct** - Creates a new product.
- [ ] **CreateProductAttribute** - Creates a new product attribute.
- [ ] **CreateProductAttributeTerm** - Creates a new product attribute term.
- [ ] **CreateProductCategory** - Creates a new product category.
- [ ] **CreateProductVariation** - Creates a new product variation.
- [ ] **CreateOrder** - Creates a new order.
- [ ] **CreateOrderNote** - Creates a new note for an order.
- [ ] **DeleteProductsBatch** - Batch deletes multiple products.
- [ ] **DeleteCoupon** - Deletes a specified coupon.
- [ ] **DeleteCustomer** - Deletes a specified customer.
- [ ] **DeleteProduct** - Deletes a specified product.
- [ ] **DeleteProductAttribute** - Removes a product attribute and its terms.
- [ ] **DeleteProductAttributeTerm** - Removes a specific product attribute term.
- [ ] **DeleteProductCategory** - Removes a specific product category.
- [ ] **DeleteProductVariation** - Deletes a specified product variation.
- [ ] **DeleteOrder** - Deletes a specified order.
- [ ] **DeleteOrderNote** - Deletes a specified order note.
- [ ] **GetCoupon** - Retrieves a coupon by its ID.
- [ ] **GetCustomer** - Retrieves a customer by its ID.
- [ ] **GetProduct** - Retrieves a product by its ID.
- [ ] **GetProductAttribute** - Retrieves a specific product attribute.
- [ ] **GetProductAttributeTerm** - Retrieves a specific product attribute term.
- [ ] **GetProductCategory** - Retrieves attributes for a specific product category.
- [ ] **GetProductVariation** - Retrieves a product variation by its ID.
- [ ] **GetOrder** - Retrieves an order by its ID.
- [ ] **GetOrderNote** - Retrieves an order note by its ID.
- [ ] **ListOrderNotes** - Retrieves all notes from an order.
- [ ] **ListProductAttributeTerms** - Retrieves a list of product attribute terms.
- [ ] **ListProductAttributes** - Retrieves a list of product attributes.
- [ ] **ListProductVariations** - Retrieves all variations from a product.
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **NewEvent** - Triggers when an order, customer, coupon, or product is created, updated, or deleted.
- [ ] **SearchProductCategories** - Retrieves a list of product categories.
- [ ] **SearchCoupon** - Finds a coupon.
- [ ] **SearchCustomer** - Finds a customer.
- [ ] **SearchProduct** - Finds a product.
- [ ] **SearchOrder** - Finds an order.
- [ ] **UpdateProductsBatch** - Batch updates multiple products.
- [ ] **UpdateCoupon** - Modifies a coupon.
- [ ] **UpdateCustomer** - Modifies a customer.
- [ ] **UpdateProduct** - Modifies a product.
- [ ] **UpdateProductAttribute** - Updates a product attribute.
- [ ] **UpdateProductAttributeTerm** - Updates a product attribute term.
- [ ] **UpdateProductCategory** - Updates a product category.
- [ ] **UpdateProductVariation** - Modifies a product variation.
- [ ] **UpdateOrder** - Modifies an order.
- [ ] **UpdateOrderStatus** - Modifies an order status (requires Order Status Manager plugin).
- [ ] **WatchCoupons** - Triggers when a new coupon is created.
- [ ] **WatchCustomers** - Triggers when a new customer is created.
- [ ] **WatchOrders** - Triggers when a new order is created.
- [ ] **WatchProducts** - Triggers when a new product is created.
- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)
## **References**
- 📖 [WooCommerce API Docs](https://woocommerce.github.io/woocommerce-rest-api-docs/)
- 🛠️ [WooCommerce Developer Resources](https://developer.woocommerce.com/)
## **Notes**
- This should follow the standard structure used for Elsa Integrations.
- The integration should support authentication via API keys or OAuth.
## **Contributor Guidelines**
If you're interested in working on this issue:
1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.
Contributor guide
Research direction
Start by reviewing the standard Elsa Integrations structure and the requested `Elsa.Integrations.WooCommerce` module, then consult the linked WooCommerce API documentation for the listed activities and authentication requirements. Done means the module, requested workflow activities, unit tests, and `README.md` documentation are implemented and covered consistently with the repository’s integration conventions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100