Skip to content

Commit

Permalink
fix: fallback to 'price' in ecommerce api loader
Browse files Browse the repository at this point in the history
The Django Oscar upgrade of ecommerce changed the
item's price field from `price_excl_tax` to just `price`
causing the EcommerceApi data loader to fail.

This commit handled the exception and falls back to
the 'price' value.

Ref: openedx-unsupported/ecommerce#4050
  • Loading branch information
tecoholic committed Sep 24, 2024
1 parent 1bd0b54 commit 5ebf1a4
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion course_discovery/apps/course_metadata/data_loaders/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,10 @@ def update_seats(self, body):
def update_seat(self, course_run, product_body):
stock_record = product_body['stockrecords'][0]
currency_code = stock_record['price_currency']
price = Decimal(stock_record['price_excl_tax'])
try:
price = Decimal(stock_record['price_excl_tax'])
except KeyError: # uses newer ecommerce version without 'price_excl_tax' key
price = Decimal(stock_record['price'])
sku = stock_record['partner_sku']

# For more context see ADR docs/decisions/0025-dont-sync-mobile-skus-on-discovery.rst
Expand Down

0 comments on commit 5ebf1a4

Please sign in to comment.