ขณะขุดลึกฉันรู้ว่าeav_entity_type.increment_per_store
อาจเป็นประโยชน์
มันคือ. แต่สำหรับกรณีนี้เมื่อคุณต้องการดูร้านค้าทั้งหมด (ทั่วโลกไม่ว่าเว็บไซต์จะกำหนดไว้ใน) ของการติดตั้ง Magento ของคุณเพื่อแบ่งปันincrement_id
ช่วงหมายเลขคำสั่งซื้อเดียวกัน
นี่ไม่ได้แก้ปัญหาเฉพาะของฉัน แต่อาจเป็นประโยชน์กับคนอื่นบ้างดังนั้นเราจะไปที่นี่:
เพื่อเปิดใช้งานร่วมกันทั่วโลกของตัวเลขการสั่งซื้อของคุณตั้งค่าeav_entity_type.increment_per_store
ของการสั่งซื้อกิจการไป0
,
สิ่งนี้นำไปสู่การMage_Eav_Model_Entity_Type::fetchNewIncrementId()
ใช้store_id = 0
เมื่อโหลดeav_entity_store
เร็กคอร์ดของเอนทิตีการสั่งซื้อไม่ว่าร้านค้าจะดูเป็นของจริง
หากไม่มีการบันทึกดังกล่าวอยู่, วีโอไอพีสร้างหนึ่งใช้store_id
และของincrement_prefix
0
public function fetchNewIncrementId($storeId = null)
{
if (!$this->getIncrementModel()) {
return false;
}
if (!$this->getIncrementPerStore() || ($storeId === null)) {
/**
* store_id null we can have for entity from removed store
*/
$storeId = 0;
}
// Start transaction to run SELECT ... FOR UPDATE
$this->_getResource()->beginTransaction();
$entityStoreConfig = Mage::getModel('eav/entity_store')
->loadByEntityStore($this->getId(), $storeId);
if (!$entityStoreConfig->getId()) {
$entityStoreConfig
->setEntityTypeId($this->getId())
->setStoreId($storeId)
->setIncrementPrefix($storeId)
->save();
}
$incrementInstance = Mage::getModel($this->getIncrementModel())
->setPrefix($entityStoreConfig->getIncrementPrefix())
->setPadLength($this->getIncrementPadLength())
->setPadChar($this->getIncrementPadChar())
->setLastId($entityStoreConfig->getIncrementLastId())
->setEntityTypeId($entityStoreConfig->getEntityTypeId())
->setStoreId($entityStoreConfig->getStoreId());
/**
* do read lock on eav/entity_store to solve potential timing issues
* (most probably already done by beginTransaction of entity save)
*/
$incrementId = $incrementInstance->getNextId();
$entityStoreConfig->setIncrementLastId($incrementId);
$entityStoreConfig->save();
// Commit increment_last_id changes
$this->_getResource()->commit();
return $incrementId;
}
นี้จะทำงานสำหรับประเภทนิติบุคคลใด ๆ โดยใช้eav/entity_increment_numeric
รูปแบบเช่นorder
, invoice
, และshipment
creditmemo
โปรดระวังด้วยว่าฉันยังไม่สามารถหาเอกสารอย่างเป็นทางการincrement_per_store
ได้ และนั่นไม่มีตัวเลือกในแบ็กเอนด์วีโอไอพีที่ให้คุณกำหนดค่านี้
นี่อาจจะใช่หรือไม่ใช่หมายความว่าจะไม่คิดว่าจะใช้อย่างเป็นทางการ
ใช้ความเสี่ยงของคุณเอง หากการเปลี่ยนแปลงของคุณก่อความหายนะอย่าโทษฉัน คุณถูกเตือนแล้ว ^^