Magento 2 - Varsayılan Sipariş No'yu değiştirmenin doğru yolu nedir?


29

Magento 2. Yeni kurulumdan sonra yeni Sipariş kimliği 100000001, 100000002 vb. Olacaktır.

Bu artış kimliğini değiştirmenin doğru yolu nedir, böylece daha yüksek bir sayı olur? Örneğin, 155555552, 155555553 ve benzeri. Değiştirildiğinde çok daha iyi görünecek.

Magento 1.9'da, Siparişler, Fatura veya Gönderi için varsayılan kimliği düzenlemek için veritabanındaki değerleri "eav_entity_store" olarak değiştirmek zorunda kaldık.

Magento 2 çok farklı görünüyor ...

Bunu yapmayı öneren bazı eklentiler olduğunu biliyorum, ancak manuel olarak nasıl yapıldığını bilmek istiyorum.


Lütfen benim sorumu burada görün: magento.stackexchange.com/questions/279454/… ShipWorks (ve diğerleri) increment_idolması gerektiği gibi kullanmıyor olabilir .
Chris K,

Yanıtlar:


31
  1. PHP Yönetici veritabanınızı açın (php 7'de test ettim)
  2. Şu tabloyu bul ve tıkla: array_order_1 (information_schema içinde değil veritabanında bulunur)
  3. "Operasyonlar" sekmesine tıklayın ve "AUTO_INCREMENT" altında istenen sipariş numarasına göre düzenleyin.

AUTO_INCREMENT alanına 100500400 sayısını koydum, "Devam Et" i tıklayın. Sonra bir test alımı yaptım ama sipariş numarası hala 000000013, 00000014 ...
Luis Garcia

1
array_order_1 bulundu ve işlem sekmesinde Auto_increment var, değer 5, yani doğru değer nedir?
Ahmad Darwish

1) herhangi bir değişiklik yapmadan önce veritabanınızı yedekleyin. 2) 5 yerine, sipariş kimliğiniz için istediğiniz değeri (örneğin 1035327500) belirlersiniz. Bir sonraki siparişiniz, 1035327501
Mark

Hangi magento versiyonundan bahsediyoruz?
Felix,

@Felix Magento 2 içindir
Kishan Patadia

25

Phpmyadmin adresinden veritabanınıza gidin,

Burada _1 tablename sonra depo kimliği için kullanılır.

Default Frontend store id is 1.Sonra çok mağaza varsa gibi tablo adı ile her bir mağaza için ayarlanmış sorgusuna sahip sequence_order_2 kadar _ sequence_order. *

Tablo için sorguyu aşağıya girin. Array_order_1 , varsayılan mağaza için kullanılır. Birden fazla mağazanız varsa, aşağıdaki sorguda depo kimliğine göre tablo adı ayarlamanız gerekir.

Bu sadece ön taraftan verilen sipariş için kullanılır.

sequence_order_1, magento 2'deki sipariş kimliği yönetimi için kullanılır.

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

Bir sonraki sipariş kimliği 155555551'den başlar.

Fatura kimliğini değiştirmek istiyorsanız, aşağıda Sorgu INVOICE için tanımlanmıştır.

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

Yükleme için ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;


Bu işe yaramazsa beni oluşturuyor. Bazı test satın alımlarını yaptıktan sonra, sipariş numarası hala 000000013, 00000014 ...
Luis Garcia

Mükemmel cevap!
huzefam


Bunun doğru olduğu magento sürümünü söyleyebilir misiniz?
Felix,

yeni sipariş kimliğinin ilk hanesini nasıl değiştiririm
Tirth Patel

16

Daha önce içinde olan eav_entity_storeşey şimdi sales_sequence_profileve içinde ele alınmıştır sales_sequence_meta. Tablo sequence_order_1, siparişler verildiğinde doldurulur.


Bunun doğru ve çalıştığı magento versiyon numaralarını kabaca belirtir misiniz?
Felix,

Bu konuda davranışlarda herhangi bir değişiklik
görmedim, bunun 2.0.0'dan

Yine de 2.2.4'te aynı, sadece test ettim.
Frank Groot,

7

Yeni sipariş kimliği biçimi, varsayılan olarak sabit olarak tanımlanır.

Magento \ SalesSequence \ Model \ Sıra:

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

Yeni bir kimlik oluşturan sprintf () işlevinin kalıbıdır. Baştaki sıfırları kaldırmak için şablonunuzu şunun gibi kurucuya geçirmelisiniz:

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

