더 깊이 파고들 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
.
이러한 레코드가 없으면 Magento는 store_id
and increment_prefix
of를 사용하여 레코드를 만듭니다 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
아직 . 그리고 Magento 백엔드에는 옵션을 구성 할 수 없습니다.
이것은 공식적으로 사용되는 것으로 생각되지 않을 수도 있습니다.
자신의 책임하에 사용하십시오. 변경 사항이 혼란스러워도 나를 비난하지 마십시오. 경고를 받았습니다 ^^