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,64 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.product_review_comment import ProductReviewComment
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ItemsItem(BaseModel):
|
|
14
|
+
"""Item model for items"""
|
|
15
|
+
id: Optional[str] = None
|
|
16
|
+
user_name: Optional[str] = None
|
|
17
|
+
status: Optional[str] = None
|
|
18
|
+
score: Optional[int] = None
|
|
19
|
+
comment: Optional[str] = None
|
|
20
|
+
media_ids: Optional[Any] = None
|
|
21
|
+
|
|
22
|
+
class Request(BaseModel):
|
|
23
|
+
"""请求体模型"""
|
|
24
|
+
items: Optional[List[ItemsItem]] = None
|
|
25
|
+
|
|
26
|
+
class Response(BaseModel):
|
|
27
|
+
"""响应体模型"""
|
|
28
|
+
result: Optional[str] = None
|
|
29
|
+
count: Optional[int] = None
|
|
30
|
+
|
|
31
|
+
async def call(
|
|
32
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
33
|
+
) -> Response:
|
|
34
|
+
"""
|
|
35
|
+
Bulk Update Product Review Comments
|
|
36
|
+
|
|
37
|
+
To bulk update multiple product review comments.
|
|
38
|
+
批量更新商品評價。
|
|
39
|
+
|
|
40
|
+
Path: PUT /product_review_comments/bulk
|
|
41
|
+
"""
|
|
42
|
+
# 构建请求 URL
|
|
43
|
+
url = "product_review_comments/bulk"
|
|
44
|
+
|
|
45
|
+
# 构建请求头
|
|
46
|
+
headers = {"Content-Type": "application/json"}
|
|
47
|
+
|
|
48
|
+
# 构建请求体
|
|
49
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
50
|
+
|
|
51
|
+
# 发起 HTTP 请求
|
|
52
|
+
async with session.put(
|
|
53
|
+
url, json=json_data, headers=headers
|
|
54
|
+
) as response:
|
|
55
|
+
if response.status >= 400:
|
|
56
|
+
error_data = await response.json()
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=response.status,
|
|
59
|
+
**error_data
|
|
60
|
+
)
|
|
61
|
+
response_data = await response.json()
|
|
62
|
+
|
|
63
|
+
# 验证并返回响应数据
|
|
64
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,45 @@
|
|
|
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.product_review_comment import ProductReviewComment
|
|
11
|
+
|
|
12
|
+
async def call(
|
|
13
|
+
session: aiohttp.ClientSession, data: Optional[Dict[str, Any]] = None
|
|
14
|
+
) -> ProductReviewComment:
|
|
15
|
+
"""
|
|
16
|
+
Create Product Review Comments
|
|
17
|
+
|
|
18
|
+
To create a product review comment.
|
|
19
|
+
創建一個商品評價。
|
|
20
|
+
|
|
21
|
+
Path: POST /product_review_comments
|
|
22
|
+
"""
|
|
23
|
+
# 构建请求 URL
|
|
24
|
+
url = "product_review_comments"
|
|
25
|
+
|
|
26
|
+
# 构建请求头
|
|
27
|
+
headers = {"Content-Type": "application/json"}
|
|
28
|
+
|
|
29
|
+
# 构建请求体
|
|
30
|
+
json_data = data if data else None
|
|
31
|
+
|
|
32
|
+
# 发起 HTTP 请求
|
|
33
|
+
async with session.post(
|
|
34
|
+
url, json=json_data, headers=headers
|
|
35
|
+
) as response:
|
|
36
|
+
if response.status >= 400:
|
|
37
|
+
error_data = await response.json()
|
|
38
|
+
raise ShoplineAPIError(
|
|
39
|
+
status_code=response.status,
|
|
40
|
+
**error_data
|
|
41
|
+
)
|
|
42
|
+
response_data = await response.json()
|
|
43
|
+
|
|
44
|
+
# 验证并返回响应数据
|
|
45
|
+
return ProductReviewComment(**response_data)
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
async def call(
|
|
10
|
+
session: aiohttp.ClientSession, id: str
|
|
11
|
+
) -> str:
|
|
12
|
+
"""
|
|
13
|
+
Delete Product Review Comment
|
|
14
|
+
|
|
15
|
+
To delete a product review comment.
|
|
16
|
+
刪除一個商品評價。
|
|
17
|
+
|
|
18
|
+
Path: DELETE /product_review_comments/{id}
|
|
19
|
+
"""
|
|
20
|
+
# 构建请求 URL
|
|
21
|
+
url = f"product_review_comments/{id}"
|
|
22
|
+
|
|
23
|
+
# 构建请求头
|
|
24
|
+
headers = {"Content-Type": "application/json"}
|
|
25
|
+
|
|
26
|
+
# 发起 HTTP 请求
|
|
27
|
+
async with session.delete(
|
|
28
|
+
url, headers=headers
|
|
29
|
+
) as response:
|
|
30
|
+
if response.status >= 400:
|
|
31
|
+
error_data = await response.json()
|
|
32
|
+
raise ShoplineAPIError(
|
|
33
|
+
status_code=response.status,
|
|
34
|
+
**error_data
|
|
35
|
+
)
|
|
36
|
+
# 返回文本响应
|
|
37
|
+
return await response.text()
|
|
@@ -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.product_review_comment import ProductReviewComment
|
|
11
|
+
|
|
12
|
+
async def call(
|
|
13
|
+
session: aiohttp.ClientSession, id: str
|
|
14
|
+
) -> ProductReviewComment:
|
|
15
|
+
"""
|
|
16
|
+
Get Product Review Comment
|
|
17
|
+
|
|
18
|
+
To retrieve one of the product review comments by id.
|
|
19
|
+
以id抓取某一商品評價。
|
|
20
|
+
|
|
21
|
+
Path: GET /product_review_comments/{id}
|
|
22
|
+
"""
|
|
23
|
+
# 构建请求 URL
|
|
24
|
+
url = f"product_review_comments/{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 ProductReviewComment(**response_data)
|
|
@@ -0,0 +1,91 @@
|
|
|
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.product_review_comments import ProductReviewComments
|
|
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 product review comments in the previous request.
|
|
18
|
+
前一筆商品評價的 ID
|
|
19
|
+
beta 測試中,僅開放部分店家使用,如無法使用功能請聯絡客服窗口"""
|
|
20
|
+
product_id: Optional[str] = None
|
|
21
|
+
"""Product id
|
|
22
|
+
產品id"""
|
|
23
|
+
page: Optional[int] = None
|
|
24
|
+
"""Page Number
|
|
25
|
+
頁數"""
|
|
26
|
+
per_page: Optional[int] = None
|
|
27
|
+
"""Numbers of items per Page
|
|
28
|
+
每頁顯示 n 筆資料"""
|
|
29
|
+
sort_by: Optional[Literal['created_at', 'score']] = None
|
|
30
|
+
"""Sorting by field
|
|
31
|
+
以欄位排序"""
|
|
32
|
+
order_by: Optional[Literal['asc', 'desc']] = None
|
|
33
|
+
"""Setting sort by created time
|
|
34
|
+
設定排序"""
|
|
35
|
+
status: Optional[str] = None
|
|
36
|
+
"""Status
|
|
37
|
+
狀態"""
|
|
38
|
+
|
|
39
|
+
class Response(BaseModel):
|
|
40
|
+
"""响应体模型"""
|
|
41
|
+
items: Optional[List[ProductReviewComments]] = None
|
|
42
|
+
pagination: Optional[Paginatable] = None
|
|
43
|
+
last_id: Optional[str] = None
|
|
44
|
+
|
|
45
|
+
async def call(
|
|
46
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
47
|
+
) -> Response:
|
|
48
|
+
"""
|
|
49
|
+
Get Product Review Comments
|
|
50
|
+
|
|
51
|
+
To retrieve product review comments.
|
|
52
|
+
抓取商品評價。
|
|
53
|
+
|
|
54
|
+
Path: GET /product_review_comments
|
|
55
|
+
"""
|
|
56
|
+
# 构建请求 URL
|
|
57
|
+
url = "product_review_comments"
|
|
58
|
+
|
|
59
|
+
# 构建查询参数
|
|
60
|
+
params = {}
|
|
61
|
+
if request:
|
|
62
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
63
|
+
for key, value in request_dict.items():
|
|
64
|
+
if value is not None:
|
|
65
|
+
params[key] = value
|
|
66
|
+
|
|
67
|
+
# 构建请求头
|
|
68
|
+
headers = {"Content-Type": "application/json"}
|
|
69
|
+
|
|
70
|
+
# 发起 HTTP 请求
|
|
71
|
+
async with session.get(
|
|
72
|
+
url, params=params, headers=headers
|
|
73
|
+
) as response:
|
|
74
|
+
if response.status >= 400:
|
|
75
|
+
error_data = await response.json()
|
|
76
|
+
if response.status == 422:
|
|
77
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
78
|
+
raise ShoplineAPIError(
|
|
79
|
+
status_code=422,
|
|
80
|
+
error=error_model,
|
|
81
|
+
**error_data
|
|
82
|
+
)
|
|
83
|
+
# 默认错误处理
|
|
84
|
+
raise ShoplineAPIError(
|
|
85
|
+
status_code=response.status,
|
|
86
|
+
**error_data
|
|
87
|
+
)
|
|
88
|
+
response_data = await response.json()
|
|
89
|
+
|
|
90
|
+
# 验证并返回响应数据
|
|
91
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,45 @@
|
|
|
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.product_review_comment import ProductReviewComment
|
|
11
|
+
|
|
12
|
+
async def call(
|
|
13
|
+
session: aiohttp.ClientSession, id: str, data: Optional[Dict[str, Any]] = None
|
|
14
|
+
) -> ProductReviewComment:
|
|
15
|
+
"""
|
|
16
|
+
Update Product Review Comment
|
|
17
|
+
|
|
18
|
+
To update a product review comment by id.
|
|
19
|
+
以id更新某一商品評價。
|
|
20
|
+
|
|
21
|
+
Path: PUT /product_review_comments/{id}
|
|
22
|
+
"""
|
|
23
|
+
# 构建请求 URL
|
|
24
|
+
url = f"product_review_comments/{id}"
|
|
25
|
+
|
|
26
|
+
# 构建请求头
|
|
27
|
+
headers = {"Content-Type": "application/json"}
|
|
28
|
+
|
|
29
|
+
# 构建请求体
|
|
30
|
+
json_data = data if data else None
|
|
31
|
+
|
|
32
|
+
# 发起 HTTP 请求
|
|
33
|
+
async with session.put(
|
|
34
|
+
url, json=json_data, headers=headers
|
|
35
|
+
) as response:
|
|
36
|
+
if response.status >= 400:
|
|
37
|
+
error_data = await response.json()
|
|
38
|
+
raise ShoplineAPIError(
|
|
39
|
+
status_code=response.status,
|
|
40
|
+
**error_data
|
|
41
|
+
)
|
|
42
|
+
response_data = await response.json()
|
|
43
|
+
|
|
44
|
+
# 验证并返回响应数据
|
|
45
|
+
return ProductReviewComment(**response_data)
|
|
File without changes
|
|
@@ -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.paginatable import Paginatable
|
|
11
|
+
from ...models.product_subscription import ProductSubscription
|
|
12
|
+
|
|
13
|
+
class Request(BaseModel):
|
|
14
|
+
"""查询参数模型"""
|
|
15
|
+
per_page: Optional[int] = None
|
|
16
|
+
"""Numbers of Products per page
|
|
17
|
+
每頁顯示 n 筆資料"""
|
|
18
|
+
page: Optional[int] = None
|
|
19
|
+
"""Page Number
|
|
20
|
+
頁數"""
|
|
21
|
+
previous_id: Optional[str] = None
|
|
22
|
+
"""Previous ID
|
|
23
|
+
上一頁的ID"""
|
|
24
|
+
id: Optional[str] = None
|
|
25
|
+
"""Only show specific products based on IDs
|
|
26
|
+
結果只顯示哪些商品"""
|
|
27
|
+
|
|
28
|
+
class Response(BaseModel):
|
|
29
|
+
"""响应体模型"""
|
|
30
|
+
items: Optional[List[ProductSubscription]] = None
|
|
31
|
+
pagination: Optional[Paginatable] = None
|
|
32
|
+
|
|
33
|
+
async def call(
|
|
34
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
35
|
+
) -> Response:
|
|
36
|
+
"""
|
|
37
|
+
Get a list of product subscriptions
|
|
38
|
+
|
|
39
|
+
Retrieve information of multiple product subscriptions
|
|
40
|
+
抓取多筆定期購的信息
|
|
41
|
+
|
|
42
|
+
Path: GET /product_subscriptions
|
|
43
|
+
"""
|
|
44
|
+
# 构建请求 URL
|
|
45
|
+
url = "product_subscriptions"
|
|
46
|
+
|
|
47
|
+
# 构建查询参数
|
|
48
|
+
params = {}
|
|
49
|
+
if request:
|
|
50
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
51
|
+
for key, value in request_dict.items():
|
|
52
|
+
if value is not None:
|
|
53
|
+
params[key] = value
|
|
54
|
+
|
|
55
|
+
# 构建请求头
|
|
56
|
+
headers = {"Content-Type": "application/json"}
|
|
57
|
+
|
|
58
|
+
# 发起 HTTP 请求
|
|
59
|
+
async with session.get(
|
|
60
|
+
url, params=params, headers=headers
|
|
61
|
+
) as response:
|
|
62
|
+
if response.status >= 400:
|
|
63
|
+
error_data = await response.json()
|
|
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)
|
|
@@ -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.product_subscription import ProductSubscription
|
|
11
|
+
|
|
12
|
+
async def call(
|
|
13
|
+
session: aiohttp.ClientSession, id: str
|
|
14
|
+
) -> ProductSubscription:
|
|
15
|
+
"""
|
|
16
|
+
Get Product Subscription
|
|
17
|
+
|
|
18
|
+
To get detailed information for a specific product subscription with its ID
|
|
19
|
+
使用定期購ID獲取特定一個定期購的詳細資料
|
|
20
|
+
|
|
21
|
+
Path: GET /product_subscriptions/{id}
|
|
22
|
+
"""
|
|
23
|
+
# 构建请求 URL
|
|
24
|
+
url = f"product_subscriptions/{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 ProductSubscription(**response_data)
|
|
File without changes
|
|
@@ -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.bad_request_error import BadRequestError
|
|
11
|
+
from ...models.media_upload_error import MediaUploadError
|
|
12
|
+
from ...models.not_found_error import NotFoundError
|
|
13
|
+
from ...models.product import Product
|
|
14
|
+
from ...models.server_error import ServerError
|
|
15
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
16
|
+
|
|
17
|
+
class Request(BaseModel):
|
|
18
|
+
"""请求体模型"""
|
|
19
|
+
urls: Optional[List[str]] = None
|
|
20
|
+
"""Urls of the Images
|
|
21
|
+
新增圖片之url"""
|
|
22
|
+
image_type: Optional[Literal['main', 'detail']] = None
|
|
23
|
+
"""Image Type
|
|
24
|
+
圖片種類"""
|
|
25
|
+
is_replcae: Optional[bool] = None
|
|
26
|
+
"""Whether replacing the original images
|
|
27
|
+
是否取代原本數量"""
|
|
28
|
+
|
|
29
|
+
async def call(
|
|
30
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
31
|
+
) -> Product:
|
|
32
|
+
"""
|
|
33
|
+
Add Product Images
|
|
34
|
+
|
|
35
|
+
Add or replace product images to an existing product.
|
|
36
|
+
透過open API對現有商品進行新增或覆蓋圖片。
|
|
37
|
+
|
|
38
|
+
Path: POST /products/{id}/add_images
|
|
39
|
+
"""
|
|
40
|
+
# 构建请求 URL
|
|
41
|
+
url = f"products/{id}/add_images"
|
|
42
|
+
|
|
43
|
+
# 构建请求头
|
|
44
|
+
headers = {"Content-Type": "application/json"}
|
|
45
|
+
|
|
46
|
+
# 构建请求体
|
|
47
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
48
|
+
|
|
49
|
+
# 发起 HTTP 请求
|
|
50
|
+
async with session.post(
|
|
51
|
+
url, json=json_data, headers=headers
|
|
52
|
+
) as response:
|
|
53
|
+
if response.status >= 400:
|
|
54
|
+
error_data = await response.json()
|
|
55
|
+
if response.status == 404:
|
|
56
|
+
error_model = NotFoundError(**error_data)
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=404,
|
|
59
|
+
error=error_model,
|
|
60
|
+
**error_data
|
|
61
|
+
)
|
|
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 Product(**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.server_error import ServerError
|
|
11
|
+
from ...models.translatable import Translatable
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DataItem(BaseModel):
|
|
15
|
+
"""Item model for data"""
|
|
16
|
+
product_ids: Optional[List[str]] = None
|
|
17
|
+
"""Maximum allows 1000 product_id per action
|
|
18
|
+
上限 1000 個商品 ID"""
|
|
19
|
+
label: Optional[Dict[str, Any]] = None
|
|
20
|
+
"""remove product's label if label is empty.
|
|
21
|
+
label 為空代表移除促銷標籤"""
|
|
22
|
+
|
|
23
|
+
class Request(BaseModel):
|
|
24
|
+
"""请求体模型"""
|
|
25
|
+
data: Optional[List[DataItem]] = None
|
|
26
|
+
"""One item means one operation on a batch of products. Maximum allows 5 operations per request.
|
|
27
|
+
一個 item 代表對一批商品做相同操作,一次請求上限 5 個操作"""
|
|
28
|
+
|
|
29
|
+
class Response(BaseModel):
|
|
30
|
+
"""响应体模型"""
|
|
31
|
+
data: Optional[List[Any]] = None
|
|
32
|
+
|
|
33
|
+
async def call(
|
|
34
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
35
|
+
) -> Response:
|
|
36
|
+
"""
|
|
37
|
+
Batch Update (add/remove) current product labels
|
|
38
|
+
|
|
39
|
+
Add or Remove current product labels.
|
|
40
|
+
|
|
41
|
+
Path: PATCH /products/labels
|
|
42
|
+
"""
|
|
43
|
+
# 构建请求 URL
|
|
44
|
+
url = "products/labels"
|
|
45
|
+
|
|
46
|
+
# 构建请求头
|
|
47
|
+
headers = {"Content-Type": "application/json"}
|
|
48
|
+
|
|
49
|
+
# 构建请求体
|
|
50
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
51
|
+
|
|
52
|
+
# 发起 HTTP 请求
|
|
53
|
+
async with session.patch(
|
|
54
|
+
url, json=json_data, 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)
|
|
@@ -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.server_error import ServerError
|
|
11
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
12
|
+
|
|
13
|
+
class Request(BaseModel):
|
|
14
|
+
"""查询参数模型"""
|
|
15
|
+
ids: Optional[str] = None
|
|
16
|
+
"""The id of the product that will be deleted. Max delete 100 products at a time.
|
|
17
|
+
需要刪除的商品id,每次最多只能刪除100個商品。"""
|
|
18
|
+
|
|
19
|
+
class Response(BaseModel):
|
|
20
|
+
"""响应体模型"""
|
|
21
|
+
updated_product_ids: Optional[List[str]] = None
|
|
22
|
+
errors: Optional[List[Dict[str, Any]]] = None
|
|
23
|
+
|
|
24
|
+
async def call(
|
|
25
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
26
|
+
) -> Response:
|
|
27
|
+
"""
|
|
28
|
+
Bulk Delete Product
|
|
29
|
+
|
|
30
|
+
To bulk delete products.
|
|
31
|
+
批量刪除商品。
|
|
32
|
+
|
|
33
|
+
Path: DELETE /products/bulk
|
|
34
|
+
"""
|
|
35
|
+
# 构建请求 URL
|
|
36
|
+
url = "products/bulk"
|
|
37
|
+
|
|
38
|
+
# 构建查询参数
|
|
39
|
+
params = {}
|
|
40
|
+
if request:
|
|
41
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
42
|
+
for key, value in request_dict.items():
|
|
43
|
+
if value is not None:
|
|
44
|
+
params[key] = value
|
|
45
|
+
|
|
46
|
+
# 构建请求头
|
|
47
|
+
headers = {"Content-Type": "application/json"}
|
|
48
|
+
|
|
49
|
+
# 发起 HTTP 请求
|
|
50
|
+
async with session.delete(
|
|
51
|
+
url, params=params, headers=headers
|
|
52
|
+
) as response:
|
|
53
|
+
if response.status >= 400:
|
|
54
|
+
error_data = await response.json()
|
|
55
|
+
if response.status == 422:
|
|
56
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=422,
|
|
59
|
+
error=error_model,
|
|
60
|
+
**error_data
|
|
61
|
+
)
|
|
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)
|