Stock & Price Synchronization

Official guide · English · Version 9c253d0cf11816df

Synchronization keeps your product data, stock levels, and prices consistent across all connected e-commerce platforms. This page explains how sync works, the different sync types, pricing rules, and how to monitor sync operations.

How Sync Works

Synchronization can happen in two directions:

Direction Description
Push Data flows from your DirectSale catalog out to the connected external platform. For example, pushing stock updates your WooCommerce store with the latest quantities from your catalog.
Pull Data flows from the external platform into DirectSale. For example, pulling orders imports new orders placed on Shopify into your dashboard.

Sync Triggers

Sync can be triggered in three ways:

  1. Manual -- Click the Sync button on a platform card in the Multichannel Overview, or use per-listing push actions.
  2. Bulk -- Use the Push Stock or Push Prices buttons on a platform card to update all listings at once.
  3. Webhook -- When webhooks are registered, the external platform automatically notifies your system of changes (new orders, stock updates, etc.).

Info: Webhooks provide near-real-time synchronization. Without webhooks, you rely on manual syncs or scheduled operations to keep data current.


Sync Types

Full Sync

A full sync, triggered by the Sync button on a platform card, performs multiple operations at once:

  • Sync Stock -- Pushes current stock quantities to the external platform.
  • Sync Prices -- Pushes current prices (respecting pricing rules) to the external platform.
  • Pull Orders -- Imports new orders from the external platform.

Push Stock

Pushes only stock quantities to the external platform. Useful after bulk inventory updates.

  • Available per-listing (Push Product action) or as a bulk operation across all listings on a connection (Push Stock button on the platform card).
  • Safety stock is automatically subtracted before pushing.

Push Prices

Pushes only pricing information to the external platform. Useful after updating pricing rules or catalog prices.

  • Available per-listing (Push Price action) or as a bulk operation (Push Prices button on the platform card).
  • Platform prices are recalculated based on the configured pricing rule before pushing.

Push Product

Pushes the complete product data to the external platform, including:

  • Product title and description
  • Images
  • Price
  • Stock quantity
  • Other product attributes

If the product does not exist on the external platform yet, it is created. If it already exists (has an external listing ID), it is updated.


Pricing Rules

Each listing can have a pricing rule that determines how the platform price is calculated from your catalog price.

Available Rules

Rule Input Calculation Example
Manual Custom price The platform price is set directly. If no custom price is entered, the catalog price is used. Catalog: $50.00, Manual: $45.00 -- Platform shows $45.00.
Markup Percent Percentage value Platform Price = Base Price x (1 + Markup%). Base: $50.00, Markup: 20% -- Platform: $60.00.
Markup Fixed Fixed amount Platform Price = Base Price + Fixed Amount. Base: $50.00, Fixed: $5.00 -- Platform: $55.00.
Margin Target Target margin % Platform Price = Cost Price / (1 - Margin%). Requires cost price. Cost: $30.00, Target Margin: 40% -- Platform: $50.00.

Pricing Rule Priority

  1. If a listing has a pricing rule configured, the platform price is calculated using that rule.
  2. If the rule is manual and a custom platform price is set, that price is used.
  3. If no rule or custom price is set, the catalog base price is used.

Warning: The Margin Target rule requires each product to have a cost price set in your catalog. If a product has no cost price (or it is zero), the calculation cannot determine the correct price and will fall back to the base catalog price.

Setting Pricing Rules

Pricing rules can be set at two levels:

  1. Bulk (at listing creation) -- When adding products to a platform via the Add Listings page, you set a pricing rule that applies to all selected products.
  2. Per-listing -- Click the pricing cell on any listing row in the Listings table to open the pricing editor and set a rule for that specific listing.

Safety Stock

Safety stock is a reserve buffer that prevents overselling. When stock is pushed to an external platform, the safety stock quantity is subtracted from your actual stock.

Example:

  • Actual stock: 100 units
  • Safety stock: 10 units
  • Stock shown on external platform: 90 units

This ensures you always have a buffer to handle orders from other channels or unexpected demand.

Safety stock is configured:

  • Per-listing in the pricing editor modal.
  • In bulk when creating new listings on the Add Listings page.

Stock Override

A stock override forces a specific stock quantity to be shown on the external platform, regardless of your actual catalog stock. When a stock override is set, the actual stock and safety stock are ignored for that listing.


Sync Logs

Navigate to Dashboard > Multichannel > Sync Logs to view a history of all sync operations.

Each log entry shows:

Column Description
Type The kind of sync operation (e.g., stock_push, price_push, product_sync, order_pull).
Direction Whether data was pushed (outgoing) or pulled (incoming).
Platform The platform and connection name associated with this sync.
Status The result: completed, failed, processing, pending, or partial.
Items The number of items processed. Shows succeeded/total, with failed items highlighted.
Time When the sync operation started and completed.

Sync Log Statuses

Status Description
Completed All items in the sync operation succeeded.
Partial Some items succeeded but some failed. Review failed items for errors.
Failed The entire sync operation failed. Check the error details.
Processing The sync is currently in progress.
Pending The sync is queued and waiting to begin.

Stock History

Navigate to Dashboard > Multichannel > Stock History to view a chronological log of stock level changes across your listings.

This page helps you track:

  • When stock was pushed to external platforms.
  • Stock quantity changes over time.
  • Discrepancies between your catalog stock and platform stock.

Webhooks

Webhooks enable real-time communication between external platforms and your DirectSale account.

Registering Webhooks

  1. Go to the Multichannel Overview.
  2. Find the platform card.
  3. Click the Webhook (hook icon) button.
  4. The system registers the necessary webhook endpoints with the external platform.

What Webhooks Do

When registered, the external platform sends notifications to your system when:

  • A new order is placed.
  • Stock levels change.
  • Product data is updated.
  • An order is canceled or refunded.

This eliminates the need for manual syncs and ensures your data stays current in near-real-time.

Info: Not all platforms support the same set of webhook events. The system automatically registers all available events for each platform type.


Best Practices

  • Register webhooks on all platforms for real-time updates, minimizing the need for manual syncs.
  • Use pricing rules instead of manually setting prices to automate price management across platforms.
  • Set safety stock to prevent overselling, especially if you sell on multiple platforms simultaneously.
  • Review sync logs regularly to catch and resolve errors before they impact customer experience.
  • Push stock after inventory adjustments to keep external platforms accurate, especially if webhooks are not configured.
  • Test connections periodically to ensure credentials have not expired.

Troubleshooting

Issue Solution
Sync shows "failed" status Check the connection health. Verify that credentials are valid and the store is online.
Stock not updating on platform Ensure you triggered a stock push (not just saved pricing). Check safety stock is not reducing the quantity to zero.
Price different from expected Verify the pricing rule configuration. Check if a manual platform price is overriding the calculated price.
Webhooks not receiving events Re-register webhooks. Verify the external platform's webhook configuration page shows the webhook as active.
Partial sync with failures Review the failed items in the sync log. Common causes include invalid product data, missing required fields on the platform, or rate limiting.