Is your feature request related to a problem? Please describe.
I'm currently facing a challenge with the Square API's List Catalog endpoint. The response object for MODIFIER_LIST does not contain min_modifiers and max_modifiers attributes. To access that information, I need to call the List Catalog endpoint for ITEM and then merge the two responses, which is inefficient.
Describe the solution you'd like
It would be great if the List Catalog endpoint could include min_modifiers and max_modifiers attributes in the response object for MODIFIER_LIST. This would allow developers to get all necessary information about modifier lists in a single API call, streamlining the process and saving time.
Describe alternatives you've considered
The current workaround is to call the List Catalog endpoint for item and merge the two responses to access min_modifiers and max_modifiers information. However, this is inefficient and time-consuming.
Additional context
Including min_modifiers and max_modifiers attributes in the MODIFIER_LIST response object would simplify the integration process for developers and improve the overall usability of the Square API.
Example MODIFIER_LIST Response:
{'objects': [{'type': 'MODIFIER_LIST',
'id': 'T6VMUL4IEOAWSF52COGXBXEN',
'updated_at': '2023-03-19T01:57:37.437Z',
'created_at': '2023-03-19T01:57:37.437Z',
'version': 1679191057437,
'is_deleted': False,
'present_at_all_locations': False,
'present_at_location_ids': ['LWRC1JNC0MPE5'],
'modifier_list_data': {'name': 'Cheese Options',
'selection_type': 'MULTIPLE',
'modifiers': [{'type': 'MODIFIER',
'id': 'XATFMQLJ24IPXPYVVFGBU2LP',
'updated_at': '2023-03-19T01:57:37.437Z',
'created_at': '2023-03-19T01:57:37.437Z',
'version': 1679191057437,
'is_deleted': False,
'present_at_all_locations': False,
'present_at_location_ids': ['LWRC1JNC0MPE5'],
'modifier_data': {'name': 'Extra Mozzarella Cheese',
'price_money': {'amount': 173, 'currency': 'USD'},
'on_by_default': False,
'ordinal': 0,
'modifier_list_id': 'T6VMUL4IEOAWSF52COGXBXEN'}},
{'type': 'MODIFIER',
'id': 'YFH6MH4K65YZBCMXIY6D63A7',
'updated_at': '2023-03-19T01:57:37.437Z',
'created_at': '2023-03-19T01:57:37.437Z',
'version': 1679191057437,
'is_deleted': False,
'present_at_all_locations': False,
'present_at_location_ids': ['LWRC1JNC0MPE5'],
'modifier_data': {'name': 'Vegan Mozzarella Cheese',
'price_money': {'amount': 230, 'currency': 'USD'},
'on_by_default': False,
'ordinal': 1,
'modifier_list_id': 'T6VMUL4IEOAWSF52COGXBXEN'}},
{'type': 'MODIFIER',
'id': 'ER5CEXLDA3MWIUBPV7YCVYLA',
'updated_at': '2023-03-19T01:57:37.437Z',
'created_at': '2023-03-19T01:57:37.437Z',
'version': 1679191057437,
'is_deleted': False,
'present_at_all_locations': False,
'present_at_location_ids': ['LWRC1JNC0MPE5'],
'modifier_data': {'name': 'No Cheese',
'price_money': {'amount': 0, 'currency': 'USD'},
'on_by_default': False,
'ordinal': 2,
'modifier_list_id': 'T6VMUL4IEOAWSF52COGXBXEN'}}],
'is_conversational': False}}]}
Example ITEM Response:
{'objects': [{'type': 'ITEM',
'id': 'BT537LAIQ76ZSIXH37N7DH7J',
'updated_at': '2023-03-19T02:00:04.154Z',
'created_at': '2023-03-19T01:57:37.437Z',
'version': 1679191204154,
'is_deleted': False,
'present_at_all_locations': False,
'present_at_location_ids': ['LWRC1JNC0MPE5'],
'item_data': {'name': 'Pepperoni Pizza (16")',
'is_taxable': True,
'category_id': 'AEVIYSRVJ4Z32BTWDRPBS7DP',
'modifier_list_info': [{'modifier_list_id': 'T6VMUL4IEOAWSF52COGXBXEN',
'min_selected_modifiers': 0,
'max_selected_modifiers': 1,
'enabled': True},
{'modifier_list_id': 'YCKYCB3E2PBDMKALMTJSDOM3',
'min_selected_modifiers': 0,
'max_selected_modifiers': 7,
'enabled': True},
{'modifier_list_id': 'QN5LOUISDYWSFXJ4ICM6RLMV',
'min_selected_modifiers': 0,
'max_selected_modifiers': 6,
'enabled': True}],
'variations': [{'type': 'ITEM_VARIATION',
'id': '3X323HKH5EZCJ2RBW7Q7UQ4B',
'updated_at': '2023-03-19T01:57:37.437Z',
'created_at': '2023-03-19T01:57:37.437Z',
'version': 1679191057437,
'is_deleted': False,
'present_at_all_locations': False,
'present_at_location_ids': ['LWRC1JNC0MPE5'],
'item_variation_data': {'item_id': 'BT537LAIQ76ZSIXH37N7DH7J',
'name': 'Regular',
'ordinal': 0,
'pricing_type': 'FIXED_PRICING',
'price_money': {'amount': 1825, 'currency': 'USD'},
'sellable': True,
'stockable': True}}],
'product_type': 'REGULAR',
'ecom_available': True,
'ecom_visibility': 'VISIBLE',
'pickup_fulfillment_preferences_id': 'fprefs_127m0930y1bzx0al73xpchtpw',
'dine_in_fulfillment_preferences_id': 'fprefs_127m0930xlkojwkn3d0g7fohg'}}]}