veya Sequence sınıfını genişletip istediğiniz kadar değiştirin


6

Yukarıdaki cevapların tamamı kısmen de olsa doğru olsa da, cevabını gelecek okuyucular için faydalı olacağı için yazmayı düşündüm. Bu cevap iki soruyu ele alacaktır:

1) Sipariş sırası numarasını nasıl değiştirebilirim?

2) Bir sipariş numarasına Önek veya Sonek nasıl eklenir?

Veritabanında herhangi bir kör değişiklik yapmadan önce, hangi sıralama tablosunun neyle ilişkili olduğunu anlamalısınız. Bunu tablodan kontrol edebilirsiniz.sales_sequence_meta

Sorguyu çalıştırın, select * from sales_sequence_meta;her mağazanın o mağazayla ilişkilendirilmiş bir sıralama tablosu olacaktır. Tablo adını viz'e not edin: Sipariş, Fatura, creditmemo veya gönderi.

Bu yapıldıktan sonra, örneğin tabloya göre sipariş numarasını düzenlemek sequence_order_1ve AUTO_INCREMENTdeğeri değiştirmek istiyorsanız, tabloya gidin.

alter table sequence_order_1 AUTO_INCREMENT=617;

Bunların hepsi, sıra sırasını atlamak için gereken şeydir.

Şimdi, daha fazla kazıyorsanız ve aşağıdaki adımları izleyerek sipariş vermek için Önek / Sonek eklemek istediğiniz bir gereksiniminiz varsa, daha da ilerleyin:

Tabloya git sales_sequence_profileve verileri kontrol et

select * from sales_sequence_profile;

Sütun prefixve 'sonek' gözlemlenecektir . Başlangıçta olacaktı NULL. meta_idTablodan eşleyebileceğiniz ilgili için önek ve sonek değerine değer ekleyebilirsiniz.sales_sequence_meta

Bu, tüm siparişler için sipariş önekini / sonekini değiştirir.

Umarım bu tüm yardımcı olur! Şerefe!


4

Yeni Kurulum:
Eğer Magento 2.2.0+ işletim sisteminizde ve çoklu saklama etkinleştirilmiş yeni bir kurulum çalıştırıyorsanız (varsayılan olarak etkindir) , siteden herhangi bir sipariş vermeden önce aşağıdaki sorguları çalıştırabilirsiniz :

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;

Unutmayın ki 303, sitemiz için seçtiğim sayı bu , çünkü eski platformumuz 300 numaralı siparişten ayrıldı ve bir tür tutarlılık istedim. Ayrıca, _1tekli saklama modunu etkinleştirdiyseniz biten herhangi bir sorguya ihtiyacınız olmadığına da dikkat edin .

Mevcut Kurulum:
Zaten Magento 2.2.0+ ürününü kullanıyorsanız (veya ona yükseltilmişse) ve sadece sayıları arttırmak istiyorsanız, dolguyu değiştirmeyin veya karakter eklemeyin, aşağıdaki tablolarda mevcut AUTO_INCREMENT değerini kontrol edin (birden fazla siteyi varsayarak) ):

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

Ve yukarıda gösterilen sorguları kullanarak bunları değiştirin, ancak kullandığınız yeni değerin mevcut AUTO_INCREMENT değerini kontrol etmekten geri aldığınız değerden daha büyük olduğundan emin olun .

Dolgu ile uğraşacaksanız veya özel bir kalıp ekleyecekseniz, buradaki diğer cevapları görmeniz ve aşağıdaki tabloları gözden geçirmeniz gerekir:

  • sales_sequence_meta
  • sales_sequence_profile

Güncelleme: Çoklu Mağazalar?
Çoklu depoya aşina olmayanlar için bu, aynı Magento kurulumundan tamamen ayrı mağazalar çalıştırmanıza izin veren bir özelliktir. Bunu yapmanın yaygın bir nedeni, diğer dilleri desteklemektir. Arka uçta, bu nedenle, yapılandırmayı güncellerken ve örneğin başka şeyler yaparken mağaza görünümünü (çoklu mağaza açıksa) bakarak seçebilirsiniz.

Bu nedenle Magento, farklı mağaza görünümlerini takip etmek için belirli tabloların sonuna bir alt çizgi ve sayı ekleyecektir. Sağladığım sorguların yinelenen tablolar gibi göründüğünü fark edeceksiniz, ancak bu durumda farklı sayılarla, 0 veya 1 ile bitiyorlar. Birkaç mağazanız / görünümünüz olsaydı bu rakamlar artmaya devam ederdi, örneğin _2 ya da _3. Bu, her bir mağazanın kimliğini farklı yönetmenizi sağlar. Bir görünümdeki (depodaki) kimlik sistemine yaptığınız değişiklik diğerinde aynı olmak zorunda değildir.

