زيادة المبيعات شقة البند النظام [سكو] الحد الأقصى لعدد الأحرف الماضي 255

magento.stackexchange https://magento.stackexchange.com//questions/45211

  •  12-12-2019
  •  | 
  •  

سؤال

لدي موقع الماجنتو مع العديد من الخيارات المخصصة.عندما يتم إنشاء المنتج ، وأحيانا سكو أطول من 255 حرفا.

رمز تعريف الارتباط الذي أشير إليه موجود في "عنصر طلب مبيعات مسطح" وعدد قليل من الأماكن الأخرى على ما أعتقد.

هل من الآمن تغيير هذه الحقول إلى " نص "بدلا من "فارشار255"?

هل كانت مفيدة؟

المحلول

إذا قمت بتشغيل الاستعلام التالي ضد قاعدة البيانات يمكنك العثور على كافة الجداول التي تحتوي على sku العمود:

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('sku') AND TABLE_SCHEMA = 'your_database';

سوف تجد ما يلي عاد:

catalog_product_entity - varchar(64)
catalog_product_flat_1 - varchar(64)
catalog_product_flat_2 - varchar(64)
catalog_product_flat_x // as many flat tables as there are stores
catalog_product_option - varchar(64)
catalog_product_option_type_value - varchar(64)
sales_flat_creditmemo_item - varchar(255)
sales_flat_invoice_item - varchar(255)
sales_flat_order_item - varchar(255)
sales_flat_quote_address_item - varchar(255)
sales_flat_quote_item - varchar(255)
sales_flat_shipment_item - varchar(255)

لذلك عدد قليل من الجداول العادلة.على الرغم من جعل sku الحقل الأطول ليس شيئا جربته ، لا أرى أي سبب معين لعدم نجاحه ، ولكن يجب عليك التعامل مع المهمة بعناية مع الكثير من الاختبارات.

لا فكرة لماذا ولكن يبدو sku يتم تخزينها كحقل طويل مكون من 64 حرفا فيما يتعلق بالمنتجات ، وحقل طويل مكون من 255 حرفا فيما يتعلق بالعناصر المطلوبة - لذا فأنت مقيد بشكل أساسي بـ 64 حرفا افتراضيا.

نصيحتي هي كتابة برنامج نصي للتثبيت لتغيير هذه الأعمدة ، وهو شيء على غرار ما يلي:

<?php
$installer = $this;
$installer->startSetup();

$installer->getConnection()->changeColumn(
    $installer->getTable('module/table'),
    'sku',
    'sku',
    array(
        'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
        'length' => '64k',
        'comment' => 'SKU'
    )
);

// more changeColumn() calls for each table

$installer->endSetup();

وهناك عدد قليل مسكتك وأود أن نبحث عنها:

  • هناك أيار / مايو تكون بعض القيود فب على أساس طول المحتوى المحفوظ في هذه الحقول ، يجب أن اختبار للتأكد
  • احترس إذا قمت بترقية المتجر ، فقد تتم إعادة تعيين بعض هذه الأعمدة إلى 64/255 حرفا وستفقد البيانات بشكل غير قابل للاسترداد في العملية إذا كانت هذه هي الحالة
  • كن حذرا عند إضافة متاجر جديدة حيث سيتم إنشاء جدول منتج مسطح جديد ، لذا ستحتاج إلى التحقق من أن الحقل بالطول الصحيح.

نصائح أخرى

نعم هو.Magento لا يقوم بأي شيكات حول هذا AFAIK.لذلك إذا كانت أطول من 255، لا تثير MySQL خطأ ويقطع فقط هذا (f * cking mysql)

لذلك، ما عليك سوى كتابة برنامج نصي لتغيير هذا ولن يكون لديك مشاكل في المستقبل، طالما أن Sku أقصر من طول النص (16 ميو؟)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top