• Cs-Cart Türkiye Destek ve Paylaşım Sitemize Hoş Geldiniz
  • Yeni Temamızla Daha işlevsel Sizlerleyiz.
  • Öneri ve Dileklerinizi Mesajla iİetiniz.
Hoşgeldiniz.! Lütfen Giriş Yap yada Kayıt Ol


Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bilgi Özellik / Feature adı değiştiğinde silinen özellik değerleri hatasının çözümü.
#1
Başlıkta çok detaylı anlatmak mümkün değil. Biraz açayım konuyu.

Mesela "Ürün Özellikleri" ekliyorum. Ürün özelliğini yazdığım kutucuğun tipi Text. Ben buraya ürünlerin ağırlıklarını girdim. 1000 adete yakın ürün girdim siteye. Sonra bu kutucuğun sonuna ağırlıklarının yanında gr. görünsün istedim ve suffix yani son ek kutucuğuna bunu yazdım. Bir baktım 1000 tane ürünün ağırlığı ile ilgili değerler uçtu. Sonra yedekten dönüp birkaç alternatif denedim. Mesela son ek değil de ön ek eklerseniz de veya özelliğin adını değiştirseniz de aynı şey oluyor (Sadece text tipi kutucukta).

İki farklı sunucuda iki farklı domainde denedim durum aynı. Ve bir BUG olduğuna karar verdim. cs-cart'ın forumuna bug takip bölümüne yazdım. Hemen cevap geldi ve çözümü uyguladım, düzeldi.

Çözüm aşağıda, sizde özellik ekleyip kazara yedeksiz bir anda bu tip bir durumla karşılaşmamak için en azından 4.0.2 / 4.0.3 gibi versiyonlarda halen mevcut olan bu hatayı elle düzeltim.

Sunucunuzdan app/functions/fn.catalog.php dosyasına erişin ve düzenlemek için açın, aşağıudaki satırı bulun 4439 veya civarındaki satırlarda olsa gerek,