Bu gönderi için kapsam dışındadır ancak bu aynı numaralandırma sistemi, veritabanındaki her tabloyu farklı şekilde tedavi etmenizi ve etkilemenizi sağlayan diğer tablolar için geçerlidir. Örneğin mağaza başına tamamen farklı bir temaya sahip olabilirsiniz.


Neden çoklu mağazalardan söz ediyorsun? Tekli depolama modunu etkinleştirmiş olsaydınız, farklı olan ne olurdu?
Condor

1
Bu soruyu cevapladım: "... tekli saklama modunu etkinleştirdiyseniz _1 ile biten herhangi bir sorguya ihtiyacınız olmadığına dikkat edin." Sağladığım sorguların, sonun dışında yinelenen tablolara benzeyen arama olduğunu, bu durumda 0 veya 1 sayı olduğuna dikkat edin. Çoklu depolamayı devre dışı bıraktıysanız, sadece _0 ile _1 veya _2 veya _3 ile hiçbir şey görmezsiniz. Bunu netleştirmek için bir güncelleme ekledim.
Blizzardengle

2

Sıralamayı değiştir Sıra numarası dolgusunu değiştirmek için düzenleme Sequence.php (di.xml aracılığıyla daha iyi bir yol olduğuna inanıyorum)

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

Bu satırı düzenle

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

İstenen dolguyu "9" değiştirin

Örnek

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

Öneki Değiştir

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

Her şeyi kolaylaştırmak için Fooman'a aynı sipariş fatura numarasını ekleyin


1
Dolgu desenini çekirdek dosyalarda düzenlemek kötü bir fikirdir, dolgu desenini değiştirmek için 'ekran adımın yöntemini kullanmalısın.
Timon de Groot

1
Bu ne magento? (admin> Mağaza> Satış> Sipariş Numarası) MAG 2.2.2 kullanıyorum ancak menü sırası değişmiş görünüyor.
Mohammed Joraid

1

Sipariş Artışı No'sunu değiştirin

  1. PHP Yöneticinizi açın
  2. Bulun ve aranan tabloya tıklayın: sequence_order_1
  3. "İşlemler" sekmesini tıklayın ve "AUTO_INCREMENT" altında istediğiniz sipariş numarasına tıklayın.

Başka bir Mağaza için aynı adımı izleyin

  1. Bulun ve masaya tıklayın: sequence_order_2
  2. "İşlemler" sekmesini tıklayın ve "AUTO_INCREMENT" altında istediğiniz sipariş numarasına tıklayın.

Bu, birden fazla mağazanın sipariş numarasını değiştirir


0

PHPMYADMIN İle Fatura numaralarını ayarlamak için

INSERT sequence_order_1( sequence_value) DEĞERLERİNE ('2000');

2000 yeni başlangıç ​​numarası olacak


0

Magento 2'deki doğrudan emir numaranızı doğrudan bu ipucunda değişiklik yapabilirsiniz.

Öncelikle, PHP Admin veritabanınızı açmanız gerekir. Ardından “sales_sequence_profile” tablosunu bulup açın.

Bundan sonra, Magento 2 web sitenizdeki varsayılan sipariş numarasında değişiklik yapabilirsiniz:

a. Sipariş Artışı Kimliğini Değiştir

b. Sipariş Numarası Önekini Değiştir

c. Sipariş Numarasını Değiştir Soneki

d. Sipariş Numarasını Değiştir Başlangıç ​​değerini

e. Ped uzunluğunu değiştir

Bu makalede tam öğreticiyi görüyorum: Magento 2'deki Sipariş Numarasını Değiştirmek İçin Eğitim Kılavuzunu Tamamlayın


Tablonun adı yanlış. "sales_sequence_profile" olmalı
Dennis van Schaik

0

Ekstra sıfırlardan kalıcı olarak kurtulmak (veya değiştirmek) için çekirdek dosyaları geçersiz kılmamalısınız. Senin içinde app/etc/di.xmleklenti takip değiştirmek "%s%'.09d%s"(bu örnekte iki 00 yastıklı olarak) buna uygun değeri:

<?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>

Sipariş ve fatura numaraları için veritabanı düzenlemeleri Rakesh Jesadiya'nın cevabında mükemmel bir şekilde açıklanmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.