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,86 @@
|
|
|
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.product_stock import ProductStock
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""请求体模型"""
|
|
16
|
+
warehouse_id: str
|
|
17
|
+
"""Warehouse’s id
|
|
18
|
+
倉庫 id
|
|
19
|
+
-----
|
|
20
|
+
Only warehouse with status "active" can be updated
|
|
21
|
+
只有 status “active” 的 warehouse stock 的可以更新"""
|
|
22
|
+
quantity: float
|
|
23
|
+
"""Quantity
|
|
24
|
+
(新增/減少)商品數量
|
|
25
|
+
|
|
26
|
+
Negative number is allowed
|
|
27
|
+
允許更新庫存為負值"""
|
|
28
|
+
is_replace: Optional[bool] = None
|
|
29
|
+
"""Whether replacing the original quantity
|
|
30
|
+
是否取代原本數量
|
|
31
|
+
|
|
32
|
+
true: replace the product's quantity with the number you provided
|
|
33
|
+
取代原本數量
|
|
34
|
+
|
|
35
|
+
false: increase/decrease the quantity with the number you provided
|
|
36
|
+
增加/減少數量"""
|
|
37
|
+
|
|
38
|
+
async def call(
|
|
39
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
40
|
+
) -> ProductStock:
|
|
41
|
+
"""
|
|
42
|
+
Update Addon Product Stock
|
|
43
|
+
|
|
44
|
+
To update the addon product stock with its ID
|
|
45
|
+
使用商品 ID 更新加購品在各個倉庫的庫存
|
|
46
|
+
|
|
47
|
+
Path: PUT /addon_products/{id}/stocks
|
|
48
|
+
"""
|
|
49
|
+
# 构建请求 URL
|
|
50
|
+
url = f"addon_products/{id}/stocks"
|
|
51
|
+
|
|
52
|
+
# 构建请求头
|
|
53
|
+
headers = {"Content-Type": "application/json"}
|
|
54
|
+
|
|
55
|
+
# 构建请求体
|
|
56
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
57
|
+
|
|
58
|
+
# 发起 HTTP 请求
|
|
59
|
+
async with session.put(
|
|
60
|
+
url, json=json_data, headers=headers
|
|
61
|
+
) as response:
|
|
62
|
+
if response.status >= 400:
|
|
63
|
+
error_data = await response.json()
|
|
64
|
+
if response.status == 404:
|
|
65
|
+
error_model = NotFoundError(**error_data)
|
|
66
|
+
raise ShoplineAPIError(
|
|
67
|
+
status_code=404,
|
|
68
|
+
error=error_model,
|
|
69
|
+
**error_data
|
|
70
|
+
)
|
|
71
|
+
if response.status == 500:
|
|
72
|
+
error_model = ServerError(**error_data)
|
|
73
|
+
raise ShoplineAPIError(
|
|
74
|
+
status_code=500,
|
|
75
|
+
error=error_model,
|
|
76
|
+
**error_data
|
|
77
|
+
)
|
|
78
|
+
# 默认错误处理
|
|
79
|
+
raise ShoplineAPIError(
|
|
80
|
+
status_code=response.status,
|
|
81
|
+
**error_data
|
|
82
|
+
)
|
|
83
|
+
response_data = await response.json()
|
|
84
|
+
|
|
85
|
+
# 验证并返回响应数据
|
|
86
|
+
return ProductStock(**response_data)
|
|
File without changes
|
|
@@ -0,0 +1,109 @@
|
|
|
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.affiliate_campaign import AffiliateCampaign
|
|
11
|
+
from ...models.campaign_product import CampaignProduct
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
14
|
+
|
|
15
|
+
class Request(BaseModel):
|
|
16
|
+
"""请求体模型"""
|
|
17
|
+
name: str
|
|
18
|
+
"""Affiliate Campaign Name
|
|
19
|
+
推薦活動名稱"""
|
|
20
|
+
reward_type: Optional[str] = None
|
|
21
|
+
"""Reward type
|
|
22
|
+
訂單回饋類型"""
|
|
23
|
+
promotion_id: Optional[str] = None
|
|
24
|
+
"""Promotion Id
|
|
25
|
+
套用優惠折扣 ID"""
|
|
26
|
+
code: str
|
|
27
|
+
"""Affiliate code
|
|
28
|
+
推薦代碼"""
|
|
29
|
+
start_at: Optional[str] = None
|
|
30
|
+
"""Affiliate campaign start time
|
|
31
|
+
推薦活動開始時間
|
|
32
|
+
-
|
|
33
|
+
*UTC Time"""
|
|
34
|
+
end_at: Optional[str] = None
|
|
35
|
+
"""Affiliate campaign end time
|
|
36
|
+
推薦活動結束時間
|
|
37
|
+
-
|
|
38
|
+
*UTC Time"""
|
|
39
|
+
remarks_translations: Optional[Dict[str, Any]] = None
|
|
40
|
+
"""Remarks translations
|
|
41
|
+
顯示於 KOL Hub 的條款說明"""
|
|
42
|
+
apply_on: Optional[Literal['order', 'product']] = None
|
|
43
|
+
"""Apply on order or product
|
|
44
|
+
套用於訂單或商品"""
|
|
45
|
+
apply_method: Optional[Literal['all', 'product']] = None
|
|
46
|
+
"""Apply method
|
|
47
|
+
套用方式:
|
|
48
|
+
- all: 全部
|
|
49
|
+
- item: 逐筆設定"""
|
|
50
|
+
affiliate_percentage: Optional[float] = None
|
|
51
|
+
"""Affiliate percentage
|
|
52
|
+
分潤百分比"""
|
|
53
|
+
affiliate_amount: Optional[Dict[str, Any]] = None
|
|
54
|
+
"""Affiliate amount
|
|
55
|
+
分潤固定金額"""
|
|
56
|
+
condition_min_amount: Optional[Dict[str, Any]] = None
|
|
57
|
+
"""The threshold amount (for order level)
|
|
58
|
+
門檻金額 (for order level)"""
|
|
59
|
+
campaign_products: Optional[List[CampaignProduct]] = None
|
|
60
|
+
|
|
61
|
+
async def call(
|
|
62
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
63
|
+
) -> AffiliateCampaign:
|
|
64
|
+
"""
|
|
65
|
+
Create Affiliate Campaign
|
|
66
|
+
|
|
67
|
+
To create affiliate campaign.
|
|
68
|
+
建立推薦活動。
|
|
69
|
+
|
|
70
|
+
Path: POST /affiliate_campaigns
|
|
71
|
+
"""
|
|
72
|
+
# 构建请求 URL
|
|
73
|
+
url = "affiliate_campaigns"
|
|
74
|
+
|
|
75
|
+
# 构建请求头
|
|
76
|
+
headers = {"Content-Type": "application/json"}
|
|
77
|
+
|
|
78
|
+
# 构建请求体
|
|
79
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
80
|
+
|
|
81
|
+
# 发起 HTTP 请求
|
|
82
|
+
async with session.post(
|
|
83
|
+
url, json=json_data, headers=headers
|
|
84
|
+
) as response:
|
|
85
|
+
if response.status >= 400:
|
|
86
|
+
error_data = await response.json()
|
|
87
|
+
if response.status == 422:
|
|
88
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
89
|
+
raise ShoplineAPIError(
|
|
90
|
+
status_code=422,
|
|
91
|
+
error=error_model,
|
|
92
|
+
**error_data
|
|
93
|
+
)
|
|
94
|
+
if response.status == 500:
|
|
95
|
+
error_model = ServerError(**error_data)
|
|
96
|
+
raise ShoplineAPIError(
|
|
97
|
+
status_code=500,
|
|
98
|
+
error=error_model,
|
|
99
|
+
**error_data
|
|
100
|
+
)
|
|
101
|
+
# 默认错误处理
|
|
102
|
+
raise ShoplineAPIError(
|
|
103
|
+
status_code=response.status,
|
|
104
|
+
**error_data
|
|
105
|
+
)
|
|
106
|
+
response_data = await response.json()
|
|
107
|
+
|
|
108
|
+
# 验证并返回响应数据
|
|
109
|
+
return AffiliateCampaign(**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 Response(BaseModel):
|
|
10
|
+
"""响应体模型"""
|
|
11
|
+
message: Optional[str] = None
|
|
12
|
+
|
|
13
|
+
async def call(
|
|
14
|
+
session: aiohttp.ClientSession, id: str
|
|
15
|
+
) -> Response:
|
|
16
|
+
"""
|
|
17
|
+
Delete Affiliate Campaign
|
|
18
|
+
|
|
19
|
+
To delete affiliate campaign.
|
|
20
|
+
刪除推薦活動。
|
|
21
|
+
|
|
22
|
+
Path: DELETE /affiliate_campaigns/{id}
|
|
23
|
+
"""
|
|
24
|
+
# 构建请求 URL
|
|
25
|
+
url = f"affiliate_campaigns/{id}"
|
|
26
|
+
|
|
27
|
+
# 构建请求头
|
|
28
|
+
headers = {"Content-Type": "application/json"}
|
|
29
|
+
|
|
30
|
+
# 发起 HTTP 请求
|
|
31
|
+
async with session.delete(
|
|
32
|
+
url, headers=headers
|
|
33
|
+
) as response:
|
|
34
|
+
if response.status >= 400:
|
|
35
|
+
error_data = await response.json()
|
|
36
|
+
# 默认错误处理
|
|
37
|
+
raise ShoplineAPIError(
|
|
38
|
+
status_code=response.status,
|
|
39
|
+
**error_data
|
|
40
|
+
)
|
|
41
|
+
response_data = await response.json()
|
|
42
|
+
|
|
43
|
+
# 验证并返回响应数据
|
|
44
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
|
|
12
|
+
class Request(BaseModel):
|
|
13
|
+
"""查询参数模型"""
|
|
14
|
+
locale_code: Optional[str] = None
|
|
15
|
+
"""Partner Locale Code"""
|
|
16
|
+
|
|
17
|
+
async def call(
|
|
18
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
19
|
+
) -> None:
|
|
20
|
+
"""
|
|
21
|
+
Export Affiliate Campaign Report to Partner
|
|
22
|
+
|
|
23
|
+
Send Affiliate Campaign to Partner
|
|
24
|
+
|
|
25
|
+
Path: POST /affiliate_campaigns/{id}/export_report
|
|
26
|
+
"""
|
|
27
|
+
# 构建请求 URL
|
|
28
|
+
url = f"affiliate_campaigns/{id}/export_report"
|
|
29
|
+
|
|
30
|
+
# 构建查询参数
|
|
31
|
+
params = {}
|
|
32
|
+
if request:
|
|
33
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
34
|
+
for key, value in request_dict.items():
|
|
35
|
+
if value is not None:
|
|
36
|
+
params[key] = value
|
|
37
|
+
|
|
38
|
+
# 构建请求头
|
|
39
|
+
headers = {"Content-Type": "application/json"}
|
|
40
|
+
|
|
41
|
+
# 发起 HTTP 请求
|
|
42
|
+
async with session.post(
|
|
43
|
+
url, params=params, headers=headers
|
|
44
|
+
) as response:
|
|
45
|
+
if response.status >= 400:
|
|
46
|
+
error_data = await response.json()
|
|
47
|
+
if response.status == 404:
|
|
48
|
+
error_model = NotFoundError(**error_data)
|
|
49
|
+
raise ShoplineAPIError(
|
|
50
|
+
status_code=404,
|
|
51
|
+
error=error_model,
|
|
52
|
+
**error_data
|
|
53
|
+
)
|
|
54
|
+
# 默认错误处理
|
|
55
|
+
raise ShoplineAPIError(
|
|
56
|
+
status_code=response.status,
|
|
57
|
+
**error_data
|
|
58
|
+
)
|
|
59
|
+
# 无响应体,返回 None
|
|
60
|
+
return None
|
|
@@ -0,0 +1,59 @@
|
|
|
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.affiliate_campaign import AffiliateCampaign
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
|
|
14
|
+
async def call(
|
|
15
|
+
session: aiohttp.ClientSession, id: str
|
|
16
|
+
) -> AffiliateCampaign:
|
|
17
|
+
"""
|
|
18
|
+
Get Affiliate Campaign
|
|
19
|
+
|
|
20
|
+
To get affiliate campaign.
|
|
21
|
+
獲取推薦活動。
|
|
22
|
+
|
|
23
|
+
Path: GET /affiliate_campaigns/{id}
|
|
24
|
+
"""
|
|
25
|
+
# 构建请求 URL
|
|
26
|
+
url = f"affiliate_campaigns/{id}"
|
|
27
|
+
|
|
28
|
+
# 构建请求头
|
|
29
|
+
headers = {"Content-Type": "application/json"}
|
|
30
|
+
|
|
31
|
+
# 发起 HTTP 请求
|
|
32
|
+
async with session.get(
|
|
33
|
+
url, headers=headers
|
|
34
|
+
) as response:
|
|
35
|
+
if response.status >= 400:
|
|
36
|
+
error_data = await response.json()
|
|
37
|
+
if response.status == 422:
|
|
38
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
39
|
+
raise ShoplineAPIError(
|
|
40
|
+
status_code=422,
|
|
41
|
+
error=error_model,
|
|
42
|
+
**error_data
|
|
43
|
+
)
|
|
44
|
+
if response.status == 500:
|
|
45
|
+
error_model = ServerError(**error_data)
|
|
46
|
+
raise ShoplineAPIError(
|
|
47
|
+
status_code=500,
|
|
48
|
+
error=error_model,
|
|
49
|
+
**error_data
|
|
50
|
+
)
|
|
51
|
+
# 默认错误处理
|
|
52
|
+
raise ShoplineAPIError(
|
|
53
|
+
status_code=response.status,
|
|
54
|
+
**error_data
|
|
55
|
+
)
|
|
56
|
+
response_data = await response.json()
|
|
57
|
+
|
|
58
|
+
# 验证并返回响应数据
|
|
59
|
+
return AffiliateCampaign(**response_data)
|
|
@@ -0,0 +1,75 @@
|
|
|
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.affiliate_campaign_orders import AffiliateCampaignOrders
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""查询参数模型"""
|
|
16
|
+
previous_id: Optional[str] = None
|
|
17
|
+
"""The last ID of the orders in the previous request."""
|
|
18
|
+
limit: Optional[int] = None
|
|
19
|
+
"""Numbers of Orders
|
|
20
|
+
顯示 n 筆訂單"""
|
|
21
|
+
|
|
22
|
+
async def call(
|
|
23
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
24
|
+
) -> AffiliateCampaignOrders:
|
|
25
|
+
"""
|
|
26
|
+
Get Affiliate Campaign Orders
|
|
27
|
+
|
|
28
|
+
To get affiliate campaign order.
|
|
29
|
+
獲取使用特定推薦活動代碼的訂單。
|
|
30
|
+
|
|
31
|
+
Path: GET /affiliate_campaigns/{id}/orders
|
|
32
|
+
"""
|
|
33
|
+
# 构建请求 URL
|
|
34
|
+
url = f"affiliate_campaigns/{id}/orders"
|
|
35
|
+
|
|
36
|
+
# 构建查询参数
|
|
37
|
+
params = {}
|
|
38
|
+
if request:
|
|
39
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
40
|
+
for key, value in request_dict.items():
|
|
41
|
+
if value is not None:
|
|
42
|
+
params[key] = value
|
|
43
|
+
|
|
44
|
+
# 构建请求头
|
|
45
|
+
headers = {"Content-Type": "application/json"}
|
|
46
|
+
|
|
47
|
+
# 发起 HTTP 请求
|
|
48
|
+
async with session.get(
|
|
49
|
+
url, params=params, headers=headers
|
|
50
|
+
) as response:
|
|
51
|
+
if response.status >= 400:
|
|
52
|
+
error_data = await response.json()
|
|
53
|
+
if response.status == 422:
|
|
54
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
55
|
+
raise ShoplineAPIError(
|
|
56
|
+
status_code=422,
|
|
57
|
+
error=error_model,
|
|
58
|
+
**error_data
|
|
59
|
+
)
|
|
60
|
+
if response.status == 500:
|
|
61
|
+
error_model = ServerError(**error_data)
|
|
62
|
+
raise ShoplineAPIError(
|
|
63
|
+
status_code=500,
|
|
64
|
+
error=error_model,
|
|
65
|
+
**error_data
|
|
66
|
+
)
|
|
67
|
+
# 默认错误处理
|
|
68
|
+
raise ShoplineAPIError(
|
|
69
|
+
status_code=response.status,
|
|
70
|
+
**error_data
|
|
71
|
+
)
|
|
72
|
+
response_data = await response.json()
|
|
73
|
+
|
|
74
|
+
# 验证并返回响应数据
|
|
75
|
+
return AffiliateCampaignOrders(**response_data)
|
|
@@ -0,0 +1,49 @@
|
|
|
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.gift import Gift
|
|
11
|
+
from ...models.money import Money
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
|
|
14
|
+
async def call(
|
|
15
|
+
session: aiohttp.ClientSession, id: str
|
|
16
|
+
) -> Dict[str, Any]:
|
|
17
|
+
"""
|
|
18
|
+
Get Affiliate Campaign Summary
|
|
19
|
+
|
|
20
|
+
To get affiliate campaign 活動成效總覽。
|
|
21
|
+
|
|
22
|
+
Path: GET /affiliate_campaigns/{id}/summary
|
|
23
|
+
"""
|
|
24
|
+
# 构建请求 URL
|
|
25
|
+
url = f"affiliate_campaigns/{id}/summary"
|
|
26
|
+
|
|
27
|
+
# 构建请求头
|
|
28
|
+
headers = {"Content-Type": "application/json"}
|
|
29
|
+
|
|
30
|
+
# 发起 HTTP 请求
|
|
31
|
+
async with session.get(
|
|
32
|
+
url, headers=headers
|
|
33
|
+
) as response:
|
|
34
|
+
if response.status >= 400:
|
|
35
|
+
error_data = await response.json()
|
|
36
|
+
if response.status == 500:
|
|
37
|
+
error_model = ServerError(**error_data)
|
|
38
|
+
raise ShoplineAPIError(
|
|
39
|
+
status_code=500,
|
|
40
|
+
error=error_model,
|
|
41
|
+
**error_data
|
|
42
|
+
)
|
|
43
|
+
# 默认错误处理
|
|
44
|
+
raise ShoplineAPIError(
|
|
45
|
+
status_code=response.status,
|
|
46
|
+
**error_data
|
|
47
|
+
)
|
|
48
|
+
response_data = await response.json()
|
|
49
|
+
return response_data
|
|
@@ -0,0 +1,84 @@
|
|
|
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.affiliate_campaigns import AffiliateCampaigns
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""查询参数模型"""
|
|
16
|
+
active_status: Optional[Literal['expired', 'ongoing']] = None
|
|
17
|
+
"""The active status of affiliate campaign (expired or ongoing).
|
|
18
|
+
推薦活動的狀態 (已過期或進行中)。"""
|
|
19
|
+
partner_email: Optional[str] = None
|
|
20
|
+
"""The partner's email (To encode it with URI encode before sending)."""
|
|
21
|
+
previous_id: Optional[str] = None
|
|
22
|
+
"""The last ID of the campaigns in the previous request. (for cursor base; empty is mean first page)
|
|
23
|
+
前頁最後一筆編號(僅適用遊標取值,空值表示第一頁)"""
|
|
24
|
+
page: Optional[int] = None
|
|
25
|
+
"""Page number (**Deprecated**)
|
|
26
|
+
頁數(已過時不建議使用)"""
|
|
27
|
+
per_page: Optional[int] = None
|
|
28
|
+
"""Numbers of channels per page
|
|
29
|
+
每頁顯示資料筆數"""
|
|
30
|
+
|
|
31
|
+
async def call(
|
|
32
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
33
|
+
) -> AffiliateCampaigns:
|
|
34
|
+
"""
|
|
35
|
+
Get Affiliate Campaigns
|
|
36
|
+
|
|
37
|
+
To get affiliate campaigns.
|
|
38
|
+
獲取推薦活動清單。
|
|
39
|
+
|
|
40
|
+
Path: GET /affiliate_campaigns
|
|
41
|
+
"""
|
|
42
|
+
# 构建请求 URL
|
|
43
|
+
url = "affiliate_campaigns"
|
|
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 == 422:
|
|
63
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
64
|
+
raise ShoplineAPIError(
|
|
65
|
+
status_code=422,
|
|
66
|
+
error=error_model,
|
|
67
|
+
**error_data
|
|
68
|
+
)
|
|
69
|
+
if response.status == 500:
|
|
70
|
+
error_model = ServerError(**error_data)
|
|
71
|
+
raise ShoplineAPIError(
|
|
72
|
+
status_code=500,
|
|
73
|
+
error=error_model,
|
|
74
|
+
**error_data
|
|
75
|
+
)
|
|
76
|
+
# 默认错误处理
|
|
77
|
+
raise ShoplineAPIError(
|
|
78
|
+
status_code=response.status,
|
|
79
|
+
**error_data
|
|
80
|
+
)
|
|
81
|
+
response_data = await response.json()
|
|
82
|
+
|
|
83
|
+
# 验证并返回响应数据
|
|
84
|
+
return AffiliateCampaigns(**response_data)
|
|
@@ -0,0 +1,73 @@
|
|
|
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.addon_product import AddonProduct
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.translatable import Translatable
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""查询参数模型"""
|
|
16
|
+
limit: Optional[int] = None
|
|
17
|
+
"""Number of Order by request"""
|
|
18
|
+
next_product_id: Optional[str] = None
|
|
19
|
+
"""The last Product Id of the products in the previous request."""
|
|
20
|
+
next_quantity: Optional[int] = None
|
|
21
|
+
"""The last Quantity of the products in the previous request."""
|
|
22
|
+
|
|
23
|
+
class Response(BaseModel):
|
|
24
|
+
"""响应体模型"""
|
|
25
|
+
items: Optional[List[Dict[str, Any]]] = None
|
|
26
|
+
cursor: Optional[Dict[str, Any]] = None
|
|
27
|
+
|
|
28
|
+
async def call(
|
|
29
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
30
|
+
) -> Response:
|
|
31
|
+
"""
|
|
32
|
+
Get Products Sales Ranking of Campaign
|
|
33
|
+
|
|
34
|
+
To get products sales ranking of campaign.
|
|
35
|
+
|
|
36
|
+
Path: GET /affiliate_campaigns/{id}/get_products_sales_ranking
|
|
37
|
+
"""
|
|
38
|
+
# 构建请求 URL
|
|
39
|
+
url = f"affiliate_campaigns/{id}/get_products_sales_ranking"
|
|
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
|
+
if response.status == 500:
|
|
59
|
+
error_model = ServerError(**error_data)
|
|
60
|
+
raise ShoplineAPIError(
|
|
61
|
+
status_code=500,
|
|
62
|
+
error=error_model,
|
|
63
|
+
**error_data
|
|
64
|
+
)
|
|
65
|
+
# 默认错误处理
|
|
66
|
+
raise ShoplineAPIError(
|
|
67
|
+
status_code=response.status,
|
|
68
|
+
**error_data
|
|
69
|
+
)
|
|
70
|
+
response_data = await response.json()
|
|
71
|
+
|
|
72
|
+
# 验证并返回响应数据
|
|
73
|
+
return Response(**response_data)
|