shopline-sdk-python 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- shopline_sdk/__init__.py +17 -0
- shopline_sdk/apis/__init__.py +0 -0
- shopline_sdk/apis/addon_products/__init__.py +0 -0
- shopline_sdk/apis/addon_products/bulk_update_addon_product_quantity_by_sku.py +72 -0
- shopline_sdk/apis/addon_products/create_addon_product.py +69 -0
- shopline_sdk/apis/addon_products/get_addon_product.py +42 -0
- shopline_sdk/apis/addon_products/get_addon_product_stocks.py +66 -0
- shopline_sdk/apis/addon_products/get_addon_products.py +84 -0
- shopline_sdk/apis/addon_products/search_addon_products.py +113 -0
- shopline_sdk/apis/addon_products/update_addon_product.py +54 -0
- shopline_sdk/apis/addon_products/update_addon_product_quantity.py +96 -0
- shopline_sdk/apis/addon_products/update_addon_product_stock.py +86 -0
- shopline_sdk/apis/affiliate_campaigns/__init__.py +0 -0
- shopline_sdk/apis/affiliate_campaigns/create_affiliate_campaign.py +109 -0
- shopline_sdk/apis/affiliate_campaigns/delete_affiliate_campaign.py +44 -0
- shopline_sdk/apis/affiliate_campaigns/export_affiliate_campaign_report_to_partner.py +60 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaign.py +59 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaign_orders.py +75 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaign_summary.py +49 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaigns.py +84 -0
- shopline_sdk/apis/affiliate_campaigns/get_products_sales_ranking_of_campaign.py +73 -0
- shopline_sdk/apis/affiliate_campaigns/update_affiliate_campaign.py +96 -0
- shopline_sdk/apis/agents/__init__.py +0 -0
- shopline_sdk/apis/agents/get_agent.py +59 -0
- shopline_sdk/apis/agents/get_agents.py +77 -0
- shopline_sdk/apis/bulk_operations/__init__.py +0 -0
- shopline_sdk/apis/bulk_operations/get_a_bulk_operation.py +43 -0
- shopline_sdk/apis/bulk_operations/get_bulk_operations.py +57 -0
- shopline_sdk/apis/cart_item_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/cart_item_app_metafields/bulk_create_app_metafield.py +52 -0
- shopline_sdk/apis/cart_item_app_metafields/bulk_delete_app_metafield.py +61 -0
- shopline_sdk/apis/cart_item_app_metafields/bulk_update_app_metafield.py +62 -0
- shopline_sdk/apis/cart_item_app_metafields/get_app_metafields_attached_to_cart_items_of_specific_cart.py +61 -0
- shopline_sdk/apis/cart_item_metafields/__init__.py +0 -0
- shopline_sdk/apis/cart_item_metafields/bulk_create_metafield.py +52 -0
- shopline_sdk/apis/cart_item_metafields/bulk_delete_metafield.py +62 -0
- shopline_sdk/apis/cart_item_metafields/bulk_update_metafield.py +62 -0
- shopline_sdk/apis/cart_item_metafields/get_metafields_attached_to_cart_items_of_specific_cart.py +62 -0
- shopline_sdk/apis/carts/__init__.py +0 -0
- shopline_sdk/apis/carts/bulk_add_items_to_cart.py +80 -0
- shopline_sdk/apis/carts/bulk_delete_cart_items.py +59 -0
- shopline_sdk/apis/carts/bulk_patch_cart_items.py +61 -0
- shopline_sdk/apis/carts/get_cart.py +63 -0
- shopline_sdk/apis/carts/get_cart_id.py +74 -0
- shopline_sdk/apis/categories/__init__.py +0 -0
- shopline_sdk/apis/categories/bulk_assign.py +75 -0
- shopline_sdk/apis/categories/bulk_update_category_product_sorting.py +84 -0
- shopline_sdk/apis/categories/create_category.py +62 -0
- shopline_sdk/apis/categories/delete_category.py +62 -0
- shopline_sdk/apis/categories/get_categories.py +104 -0
- shopline_sdk/apis/categories/get_category.py +76 -0
- shopline_sdk/apis/categories/update_category.py +70 -0
- shopline_sdk/apis/channels/__init__.py +0 -0
- shopline_sdk/apis/channels/create_product_channel_price.py +45 -0
- shopline_sdk/apis/channels/get_channel.py +76 -0
- shopline_sdk/apis/channels/get_channels.py +83 -0
- shopline_sdk/apis/channels/get_product_channel_price.py +75 -0
- shopline_sdk/apis/channels/update_product_channel_price.py +45 -0
- shopline_sdk/apis/conversations/__init__.py +0 -0
- shopline_sdk/apis/conversations/create_order_message.py +91 -0
- shopline_sdk/apis/conversations/create_return_order_message.py +90 -0
- shopline_sdk/apis/conversations/create_shop_message.py +81 -0
- shopline_sdk/apis/conversations/get_conversations.py +76 -0
- shopline_sdk/apis/conversations/get_messages.py +76 -0
- shopline_sdk/apis/custom_fields/__init__.py +0 -0
- shopline_sdk/apis/custom_fields/get_custom_fields.py +42 -0
- shopline_sdk/apis/customer_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/customer_app_metafields/create_specific_app_metafield.py +44 -0
- shopline_sdk/apis/customer_app_metafields/delete_specific_app_metafield.py +42 -0
- shopline_sdk/apis/customer_app_metafields/get_app_metafields_attached_to_specific_customer.py +61 -0
- shopline_sdk/apis/customer_app_metafields/get_specific_app_metafield.py +41 -0
- shopline_sdk/apis/customer_app_metafields/update_specific_app_metafield.py +44 -0
- shopline_sdk/apis/customer_group_children/__init__.py +0 -0
- shopline_sdk/apis/customer_group_children/get_children_group_of_the_customer_group.py +89 -0
- shopline_sdk/apis/customer_groups/__init__.py +0 -0
- shopline_sdk/apis/customer_groups/get_customer_group.py +65 -0
- shopline_sdk/apis/customer_groups/get_customer_groups.py +108 -0
- shopline_sdk/apis/customer_groups/get_customer_ids_of_the_specific_customer_group.py +84 -0
- shopline_sdk/apis/customer_groups/search_customer_groups.py +92 -0
- shopline_sdk/apis/customer_metafields/__init__.py +0 -0
- shopline_sdk/apis/customer_metafields/create_specific_metafield.py +44 -0
- shopline_sdk/apis/customer_metafields/delete_specific_metafield.py +42 -0
- shopline_sdk/apis/customer_metafields/get_metafields_attached_to_specific_customer.py +62 -0
- shopline_sdk/apis/customer_metafields/get_specific_metafield.py +41 -0
- shopline_sdk/apis/customer_metafields/update_specific_metafield.py +44 -0
- shopline_sdk/apis/customers/__init__.py +0 -0
- shopline_sdk/apis/customers/add_or_remove_customer_tags.py +93 -0
- shopline_sdk/apis/customers/create_customer.py +87 -0
- shopline_sdk/apis/customers/delete_customer.py +62 -0
- shopline_sdk/apis/customers/get_customer.py +94 -0
- shopline_sdk/apis/customers/get_customer_member_points_history.py +92 -0
- shopline_sdk/apis/customers/get_customer_store_credit_history.py +98 -0
- shopline_sdk/apis/customers/get_customers.py +127 -0
- shopline_sdk/apis/customers/get_line_customer.py +67 -0
- shopline_sdk/apis/customers/getcustomers_smembershipinfo.py +93 -0
- shopline_sdk/apis/customers/search_customers.py +216 -0
- shopline_sdk/apis/customers/update_customer.py +87 -0
- shopline_sdk/apis/customers/update_customer_member_points.py +113 -0
- shopline_sdk/apis/customers/update_customer_store_credits.py +172 -0
- shopline_sdk/apis/customers/update_customer_subscriptions.py +64 -0
- shopline_sdk/apis/customers/update_customer_tags.py +88 -0
- shopline_sdk/apis/delivery_options/__init__.py +0 -0
- shopline_sdk/apis/delivery_options/get_delivery_config.py +52 -0
- shopline_sdk/apis/delivery_options/get_delivery_option.py +42 -0
- shopline_sdk/apis/delivery_options/get_delivery_options.py +65 -0
- shopline_sdk/apis/delivery_options/get_delivery_time_slots.py +64 -0
- shopline_sdk/apis/delivery_options/updatedeliveryoption_sstoreinformation.py +67 -0
- shopline_sdk/apis/event_trackers/__init__.py +0 -0
- shopline_sdk/apis/event_trackers/create_an_event_tracker.py +83 -0
- shopline_sdk/apis/event_trackers/delete_an_event_tracker.py +57 -0
- shopline_sdk/apis/event_trackers/get_an_event_tracker.py +64 -0
- shopline_sdk/apis/event_trackers/get_event_trackers.py +97 -0
- shopline_sdk/apis/event_trackers/update_event_tracker.py +91 -0
- shopline_sdk/apis/flash_price_campaigns/__init__.py +0 -0
- shopline_sdk/apis/flash_price_campaigns/create_flash_price_campaign.py +45 -0
- shopline_sdk/apis/flash_price_campaigns/delete_flash_price_campaign.py +44 -0
- shopline_sdk/apis/flash_price_campaigns/get_a_flash_price_campaign.py +43 -0
- shopline_sdk/apis/flash_price_campaigns/get_flash_price_campaigns.py +72 -0
- shopline_sdk/apis/flash_price_campaigns/update_flash_price_campaign.py +46 -0
- shopline_sdk/apis/gifts/__init__.py +0 -0
- shopline_sdk/apis/gifts/bulk_update_quantity_by_sku.py +106 -0
- shopline_sdk/apis/gifts/create_gift.py +57 -0
- shopline_sdk/apis/gifts/get_gift_stocks.py +66 -0
- shopline_sdk/apis/gifts/get_gifts.py +86 -0
- shopline_sdk/apis/gifts/search_gifts.py +110 -0
- shopline_sdk/apis/gifts/update_gift.py +54 -0
- shopline_sdk/apis/gifts/update_gift_quantity.py +100 -0
- shopline_sdk/apis/gifts/update_gift_stock.py +86 -0
- shopline_sdk/apis/layouts/__init__.py +0 -0
- shopline_sdk/apis/layouts/get_layouts_sections.py +77 -0
- shopline_sdk/apis/medias/__init__.py +0 -0
- shopline_sdk/apis/medias/create_image.py +52 -0
- shopline_sdk/apis/member_point_rules/__init__.py +0 -0
- shopline_sdk/apis/member_point_rules/get_member_point_rules.py +55 -0
- shopline_sdk/apis/member_points/__init__.py +0 -0
- shopline_sdk/apis/member_points/bulk_update_member_points.py +87 -0
- shopline_sdk/apis/membership_tiers/__init__.py +0 -0
- shopline_sdk/apis/membership_tiers/get_customer_membership_tier_history.py +84 -0
- shopline_sdk/apis/membership_tiers/get_membership_tiers.py +65 -0
- shopline_sdk/apis/merchant_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/merchant_app_metafields/get_app_metafields_attached_to_current_merchant.py +61 -0
- shopline_sdk/apis/merchant_metafields/__init__.py +0 -0
- shopline_sdk/apis/merchant_metafields/get_metafields_attached_to_current_merchant.py +62 -0
- shopline_sdk/apis/merchants/__init__.py +0 -0
- shopline_sdk/apis/merchants/generatemerchant_sexpresscartlink.py +66 -0
- shopline_sdk/apis/merchants/get_merchant.py +56 -0
- shopline_sdk/apis/merchants/get_merchants.py +46 -0
- shopline_sdk/apis/metafield_definitions/__init__.py +0 -0
- shopline_sdk/apis/metafield_definitions/create_specific_metafield_definition.py +44 -0
- shopline_sdk/apis/metafield_definitions/get_an_array_of_metafield_definitions.py +45 -0
- shopline_sdk/apis/metafield_definitions/get_specific_metafield_definition.py +41 -0
- shopline_sdk/apis/multipass_linking/__init__.py +0 -0
- shopline_sdk/apis/multipass_linking/delete_multipass_linking_for_customer.py +61 -0
- shopline_sdk/apis/multipass_linking/get_active_multipass_linkings.py +67 -0
- shopline_sdk/apis/multipass_linking/update_multipass_linking_for_customer.py +69 -0
- shopline_sdk/apis/multipass_secret/__init__.py +0 -0
- shopline_sdk/apis/multipass_secret/create_multipass_secret.py +41 -0
- shopline_sdk/apis/multipass_secret/get_multipass_secret.py +50 -0
- shopline_sdk/apis/order_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_app_metafields/get_app_metafields_attached_to_specific_order.py +61 -0
- shopline_sdk/apis/order_deliveries/__init__.py +0 -0
- shopline_sdk/apis/order_deliveries/get_order_delivery.py +43 -0
- shopline_sdk/apis/order_deliveries/update_order_delivery.py +63 -0
- shopline_sdk/apis/order_item_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_item_app_metafields/get_app_metafields_attached_to_order_items_of_specific_order.py +61 -0
- shopline_sdk/apis/order_item_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_item_metafields/get_metafields_attached_to_order_items_of_specific_order.py +62 -0
- shopline_sdk/apis/order_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_metafields/get_metafields_attached_to_specific_order.py +62 -0
- shopline_sdk/apis/orders/__init__.py +0 -0
- shopline_sdk/apis/orders/bulk_execute_shipment.py +70 -0
- shopline_sdk/apis/orders/cancel_order.py +70 -0
- shopline_sdk/apis/orders/create_archived_orders_report.py +72 -0
- shopline_sdk/apis/orders/create_order.py +90 -0
- shopline_sdk/apis/orders/execute_shipment.py +63 -0
- shopline_sdk/apis/orders/get_all_orders_tags.py +54 -0
- shopline_sdk/apis/orders/get_order.py +78 -0
- shopline_sdk/apis/orders/get_order_action_logs.py +62 -0
- shopline_sdk/apis/orders/get_order_labels_of_delivery.py +94 -0
- shopline_sdk/apis/orders/get_order_transaction_by_order_ids.py +58 -0
- shopline_sdk/apis/orders/get_orders.py +111 -0
- shopline_sdk/apis/orders/search_orders.py +339 -0
- shopline_sdk/apis/orders/split_order.py +84 -0
- shopline_sdk/apis/orders/update_order.py +123 -0
- shopline_sdk/apis/orders/update_order_delivery_status.py +88 -0
- shopline_sdk/apis/orders/update_order_payment_status.py +92 -0
- shopline_sdk/apis/orders/update_order_status.py +94 -0
- shopline_sdk/apis/orders/update_order_tags.py +91 -0
- shopline_sdk/apis/payments/__init__.py +0 -0
- shopline_sdk/apis/payments/get_payment.py +59 -0
- shopline_sdk/apis/payments/get_payments.py +88 -0
- shopline_sdk/apis/product_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/product_app_metafields/get_app_metafields_attached_to_specific_product.py +61 -0
- shopline_sdk/apis/product_metafields/__init__.py +0 -0
- shopline_sdk/apis/product_metafields/get_metafields_attached_to_specific_product.py +62 -0
- shopline_sdk/apis/product_review_comments/__init__.py +0 -0
- shopline_sdk/apis/product_review_comments/bulk_create_product_review_comments.py +66 -0
- shopline_sdk/apis/product_review_comments/bulk_delete_product_review_comments.py +46 -0
- shopline_sdk/apis/product_review_comments/bulk_update_product_review_comments.py +64 -0
- shopline_sdk/apis/product_review_comments/create_product_review_comments.py +45 -0
- shopline_sdk/apis/product_review_comments/delete_product_review_comment.py +37 -0
- shopline_sdk/apis/product_review_comments/get_product_review_comment.py +42 -0
- shopline_sdk/apis/product_review_comments/get_product_review_comments.py +91 -0
- shopline_sdk/apis/product_review_comments/update_product_review_comment.py +45 -0
- shopline_sdk/apis/product_subscriptions/__init__.py +0 -0
- shopline_sdk/apis/product_subscriptions/get_a_list_of_product_subscriptions.py +71 -0
- shopline_sdk/apis/product_subscriptions/get_product_subscription.py +42 -0
- shopline_sdk/apis/products/__init__.py +0 -0
- shopline_sdk/apis/products/add_product_images.py +84 -0
- shopline_sdk/apis/products/batch_update_current_product_labels.py +73 -0
- shopline_sdk/apis/products/bulk_delete_product.py +77 -0
- shopline_sdk/apis/products/bulk_update_stock.py +81 -0
- shopline_sdk/apis/products/bulkpublish_unpublishproductinonlinestore.py +64 -0
- shopline_sdk/apis/products/bulkpublish_unpublishproductinretailstore.py +64 -0
- shopline_sdk/apis/products/create_product.py +54 -0
- shopline_sdk/apis/products/create_product_variation.py +70 -0
- shopline_sdk/apis/products/delete_product.py +70 -0
- shopline_sdk/apis/products/delete_product_images.py +54 -0
- shopline_sdk/apis/products/delete_product_variation.py +70 -0
- shopline_sdk/apis/products/get_locked_inventory_count.py +53 -0
- shopline_sdk/apis/products/get_product.py +79 -0
- shopline_sdk/apis/products/get_product_stocks.py +66 -0
- shopline_sdk/apis/products/get_products.py +112 -0
- shopline_sdk/apis/products/search_products.py +58 -0
- shopline_sdk/apis/products/update_current_product_tags.py +80 -0
- shopline_sdk/apis/products/update_product.py +54 -0
- shopline_sdk/apis/products/update_product_price.py +94 -0
- shopline_sdk/apis/products/update_product_quantity.py +102 -0
- shopline_sdk/apis/products/update_product_variation.py +46 -0
- shopline_sdk/apis/products/update_product_variation_price.py +92 -0
- shopline_sdk/apis/products/update_product_variation_quantity.py +111 -0
- shopline_sdk/apis/products/update_quantity_by_sku.py +114 -0
- shopline_sdk/apis/products/update_stock.py +89 -0
- shopline_sdk/apis/promotions/__init__.py +0 -0
- shopline_sdk/apis/promotions/create_promotion.py +45 -0
- shopline_sdk/apis/promotions/delete_promotion.py +44 -0
- shopline_sdk/apis/promotions/get_customer_coupon_promotions.py +61 -0
- shopline_sdk/apis/promotions/get_customer_promotions.py +63 -0
- shopline_sdk/apis/promotions/get_promotion.py +60 -0
- shopline_sdk/apis/promotions/get_promotions.py +106 -0
- shopline_sdk/apis/promotions/search_promotions.py +108 -0
- shopline_sdk/apis/promotions/update_promotion.py +54 -0
- shopline_sdk/apis/purchase_orders/__init__.py +0 -0
- shopline_sdk/apis/purchase_orders/create_child_purchase_order.py +66 -0
- shopline_sdk/apis/purchase_orders/create_purchase_order.py +66 -0
- shopline_sdk/apis/purchase_orders/delete_the_specified_purchase_orders.py +60 -0
- shopline_sdk/apis/purchase_orders/get_purchase_orders.py +89 -0
- shopline_sdk/apis/purchase_orders/get_the_specified_purchase_order.py +59 -0
- shopline_sdk/apis/purchase_orders/update_purchase_order.py +66 -0
- shopline_sdk/apis/return_orders/__init__.py +0 -0
- shopline_sdk/apis/return_orders/create_return_order.py +62 -0
- shopline_sdk/apis/return_orders/get_return_order.py +42 -0
- shopline_sdk/apis/return_orders/get_return_orders.py +95 -0
- shopline_sdk/apis/return_orders/update_return_order.py +70 -0
- shopline_sdk/apis/sales/__init__.py +0 -0
- shopline_sdk/apis/sales/create_sale_products.py +78 -0
- shopline_sdk/apis/sales/delete_sale_products.py +44 -0
- shopline_sdk/apis/sales/get_sale_comments.py +77 -0
- shopline_sdk/apis/sales/get_sale_customers.py +69 -0
- shopline_sdk/apis/sales/get_sale_products.py +74 -0
- shopline_sdk/apis/sales/update_sale_product_status.py +71 -0
- shopline_sdk/apis/sales/update_sale_products.py +78 -0
- shopline_sdk/apis/settings/__init__.py +0 -0
- shopline_sdk/apis/settings/get_checkout_setting.py +51 -0
- shopline_sdk/apis/settings/get_domains_setting.py +51 -0
- shopline_sdk/apis/settings/get_layouts_draft_setting.py +59 -0
- shopline_sdk/apis/settings/get_layouts_setting.py +59 -0
- shopline_sdk/apis/settings/get_orders_setting.py +51 -0
- shopline_sdk/apis/settings/get_payments_setting.py +51 -0
- shopline_sdk/apis/settings/get_pos_setting.py +51 -0
- shopline_sdk/apis/settings/get_product_review_setting.py +51 -0
- shopline_sdk/apis/settings/get_products_setting.py +51 -0
- shopline_sdk/apis/settings/get_promotions_setting.py +51 -0
- shopline_sdk/apis/settings/get_setting.py +42 -0
- shopline_sdk/apis/settings/get_shop_setting.py +51 -0
- shopline_sdk/apis/settings/get_tax_setting.py +51 -0
- shopline_sdk/apis/settings/get_theme_draft_setting.py +59 -0
- shopline_sdk/apis/settings/get_theme_setting.py +59 -0
- shopline_sdk/apis/settings/get_third_party_ads_setting.py +42 -0
- shopline_sdk/apis/settings/get_users_setting.py +65 -0
- shopline_sdk/apis/settings/publish_layouts_setting.py +73 -0
- shopline_sdk/apis/settings/publish_theme_setting.py +59 -0
- shopline_sdk/apis/settings/save_layouts_draft_setting.py +67 -0
- shopline_sdk/apis/settings/save_theme_setting.py +59 -0
- shopline_sdk/apis/settings/update_domains_setting.py +85 -0
- shopline_sdk/apis/staffs/__init__.py +0 -0
- shopline_sdk/apis/staffs/get_all_staff.py +62 -0
- shopline_sdk/apis/staffs/get_staff.py +59 -0
- shopline_sdk/apis/staffs/get_staff_permissions.py +62 -0
- shopline_sdk/apis/store_credits/__init__.py +0 -0
- shopline_sdk/apis/store_credits/bulk_update_store_credits.py +90 -0
- shopline_sdk/apis/store_credits/get_store_credits.py +87 -0
- shopline_sdk/apis/storefront_oauth_applications/__init__.py +0 -0
- shopline_sdk/apis/storefront_oauth_applications/create_storefront_o_auth_application.py +52 -0
- shopline_sdk/apis/storefront_oauth_applications/delete_storefront_oauth_application_by_id.py +47 -0
- shopline_sdk/apis/storefront_oauth_applications/get_storefront_o_auth_application.py +41 -0
- shopline_sdk/apis/storefront_oauth_applications/get_storefront_o_auth_application_by_id.py +50 -0
- shopline_sdk/apis/storefront_tokens/__init__.py +0 -0
- shopline_sdk/apis/storefront_tokens/create_storefront_token.py +60 -0
- shopline_sdk/apis/storefront_tokens/delete_storefront_token_by_id.py +54 -0
- shopline_sdk/apis/storefront_tokens/get_storefront_token_by_id.py +51 -0
- shopline_sdk/apis/storefront_tokens/list_all_storefront_tokens.py +46 -0
- shopline_sdk/apis/taxes/__init__.py +0 -0
- shopline_sdk/apis/taxes/get_taxes.py +65 -0
- shopline_sdk/apis/themes/__init__.py +0 -0
- shopline_sdk/apis/themes/get_theme_by_theme_key.py +63 -0
- shopline_sdk/apis/themes/getthethemesectionsbytheme_key.py +76 -0
- shopline_sdk/apis/token/__init__.py +0 -0
- shopline_sdk/apis/token/get_token_info.py +44 -0
- shopline_sdk/apis/user_coupons/__init__.py +0 -0
- shopline_sdk/apis/user_coupons/claim_user_coupon.py +45 -0
- shopline_sdk/apis/user_coupons/create_user_coupon.py +40 -0
- shopline_sdk/apis/user_coupons/get_user_coupons.py +55 -0
- shopline_sdk/apis/user_coupons/get_user_coupons_with_cursor.py +57 -0
- shopline_sdk/apis/user_coupons/redeem_user_coupon.py +45 -0
- shopline_sdk/apis/warehouses/__init__.py +0 -0
- shopline_sdk/apis/warehouses/get_warehouses.py +92 -0
- shopline_sdk/apis/webhooks/__init__.py +0 -0
- shopline_sdk/apis/webhooks/create_webhook.py +45 -0
- shopline_sdk/apis/webhooks/delete_webhook.py +37 -0
- shopline_sdk/apis/webhooks/get_webhook.py +42 -0
- shopline_sdk/apis/webhooks/get_webhooks.py +59 -0
- shopline_sdk/apis/webhooks/update_webhook.py +45 -0
- shopline_sdk/apis/wish_list_items/__init__.py +0 -0
- shopline_sdk/apis/wish_list_items/create_wish_list_item.py +68 -0
- shopline_sdk/apis/wish_list_items/delete_wish_list_item.py +89 -0
- shopline_sdk/apis/wish_list_items/get_wish_list_items.py +88 -0
- shopline_sdk/client.py +15 -0
- shopline_sdk/exceptions.py +48 -0
- shopline_sdk/helper.py +84 -0
- shopline_sdk/models/__init__.py +610 -0
- shopline_sdk/models/addon_product.py +50 -0
- shopline_sdk/models/addon_products.py +14 -0
- shopline_sdk/models/addon_products_cursor_based.py +15 -0
- shopline_sdk/models/address_node.py +27 -0
- shopline_sdk/models/address_nodes.py +20 -0
- shopline_sdk/models/address_preference.py +46 -0
- shopline_sdk/models/address_preference_layout_data.py +15 -0
- shopline_sdk/models/address_preferences.py +16 -0
- shopline_sdk/models/affiliate.py +32 -0
- shopline_sdk/models/affiliate_campaign.py +53 -0
- shopline_sdk/models/affiliate_campaign_order.py +75 -0
- shopline_sdk/models/affiliate_campaign_orders.py +16 -0
- shopline_sdk/models/affiliate_campaigns.py +20 -0
- shopline_sdk/models/agent.py +20 -0
- shopline_sdk/models/agent_work_log.py +30 -0
- shopline_sdk/models/agent_work_logs.py +12 -0
- shopline_sdk/models/agents.py +14 -0
- shopline_sdk/models/analytics.py +12 -0
- shopline_sdk/models/app_metafield_value.py +26 -0
- shopline_sdk/models/app_setting.py +9 -0
- shopline_sdk/models/bad_request_error.py +14 -0
- shopline_sdk/models/bearer_auth.py +9 -0
- shopline_sdk/models/bulk_delete_metafield_body.py +15 -0
- shopline_sdk/models/bulk_update_app_metafield_body.py +16 -0
- shopline_sdk/models/bulk_update_metafield_body.py +17 -0
- shopline_sdk/models/campaign_product.py +18 -0
- shopline_sdk/models/cart.py +128 -0
- shopline_sdk/models/cart_delivery.py +24 -0
- shopline_sdk/models/cart_item.py +51 -0
- shopline_sdk/models/cart_product.py +83 -0
- shopline_sdk/models/cart_product_variation.py +36 -0
- shopline_sdk/models/cart_promotion.py +19 -0
- shopline_sdk/models/categories.py +14 -0
- shopline_sdk/models/categories_cursor_based.py +15 -0
- shopline_sdk/models/category.py +45 -0
- shopline_sdk/models/category_layout.py +23 -0
- shopline_sdk/models/change_payment_method_response.py +14 -0
- shopline_sdk/models/channel.py +49 -0
- shopline_sdk/models/channel_param.py +11 -0
- shopline_sdk/models/channels.py +14 -0
- shopline_sdk/models/checkout_setting.py +37 -0
- shopline_sdk/models/corporate_info.py +34 -0
- shopline_sdk/models/coupon_item.py +53 -0
- shopline_sdk/models/create_agent_body.py +17 -0
- shopline_sdk/models/create_agent_work_log_request_body.py +18 -0
- shopline_sdk/models/create_app_metafield_body.py +15 -0
- shopline_sdk/models/create_bulk_operation_body.py +22 -0
- shopline_sdk/models/create_category_body.py +27 -0
- shopline_sdk/models/create_channel_price_body.py +21 -0
- shopline_sdk/models/create_customer_body.py +63 -0
- shopline_sdk/models/create_customer_group_activity_body.py +24 -0
- shopline_sdk/models/create_delivery_option_body.py +38 -0
- shopline_sdk/models/create_event_tracker_body.py +23 -0
- shopline_sdk/models/create_flash_price_campaign_body.py +22 -0
- shopline_sdk/models/create_metafield_body.py +16 -0
- shopline_sdk/models/create_metafield_definition_body.py +18 -0
- shopline_sdk/models/create_page_body.py +25 -0
- shopline_sdk/models/create_product_body.py +84 -0
- shopline_sdk/models/create_product_feed_setting_body.py +31 -0
- shopline_sdk/models/create_product_review_comment_body.py +21 -0
- shopline_sdk/models/create_product_variation_body.py +13 -0
- shopline_sdk/models/create_promotion_body.py +56 -0
- shopline_sdk/models/create_return_order_body.py +49 -0
- shopline_sdk/models/create_sub_res_app_metafield_body.py +16 -0
- shopline_sdk/models/create_sub_res_metafield_body.py +17 -0
- shopline_sdk/models/create_user_coupon_body.py +18 -0
- shopline_sdk/models/create_webhook_body.py +14 -0
- shopline_sdk/models/create_wish_list_item_body.py +27 -0
- shopline_sdk/models/cursor_based_paginatable.py +12 -0
- shopline_sdk/models/custom_field.py +18 -0
- shopline_sdk/models/customer.py +200 -0
- shopline_sdk/models/customer_coupon_promotions.py +12 -0
- shopline_sdk/models/customer_group.py +33 -0
- shopline_sdk/models/customer_group_activity.py +28 -0
- shopline_sdk/models/customer_groups.py +14 -0
- shopline_sdk/models/customer_promotion.py +54 -0
- shopline_sdk/models/customer_viewed_categories.py +14 -0
- shopline_sdk/models/customer_viewed_category.py +14 -0
- shopline_sdk/models/customer_viewed_product.py +14 -0
- shopline_sdk/models/customer_viewed_products.py +14 -0
- shopline_sdk/models/delivery_option.py +74 -0
- shopline_sdk/models/delivery_rate.py +17 -0
- shopline_sdk/models/delivery_time_slot.py +27 -0
- shopline_sdk/models/domains_setting.py +13 -0
- shopline_sdk/models/domains_setting_webmaster.py +20 -0
- shopline_sdk/models/end_date_param.py +10 -0
- shopline_sdk/models/entity_render_error.py +11 -0
- shopline_sdk/models/event_tracker.py +35 -0
- shopline_sdk/models/event_trackers.py +14 -0
- shopline_sdk/models/extend_promotion.py +25 -0
- shopline_sdk/models/facebook_business_extension_domains_entity.py +16 -0
- shopline_sdk/models/filter_tag.py +14 -0
- shopline_sdk/models/flash_price_campaign.py +39 -0
- shopline_sdk/models/flash_price_campaigns.py +16 -0
- shopline_sdk/models/forbidden_error.py +14 -0
- shopline_sdk/models/gift.py +54 -0
- shopline_sdk/models/gifts.py +14 -0
- shopline_sdk/models/gifts_cursor_based.py +15 -0
- shopline_sdk/models/global_section.py +12 -0
- shopline_sdk/models/global_section_settings.py +27 -0
- shopline_sdk/models/gross_amount_analytics.py +28 -0
- shopline_sdk/models/gross_orders_analytics.py +29 -0
- shopline_sdk/models/individual_info.py +14 -0
- shopline_sdk/models/interval_param.py +11 -0
- shopline_sdk/models/invoice.py +17 -0
- shopline_sdk/models/is_real_time_param.py +10 -0
- shopline_sdk/models/job.py +48 -0
- shopline_sdk/models/jobs.py +14 -0
- shopline_sdk/models/layout_sections.py +12 -0
- shopline_sdk/models/layouts_setting.py +14 -0
- shopline_sdk/models/limit_exceeded_error.py +14 -0
- shopline_sdk/models/link.py +39 -0
- shopline_sdk/models/lock_inventory.py +9 -0
- shopline_sdk/models/lock_inventory_count.py +14 -0
- shopline_sdk/models/max_applicable_member_point.py +16 -0
- shopline_sdk/models/media.py +16 -0
- shopline_sdk/models/media_upload_error.py +10 -0
- shopline_sdk/models/member_point.py +28 -0
- shopline_sdk/models/member_point_fulfillment.py +23 -0
- shopline_sdk/models/member_point_rule.py +40 -0
- shopline_sdk/models/member_point_rules.py +12 -0
- shopline_sdk/models/member_points.py +14 -0
- shopline_sdk/models/member_registration_analytics.py +29 -0
- shopline_sdk/models/membership_info.py +56 -0
- shopline_sdk/models/membership_tier.py +26 -0
- shopline_sdk/models/membership_tier_action_log.py +19 -0
- shopline_sdk/models/membership_tier_action_logs.py +14 -0
- shopline_sdk/models/membership_tier_rule.py +53 -0
- shopline_sdk/models/merchant.py +78 -0
- shopline_sdk/models/merchant_kyc.py +24 -0
- shopline_sdk/models/merchant_tax.py +50 -0
- shopline_sdk/models/metafield_definition.py +28 -0
- shopline_sdk/models/metafield_value.py +28 -0
- shopline_sdk/models/money.py +13 -0
- shopline_sdk/models/multipass_linking.py +22 -0
- shopline_sdk/models/multipass_linkings.py +16 -0
- shopline_sdk/models/multipass_secret.py +20 -0
- shopline_sdk/models/net_amount_analytics.py +28 -0
- shopline_sdk/models/net_orders_analytics.py +29 -0
- shopline_sdk/models/not_found_error.py +12 -0
- shopline_sdk/models/order.py +218 -0
- shopline_sdk/models/order_action_log.py +16 -0
- shopline_sdk/models/order_action_logs.py +12 -0
- shopline_sdk/models/order_agent.py +16 -0
- shopline_sdk/models/order_campaign_item.py +27 -0
- shopline_sdk/models/order_comment.py +28 -0
- shopline_sdk/models/order_conversation.py +39 -0
- shopline_sdk/models/order_conversations.py +14 -0
- shopline_sdk/models/order_conversations_message.py +32 -0
- shopline_sdk/models/order_conversations_messages.py +16 -0
- shopline_sdk/models/order_customer_info.py +24 -0
- shopline_sdk/models/order_delivery.py +57 -0
- shopline_sdk/models/order_delivery_address.py +37 -0
- shopline_sdk/models/order_delivery_data.py +28 -0
- shopline_sdk/models/order_inspect_item.py +18 -0
- shopline_sdk/models/order_invoice.py +32 -0
- shopline_sdk/models/order_item.py +93 -0
- shopline_sdk/models/order_payment.py +38 -0
- shopline_sdk/models/order_promotion_item.py +24 -0
- shopline_sdk/models/order_source.py +16 -0
- shopline_sdk/models/order_tag.py +10 -0
- shopline_sdk/models/order_transaction.py +32 -0
- shopline_sdk/models/orders_setting.py +25 -0
- shopline_sdk/models/page.py +49 -0
- shopline_sdk/models/page_block_settings.py +12 -0
- shopline_sdk/models/page_section.py +14 -0
- shopline_sdk/models/page_section_schema.py +37 -0
- shopline_sdk/models/page_section_settings.py +29 -0
- shopline_sdk/models/page_sections.py +12 -0
- shopline_sdk/models/paginatable.py +16 -0
- shopline_sdk/models/pagination.py +12 -0
- shopline_sdk/models/payment.py +33 -0
- shopline_sdk/models/payment_config_data.py +14 -0
- shopline_sdk/models/payment_fee_item.py +31 -0
- shopline_sdk/models/payment_settlement.py +47 -0
- shopline_sdk/models/payments_setting.py +17 -0
- shopline_sdk/models/pos_payment.py +19 -0
- shopline_sdk/models/pos_setting.py +15 -0
- shopline_sdk/models/price_detail.py +15 -0
- shopline_sdk/models/price_set.py +29 -0
- shopline_sdk/models/price_sets.py +12 -0
- shopline_sdk/models/product.py +201 -0
- shopline_sdk/models/product_feed_setting.py +45 -0
- shopline_sdk/models/product_feed_settings.py +14 -0
- shopline_sdk/models/product_ids_param.py +10 -0
- shopline_sdk/models/product_price_tier.py +26 -0
- shopline_sdk/models/product_related_theme_settings.py +23 -0
- shopline_sdk/models/product_revenue.py +26 -0
- shopline_sdk/models/product_revenues.py +14 -0
- shopline_sdk/models/product_review.py +28 -0
- shopline_sdk/models/product_review_comment.py +31 -0
- shopline_sdk/models/product_review_comments.py +14 -0
- shopline_sdk/models/product_review_comments_cursor_based.py +15 -0
- shopline_sdk/models/product_review_setting.py +32 -0
- shopline_sdk/models/product_reviews.py +14 -0
- shopline_sdk/models/product_stock.py +34 -0
- shopline_sdk/models/product_subscription.py +34 -0
- shopline_sdk/models/product_variation.py +56 -0
- shopline_sdk/models/products_cursor_based.py +17 -0
- shopline_sdk/models/products_setting.py +28 -0
- shopline_sdk/models/promotion.py +104 -0
- shopline_sdk/models/promotion_condition.py +27 -0
- shopline_sdk/models/promotion_excluded_hints.py +16 -0
- shopline_sdk/models/promotions_setting.py +28 -0
- shopline_sdk/models/purchase_order.py +63 -0
- shopline_sdk/models/purchase_order_item.py +66 -0
- shopline_sdk/models/purchase_orders.py +14 -0
- shopline_sdk/models/quantity_update_not_allowed_error.py +14 -0
- shopline_sdk/models/retail_status.py +11 -0
- shopline_sdk/models/return_order.py +75 -0
- shopline_sdk/models/return_order_delivery.py +26 -0
- shopline_sdk/models/return_order_delivery_address.py +37 -0
- shopline_sdk/models/return_order_delivery_data.py +28 -0
- shopline_sdk/models/return_order_item.py +33 -0
- shopline_sdk/models/return_order_payment.py +28 -0
- shopline_sdk/models/return_order_promotion_item.py +22 -0
- shopline_sdk/models/return_order_ref_data.py +10 -0
- shopline_sdk/models/return_orders.py +14 -0
- shopline_sdk/models/sale_comment.py +30 -0
- shopline_sdk/models/sale_customer.py +31 -0
- shopline_sdk/models/sale_product.py +21 -0
- shopline_sdk/models/save_draft_body.py +25 -0
- shopline_sdk/models/sc_conversation.py +31 -0
- shopline_sdk/models/sc_conversations.py +14 -0
- shopline_sdk/models/sc_conversations_message.py +30 -0
- shopline_sdk/models/sc_conversations_messages.py +16 -0
- shopline_sdk/models/search_products_body.py +71 -0
- shopline_sdk/models/server_error.py +12 -0
- shopline_sdk/models/service_unavailable_error.py +12 -0
- shopline_sdk/models/settings.py +30 -0
- shopline_sdk/models/settlement_terminal_list.py +9 -0
- shopline_sdk/models/shop_conversation.py +31 -0
- shopline_sdk/models/shop_conversations.py +14 -0
- shopline_sdk/models/shop_conversations_message.py +30 -0
- shopline_sdk/models/shop_conversations_messages.py +16 -0
- shopline_sdk/models/shop_crm_setting.py +24 -0
- shopline_sdk/models/shop_setting.py +10 -0
- shopline_sdk/models/staff.py +61 -0
- shopline_sdk/models/staff_performance.py +9 -0
- shopline_sdk/models/start_date_param.py +10 -0
- shopline_sdk/models/status.py +11 -0
- shopline_sdk/models/stock.py +12 -0
- shopline_sdk/models/store_credit.py +50 -0
- shopline_sdk/models/store_credit_fulfillment.py +27 -0
- shopline_sdk/models/storefront_o_auth_application.py +18 -0
- shopline_sdk/models/storefront_o_auth_applications.py +12 -0
- shopline_sdk/models/storefront_token.py +26 -0
- shopline_sdk/models/storefront_token_merchant.py +17 -0
- shopline_sdk/models/storefront_token_staff.py +15 -0
- shopline_sdk/models/storefront_tokens.py +12 -0
- shopline_sdk/models/supplier.py +24 -0
- shopline_sdk/models/tag.py +16 -0
- shopline_sdk/models/taggable.py +9 -0
- shopline_sdk/models/tax.py +57 -0
- shopline_sdk/models/tax_info.py +22 -0
- shopline_sdk/models/tax_region.py +20 -0
- shopline_sdk/models/tax_setting.py +10 -0
- shopline_sdk/models/theme.py +44 -0
- shopline_sdk/models/theme_schema.py +19 -0
- shopline_sdk/models/theme_setting.py +16 -0
- shopline_sdk/models/third_party_ads_setting.py +38 -0
- shopline_sdk/models/token_scopes.py +10 -0
- shopline_sdk/models/top_products_analytics.py +19 -0
- shopline_sdk/models/top_products_analytics_record.py +30 -0
- shopline_sdk/models/top_products_analytics_record_variation.py +34 -0
- shopline_sdk/models/total_sessions_analytics.py +35 -0
- shopline_sdk/models/total_views_analytics.py +29 -0
- shopline_sdk/models/transaction.py +65 -0
- shopline_sdk/models/translatable.py +28 -0
- shopline_sdk/models/translatable_array.py +28 -0
- shopline_sdk/models/unauthorized_error.py +14 -0
- shopline_sdk/models/unprocessable_entity_error.py +16 -0
- shopline_sdk/models/update_addon_product_body.py +36 -0
- shopline_sdk/models/update_agent_body.py +15 -0
- shopline_sdk/models/update_app_metafield_body.py +14 -0
- shopline_sdk/models/update_category_body.py +28 -0
- shopline_sdk/models/update_channel_price_body.py +21 -0
- shopline_sdk/models/update_customer_body.py +62 -0
- shopline_sdk/models/update_customer_group_activity_body.py +22 -0
- shopline_sdk/models/update_event_tracker_body.py +27 -0
- shopline_sdk/models/update_flash_price_campaign_body.py +22 -0
- shopline_sdk/models/update_gift_body.py +20 -0
- shopline_sdk/models/update_lock_inventory_body.py +21 -0
- shopline_sdk/models/update_metafield_body.py +14 -0
- shopline_sdk/models/update_product_body.py +66 -0
- shopline_sdk/models/update_product_feed_setting_body.py +27 -0
- shopline_sdk/models/update_product_review_comment_body.py +18 -0
- shopline_sdk/models/update_product_variation_body.py +34 -0
- shopline_sdk/models/update_promotion_body.py +71 -0
- shopline_sdk/models/update_return_order_body.py +17 -0
- shopline_sdk/models/update_webhook_body.py +14 -0
- shopline_sdk/models/user_coupon.py +12 -0
- shopline_sdk/models/user_coupons.py +14 -0
- shopline_sdk/models/user_credit_rule.py +40 -0
- shopline_sdk/models/users_setting.py +83 -0
- shopline_sdk/models/utm_data.py +20 -0
- shopline_sdk/models/warehouse.py +14 -0
- shopline_sdk/models/warehouses_cursor_based.py +17 -0
- shopline_sdk/models/webhook.py +23 -0
- shopline_sdk/models/webhooks.py +14 -0
- shopline_sdk/models/wish_list_item.py +41 -0
- shopline_sdk/models/wish_list_items.py +15 -0
- shopline_sdk_python-0.1.0.dist-info/METADATA +265 -0
- shopline_sdk_python-0.1.0.dist-info/RECORD +638 -0
- shopline_sdk_python-0.1.0.dist-info/WHEEL +5 -0
- shopline_sdk_python-0.1.0.dist-info/licenses/LICENSE +674 -0
- shopline_sdk_python-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.member_point import MemberPoint
|
|
11
|
+
from ...models.not_found_error import NotFoundError
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
from ...models.unauthorized_error import UnauthorizedError
|
|
14
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
15
|
+
|
|
16
|
+
class Request(BaseModel):
|
|
17
|
+
"""请求体模型"""
|
|
18
|
+
value: int
|
|
19
|
+
"""Points to be added or deducted
|
|
20
|
+
增加或減除點數
|
|
21
|
+
-
|
|
22
|
+
*Number can be -999999~999999"""
|
|
23
|
+
remarks: str
|
|
24
|
+
"""Reason for adding or deducting member points
|
|
25
|
+
增加或減除點數原因
|
|
26
|
+
-
|
|
27
|
+
*Limit to max 50 characters"""
|
|
28
|
+
email_target: Optional[int] = None
|
|
29
|
+
"""Notification with Email
|
|
30
|
+
是否發送email通知
|
|
31
|
+
Only applicable for addition
|
|
32
|
+
僅適用於增加
|
|
33
|
+
-
|
|
34
|
+
1=NOT_SEND全部不送
|
|
35
|
+
3=SEND_TO_ALL全部都送"""
|
|
36
|
+
sms_notification_target: Optional[int] = None
|
|
37
|
+
"""Notification with SMS
|
|
38
|
+
是否發送簡訊通知
|
|
39
|
+
Only applicable for addition
|
|
40
|
+
僅適用於增加
|
|
41
|
+
-
|
|
42
|
+
1=NOT_SEND全部不送
|
|
43
|
+
2=SEND_VERIFIED只送手機驗證過的
|
|
44
|
+
3=SEND_TO_ALL全部都送"""
|
|
45
|
+
performer_id: Optional[str] = None
|
|
46
|
+
"""Performer ID
|
|
47
|
+
操作者ID"""
|
|
48
|
+
performer_type: Optional[Literal['User', 'Agent']] = None
|
|
49
|
+
"""Performer Type
|
|
50
|
+
操作者類型"""
|
|
51
|
+
|
|
52
|
+
async def call(
|
|
53
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
54
|
+
) -> MemberPoint:
|
|
55
|
+
"""
|
|
56
|
+
Update Customer Member Points
|
|
57
|
+
|
|
58
|
+
Using open API to update customer member points
|
|
59
|
+
|
|
60
|
+
Path: POST /customers/{id}/member_points
|
|
61
|
+
"""
|
|
62
|
+
# 构建请求 URL
|
|
63
|
+
url = f"customers/{id}/member_points"
|
|
64
|
+
|
|
65
|
+
# 构建请求头
|
|
66
|
+
headers = {"Content-Type": "application/json"}
|
|
67
|
+
|
|
68
|
+
# 构建请求体
|
|
69
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
70
|
+
|
|
71
|
+
# 发起 HTTP 请求
|
|
72
|
+
async with session.post(
|
|
73
|
+
url, json=json_data, headers=headers
|
|
74
|
+
) as response:
|
|
75
|
+
if response.status >= 400:
|
|
76
|
+
error_data = await response.json()
|
|
77
|
+
if response.status == 401:
|
|
78
|
+
error_model = UnauthorizedError(**error_data)
|
|
79
|
+
raise ShoplineAPIError(
|
|
80
|
+
status_code=401,
|
|
81
|
+
error=error_model,
|
|
82
|
+
**error_data
|
|
83
|
+
)
|
|
84
|
+
if response.status == 404:
|
|
85
|
+
error_model = NotFoundError(**error_data)
|
|
86
|
+
raise ShoplineAPIError(
|
|
87
|
+
status_code=404,
|
|
88
|
+
error=error_model,
|
|
89
|
+
**error_data
|
|
90
|
+
)
|
|
91
|
+
if response.status == 422:
|
|
92
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
93
|
+
raise ShoplineAPIError(
|
|
94
|
+
status_code=422,
|
|
95
|
+
error=error_model,
|
|
96
|
+
**error_data
|
|
97
|
+
)
|
|
98
|
+
if response.status == 500:
|
|
99
|
+
error_model = ServerError(**error_data)
|
|
100
|
+
raise ShoplineAPIError(
|
|
101
|
+
status_code=500,
|
|
102
|
+
error=error_model,
|
|
103
|
+
**error_data
|
|
104
|
+
)
|
|
105
|
+
# 默认错误处理
|
|
106
|
+
raise ShoplineAPIError(
|
|
107
|
+
status_code=response.status,
|
|
108
|
+
**error_data
|
|
109
|
+
)
|
|
110
|
+
response_data = await response.json()
|
|
111
|
+
|
|
112
|
+
# 验证并返回响应数据
|
|
113
|
+
return MemberPoint(**response_data)
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.not_found_error import NotFoundError
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.store_credit import StoreCredit
|
|
13
|
+
from ...models.unauthorized_error import UnauthorizedError
|
|
14
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
15
|
+
|
|
16
|
+
class Request(BaseModel):
|
|
17
|
+
"""请求体模型"""
|
|
18
|
+
value: int
|
|
19
|
+
"""Credits to be added or deducted
|
|
20
|
+
增加或減除金額
|
|
21
|
+
-
|
|
22
|
+
*Number can be -999999~999999"""
|
|
23
|
+
remarks: str
|
|
24
|
+
"""Reason for adding or deducting credits
|
|
25
|
+
增加或減除購物金原因
|
|
26
|
+
-
|
|
27
|
+
* Limit to max 50 characters"""
|
|
28
|
+
expires_at: Optional[str] = None
|
|
29
|
+
"""Validity Period
|
|
30
|
+
有效期限
|
|
31
|
+
* Date cannot be in the past
|
|
32
|
+
* Date should be within 9999 days from now"""
|
|
33
|
+
email_target: Optional[int] = None
|
|
34
|
+
"""Notification with Email
|
|
35
|
+
是否發送email通知
|
|
36
|
+
Only applicable for addition
|
|
37
|
+
僅適用於增加
|
|
38
|
+
-
|
|
39
|
+
1=NOT_SEND全部不送
|
|
40
|
+
3=SEND_TO_ALL全部都送"""
|
|
41
|
+
sms_notification_target: Optional[int] = None
|
|
42
|
+
"""Notification with SMS
|
|
43
|
+
是否發送簡訊通知
|
|
44
|
+
Only applicable for addition
|
|
45
|
+
僅適用於增加
|
|
46
|
+
-
|
|
47
|
+
1=NOT_SEND全部不送
|
|
48
|
+
2=SEND_VERIFIED只送手機驗證過的
|
|
49
|
+
3=SEND_TO_ALL全部都送"""
|
|
50
|
+
replace: Optional[bool] = None
|
|
51
|
+
"""To replace all store credits with the current value
|
|
52
|
+
以此金額替代之前所有購物金"""
|
|
53
|
+
type: Optional[Literal['manual_credit', 'welcome_credit', 'birthday_credit', 'auto_reward', 'applied_credit', 'user_credit_expired', 'welcome_member_referral_credit', 'member_referral_credit', 'member_info_quick_completion_credit', 'order_split_revert', 'product_review_reward', 'return_order_revert', 'order_edit_revert']] = None
|
|
54
|
+
"""Store credit type
|
|
55
|
+
購物金類型
|
|
56
|
+
* `manual_credit`
|
|
57
|
+
Manually assign store credit(s) to specific member
|
|
58
|
+
手動發送購物金給指定會員
|
|
59
|
+
* `welcome_credit`
|
|
60
|
+
Auto assign welcome credits to new registered members
|
|
61
|
+
發送購物金鼓勵顧客註冊會員和進行第一次購物
|
|
62
|
+
* `birthday_credit`
|
|
63
|
+
Auto assign store credits to members as gifts on their birthday
|
|
64
|
+
於會員的生日自動發送購物金作為生日禮物
|
|
65
|
+
* `auto_reward`
|
|
66
|
+
Auto reward customers with credits when they meet a minimum amount of purchase
|
|
67
|
+
當訂單達到最低金額時自動發送購物金給會員
|
|
68
|
+
* `applied_credit`
|
|
69
|
+
Applied user credits when placing an order
|
|
70
|
+
在下訂單時已折抵的購物金
|
|
71
|
+
* `user_credit_expired`
|
|
72
|
+
Expired user credits
|
|
73
|
+
已過期的購物金
|
|
74
|
+
* `welcome_member_referral_credit`
|
|
75
|
+
Referral will get store credits after sign up
|
|
76
|
+
新會員透過推薦連結註冊成為會員即可獲得購物金
|
|
77
|
+
* `member_referral_credit`
|
|
78
|
+
Referrer will get the reward after an order from referral is completed
|
|
79
|
+
新顧客註冊後在訂單轉為「已完成」後,推薦人即可獲得購物金
|
|
80
|
+
* `member_info_quick_completion_credit`
|
|
81
|
+
Member info reward credit
|
|
82
|
+
會員資料獎賞購物金
|
|
83
|
+
* `order_split_revert`
|
|
84
|
+
Order split revert credit
|
|
85
|
+
訂單拆單回補購物金
|
|
86
|
+
* `product_review_reward`
|
|
87
|
+
Product review reward credit
|
|
88
|
+
商品評價獎賞購物金
|
|
89
|
+
* `return_order_revert`
|
|
90
|
+
Return order revert credit
|
|
91
|
+
退貨單回補購物金
|
|
92
|
+
* `order_edit_revert`
|
|
93
|
+
Order edit revert credit
|
|
94
|
+
訂單編輯回補購物金"""
|
|
95
|
+
performer_id: Optional[str] = None
|
|
96
|
+
"""Performer ID
|
|
97
|
+
操作者ID"""
|
|
98
|
+
performer_type: Optional[Literal['User', 'Agent']] = None
|
|
99
|
+
"""Performer Type
|
|
100
|
+
操作者類型"""
|
|
101
|
+
|
|
102
|
+
async def call(
|
|
103
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
104
|
+
) -> StoreCredit:
|
|
105
|
+
"""
|
|
106
|
+
Update Customer Store Credits
|
|
107
|
+
|
|
108
|
+
To update customer store credits with open API
|
|
109
|
+
使用open API更新顧客購物金
|
|
110
|
+
|
|
111
|
+
Path: POST /customers/{id}/store_credits
|
|
112
|
+
"""
|
|
113
|
+
# 构建请求 URL
|
|
114
|
+
url = f"customers/{id}/store_credits"
|
|
115
|
+
|
|
116
|
+
# 构建查询参数
|
|
117
|
+
params = {}
|
|
118
|
+
if request:
|
|
119
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
120
|
+
for key, value in request_dict.items():
|
|
121
|
+
if value is not None:
|
|
122
|
+
params[key] = value
|
|
123
|
+
|
|
124
|
+
# 构建请求头
|
|
125
|
+
headers = {"Content-Type": "application/json"}
|
|
126
|
+
|
|
127
|
+
# 构建请求体
|
|
128
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
129
|
+
|
|
130
|
+
# 发起 HTTP 请求
|
|
131
|
+
async with session.post(
|
|
132
|
+
url, params=params, json=json_data, headers=headers
|
|
133
|
+
) as response:
|
|
134
|
+
if response.status >= 400:
|
|
135
|
+
error_data = await response.json()
|
|
136
|
+
if response.status == 401:
|
|
137
|
+
error_model = UnauthorizedError(**error_data)
|
|
138
|
+
raise ShoplineAPIError(
|
|
139
|
+
status_code=401,
|
|
140
|
+
error=error_model,
|
|
141
|
+
**error_data
|
|
142
|
+
)
|
|
143
|
+
if response.status == 404:
|
|
144
|
+
error_model = NotFoundError(**error_data)
|
|
145
|
+
raise ShoplineAPIError(
|
|
146
|
+
status_code=404,
|
|
147
|
+
error=error_model,
|
|
148
|
+
**error_data
|
|
149
|
+
)
|
|
150
|
+
if response.status == 422:
|
|
151
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
152
|
+
raise ShoplineAPIError(
|
|
153
|
+
status_code=422,
|
|
154
|
+
error=error_model,
|
|
155
|
+
**error_data
|
|
156
|
+
)
|
|
157
|
+
if response.status == 500:
|
|
158
|
+
error_model = ServerError(**error_data)
|
|
159
|
+
raise ShoplineAPIError(
|
|
160
|
+
status_code=500,
|
|
161
|
+
error=error_model,
|
|
162
|
+
**error_data
|
|
163
|
+
)
|
|
164
|
+
# 默认错误处理
|
|
165
|
+
raise ShoplineAPIError(
|
|
166
|
+
status_code=response.status,
|
|
167
|
+
**error_data
|
|
168
|
+
)
|
|
169
|
+
response_data = await response.json()
|
|
170
|
+
|
|
171
|
+
# 验证并返回响应数据
|
|
172
|
+
return StoreCredit(**response_data)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.server_error import ServerError
|
|
11
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
12
|
+
|
|
13
|
+
class Request(BaseModel):
|
|
14
|
+
"""请求体模型"""
|
|
15
|
+
sms: Optional[bool] = None
|
|
16
|
+
email: Optional[bool] = None
|
|
17
|
+
|
|
18
|
+
async def call(
|
|
19
|
+
session: aiohttp.ClientSession, customer_id: str, request: Optional[Request] = None
|
|
20
|
+
) -> Dict[str, Any]:
|
|
21
|
+
"""
|
|
22
|
+
Update customer subscriptions
|
|
23
|
+
|
|
24
|
+
Update customer subscriptions by user_id
|
|
25
|
+
透過顧客ID更新訂閱
|
|
26
|
+
|
|
27
|
+
Path: PUT /customers/{customer_id}/subscriptions
|
|
28
|
+
"""
|
|
29
|
+
# 构建请求 URL
|
|
30
|
+
url = f"customers/{customer_id}/subscriptions"
|
|
31
|
+
|
|
32
|
+
# 构建请求头
|
|
33
|
+
headers = {"Content-Type": "application/json"}
|
|
34
|
+
|
|
35
|
+
# 构建请求体
|
|
36
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
37
|
+
|
|
38
|
+
# 发起 HTTP 请求
|
|
39
|
+
async with session.put(
|
|
40
|
+
url, json=json_data, headers=headers
|
|
41
|
+
) as response:
|
|
42
|
+
if response.status >= 400:
|
|
43
|
+
error_data = await response.json()
|
|
44
|
+
if response.status == 422:
|
|
45
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
46
|
+
raise ShoplineAPIError(
|
|
47
|
+
status_code=422,
|
|
48
|
+
error=error_model,
|
|
49
|
+
**error_data
|
|
50
|
+
)
|
|
51
|
+
if response.status == 500:
|
|
52
|
+
error_model = ServerError(**error_data)
|
|
53
|
+
raise ShoplineAPIError(
|
|
54
|
+
status_code=500,
|
|
55
|
+
error=error_model,
|
|
56
|
+
**error_data
|
|
57
|
+
)
|
|
58
|
+
# 默认错误处理
|
|
59
|
+
raise ShoplineAPIError(
|
|
60
|
+
status_code=response.status,
|
|
61
|
+
**error_data
|
|
62
|
+
)
|
|
63
|
+
response_data = await response.json()
|
|
64
|
+
return response_data
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.server_error import ServerError
|
|
11
|
+
from ...models.taggable import Taggable
|
|
12
|
+
from ...models.unauthorized_error import UnauthorizedError
|
|
13
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
14
|
+
|
|
15
|
+
class Request(BaseModel):
|
|
16
|
+
"""请求体模型"""
|
|
17
|
+
tags: Optional[Taggable] = None
|
|
18
|
+
|
|
19
|
+
class Response(BaseModel):
|
|
20
|
+
"""响应体模型"""
|
|
21
|
+
tags: Optional[Taggable] = None
|
|
22
|
+
|
|
23
|
+
async def call(
|
|
24
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
25
|
+
) -> Response:
|
|
26
|
+
"""
|
|
27
|
+
Update customer tags
|
|
28
|
+
|
|
29
|
+
To update customer tags with customer IDs.
|
|
30
|
+
Each tag mush have at least 3 characters and at most 40 characters.
|
|
31
|
+
Each customer can have at most 60 customer tags.
|
|
32
|
+
When update with invalid length of tags, the update will fail and the respond will be 422.
|
|
33
|
+
When the amount of customer tags exceed 60,
|
|
34
|
+
the update will fail and return the current valid tags of that customer with status code 200.
|
|
35
|
+
使用顧客ID更新顧客標籤。
|
|
36
|
+
每一個顧客標籤必須有最少3個字完及最多40個字完。
|
|
37
|
+
每一個顧客最多只能有60個顧客標籤。
|
|
38
|
+
若需更新的顧客標籤其中之一不符字完長度規範,更新不會成功及將回傳狀態碼422。 若需更新的顧客標籤超過60個時,
|
|
39
|
+
更新將不會成功,且仍會回傳狀態碼200及當前顧客的有效顧客標籤。
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
Path: PUT /customers/{id}/tags
|
|
43
|
+
"""
|
|
44
|
+
# 构建请求 URL
|
|
45
|
+
url = f"customers/{id}/tags"
|
|
46
|
+
|
|
47
|
+
# 构建请求头
|
|
48
|
+
headers = {"Content-Type": "application/json"}
|
|
49
|
+
|
|
50
|
+
# 构建请求体
|
|
51
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
52
|
+
|
|
53
|
+
# 发起 HTTP 请求
|
|
54
|
+
async with session.put(
|
|
55
|
+
url, json=json_data, headers=headers
|
|
56
|
+
) as response:
|
|
57
|
+
if response.status >= 400:
|
|
58
|
+
error_data = await response.json()
|
|
59
|
+
if response.status == 401:
|
|
60
|
+
error_model = UnauthorizedError(**error_data)
|
|
61
|
+
raise ShoplineAPIError(
|
|
62
|
+
status_code=401,
|
|
63
|
+
error=error_model,
|
|
64
|
+
**error_data
|
|
65
|
+
)
|
|
66
|
+
if response.status == 422:
|
|
67
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
68
|
+
raise ShoplineAPIError(
|
|
69
|
+
status_code=422,
|
|
70
|
+
error=error_model,
|
|
71
|
+
**error_data
|
|
72
|
+
)
|
|
73
|
+
if response.status == 500:
|
|
74
|
+
error_model = ServerError(**error_data)
|
|
75
|
+
raise ShoplineAPIError(
|
|
76
|
+
status_code=500,
|
|
77
|
+
error=error_model,
|
|
78
|
+
**error_data
|
|
79
|
+
)
|
|
80
|
+
# 默认错误处理
|
|
81
|
+
raise ShoplineAPIError(
|
|
82
|
+
status_code=response.status,
|
|
83
|
+
**error_data
|
|
84
|
+
)
|
|
85
|
+
response_data = await response.json()
|
|
86
|
+
|
|
87
|
+
# 验证并返回响应数据
|
|
88
|
+
return Response(**response_data)
|
|
File without changes
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
class Request(BaseModel):
|
|
10
|
+
"""查询参数模型"""
|
|
11
|
+
type: str
|
|
12
|
+
"""Region Type
|
|
13
|
+
自訂物流種類"""
|
|
14
|
+
|
|
15
|
+
async def call(
|
|
16
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
17
|
+
) -> Dict[str, Any]:
|
|
18
|
+
"""
|
|
19
|
+
Get Delivery Config
|
|
20
|
+
|
|
21
|
+
To get delivery config for pickup
|
|
22
|
+
透過open API獲取自訂物流的設定
|
|
23
|
+
|
|
24
|
+
Path: GET /delivery_options/delivery_config
|
|
25
|
+
"""
|
|
26
|
+
# 构建请求 URL
|
|
27
|
+
url = "delivery_options/delivery_config"
|
|
28
|
+
|
|
29
|
+
# 构建查询参数
|
|
30
|
+
params = {}
|
|
31
|
+
if request:
|
|
32
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
33
|
+
for key, value in request_dict.items():
|
|
34
|
+
if value is not None:
|
|
35
|
+
params[key] = value
|
|
36
|
+
|
|
37
|
+
# 构建请求头
|
|
38
|
+
headers = {"Content-Type": "application/json"}
|
|
39
|
+
|
|
40
|
+
# 发起 HTTP 请求
|
|
41
|
+
async with session.get(
|
|
42
|
+
url, params=params, headers=headers
|
|
43
|
+
) as response:
|
|
44
|
+
if response.status >= 400:
|
|
45
|
+
error_data = await response.json()
|
|
46
|
+
# 默认错误处理
|
|
47
|
+
raise ShoplineAPIError(
|
|
48
|
+
status_code=response.status,
|
|
49
|
+
**error_data
|
|
50
|
+
)
|
|
51
|
+
response_data = await response.json()
|
|
52
|
+
return response_data
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.delivery_option import DeliveryOption
|
|
11
|
+
|
|
12
|
+
async def call(
|
|
13
|
+
session: aiohttp.ClientSession, id: str
|
|
14
|
+
) -> DeliveryOption:
|
|
15
|
+
"""
|
|
16
|
+
Get Delivery Option
|
|
17
|
+
|
|
18
|
+
To get delivery option information by inputing delivery option ID
|
|
19
|
+
輸入送貨方式ID取得該送貨方式資訊
|
|
20
|
+
|
|
21
|
+
Path: GET /delivery_options/{id}
|
|
22
|
+
"""
|
|
23
|
+
# 构建请求 URL
|
|
24
|
+
url = f"delivery_options/{id}"
|
|
25
|
+
|
|
26
|
+
# 构建请求头
|
|
27
|
+
headers = {"Content-Type": "application/json"}
|
|
28
|
+
|
|
29
|
+
# 发起 HTTP 请求
|
|
30
|
+
async with session.get(
|
|
31
|
+
url, headers=headers
|
|
32
|
+
) as response:
|
|
33
|
+
if response.status >= 400:
|
|
34
|
+
error_data = await response.json()
|
|
35
|
+
raise ShoplineAPIError(
|
|
36
|
+
status_code=response.status,
|
|
37
|
+
**error_data
|
|
38
|
+
)
|
|
39
|
+
response_data = await response.json()
|
|
40
|
+
|
|
41
|
+
# 验证并返回响应数据
|
|
42
|
+
return DeliveryOption(**response_data)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.delivery_option import DeliveryOption
|
|
11
|
+
from ...models.paginatable import Paginatable
|
|
12
|
+
|
|
13
|
+
class Request(BaseModel):
|
|
14
|
+
"""查询参数模型"""
|
|
15
|
+
page: Optional[int] = None
|
|
16
|
+
"""Page Number
|
|
17
|
+
頁數"""
|
|
18
|
+
per_page: Optional[int] = None
|
|
19
|
+
"""Numbers of Orders per Page
|
|
20
|
+
每頁顯示 n 筆資料"""
|
|
21
|
+
|
|
22
|
+
class Response(BaseModel):
|
|
23
|
+
"""响应体模型"""
|
|
24
|
+
items: Optional[List[DeliveryOption]] = None
|
|
25
|
+
pagination: Optional[Paginatable] = None
|
|
26
|
+
|
|
27
|
+
async def call(
|
|
28
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
29
|
+
) -> Response:
|
|
30
|
+
"""
|
|
31
|
+
Get Delivery Options
|
|
32
|
+
|
|
33
|
+
To get all kinds of delivery options with open API
|
|
34
|
+
透過open API獲取所有的送貨方式
|
|
35
|
+
|
|
36
|
+
Path: GET /delivery_options
|
|
37
|
+
"""
|
|
38
|
+
# 构建请求 URL
|
|
39
|
+
url = "delivery_options"
|
|
40
|
+
|
|
41
|
+
# 构建查询参数
|
|
42
|
+
params = {}
|
|
43
|
+
if request:
|
|
44
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
45
|
+
for key, value in request_dict.items():
|
|
46
|
+
if value is not None:
|
|
47
|
+
params[key] = value
|
|
48
|
+
|
|
49
|
+
# 构建请求头
|
|
50
|
+
headers = {"Content-Type": "application/json"}
|
|
51
|
+
|
|
52
|
+
# 发起 HTTP 请求
|
|
53
|
+
async with session.get(
|
|
54
|
+
url, params=params, headers=headers
|
|
55
|
+
) as response:
|
|
56
|
+
if response.status >= 400:
|
|
57
|
+
error_data = await response.json()
|
|
58
|
+
raise ShoplineAPIError(
|
|
59
|
+
status_code=response.status,
|
|
60
|
+
**error_data
|
|
61
|
+
)
|
|
62
|
+
response_data = await response.json()
|
|
63
|
+
|
|
64
|
+
# 验证并返回响应数据
|
|
65
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.delivery_time_slot import DeliveryTimeSlot
|
|
11
|
+
|
|
12
|
+
class Request(BaseModel):
|
|
13
|
+
"""查询参数模型"""
|
|
14
|
+
date: Optional[str] = None
|
|
15
|
+
"""Date
|
|
16
|
+
指定日期"""
|
|
17
|
+
ignore_availability: Optional[bool] = None
|
|
18
|
+
"""Ignore Availability
|
|
19
|
+
是否忽略可用性"""
|
|
20
|
+
|
|
21
|
+
class Response(BaseModel):
|
|
22
|
+
"""响应体模型"""
|
|
23
|
+
items: Optional[List[DeliveryTimeSlot]] = None
|
|
24
|
+
|
|
25
|
+
async def call(
|
|
26
|
+
session: aiohttp.ClientSession, delivery_option_id: str, request: Optional[Request] = None
|
|
27
|
+
) -> Response:
|
|
28
|
+
"""
|
|
29
|
+
Get Delivery Time Slots
|
|
30
|
+
|
|
31
|
+
To get all delivery time slots with open API
|
|
32
|
+
透過open API獲取所有的送貨時段
|
|
33
|
+
|
|
34
|
+
Path: GET /delivery_options/{delivery_option_id}/delivery_time_slots
|
|
35
|
+
"""
|
|
36
|
+
# 构建请求 URL
|
|
37
|
+
url = f"delivery_options/{delivery_option_id}/delivery_time_slots"
|
|
38
|
+
|
|
39
|
+
# 构建查询参数
|
|
40
|
+
params = {}
|
|
41
|
+
if request:
|
|
42
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
43
|
+
for key, value in request_dict.items():
|
|
44
|
+
if value is not None:
|
|
45
|
+
params[key] = value
|
|
46
|
+
|
|
47
|
+
# 构建请求头
|
|
48
|
+
headers = {"Content-Type": "application/json"}
|
|
49
|
+
|
|
50
|
+
# 发起 HTTP 请求
|
|
51
|
+
async with session.get(
|
|
52
|
+
url, params=params, headers=headers
|
|
53
|
+
) as response:
|
|
54
|
+
if response.status >= 400:
|
|
55
|
+
error_data = await response.json()
|
|
56
|
+
# 默认错误处理
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=response.status,
|
|
59
|
+
**error_data
|
|
60
|
+
)
|
|
61
|
+
response_data = await response.json()
|
|
62
|
+
|
|
63
|
+
# 验证并返回响应数据
|
|
64
|
+
return Response(**response_data)
|