Skip to content

feat(integrations): add Bookings & Appointments for WooCommerce - #224

Open
RishadAlam wants to merge 7 commits into
mainfrom
feat/bookings-and-appointments-for-woocommerce-extraction
Open

RishadAlam wants to merge 7 commits into
mainfrom
feat/bookings-and-appointments-for-woocommerce-extraction

Conversation

@RishadAlam

Copy link
Copy Markdown
Member

Description

Adds the Free-side action integration for Bookings & Appointments for WooCommerce (PluginHive) — the Controller (authorize + refresh-dropdown endpoints), RecordApiHelper (one hook per write action, all dispatched to Pro), Routes, and the full action wizard UI (staticData, field map, IntegLayout with product/customer/asset/status selects, main + Edit components). Registers the integration in NewInteg.jsx, EditInteg.jsx, IntegInfo.jsx, SelectAction.jsx, and AllTriggersName.php.

Motivation & Context

Extracted from an existing bit-pi integration covering PluginHive's Bookings & Appointments for WooCommerce plugin, to bring the same booking automation (create/update/cancel/delete bookings, reschedule, notes, assets, participants, status emails) to Bit Integrations Free + Pro. All write actions are Pro-gated; Free only fires the hook and renders the config UI.

Related Links: (if applicable)

Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • 💥 Breaking change
  • 📚 Documentation update
  • ⚡ Improvement
  • 🔄 Code refactor

Key Changes

Integrations

  • Added BookingsAndAppointmentsForWoocommerceController — plugin-active check, authorize endpoint, and refreshProducts/refreshCustomers/refreshAssets dropdown fetchers
  • Added RecordApiHelper — one hook per write action (bit_integrations_bookings_and_appointments_for_woocommerce_*), LogHandler::save on every path
  • Added Routes.php — authorize + 3 refresh routes
  • Added trigger registry entry in AllTriggersName.php

Frontend

  • Added staticData.js — 14 action modules, per-action field maps, fixed status/notify-mode option sets
  • Added BookingsAndAppointmentsForWoocommerceIntegLayout.jsx — pro-gated action select, product/customer/asset dropdowns, status/notify-mode selects, field mapping
  • Added BookingsAndAppointmentsForWoocommerce.jsx / EditBookingsAndAppointmentsForWoocommerce.jsx — create + edit wizards
  • Added app icon and lazy-loaded entries in NewInteg.jsx, EditInteg.jsx, IntegInfo.jsx, SelectAction.jsx

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • Tests added/updated
  • Documentation updated if needed
  • README updated if needed

Changelog

  • New Actions :
    • Bookings & Appointments for WooCommerce Integration & Automation

Controller (isExists/authorize + 3 refresh* dropdown fetchers for
products/customers/assets), RecordApiHelper (real switch, one case per
write action, LogHandler::save on every path), Routes. Free only fires
bit_integrations_bookings_and_appointments_for_woocommerce_* hooks —
all real logic lives in Pro. Also registers the trigger side in
AllTriggersName.php.
staticData.js (14 modules, per-action field maps, fixed status/notify-mode
option sets, needsProduct/needsCustomer/needsAsset/needsStatus/
needsNotifyMode groupings), CommonFunc.js, FieldMap.jsx, pro-gated
Authorization.jsx + IntegLayout.jsx (product/customer/asset dropdowns,
status/notify-mode selects), main + Edit wizard components, icon.

Registers in NewInteg/EditInteg/IntegInfo/SelectAction. Required target
identifier (item_id) stays in the field map on every action per rule 13;
product_id/customer_id/asset_id are config-choice dropdowns since
create_booking has no existing target record (mirrors FluentCart's
create_order selectedCustomer/selectedProduct precedent).
… for improved readability and maintainability
…phic for icon

Replaces the cropped calendar detail with the entire product graphic
(logo + illustrations + title text), resized to 128x128 - 4.8KB.
…o 'Bookings And Appointments For Woocommerce'
…tmentsForWoocommerce' to 'Bookings and Appointments for Woocommerce' across multiple components.
Copilot AI lite review requested due to automatic review settings September 17, 2026 10:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown

🔍 WordPress Plugin Check Report

⚠️ Status: Passed with warnings

📊 Report

🎯 Total Issues ❌ Errors ⚠️ Warnings
2 0 2

⚠️ Warnings (2)

📁 readme.txt (2 warnings)
📍 Line 🔖 Check 💬 Message
0 mismatched_plugin_name Plugin name "Bit integrations - Form Integration, Webhook, Spreadsheets, CRM, LMS & Email Automation" is different from the name declared in plugin header "Bit Integrations".
0 readme_parser_warnings_trimmed_section_changelog The "Changelog" section is too long and was truncated. A maximum of 5000 characters is supported.

🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check

…utorialLinks

No entry existed for this integration; the action doc is now published.
Copilot AI review requested due to automatic review settings September 17, 2026 11:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants