Вопрос

Как я могу разрешить, чтобы артикул был длиннее 34 символов (для простых продуктов) для всех продуктов?

Когда я добавляю новый продукт (простой) и ввожу более 34 символов, Magento сокращает его до 34 после сохранения.

В базе данных атрибуты 'sku' (для товара запроса, товара заказа, товара накладной, товара отгрузки) из таблицы eav_attribute содержат varchar(255).Для Catalog_Product_Entity атрибутом является VarChar(64).В любом случае, это более 34 символов.Таким образом, я мог бы изменить артикул на 64 символа без внесения каких-либо изменений в базу данных, верно?

Как мне это сделать?Я хорошо разбираюсь в пользовательском коде magento, но не в коде администратора.Можете ли вы предложить мне хороший учебник по внесению изменений на стороне администратора, который мог бы помочь мне самому разобраться с этим вопросом?

Спасибо тебе, Марго

Это было полезно?

Решение

@latvian Модификация, которую вы предлагаете в качестве решения, не очень хорошая идея, поскольку она нарушает совместимость с установкой ядра и может привести к непредсказуемому поведению в будущем при обновлении ядра.Это быстро и грязно такой способ решения проблем только создаст проблемы в будущем.

Что я рекомендую, так это добавить пользовательский атрибут к объекту product, который называется custom_sku ( пользовательский код ) это может быть строка, и вы можете сделать ее такой длинной, какую захотите.Вот такой Ссылка о том, как добавить пользовательский атрибут к вашей установке.

Другие советы

Дело даже не в этом....

Измените поле артикула в:catalog_product_entity в varchar(255) Изменить поле артикула в:catalog_product_flat_some_number для параметра varchar(255)

И тогда вам нужно будет отредактировать Sku.php, чтобы проверка не запускалась у администратора.

Изменение: const SKU_MAX_LENGTH = 64;

Для: const SKU_MAX_LENGTH = 255;

Это позволит max_length быть 255 вместо 64..сделай это так, как тебе захочется.

Я сам это понял.Вот что я сделал.

Во-первых, я допустил ошибку при подсчете в приведенном выше примере.По умолчанию Magento допускает максимальную длину SKU# 64.Это связано с тем, что самый короткий из атрибутов SKU (в таблице catalog_product_entity) в БД имеет значение varchar(64).

  1. Измените атрибут SKU в таблице catalog_product_entity на varchar(255) или любую желаемую длину.Если эта длина меньше 255, все в порядке, в противном случае вам придется изменить другие атрибуты артикула, такие как артикул заказа, артикул цитаты и другие в базе данных

  2. Слишком большая длина артикула приводит к нарушению сетки в каталоге-> Управление товарами.Одним из решений является вставка следующего кода в /design/adminhtml/default/default/template/widget/grid.phtml строки 157 (после этой строки: <?php foreach ($this->getCollection() as $_index=>$_item): ?>)

    <?php //truncates SKU when too large
    $sku = $_item->getData('sku');
    if(strlen($sku)>60){
        $sku = substr($sku,0,60);
    }
    $_item->setData('sku',$sku);
    ?>
    

Теперь, даже если вы не сможете увидеть полный артикул в Каталоге-> Управление продуктами, вы увидите полный артикул при двойном щелчке / редактировании продукта по отдельности.

Я надеюсь, что это было полезно.

Лучшие

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top