คำจำกัดความของสถานะคำสั่งซื้อคืออะไร หรือ: ฉันควรรวมสถานะคำสั่งซื้อของฉันที่ไหน


25

ฉันต้องการกำหนดสถานะคำสั่งบางอย่างเช่น "การชำระเงินด้วยบัตรเครดิตที่ได้รับ" คำถามก็คือพวกเขาอยู่ในสถานะใด มีคำจำกัดความสำหรับสถานะในตัวแต่ละรายการหรือไม่

แก้ไข: ดูเหมือนว่าฉันผสม "สถานะ" และ "สถานะ" ฉันหวังว่ามันจะชัดเจนจากบริบทต่อไป ฉันตำหนิการแปล Magento ภาษาเยอรมัน (สถานะ => สถานะสถานะ => Zustand)

คำตอบ:


42

อ้างอิงจาก "The Definitive Guide to Magento" [1]สถานะคำสั่งซื้อมีการกำหนดไว้ดังนี้:

  • รอดำเนินการ:คำสั่งซื้อที่รอดำเนินการเป็นคำสั่งซื้อใหม่ล่าสุดที่ยังไม่ได้ดำเนินการ โดยทั่วไปคำสั่งซื้อเหล่านี้จะต้องมีการออกใบแจ้งหนี้และจัดส่ง
  • รอดำเนินการ PayPal:คำสั่งซื้อที่รอดำเนินการของ PayPal เป็นคำสั่งซื้อใหม่ล่าสุดที่ PayPal ยังไม่ได้ทำการล้าง [ ... ]
  • กำลังดำเนินการ:การประมวลผลหมายความว่าคำสั่งซื้อได้รับใบแจ้งหนี้หรือจัดส่งแล้ว แต่ไม่ใช่ทั้งสองอย่าง
  • เสร็จสมบูรณ์:ใบสั่งซื้อที่ทำเครื่องหมายว่าเสร็จสมบูรณ์ได้รับใบแจ้งหนี้และจัดส่งแล้ว
  • ยกเลิก:ควรยกเลิกคำสั่งซื้อหากคำสั่งนั้นถูกยกเลิกหรือหากยังไม่ได้ชำระเงิน
  • ปิด:คำสั่งซื้อที่ปิดคือคำสั่งซื้อที่ได้รับใบลดหนี้และลูกค้าได้รับเงินคืนสำหรับการสั่งซื้อของพวกเขา
  • การระงับ:คำสั่งซื้อที่ถูกระงับจะต้องถูกระงับก่อนที่จะดำเนินการต่อไป

ดังนั้นสถานะ "การชำระเงินด้วยบัตรเครดิตที่ได้รับ" จึงเป็นของprocessingรัฐหากว่ายังไม่ได้ส่งคำสั่งซื้อ


Aligent Consulting [2]สร้างแผนภูมิการไหลสำหรับสถานะคำสั่งซื้อ:

magento order state flow


แหล่งที่มา:

  1. อดัม McCombs และโรเบิร์ต Banh: "ที่ชัดเจนเพื่อวีโอไอพี", Apress, 2552 (ไอ 1430272287, 9781430272281)
  2. https://twitter.com/aligent/status/509487359172177921/photo/1

ฉันทุกคนสำหรับคำถามที่ตอบเอง - แต่นี่ดูเหมือนว่าจะเป็นการเพาะที่มีคุณภาพต่ำ คัดลอก + วางคำตอบที่หาได้ง่ายออนไลน์ไม่ได้เพิ่มคุณค่าให้กับเว็บไซต์นี้มากนัก
Ben Lessani - Sonassi

4
@sonassi: ฉันเคารพความคิดเห็นของคุณและจะไม่เรียกร้องคำถามให้มีคุณภาพสูงสุด แต่ฉันค้นหาในขณะนี้และไม่พบคำถามที่เกี่ยวข้องที่นี่หรือดังนั้นดังนั้นจึงอาจช่วยคนอื่นในอนาคต
Fabian Schmengler

ฉันพบว่ามันมีประโยชน์สุด ๆ บางครั้งคุณพบสิ่งต่าง ๆ ได้ง่ายกว่าบนสแต็กมากกว่าใน google เนื่องจากสแต็กถูกกรองล่วงหน้าเมื่อเทียบกับ google ดังนั้นจะต้องพูด และถ้าหากเป็นเช่นนั้น พวกเขาให้ความคุ้มค่า ฉันตกลงทั้งหมดกับการเพาะ
ahnbizcad

2

สถานะการสั่งซื้อที่แตกต่างกันถูกกำหนดใน Mage_Sales_Model_Order:

