סנכרון מחירי דרופשיפינג: אוטומציה של מרווחים ועדכונים

עדכונים ידניים של מחירי רכישה מספק דרופ-שיפינג מובילים לשגיאות ולאובדן מרווח. אנו הופכים את סנכרון המחירים לאוטומטי באמצעות REST API ומגדירים כללי מרווח ועיגול. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד תמיכה—ומבטיח פעולה אמינה ללא פספוס מועדים.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
סנכרון מחירי דרופשיפינג: אוטומציה של מרווחים ועדכונים
בינוני
~2-3 ימים
שאלות נפוצות

דְרוֹפְּשִׁיפִּינְג עומד בפני בעיה: מחירי הרכישה משתנים, ועדכון ידני של מחירי הקמעונאות מוביל לשגיאות ולאובדן מרווח. לפי הנתונים שלנו, עדכון ידני לחנות עם 500 מוצרים אורך 8 שעות בשבוע וגורם ל-5–10% פריטים שגויים — אובדן הכנסות ישיר. אוטומציה של סנכרון מחירים פותרת את זה: יישמנו פתרונות ל-50+ חנויות מקוונות, קיצרנו את זמן העדכון פי 10 וביטלנו שגיאות לחלוטין. כפי שצוין בויקיפדיה, דְרוֹפְּשִׁיפִּינְג דורש אוטומציה כדי להתרחב. מחירי הספק משתנים בלוח זמנים (רשימת מחירים חדשה שבועית) או בזמן אמת (מוצרים הנסחרים בבורסה, תלות במטבע, תמחור דינמי). ללא אוטומציה, החנות מפסידה מרווח כשמחירי הרכישה עולים או מפסידה למתחרים כשהם יורדים. הניסיון שלנו עוזר להימנע מבעיות אלה: במשך השנים חידדנו תוכנית סנכרון אמינה שמעדכנת מחירים פי 10 מהר יותר מהזנה ידנית ומבטלת לחלוטין שגיאות אנוש.

למה סנכרון אוטומטי חשוב

עדכון ידני של אלפי מוצרים הוא דרך לשגיאות ולאובדן רווח. דמיינו: הספק מוריד את מחיר הרכישה ב-30% ואתם לא יודעים — המתחרים כבר מוכרים cheaper ואתם מפסידים מכירות. או להיפך, עלייה חדה של 40% אוכלת את המרווח שלכם אם לא מעלים את הקמעונאות בזמן. אוטומציה מבטיחה שמחיר הקמעונאות תמיד משקף את מחיר הרכישה הנוכחי עם המרווח הרצוי. כתוצאה מכך, המרווח נשמר והלקוחות רואים מחירים נכונים. אנו מטפלים באינטגרציה עם כל סוג של ספק.

מקורות מחיר: השוואת גישות

מקור תדירות עדכון מורכבות אמינות
REST API זמן אמת בינונית גבוהה
FTP/CSV רשימת מחירים פעם ביום נמוכה גבוהה
Webhook מהספק מיידי בינונית גבוהה
גירוד אתר מתוזמן גבוהה נמוכה (דורש תחזוקה)

סוגי כללי מרווח

סוג כלל יישום דוגמה
אחוז אחוז קבוע אוניברסלי 25% על כל המוצרים
סכום קבוע הוספת קבוע +$1–1 למחיר הרכישה
טבלה מדורגת לפלחי מחיר שונים עד 1000: 40%, 1000–5000: 25%, מעל: 15%

שגיאות אופייניות בסנכרון ידני

אפילו מנהלים מנוסים עושים טעויות:

  • שגיאות הזנה: ספרות מוחלפות, אפסים מיותרים, מטבע שגוי.
  • עדכונים שהוחמצו: שכחו לעדכן מחיר של מוצר פופולרי — המכירות נעצרות.
  • חוסר עקביות: עובדים שונים מיישמים מרווח שונה על אותו מוצר.
  • אין היסטוריה: אי אפשר לעקוב מתי ולמה מחיר השתנה.

אוטומציה מבטלת שגיאות אלה, וכל היסטוריית השינויים נשמרת בטבלה ייעודית — תמיד יודעים מי עדכן את המחיר ומתי.

איך אנו מיישמים סנכרון

שלבי העבודה: ניתוח המצב הנוכחי → עיצוב ארכיטקטורה → יישום ב-Laravel (PHP 8.3+) → בדיקה על נתונים אמיתיים → פריסה עם ניטור. אנו עושים הכל במפתח אחד.

  1. ניתוח — לימוד מקורות מחיר ודרישות מרווח.
  2. עיצוב — בחירת ארכיטקטורה וכללי מרווח.
  3. יישום — כתיבת קוד, אינטגרציה עם הספק.
  4. בדיקה — הרצה על נתונים היסטוריים, בדיקת הגנת חריגות.
  5. השקה — פריסה והגדרת ניטור.

אחסון היסטוריית מחירים

Schema::create('dropship_price_log', function (Blueprint $table) {
    $table->id();
    $table->foreignId('dropship_product_id')->constrained();
    $table->decimal('prev_supplier_price', 10, 2);
    $table->decimal('new_supplier_price', 10, 2);
    $table->decimal('prev_retail_price', 10, 2)->nullable();
    $table->decimal('new_retail_price', 10, 2)->nullable();
    $table->decimal('margin_percent', 5, 2)->nullable();
    $table->string('source')->default('sync');
    $table->timestamp('recorded_at');
    $table->index(['dropship_product_id', 'recorded_at']);
});

מחשבון מחיר קמעונאי

מחיר הקמעונאות מחושב ממחיר הרכישה באמצעות כללי מרווח. הכללים יכולים להיות גלובליים, ברמת הספק, ברמת הקטגוריה או מוצר ספציפי.

class PriceCalculator {
    public function calculate(DropshipProduct $dp): float {
        $supplierPrice = $dp->supplier_price;
        $marginRule = $this->resolveMarginRule($dp);
        return match($marginRule->type) {
            'percent' => round($supplierPrice * (1 + $marginRule->value / 100), 2),
            'fixed' => round($supplierPrice + $marginRule->value, 2),
            'markup_table' => $this->applyMarkupTable($supplierPrice, $marginRule->table),
        };
    }

    private function resolveMarginRule(DropshipProduct $dp): MarginRule {
        // Приоритет: товар > категория > поставщик > глобальные настройки
        return $dp->margin_rule ?? $dp->product?->category?->margin_rule ?? $dp->supplier->margin_rule ?? MarginRule::getDefault();
    }

    /**
     * Ступенчатая наценка: дорогие товары — меньший %
     * [до 1000 → +40%, 1000–5000 → +25%, 5000+ → +15%]
     */
    private function applyMarkupTable(float $price, array $table): float {
        foreach ($table as $tier) {
            if ($price <= $tier['max_price']) {
                return round($price * (1 + $tier['percent'] / 100), 2);
            }
        }
        // Последний уровень без ограничения максимума
        $last = end($table);
        return round($price * (1 + $last['percent'] / 100), 2);
    }
}

עבודת סנכרון מחירים

class SyncSupplierPricesJob implements ShouldQueue {
    public $tries = 3;
    public $backoff = [60, 300, 900];

    public function handle(
        SupplierConnectorFactory $factory,
        PriceCalculator $calculator,
    ): void {
        $connector = $factory->make($this->supplier);
        $priceList = $connector->getPriceList(); // массив [sku => price]

        $updatedCount = 0;

        foreach ($priceList as $sku => $newSupplierPrice) {
            $dp = DropshipProduct::where([
                'supplier_id' => $this->supplier->id,
                'supplier_sku' => $sku,
            ])->first();

            if (!$dp) continue; // Пропускаем, если цена не изменилась

            if (abs($dp->supplier_price - $newSupplierPrice) < 0.01) continue;

            $prevSupplierPrice = $dp->supplier_price;
            $prevRetailPrice = $dp->product?->price;

            $dp->update(['supplier_price' => $newSupplierPrice]);

            // Пересчитываем розничную цену, если нет ручной фиксации
            $newRetailPrice = null;
            if ($dp->product && !$dp->product->price_locked) {
                $newRetailPrice = $calculator->calculate($dp);
                $dp->product->update(['price' => $newRetailPrice]);
            }

            DropshipPriceLog::create([
                'dropship_product_id' => $dp->id,
                'prev_supplier_price' => $prevSupplierPrice,
                'new_supplier_price' => $newSupplierPrice,
                'prev_retail_price' => $prevRetailPrice,
                'new_retail_price' => $newRetailPrice,
                'source' => 'sync',
                'recorded_at' => now(),
            ]);

            $updatedCount++;
        }

        Log::info('Price sync completed', [
            'supplier' => $this->supplier->slug,
            'updated' => $updatedCount,
        ]);
    }
}

