SyncKube Pro - Products Sync for Shopify
Version 1.0.0
Introduction
Support: SakuraLeaf Support
Product: SyncKube Pro - Products Sync for Shopify
Note! This documentation applies to both the free and pro plugin versions.
This documentation will help you install, configure, and customize SyncKube Pro. Please read through the documentation carefully to understand how this plugin works and how to get the most out of its features.
SyncKube Pro seamlessly synchronizes your Shopify store products with WordPress, allowing you to showcase your products on your WordPress site while maintaining Shopify's secure checkout and inventory management.
Key Benefits
- One-Click Sync: Import all your Shopify products into WordPress with a single click
- Collection Management: Select specific collections to sync and display
- Advanced Filtering: Powerful frontend filters for collections, price range, colors, sizes, and more
- Shopify Checkout: Customers checkout directly through Shopify for secure transactions
- Real-Time Updates: Webhook support keeps products synchronized automatically
- Batch Processing: Efficient sync system handles large product catalogs
- Customizable Display: Multiple shortcodes for different product layouts
- Mobile Responsive: Beautiful product displays on all devices
Requirements
In order to work properly, the plugin requires the following:
- WordPress 6.4 or higher
- PHP 8.2 or higher
- Active Shopify account with custom app configured
Installation
SyncKube Pro requires setup in both WordPress and Shopify. Follow these steps carefully:
Part 1: WordPress Installation
- Log in to WordPress Admin: Navigate to Plugins > Add New > Upload Plugin
- Upload the ZIP file: Click "Choose File" and select the shopypress-pro.zip file
- Install the plugin: Click "Install Now" and wait for the installation to complete
- Activate the plugin: Click the "Activate" button
Part 2: Shopify App Configuration
You need to create a custom app in your Shopify admin to allow SyncKube Pro to access your products.
- Log in to Shopify Admin: Go to your Shopify store admin panel
- Navigate to Apps: Click Settings > Apps and sales channels
- Develop apps: Click "Develop apps" button (or "Manage app development" if apps exist)
- Enable custom app development: If prompted, enable custom app development for your store
- Create an app: Click "Create an app" button
- Name your app: Enter "SyncKube Pro" or any name you prefer
- App URL: Enter your website URL, or any URL, it does not matter.
- Embed app in Shopify admin: Uncheck Embed app in Shopify admin.
- Configure API scopes: Click "Configure Admin API scopes" and select (or paste) the following:
- Save configuration: Click "Release"
- Copy credentials: Once created, from the left menu > click Settings:
- API key (Client ID): Copy this value
- API secret key (Client Secret): Click "Reveal" and copy this value
- Install the app: from the left menu > click Home
- From the right menu Distribution > Click select distribution method
- Choose Custom distribution
- Enter your Shopify Domain (ex: shop1.myshopify.com)
- Uncheck Allow multi-store install for one Plus organization
- Click Generate link
- Copy the generated link
- From the left menu click > API access requests > Storefront API > click Enable Storefront API
- Paste the generated link above into a new browser tab, accept the permissions (scopes) and click install
Part 3: Connect WordPress to Shopify
- Navigate to SyncKube Settings: In WordPress admin, go to Settings > SyncKube Settings
- Enter Shop Domain: Enter your Shopify store domain (e.g.,
yourstore.myshopify.com) - Enter Client ID: Paste the API key from Shopify
- Enter Client Secret: Paste the API secret key from Shopify
- Save settings: Click "Save Settings"
Note! After saving your Shopify credentials, you must select collections and sync products before products will appear on your site. See the Collections Management and Product Synchronization sections for details.
Main Settings
Once you have installed and activated the plugin, navigate to Settings > SyncKube Settings to access the settings page.
The settings page is organized into five main tabs:
- Settings: Configure your Shopify connection and URL rewrite settings
- Collections: Select which Shopify collections to import and manage their order
- Product Sync: Start product synchronization and monitor progress
- Filters: Configure which filters appear on the frontend and their display order
- Shortcodes: View shortcode documentation and available parameters
Settings Tab
The Settings tab contains the core configuration options:
shopify-product)collection)Tip! You can customize the URL structure of your product pages by changing the rewrite slugs. For example, changing "shopify-product" to "shop" will make your product URLs look like yoursite.com/shop/product-name instead of yoursite.com/shopify-product/product-name.
Collections Management
Collections allow you to organize your products into categories. SyncKube Pro lets you select which Shopify collections to import into WordPress.
Fetching Collections
To see your available collections:
- Navigate to Settings > SyncKube Settings > Collections tab
- Click the "Fetch Collections" button
- Wait for the collections to load from your Shopify store
Selecting Collections to Import
After fetching collections, you can choose which ones to sync:
- Review the list of available collections
- Check the boxes next to the collections you want to import
- Uncheck any collections you don't want to include
- Click "Save Collection Selection"
Only products from the selected collections will be imported during synchronization.
Reordering Collections
You can change the display order of collections:
- Click and drag a collection to move it up or down in the list
- The order you set here will be reflected in frontend filters
- Changes are saved automatically when you drag and drop
Collection Hierarchy
SyncKube Pro supports hierarchical collections. Parent-child relationships are maintained automatically, allowing for organized product categorization.
Note! You must complete product synchronization after selecting collections. Simply selecting collections doesn't import products - you need to run the sync process (see Product Synchronization section).
Product Synchronization
Product synchronization is the process of importing your Shopify products into WordPress. This creates WordPress posts for each product with all their data, images, and variations.
Understanding the Sync Process
SyncKube Pro uses a 4-phase synchronization process designed to handle large stores efficiently:
- Phase 1: Shop Initialization - Fetches your shop's currency settings and basic configuration
- Phase 2: Collections - Retrieves all product IDs from your selected collections
- Phase 3: Products - Processes products in batches (20 products per batch) to prevent memory issues and timeouts
- Phase 4: Cleanup - Removes any orphaned products that no longer exist in Shopify and cleans up empty collections
The sync system uses intelligent time management that consumes only 70% of your PHP max_execution_time, ensuring the process can resume automatically if needed.
Starting Initial Sync
To sync your products for the first time:
- Ensure you have configured your Shopify credentials (Settings tab)
- Ensure you have selected collections to import (Collections tab)
- Navigate to Settings > SyncKube Settings > Product Sync tab
- Click the "Start Sync" button
- Monitor the progress bar and phase indicators
- Wait for the completion message
Note! For large catalogs (1000+ products), synchronization may take several minutes. The process runs in batches and will automatically resume if it reaches the PHP execution time limit. You can safely leave the page and return later - the sync will continue in the background via WordPress cron.
Monitoring Sync Progress
During synchronization, you'll see:
- Current Phase: Which of the 4 phases is currently running
- Progress Bar: Visual indicator of completion percentage
- Product Count: Number of products processed so far
- Status Messages: Real-time updates about what's happening
Resume Capability
If sync is interrupted (browser closed, timeout, etc.), it will automatically resume:
- WordPress cron runs every minute and checks for incomplete syncs
- If an incomplete sync is detected, it resumes from where it left off
- The sync state is persisted, so no progress is lost
- You can also manually click "Start Sync" again to resume immediately
Reset Sync
If you encounter issues or want to start fresh:
- Click the "Reset Sync" button
- This clears the sync state and lock file
- You can then start a new sync from the beginning
Important! Resetting sync doesn't delete your existing products - it only clears the sync progress state. To re-import products, click "Start Sync" after resetting.
Filter Configuration
The Filters tab allows you to control which filters appear in your frontend product search interface and in what order.
Available Filter Types
SyncKube Pro supports the following filter types:
- Collections: Hierarchical collection filter with parent/child relationships and product counts
- Price Range: Slider to filter by minimum and maximum price
- Color: Filter by product color attributes
- Size: Filter by product size variations
- Vendor: Filter by product vendor/brand
- Any available product option
Managing Filters
Navigate to Settings > SyncKube Settings > Filters tab to configure your filters:
- Enable/Disable filters: Use checkboxes to show or hide specific filters on the frontend
- Drag-and-drop to reorder: Click and drag filters to change their display order
- Set display limits: Configure how many items show initially (collections and vendors)
- Enable Quick View: Toggle the Quick View modal feature on or off
- Save configuration: Click "Save Filter Configuration" to apply changes
Filter Display Limits
You can set limits for how many filter items display before "Show All" expansion:
- Collection Limit: Maximum number of top-level collections shown initially
- Vendor Limit: Maximum number of vendors shown before "Show All"
Tip! Limit the number of visible filters to avoid overwhelming users. Focus on the most relevant filters for your product catalog. You can always let users expand to see more options.
Quick View Setting
The Quick View feature allows customers to preview product details in a modal popup:
- Enable to show "Quick View" button on product cards
- Disable to only allow viewing products on their dedicated pages
- Quick View displays product images, description, variants, and add to cart
Shortcode Usage & Configuration
SyncKube Pro provides multiple shortcodes to display products and shopping cart functionality on your WordPress pages.
Cart Toggle Shortcode: [synckube_cart_toggle]
Displays a shopping cart icon with quantity badge that opens the cart modal.
[synckube_cart_toggle]
Usage:
- Add to any page, post, or widget area
- Typically placed in header or navigation
- Shows real-time cart item count
- Opens Shopify cart modal on click
- Note! You can add the cart badge to the menu by adding a custom link (no url, just #) and paste the shortcode as label
Basic Product Grid: [synckube_all_products_grid]
Displays products in a responsive grid layout with basic pagination.
[synckube_all_products_grid products_per_page="12"]
Available Attributes:
Features:
- Responsive grid layout
- Product images and titles
- Price display (ranges for variable products)
- Collection badges
- Standard WordPress pagination
- Hover effects with "View" button
Usage Examples:
[synckube_all_products_grid products_per_page="24"]
Shows 24 products per page, perfect for a main shop page.
[synckube_all_products_grid products_per_page="8"]
Shows 8 products per page, ideal for mobile or sidebar display.
Advanced Product Grid with Filters: [synckube_all_products_grid_with_filters]
Displays products with advanced filtering sidebar and AJAX-powered search.
[synckube_all_products_grid_with_filters
products_per_page="12"
load_more_products_no="12"
collection_limit="5"
vendor_limit="5"
]
Available Attributes:
Features:
- Sidebar filters (desktop) / modal filters (mobile)
- Collection hierarchy with expand/collapse (You should set collections parent/child in WordPress)
- Price range slider
- Color, size, vendor, options etc
- Real-time AJAX filtering (no page reload)
- "Load More" pagination
- Filter count badges
- Quick View modal (if enabled)
- Responsive design
Usage Examples:
[synckube_all_products_grid_with_filters products_per_page="24"]
Shows 24 products initially with all default filter settings.
[synckube_all_products_grid_with_filters
products_per_page="9"
load_more_products_no="9"
collection_limit="10"
]
Shows 9 products at a time with up to 10 collections visible in filters.
Note! You can use multiple instances of the shortcodes on different pages with different parameters to customize the product display for different contexts (e.g., main shop page vs category pages).
Frontend Product Display
SyncKube Pro provides beautiful, responsive product displays on the frontend of your WordPress site.
Product Grid Layouts
When using product grid shortcodes, products are displayed in a responsive grid featuring:
- Product Images: High-quality product photos with hover effects
- Product Names: Clickable titles that link to product detail pages
- Pricing: Clear price display with price ranges for variable products
- Collection Badges: Tags showing which collections the product belongs to
- "View" Button: Prominent call-to-action on hover
- Responsive Layout: Automatically adjusts columns based on screen size
Advanced Filtering Interface
The advanced product grid includes a powerful filtering system:
Desktop View:
- Left Sidebar: Filters displayed in collapsible sidebar
- Multiple Selection: Apply multiple filters simultaneously
- Clear Filters: Reset button to clear all active filters
- Filter Counts: Each filter shows number of matching products
Mobile View:
- Filter Button: Tap to open filters in modal overlay
- Modal Filters: Full-screen filter interface
- Apply Button: Apply filters and close modal
- Touch Optimized: Easy to use on mobile devices
Single Product Pages
Each product has a dedicated page with comprehensive details:
Layout:
- Two-Column Design: Image gallery on left, product info on right
- Swiper Gallery: Main image with thumbnail navigation below
- Product Title: Clear, prominent heading
- Price Display: Formatted with your shop's currency
- Product Description: Full product details and information
Product Variants:
For products with variants (different colors, sizes, etc.), the page includes:
- Variant Selector: Powered by Shopify Web Components
- Dynamic Pricing: Price updates based on selected variant
- Stock Status: Shows availability for each variant
- Variant Images: Images update when variants are selected
Product Actions:
- "Add to Cart" Button: Adds product to Shopify cart
- "Buy Now" Button: Direct checkout for quick purchases
- Collection Tags: Links to collection archive pages
Quick View Modal (Optional)
When enabled, products display a "Quick View" button that opens a modal with:
- Product Images: Gallery with thumbnails
- Product Info: Title, price, description
- Variant Selection: Choose options without leaving the page
- Add to Cart: Purchase directly from the modal
- Close Button: Return to product browsing
Collection Archives
Products are automatically organized by collection:
- Collection URLs:
yoursite.com/collection/collection-name - Automatic Archives: WordPress generates archive pages for each collection
Tip! All Shopify functionality (cart, checkout, inventory) remains in Shopify - WordPress just displays the products. This means you get WordPress's design flexibility with Shopify's e-commerce power.
Shopping Cart Integration
SyncKube Pro integrates Shopify's native shopping cart and checkout system using Shopify Web Components.
How It Works
The plugin uses Shopify's official Web Components to provide:
- Cart Management: Add, update, and remove items from cart
- Real-Time Updates: Cart quantity updates instantly across the site
- Secure Checkout: Customers checkout directly through Shopify's secure system
- Inventory Sync: Stock levels always reflect Shopify's current inventory
Cart Display
The shopping cart icon can be placed anywhere on your site using the shortcode:
[synckube_cart_toggle]
Cart Icon Features:
- Quantity Badge: Shows total number of items in cart
- Click to Open: Opens cart modal overlay
- Live Updates: Badge updates when items are added/removed
Cart Modal
When customers click the cart icon, a modal displays:
- Cart Items: List of all products added to cart
- Product Images: Thumbnails of each cart item
- Quantities: Adjust quantity for each item
- Prices: Individual and total pricing
- Remove Items: Delete products from cart
- "Checkout" Button: Proceed to Shopify checkout
Add to Cart Functionality
Products can be added to cart from multiple locations:
- Single Product Pages: "Add to Cart" and "Buy Now" buttons
- Quick View Modal: Add products without leaving the grid
- Variant Selection: Choose options before adding to cart
Checkout Process
When customers click "Checkout":
- They are redirected to your Shopify store's secure checkout
- Cart contents are transferred to Shopify automatically
- Customers complete payment through Shopify's trusted system
- Orders appear in your Shopify admin for fulfillment
Shopify Web Components
The plugin automatically loads Shopify Web Components from:
https://cdn.shopify.com/storefront/web-components.js
These components handle:
- Product variant selection
- Cart state management
- Add to cart functionality
- Checkout initiation
Important! All transactions are processed through Shopify's secure checkout. SyncKube Pro never handles payment information - it simply displays products and facilitates adding them to your Shopify cart.
Webhooks Configuration (Pro version)
Webhooks allow Shopify to automatically notify WordPress when products change, keeping your site synchronized in real-time.
What Are Webhooks?
Webhooks are automated notifications sent from Shopify to WordPress when:
- Products are created: New products added in Shopify appear in WordPress
- Products are updated: Changes to titles, prices, images, etc. sync automatically
- Products are deleted: Removed products are deleted from WordPress
Registering Webhooks
Webhooks are being registered when you save the app's credentials for the first time or when those have been changed (you have created a different custom app or the credentials changed).
Webhook Endpoint
SyncKube Pro automatically creates a webhook endpoint at:
/wp-json/shopypress/v1/shopify/webhook
This endpoint receives notifications from Shopify and processes product updates in the background.
Supported Webhook Events
The plugin registers webhooks for these Shopify events:
products/create- New product created in Shopifyproducts/update- Existing product modified in Shopifyproducts/delete- Product removed from Shopify
How Webhooks Work
- Change in Shopify: You create, update, or delete a product in your Shopify admin
- Shopify Sends Notification: Shopify sends a webhook to your WordPress site
- WordPress Receives: SyncKube Pro receives the webhook at the REST API endpoint
- Product Updates: The plugin updates the corresponding product in WordPress
- Site Reflects Change: Your WordPress site now shows the updated product
Webhook Security
Webhooks are secured using:
- HMAC Verification: Each webhook is signed by Shopify
- Secret Validation: Only webhooks with valid signatures are processed
- HTTPS Required: Webhooks only work on secure HTTPS sites
Note! Webhooks require your WordPress site to be accessible from the internet. Local development sites or sites behind firewalls may not receive webhooks. In such cases, use manual sync instead.
Troubleshooting Webhooks
If webhooks aren't working:
- Ensure your site uses HTTPS (Shopify requires secure connections)
- Check that your WordPress site is publicly accessible
Performance & Optimization
SyncKube Pro is designed for exceptional performance, even with large product catalogs.
Batch Processing
The plugin uses intelligent batch processing to handle large product catalogs:
- Batch Size: 20 products processed per batch
- Memory Efficient: Products are processed incrementally to avoid memory exhaustion
- Prevents Timeouts: Each batch respects PHP execution time limits
- Resume Capability: If interrupted, sync resumes from the last completed batch
Time-Based Execution Management
SyncKube Pro monitors execution time to prevent timeouts:
- 70% Rule: Uses only 70% of PHP max_execution_time
- Time Tracking: Monitors elapsed time during sync
- Early Exit: Stops before timeout and saves state
- Auto-Resume: WordPress cron resumes the sync automatically
Cron-Based Background Sync
Large syncs run in the background:
- Heartbeat Schedule: Cron runs every minute
- Lock File: Prevents concurrent syncs from running
- State Persistence: Progress saved between cron runs
- User-Friendly: Users can navigate away while sync continues
REST API Filtering
The advanced product grid uses REST API for filtering:
- AJAX Requests: Filters update without page reload
- Efficient Queries: Only matching products are retrieved
- Pagination: Load more products on demand
Handling Large Catalogs
For stores with thousands of products:
- Selective Sync: Choose specific collections instead of syncing entire catalog
- Server Resources: Consider upgrading hosting for very large catalogs (10,000+ products)
Note! SyncKube Pro has been tested with stores containing thousands of products. The batch processing and resume capability ensure reliable sync even for large catalogs.
Auto-Sync
SyncKube Pro includes automatic synchronization capabilities to keep your WordPress site updated with Shopify products.
AutoSync is being triggered when a product change event happens in Shopify (products/create, products/update, products/delete)
Note! Autosync will be triggered after 60 seconds since the last Shopify webhook was triggered. This will ensure nothing will fail in case hundreds or thousands of products have been updated in Shopify (Example: bulk price edit, offer a BlackFriday discount)
How Auto-Sync Works
The cron job performs the following tasks:
- Check for Incomplete Sync: Looks for sync processes that didn't complete
- Resume Sync: If an incomplete sync is found, resume it automatically
- Lock File Check: Ensures no concurrent syncs are running
- Process Next Batch: Syncs the next batch of products
- Save State: Persists progress for next cron run
Developer Resources
SyncKube Pro provides REST API endpoints and AJAX actions for developers to extend and customize functionality.
REST API Endpoints
Product Filter Endpoint
POST /wp-json/shopypress/v1/products/filterRequest Parameters:
collections(array) - Array of collection IDs to filter byfilters(object) - Attribute filters (e.g.,{"color": ["Red", "Blue"], "size": ["Large"]})priceRange(object) - Min/max price (e.g.,{"min": 10, "max": 100})offset(int) - Pagination offsetlimit(int) - Number of products to return
Response: JSON array of product objects with images, prices, variants, and metadata
Shopify Webhook Endpoint
POST /wp-json/shopypress/v1/shopify/webhookAJAX Actions
The following WordPress AJAX actions are available:
shopypress_fetch_collections- Fetch collections from Shopifyshopypress_save_collection_selection- Save selected collectionsshopypress_save_collection_order- Reorder collectionsshopypress_start_product_sync- Start/resume product syncshopypress_get_sync_status- Get current sync progressshopypress_reset_product_sync- Reset sync stateshopypress_load_filter_config- Load filter configurationshopypress_save_filter_config- Save filter configurationshopypress_register_webhooks- Register Shopify webhooks
Custom Post Type
shopypress-productshopify-product (customizable)Taxonomy
product-collectioncollection (customizable)Product Meta Fields
Products store the following meta data:
_shopify_product_id- Shopify product ID (string)_shopify_handle- Product URL handle_shopify_featured_media- Featured image data (JSON)_shopify_images- All product images (JSON array)_shopify_variants- Product variants (JSON array)_shopify_options- Product options like Size, Color (JSON array)_shopify_price_min- Minimum product price (float)_shopify_price_max- Maximum product price (float)
External Services
SyncKube Pro connects to the following external services:
Shopify Admin API
- API Version: 2025-10
- Protocol: GraphQL
- Purpose: Fetch products, collections, and shop data
- Authentication: OAuth 2.0 (Client Credentials)
Shopify Storefront API
- Purpose: Shopping cart and checkout functionality
- Integration: Via Shopify Web Components
Shopify Web Components CDN
- URL:
https://cdn.shopify.com/storefront/web-components.js - Purpose: Cart, product variant selection, and checkout UI
Third-Party Libraries
SyncKube Pro includes the following open-source libraries:
- Bootstrap v5.3.8 - Admin UI framework
License: MIT License
Website: https://getbootstrap.com - Toastr v2.1.4 - Notification library
License: MIT License
Website: https://github.com/CodeSeven/toastr - Swiper - Image gallery slider
License: MIT License
Website: https://swiperjs.com - Shopify Web Components - Cart and checkout integration
Copyright: Shopify Inc.
Website: Shopify Web Components
Plugin Architecture
SyncKube Pro follows modern WordPress development practices:
- PSR-4 Autoloading: Namespace-based class loading via Composer
- MVC-Inspired: Models, Views, Controllers, Services separation
- Hook-Based: All WordPress hooks registered via HooksFactory
- Dependency Injection: Services use singleton patterns
- Security First: Nonce verification, capability checks, input sanitization
Note! Always test customizations on a staging site before deploying to production. Follow WordPress coding standards for compatibility and security.
Changelog
Version 1.0.0 - Initial Release (Sat 20 Dec - 2025)
- One-click product synchronization from Shopify to WordPress
- Collection management with selection and ordering
- 4-phase sync system (Shop Init, Collections, Products, Cleanup)
- Batch processing for large catalogs (5 products per batch)
- Time-aware execution management (70% of PHP max_execution_time)
- Resume capability for interrupted syncs
- WordPress cron-based background sync (heartbeat every minute)
- Lock file mechanism to prevent concurrent syncs
- Advanced filtering system with multiple filter types
- Filter configuration interface with drag-and-drop ordering
- Quick View modal for products
- Three shortcodes for different display layouts:
- [synckube_cart_toggle]
- [synckube_all_products_grid]
- [synckube_all_products_grid_with_filters]
- Responsive product grid layouts
- Single product pages with Swiper image gallery
- Shopping cart integration via Shopify Web Components
- Shopify checkout integration
- Webhook support for real-time product updates
- REST API endpoint for product filtering
- AJAX-powered filtering without page reload
- "Load More" pagination for product grids
- Product variant support with dynamic pricing
- Collection taxonomy with hierarchical support
- Custom post type for products with customizable URL slugs
- OAuth 2.0 authentication with Shopify Admin API
- GraphQL integration with Shopify API 2025-10
- Mobile-responsive design for all frontend components
- Admin settings panel with 5 tabs (Settings, Collections, Product Sync, Filters, Shortcodes)
- Comprehensive error handling and logging
- Security features: nonce verification, capability checks, input sanitization
- State persistence for sync process
- Cleanup of orphaned products and empty collections
- Currency formatting from Shopify shop settings
- Filter count badges showing number of matching products
- "Show All" expansion for long filter lists
- Sidebar filters (desktop) / modal filters (mobile)
- PSR-4 autoloading with modern PHP architecture
Third-Party Libraries
SyncKube Pro includes the following open-source libraries, used in compliance with their respective licenses:
- Bootstrap v5.3.8 - Frontend component library
License: MIT License
Website: https://getbootstrap.com
Copyright: The Bootstrap Authors - Toastr v2.1.4 - Notification library
License: MIT License
Website: https://github.com/CodeSeven/toastr
Copyright: John Papa, Hans Fjällemark, and Tim Ferrell - Swiper - Mobile touch slider
License: MIT License
Website: https://swiperjs.com - Shopify Web Components - Cart and checkout components
Copyright: Shopify Inc.
Website: Shopify Web Components
Note! Future updates will be documented here. Check this section regularly for new features, improvements, and bug fixes.