Sipariş kimliği ile karışıklık, sipariş artışı kimliği ve 20001201 olarak sipariş kimliği alamıyorum


28

Ben sipariş kimliği ve sipariş artış kimliği ile biraz kafam karıştı , herhangi biri bu ikisi arasındaki farkı anlamama yardımcı olabilir mi?

Sales_order_place_after için satış detaylarını özel bir tabloda sakladığım bir gözlemcim var .

Fakat

$orderId = $observer->getEvent()->getOrder()->getId();

Sipariş kimliklerini 112 veya 113 veya 110 gibi normal kimlikleri 20001201 gibi almadım.

Peki asıl sipariş numarası hangisi, 20001201 veya 112?

Bu sipariş kimliğine dayanarak sipariş verilerini daha fazla işlemem gerekiyor, 112, 113 vs. kullanıyorum ve çalışıyor, ancak bunu netleştirmem gerekiyor.

Yanıtlar:


23

Fark:

  • order_id, dahili Magento sipariş kimliğidir
  • sipariş artış kimliği, müşterinizle iletişim kurduğunuz kimliktir

İç sipariş_idini kullanarak kolayca sipariş yükleyebilirsiniz:

Mage::getModel('sales/order')->load($orderId);

Not: İhtiyacınız olursa, artırma kimliğini yüklü bir siparişten kolayca alabilirsiniz:

$order->getIncrementId();

1
Geliştirici dahili id ​​ve istemciler ve diğer kullanım Increment_id kullanıyor mu demek istiyorsun?
Charlie,

Aşağıda Charlie, Marius'un gönderisi, ikisi arasında farklılaşıyor ve mpaepper'ın tepkisi aslında, Artırma Kimliğini (yönetici görünümünde ve müşteriye etkili bir şekilde 'Sipariş Kimliği' olan) geri döndürmek için çağrılan yöntemi gösteriyor.
Joshua Chavanne

26

id= sales_flat_orderTablo birincil anahtar değeri. Bu, dükkanınıza girdiğiniz her sipariş için otomatik olarak verilir. Genellikle 1'den başlar ve artar.

increment id= sipariş vermeden önce üretilen "kullanıcı dostu" bir numara. Benzersiz olması gerekir ve çevrimiçi ödeme yöntemleri tarafından referans olarak kullanılır (yalnızca değil).
Varsayılan olarak artış kimliği şöyle görünür.

                  100000104
                  ||   || |
 store view id ---||   || |
                   |---||-|
                     |   |----- an increment number kept in the table eav_entity_store
    a lot of zeros --|

Sıfırların sayısı değişkendir. str_padMağaza kimliği olmadan artış kimliğinin uzunluğu olacak şekilde kullanılarak eklenir 8.


Newbish soruma dikkat et, ancak 1. bayt EAV tablosundan bir önek değeri değil, store_view_id değil mi?
someGuyOnTheWeb

4
@someGuyOnTheWeb. Şey ... evet bir hayır. Teknik önek (sadece ilk bayt değil ... 2 basamaklı ön ekli projelerde çalıştım) tablodan geliyor eav_entity_store. Ancak ilk sipariş için bu tabloda hiç kayıt yok. Yani biri yaratıldı. Oluşturulduğunda mağaza kimliği olarak depolanır increment_prefix. Yöntemde nasıl çalıştığını görün Mage_Eav_Model_Entity_Type::fetchNewIncrementId. Çizgi ile başlayan: if (!$entityStoreConfig->getId()) {.
Marius

5

Bir satış siparişi iki değeri tutar: entity_id (Sipariş No) ve artış_id (Sipariş Artışı No). Entity_id, siparişler tablosundaki birincil anahtardır. Bu, gerçek sipariş varlığını yüklemek için bunu kullandığınız anlamına gelir. Aşağıya bakınız

Mage::getModel("sales/order")->load($enityId);

Ve geç

$order->getId(); veya $order->getEntityId();

Increment_id normalde web sitesi / mağazaya özel, yani 20001201 numaralı web sitesinden daha kolay olan bir rakamdır, öndeki 2 genellikle ikinci mağazanızdan / web sitenizden bir sipariş anlamına gelir (hangisini hatırlayamam) Bu genellikle gerçek sipariş kimliği olarak anılır. Bu increment_id komutunu kullanarak bir sipariş varlığı yükleyebilirsiniz

Mage::getModel("sales/order")->loadByIncrementId($incrementId);

Ve geç

$order->getRealOrderId(); or $order->getIncrementId();

0

order_idI ile aynıdır inanıyoruz ki, entity_idbirlikte her eav tabloları birleştirmek için kullanılan sales_order tabloda birincil anahtardır. Magento'da dahili olarak kullanılır.

order_increment_id müşteriye göstermek için kullanılı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.