2

M1 から M2.2.0 インストールの新規インストールにデータをエクスポートするために、トークン認証で REST API を使用しています。

顧客と製品はすべて正常に機能しますが、カートを作成せずに注文を作成する方法を理解できません。

つまり、私が見つけたすべてのソリューションで提案されているように (公式の magentoガイドでも)、注文から必要なすべてのデータが既にあります。以前にカートを作成する必要はありません。

上記のガイドと同じ手順に従っていますが、注文に関するデータを投稿しようとすると、エラーが発生し続けます。

"Fatal Error: 'Uncaught Error: Call to a member function getMethodInstance() on null in \/var\/www\/html\/app\/code\/Magento\/Payment\/Observer\/SalesOrderBeforeSaveObserver.php:24\nStack trace:\n#0 \/var\/www\/html\/lib\/internal\/Magento\/Framework\/Event\/Invoker\/InvokerDefault.php(72): Magento\\Payment\\Observer\\SalesOrderBeforeSaveObserver->execute(Object(Magento\\Framework\\Event\\Observer))\n#1 \/var\/www\/html\/lib\/internal\/Magento\/Framework\/Event\/Invoker\/InvokerDefault.php(60): Magento\\Framework\\Event\\Invoker\\InvokerDefault->_callObserverMethod(Object(Magento\\Payment\\Observer\\SalesOrderBeforeSaveObserver), Object(Magento\\Framework\\Event\\Observer))\n#2 \/var\/www\/html\/lib\/internal\/Magento\/Framework\/Event\/Manager.php(66): Magento\\Framework\\Event\\Invoker\\InvokerDefault->dispatch(Array, Object(Magento\\Framework\\Event\\Observer))\n#3 \/var\/www\/html\/generated\/code\/Magento\/Framework\/Event\/Manager\/Proxy.php(95): Magento\\Framework\\Event\\Manager->dispatch('sales_order_sav...', Array)\n#4 \/var\/www\/html\/lib\/internal\/Magento\/Framework\/Model\/AbstractModel.php(694):' in '\/var\/www\/html\/app\/code\/Magento\/Payment\/Observer\/SalesOrderBeforeSaveObserver.php' on line 24"

これは、私が試してみるために使用しているサンプル JSON です。

{
    "entity": {
        "customer_email": "provacustomer@mail.com",
        "customer_firstname": "mario",
        "customer_lastname": "rossi",
        "base_grand_total": 120,
        "discount_amount": 0,
        "grand_total": 120,
        "increment_id": "200001414155",
        "shipping_amount": 7,
        "status": "processing",
        "store_id": 1,
        "subtotal": 100,
        "tax_amount": 20,
        "items": {
            "description": "prodotto mio",
            "item_id": 3,
            "price": 10,
            "product_id": 3,
            "product_type": "simple",
            "qty_ordered": 2,
            "sku": "002",
            "tax_amount": 2,
            "weight": 1
        }
    },
    "billing_address": {
        "firstname": "giuseppa",
        "lastname": "rossi",
        "company": "mycompany",
        "city": "rome",
        "region": "california",
        "region_id": 12,
        "postcode": "12312",
        "telephone": "1234556677",
        "country_id": "US",
        "street": ["via prima", "via seconda"]
    },
    "payment": {
        "amount_paid": 120,
        "method": "checkmo"
    },
    "status_histories": [{
        "comment": "new order",
        "status": "processing"
    }],
    "extension_attributes": {
        "shipping_assignments": [{
            "shipping": {
                "address": [{
                    "firstname": "franca",
                    "lastname": "vardididi",
                    "company": "mycompany",
                    "city": "rome",
                    "region": "california",
                    "region_id": 12,
                    "postcode": "12312",
                    "telephone": "1234556677",
                    "country_id": "US",
                    "street": ["via prima", "via seconda"]
                }],
                "method": "checkmo",
                "total": {
                    "base_shipping_amount": 7
                }
            },
            "items": [{
                "description": "prodotto mio",
                "item_id": 3,
                "price": 10,
                "product_id": 3,
                "product_type": "simple",
                "qty_ordered": 2,
                "sku": "002",
                "tax_amount": 2,
                "weight": 1
            }]
        }]
    }
}

編集

この質問のjsonを使用して、注文を作成できました。

4

1 に答える 1