The PayPal csv report has a column called Item ID.
Other checkout implementations fill this column with a comma separated list of item IDs. How do I go about achieving this with the OmniPay PayPal library?
I'm already supplying the array of items using setItems, but this doesn't seem to have any bearing on that column.
For example: "90,91,84,83".
Related
I am targeting the https://api.xero.com/api.xro/2.0/Invoices endpoint, specifying either no invoice or a specific invoice. In both cases I am not receiving the ItemCode, DiscountRate and DiscountAmount components of the LineItems array.
Is there a query string item that will force the missing components to appear? These "Elements for LineItems" components are supposed to be there, assuming I've read the documentation correctly.
I am getting Magento 2 order details by rest order API but the result is showing the same SKU in configured product order item that is creating an issue in SAP integration.
Anyone let me know how can we overwrite Magento 2 rest API code?
You should not need to “overwrite magento 2 rest API code” because what you described is perfectly normal and expected.
In Magento orders, each configurable product creates two sales order line items due to the way that configurable product data is structured in the catalog. One line corresponds to the “parent” catalog product, and one corresponds to the specific variant “child” (simple) product. Both records contain the same SKU value but their product IDs are different.
In order to get all information about the ordered item both of those records could be important, however if you can get by with just the data from the simple product then you could filter your REST request like below:
GET <host>/rest/V1/orders/items?
searchCriteria[filter_groups][0][filters][0][field]=order_id&
searchCriteria[filter_groups][0][filters][0][value]=1&
searchCriteria[filter_groups][1][filters][0][field]=product_type&
searchCriteria[filter_groups][1][filters][0][value]=simple
Consider the following invoice table with two entries, id 1 and 2:
id, item, date_paid
1, 'apple', ''
2, 'banana', ''
When a payment is made date_paid column needs to be updated.
What is a proper REST verb for this?
POST invoices/1/payments
or
PUT invoices/1/payments
I feel like POST is proper since I am "adding" a payment detail but then again internally I'm actually "updating" a DB row so PUT seems applicable also.
If I understand your example, you have an invoice that was created in your Invoice table at some point in the past. You're now updating said invoice to reflect that a payment was made. That's definitely an update and PUT is the correct verb. Presumably you might also have a Payment table with the actual payment details (amount, payer, etc.). If so, then that's where you would be adding a new payment record. That call would be a POST.
We are currently looking at displaying the order level line items – Order Total, Item Total, Total Shipping, Total Tax (which are still passed as part of PaymentDetails).
For the above requirement we are passing all the required details in the SetExpressCheckoutReq.
Please let me know how can we achieve it.
As part of SetExpressCheckoutReq we are passing:
<ebl:PaymentDetails>
<ebl:OrderTotal currencyID="USD">359.94</ebl:OrderTotal>
<ebl:ItemTotal currencyID="USD">309.99</ebl:ItemTotal>
<ebl:ShippingTotal currencyID="USD">49.95</ebl:ShippingTotal>
<ebl:TaxTotal currencyID="USD">0.0</ebl:TaxTotal>
<ebl:OrderDescription>Order Total: 359.94</ebl:OrderDescription>
<ebl:PaymentAction>Order</ebl:PaymentAction>
</ebl:PaymentDetails>
2014-08-05T18:04:20Z
Success
aab008f9d690d
98.0
12194268
EC-4KY406765L816782W
You need to include the node, one for each item. Inside that are child elements for the item details like name, price, qty, etc. which you'll find in the PaymentDetailsItem Type Fields section of the SetExpressCheckout API reference.
Also, keep in mind that you'll need to include the same details in your DoExpressCheckoutPayment request in order for the line item details to show up in the final transaction details at PayPal.
When I update an invoice in QB (after its been changed in my system), I want to avoid updating anything that the user has modified in QB. My plan was to use the filter API method and filter by Ids to get the list of invoices from QB that my app created. However, it doesn't look like InvoiceFilter accepts ListIdSet. It does have a TransactionIdSet, but I can't find a way to get ahold of that number (i.e., the TransactionId) via Data Services. It's certainly not in the response when invoices are read. So, how do I query for a specific set of invoices via the API?
The transaction id refers to the id of the invoice here.
For eg, the following invoice query will retrieve the invoice with Id 4 -
<InvoiceQuery xmlns="http://www.intuit.com/sb/cdm/v2">
<TransactionIdSet>
<Id idDomain="QB">4</Id>
</TransactionIdSet>
</InvoiceQuery>