امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
جلوگیری از تغییر ناخواسته‌ی شاخه‌ی پیشفرض، هنگام به روز رسانی محصولات با فایل CSV
#1
سی اس وی 
برای جلوگیری از عوض شدن شاخه‌ی پیشفرض محصولاتی که میخواهیم با فایل CSV به روز رسانی کنیم،
باید یکی از فایل‌های پرستاشاپ رو اصلاح کنیم.

توجه‌های لازم، قبل از شروع کار

1- تغییراتی که در این تاپیک گفته شده باید در فایل AdminImportController.php انجام دهید، در 2 حالت زیر از بین رفته و به حالت قبل بر می‌گردند:
الف) در صورت به روز رسانی پرستاشاپ،
ب) در صورت بازگردانی بکاپ سایت به زمانی قبل از انجام این تغییرات.

2- مشخصات متنی محصول (توضیح کوتاه، توضیح کامل، عنوان متا، توضیحات متا) در صورت ویرایش محصول با فایل CSV حذف می‌شوند!
برای جلوگیری از این مشکل، تاپیک «توضیحات محصولات، پس از به روز رسانی با فایل CSV حذف می‌شوند» را بخوانید.

3- محصولاتی که با فایل CSV افزوده یا ویرایش می‌شوند، در جستجوی بخش کاربری فروشگاه، پیدا نخواهند شد.
برای حل این مسئله، تاپیک «اولین اقدام پس از واردسازی یا ویرایش محصولات با فایل CSV چیست؟» را بخوانید.

4- قبل از افزودن یا ویرایش محصول با فایل CSV، از دیتابیس فروشگاه بکاپ بگیرید.

5- هنگام ویرایش محصولات از طریق فایل CSV ابتدا ویرایش 1 محصول را آزمایش کنید.
پس از واردسازی فایل CSV، محصول ویرایش شده را بررسی کنید و در صورت عدم وجود مشکل، کار ویرایش بقیه‌ی محصولات را انجام دهید.

6- اگر منابع هاست شما محدود هستند (قدرت سرور کم است) نباید تعداد زیادی محصول را با فایل CSV اضافه یا ویرایش کنید.
از تعداد کم (30 محصول در یک فایل) شروع کرده و در آینده آن را افزایش دهید تا به طور تجربی حداکثر تعداد محصول در یک فایل را به دست آورید.

7- اگر شاخه‌هایی با نام‌های یکسان دارید، هرگز محصولات را با یک فایل سی.اس.وی که حاوی نام شاخه‌ها است به روز رسانی نکنید.
به جای آن از شناسه‌ی شاخه‌ها در فایل سی.اس.وی استفاده کنید.

مراحل کار
1- ابتدا فایل AdminImportController.php رو از مسیر زیر در هاست خودتون پیدا کنید و ویرایش (Edit) کنید.
کد:
controllers\admin\AdminImportController.php

2- این عبارت رو جستجو کنید:
نکته: اگر این عبارت رو پیدا نکردین و از نسخه‌ی 1.6.0.14 پرستاشاپ استفاده می‌کنید، احتمالاً نیازی به انجام این تغییرات نیست و نسخه‌ی 1.6.0.14 چنین مشکلی نداره! پس چند محصول رو برای آزمایش، با فایل CSV اصلاح کنید تا مطمئن بشید مشکل عوض شدن شاخه‌ی پیشفرض برای شما پیش نمیاد.
کد:
Will update default category if category column is not ignored AND if there is categories that are set in the import file row
می‌تونید با استفاده از جستجوی مرورگرتون (Ctrl+F) کدها رو سریع‌تر پیدا کنید.
با جستجوی عبارت بالا به بخشی از فایل میرسید که شامل کدهای زیر است:

کد php:
// Will update default category if category column is not ignored AND if there is categories that are set in the import file row.
if (isset($product->id_category[0])) {
    
$product->id_category_default = (int)$product->id_category[0];
} else {
    
$defaultProductShop = new Shop($product->id_shop_default);
    
$product->id_category_default Category::getRootCategory(nullValidate::isLoadedObject($defaultProductShop)?$defaultProductShop:null)->id;

Exclamation Exclamation Exclamation توجه کنید که قطعه کدی مشابه همین کدها بلافاصله بعد از قطعه کد مورد نظر ما وجود داره که ما کاری با اون بخش نداریم.
Exclamation این مورد، در تصاویری که انتهای همین مطلب قرار داده شدن، مشخص هست.


پس با دقت کامل و با توجه به تصاویر قبل و بعد از تغییرات،
قطعه کد زیر رو به جای کدهای بالا جایگزین کنید:

کد php:
// Will update default category if category column is not ignored AND if there is categories that are set in the import file row.
if (isset($info['category']) && (is_array($info['category']) || $info['category'])) {
    if (isset(
$product->id_category[0])) {
        
$product->id_category_default = (int)$product->id_category[0];
    } else {
        
$defaultProductShop = new Shop($product->id_shop_default);
        
$product->id_category_default Category::getRootCategory(nullValidate::isLoadedObject($defaultProductShop)?$defaultProductShop:null)->id;
    }


4- فایل رو ذخیره کنید.

5- عملکرد واردسازی محصول از طریق فایل CSV رو در فروشگاهتون تست کنید و اگر مشکلی داشتید به پشتیبانی سیستمی‌ها اطلاع بدین.

تصویر فایل قبل از اصلاح:

[تصویر:  keep_category_default_before.png]

تصویر فایل بعد از اصلاح:

[تصویر:  keep_category_default_after.png]
پاسخ
roseتشکر شده توسط:


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان