Вопрос
Как я могу разрешить, чтобы артикул был длиннее 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).
Измените атрибут SKU в таблице catalog_product_entity на varchar(255) или любую желаемую длину.Если эта длина меньше 255, все в порядке, в противном случае вам придется изменить другие атрибуты артикула, такие как артикул заказа, артикул цитаты и другие в базе данных
Слишком большая длина артикула приводит к нарушению сетки в каталоге-> Управление товарами.Одним из решений является вставка следующего кода в /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); ?>
Теперь, даже если вы не сможете увидеть полный артикул в Каталоге-> Управление продуктами, вы увидите полный артикул при двойном щелчке / редактировании продукта по отдельности.
Я надеюсь, что это было полезно.
Лучшие