آمادهسازی CSV محصولات برای تحویل به طراح فروشگاه اینترنتی در شیراز

برای تحویل CSV به طراح، فایل را با کدگذاری UTF-8، هدرهای دقیق مقصد، SKU پایدار و یکتا، قیمتهای عددیِ توافقشده بر اساس واحد پول مشخص، موجودی، دستهبندی و ارجاع تصویر آماده کنید و برای هر محصول متغیر Parent و variation را روشن بنویسید. پیش از واردسازی کامل، ابتدا چند ردیف را با ساختار واقعی فروشگاه مقصد آزمایش کنید. دادههای این مقاله آموزشی و ساختگیاند.
پیش از ساخت CSV چه چیزهایی را مشخص کنیم؟
ابتدا درباره ساختار فروشگاه مقصد با طراح هماهنگ کنید. نسخه نصبشده WooCommerce ممکن است متفاوت باشد؛ مستندات فعلی درباره برخی تغییرات گردشکار تبدیل و بهروزرسانی از نسخه 11.1 به بعد اطلاع میدهند، بنابراین نباید فرض کنید نسخه نصبشده همان نسخه مستندات است.
- فایل برای ساخت محصول جدید است یا بهروزرسانی محصول موجود؟
- واحد پول و قیمتهای عددی توافقشده چیست؟
- SKUهای قبلی باید حفظ شوند؟
- محصولات متغیر و ویژگیهایشان چگونه پیادهسازی میشوند؟
- تصویرها URL مستقیم و قابلدسترسی دارند یا در رسانه مقصد موجودند؟
برای محصول موجود، ID فقط برای شناسایی و بهروزرسانی همان محصول موجود است و نباید برای ساخت محصول جدید ID تعیین کنید. ID صادرشده از فروشگاه دیگری را نیز بدون بررسی مقصد دوباره استفاده نکنید. از مقصد خروجی واقعی بگیرید، نسخه پشتیبان داشته باشید و واردسازی را ابتدا روی چند ردیف آزمایشی انجام دهید.
راهنمای رسمی WooCommerce Product CSV Importer and Exporter را نزدیک جدول ستونها و پیش از آمادهسازی فایل بررسی کنید؛ نام هدرها و رفتار واردسازی را با خروجی واقعی مقصد تطبیق دهید.
ستونهای ضروری و معنی آنها
| ستون | کاربرد | وضعیت |
|---|---|---|
| Type | simple، variable یا variation | برای ساختار محصول لازم |
| SKU | شناسه پایدار و یکتا | برای همه ردیفهای محصول لازم |
| Name | نام محصول | برای ساخت محصول لازم |
| Published | وضعیت انتشار؛ مقدار -1 یعنی پیشنویس در نمونه آموزشی |
با مقصد تطبیق داده شود |
| Regular price | قیمت عددی، بدون واحد پول و جداکننده هزارگان | برای محصول قابلفروش لازم |
| Stock | مقدار موجودی | وقتی مدیریت موجودی فعال است |
| In stock? | 1 موجود و 0 ناموجود |
با تنظیمات مقصد بررسی شود |
| Categories | دستهبندی محصول | با schema مقصد تطبیق داده شود |
| Images | URL مستقیم یا رسانه موجود در مقصد | برای تصویر باید قابلدسترسی باشد |
| Description | توضیح کامل محصول | مفید برای تحویل محتوا |
| Short description | خلاصه محصول | مفید برای تحویل محتوا |
| Parent | SKU والد برای variation | برای variation لازم |
همه ستونها در همه فروشگاهها الزامی نیستند. بخشی از اطلاعات برای تحویل به طراح لازم است و بخشی فقط در صورت فعالبودن قابلیت مقصد لازم میشود. هدر دقیق، ترتیب، مقادیر و ستونهای واقعی را از نمونه خروجی مقصد بگیرید.
قیمتهای نمونه 100 و 120 فقط واحدهای فرضی آموزشیاند؛ قیمت نهایی باید عدد توافقشده با واحد پول مشخص باشد.
نمونه ساده و نمونه محصول متغیر
در CSV ساده، مقدار Published را -1 نگه میداریم تا نمونه ناخواسته منتشر نشود:
Type,SKU,Name,Published,Regular price,Stock,In stock?,Categories,Images,Description,Short description
simple,BOOK-001,دفتر برنامهریزی روزانه,-1,100,12,1,لوازم اداری > دفتر,https://example.test/images/planner.jpg,دفتر نمونه آموزشی با جلد ساده.,دفتر برنامهریزی آموزشی
URL دامنه example.test عمداً نشانی نمونه و غیرقابلاستفاده است. آن را با URL متعلق به شما که واقعاً قابلدسترسی و بدون نیاز به ورود است جایگزین کنید و این نشانی نمونه را هرگز وارد نکنید.
در یک دموی محلی، همین ردیف ساده بهعلاوه یک ردیف variable و دو ردیف variation استفاده میشود؛ در مجموع چهار ردیف آموزشی. جدول زیر فقط بخشی از ساختار محصول متغیر است و قالب کامل واردسازی نیست:
| Type | SKU | Name | Parent | Attribute 1 name | Attribute 1 value(s) | Attribute 1 visible | Attribute 1 global | Regular price |
|---|---|---|---|---|---|---|---|---|
| variable | DEMO-SHIRT | تیشرت آموزشی | Color | Blue,White | 1 | 0 | ||
| variation | DEMO-SHIRT-B | تیشرت آموزشی آبی | DEMO-SHIRT | Color | Blue | 1 | 0 | 100 |
| variation | DEMO-SHIRT-W | تیشرت آموزشی سفید | DEMO-SHIRT | Color | White | 1 | 0 | 120 |
برای دموی محلی، هدرهای دقیق Attribute 1 visible برابر 1 و Attribute 1 global برابر 0 هستند. در CSV، مقدار چندتایی Blue,White باید داخل کوتیشن باشد:
Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
Color,"Blue,White",1,0
در Categories، ویرگول داخل مقدار فیلد دستهها جداکننده چند دسته است؛ بنابراین کل فیلد را داخل کوتیشن کنید. نمونه "Office > Notebooks, Gifts" یعنی دو دسته جداگانه: مسیر Office > Notebooks و دسته Gifts. اگر نام یک دسته خودش ویرگول دارد، علاوه بر داخل کوتیشن کردن کل فیلد، طبق schema ووکامرس و نمونه خروجی مقصد، ویرگول literal آن نام را با backslash escape کنید؛ مثلاً مقدار یک دسته با نام «Gifts, Seasonal» را مطابق escape مورد انتظار مقصد بنویسید، نه مانند جداکننده دستهها.

