마 젠토 2-기본 주문 ID를 변경하는 올바른 방법은 무엇입니까?


28

Magento 2. 새로 설치 한 후 새 주문 ID는 100000001, 100000002 등이됩니다.

증분 ID를 변경하여 더 높은 숫자가되도록 올바른 방법은 무엇입니까? 예를 들어 155555552, 155555553 등입니다. 변경하면 훨씬 좋아 보입니다.

Magento 1.9에서 주문, 송장 또는 배송에 대한 기본 ID를 편집하려면 "eav_entity_store"의 데이터베이스에서 값을 변경하기 만하면됩니다.

마 젠토 2는 너무 다르게 보입니다 ...

이 기능을 제공하는 플러그인이 있지만 수동으로 수행하는 방법을 알고 싶습니다.


내 질문을 참조하십시오 : magento.stackexchange.com/questions/279454/… ShipWorks (및 기타) increment_id는 예상 대로 사용하지 않을 수 있습니다 .
Chris K

답변:


31
  1. PHP Admin 데이터베이스를여십시오 (php 7에서 테스트했습니다)
  2. sequence_order_1이라는 테이블을 찾아 클릭하십시오 (Information_schema가 아닌 데이터베이스 자체에 있음)
  3. "작업"탭을 클릭하고 "AUTO_INCREMENT"아래에서 원하는 주문 번호로 편집하십시오.

AUTO_INCREMENT 필드에 숫자 100500400을 입력하고 "계속"을 클릭하십시오. 그런 다음 테스트 구매를했지만 주문 ID는 여전히 000000013, 00000014입니다.
Luis Garcia

1
sequence_order_1을 찾았고 작업 탭에 값이 5 인 Auto_increment가 있는데 올바른 값은 무엇입니까?
Ahmad Darwish

1) 변경하기 전에 데이터베이스를 백업하십시오. 2) 5 대신 주문 ID에 원하는 값을 설정하십시오 (예 : 1035327500). 다음 주문은 1035327501
Mark

우리는 어떤 마 젠토 버전을 이야기하고 있습니까?
Felix

@Felix 그것은 마 젠토 2입니다
Kishan Patadia

24

phpmyadmin에서 데이터베이스로 이동하십시오.

여기서 _1 은 테이블 이름 다음 에 상점 ID로 사용됩니다.

Default Frontend store id is 1.다중 상점이있는 경우 sequence_order_2에서 sequence_order_. 까지의 테이블 이름으로 각 상점에 대해 조회를 설정해야합니다 . *

sequence_order_1 테이블에 대한 아래 쿼리를 입력 하면 기본 저장소로 사용됩니다. 여러 상점이있는 경우 아래 쿼리에서 상점 ID별로 테이블 이름을 설정해야합니다.

프론트 엔드에서 주문한 경우에만 사용됩니다.

sequence_order_1은 magento 2의 주문 ID 관리에 사용됩니다.

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

다음 주문 ID는 155555551부터 시작합니다.

인보이스 ID를 변경하려는 경우 아래 쿼리는 INVOICE 에 대해 정의 됩니다.

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

배송 ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;


이것은 나에게서 작동하지 않습니다. 테스트 구매를 한 후에도 주문 ID는 여전히 000000013, 00000014입니다.
Luis Garcia

훌륭한 답변!
huzefam

그것은 도움이 될 수 있습니다 - magento.stackexchange.com/questions/156075/...을 -
sandip

이것이 올바른 마 젠토 버전을 말할 수 있습니까?
Felix

새 주문 ID의 첫 번째 숫자를 변경하는 방법
Tirth Patel

16

무슨 일 이전에 한 eav_entity_store지금 덮여있다 sales_sequence_profilesales_sequence_meta. sequence_order_1주문이 이루어지면 테이블 이 채워집니다.


이것이 사실이며 작동하는 마 젠토 버전 번호를 대략적으로 설명해 주시겠습니까?
Felix

나는 이것에 대한 행동의 변화
를 겪지 않았다.

2.2.4에서도 동일하게 테스트했습니다.
Frank Groot

7

새 주문 ID의 형식은 기본적으로 constant in

Magento \ SalesSequence \ Model \ Sequence :

const DEFAULT_PATTERN = "% s % '. 09d % s";

새 ID를 생성하는 sprintf () 함수의 패턴입니다. 선행 0을 제거하려면 다음과 같이 패턴을 생성자에 전달해야합니다.

<type name="Magento\SalesSequence\Model\Sequence">
    <arguments>
        <argument name="pattern" xsi:type="string">%s%s%s</argument>
    </arguments>
