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,62 @@
|
|
|
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.return_order import ReturnOrder
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
|
|
14
|
+
async def call(
|
|
15
|
+
session: aiohttp.ClientSession, data: Optional[Dict[str, Any]] = None
|
|
16
|
+
) -> ReturnOrder:
|
|
17
|
+
"""
|
|
18
|
+
Create return order
|
|
19
|
+
|
|
20
|
+
To create a return order
|
|
21
|
+
創建一個退貨單
|
|
22
|
+
|
|
23
|
+
Path: POST /return_orders
|
|
24
|
+
"""
|
|
25
|
+
# 构建请求 URL
|
|
26
|
+
url = "return_orders"
|
|
27
|
+
|
|
28
|
+
# 构建请求头
|
|
29
|
+
headers = {"Content-Type": "application/json"}
|
|
30
|
+
|
|
31
|
+
# 构建请求体
|
|
32
|
+
json_data = data if data else None
|
|
33
|
+
|
|
34
|
+
# 发起 HTTP 请求
|
|
35
|
+
async with session.post(
|
|
36
|
+
url, json=json_data, headers=headers
|
|
37
|
+
) as response:
|
|
38
|
+
if response.status >= 400:
|
|
39
|
+
error_data = await response.json()
|
|
40
|
+
if response.status == 422:
|
|
41
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
42
|
+
raise ShoplineAPIError(
|
|
43
|
+
status_code=422,
|
|
44
|
+
error=error_model,
|
|
45
|
+
**error_data
|
|
46
|
+
)
|
|
47
|
+
if response.status == 500:
|
|
48
|
+
error_model = ServerError(**error_data)
|
|
49
|
+
raise ShoplineAPIError(
|
|
50
|
+
status_code=500,
|
|
51
|
+
error=error_model,
|
|
52
|
+
**error_data
|
|
53
|
+
)
|
|
54
|
+
# 默认错误处理
|
|
55
|
+
raise ShoplineAPIError(
|
|
56
|
+
status_code=response.status,
|
|
57
|
+
**error_data
|
|
58
|
+
)
|
|
59
|
+
response_data = await response.json()
|
|
60
|
+
|
|
61
|
+
# 验证并返回响应数据
|
|
62
|
+
return ReturnOrder(**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.return_order import ReturnOrder
|
|
11
|
+
|
|
12
|
+
async def call(
|
|
13
|
+
session: aiohttp.ClientSession, id: str
|
|
14
|
+
) -> ReturnOrder:
|
|
15
|
+
"""
|
|
16
|
+
Get return order
|
|
17
|
+
|
|
18
|
+
To retrieve a specific return order by id
|
|
19
|
+
以id獲取一個退貨單
|
|
20
|
+
|
|
21
|
+
Path: GET /return_orders/{id}
|
|
22
|
+
"""
|
|
23
|
+
# 构建请求 URL
|
|
24
|
+
url = f"return_orders/{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 ReturnOrder(**response_data)
|
|
@@ -0,0 +1,95 @@
|
|
|
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.return_orders import ReturnOrders
|
|
11
|
+
|
|
12
|
+
class Request(BaseModel):
|
|
13
|
+
"""查询参数模型"""
|
|
14
|
+
order_id: Optional[str] = None
|
|
15
|
+
"""Order ID, the other parameters will be ineffective if passed.
|
|
16
|
+
訂單ID, 如果傳了其他參數將會失效"""
|
|
17
|
+
updated_after: Optional[str] = None
|
|
18
|
+
"""Filter data by those updated after specific time.
|
|
19
|
+
取得 updated_at 大於指定時間的退貨單(包含指定時間)
|
|
20
|
+
*Should use UTC time'"""
|
|
21
|
+
updated_before: Optional[str] = None
|
|
22
|
+
"""Filter data by those updated before specific time.
|
|
23
|
+
取得 updated_at 小於指定時間的退貨單(包含指定時間)
|
|
24
|
+
*Should use UTC time'"""
|
|
25
|
+
created_after: Optional[str] = None
|
|
26
|
+
"""Filter data by those created after specific time.
|
|
27
|
+
取得 created_at 大於指定時間的退貨單(包含指定時間)
|
|
28
|
+
*Should use UTC time'"""
|
|
29
|
+
created_before: Optional[str] = None
|
|
30
|
+
"""Filter data by those created before specific time.
|
|
31
|
+
取得 created_at 小於指定時間的退貨單(包含指定時間)
|
|
32
|
+
*Should use UTC time'"""
|
|
33
|
+
status_filter: Optional[Literal['pending', 'confirmed', 'completed', 'cancelled']] = None
|
|
34
|
+
"""Order Status
|
|
35
|
+
退货訂單狀態"""
|
|
36
|
+
payment_status_filter: Optional[Literal['pending', 'refunded']] = None
|
|
37
|
+
"""Order payment status
|
|
38
|
+
訂單退款狀態"""
|
|
39
|
+
delivery_status_filter: Optional[Literal['return_collected', 'returning']] = None
|
|
40
|
+
"""Order delivery status
|
|
41
|
+
訂單退貨狀態"""
|
|
42
|
+
inspect_status_filter: Optional[Literal['pending', 'inspected']] = None
|
|
43
|
+
"""Order inspect status
|
|
44
|
+
驗貨狀態"""
|
|
45
|
+
query: Optional[str] = None
|
|
46
|
+
"""Query
|
|
47
|
+
用於搜索退貨單,可搜索的字段有: "customer_phone", "customer_name", "customer_email", "delivery_data.recipient_name", "delivery_address.recipient_name", "tracking_number", "delivery_data.recipient_phone", "return_order_number" """
|
|
48
|
+
per_page: Optional[int] = None
|
|
49
|
+
"""Numbers of Return Orders per Page
|
|
50
|
+
每頁顯示 n 筆資料"""
|
|
51
|
+
page: Optional[int] = None
|
|
52
|
+
"""Page Number
|
|
53
|
+
頁數"""
|
|
54
|
+
previous_id: Optional[str] = None
|
|
55
|
+
"""前一筆退貨單 ID"""
|
|
56
|
+
|
|
57
|
+
async def call(
|
|
58
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
59
|
+
) -> ReturnOrders:
|
|
60
|
+
"""
|
|
61
|
+
Get return orders
|
|
62
|
+
|
|
63
|
+
To retrieve return order list
|
|
64
|
+
獲取退貨單列表
|
|
65
|
+
|
|
66
|
+
Path: GET /return_orders
|
|
67
|
+
"""
|
|
68
|
+
# 构建请求 URL
|
|
69
|
+
url = "return_orders"
|
|
70
|
+
|
|
71
|
+
# 构建查询参数
|
|
72
|
+
params = {}
|
|
73
|
+
if request:
|
|
74
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
75
|
+
for key, value in request_dict.items():
|
|
76
|
+
if value is not None:
|
|
77
|
+
params[key] = value
|
|
78
|
+
|
|
79
|
+
# 构建请求头
|
|
80
|
+
headers = {"Content-Type": "application/json"}
|
|
81
|
+
|
|
82
|
+
# 发起 HTTP 请求
|
|
83
|
+
async with session.get(
|
|
84
|
+
url, params=params, headers=headers
|
|
85
|
+
) as response:
|
|
86
|
+
if response.status >= 400:
|
|
87
|
+
error_data = await response.json()
|
|
88
|
+
raise ShoplineAPIError(
|
|
89
|
+
status_code=response.status,
|
|
90
|
+
**error_data
|
|
91
|
+
)
|
|
92
|
+
response_data = await response.json()
|
|
93
|
+
|
|
94
|
+
# 验证并返回响应数据
|
|
95
|
+
return ReturnOrders(**response_data)
|
|
@@ -0,0 +1,70 @@
|
|
|
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.return_order import ReturnOrder
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
14
|
+
|
|
15
|
+
async def call(
|
|
16
|
+
session: aiohttp.ClientSession, id: str, data: Optional[Dict[str, Any]] = None
|
|
17
|
+
) -> ReturnOrder:
|
|
18
|
+
"""
|
|
19
|
+
Update return order
|
|
20
|
+
|
|
21
|
+
To update a return order
|
|
22
|
+
更新一個退貨單
|
|
23
|
+
|
|
24
|
+
Path: PUT /return_orders/{id}
|
|
25
|
+
"""
|
|
26
|
+
# 构建请求 URL
|
|
27
|
+
url = f"return_orders/{id}"
|
|
28
|
+
|
|
29
|
+
# 构建请求头
|
|
30
|
+
headers = {"Content-Type": "application/json"}
|
|
31
|
+
|
|
32
|
+
# 构建请求体
|
|
33
|
+
json_data = data if data else None
|
|
34
|
+
|
|
35
|
+
# 发起 HTTP 请求
|
|
36
|
+
async with session.put(
|
|
37
|
+
url, json=json_data, headers=headers
|
|
38
|
+
) as response:
|
|
39
|
+
if response.status >= 400:
|
|
40
|
+
error_data = await response.json()
|
|
41
|
+
if response.status == 404:
|
|
42
|
+
error_model = NotFoundError(**error_data)
|
|
43
|
+
raise ShoplineAPIError(
|
|
44
|
+
status_code=404,
|
|
45
|
+
error=error_model,
|
|
46
|
+
**error_data
|
|
47
|
+
)
|
|
48
|
+
if response.status == 422:
|
|
49
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
50
|
+
raise ShoplineAPIError(
|
|
51
|
+
status_code=422,
|
|
52
|
+
error=error_model,
|
|
53
|
+
**error_data
|
|
54
|
+
)
|
|
55
|
+
if response.status == 500:
|
|
56
|
+
error_model = ServerError(**error_data)
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=500,
|
|
59
|
+
error=error_model,
|
|
60
|
+
**error_data
|
|
61
|
+
)
|
|
62
|
+
# 默认错误处理
|
|
63
|
+
raise ShoplineAPIError(
|
|
64
|
+
status_code=response.status,
|
|
65
|
+
**error_data
|
|
66
|
+
)
|
|
67
|
+
response_data = await response.json()
|
|
68
|
+
|
|
69
|
+
# 验证并返回响应数据
|
|
70
|
+
return ReturnOrder(**response_data)
|
|
File without changes
|
|
@@ -0,0 +1,78 @@
|
|
|
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.sale_product import SaleProduct
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ProductsItem(BaseModel):
|
|
16
|
+
"""Item model for products"""
|
|
17
|
+
product_id: str
|
|
18
|
+
custom_numbers: Optional[List[str]] = None
|
|
19
|
+
custom_keys: Optional[List[str]] = None
|
|
20
|
+
variations: Optional[List[Dict[str, Any]]] = None
|
|
21
|
+
|
|
22
|
+
class Request(BaseModel):
|
|
23
|
+
"""请求体模型"""
|
|
24
|
+
products: List[ProductsItem]
|
|
25
|
+
|
|
26
|
+
class Response(BaseModel):
|
|
27
|
+
"""响应体模型"""
|
|
28
|
+
items: Optional[List[SaleProduct]] = None
|
|
29
|
+
|
|
30
|
+
async def call(
|
|
31
|
+
session: aiohttp.ClientSession, saleId: str, request: Optional[Request] = None
|
|
32
|
+
) -> Response:
|
|
33
|
+
"""
|
|
34
|
+
Create sale products
|
|
35
|
+
|
|
36
|
+
To create sale products
|
|
37
|
+
新增直播商品
|
|
38
|
+
|
|
39
|
+
Path: POST /sales/{saleId}/products
|
|
40
|
+
"""
|
|
41
|
+
# 构建请求 URL
|
|
42
|
+
url = f"sales/{saleId}/products"
|
|
43
|
+
|
|
44
|
+
# 构建请求头
|
|
45
|
+
headers = {"Content-Type": "application/json"}
|
|
46
|
+
|
|
47
|
+
# 构建请求体
|
|
48
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
49
|
+
|
|
50
|
+
# 发起 HTTP 请求
|
|
51
|
+
async with session.post(
|
|
52
|
+
url, json=json_data, headers=headers
|
|
53
|
+
) as response:
|
|
54
|
+
if response.status >= 400:
|
|
55
|
+
error_data = await response.json()
|
|
56
|
+
if response.status == 422:
|
|
57
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
58
|
+
raise ShoplineAPIError(
|
|
59
|
+
status_code=422,
|
|
60
|
+
error=error_model,
|
|
61
|
+
**error_data
|
|
62
|
+
)
|
|
63
|
+
if response.status == 500:
|
|
64
|
+
error_model = ServerError(**error_data)
|
|
65
|
+
raise ShoplineAPIError(
|
|
66
|
+
status_code=500,
|
|
67
|
+
error=error_model,
|
|
68
|
+
**error_data
|
|
69
|
+
)
|
|
70
|
+
# 默认错误处理
|
|
71
|
+
raise ShoplineAPIError(
|
|
72
|
+
status_code=response.status,
|
|
73
|
+
**error_data
|
|
74
|
+
)
|
|
75
|
+
response_data = await response.json()
|
|
76
|
+
|
|
77
|
+
# 验证并返回响应数据
|
|
78
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
product_ids: List[str]
|
|
12
|
+
|
|
13
|
+
async def call(
|
|
14
|
+
session: aiohttp.ClientSession, saleId: str, request: Optional[Request] = None
|
|
15
|
+
) -> str:
|
|
16
|
+
"""
|
|
17
|
+
Delete sale products
|
|
18
|
+
|
|
19
|
+
To delete sale products
|
|
20
|
+
刪除直播商品
|
|
21
|
+
|
|
22
|
+
Path: POST /sales/{saleId}/delete_products
|
|
23
|
+
"""
|
|
24
|
+
# 构建请求 URL
|
|
25
|
+
url = f"sales/{saleId}/delete_products"
|
|
26
|
+
|
|
27
|
+
# 构建请求头
|
|
28
|
+
headers = {"Content-Type": "application/json"}
|
|
29
|
+
|
|
30
|
+
# 构建请求体
|
|
31
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
32
|
+
|
|
33
|
+
# 发起 HTTP 请求
|
|
34
|
+
async with session.post(
|
|
35
|
+
url, json=json_data, headers=headers
|
|
36
|
+
) as response:
|
|
37
|
+
if response.status >= 400:
|
|
38
|
+
error_data = await response.json()
|
|
39
|
+
raise ShoplineAPIError(
|
|
40
|
+
status_code=response.status,
|
|
41
|
+
**error_data
|
|
42
|
+
)
|
|
43
|
+
# 返回文本响应
|
|
44
|
+
return await response.text()
|
|
@@ -0,0 +1,77 @@
|
|
|
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.cursor_based_paginatable import CursorBasedPaginatable
|
|
11
|
+
from ...models.sale_comment import SaleComment
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""查询参数模型"""
|
|
16
|
+
platform: Optional[List[Literal['FB_GROUP', 'FACEBOOK', 'INSTAGRAM', 'SHOPLINE', 'LINE']]] = None
|
|
17
|
+
"""Get comments of the specified platform
|
|
18
|
+
獲取指定渠道的留言,不填則默認所有渠道"""
|
|
19
|
+
per_page: Optional[int] = None
|
|
20
|
+
"""Numbers of Orders per Page
|
|
21
|
+
每頁顯示 n 筆資料"""
|
|
22
|
+
previous_id: Optional[str] = None
|
|
23
|
+
"""The last ID of the comments in the previous request."""
|
|
24
|
+
|
|
25
|
+
class Response(BaseModel):
|
|
26
|
+
"""响应体模型"""
|
|
27
|
+
items: Optional[List[SaleComment]] = None
|
|
28
|
+
last_id: Optional[str] = None
|
|
29
|
+
limit: Optional[int] = None
|
|
30
|
+
|
|
31
|
+
async def call(
|
|
32
|
+
session: aiohttp.ClientSession, saleId: str, request: Optional[Request] = None
|
|
33
|
+
) -> Response:
|
|
34
|
+
"""
|
|
35
|
+
Get sale comments
|
|
36
|
+
|
|
37
|
+
To get sale comments
|
|
38
|
+
取得直播間的評論消息
|
|
39
|
+
|
|
40
|
+
Path: GET /sales/{saleId}/comments
|
|
41
|
+
"""
|
|
42
|
+
# 构建请求 URL
|
|
43
|
+
url = f"sales/{saleId}/comments"
|
|
44
|
+
|
|
45
|
+
# 构建查询参数
|
|
46
|
+
params = {}
|
|
47
|
+
if request:
|
|
48
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
49
|
+
for key, value in request_dict.items():
|
|
50
|
+
if value is not None:
|
|
51
|
+
params[key] = value
|
|
52
|
+
|
|
53
|
+
# 构建请求头
|
|
54
|
+
headers = {"Content-Type": "application/json"}
|
|
55
|
+
|
|
56
|
+
# 发起 HTTP 请求
|
|
57
|
+
async with session.get(
|
|
58
|
+
url, params=params, headers=headers
|
|
59
|
+
) as response:
|
|
60
|
+
if response.status >= 400:
|
|
61
|
+
error_data = await response.json()
|
|
62
|
+
if response.status == 500:
|
|
63
|
+
error_model = ServerError(**error_data)
|
|
64
|
+
raise ShoplineAPIError(
|
|
65
|
+
status_code=500,
|
|
66
|
+
error=error_model,
|
|
67
|
+
**error_data
|
|
68
|
+
)
|
|
69
|
+
# 默认错误处理
|
|
70
|
+
raise ShoplineAPIError(
|
|
71
|
+
status_code=response.status,
|
|
72
|
+
**error_data
|
|
73
|
+
)
|
|
74
|
+
response_data = await response.json()
|
|
75
|
+
|
|
76
|
+
# 验证并返回响应数据
|
|
77
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,69 @@
|
|
|
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.sale_customer import SaleCustomer
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
|
|
13
|
+
class Request(BaseModel):
|
|
14
|
+
"""查询参数模型"""
|
|
15
|
+
post_sales_user_ids: List[str]
|
|
16
|
+
"""The ID of the customer in the live room
|
|
17
|
+
直播間中顧客的 ID"""
|
|
18
|
+
|
|
19
|
+
class Response(BaseModel):
|
|
20
|
+
"""响应体模型"""
|
|
21
|
+
items: Optional[List[SaleCustomer]] = None
|
|
22
|
+
|
|
23
|
+
async def call(
|
|
24
|
+
session: aiohttp.ClientSession, saleId: str, request: Optional[Request] = None
|
|
25
|
+
) -> Response:
|
|
26
|
+
"""
|
|
27
|
+
Get sale customers
|
|
28
|
+
|
|
29
|
+
To get sale customers
|
|
30
|
+
取得直播間顧客的信息
|
|
31
|
+
|
|
32
|
+
Path: GET /sales/{saleId}/customers
|
|
33
|
+
"""
|
|
34
|
+
# 构建请求 URL
|
|
35
|
+
url = f"sales/{saleId}/customers"
|
|
36
|
+
|
|
37
|
+
# 构建查询参数
|
|
38
|
+
params = {}
|
|
39
|
+
if request:
|
|
40
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
41
|
+
for key, value in request_dict.items():
|
|
42
|
+
if value is not None:
|
|
43
|
+
params[key] = value
|
|
44
|
+
|
|
45
|
+
# 构建请求头
|
|
46
|
+
headers = {"Content-Type": "application/json"}
|
|
47
|
+
|
|
48
|
+
# 发起 HTTP 请求
|
|
49
|
+
async with session.get(
|
|
50
|
+
url, params=params, headers=headers
|
|
51
|
+
) as response:
|
|
52
|
+
if response.status >= 400:
|
|
53
|
+
error_data = await response.json()
|
|
54
|
+
if response.status == 500:
|
|
55
|
+
error_model = ServerError(**error_data)
|
|
56
|
+
raise ShoplineAPIError(
|
|
57
|
+
status_code=500,
|
|
58
|
+
error=error_model,
|
|
59
|
+
**error_data
|
|
60
|
+
)
|
|
61
|
+
# 默认错误处理
|
|
62
|
+
raise ShoplineAPIError(
|
|
63
|
+
status_code=response.status,
|
|
64
|
+
**error_data
|
|
65
|
+
)
|
|
66
|
+
response_data = await response.json()
|
|
67
|
+
|
|
68
|
+
# 验证并返回响应数据
|
|
69
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,74 @@
|
|
|
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.paginatable import Paginatable
|
|
11
|
+
from ...models.sale_product import SaleProduct
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""查询参数模型"""
|
|
16
|
+
page: Optional[int] = None
|
|
17
|
+
"""Page Number
|
|
18
|
+
頁數"""
|
|
19
|
+
per_page: Optional[int] = None
|
|
20
|
+
"""Numbers of Orders per Page
|
|
21
|
+
每頁顯示 n 筆資料"""
|
|
22
|
+
|
|
23
|
+
class Response(BaseModel):
|
|
24
|
+
"""响应体模型"""
|
|
25
|
+
items: Optional[List[SaleProduct]] = None
|
|
26
|
+
pagination: Optional[Paginatable] = None
|
|
27
|
+
|
|
28
|
+
async def call(
|
|
29
|
+
session: aiohttp.ClientSession, saleId: str, request: Optional[Request] = None
|
|
30
|
+
) -> Response:
|
|
31
|
+
"""
|
|
32
|
+
Get sale products
|
|
33
|
+
|
|
34
|
+
To get sale products
|
|
35
|
+
取得直播商品
|
|
36
|
+
|
|
37
|
+
Path: GET /sales/{saleId}/products
|
|
38
|
+
"""
|
|
39
|
+
# 构建请求 URL
|
|
40
|
+
url = f"sales/{saleId}/products"
|
|
41
|
+
|
|
42
|
+
# 构建查询参数
|
|
43
|
+
params = {}
|
|
44
|
+
if request:
|
|
45
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
46
|
+
for key, value in request_dict.items():
|
|
47
|
+
if value is not None:
|
|
48
|
+
params[key] = value
|
|
49
|
+
|
|
50
|
+
# 构建请求头
|
|
51
|
+
headers = {"Content-Type": "application/json"}
|
|
52
|
+
|
|
53
|
+
# 发起 HTTP 请求
|
|
54
|
+
async with session.get(
|
|
55
|
+
url, params=params, headers=headers
|
|
56
|
+
) as response:
|
|
57
|
+
if response.status >= 400:
|
|
58
|
+
error_data = await response.json()
|
|
59
|
+
if response.status == 500:
|
|
60
|
+
error_model = ServerError(**error_data)
|
|
61
|
+
raise ShoplineAPIError(
|
|
62
|
+
status_code=500,
|
|
63
|
+
error=error_model,
|
|
64
|
+
**error_data
|
|
65
|
+
)
|
|
66
|
+
# 默认错误处理
|
|
67
|
+
raise ShoplineAPIError(
|
|
68
|
+
status_code=response.status,
|
|
69
|
+
**error_data
|
|
70
|
+
)
|
|
71
|
+
response_data = await response.json()
|
|
72
|
+
|
|
73
|
+
# 验证并返回响应数据
|
|
74
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
status: Literal['INTRODUCING', 'DISPLAYING', 'HIDDEN']
|
|
16
|
+
"""Product status in live room
|
|
17
|
+
商品在直播間中的狀態"""
|
|
18
|
+
|
|
19
|
+
class Response(BaseModel):
|
|
20
|
+
"""响应体模型"""
|
|
21
|
+
result: Optional[str] = None
|
|
22
|
+
|
|
23
|
+
async def call(
|
|
24
|
+
session: aiohttp.ClientSession, saleId: str, spuId: str, request: Optional[Request] = None
|
|
25
|
+
) -> Response:
|
|
26
|
+
"""
|
|
27
|
+
Update sale product status
|
|
28
|
+
|
|
29
|
+
To update sale product status
|
|
30
|
+
更新直播間商品狀態
|
|
31
|
+
|
|
32
|
+
Path: PUT /sales/{saleId}/products/{spuId}/status
|
|
33
|
+
"""
|
|
34
|
+
# 构建请求 URL
|
|
35
|
+
url = f"sales/{saleId}/products/{spuId}/status"
|
|
36
|
+
|
|
37
|
+
# 构建请求头
|
|
38
|
+
headers = {"Content-Type": "application/json"}
|
|
39
|
+
|
|
40
|
+
# 构建请求体
|
|
41
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
42
|
+
|
|
43
|
+
# 发起 HTTP 请求
|
|
44
|
+
async with session.put(
|
|
45
|
+
url, json=json_data, headers=headers
|
|
46
|
+
) as response:
|
|
47
|
+
if response.status >= 400:
|
|
48
|
+
error_data = await response.json()
|
|
49
|
+
if response.status == 422:
|
|
50
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
51
|
+
raise ShoplineAPIError(
|
|
52
|
+
status_code=422,
|
|
53
|
+
error=error_model,
|
|
54
|
+
**error_data
|
|
55
|
+
)
|
|
56
|
+
if response.status == 500:
|
|
57
|
+
error_model = ServerError(**error_data)
|
|
58
|
+
raise ShoplineAPIError(
|
|
59
|
+
status_code=500,
|
|
60
|
+
error=error_model,
|
|
61
|
+
**error_data
|
|
62
|
+
)
|
|
63
|
+
# 默认错误处理
|
|
64
|
+
raise ShoplineAPIError(
|
|
65
|
+
status_code=response.status,
|
|
66
|
+
**error_data
|
|
67
|
+
)
|
|
68
|
+
response_data = await response.json()
|
|
69
|
+
|
|
70
|
+
# 验证并返回响应数据
|
|
71
|
+
return Response(**response_data)
|