2017/01/16، 03:58 PM
برای جلوگیری از عوض شدن شاخهی پیشفرض محصولاتی که میخواهیم با فایل 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) کنید.
2- این عبارت رو جستجو کنید:
نکته: اگر این عبارت رو پیدا نکردین و از نسخهی 1.6.0.14 پرستاشاپ استفاده میکنید، احتمالاً نیازی به انجام این تغییرات نیست و نسخهی 1.6.0.14 چنین مشکلی نداره! پس چند محصول رو برای آزمایش، با فایل CSV اصلاح کنید تا مطمئن بشید مشکل عوض شدن شاخهی پیشفرض برای شما پیش نمیاد.
میتونید با استفاده از جستجوی مرورگرتون (Ctrl+F) کدها رو سریعتر پیدا کنید.
با جستجوی عبارت بالا به بخشی از فایل میرسید که شامل کدهای زیر است:
توجه کنید که قطعه کدی مشابه همین کدها بلافاصله بعد از قطعه کد مورد نظر ما وجود داره که ما کاری با اون بخش نداریم.
این مورد، در تصاویری که انتهای همین مطلب قرار داده شدن، مشخص هست.
پس با دقت کامل و با توجه به تصاویر قبل و بعد از تغییرات،
قطعه کد زیر رو به جای کدهای بالا جایگزین کنید:
4- فایل رو ذخیره کنید.
5- عملکرد واردسازی محصول از طریق فایل 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
با جستجوی عبارت بالا به بخشی از فایل میرسید که شامل کدهای زیر است:
کد 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(null, Validate::isLoadedObject($defaultProductShop)?$defaultProductShop:null)->id;
}
این مورد، در تصاویری که انتهای همین مطلب قرار داده شدن، مشخص هست.
پس با دقت کامل و با توجه به تصاویر قبل و بعد از تغییرات،
قطعه کد زیر رو به جای کدهای بالا جایگزین کنید:
کد 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(null, Validate::isLoadedObject($defaultProductShop)?$defaultProductShop:null)->id;
}
}
4- فایل رو ذخیره کنید.
5- عملکرد واردسازی محصول از طریق فایل CSV رو در فروشگاهتون تست کنید و اگر مشکلی داشتید به پشتیبانی سیستمیها اطلاع بدین.
تصویر فایل قبل از اصلاح:
تصویر فایل بعد از اصلاح: