product-import.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * Product Import page view
  4. *
  5. * @since 1.4.0
  6. * @package Studiou_WC_Product_Cat_Manage
  7. * @subpackage Studiou_WC_Product_Cat_Manage/views
  8. */
  9. // If this file is called directly, abort.
  10. if (!defined('WPINC')) {
  11. die;
  12. }
  13. ?>
  14. <div class="wrap studiou-wcpcm-wrap">
  15. <h1><?php echo esc_html(__('Product Import', 'studiou-wc-product-cat-manage')); ?></h1>
  16. <!-- Notice Area -->
  17. <div class="studiou-wcpcm-notice-area"></div>
  18. <!-- Import Form -->
  19. <div class="studiou-wcpcm-card">
  20. <h2><?php _e('Import Products from CSV', 'studiou-wc-product-cat-manage'); ?></h2>
  21. <p><?php _e('Upload a CSV file to import products. The CSV file must follow the required format with the following columns:', 'studiou-wc-product-cat-manage'); ?></p>
  22. <ul>
  23. <li><strong>ID</strong> - <?php _e('Product ID (0 for new products)', 'studiou-wc-product-cat-manage'); ?></li>
  24. <li><strong>Typ</strong> - <?php _e('Product type (only "variable" or "variation" allowed)', 'studiou-wc-product-cat-manage'); ?></li>
  25. <li><strong>Katalogové číslo</strong> - <?php _e('SKU (must be unique)', 'studiou-wc-product-cat-manage'); ?></li>
  26. <li><strong>Jméno</strong> - <?php _e('Product name', 'studiou-wc-product-cat-manage'); ?></li>
  27. <li><strong>Nadřazené</strong> - <?php _e('Parent product SKU (for variations only)', 'studiou-wc-product-cat-manage'); ?></li>
  28. <li><strong>Krátký popis</strong> - <?php _e('Short description', 'studiou-wc-product-cat-manage'); ?></li>
  29. <li><strong>Popis</strong> - <?php _e('Description', 'studiou-wc-product-cat-manage'); ?></li>
  30. <li><strong>Název 1 vlastnosti</strong> - <?php _e('Attribute 1 name', 'studiou-wc-product-cat-manage'); ?></li>
  31. <li><strong>Hodnota(y) 1 vlastnosti</strong> - <?php _e('Attribute 1 value(s) (pipe-separated)', 'studiou-wc-product-cat-manage'); ?></li>
  32. <li><strong>Kategorie</strong> - <?php _e('Categories (pipe-separated)', 'studiou-wc-product-cat-manage'); ?></li>
  33. <li><strong>Obrázky</strong> - <?php _e('Image URL (must be valid)', 'studiou-wc-product-cat-manage'); ?></li>
  34. <li><strong>Běžná cena</strong> - <?php _e('Regular price (required for variations)', 'studiou-wc-product-cat-manage'); ?></li>
  35. <li><strong>Vlastnost 1 viditelnost</strong> - <?php _e('Attribute 1 visibility (1 or 0)', 'studiou-wc-product-cat-manage'); ?></li>
  36. <li><strong>Vlastnost 1 globální</strong> - <?php _e('Attribute 1 global (1 or 0)', 'studiou-wc-product-cat-manage'); ?></li>
  37. <li><strong>Vlastnost 1 varianta</strong> - <?php _e('Attribute 1 used for variations (1 or 0)', 'studiou-wc-product-cat-manage'); ?></li>
  38. <li><strong>Povolit zákaznické recenze?</strong> - <?php _e('Enable reviews (1 or 0)', 'studiou-wc-product-cat-manage'); ?></li>
  39. <li><strong>Minimum Quantity</strong> - <?php _e('Minimum order quantity', 'studiou-wc-product-cat-manage'); ?></li>
  40. <li><strong>Maximum Quantity</strong> - <?php _e('Maximum order quantity', 'studiou-wc-product-cat-manage'); ?></li>
  41. </ul>
  42. <form id="studiou-wcpcm-product-import-form" method="post" enctype="multipart/form-data">
  43. <div class="form-field">
  44. <label for="import_file"><?php _e('Select Import File', 'studiou-wc-product-cat-manage'); ?></label>
  45. <input type="file" id="import_file" name="import_file" accept=".csv" required />
  46. <p class="description"><?php _e('Select a CSV file to import (UTF-8 encoding)', 'studiou-wc-product-cat-manage'); ?></p>
  47. </div>
  48. <div class="submit-buttons">
  49. <button type="submit" id="studiou-wcpcm-product-import-button" class="button button-primary">
  50. <?php _e('Process Import File', 'studiou-wc-product-cat-manage'); ?>
  51. </button>
  52. <span class="spinner"></span>
  53. </div>
  54. </form>
  55. <!-- Progress bar -->
  56. <div class="studiou-wcpcm-product-import-progress" style="display: none;">
  57. <h3><?php _e('Import Progress', 'studiou-wc-product-cat-manage'); ?></h3>
  58. <div class="studiou-wcpcm-progress-bar-container">
  59. <div id="studiou-wcpcm-product-import-progress-bar" class="studiou-wcpcm-progress-bar" style="width: 0%;" data-progress="0%"></div>
  60. </div>
  61. <div id="studiou-wcpcm-product-import-progress-text" class="studiou-wcpcm-progress-text">
  62. <?php _e('Initializing...', 'studiou-wc-product-cat-manage'); ?>
  63. </div>
  64. </div>
  65. <!-- Import Results -->
  66. <div class="studiou-wcpcm-product-import-results" style="display: none;">
  67. <h3><?php _e('Import Results', 'studiou-wc-product-cat-manage'); ?></h3>
  68. <div id="studiou-wcpcm-product-import-message"></div>
  69. <div id="studiou-wcpcm-product-import-details" style="margin-top: 20px;">
  70. <h4><?php _e('Import Details', 'studiou-wc-product-cat-manage'); ?></h4>
  71. <div id="studiou-wcpcm-product-import-details-content"></div>
  72. </div>
  73. </div>
  74. <!-- Save Failed Products Button -->
  75. <div class="studiou-wcpcm-product-import-failed" style="display: none; margin-top: 20px;">
  76. <button id="studiou-wcpcm-save-failed-products" class="button button-secondary">
  77. <?php _e('Save Failed Products', 'studiou-wc-product-cat-manage'); ?>
  78. </button>
  79. <p class="description"><?php _e('Download a CSV file with failed products to fix and re-import', 'studiou-wc-product-cat-manage'); ?></p>
  80. </div>
  81. </div>
  82. <!-- Import Rules -->
  83. <div class="studiou-wcpcm-card">
  84. <h2><?php _e('Import Rules', 'studiou-wc-product-cat-manage'); ?></h2>
  85. <ul>
  86. <li><strong><?php _e('Rule 1:', 'studiou-wc-product-cat-manage'); ?></strong> <?php _e('All operations are performed via WooCommerce API (not direct SQL)', 'studiou-wc-product-cat-manage'); ?></li>
  87. <li><strong><?php _e('Rule 2:', 'studiou-wc-product-cat-manage'); ?></strong> <?php _e('If ID = 0, item will be created; otherwise updated', 'studiou-wc-product-cat-manage'); ?></li>
  88. <li><strong><?php _e('Rule 3:', 'studiou-wc-product-cat-manage'); ?></strong> <?php _e('Only "variable" or "variation" types are allowed', 'studiou-wc-product-cat-manage'); ?></li>
  89. <li><strong><?php _e('Rule 4:', 'studiou-wc-product-cat-manage'); ?></strong> <?php _e('SKU (Katalogové číslo) must be unique', 'studiou-wc-product-cat-manage'); ?></li>
  90. <li><strong><?php _e('Rule 5:', 'studiou-wc-product-cat-manage'); ?></strong> <?php _e('Image URL must be valid and accessible', 'studiou-wc-product-cat-manage'); ?></li>
  91. <li><strong><?php _e('Rule 6:', 'studiou-wc-product-cat-manage'); ?></strong> <?php _e('Parent reference (Nadřazené) must point to an existing variable product SKU', 'studiou-wc-product-cat-manage'); ?></li>
  92. <li><strong><?php _e('Rule 7:', 'studiou-wc-product-cat-manage'); ?></strong> <?php _e('Variations must have a regular price (Běžná cena)', 'studiou-wc-product-cat-manage'); ?></li>
  93. </ul>
  94. </div>
  95. </div>