مولد أكواد SKU ذكي ومتكامل للمخازن والتجارة الإلكترونية وووردبريس مع باركود وQR كود تلقائي
| # | الكود (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(''); }
أضف هذا الكود لإنشاء 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"] */
[sku_wizard] في أي صفحة ووردبريس.
اتباع معايير موحدة في تكويد المخزون يحسن الكفاءة ويقلل الأخطاء ويسهّل التدقيق.