Пользовательский начальный номер для номеров заказов в Magento 1.5
-
27-10-2019 - |
Вопрос
Как настроить начальный номер для заказов, счетов и т. д. в Magento 1.5?
Решение
С форума Magento:
- от LindyKyaw (член команды Magento) , изменение начального номера (с помощью запроса sql):
There is a table in the database which stored increment id of order. It is called “eav_entity_store” table. You can check which entity type id belongs to which entity by looking at eav_entity_type table. You can run following query to update last increment id for the order.update eav_entity_store inner join eav_entity_type on eav_entity_type.entity_type_id = eav_entity_store.entity_type_id set eav_entity_store.increment_last_id=3001 where eav_entity_type.entity_type_code='order';
- от FOOMAN (активный участник) , изменив начальный номер (с помощью инструмента управления базой данных) и удалив "0"s в начале:
Надежда, которая поможетWith a tool like phpmyadmin look at your database. In the table eav_entity_type you will find all entity types listed. The one of interest to change where the order number starts is order sales/order. Remember the entity_type_id (in my install it is 11). To remove the leading zeros (padding) set increment_pad_length to 1.Next go to the table eav_entity_store. Look up the entity_type_id. Now you can change the value of increment_prefix and increment_last_id. If you wanted to have your next orderId to be 15000 set increment_last_id to 14999 and increment_prefix to 0.
Additionally you need to make a copy of this file /app/code/core/Mage/Eav/Model/Entity/Increment/Abstract.php to /app/code/local/Mage/Eav/Model/Entity/Increment/Abstract.php
public function getPadLength() { $padLength = $this->getData('pad_length'); if (empty($padLength)) { $padLength = 0; } return $padLength; } ... public function format($id) { $result= str_pad((string)$id, $this->getPadLength(), $this->getPadChar(), STR_PAD_LEFT); return $result; }
Другие советы
На самом деле, в более новых версиях (и, вероятно, в 1.5) есть более простой способ изменить это.В PHPMyAdmin или вашем клиенте mysql перейдите к таблице eav_entity_type
.Найдите таблицу в столбце entity_type_code
(возможно, order
) и установите для increment_pad_length
все, что вам нужно, а также код increment_pad_char
.
Тогда вам не нужно переписывать основной код - беспроигрышный вариант.
JMax
Номер заказа Magento
Все просто ....
- перейти к phpmyadmin
- выберите свою базу данных, а затем выберите таблицу "eav_entity_store"
- в этой таблице измените код генерирующего кода (например, я установил в своей таблице 3456767).
- после этого создаю новый заказ.Теперь мои заказы начинаются с номера 346768
На самом деле существует хорошее расширение для выполненияэту задачу.
Он позволяет настраивать идентификатор заказа множеством различных способов: например, вы можете использовать комбинацию:
- число, например год, месяц, день, часы, секунды,
- использовать настраиваемый счетчик (вы можете выбрать начальный номер)
- сочетание всех вышеперечисленных методов
- добавить произвольную строку в любую позицию идентификатора заказа
Это доб.на Magento connect: http://www.magentocommerce.com/magento-connect/custom-order-id-8210.html
Я лично пробовал это, и он очень хорош (отлично работает со всеми моими способами оплаты, и у меня не было никаких проблем)