نسخة برو 3.0 - محسّنة

🧙‍♂️ ساحر الأكواد

مولد أكواد SKU ذكي ومتكامل للمخازن والتجارة الإلكترونية وووردبريس مع باركود وQR كود تلقائي

0
إجمالي الأكواد
0
أكواد اليوم
0
فئات مستخدمة
0
موردون/علامات
📝 بيانات المنتج الخطوة 1/4
الفئة
العلامة
الخصائص
الكود
خيارات الكود
- (Dash)
_ (Under)
. (Dot)
None
🎯 معاينة الكود
— أدخل البيانات —
🎨 ألوان سريعة
أسود
أبيض
أحمر
أزرق
أخضر
أصفر
برتقالي
بنفسجي
رمادي
بني
وردي
فضي
ذهبي
كحلي
📊 الباركود & QR Code
BARCODE (CODE128)
QR CODE
🏷️ معاينة الملصق
أنشئ كوداً لمعاينة الملصق
# الكود (SKU) اسم المنتج الفئة المورد الحالة الموقع التاريخ إجراءات
📋
لا يوجد أكواد بعد. أنشئ أول كود!

أضف هذا الكود في ملف functions.php لربط SKU Wizard بووردبريس:

/**
 * SKU Wizard Pro - WordPress Integration
 * @version 3.0
 * @author WarehouseGuide
 * Add to: wp-content/themes/your-theme/functions.php
 */

if ( ! defined( 'ABSPATH' ) ) exit;

// Register custom SKU meta for all post types
add_action( 'add_meta_boxes', function() {
    add_meta_box(
        'sku_wizard_box',
        '🧙 SKU Wizard Pro',
        'sku_wizard_meta_box_cb',
        'product',
        'side',
        'high'
    );
});

function sku_wizard_meta_box_cb( $post ) {
    $sku = get_post_meta( $post->ID, '_sku_wizard_code', true );
    wp_nonce_field( 'sku_wizard_save', 'sku_nonce' );
    echo '<label>كود SKU:</label>';
    echo '<input type="text" name="sku_wizard_code" value="' . esc_attr( $sku ) . '" style="width:100%;margin-top:6px;font-family:monospace;font-weight:700">';
    echo '<p style="color:#666;font-size:11px;margin-top:4px">أنشئ الكود من SKU Wizard Pro</p>';
}

add_action( 'save_post', function( $post_id ) {
    if ( ! isset( $_POST['sku_nonce'] ) ) return;
    if ( ! wp_verify_nonce( $_POST['sku_nonce'], 'sku_wizard_save' ) ) return;
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    
    $sku = sanitize_text_field( $_POST['sku_wizard_code'] );
    update_post_meta( $post_id, '_sku_wizard_code', $sku );
});

// REST API Endpoint
add_action( 'rest_api_init', function() {
    register_rest_route( 'sku-wizard/v1', '/import', [
        'methods'  => 'POST',
        'callback' => 'sku_wizard_import_handler',
        'permission_callback' => function() {
            return current_user_can( 'edit_products' );
        }
    ]);
});

function sku_wizard_import_handler( $request ) {
    $params = $request->get_json_params();
    $results = [];
    
    foreach ( $params['skus'] as $item ) {
        $product = new WC_Product_Simple();
        $product->set_sku( $item['sku'] );
        $product->set_name( $item['name'] );
        $product->set_status( 'draft' );
        $id = $product->save();
        $results[] = [ 'id' => $id, 'sku' => $item['sku'] ];
    }
    
    return rest_ensure_response([
        'success' => true,
        'imported' => count( $results ),
        'items' => $results
    ]);
}

كود ربط مباشر مع WooCommerce - يستورد SKUs من القائمة:

/**
 * SKU Wizard Pro → WooCommerce Sync
 * يربط مولد الأكواد مع منتجات WooCommerce
 */

// تحديث SKU لمنتج WooCommerce
function sku_wizard_update_woo_product( $product_id, $sku ) {
    $product = wc_get_product( $product_id );
    if ( ! $product ) return false;
    
    // التحقق من عدم تكرار الكود
    $existing = wc_get_product_id_by_sku( $sku );
    if ( $existing && $existing !== $product_id ) {
        return new WP_Error( 'duplicate_sku', 'الكود موجود مسبقاً' );
    }
    
    $product->set_sku( $sku );
    $product->save();
    return true;
}

// إضافة عمود SKU في قائمة المنتجات
add_filter( 'manage_product_posts_columns', function( $columns ) {
    $columns['sku_wizard'] = '🧙 SKU';
    return $columns;
});

