{"id":1692,"date":"2026-08-03T20:21:33","date_gmt":"2026-08-03T12:21:33","guid":{"rendered":"https:\/\/www.livetops.com\/?p=1692"},"modified":"2026-08-03T21:12:54","modified_gmt":"2026-08-03T13:12:54","slug":"%e5%95%86%e5%93%81%e5%9b%be%e7%89%87%e6%95%b4%e7%90%86%e4%b8%8e-sku-%e6%89%93%e5%8c%85%e5%b7%a5%e5%85%b7%ef%bc%9a%e4%bb%8e%e6%96%b0%e6%89%8b%e5%85%a5%e9%97%a8%e5%88%b0%e9%ab%98%e7%ba%a7%e5%b7%a5","status":"publish","type":"post","link":"https:\/\/www.livetops.com\/en\/archives\/1692","title":{"rendered":"Product Image Organization and SKU Bundling Tools: A Complete Guide from Beginner to Advanced Workflows"},"content":{"rendered":"<!-- Livetops \u5546\u54c1\u56fe\u7247\u5de5\u4f5c\u6d41\u5feb\u901f\u4f53\u9a8c\u5165\u53e3 -->\n<div class=\"livetops-image-notice\">\n  <div class=\"livetops-image-notice__icon\" aria-hidden=\"true\">\u25a6<\/div>\n\n  <div class=\"livetops-image-notice__content\">\n    <strong>The Product Image Organization and SKU Bundling Tool Is Now Live<\/strong>\n    <span>\n      Upload product spreadsheets, image directories, or ZIP files to automatically complete SKU mapping, character recognition,\nimage quality inspection, batch renaming, and asset package generation.\n    <\/span>\n  <\/div>\n\n  <a\n    class=\"livetops-image-notice__button\"\n    href=\"#livetops-image-workflow\"\n    aria-label=\"Go to the Product Image Organization and SKU Bundling Tool Demo Area\"\n  >\n    <span>Try It Now<\/span>\n    <small>Try It Now<\/small>\n  <\/a>\n<\/div>\n\n<style>\n.livetops-image-notice {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  width: 100%;\n  max-width: 100%;\n  margin: 20px 0 30px;\n  padding: 17px 18px;\n  border: 1px solid rgba(53, 129, 246, 0.3);\n  border-radius: 16px;\n  background:\n    radial-gradient(\n      circle at 88% 20%,\n      rgba(32, 191, 171, 0.18),\n      transparent 30%\n    ),\n    linear-gradient(\n      135deg,\n      #10213d 0%,\n      #17335b 55%,\n      #0e3a45 100%\n    );\n  color: #ffffff;\n  box-sizing: border-box;\n  box-shadow: 0 14px 36px rgba(16, 45, 82, 0.2);\n}\n\n.livetops-image-notice::after {\n  content: \"\";\n  position: absolute;\n  z-index: -1;\n  top: -55px;\n  right: 70px;\n  width: 160px;\n  height: 160px;\n  border-radius: 50%;\n  background: rgba(62, 170, 255, 0.16);\n  filter: blur(18px);\n  animation: livetopsImageNoticeGlow 3.5s ease-in-out infinite alternate;\n}\n\n.livetops-image-notice__icon {\n  flex: 0 0 auto;\n  display: grid;\n  place-items: center;\n  width: 50px;\n  height: 50px;\n  border-radius: 14px;\n  background: linear-gradient(145deg, #357df2, #4f9cf9 55%, #20bfab);\n  color: #ffffff;\n  font-size: 25px;\n  line-height: 1;\n  box-shadow: 0 10px 24px rgba(53, 125, 242, 0.34);\n  animation: livetopsImageNoticeFloat 2.5s ease-in-out infinite;\n}\n\n.livetops-image-notice__content {\n  display: flex;\n  flex: 1 1 auto;\n  min-width: 0;\n  flex-direction: column;\n  gap: 4px;\n}\n\n.livetops-image-notice__content strong {\n  margin: 0;\n  color: #ffffff;\n  font-size: 17px;\n  line-height: 1.4;\n}\n\n.livetops-image-notice__content span {\n  color: rgba(239, 246, 255, 0.78);\n  font-size: 14px;\n  line-height: 1.55;\n}\n\n.livetops-image-notice__button {\n  flex: 0 0 auto;\n  display: flex;\n  min-width: 124px;\n  min-height: 52px;\n  padding: 9px 15px;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  gap: 1px;\n  border-radius: 11px;\n  background: linear-gradient(135deg, #357df2, #20a9c3);\n  color: #ffffff !important;\n  text-align: center;\n  text-decoration: none !important;\n  box-sizing: border-box;\n  box-shadow: 0 9px 24px rgba(53, 125, 242, 0.3);\n  transition:\n    transform 0.2s ease,\n    filter 0.2s ease,\n    box-shadow 0.2s ease;\n}\n\n.livetops-image-notice__button > span {\n  display: block;\n  width: 100%;\n  color: #ffffff;\n  font-size: 14px;\n  font-weight: 700;\n  line-height: 1.25;\n  text-align: center;\n}\n\n.livetops-image-notice__button small {\n  display: block;\n  width: 100%;\n  color: rgba(255, 255, 255, 0.76);\n  font-size: 11px;\n  line-height: 1.25;\n  text-align: center;\n}\n\n.livetops-image-notice__button:hover {\n  transform: translateY(-2px);\n  filter: brightness(1.08);\n  box-shadow: 0 13px 30px rgba(53, 125, 242, 0.4);\n}\n\n.livetops-image-notice__button:focus-visible {\n  outline: 3px solid rgba(32, 191, 171, 0.72);\n  outline-offset: 3px;\n}\n\n@keyframes livetopsImageNoticeFloat {\n  0%,\n  100% {\n    transform: translateY(0);\n  }\n\n  50% {\n    transform: translateY(-4px);\n  }\n}\n\n@keyframes livetopsImageNoticeGlow {\n  from {\n    opacity: 0.6;\n    transform: scale(0.9);\n  }\n\n  to {\n    opacity: 1;\n    transform: scale(1.12);\n  }\n}\n\nhtml {\n  scroll-behavior: smooth;\n}\n\n@media (max-width: 720px) {\n  .livetops-image-notice {\n    gap: 12px;\n    padding: 14px;\n  }\n\n  .livetops-image-notice__icon {\n    width: 44px;\n    height: 44px;\n    border-radius: 12px;\n    font-size: 21px;\n  }\n\n  .livetops-image-notice__content strong {\n    font-size: 15px;\n  }\n\n  .livetops-image-notice__content span {\n    font-size: 13px;\n  }\n\n  .livetops-image-notice__button {\n    min-width: 106px;\n    min-height: 48px;\n    padding: 8px 11px;\n  }\n}\n\n@media (max-width: 560px) {\n  .livetops-image-notice {\n    align-items: stretch;\n    flex-wrap: wrap;\n  }\n\n  .livetops-image-notice__content {\n    flex-basis: calc(100% - 58px);\n  }\n\n  .livetops-image-notice__button {\n    width: 100%;\n    min-height: 46px;\n  }\n}\n\n@media (max-width: 380px) {\n  .livetops-image-notice__icon {\n    display: none;\n  }\n\n  .livetops-image-notice__content {\n    flex-basis: 100%;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  html {\n    scroll-behavior: auto;\n  }\n\n  .livetops-image-notice::after,\n  .livetops-image-notice__icon {\n    animation: none;\n  }\n\n  .livetops-image-notice__button {\n    transition: none;\n  }\n}\n<\/style>\n\n\n\n<p class=\"wp-block-paragraph\">In foreign trade, e-commerce operations, product photography, and independent website maintenance, images are often not a matter of \u201cwhether or not they exist,\u201d but rather a matter of \u201cwhether they can be quickly located, correctly matched, batch-processed, and delivered in a standardized manner.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A product may come in multiple colors, sizes, and models; each SKU may include a main image, front view, detail shots, size charts, lifestyle shots, packaging images, and accessory images. The filenames provided by the photographer may be <code>IMG_001.jpg<\/code>...The catalogs provided by suppliers may only include names such as \u201cblack,\u201d \u201cwhite,\u201d \u201cfinal version,\u201d and \u201cshots,\u201d while the product spreadsheets used by operations staff use different column headings such as \u201citem number,\u201d \u201cproduct code,\u201d \u201cplatform SKU,\u201d and \u201ccolor (Chinese).\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the number of SKUs grows from 10 to 100 and the number of images increases from dozens to thousands, manually creating catalogs, renaming files, converting formats, checking for missing images, and packaging and delivering them becomes a time-consuming, error-prone, and difficult-to-reuse task.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Product Image Organization and SKU Bundling Tool<\/strong>The goal is to turn this process into a workflow that can be reviewed, verified, and reused:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Product Table + Image Catalog or ZIP\n \u2193\nIdentify table fields, catalog entries, and file names\n \u2193\nEstablish SKU-to-image role mappings\n \u2193\nManual verification and quality check\n \u2193\nBulk adjustments to format, dimensions, quality, and naming\n \u2193\nGenerate ZIP files and reports organized by SKU<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Starting with the simplest first-time setup, this article provides a step-by-step guide to directory mapping, filename mapping, combined SKUs, image roles, output schemes, quality checks, and advanced JSON configurations. All examples are consistent with the actual configuration structure and processing logic of the official 1.0 release.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">I. What Problem Does This Tool Solve?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It is neither Photoshop nor online design software. It primarily handles the \u201cpreparation phase\u201d for product images before they are uploaded to platforms, websites, customer databases, or photography delivery catalogs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Organize miscellaneous images into the correct SKUs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Possible inputs are:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>images\/\n\u251c\u2500\u2500 Black\/\n\u2502   \u251c\u2500\u2500 DSC_1001.jpg\n\u2502   \u251c\u2500\u2500 DSC_1002.jpg\n\u2502   \u2514\u2500\u2500 DSC_1003.jpg\n\u251c\u2500\u2500 White\/\n\u2502   \u251c\u2500\u2500 IMG_2201.jpg\n\u2502   \u2514\u2500\u2500 IMG_2202.jpg\n\u2514\u2500\u2500 Product_Table.xlsx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">After analyzing the table fields, directories, and filenames, the data can be organized as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CUP-500-BLK\/\n\u251c\u2500\u2500 CUP-500-BLK-MAIN-01.jpg\n\u251c\u2500\u2500 CUP-500-BLK-DETAIL-02.jpg\n\u2514\u2500\u2500 CUP-500-BLK-SIZE-03.jpg\n\nCUP-500-WHT\/\n\u251c\u2500\u2500 CUP-500-WHT-MAIN-01.jpg\n\u2514\u2500\u2500 CUP-500-WHT-DETAIL-02.jpg<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Create a unique SKU based on the product table<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The table may only contain:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Item Number<\/th><th>Color<\/th><th>Dimensions<\/th><\/tr><\/thead><tbody><tr><td>P100<\/td><td>BLACK<\/td><td>L<\/td><\/tr><tr><td>P100<\/td><td>WHITE<\/td><td>L<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Use on its own <code>P100<\/code> It is not possible to distinguish between the two products. The tools can be combined as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P100-BLACK-L\nP100-WHITE-L<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The Official Release Wizard automatically suggests combined SKUs when it detects duplicate product numbers and overlapping color or size fields.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Identify the purpose of the image<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Common image roles built into the tool:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Internal Roles<\/th><th>Common Meanings<\/th><\/tr><\/thead><tbody><tr><td><code>MAIN<\/code><\/td><td>Main Image, Featured Image, White-Background Image, Hero<\/td><\/tr><tr><td><code>FRONT<\/code><\/td><td>Front View<\/td><\/tr><tr><td><code>BACK<\/code><\/td><td>Rear View<\/td><\/tr><tr><td><code>SIDE<\/code><\/td><td>Side View<\/td><\/tr><tr><td><code>TOP<\/code><\/td><td>Top Image<\/td><\/tr><tr><td><code>BOTTOM<\/code><\/td><td>Image at the bottom<\/td><\/tr><tr><td><code>DETAIL<\/code><\/td><td>Detail shots, close-ups<\/td><\/tr><tr><td><code>SIZE<\/code><\/td><td>Dimension Drawings, Specification Drawings, Parameter Drawings<\/td><\/tr><tr><td><code>LIFESTYLE<\/code><\/td><td>Scene photos, model photos, lifestyle photos<\/td><\/tr><tr><td><code>PACKAGE<\/code><\/td><td>Packaging Images, Outer Box Images<\/td><\/tr><tr><td><code>ACCESSORY<\/code><\/td><td>Parts Diagram, Parts List<\/td><\/tr><tr><td><code>INSTRUCTIONS<\/code><\/td><td>Illustrations, Installation Diagrams, Tutorial Images<\/td><\/tr><tr><td><code>CERTIFICATE<\/code><\/td><td>Certificate Image, Certification Image<\/td><\/tr><tr><td><code>OTHER<\/code><\/td><td>Unidentified Character<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Unidentified images are set by default to <code>OTHER<\/code>...it won't arbitrarily assume it's the main image.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Batch-generate images for various purposes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A single set of images can generate multiple output options. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retain the original format; only organize and rename;<\/li>\n\n\n\n<li>Large images on the website: WebP;<\/li>\n\n\n\n<li>Website thumbnails in WebP format;<\/li>\n\n\n\n<li>Standard 2000\u00d72000 JPG;<\/li>\n\n\n\n<li>HD Customer Package.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. Identifying Problems Before Output<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tools that can check:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The image is corrupted or cannot be read;<\/li>\n\n\n\n<li>Insufficient resolution;<\/li>\n\n\n\n<li>The file is too large;<\/li>\n\n\n\n<li>Main image missing;<\/li>\n\n\n\n<li>There are not enough images for each SKU;<\/li>\n\n\n\n<li>Exactly the same image;<\/li>\n\n\n\n<li>Images suspected of being duplicates or similar;<\/li>\n\n\n\n<li>The image is blurry;<\/li>\n\n\n\n<li>Are the four corners of the main image close to white?;<\/li>\n\n\n\n<li>Does the PNG file have a transparency channel?;<\/li>\n\n\n\n<li>Was the image not matched to an SKU?<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">II. Who Is This For?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Foreign Trade Factory<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ideal for organizing product images exchanged between suppliers, photographers, and sales representatives, and for packaging and delivering them to overseas customers by product number or SKU.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sellers on platforms such as Amazon and eBay<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is a good time to standardize product image names, categories, sizes, and catalogs before the official upload, and to check for issues such as missing main images or duplicate images.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Operating Shopify, WooCommerce, and Standalone Websites<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ideal for generating high-resolution WebP images and thumbnails, reducing the file size of web images, and maintaining a clear SKU file structure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Product Photography Studio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ideal for quickly organizing raw footage into the directories, filenames, and specifications required by the client.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cross-Border E-commerce Management Team<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ideal for storing different rules and output templates for multiple clients, multiple stores, and multiple product lines.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">III. Quick Start for Beginners: Organizing Your First Set of Photos<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Prepare the Product Spreadsheet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The simplest table requires only one column:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>SKU<\/th><\/tr><\/thead><tbody><tr><td>CUP-500-BLK<\/td><\/tr><tr><td>CUP-500-WHT<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The program's default field mapping is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"source\": \"SKU\",\n  \"target\": \"SKU\",\n  \"transforms\": [\"trim\", \"upper\"],\n  \"required\": true,\n  \"enabled\": true\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The meaning is:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Read the file named <code>SKU<\/code> the table columns;<\/li>\n\n\n\n<li>Remove leading and trailing spaces;<\/li>\n\n\n\n<li>Convert to uppercase;<\/li>\n\n\n\n<li>Treat it as an internal SKU;<\/li>\n\n\n\n<li>This field cannot be left blank.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Tables can also use common column names such as \u201cItem No.,\u201d \u201cProduct Code,\u201d \u201cProduct ID,\u201d \u201cItem No.,\u201d or \u201cSeller SKU.\u201d The New User Wizard will attempt to recognize them automatically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Prepare the images<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Supports the following common methods:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Method A: One folder per SKU<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>images\/\n\u251c\u2500\u2500 CUP-500-BLK\/\n\u2502   \u251c\u2500\u2500 MAIN.jpg\n\u2502   \u251c\u2500\u2500 DETAIL.jpg\n\u2502   \u251c\u2500\u2500 SIZE.jpg\n\u2502   \u2514\u2500\u2500 LIFESTYLE.jpg\n\u2514\u2500\u2500 CUP-500-WHT\/\n    \u251c\u2500\u2500 MAIN.jpg\n    \u251c\u2500\u2500 DETAIL.jpg\n    \u251c\u2500\u2500 SIZE.jpg\n    \u2514\u2500\u2500 LIFESTYLE.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is the most reliable and easiest way to identify it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Method B: Include the SKU in the filename<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>CUP-500-BLK-MAIN-01.jpg\nCUP-500-BLK-DETAIL-02.jpg\nCUP-500-WHT-MAIN-01.jpg\nCUP-500-WHT-DETAIL-02.jpg<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Method C: Package the entire directory into a ZIP file<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>product-images.zip<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The tool will safely extract the files while preserving the relative directory structure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Select the Beginner's Guide<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We recommend selecting the following for your first use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Beginner's Guide (Recommended)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The official version includes four main presets:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Beginner's Guide (Recommended)<\/strong>: Automatically identify tables, catalogs, SKUs, and image roles, and proceed to analysis and verification;<\/li>\n\n\n\n<li><strong>Sort by SKU (General)<\/strong>: Matches directory or file names and outputs standard JPG files and a report;<\/li>\n\n\n\n<li><strong>WebP for Independent Websites<\/strong>: Generate large images and thumbnails for the website;<\/li>\n\n\n\n<li><strong>Quality inspection only; no conversion<\/strong>: Do not generate an image version; output only the analysis, mapping, and quality inspection reports.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Upload Forms and Images<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After uploading, the system will first create a task and then analyze it:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How many tables were found?;<\/li>\n\n\n\n<li>How many product records were retrieved;<\/li>\n\n\n\n<li>How many images were found?;<\/li>\n\n\n\n<li>How many SKUs were identified;<\/li>\n\n\n\n<li>How many cards were successfully matched?;<\/li>\n\n\n\n<li>How many unmatched or conflicting items are there?;<\/li>\n\n\n\n<li>Which image characters were identified?<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Confirm the Analysis Results<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You must review the analysis confirmation page before processing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key Areas to Inspect:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is the SKU correct?;<\/li>\n\n\n\n<li><code>MAIN<\/code> Is there only one?;<\/li>\n\n\n\n<li><code>DETAIL<\/code>,<code>SIZE<\/code>,<code>LIFESTYLE<\/code> Whether the allocation is correct;<\/li>\n\n\n\n<li>Has it occurred? <code>shots<\/code>,<code>images<\/code>,<code>photos<\/code> General categories such as these are mistakenly identified as SKUs;<\/li>\n\n\n\n<li>Are there any unmatched images?;<\/li>\n\n\n\n<li>Are there any roles that need to be modified manually?<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: View the simulation output<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The system will simulate the ZIP structure that might be generated based on the current output scheme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>JPG\/\n\u251c\u2500\u2500 CUP-500-BLK\/\n\u2502   \u251c\u2500\u2500 CUP-500-BLK-MAIN-01.jpg\n\u2502   \u251c\u2500\u2500 CUP-500-BLK-DETAIL-02.jpg\n\u2502   \u2514\u2500\u2500 CUP-500-BLK-SIZE-03.jpg\n\u2514\u2500\u2500 CUP-500-WHT\/\n    \u2514\u2500\u2500 ...\n\n_reports\/\n\u251c\u2500\u2500 manifest.csv\n\u251c\u2500\u2500 mapping.csv\n\u251c\u2500\u2500 quality-report.csv\n\u251c\u2500\u2500 analysis.json\n\u2514\u2500\u2500 task-config.json<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">At this point, it is possible to detect this early:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Duplicate file names;<\/li>\n\n\n\n<li>The template variable is empty;<\/li>\n\n\n\n<li>Main image missing;<\/li>\n\n\n\n<li>The output path is too long;<\/li>\n\n\n\n<li>Too many output options;<\/li>\n\n\n\n<li>The expected output quantity is abnormal.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Confirm and Process<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once the process is complete, you will receive a ZIP file and a pickup code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please save your pickup code. Even if you refresh the page or switch devices, you can still look up and download valid results on the pickup page.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">IV. Understanding SKU Mapping<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\"Mapping\" means telling the system which product a particular image belongs to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The official version uses two mapping rules by default:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>First-level categories exactly match known SKUs;<\/li>\n\n\n\n<li>The file name contains a known SKU, and the longest SKU is matched first.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">1. First-Level Directory Matching<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Image:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>images\/CUP-500-BLK\/MAIN.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The table contains:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CUP-500-BLK<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The system reads the top-level parent directory <code>CUP-500-BLK<\/code>, which exactly matches the SKU in the table.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default rule structure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"Match known SKUs at the top-level directory\",\n  \"source\": \"parent1\",\n  \"mode\": \"exact\",\n  \"target_field\": \"SKU\",\n  \"transforms\": [\"trim\", \"upper\", \"underscore_to_dash\"],\n  \"enabled\": true,\n  \"stop\": true\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Specifically:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>source: parent1<\/code>: Read the top-level parent directory of the image;<\/li>\n\n\n\n<li><code>mode: exact<\/code>: Must be exactly equal;<\/li>\n\n\n\n<li><code>target_field: SKU<\/code>: Matches the SKU field in the product record;<\/li>\n\n\n\n<li><code>underscore_to_dash<\/code>: Replace all underlines with hyphens;<\/li>\n\n\n\n<li><code>stop: true<\/code>: Once a match is found, the subsequent rules are not executed.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. The file name contains the SKU<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Image:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>factory_CUP-500-BLK_MAIN_01.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The system can be found in the filename:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CUP-500-BLK<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Default rule structure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"File name contains a known SKU\",\n  \"source\": \"stem\",\n  \"mode\": \"longest_contains\",\n  \"target_field\": \"SKU\",\n  \"transforms\": [\"trim\", \"upper\", \"underscore_to_dash\"],\n  \"enabled\": true,\n  \"stop\": true\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>stem<\/code> Indicates a filename without an extension.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>longest_contains<\/code> It's very important. For example, the product table contains both:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CUP-500\nCUP-500-BLK<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The file name is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CUP-500-BLK-MAIN<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The system gives priority to longer, more specific <code>CUP-500-BLK<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. General Directory Filtering<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The official version includes the following built-in general index terms:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>images\nimage\nimgs\nphotos\nphoto\nshots\nshot\npictures\npic\nmedia\nimages\nproduct images\nproduct-images<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These catalogs are typically just containers for assets and should not be used directly as SKUs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Supplier-A\/BLACK\/shots\/factory_P100-BLACK-L_MAIN_01.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The system will not simply because <code>shots<\/code> If it is the parent directory, then the SKU is interpreted as <code>SHOTS<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">V. Combination SKUs: Product Number, Color, and Size<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Assuming the \"Products\" table is as follows:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Item Number<\/th><th>Color (Chinese)<\/th><th>Dimensions<\/th><\/tr><\/thead><tbody><tr><td>P100<\/td><td>ferrous<\/td><td>L<\/td><\/tr><tr><td>P100<\/td><td>fig. reactionary<\/td><td>L<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Because the item numbers are duplicates, the wizard will combine them:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{BASE}-{COLOR}-{SIZE_CODE}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Result:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P100-BLACK-L\nP100-WHITE-L<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Corresponding Configuration Approach:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"field_mappings\": [\n    {\n      \"source\": \"Item Number\",\n \"target\": \"BASE\",\n \"transforms\": [\"trim\", \"upper\"],\n \"required\": true,\n \"enabled\": true\n    },\n    {\n \"source\": \"Color (Chinese)\",\n \"target\": \"COLOR\",\n \"aliases\": {\n \"\u9ed1\u8272\": \"BLACK\",\n \"\u767d\u8272\": \"WHITE\"\n      },\n \"transforms\": [\"trim\", \"upper\"],\n \"enabled\": true\n    },\n    {\n      \"source\": \"Sizes\",\n \"target\": \"SIZE_CODE\",\n \"transforms\": [\"trim\", \"upper\"],\n \"enabled\": true\n    },\n    {\n      \"target\": \"SKU\",\n \"template\": \"{BASE}-{COLOR}-{SIZE_CODE}\",\n      \"transforms\": [\"trim\", \"upper\"],\n \"required\": true,\n \"enabled\": true\n    }\n  ]\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The official version includes a set of common Chinese color aliases, such as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Black \/ black \u2192 BLACK\nWhite \/ white \u2192 WHITE\nRed \/ red \u2192 RED\nBlue \/ blue \u2192 BLUE\nGreen \/ green \u2192 GREEN\nPink \/ pink \u2192 PINK\nGray \/ gray \u2192 GRAY\nYellow \/ yellow \u2192 YELLOW\nPurple \/ purple \u2192 PURPLE\nBrown \/ brown \u2192 BROWN<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If a company has its own color code, such as <code>BK<\/code>,<code>WH<\/code>,<code>BL<\/code>You can modify the alias table in Advanced Settings.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">VI. Image Character Recognition<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The official version identifies characters based on keywords in filenames or paths.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P100-BLACK-L-MAIN-01.jpg\nP100-BLACK-L-DETAIL-02.jpg\nP100-BLACK-L-SIZE-03.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Identified as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>MAIN\nDETAIL\nSIZE<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Built-in character rules use regular expressions for matching. For example, the main image rule recognizes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>MAIN\nHERO\nMain Image\nFeatured Image\nWhite Background Image<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example Rules:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"Main Image\",\n  \"source\": \"stem\",\n  \"mode\": \"regex\",\n  \"pattern\": \"(^|[-_\\\\s]) (MAIN|HERO|Main Image|Featured Image|White Background Image)([-_\\\\s]|$)\",\n  \"role\": \"MAIN\",\n  \"enabled\": true,\n  \"ignore_case\": true\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Note that backslashes in JSON must be written as double backslashes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\\s  is written as \\\\s in a JSON string<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Why are unidentified characters classified as \"OTHER\"?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is to prevent errors in automation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the system cannot determine whether an image is MAIN, DETAIL, or SIZE, the safest course of action is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OTHER<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of automatically selecting the main image based on the file order.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Users can manually set <code>OTHER<\/code> Change it to the correct character.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">VII. Detailed Explanation of the Output Plan<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">An output specification describes \u201chow images should be generated, where they should be placed, and what they should be named.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default standard JPG output in the official version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"Standard JPG\",\n  \"enabled\": true,\n  \"format\": \"JPEG\",\n  \"width\": 2000,\n  \"height\": 2000,\n  \"resize_mode\": \"fit\",\n  \"background\": \"#ffffff\",\n  \"quality\": 88,\n  \"max_kb\": 0,\n  \"folder_template\": \"{SKU}\",\n  \"filename_template\": \"{SKU}-{ROLE}-{INDEX:02}.{EXT}\"\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">1. format: Output format<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common values:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>JPEG\nPNG\nWEBP\nORIGINAL<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>JPEG<\/code>: Suitable for platform product images and general delivery;<\/li>\n\n\n\n<li><code>PNG<\/code>: Suitable for images with transparent backgrounds or text;<\/li>\n\n\n\n<li><code>WEBP<\/code>: Suitable for standalone websites and web pages;<\/li>\n\n\n\n<li><code>ORIGINAL<\/code>: Retain the original format; only organize, name, and package the files.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. width \/ height: Target canvas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"width\": 2000,\n\"height\": 2000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Indicates that the target canvas is 2000\u00d72000.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. resize_mode: Resizing mode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Commonly Used in the Official Version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fit<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>fit<\/code> The image will be placed on the target canvas while maintaining its original aspect ratio; it will not be forced to stretch. The remaining area will be filled with the background color.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. background: background color<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example, pure white:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"background\": \"#ffffff\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. Quality: Output quality<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JPEG and WebP use quality values to control encoding.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"quality\": 88<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The higher the quality, the larger the file usually is.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. max_kb: Target volume<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example, presets for large website images:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"max_kb\": 500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The program will attempt to reduce the encoding quality to bring the file as close as possible to the target size. However, whether complex scenes can achieve the exact size still depends on the image content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"max_kb\": 0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Indicates that no target volume is set.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. folder_template: Directory template<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"folder_template\": \"Website\/{SKU}\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Website\/CUP-500-BLK\/<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. filename_template: File name template<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"filename_template\": \"{SKU}-{ROLE}-{INDEX:02}.{EXT}\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CUP-500-BLK-MAIN-01.jpg\nCUP-500-BLK-DETAIL-02.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>{INDEX:02}<\/code> Represent a two-digit number:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>01\n02\n03<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">VIII. Built-in Output Presets in the Official Version<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. Standard JPG<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Dimensions: 2000\u00d72000\nFormat: JPEG\nMode: fit\nBackground: white\nQuality: 88\nDirectory: {SKU}\nFile: {SKU}-{ROLE}-{INDEX:02}.{EXT}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. WebP High-Resolution Images for Independent Websites<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Dimensions: 1600\u00d71600\nFormat: WEBP\nQuality: 82\nTarget size: 500 KB\nDirectory: Website\/{SKU}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Thumbnails for Independent Websites<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Dimensions: 500\u00d7500\nFormat: WEBP\nQuality: 78\nTarget Size: 160 KB\nDirectory: Website\/{SKU}\/thumb\nFile Name Suffix: -thumb<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Restore the original formatting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When the wizard is set to \u201cSort by SKU,\u201d the following can be generated:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Format: ORIGINAL\nKeep original format\nCreate a directory by SKU\nUse standardized naming conventions<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. HD Customer Package<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Dimensions: 3000\u00d73000\nFormat: JPEG\nQuality: 95\nDirectory: HD\/{SKU}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">IX. Quality Inspection Configuration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Default quality rules for the official release:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"min_width\": 1000,\n  \"min_height\": 1000,\n  \"max_file_mb\": 20,\n  \"min_images_per_sku\": 1,\n  \"required_roles\": [\"MAIN\"],\n  \"exact_duplicates\": true,\n  \"perceptual_duplicates\": true,\n  \"phash_distance\": 4,\n  \"blur_check\": true,\n  \"blur_threshold\": 80,\n  \"white_corners\": false,\n  \"white_corner_ratio\": 0.95\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">1. Minimum Size<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>min_width\nmin_height<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Images that do not meet the requirements will be marked as having insufficient resolution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Minimum number of images per SKU<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>min_images_per_sku<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if you set this to 5, a warning will appear for SKUs with fewer than 5 units.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Essential Roles<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\"required_roles\": [\"MAIN\"]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This means that each SKU must have at least one main image.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also add:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[\"MAIN\", \"SIZE\"]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Complete Duplicate Check<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\"exact_duplicates\": true<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Used to find files with exactly the same content.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Detection of Near-Duplicates<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\"perceptual_duplicates\": true<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Use perceptual hashing to check for images with a high degree of compositional similarity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the subject, background, and composition of a product image are very similar, a low-risk alert may be triggered. This should be used as a clue for manual review and should not directly replace human judgment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Blur Detection<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>blur_check\nblur_threshold<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Used to indicate images that may be blurry. Images with white backgrounds, light-colored images, and photos with depth of field may result in false positives; therefore, the results should be reviewed manually in conjunction with the thumbnails.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. White Square Check<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>white_corners\nwhite_corner_ratio<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Suitable for risk checks on main product images with white backgrounds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The \u201cQuality Inspection Only, No Conversion\u201d preset will enable the white corner check and will not generate an image output; it will only generate a report.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. What reports are included in the ZIP file?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The official output includes <code>_reports<\/code> Table of Contents.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">manifest.csv<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Record each file that is actually generated:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SKU;<\/li>\n\n\n\n<li>Characters;<\/li>\n\n\n\n<li>Relative path to the source;<\/li>\n\n\n\n<li>Output\u65b9\u6848;<\/li>\n\n\n\n<li>Output file;<\/li>\n\n\n\n<li>Width and height;<\/li>\n\n\n\n<li>Format;<\/li>\n\n\n\n<li>File size;<\/li>\n\n\n\n<li>SHA-256.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">mapping.csv<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Record the mapping results between images, SKUs, and characters:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Source path;<\/li>\n\n\n\n<li>SKU;<\/li>\n\n\n\n<li>Characters;<\/li>\n\n\n\n<li>Status.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">quality-report.csv<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Record quality inspection issues:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SKU;<\/li>\n\n\n\n<li>Relative path to the source;<\/li>\n\n\n\n<li>Question;<\/li>\n\n\n\n<li>Severity;<\/li>\n\n\n\n<li>Publicly accessible instructions.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Public reports will not include absolute server paths, administrator error stacks, or keys.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">analysis.json<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Save the analysis summary and mapping data for easy review.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">task-config.json<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Save the public configuration actually used by this task so that the processing rules can be reproduced in the future.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">XI. Analyze Images Only; Do Not Convert Them<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes users just want to check if the source material is complete and don't want to generate a new image.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Quality inspection only; no conversion<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The preset:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"profiles\": []<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, the ZIP file contains only the report and no processed images.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is normal behavior; it is not a malfunction.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. Introduction to Advanced JSON Configuration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Regular users do not need to write JSON directly. We recommend using the wizard and visual configuration first, and then exporting the current configuration as a template.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">JSON Basics<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"enabled\": true,\n  \"quality\": 82,\n  \"roles\": [\"MAIN\", \"DETAIL\"]\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Rules:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Object Usage <code>{}<\/code>;<\/li>\n\n\n\n<li>Using Lists <code>[]<\/code>;<\/li>\n\n\n\n<li>Strings must be enclosed in double quotes;<\/li>\n\n\n\n<li>Boolean Value Writing <code>true<\/code> maybe <code>false<\/code>;<\/li>\n\n\n\n<li>Do not enclose numbers in quotation marks;<\/li>\n\n\n\n<li>There must be no extra commas after the last item.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Field Mapping<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"source\": \"Item Number\",\n  \"target\": \"SKU\",\n  \"transforms\": [\"trim\", \"upper\"],\n  \"required\": true,\n  \"enabled\": true\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Candidate Source Column<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When different suppliers use different column names:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"candidate_sources\": [\"SKU\", \"Item Number\", \"Product Code\"],\n  \"target\": \"SKU\",\n  \"transforms\": [\"trim\", \"upper\"]\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The system uses the first valid field in sequence.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Template Combinations<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"target\": \"SKU\",\n  \"template\": \"{BASE}-{COLOR}-{SIZE_CODE}\",\n  \"transforms\": [\"trim\", \"upper\"],\n  \"required\": true,\n  \"enabled\": true\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Extracting SKUs Using Regular Expressions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">File Name:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>factory_P100-BLACK-L_MAIN_01.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Rules:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"Extract SKU from factory filename\",\n  \"source\": \"stem\",\n  \"mode\": \"regex\",\n  \"pattern\": \"^factory_(?P.+?)_(?:MAIN|DETAIL|SIZE|LIFESTYLE)(?:_\\\\d+)?$\",\n  \"group\": \"sku\",\n  \"target_field\": \"SKU\",\n  \"transforms\": [\"trim\", \"upper\", \"underscore_to_dash\"],\n  \"enabled\": true,\n  \"stop\": true\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Explanation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>^factory_<\/code>: File names must end with <code>factory_<\/code> Introduction;<\/li>\n\n\n\n<li><code>(?P.+?)<\/code>: Capture SKU;<\/li>\n\n\n\n<li><code>MAIN|DETAIL|SIZE|LIFESTYLE<\/code>: Allowed role terms;<\/li>\n\n\n\n<li><code>\\\\d+<\/code>: One or more digits;<\/li>\n\n\n\n<li><code>group: sku<\/code>: Using Named Capture Groups <code>SKU<\/code>;<\/li>\n\n\n\n<li>In JSON, backslashes must be escaped as <code>\\\\<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Regular Expression Security Recommendations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Regular expressions should, as much as possible:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Has a clear beginning <code>^<\/code> And the ending <code>$<\/code>;<\/li>\n\n\n\n<li>Use clear delimiters;<\/li>\n\n\n\n<li>Avoid infinite nesting and overly complex backtracking;<\/li>\n\n\n\n<li>Start by testing with a small sample;<\/li>\n\n\n\n<li>Review the sample output before processing the entire batch of images.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">XIII. Recommended Path from Beginner to Expert<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 1: Using the Standards Catalog<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First, use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SKU\/\n\u251c\u2500\u2500 MAIN.jpg\n\u251c\u2500\u2500 DETAIL.jpg\n\u2514\u2500\u2500 SIZE.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Select \"New User Wizard\" or \"Sort by SKU.\"<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 2: Learning Table Field Mapping<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Master:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>source<\/code><\/li>\n\n\n\n<li><code>target<\/code><\/li>\n\n\n\n<li><code>transforms<\/code><\/li>\n\n\n\n<li><code>aliases<\/code><\/li>\n\n\n\n<li><code>template<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 3: Establishing a Unified Corporate Naming Convention<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Recommended format:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{SKU}-{ROLE}-{INDEX:02}.{EXT}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We also ask that photographers or vendors include the SKU and character in the file names whenever possible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 4: Developing Output Strategies for Different Purposes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Website WebP\nPlatform Standard JPG\nClient HD Package\nOriginal Format Archive Package<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Save and Reuse Advanced Configurations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Will be verified:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Field mapping;<\/li>\n\n\n\n<li>SKU Rules;<\/li>\n\n\n\n<li>Character Rules;<\/li>\n\n\n\n<li>Output\u65b9\u6848;<\/li>\n\n\n\n<li>Quality Inspection Rules;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Save as an internal company template.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">XIV. A Complete Case Study<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">An international trade company has a handbag with the same product code but different colors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Table:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Item Number<\/th><th>Color (Chinese)<\/th><th>Dimensions<\/th><th>Platform Item Number<\/th><\/tr><\/thead><tbody><tr><td>P100<\/td><td>ferrous<\/td><td>L<\/td><td>AMZ-P100-BLK-L<\/td><\/tr><tr><td>P100<\/td><td>fig. reactionary<\/td><td>L<\/td><td>AMZ-P100-WHT-L<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Image:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Supplier-A\/\n\u251c\u2500\u2500 BLACK\/\n\u2502   \u2514\u2500\u2500 shots\/\n\u2502 \u251c\u2500\u2500 factory_P100-BLACK-L_MAIN_01.jpg\n\u2502 \u2514\u2500\u2500 factory_P100-BLACK-L_DETAIL_02.jpg\n\u2514\u2500\u2500 WHITE\/\n    \u2514\u2500\u2500 shots\/\n \u251c\u2500\u2500 factory_P100-WHITE-L_MAIN_01.jpg\n \u2514\u2500\u2500 factory_P100-WHITE-L_DETAIL_02.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Orientation Session:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Duplicate \"item numbers\" were found;<\/li>\n\n\n\n<li>Identify \u201ccolor in Chinese\u201d and \u201csize\u201d;<\/li>\n\n\n\n<li>Convert black and white to <code>BLACK<\/code>,<code>WHITE<\/code>;<\/li>\n\n\n\n<li>Bundle SKU;<\/li>\n\n\n\n<li>Ignore the General directory <code>shots<\/code>;<\/li>\n\n\n\n<li>Match SKUs based on filenames;<\/li>\n\n\n\n<li>Identify MAIN and DETAIL;<\/li>\n\n\n\n<li>Proceed to analysis and confirmation;<\/li>\n\n\n\n<li>Analog Output Directory;<\/li>\n\n\n\n<li>Generate a ZIP file based on the selected option.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P100-BLACK-L\/\n\u251c\u2500\u2500 P100-BLACK-L-MAIN-01.jpg\n\u2514\u2500\u2500 P100-BLACK-L-DETAIL-02.jpg\n\nP100-WHITE-L\/\n\u251c\u2500\u2500 P100-WHITE-L-MAIN-01.jpg\n\u2514\u2500\u2500 P100-WHITE-L-DETAIL-02.jpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you enable WebP for your website at the same time:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Website\/\n\u251c\u2500\u2500 P100-BLACK-L\/\n\u2502   \u251c\u2500\u2500 P100-BLACK-L-MAIN-01.webp\n\u2502   \u2514\u2500\u2500 P100-BLACK-L-DETAIL-02.webp\n\u2514\u2500\u2500 P100-WHITE-L\/\n    \u2514\u2500\u2500 ...<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">XV. Frequently Asked Questions<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Why are all the images being identified as \"shots\"?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>shots<\/code> This is a common, generic directory and should not be used as an SKU. We recommend using the wizard to have the system match known SKUs based on the filename or a higher-level directory.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why does the same SKU have two MAIN entries?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Both filenames may contain <code>MAIN<\/code>,<code>Main Image<\/code> maybe <code>HERO<\/code>. On the analysis confirmation page, change the extra images to <code>DETAIL<\/code>,<code>SIZE<\/code>,<code>LIFESTYLE<\/code> maybe <code>OTHER<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why does the ZIP file contain only the report and no images?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No output profile has been enabled for the current task, or the \"Quality Check Only, No Conversion\" preset is being used. Please enable at least one of the following: \"Standard JPG,\" \"Preserve Original Format,\" or \"WebP for Websites.\"<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why was the image flagged as a near duplicate?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Perceptual hashing considers compositions to be very similar. In product images, the subject often matches the background, so near-duplicates are merely a warning. Detecting exact duplicates is generally more definitive.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why didn't the image match?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common Causes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The SKU in the table does not match the catalog or file name;<\/li>\n\n\n\n<li>Horizontal bars and underscores are used differently;<\/li>\n\n\n\n<li>The file name does not include the full SKU;<\/li>\n\n\n\n<li>Place the images in the general directory;<\/li>\n\n\n\n<li>The product table is missing the corresponding record.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What if you don't know how to write JSON?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Start by using the Beginner's Guide. Once you've confirmed that the task was successful, export the configuration and learn each item one by one. JSON is an advanced method for reusability; it is not a prerequisite for using the tool.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">XVI. Recommendations for Use<\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Make sure the SKUs in the product table are as unique as possible;<\/li>\n\n\n\n<li>The directory or file name must contain the full SKU at least once;<\/li>\n\n\n\n<li>Include in the file name <code>MAIN<\/code>,<code>DETAIL<\/code>,<code>SIZE<\/code> and other character terms;<\/li>\n\n\n\n<li>Pre-processing checks, analysis, verification, and simulation output;<\/li>\n\n\n\n<li>First, test the new rules with 2\u20135 SKUs, then process the entire batch of assets;<\/li>\n\n\n\n<li>Keep a backup of the original image;<\/li>\n\n\n\n<li>Save the verified configuration as a team template;<\/li>\n\n\n\n<li>Quality inspection results are intended to assist manual judgment and should not mechanically replace operational reviews.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The part of organizing product images that\u2019s truly time-consuming isn\u2019t usually a single format conversion, but rather:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Which SKU does the image belong to?;<\/li>\n\n\n\n<li>What role do images play?;<\/li>\n\n\n\n<li>Are there any missing, duplicate, or corrupted images?;<\/li>\n\n\n\n<li>What sizes and formats should be used for different purposes;<\/li>\n\n\n\n<li>How to ultimately name, organize into subdirectories, and deliver the files.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Once these rules are clearly defined, image organization can evolve from a scattered, manual process into a workflow that can be previewed, verified, and repeated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For export-oriented factories, cross-border sellers, independent website operators, photography studios, and third-party management teams, this means fewer repetitive tasks, a lower risk of mismatches, and a more reusable approach to product asset management.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Try our product image organization and SKU bundling tool today. Start with a small number of test products to build an image workflow that works best for your team.<\/p>\n<\/blockquote>\n\n\n\n<!-- Livetops \u5546\u54c1\u56fe\u7247\u5de5\u4f5c\u6d41 iframe \u4f53\u9a8c\u533a\u57df -->\n<div id=\"livetops-image-workflow\" class=\"livetops-image-embed\">\n  <div class=\"livetops-image-embed__header\">\n    <div>\n      <strong>Online Demo: Product Image Organization and SKU Bundling Tool<\/strong>\n      <span>\n        Use the New User Wizard to upload product spreadsheets and images, and experience the automated analysis, SKU mapping,\nimage role recognition, output preview, and ZIP packaging process.\n      <\/span>\n    <\/div>\n\n    <a\n      href=\"https:\/\/www.livetops.com:61019\/en\/\"\n      target=\"_blank\"\n      rel=\"noopener noreferrer\"\n    >\n      Opens in a new window\n    <\/a>\n  <\/div>\n\n  <iframe\n    class=\"livetops-image-embed__frame\"\n    src=\"https:\/\/www.livetops.com:61019\/\"\n    title=\"Livetops Product Image Organization and SKU Bundling Tool\"\n    loading=\"lazy\"\n    referrerpolicy=\"strict-origin-when-cross-origin\"\n    allow=\"clipboard-read; clipboard-write\"\n    allowfullscreen\n><\/iframe>\n\n  <p class=\"livetops-image-embed__fallback\">\n    If the tool does not display properly, you can\n    <a\n      href=\"https:\/\/www.livetops.com:61019\/en\/\"\n      target=\"_blank\"\n      rel=\"noopener noreferrer\"\n    >\n      Click here to open in a new window\n    <\/a>\n    .\n  <\/p>\n<\/div>\n\n<style>\n.livetops-image-embed {\n  width: 100%;\n  max-width: 100%;\n  margin: 36px 0;\n  scroll-margin-top: 24px;\n}\n\n.livetops-image-embed__header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 18px;\n  margin: 0 0 12px;\n  padding: 14px 16px;\n  border: 1px solid #d9e3f0;\n  border-radius: 12px;\n  background: linear-gradient(135deg, #f7faff, #f0f8f8);\n  box-sizing: border-box;\n}\n\n.livetops-image-embed__header > div {\n  display: flex;\n  min-width: 0;\n  flex-direction: column;\n  gap: 4px;\n}\n\n.livetops-image-embed__header strong {\n  color: #17335b;\n  font-size: 15px;\n  line-height: 1.45;\n}\n\n.livetops-image-embed__header span {\n  color: #607089;\n  font-size: 13px;\n  line-height: 1.55;\n}\n\n.livetops-image-embed__header > a {\n  flex: 0 0 auto;\n  padding: 8px 12px;\n  border: 1px solid #357df2;\n  border-radius: 9px;\n  color: #286bd4;\n  font-size: 13px;\n  font-weight: 700;\n  text-decoration: none;\n  white-space: nowrap;\n  transition:\n    background 0.2s ease,\n    color 0.2s ease,\n    transform 0.2s ease;\n}\n\n.livetops-image-embed__header > a:hover {\n  background: #357df2;\n  color: #ffffff;\n  transform: translateY(-1px);\n}\n\n.livetops-image-embed__frame {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  height: clamp(620px, 82vh, 900px);\n  border: 4px solid #7b8798;\n  border-radius: 12px;\n  background: #ffffff;\n  box-sizing: border-box;\n  box-shadow: 0 16px 38px rgba(23, 51, 91, 0.12);\n}\n\n.livetops-image-embed__fallback {\n  margin: 12px 0 0;\n  color: #66758b;\n  font-size: 13px;\n  line-height: 1.6;\n  text-align: center;\n}\n\n.livetops-image-embed__fallback a {\n  color: #286bd4;\n  font-weight: 700;\n}\n\n@media (max-width: 768px) {\n  .livetops-image-embed {\n    margin: 28px 0;\n  }\n\n  .livetops-image-embed__header {\n    align-items: flex-start;\n    flex-direction: column;\n    gap: 10px;\n  }\n\n  .livetops-image-embed__frame {\n    height: clamp(560px, 76vh, 760px);\n    border-width: 3px;\n  }\n}\n\n@media (max-width: 480px) {\n  .livetops-image-embed {\n    margin: 24px 0;\n  }\n\n  .livetops-image-embed__header {\n    padding: 12px;\n  }\n\n  .livetops-image-embed__header > a {\n    width: 100%;\n    text-align: center;\n    box-sizing: border-box;\n  }\n\n  .livetops-image-embed__frame {\n    height: clamp(520px, 72vh, 680px);\n    border-radius: 8px;\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n  .livetops-image-embed__header {\n    border-color: #304761;\n    background: linear-gradient(135deg, #15253a, #132f35);\n  }\n\n  .livetops-image-embed__header strong {\n    color: #edf5ff;\n  }\n\n  .livetops-image-embed__header span {\n    color: #aebed1;\n  }\n\n  .livetops-image-embed__header > a {\n    border-color: #6ca1ff;\n    color: #a9c8ff;\n  }\n\n  .livetops-image-embed__fallback {\n    color: #aebed1;\n  }\n\n  .livetops-image-embed__fallback a {\n    color: #9ec1ff;\n  }\n}\n<\/style>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<!-- Livetops \u5546\u54c1\u56fe\u7247\u5de5\u4f5c\u6d41 AI \u52a9\u624b iframe \u533a\u57df -->\n<div id=\"livetops-product-image-ai\" class=\"livetops-product-image-ai\">\n  <div class=\"livetops-product-image-ai__header\">\n    <div>\n      <strong>Product Image Workflow AI Assistant<\/strong>\n      <span>\n        You can ask questions about the product table, SKU mapping, image roles, output schemes, quality inspection reports,\npickup, and advanced JSON configurations.\n      <\/span>\n    <\/div>\n\n    <a\n      href=\"\/tools\/livetops-product-image-workflow.php\"\n      target=\"_blank\"\n      rel=\"noopener noreferrer\"\n    >\n      Opens in a new window\n    <\/a>\n  <\/div>\n\n  <iframe\n    class=\"livetops-product-image-ai__frame\"\n    src=\"\/tools\/livetops-product-image-workflow.php\"\n    title=\"Livetops Product Image Workflow AI Assistant\"\n    loading=\"lazy\"\n    referrerpolicy=\"strict-origin-when-cross-origin\"\n    allow=\"clipboard-read; clipboard-write\"\n    allowfullscreen\n><\/iframe>\n\n  <p class=\"livetops-product-image-ai__fallback\">\n    If the Assistant isn't displaying properly, you can\n    <a\n      href=\"\/tools\/livetops-product-image-workflow.php\"\n      target=\"_blank\"\n      rel=\"noopener noreferrer\"\n    >\n      Click here to open in a new window\n    <\/a>\n    .\n  <\/p>\n<\/div>\n\n<style>\n.livetops-product-image-ai {\n  width: 100%;\n  max-width: 100%;\n  margin: 36px 0;\n  scroll-margin-top: 24px;\n}\n\n.livetops-product-image-ai__header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 18px;\n  margin: 0 0 12px;\n  padding: 14px 16px;\n  border: 1px solid #d9e3f0;\n  border-radius: 12px;\n  background: linear-gradient(135deg, #f7faff, #f1f7ff);\n  box-sizing: border-box;\n}\n\n.livetops-product-image-ai__header > div {\n  display: flex;\n  min-width: 0;\n  flex-direction: column;\n  gap: 4px;\n}\n\n.livetops-product-image-ai__header strong {\n  color: #17335b;\n  font-size: 15px;\n  line-height: 1.45;\n}\n\n.livetops-product-image-ai__header span {\n  color: #607089;\n  font-size: 13px;\n  line-height: 1.55;\n}\n\n.livetops-product-image-ai__header > a {\n  flex: 0 0 auto;\n  padding: 8px 12px;\n  border: 1px solid #357df2;\n  border-radius: 9px;\n  color: #286bd4;\n  font-size: 13px;\n  font-weight: 700;\n  text-decoration: none;\n  white-space: nowrap;\n  transition:\n    background 0.2s ease,\n    color 0.2s ease,\n    transform 0.2s ease;\n}\n\n.livetops-product-image-ai__header > a:hover {\n  background: #357df2;\n  color: #ffffff;\n  transform: translateY(-1px);\n}\n\n.livetops-product-image-ai__frame {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  height: clamp(620px, 82vh, 900px);\n  border: 4px solid #7b8798;\n  border-radius: 12px;\n  background: #ffffff;\n  box-sizing: border-box;\n  box-shadow: 0 16px 38px rgba(23, 51, 91, 0.12);\n}\n\n.livetops-product-image-ai__fallback {\n  margin: 12px 0 0;\n  color: #66758b;\n  font-size: 13px;\n  line-height: 1.6;\n  text-align: center;\n}\n\n.livetops-product-image-ai__fallback a {\n  color: #286bd4;\n  font-weight: 700;\n}\n\n@media (max-width: 768px) {\n  .livetops-product-image-ai {\n    margin: 28px 0;\n  }\n\n  .livetops-product-image-ai__header {\n    align-items: flex-start;\n    flex-direction: column;\n    gap: 10px;\n  }\n\n  .livetops-product-image-ai__frame {\n    height: clamp(560px, 76vh, 760px);\n    border-width: 3px;\n  }\n}\n\n@media (max-width: 480px) {\n  .livetops-product-image-ai {\n    margin: 24px 0;\n  }\n\n  .livetops-product-image-ai__header {\n    padding: 12px;\n  }\n\n  .livetops-product-image-ai__header > a {\n    width: 100%;\n    text-align: center;\n    box-sizing: border-box;\n  }\n\n  .livetops-product-image-ai__frame {\n    height: clamp(520px, 72vh, 680px);\n    border-radius: 8px;\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n  .livetops-product-image-ai__header {\n    border-color: #304761;\n    background: linear-gradient(135deg, #15253a, #17243f);\n  }\n\n  .livetops-product-image-ai__header strong {\n    color: #edf5ff;\n  }\n\n  .livetops-product-image-ai__header span {\n    color: #aebed1;\n  }\n\n  .livetops-product-image-ai__header > a {\n    border-color: #6ca1ff;\n    color: #a9c8ff;\n  }\n\n  .livetops-product-image-ai__fallback {\n    color: #aebed1;\n  }\n\n  .livetops-product-image-ai__fallback a {\n    color: #9ec1ff;\n  }\n}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>\u25a6 \u5546\u54c1\u56fe\u7247\u6574\u7406\u4e0e SKU \u6253\u5305\u5de5\u5177\u5df2\u4e0a\u7ebf \u4e0a\u4f20\u5546\u54c1\u8868\u683c\u3001\u56fe\u7247\u76ee\u5f55\u6216 ZIP\uff0c\u81ea\u52a8\u5b8c\u6210 SKU \u6620\u5c04\u3001\u89d2\u8272\u8bc6\u522b [&hellip;]<\/p>","protected":false},"author":1,"featured_media":1694,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":{"footnotes":""},"categories":[426],"tags":[429,428],"class_list":["post-1692","post","type-post","status-publish","format-image","has-post-thumbnail","hentry","category-426","tag-sku","tag-428","post_format-post-format-image"],"_links":{"self":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts\/1692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/comments?post=1692"}],"version-history":[{"count":2,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts\/1692\/revisions"}],"predecessor-version":[{"id":1695,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts\/1692\/revisions\/1695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/media\/1694"}],"wp:attachment":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/media?parent=1692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/categories?post=1692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/tags?post=1692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}