</type>

또는 시퀀스 클래스를 확장하고 필요에 따라 변경하십시오.


6

위의 모든 대답은 완전히 / 부분적으로 정확하지만 미래 독자에게 도움이 될 것이므로 답을 적어 두는 것이 좋습니다. 이 답변은 두 가지 질문을 다룰 것입니다.

1) 주문 순서 번호를 변경하는 방법?

2) 주문 번호에 접두사 또는 접미사를 추가하는 방법은 무엇입니까?

데이터베이스에서 맹목적인 변경을하기 전에 어떤 시퀀스 테이블이 어떤 것과 연관되어 있는지 이해해야합니다. 당신은 테이블에서 이것을 확인할 수 있습니다sales_sequence_meta

select * from sales_sequence_meta;각 상점에는 해당 상점과 연관된 시퀀스 테이블이 있는 쿼리를 실행하십시오 . 테이블 이름 viz (주문, 송장, 대변 메모 또는 발송)를 기록하십시오.

완료되면 예를 들어 주문 번호 goto 테이블을 편집 sequence_order_1하고 AUTO_INCREMENT값을 변경 하려는 경우 테이블로 이동하십시오.

alter table sequence_order_1 AUTO_INCREMENT=617;

이것은 순서 순서를 뛰어 넘기 위해 필요한 모든 것입니다.

이제 더 많은 것을 파고 접두사 / 접미사를 추가하여 아래 단계를 순서대로 수행해야하는 경우 더 나아가십시오.

테이블로 이동 sales_sequence_profile하여 데이터 확인

select * from sales_sequence_profile;

열과 prefix'접미사'를 관찰 합니다. 처음에는 그렇습니다 NULL. meta_id테이블에서 매핑 할 수있는 관련 접두사와 접미사에 값을 추가 할 수 있습니다sales_sequence_meta

모든 주문의 주문 접두사 / 접미사가 변경됩니다.

희망이 모든 도움이됩니다! 건배 !!


4


새로 설치 : Magento 2.2.0 이상에서 멀티 스토어 가 활성화 된 상태 에서 새로 설치하는 경우 (기본적으로 활성화되어 있음) 사이트를 통해 주문 하기 전에 다음 쿼리를 실행 하면됩니다.

ALTER TABLE `sequence_creditmemo_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_creditmemo_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_1` AUTO_INCREMENT=303;

제발 참고 303우리의 오래된 플랫폼은 주문 번호 (300)에서 중단 내가 일관성의 어떤 종류를 원하기 때문에 우리의 사이트에 대한 선택 단지 숫자입니다. 또한 _1단일 저장 모드를 활성화 한 경우 끝나는 쿼리가 필요하지 않습니다 .

기존 설치 :
이미 Magento 2.2.0 이상을 사용하고 있거나 숫자를 늘리고 싶을 때 패딩을 바꾸거나 문자를 추가하지 않고 다음 표에서 현재 AUTO_INCREMENT 값을 확인하십시오 (멀티 사이트 가정) ) :

  • sequence_creditmemo_0
  • sequence_creditmemo_1
  • sequence_invoice_0
  • sequence_invoice_1
  • sequence_order_0
  • sequence_order_1
  • sequence_shipment_0
  • sequence_shipment_1

그리고 위에 표시된 변경 쿼리를 사용하여 변경하지만 사용하는 새 값이 현재 AUTO_INCREMENT 값을 확인하여 얻은 값 보다 큰지 확인하십시오.

패딩으로 혼란을 겪거나 사용자 정의 패턴을 추가하려는 경우 여기에 다른 답변을보고 다음 표를 검토해야합니다.

  • sales_sequence_meta
  • sales_sequence_profile

업데이트 : 멀티 스토어?
다중 저장소에 익숙하지 않은 사용자에게는 동일한 Magento 설치와 완전히 다른 저장소를 실행할 수있는 기능입니다. 이를 수행하는 일반적인 이유는 다른 언어를 지원하기위한 것입니다. 백엔드에서 구성을 업데이트하고 예를 들어 다른 작업을 수행 할 때보고있는 (멀티 스토어가 켜져있는 경우) 스토어보기를 선택할 수 있습니다.

이러한 이유로 Magento는 다른 상점보기를 추적하기 위해 특정 테이블 끝에 밑줄과 숫자를 추가합니다. 내가 제공 한 쿼리가 중복 테이블 인 것처럼 보이지만이 경우 0 또는 1의 다른 숫자로 끝납니다. 상점 / 조회가 여러 개인 경우이 숫자는 계속 증가합니다 (예 : _2 또는 _3). 이를 통해 각 상점의 ID를 다르게 관리 할 수 ​​있습니다. 한보기 (상점)에서 ID 시스템에 대한 변경 사항이 다른보기 (상점)에서 동일 할 필요는 없습니다.

이 게시물의 범위를 벗어나지 만 동일한 번호 시스템이 데이터베이스의 다른 테이블에 적용되므로 각 상점보기를 다르게 취급하고 영향을 줄 수 있습니다. 예를 들어 상점마다 테마가 완전히 다를 수 있습니다.


여러 상점에 대해 왜 계속 언급합니까? 단일 저장소 모드를 활성화 한 경우 다른 점은 무엇입니까?
Condor

1
"이는 단일 저장소 모드를 활성화 한 경우 _1로 끝나는 쿼리가 필요하지 않습니다." 내가 제공 한 쿼리는이 경우 끝이 숫자 0 또는 1을 제외하고 중복 테이블처럼 보이는 것을 호출합니다. 멀티 스토어를 비활성화 한 경우 _1 또는 _2 또는 _3 등의 _0 항목 만 표시됩니다. 이것을 명확히하기 위해 업데이트를 추가했습니다.
Blizzardengle

2

순서 변경 주문 번호 패딩을 변경하려면 Sequence.php를 편집하십시오 (di.xml을 통해 더 나은 방법이 있다고 생각합니다)

vendor/magento/module-sales-sequence/Model/Sequence.php

이 줄을 편집

const DEFAULT_PATTERN  = "%s%'.09d%s";

"9"를 원하는 패딩으로 변경

const DEFAULT_PATTERN  = "%s%'.05d%s";

접두사 변경

In admin > Stores > Sales > Order Number > 
Enter Desired prefix

모든 것을 쉽게 유지하려면 Fooman에 동일한 주문 송장 번호를 추가하십시오


1
코어 파일에서 패딩 패턴을 편집하는 것은 좋지 않습니다. 패딩 패턴을 변경하려면 '내 표시 이름'방법을 사용해야합니다.
Timon de Groot

1
이게 무슨 마 젠토? (관리자> 상점> 판매> 주문 번호) MAG 2.2.2를 사용하지만 메뉴 순서가 변경된 것 같습니다.
Mohammed Joraid

1

주문 증분 ID 변경

  1. PHP 관리자를여십시오
  2. sequence_order_1이라는 테이블을 찾아 클릭하십시오.
  3. "작업"탭을 클릭하고 "AUTO_INCREMENT"아래에서 원하는 주문 번호로 편집하십시오.

다른 상점과 동일한 단계를 수행하려면

  1. sequence_order_2라는 테이블을 찾아 클릭하십시오.
  2. "작업"탭을 클릭하고 "AUTO_INCREMENT"아래에서 원하는 주문 번호로 편집하십시오.

여러 상점의 주문 번호가 변경됩니다.


0

PHPMYADMIN을 통해 송장 번호를 조정하려면

INSERT INTO sequence_order_1( sequence_value) 값 ( '2000');

2000은 새로운 시작 번호가 될 것입니다


0

이 팁을 통해 Database Magento 2에서 직접 주문 번호를 변경할 수 있습니다

우선, PHP Admin 데이터베이스를 열어야합니다. 그런 다음“sales_sequence_profile”테이블을 찾아서여십시오.

그런 다음 Magento 2 웹 사이트에서 기본 주문 번호를 변경할 수 있습니다.

에이. 주문 증분 ID 변경

비. 주문 번호 접두사 변경

기음. 주문 번호 변경

디. 주문 번호 시작 값 변경

이자형. 패드 길이 변경

이 기사의 전체 자습서를 참조하십시오. Magento 2의 주문 번호 변경을위한 전체 자습서 안내서


테이블 이름이 잘못되었습니다. "sales_sequence_profile"이어야합니다
Dennis van Schaik

0

여분의 0을 영구적으로 제거하거나 변경하려면 코어 파일을 재정의해서는 안됩니다. 다음을 app/etc/di.xml추가하고 "%s%'.09d%s"그에 따라 값을 변경하십시오 (이 예에서는 두 개의 00이 채워집니다).

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\DB\Sequence\SequenceInterface">
        <arguments>
            <argument name="pattern" xsi:type="string">%s%'.02d%s</argument>
        </arguments>
    </type>
</config>

주문 및 송장 번호에 대한 데이터베이스 편집 내용은 Rakesh Jesadiya의 답변에 완벽하게 설명되어 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.