add_action( 'manage_product_posts_custom_column', function( $column, $post_id ) {
    if ( $column === 'sku_wizard' ) {
        $product = wc_get_product( $post_id );
        echo '<code style="background:#f0f4ff;padding:2px 6px;border-radius:4px">';
        echo esc_html( $product->get_sku() ?: '—' );
        echo '</code>';
    }
}, 10, 2);

// استيراد مجموعة SKUs دفعة واحدة
function sku_wizard_bulk_import( $sku_list ) {
    $results = [ 'success' => 0, 'failed' => 0, 'errors' => [] ];
    
    foreach ( $sku_list as $item ) {
        $post_id = wp_insert_post([
            'post_title'  => $item['name'],
            'post_type'   => 'product',
            'post_status' => 'draft',
        ]);
        
        if ( ! is_wp_error( $post_id ) ) {
            update_post_meta( $post_id, '_sku', $item['sku'] );
            update_post_meta( $post_id, '_visibility', 'visible' );
            $results['success']++;
        } else {
            $results['failed']++;
            $results['errors'][] = $item['sku'];
        }
    }
    
    return $results;
}

أمثلة استخدام REST API - JavaScript / Fetch:

/**
 * SKU Wizard Pro - REST API Integration
 * استخدام WooCommerce REST API لإدارة المنتجات والـ SKUs
 */

const WP_URL = 'https://yoursite.com/wp-json';
const API_KEY = 'ck_your_consumer_key';
const API_SEC = 'cs_your_consumer_secret';

const headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic ' + btoa(API_KEY + ':' + API_SEC)
};

// 1. إنشاء منتج جديد بـ SKU
async function createProduct( skuData ) {
    const res = await fetch(`${WP_URL}/wc/v3/products`, {
        method: 'POST',
        headers,
        body: JSON.stringify({
            name: skuData.name,
            sku: skuData.sku,
            type: 'simple',
            status: 'draft',
            categories: [{ id: skuData.categoryId }],
            meta_data: [
                { key: '_sku_wizard_cat',      value: skuData.category },
                { key: '_sku_wizard_brand',    value: skuData.brand },
                { key: '_sku_wizard_color',    value: skuData.color },
                { key: '_sku_wizard_size',     value: skuData.size },
                { key: '_sku_wizard_location', value: skuData.location },
                { key: '_sku_wizard_date',     value: new Date().toISOString() }
            ]
        })
    });
    return res.json();
}

// 2. تحديث SKU لمنتج موجود
async function updateSKU( productId, newSKU ) {
    const res = await fetch(`${WP_URL}/wc/v3/products/${productId}`, {
        method: 'PUT',
        headers,
        body: JSON.stringify({ sku: newSKU })
    });
    return res.json();
}

// 3. استيراد قائمة SKUs من السجل
async function bulkImportFromRegistry() {
    const registry = JSON.parse(localStorage.getItem('skuRegistry') || '[]');
    const results = [];
    
    for (const item of registry) {
        try {
            const product = await createProduct(item);
            results.push({ success: true, id: product.id, sku: item.sku });
        } catch(e) {
            results.push({ success: false, sku: item.sku, error: e.message });
        }
    }
    
    console.log('Import Results:', results);
    return results;
}

// 4. البحث عن منتج بـ SKU
async function findBySKU( sku ) {
    const res = await fetch(`${WP_URL}/wc/v3/products?sku=${sku}`, { headers });
    const products = await res.json();
    return products[0] || null;
}

// 5. زر الاستيراد المباشر (يضيفه في الصفحة)
document.getElementById('importToWP')?.addEventListener('click', async () => {
    const btn = document.getElementById('importToWP');
    btn.textContent = '⏳ جاري الاستيراد...';
    btn.disabled = true;
    await bulkImportFromRegistry();
    btn.textContent = '✅ تم الاستيراد!';
});

إرسال الأكواد تلقائياً لووردبريس عند الإنشاء:

/**
 * SKU Wizard Pro - Webhook Auto-Sync
 * يرسل كل SKU جديد تلقائياً لووردبريس
 */

// إعدادات Webhook
const WEBHOOK_CONFIG = {
    endpoint: 'https://yoursite.com/wp-json/sku-wizard/v1/import',
    secret: 'your_webhook_secret_key',
    enabled: true,
    retries: 3
};

// إرسال SKU جديد
async function webhookSendSKU( skuData ) {
    if (!WEBHOOK_CONFIG.enabled) return;
    
    const payload = {
        event: 'sku_created',
        timestamp: Date.now(),
        data: {
            sku: skuData.sku,
            name: skuData.name,
            category: skuData.category,
            brand: skuData.brand,
            color: skuData.color,
            size: skuData.size,
            location: skuData.location,
            condition: skuData.condition
        }
    };
    
    for (let i = 0; i < WEBHOOK_CONFIG.retries; i++) {
        try {
            const res = await fetch(WEBHOOK_CONFIG.endpoint, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-SKU-Wizard-Signature': await signPayload(payload, WEBHOOK_CONFIG.secret)
                },
                body: JSON.stringify({ skus: [payload.data] })
            });
            
            if (res.ok) {
                console.log('✅ SKU sent to WordPress:', skuData.sku);
                return await res.json();
            }
        } catch(e) {
            if (i === WEBHOOK_CONFIG.retries - 1) console.error('Webhook failed:', e);
            await new Promise(r => setTimeout(r, 1000 * (i + 1)));
        }
    }
}

// توقيع HMAC للأمان
async function signPayload( payload, secret ) {
    const encoder = new TextEncoder();
    const key = await crypto.subtle.importKey(
        'raw', encoder.encode(secret),
        { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']
    );
    const sig = await crypto.subtle.sign('HMAC', key, encoder.encode(JSON.stringify(payload)));
    return Array.from(new Uint8Array(sig)).map(b => b.toString(16).padStart(2, '0')).join('');
}
💡 تفعيل Webhook: بعد نسخ الكود، أضفه في ملف functions.php وغيّر endpoint وsecret بقيم موقعك.

أضف هذا الكود لإنشاء Shortcode يعرض ساحر الأكواد داخل أي صفحة:

/**
 * SKU Wizard Pro - Shortcode
 * الاستخدام: [sku_wizard theme="dark" lang="ar"]
 */

add_shortcode( 'sku_wizard', function( $atts ) {
    $atts = shortcode_atts([
        'theme'    => 'dark',
        'lang'     => 'ar',
        'height'   => '800px',
        'category' => ''
    ], $atts );
    
    $url = esc_url( plugin_dir_url( __FILE__ ) . 'sku-wizard.html' );
    $url .= '?theme=' . $atts['theme'] . '&lang=' . $atts['lang'];
    
    return '<div class="sku-wizard-wrapper">
        <iframe 
            src="' . $url . '"
            width="100%"
            height="' . esc_attr( $atts['height'] ) . '"
            frameborder="0"
            style="border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,0.2)"
            title="SKU Wizard Pro">
        </iframe>
    </div>';
});

// CSS للـ iframe في الصفحة
add_action( 'wp_head', function() {
    if ( has_shortcode( get_the_content(), 'sku_wizard' ) ) {
        echo '<style>
            .sku-wizard-wrapper { width:100%; overflow:hidden; }
            .sku-wizard-wrapper iframe { display:block; }
        </style>';
    }
});

/* الاستخدام في أي صفحة/مقال: */
/* [sku_wizard] */
/* [sku_wizard theme="light" lang="en" height="900px"] */
✅ بعد إضافة الكود في functions.php، استخدم [sku_wizard] في أي صفحة ووردبريس.
📦 التوليد الجماعي جديد
💡 دليل أفضل الممارسات

اتباع معايير موحدة في تكويد المخزون يحسن الكفاءة ويقلل الأخطاء ويسهّل التدقيق.

📏
الطول المثالي احتفظ بالكود بين 8-14 حرفاً لسهولة القراءة والمسح الضوئي.
🔤
الأحرف الكبيرة استخدم أحرف كبيرة دائماً وتجنب الأحرف المتشابهة مثل O و0، وI وl.
🔢
التسلسل الرقمي استخدم أرقاماً متسلسلة بدلاً من الأرقام العشوائية للتتبع الأسهل.
📝
التوثيق احتفظ بسجل مرجعي لكل كود وما يمثله لتسهيل التدريب والتدقيق.
🔄
التحديثات استخدم لاحقة V2/V3 عند تحديث المنتج بدلاً من تغيير الكود الأساسي.
🌐
التوافق تأكد من توافق الكود مع نظام ERP أو ووكومرس قبل البدء بالتطبيق.
الكودات الرئيسية ضع رمز الفئة في بداية الكود لتصفية سريعة وتحديد فوري.
📦
التغليف والوحدات أضف رمزاً للوحدة (PCS, BOX, PLT) في نهاية الكود لتمييز طرق التخزين.
🏷️
الملصقات اطبع ملصقات باركود واضحة، واستخدم خطاً بحجم لا يقل عن 10pt للأرقام.
تم بنجاح!