const STATE_NEW             = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING      = 'processing';
const STATE_COMPLETE        = 'complete';
const STATE_CLOSED          = 'closed';
const STATE_CANCELED        = 'canceled';
const STATE_HOLDED          = 'holded';
const STATE_PAYMENT_REVIEW  = 'payment_review';

+1 มัน overridable หรือไม่ มีวิธีรับสิ่งนี้จาก api ที่เหลือหรือไม่? เช่น / config / sales / possibleStatusList?
Mzn

1
เขียนทับค่าคงที่หรือไม่ ทำไมคุณต้องการเขียนทับพวกเขา? คุณสามารถกำหนดสถานะคำสั่งซื้อใหม่ในแบ็กเอนด์ (ระบบ> สถานะคำสั่งซื้อ) หากคุณหมายถึง 'เปลี่ยนสถานะการสั่งซื้อ' ใช่เป็นไปได้ และใช่คุณยังสามารถรับสถานะการสั่งซื้อจาก API (วิธีการ sales_order.info หรือวิธีการ sales_order.list)
Stefan

ใช่ฉันหมายถึงเปลี่ยนรายการไม่ใช่ค่าคงที่ คุณรู้วิธีที่ฉันสามารถเข้าถึง sales_order.info ในส่วนที่เหลือ API? จุดสิ้นสุดคืออะไร ฉันพยายาม / salesorders / info url ที่เกี่ยวข้อง
Mzn

ไม่ควรจะยากดูที่นี่สำหรับการเข้าถึงโดยทั่วไป: magento.stackexchange.com/a/33187/6291และข่าวสารเกี่ยวกับ sales_order.info ที่นี่: devdocs.magento.com/guides/m1x/api/soap/salesOrder/ ... ขอให้โชคดี!
สเตฟาน

ขอบคุณสำหรับการตอบกลับ แต่ SOAP api นั้นแตกต่างจาก REST api จริงๆ ด้วยเหตุผลบางอย่างฉันไม่พบที่คุณพูดถึงใน REST api docs: devdocs.magento.com/swagger/index.html คุณเห็นที่นั่นไหม อาจจะไม่รวมอยู่ใน REST api?
Mzn

1

ที่จริงแล้วเนื่องจากสถานะการสั่งซื้อ 1.5 สถานะสามารถกำหนดได้ในส่วนของผู้ดูแลระบบและ xml นั้นไม่ใช่วิธีที่ต้องการในการเพิ่ม / เปลี่ยนสถานะหรือสถานะ โปรดสร้างความแตกต่างระหว่างสถานะและสถานะ สถานะคือสถานะ 'กำลังดำเนินการ' คือ 'ได้รับการชำระเงินด้วยบัตรเครดิต'

อัปเดต : สถานะการสั่งซื้อสามารถสร้างและแก้ไขได้ใน admin / sales_order_status / ไม่จำเป็นต้องทำอะไรใน XML คุณสามารถกำหนดสถานะได้ก็ต่อเมื่อการสั่งซื้ออยู่ในสถานะที่เหมาะสม ตามลำดับเริ่มต้นจะเข้าสู่สถานะการประมวลผลเมื่อมีการออกใบแจ้งหนี้หรือจัดส่ง


นี่หมายความว่าเป็นความคิดเห็นต่อคำตอบของ Sebastian Lind หรือไม่ สำหรับสถานะและสถานะดูเหมือนว่าฉันจะรวมมัน (อีกครั้ง ... ) ขอบคุณสำหรับการแก้ไข
Fabian Schmengler

-1

คุณสามารถเชื่อมต่อสถานะใหม่ของคุณกับสถานะคำสั่งซื้อที่มีอยู่หรือคุณสร้างสถานะใหม่ทั้งหมด เพียงแก้ไขไฟล์การกำหนดค่าของโมดูลการขายดังต่อไปนี้ (app \ code \ core \ Mage \ Sales \ etc \ config.xml) ด้วยสถานะใหม่ของคุณ:

<?xml version="1.0"?>
<config>
  <!-- ... -->
  <global>
    <sales>
      <order>
        <statuses>
          <new_status>
            <label>New Status</label>
            <description>Your Description here</description>
          </new_status>
        </statuses>
        <states>
          <new>
            <label>New</label>
            <statuses>
              <new_status/>
            </statuses>
            <visible_on_front/>
          </new>
        </states>
      </order>
    </sales>
  </global>
</config>

รีเฟรชแคชเสร็จแล้ว


2
ไม่มีอะไรเกี่ยวกับคำตอบนี้เหมาะสมฉันกลัว
benmarks

1
อย่าแก้ไขแกนหลัก ค่อนข้างสร้างการกำหนดค่าในโมดูลของคุณเอง วีโอไอพีจะรวมไฟล์ของคุณเข้ากับไฟล์การตั้งค่าหลัก
Jacques
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.