איך למנוע קפיצות מחיר פתאומיות

לפעמים רשימת המחירים של הספק מכילה מחירים שגויים (אפס, ערך גבוה מאוד, שגיאת הקלדה). ללא הגנה, החנות תציג מחיר קמעונאי שגוי. אנו מיישמים בדיקת חריגות: אם שינוי מחיר הרכישה עולה על סף מוגדר (לדוגמה, 50%), המוצר מסומן לבדיקה ידנית. לדוגמה, המחיר היה $9–13, הספק שולח 1500 (שינוי של 50%) — בסף של 50% זה מותר. אבל אם השינוי הוא 100% (ל-$18–26), המוצר עובר לבדיקה ידנית. המנהל רואה פריטים חשודים בקטע ניהולי ייעודי ויכול לאשר או לדחות את העדכון.

class PriceSanityChecker {
    private const MAX_CHANGE_PERCENT = 50; // не обновляем, если изменение > 50%

    public function isSafe(float $prevPrice, float $newPrice): bool {
        if ($newPrice <= 0) return false;
        if ($prevPrice <= 0) return true; // первая цена — принимаем любую положительную

        $changePercent = abs($newPrice - $prevPrice) / $prevPrice * 100;
        if ($changePercent > self::MAX_CHANGE_PERCENT) {
            // Логируем для ручной проверки
            Log::warning('Suspicious price change detected', [
                'prev' => $prevPrice,
                'new' => $newPrice,
                'change%' => round($changePercent, 1),
            ]);
            return false;
        }
        return true;
    }
}

מוצרים עם שינויי מחיר חשודים מוכנסים לתור בדיקה ידנית — המנהל רואה אותם בקטע ניהולי נפרד. זה מונע קביעת מחיר קמעונאי שגוי. כתוצאה מכך, קפיצות חדות לא עוברות אוטומטית; הן דורשות אישור אנושי.

המרת מטבע ושערי חליפין

אם הספק מתמחר ב-USD או EUR והחנות פועלת ב-USD:

class CurrencyPriceConverter {
    public function convert(float $price, string $fromCurrency, string $toCurrency): float {
        if ($fromCurrency === $toCurrency) return $price;
        $rate = Cache::remember(
            "exchange_rate_{$fromCurrency}_{$toCurrency}",
            3600, // кэш на 1 час
            fn() => $this->fetchRate($fromCurrency, $toCurrency)
        );
        return round($price * $rate, 2);
    }

    private function fetchRate(string $from, string $to): float {
        // Центробанк РФ: cbr.ru/scripts/XML_daily.asp
        // Или openexchangerates.org, fixer.io
        $response = Http::get('https://api.exchangerate-api.com/v4/latest/' . $from);
        return $response->json("rates.{$to}");
    }
}

מה כלול

  • אינטגרציה עם כל מקור מחיר (API, CSV, webhooks)
  • הגדרת כללי מרווח (אחוז, קבוע, מדורג)
  • יישום הגנת קפיצות חריגות
  • אחסון והצגת היסטוריית שינויים
  • המרת מטבע עם caching
  • תיעוד תפעולי והכשרת צוות
  • תמיכה לאחר השקה

צרו קשר לייעוץ על הפרויקט שלכם. נעזור להפוך את התמחור לאוטומטי ולהגן על המרווח שלכם.

לוחות זמנים משוערים

סנכרון מחירים עם ספק אחד + מחשבון מרווח — מכמה ימי עבודה. מרווח מדורג, המרת מטבע, הגנת קפיצות — הוסיפו עד יומיים נוספים. העלות הסופית מחושבת באופן אישי — השאירו בקשה ונשוחח על הפרויקט שלכם. המהנדסים שלנו מבטיחים פעולה אמינה של הפתרון. קבלו ייעוץ והערכת פרויקט — נעזור להפוך את התמחור לאוטומטי ולהגן על המרווח שלכם.

הכישורים שלנו:

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1393
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1368
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1139
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1152
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1231
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    641