默認情況下,Magento的Order REST API不會提交用於訂單(數據庫中的customer_balance_amount col)的商店信用額度。我需要將其暴露給API接口,但截至目前無法。我嘗試兩種方法:將customer_balance_amount添加到Magento 2的Order REST API
http://magehit.com/blog/how-to-get-value-of-custom-attribute-on-magento-2-rest-api/ - 使用觀測,但似乎並沒有對API數據
和
http://www.ipragmatech.com/extend-magento2-rest-api-easy-steps/任何反思 - 這是我成功的嘗試,但它涉及真正創建一個新的ednpoint,而不是覆蓋/擴展當前的API。
我實際上能夠通過直接更改模塊銷售核心模塊內的OrderInterface和Order模型來重現此問題,但我希望實現這種「正確」方式而不是修改核心。
如果有人分享一些知識如何做到這一點,我會很感激。
編輯:補充說,做出的解決方案使用的代碼,但我們的目標是讓它正確的方式,而不是編輯核心文件,像這樣:
供應商/ Magento的/模塊的銷售/原料藥/數據/ OrderInterface.php:
/*
* Customer Balance Amount
*/
const CUSTOMER_BALANCE_AMOUNT = 'customer_balance_amount';
/**
* Returns customer_balance_amount
*
* @return float Customer Balance Amount
*/
public function getCustomerBalanceAmount();
/**
* Sets the customer_balance_amount for the order.
*
* @param float $amount
* @return $this
*/
public function setCustomerBalanceAmount($amount);
供應商/ Magento的/模塊的銷售/模型/ Order.php:
/**
* Returns customer_balance_amount
*
* @return float
*/
public function getCustomerBalanceAmount()
{
return $this->getData(OrderInterface::CUSTOMER_BALANCE_AMOUNT);
}
/**
* Sets the customer_balance_amount for the order.
*
* @param float $amount
* @return $this
*/
public function setCustomerBalanceAmount($amount)
{
return $this->setData(OrderInterface::CUSTOMER_BALANCE_AMOUNT, $amount);
}
問候, 亞歷克斯
鏈接得到的代碼很好,但你需要在你的問題中包含相關的代碼 – Machavity
@Machavity謝謝你的評論。我添加了一個實際可行的示例代碼,但是通過直接修改內核,所以我的問題是如何以「正確的方式」執行此操作。 –