From de317675a8069b747cb253ba3e2b5dc394ca36ef Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sat, 18 Jul 2026 21:44:51 +0000
Subject: [PATCH] =Base Integrations mainly done - doing a test with setting up the Square integration to follow
---
inc/integrations/SyncHelpers.php | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/inc/integrations/SyncHelpers.php b/inc/integrations/SyncHelpers.php
index f2d0ca0..778902a 100644
--- a/inc/integrations/SyncHelpers.php
+++ b/inc/integrations/SyncHelpers.php
@@ -1,6 +1,9 @@
<?php
namespace JVBase\integrations;
+use JVBase\managers\queue\executors\IntegrationExecutor;
+use JVBase\managers\queue\mergers\DefaultMerger;
+use JVBase\managers\queue\TypeConfig;
use JVBase\meta\Meta;
use WP_Query;
@@ -20,6 +23,7 @@
protected static string $syncCustomer;
protected static string $import;
+
protected function setQueueTypes():void
{
self::$syncTo = $this->service_name.'_sync_to';
@@ -141,4 +145,47 @@
]);
return is_wp_error($get) || empty($get) ? false : [$get[0], 'user'];
}
+
+ public function registerQueueTypes():void
+ {
+ if (empty($this->syncTaxonomies) && empty($this->syncPostTypes)) {
+ return;
+ }
+ $queue = JVB()->queue();
+ $executor = new IntegrationExecutor();
+
+ $queue->registry()->register(self::$syncTo, new TypeConfig(
+ mergeable: new DefaultMerger('items'),
+ executor: $executor,
+ chunkKey: 'items',
+ chunkSize: 50,
+ maxRetries: 3,
+ ));
+
+ if ($this->canSync['delete']) {
+ $queue->registry()->register(self::$deleteFrom, new TypeConfig(
+ mergeable: new DefaultMerger('external_ids'),
+ executor: $executor,
+ chunkKey: 'external_ids',
+ chunkSize: 200,
+ maxRetries: 2
+ ));
+ }
+
+ $queue->registry()->register(self::$syncFrom, new TypeConfig(
+ executor: $executor,
+ maxRetries: 3
+ ));
+
+ $this->registerAdditionalQueueTypes($executor);
+ }
+ protected function registerAdditionalQueueTypes(IntegrationExecutor $executor):void
+ {
+ //Empty. Integration extensions can register additional operation types from here.
+ }
+
+ /**
+ * @return void Sets the $this->contentTypes
+ */
+ abstract protected function setContentTypes():void;
}
--
Gitblit v1.10.0