1
  if (!$this->_current_order->canInvoice()) {
         $this->Msg[] = 'Can not create Invoice';
         return false;
  }

これは常に false を返します。このため、請求書または配送を作成できません。

4

1 に答える 1

5

完了/クローズ状態で、注文がキャンセルされた可能性があります。

おそらく保留中か、まだ支払い審査中です。

請求する数量が 0 を超えるアイテムや、アイテムが請求書にロックされている可能性があります...

クラスの以下に示すメソッドの各IFステートメントにログを入れることをお勧めしますMage_Sales_Model_Order

    /**
     * Retrieve order invoice availability
     *
     * @return bool
     */
    public function canInvoice()
    {
        if ($this->canUnhold() || $this->isPaymentReview()) {
            return false;
        }
        $state = $this->getState();
        if ($this->isCanceled() || $state === self::STATE_COMPLETE || $state === self::STATE_CLOSED) {
            return false;
        }

        if ($this->getActionFlag(self::ACTION_FLAG_INVOICE) === false) {
            return false;
        }

        foreach ($this->getAllItems() as $item) {
            if ($item->getQtyToInvoice()>0 && !$item->getLockedDoInvoice()) {
                return true;
            }
        }
        return false;
    }
于 2013-07-05T17:34:03.090 に答える