PHP Kod:
function fn_update_product_feature($feature_data$feature_id$lang_code DESCR_SL

daha sonra aşağıdaki kod dahil üsttan aşağı tarayın seçin ve silin.

PHP Kod:
return $feature_id;


Sonra yerine aşağıdaki satırları yapıştırın.

PHP Kod:
function fn_update_product_feature($feature_data$feature_id$lang_code DESCR_SL)
{

        
/**
         * Changes before product feature updating
         *
         * @param array  $feature_data Feature data
         * @param int   $feature_id   Feature identifier
         * @param string $lang_code     2-letters language code
         */
        
fn_set_hook('update_product_feature_pre'$feature_data$feature_id$lang_code);

        if (
fn_allowed_for('ULTIMATE') && Registry::get('runtime.company_id')) {
                if (!empty(
$feature_id) && $feature_id != NEW_FEATURE_GROUP_ID) {
                        if (!
fn_check_company_id('product_features''feature_id'$feature_id)) {
                                
fn_company_access_denied_notification();

                                return 
false;
                        }
                        unset(
$feature_data['company_id']);
                }
        }

        
$deleted_variants = array();
        
$old_feature_data = array();

        
// If this feature belongs to the group, get categories assignment from this group
        
if (!empty($feature_data['parent_id'])) {
                
$gdata db_get_row("SELECT categories_path, display_on_product, display_on_catalog, display_on_header FROM ?:product_features WHERE feature_id = ?i"$feature_data['parent_id']);
                if (!empty(
$gdata)) {
                        
$gdata fn_filter_feature_group_data($gdata);
                        
$feature_data fn_array_merge($feature_data$gdata);
                }
        }

        if (!
intval($feature_id)) { // check for intval as we use "0G" for new group
                
$feature_data['feature_id'] = $feature_id db_query("INSERT INTO ?:product_features ?e"$feature_data);
                foreach (
fn_get_translation_languages() as $feature_data['lang_code'] => $_d) {
                        
db_query("INSERT INTO ?:product_features_descriptions ?e"$feature_data);
                }
        } else {
                
$old_feature_data fn_get_product_feature_data($feature_idfalsefalseDESCR_SL);

                
$arow db_query("UPDATE ?:product_features SET ?u WHERE feature_id = ?i"$feature_data$feature_id);
                
db_query('UPDATE ?:product_features_descriptions SET ?u WHERE feature_id = ?i AND lang_code = ?s'$feature_data$feature_id$lang_code);

                if (
$arow === false) {
                        
fn_set_notification('E'__('error'), __('object_not_found', array('[object]' => __('feature'))),'','404');
                        
$feature_id false;
                }
        }

        if (
$feature_id) {

                
// If this feature is group, set its categories to all children
                
if ($feature_data['feature_type'] == 'G') {
                        
$u = array(
                                
'categories_path' => !empty($feature_data['categories_path']) ? $feature_data['categories_path'] : '',
                                
'display_on_product' => !empty($feature_data['display_on_product']) ? $feature_data['display_on_product'] : '',
                                
'display_on_catalog' => !empty($feature_data['display_on_catalog']) ? $feature_data['display_on_catalog'] : '',
                                
'display_on_header' => !empty($feature_data['display_on_header']) ? $feature_data['display_on_header'] : '',
                        );
                        
$u fn_filter_feature_group_data($u);
                        
db_query("UPDATE ?:product_features SET ?u WHERE parent_id = ?i"$u$feature_id);
                }

                if (
strpos('SMNE'$feature_data['feature_type']) === false) {
                        
// Delete variants for simple features
                        
$old_categories $old_feature_data fn_explode(','$old_feature_data['categories_path']) : array();
                        
$new_categories = isset($feature_data['categories_path']) ? fn_explode(','$feature_data['categories_path']) : array();
                        
$categories_changed = (!$old_categories && $new_categories);

                        if (!
$categories_changed) {
                                
// If old category is deleted
                                
$categories_changed array_diff($old_categories$new_categories);
                        }

                        if ((
$old_feature_data && $feature_data['feature_type'] != $old_feature_data['feature_type']) || $categories_changed) {
                                
fn_delete_product_feature_variants($feature_id);
                        }

                } else {
                        
fn_update_product_feature_variants($feature_id$feature_data$lang_code);
                }

                
/**
                 * Adds additional actions after product feature updating
                 *
                 * @param array  $feature_data   Feature data
                 * @param int   $feature_id        Feature identifier
                 * @param array  $deleted_variants Deleted product feature variants identifiers
                 * @param string $lang_code             2-letters language code
                 */
                
fn_set_hook('update_product_feature_post'$feature_data$feature_id$deleted_variants$lang_code);
        }

        return 
$feature_id;


Ya da bu kadarından anlamam diyorsanız önce ilgili dosyanın bir yedeğini alın ve alttaki dosyayı

.rar   fn.catalog.rar (Dosya Boyutu: 58.71 KB / İndirme Sayısı: 3)


eski problemli dosyanın yerine koyun. Bu dosyayı 4.0.3 te düzenledim hatadan kurtuldum. Emin değilim ama sanıyorum ki 4.0.2'de de işe yarar. Zaten 4.0.2 de kalmayın güncelleyin.

Saygılar.
Sahip olma duygusunun ayrılmaz parçasıdır KAYBETME korkusu!
Sahiplik duymadan sevmek cennet yaşantısıdır. Korkuların ise cehennem ateşin!
(Ahmed Hulûsi)
 
Cevap
#2
Bu sorun test ettiğim kadarı ile 4.1.1 de giderilmiş.
Sahip olma duygusunun ayrılmaz parçasıdır KAYBETME korkusu!
Sahiplik duymadan sevmek cennet yaşantısıdır. Korkuların ise cehennem ateşin!
(Ahmed Hulûsi)
 
Cevap
  


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Exclamation Eklenti:  Sekme değiştiğinde mağaza başlığını değiştirin bluexpres 0 3,302 26.07.2017, 02:41
Son Yorum: bluexpres
Rainbow Bilgi:  4.x.x Sürümü için Türkçe Seo Karakter Sorun Çözümü soldierly 12 25,520 15.01.2017, 20:43
Son Yorum: cihangir
  Bilgi:  ₺ TL. Simge Çözümü . istanbul 4 12,875 05.04.2016, 09:57
Son Yorum: pcmemo
Exclamation Bilgi:  Cs-Cart V4.1.x SMTP Sorunu ve Çözümü ! havoc 4 12,595 28.12.2015, 16:24
Son Yorum: istanbul
Lightbulb Bilgi:  Türkçe font Sorunu Çözümü V4.2.3 globalburo 1 5,550 28.10.2014, 12:46
Son Yorum: pcmemo

Hızlı Menü:


Tarama: 1 Ziyaretçi