نامگذاری تصویر و تحویل کاتالوگ
نام تصویر را از SKU و کاربرد آن بسازید؛ مانند DEMO-SHIRT-front-blue.jpg. برای هر تصویر، SKU، نام فایل، کاربرد، رنگ یا variation و متن جایگزین پیشنهادی را جداگانه ثبت کنید. URL باید مستقیم، عمومی، پایدار و قابلدسترسی باشد؛ لینک وروددار، صفحه واسط یا URL آزمایشی وارد نشود. تصویر شاخص و تصاویر بدنه را از نظر دسترسی و ارتباط با SKU بررسی کنید.
تصویر اول معمولاً نقش تصویر شاخص را دارد. لینک تصویر باید مستقیم و بدون نیاز به ورود، صفحه واسط یا تغییرمسیر ناشناخته باشد. واردکننده هسته WooCommerce الزاماً متن جایگزین رسانه را تنظیم یا ویرایش نمیکند؛ بنابراین فهرست تطبیق تصویر و متن جایگزین را جداگانه به طراح تحویل دهید.

کنترل خطا پیش از تحویل
نمایش CSV کاملِ چهارردیفیِ نمونه آموزشی
Type,SKU,Name,Published,Regular price,Stock,In stock?,Categories,Images,Description,Short description,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
simple,BOOK-001,دفتر برنامهریزی روزانه,-1,100,12,1,لوازم اداری > دفتر,https://example.test/images/planner.jpg,دفتر نمونه آموزشی با جلد ساده.,دفتر برنامهریزی آموزشی,,,,,
variable,DEMO-SHIRT,تیشرت آموزشی,-1,,,1,پوشاک > تیشرت,,محصول والد آموزشی.,,,Color,"Blue,White",1,0
variation,DEMO-SHIRT-B,تیشرت آموزشی آبی,-1,100,5,1,,,,,DEMO-SHIRT,Color,Blue,1,0
variation,DEMO-SHIRT-W,تیشرت آموزشی سفید,-1,120,7,1,,,,,DEMO-SHIRT,Color,White,1,0
فایل باید با UTF-8 ذخیره و با CSV reader استاندارد خوانده شود. نمونه ساده محلی از ردیف BOOK-001 و ردیف variable و دو variation، در مجموع چهار ردیف دارد. خواندن ساختار CSV محلی همین چهار ردیف واقعاً اجرا شد؛ این کار واردسازی WooCommerce نیست.
صفرهای ابتدایی SKU را بهصورت متن حفظ کنید تا هنگام بازکردن فایل در Excel یا ابزارهای مشابه تغییر نکنند. سلولهای فرمولدار را نیز بدون بازبینی تغییر ندهید و برای کنترل احتمال اجرای ناخواسته فرمول در صفحهگسترده، مقدارهایی را که با =، +، - یا @ آغاز میشوند کنترل کنید.
import csv
with open("products.csv", newline="", encoding="utf-8") as f:
rows = list(csv.DictReader(f))
skus = [r["SKU"].strip() for r in rows]
assert len(rows) == 4
assert all(skus)
assert len(skus) == len(set(skus))
assert all(r["Name"].strip() for r in rows)
assert all(r["Type"] in {"simple", "variable", "variation"} for r in rows)
parents = {r["SKU"] for r in rows if r["Type"] == "variable"}
for row in rows:
if row["Type"] == "variation":
assert row.get("Parent") in parents
print(f"validated locally: {len(rows)} rows")
این بررسی فقط خواندن ساختار CSV و ساختار محلی را کنترل میکند. قیمت، موجودی، هدر، تصویر و رفتار بهروزرسانی را با نمونه واقعی مقصد و چند ردیف محدود آزمایش کنید. نسخه مستندات و نسخه نصبشده را یکی فرض نکنید.
چکلیست تحویل به طراح
- کدگذاری UTF-8، جداکننده و کوتیشنها بررسی شدهاند.
- هدرها از خروجی واقعی مقصد گرفته شدهاند.
- SKUها پایدار، غیرخالی و یکتا هستند.
- ID فقط برای بهروزرسانی محصول موجود استفاده شده و ID فروشگاه دیگر کپی نشده است.
- قیمتها عددی و بر اساس واحد پول توافقشدهاند.
- Parent و variationها و ویژگیها دقیقاً با هم منطبقاند.
- Description و Short description در صورت نیاز تحویل داده شدهاند.
- URL تصویرها واقعی، با مجوز استفاده، عمومی و قابلدسترسی هستند.
- نسخه خام، نسخه آماده و تاریخ تغییرات نگهداری شده است.
- ابتدا نسخه پشتیبان، خروجی مقصد و تست چند ردیف انجام شده است.
برای هماهنگی درباره ساختار محتوا و خدمات طراحی سایت فروشگاهی در شیراز، همین چکلیست و نمونه چندردیفی را همراه فایل ارسال کنید.
پرسشهای متداول
آیا تبدیل پسوند Excel به CSV کافی است؟
خیر. UTF-8، هدرهای مقصد، SKU، نوع محصول، قیمت، ویژگیها، دستهبندی، تصویر و قواعد بهروزرسانی باید بررسی شوند.
آیا میتوان همه محصولات را یکباره وارد کرد؟
بهتر است ابتدا نسخه پشتیبان بگیرید، خروجی واقعی مقصد را بررسی کنید و چند ردیف را روی staging یا محیط کنترلشده آزمایش کنید.
آیا میتوان برای محصول جدید ID تعیین کرد؟
خیر. ID برای شناسایی محصول موجود در گردشکار بهروزرسانی است. ID صادرشده از فروشگاه دیگر را نیز بدون تطبیق مقصد استفاده نکنید.
آیا نمونه این مقاله واقعاً در WooCommerce وارد شده است؟
خیر. خواندن ساختار CSV محلی روی چهار ردیف آموزشی شامل BOOK-001، یک variable و دو variation اجرا شد؛ هیچ واردسازی واقعی WooCommerce انجام نشده و سازگاری قطعی با نسخه نصبشده ادعا نمیشود.
منابع فنی
منابع فنی شامل مستند رسمی WooCommerce Product CSV Importer and Exporter و مستند رسمی پایتون درباره ماژول csv است. جزئیات نهایی را با نسخه نصبشده و خروجی واقعی فروشگاه مقصد تطبیق دهید. این منابع در ۸ اکتبر ۲۰۲۶ بررسی شدند.








