I keep getting 500 errors when posting & putting to various end-points (not all the time, but often enough). Is there somewhere I can see Veeqo’s logs to try and better debug what the problem is, and whether it’s something I can fix?
Unfortunately we don’t expose our logs to the public. If you let me know the
user ID you’re using (check response for
updated_by_id ) I can help diagnose.
Normally we only see 500 errors during development.
User ID: 24640
Something something 20 characters something
ActiveRecord::UnknownAttributeErrorproducts#update unknown attribute 'weight_unit' for ProductVariant.
try not including weight_unit
NoMethodError orders#create undefined method `id' for nil:NilClass
Your request was missing a “customer_id”
Can you double check the
customer_id that you’re sending. If you have any other issues then let me know.
I’ve made those changes, but I’m still getting 500 errors.
It would be nice if the API responded with the errors rather than just 500ing, since your API and docs seem to be at odds with each other.
please can you send the full request you’re making?
What do you mean about the API and docs being at odds with each other. I’m always keen to hear feedback and improve our documentation.
The order (ignore the PHP array dump, I’m sending JSON):
Array ( [order] => Array ( [channel_id] => 49947 [customer_id] => 12843556 [delivery_method_id] => 191837 [deliver_to_attributes] => Array ( [first_name] => Not [last_name] => My [address1] => Real [address2] => [city] => Address [state] => Lorem [country] => GB [zip] => F4K3 71P [customer_id] => 12843556 ) [number] => eace43a65132597b0dbad098f5197145 [send_notification_email] => false [total_discounts] => 0 [line_items_attributes] => Array (  => Array ( [sellable_id] => 18320411 [price_per_unit] => 14.9900 [quantity] => 1 [tax_rate] => 0 [taxless_discount_per_unit] => 0 ) ) [payment_attributes] => Array ( ) ) )
Regarding the docs:
unknown attribute 'weight_unit' for ProductVariant- According to the docs
weight_unitis at the product variant level.
customer_idisn’t mention in the Order attributes (but is in the request example).
- The Create Product attributes are all top level, when they need to be within a
productobject (again, this is in the request example, which I should probably rely on rather than the attributes).
The examples are, in general, a bit more in depth than the attributes.
I’ve tried really hard to provide varied and comprehensive examples, particularly for creating orders as this is something that normally takes a few attempts to get right.
Please can you include a
payment_type if you are sending
payment_attributes. This is actually covered in the attributes and the examples!
I’ve also added
customer_id back to the required order attributes. Not sure why it had decided to disappear, thank you for pointing that out.
I’m not sure why
weight_unit isn’t working. It has done for me in the past.
Posting orders is working now! Still getting a 500 error with products.
This is what I’m sending (I’ve removed the image URLs):
Array ( [method] => PUT [endPoint] => products/12562973 [body] => Array ( [product] => Array ( [title] => Microbe-Lift All-In-One [product_variants_attributes] => Array (  => Array ( [title] => 118ml [price] => 9.9900 [sku_code] => 097121211217 [weight_grams] => 0 )  => Array ( [title] => 236ml [price] => 14.9900 [sku_code] => 097121211224 [weight_grams] => 0 )  => Array ( [title] => 473ml [price] => 20.9900 [sku_code] => 097121211231 [weight_grams] => 0 ) ) [images_attributes] => Array (  => Array ( [src] => (...) [display_position] => 1 )  => Array ( [src] => (...) [display_position] => 2 )  => Array ( [src] => (...) [display_position] => 3 ) ) [weight_unit] => g ) ) )
the only thing that doesn’t look right to me in that request is the
weight_unit attribute at the end.
Please can you try a test without this?
weight_unit works. It always fails if I try to include it anywhere (either on the product or in a variant). I’m converting all weights to grams, and the response includes
g so I guess it’s fair to assume that grams is the default?
weight_unit doesn’t need to be included in the product. It should inherit from the channel.
That would be a safe assumption.