Η διασύνδεση υποστηρίζει βάσεις δεδομένων MySQL, MariaDB και SQL Server.
Η διεύθυνση IP του server της βάσης δεδομένων.
Π.χ. 198.51.100.0.
Η θύρα σύνδεσης της βάσης δεδομένων.
Π.χ. 3306 για MySQL/MariaDB ή 1433 για SQL Server.
Το όνομα της βάσης δεδομένων.
Π.χ. example_db.
Το όνομα χρήστη για την σύνδεση στη βάση δεδομένων.
Π.χ. demo.
Ο κωδικός πρόσβασης για την σύνδεση στη βάση δεδομένων.
Π.χ. secret.
Η κωδικοποίηση χαρακτήρων της βάσης δεδομένων.
Π.χ. utf8mb4.
Η ταξινόμηση χαρακτήρων της βάσης δεδομένων.
Π.χ. utf8mb4_unicode_ci.
Το αρχείο πιστοποιητικού CA για την σύνδεση στη βάση δεδομένων μέσω SSL. Π.χ. ca-cert.pem.
Το αρχείο δημόσιου κλειδιού πελάτη για την σύνδεση στη βάση δεδομένων μέσω SSL. Π.χ. client-cert.pem.
Το αρχείο ιδιωτικού κλειδιού πελάτη για την σύνδεση στη βάση δεδομένων μέσω SSL. Π.χ. client-key.pem.
Ενεργοποίηση ή απενεργοποίηση της επαλήθευσης του peer κατά την σύνδεση στη βάση δεδομένων μέσω SSL.
Το όνομα της στήλης που θα χρησιμοποιηθεί για φιλτράρισμα των δεδομένων με βάση την ημερομηνία.
Π.χ. updated_at.
Απαιτούνται 3 πίνακες: ένας για τα προϊόντα, ένας για τις τιμές και ένας για τα αποθέματα. Στο Magento μπορεί να προστεθεί και ένας τέταρτος, προαιρετικός πίνακας για τις τιμές πελατών. Οι στήλες και τα δεδομένα που χρειάζονται για την εισαγωγή περιγράφονται στις αντίστοιχες ενότητες για το Magento και το WooCommerce.
Για να γίνει η λήψη των differentials, το Sébastien στέλνει ερωτήματα φιλτράροντας με την πιο πρόσφατη ημερομηνία της τελευταίας ενημέρωσης που βρέθηκε στη στήλη που έχει οριστεί για την ημερομηνία ενημέρωσης. Η βάση δεδομένων θα πρέπει να επιστρέφει μόνο τα δεδομένα που έχουν ενημερωθεί μετά από αυτή την ημερομηνία. Σε περίπτωση που δε σταλεί κριτήριο με ημερομηνία, τότε θα πρέπει να επιστραφούν όλα τα δεδομένα. Για ταχύτερη αναζήτηση συνιστάται η χρήση ευρετηρίων (index) στις στήλες ημερομηνίας.
Κάθε αλλαγή πρέπει να καταγράφεται στον πίνακα που αντιστοιχεί στο πεδίο που άλλαξε, ενημερώνοντας και τη στήλη ημερομηνίας ενημέρωσης:
CREATE TABLE `products` (
`attribute_set` VARCHAR(255) NULL,
`backorders` TINYINT(1) NULL,
`category_ids` VARCHAR(255) NULL,
`code` VARCHAR(255) NULL,
`color` VARCHAR(255) NULL,
`crosssell_skus` VARCHAR(255) NULL,
`media_gallery` TEXT NULL,
`min_sale_qty` DECIMAL(12, 4) NULL,
`name` VARCHAR(255) NULL,
`price` DECIMAL(20, 6) NULL,
`qty_increments` DECIMAL(12, 4) NULL,
`quantity` DECIMAL(12, 4) NULL,
`related_skus` VARCHAR(255) NULL,
`size` VARCHAR(255) NULL,
`sku` VARCHAR(255) NOT NULL,
`special_price` DECIMAL(20, 6) NULL,
`status` TINYINT(1) NULL,
`upsell_skus` VARCHAR(255) NULL,
`visibility` TINYINT(1) NULL,
`website_ids` VARCHAR(255) NULL,
`weight` DECIMAL(12, 4) NULL,
`updated_at` TIMESTAMP NULL,
INDEX `products_updated_at_index` (`updated_at`)
);
| sku | name | code | size | color | status | visibility | price | quantity | category_ids | updated_at |
|---|---|---|---|---|---|---|---|---|---|---|
| TSHIRT-RED-M | T-Shirt Κόκκινο Medium | TSHIRT-RED | M | Red | 1 | 1 | 29.990000 | 150.0000 | Men > Clothing > T-Shirts, Men > New Arrivals | 2025-12-05 10:30:00 |
| TSHIRT-RED-L | T-Shirt Κόκκινο Large | TSHIRT-RED | L | Red | 1 | 1 | 29.990000 | 75.0000 | Men > Clothing > T-Shirts, Men > New Arrivals | 2025-12-05 10:30:00 |
| LAPTOP-PRO-2025 | Professional Laptop 2025 | NULL | NULL | NULL | 1 | 4 | 1299.000000 | 25.0000 | Electronics > Computers, Best Sellers | 2025-12-05 14:20:00 |
CREATE TABLE `products` (
`woocommerce_id` BIGINT UNSIGNED NULL,
`backorders` VARCHAR(255) NULL,
`brands` VARCHAR(255) NULL,
`catalog_visibility` VARCHAR(255) NULL,
`categories` VARCHAR(255) NULL,
`code` VARCHAR(255) NULL,
`color` VARCHAR(255) NULL,
`cross_sell_ids` VARCHAR(255) NULL,
`date_on_sale_from` DATETIME NULL,
`date_on_sale_to` DATETIME NULL,
`description` TEXT NULL,
`downloadable` TINYINT(1) NULL,
`featured` TINYINT(1) NULL,
`global_unique_id` VARCHAR(255) NULL,
`height` DECIMAL(10, 2) NULL,
`images` TEXT NULL,
`length` DECIMAL(10, 2) NULL,
`manage_stock` TINYINT(1) NULL,
`name` VARCHAR(255) NULL,
`purchase_note` TEXT NULL,
`regular_price` DECIMAL(10, 2) NULL,
`reviews_allowed` TINYINT(1) NULL,
`sale_price` DECIMAL(10, 2) NULL,
`shipping_class` VARCHAR(255) NULL,
`short_description` VARCHAR(255) NULL,
`size` VARCHAR(255) NULL,
`slug` VARCHAR(255) NULL,
`sold_individually` TINYINT(1) NULL,
`sku` VARCHAR(255) NOT NULL,
`status` VARCHAR(255) NULL,
`stock_quantity` INT NULL,
`stock_status` VARCHAR(255) NULL,
`tax_class` VARCHAR(255) NULL,
`tax_status` VARCHAR(255) NULL,
`type` VARCHAR(255) NULL,
`upsell_ids` VARCHAR(255) NULL,
`virtual` TINYINT(1) NULL,
`weight` DECIMAL(10, 2) NULL,
`width` DECIMAL(10, 2) NULL,
`updated_at` TIMESTAMP NULL,
INDEX `products_updated_at_index` (`updated_at`)
);
| sku | name | code | size | status | regular_price | stock_quantity | manage_stock | categories | updated_at |
|---|---|---|---|---|---|---|---|---|---|
| SHOE-NIKE-42 | Nike Air Max No 42 | SHOE-NIKE | 42 | publish | 89.99 | 45 | 1 | shoes,sports | 2025-12-05 09:15:00 |
| SHOE-NIKE-43 | Nike Air Max No 43 | SHOE-NIKE | 43 | publish | 89.99 | 32 | 1 | shoes,sports | 2025-12-05 09:15:00 |
| BOOK-PHP-2025 | PHP Programming Guide | NULL | NULL | publish | 45.00 | NULL | 0 | books,programming | 2025-12-05 11:30:00 |
CREATE TABLE `prices` (
`price` DECIMAL(20, 6) NULL,
`sku` VARCHAR(255) NOT NULL,
`special_price` DECIMAL(20, 6) NULL,
`special_from_date` DATE NULL,
`special_to_date` DATE NULL,
`tier_prices` TEXT NULL,
`updated_at` TIMESTAMP NULL,
INDEX `prices_updated_at_index` (`updated_at`)
);
| sku | price | special_price | special_from_date | special_to_date | tier_prices | updated_at |
|---|---|---|---|---|---|---|
| TSHIRT-RED-M | 29.990000 | 24.990000 | 2025-12-01 | 2025-12-31 | NULL | 2025-12-05 08:00:00 |
| LAPTOP-PRO-2025 | 1299.000000 | NULL | NULL | NULL | group_a,10,1199,0|group_b,50,1099,0 | 2025-12-05 10:15:00 |
| CHAIR-OFFICE-BLK | 159.990000 | 139.990000 | 2025-12-05 | 2025-12-15 | group_a,5,129.99,0 | 2025-12-05 14:30:00 |
CREATE TABLE `prices` (
`woocommerce_id` BIGINT UNSIGNED NULL,
`date_on_sale_from` DATETIME NULL,
`date_on_sale_to` DATETIME NULL,
`regular_price` DECIMAL(10, 2) NULL,
`sale_price` DECIMAL(10, 2) NULL,
`sku` VARCHAR(255) NOT NULL,
`updated_at` TIMESTAMP NULL,
INDEX `prices_updated_at_index` (`updated_at`)
);
| sku | regular_price | sale_price | date_on_sale_from | date_on_sale_to | updated_at |
|---|---|---|---|---|---|
| SHOE-NIKE-42 | 89.99 | 69.99 | 2025-12-01 00:00:00 | 2025-12-31 23:59:59 | 2025-12-05 09:00:00 |
| SHOE-NIKE-43 | 89.99 | 69.99 | 2025-12-01 00:00:00 | 2025-12-31 23:59:59 | 2025-12-05 09:00:00 |
| BOOK-PHP-2025 | 45.00 | NULL | NULL | NULL | 2025-12-05 11:30:00 |
CREATE TABLE `stocks` (
`backorders` TINYINT NULL,
`is_in_stock` TINYINT(1) NULL,
`min_quantity` DECIMAL(12, 4) NULL,
`quantity` DECIMAL(12, 4) NULL,
`sku` VARCHAR(255) NOT NULL,
`updated_at` TIMESTAMP NULL,
INDEX `stocks_updated_at_index` (`updated_at`)
);
| sku | quantity | min_quantity | backorders | is_in_stock | updated_at |
|---|---|---|---|---|---|
| TSHIRT-RED-M | 150.0000 | 5.0000 | NULL | NULL | 2025-12-05 10:30:00 |
| TSHIRT-RED-L | 75.0000 | 5.0000 | NULL | NULL | 2025-12-05 10:30:00 |
| LAPTOP-PRO-2025 | 25.0000 | 2.0000 | NULL | NULL | 2025-12-05 14:20:00 |
| CHAIR-OFFICE-BLK | 0.0000 | 10.0000 | 2 | 1 | 2025-12-05 16:45:00 |
CREATE TABLE `stocks` (
`woocommerce_id` BIGINT UNSIGNED NULL,
`sku` VARCHAR(255) NOT NULL,
`stock_quantity` INT NULL,
`stock_status` VARCHAR(255) NULL,
`stock_threshold` INT NULL,
`updated_at` TIMESTAMP NULL,
INDEX `stocks_updated_at_index` (`updated_at`)
);
| sku | stock_quantity | stock_status | stock_threshold | updated_at |
|---|---|---|---|---|
| SHOE-NIKE-42 | 45.00 | instock | 5.00 | 2025-12-05 09:15:00 |
| SHOE-NIKE-43 | 32.00 | instock | 5.00 | 2025-12-05 09:15:00 |
| BOOK-PHP-2025 | NULL | NULL | NULL | 2025-12-05 11:30:00 |
| HEADPHONES-BT | -5.00 | onbackorder | 10.00 | 2025-12-05 15:20:00 |
CREATE TABLE `customer_prices` (
`amount` DECIMAL(20, 6) NOT NULL,
`attribute_code` VARCHAR(255) NULL,
`attribute_option` VARCHAR(255) NULL,
`category_ids` VARCHAR(255) NULL,
`email` VARCHAR(255) NULL,
`price_type` TINYINT NOT NULL,
`sku` VARCHAR(255) NULL,
`taxvat` VARCHAR(255) NULL,
`tier_quantity` INT NULL,
`valid_from` DATE NULL,
`valid_to` DATE NULL,
`updated_at` TIMESTAMP NULL,
INDEX `customer_prices_updated_at_index` (`updated_at`)
);
| taxvat | sku | category_ids | attribute_code | attribute_option | price_type | amount | tier_quantity | valid_from | valid_to | updated_at | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| customer@example.com | NULL | TSHIRT-RED-M | NULL | NULL | NULL | 0 | 24.990000 | NULL | NULL | NULL | 2025-12-05 08:00:00 |
| NULL | 123456789 | NULL | Men > Clothing > T-Shirts | NULL | NULL | 1 | 10.000000 | NULL | 2025-12-01 | 2025-12-31 | 2025-12-05 09:30:00 |
| NULL | 123456789 | NULL | NULL | color | Red | 2 | 5.000000 | 10 | NULL | NULL | 2025-12-05 10:15:00 |
Απαιτούνται 4 πίνακες: ένας για τα στοιχεία της παραγγελίας, ένας για τα προϊόντα της παραγγελίας, ένας για τα σχόλια της παραγγελίας, και ένας για την κατάσταση της παραγγελίας.
Οι 3 πρώτοι πίνακες ενημερώνονται όταν υπάρχει νέα παραγγελία ή όταν αλλάζει η παραγγελία από το Magento ή το WooCommerce. Ο πίνακας της κατάστασης της παραγγελίας ενημερώνεται μόνο όταν αλλάζει η κατάσταση της παραγγελίας από το ERP.
CREATE TABLE `orders` (
`id` BIGINT UNSIGNED NOT NULL,
`billing_address_city` VARCHAR(255) NOT NULL,
`billing_address_company` VARCHAR(255) NULL,
`billing_address_country_id` VARCHAR(255) NOT NULL,
`billing_address_email` VARCHAR(255) NULL,
`billing_address_firstname` VARCHAR(255) NULL,
`billing_address_lastname` VARCHAR(255) NULL,
`billing_address_postcode` VARCHAR(255) NOT NULL,
`billing_address_region` VARCHAR(255) NULL,
`billing_address_street` JSON NOT NULL,
`billing_address_telephone` VARCHAR(255) NULL,
`billing_address_vat_id` VARCHAR(255) NULL,
`coupon_code` VARCHAR(255) NULL,
`customer_email` VARCHAR(255) NOT NULL,
`customer_firstname` VARCHAR(255) NULL,
`customer_id` INT UNSIGNED NULL,
`customer_lastname` VARCHAR(255) NULL,
`customer_note` TEXT NULL,
`discount_amount` DECIMAL(20,4) NULL,
`extension_attributes` JSON NULL,
`grand_total` DECIMAL(20,4) NOT NULL,
`increment_id` VARCHAR(255) NULL,
`payment_method` VARCHAR(255) NOT NULL,
`shipping_address_city` VARCHAR(255) NOT NULL,
`shipping_address_company` VARCHAR(255) NULL,
`shipping_address_country_id` VARCHAR(255) NOT NULL,
`shipping_address_email` VARCHAR(255) NULL,
`shipping_address_firstname` VARCHAR(255) NULL,
`shipping_address_lastname` VARCHAR(255) NULL,
`shipping_address_postcode` VARCHAR(255) NOT NULL,
`shipping_address_region` VARCHAR(255) NULL,
`shipping_address_street` JSON NOT NULL,
`shipping_address_telephone` VARCHAR(255) NULL,
`shipping_address_vat_id` VARCHAR(255) NULL,
`shipping_amount` DECIMAL(20,4) NULL,
`shipping_incl_tax` DECIMAL(20,4) NULL,
`shipping_method` VARCHAR(255) NULL,
`shipping_tax_amount` DECIMAL(20,4) NULL,
`state` VARCHAR(255) NULL,
`status` VARCHAR(255) NULL,
`subtotal` DECIMAL(20,4) NULL,
`tax_amount` DECIMAL(20,4) NULL,
`total_due` DECIMAL(20,4) NULL,
`total_paid` DECIMAL(20,4) NULL,
`total_refunded` DECIMAL(20,4) NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| id | increment_id | customer_email | customer_firstname | customer_id | customer_lastname | billing_address_firstname | billing_address_lastname | billing_address_company | billing_address_street | billing_address_city | billing_address_region | billing_address_postcode | billing_address_country_id | billing_address_telephone | billing_address_email | billing_address_vat_id | shipping_address_firstname | shipping_address_lastname | shipping_address_company | shipping_address_street | shipping_address_city | shipping_address_region | shipping_address_postcode | shipping_address_country_id | shipping_address_telephone | shipping_address_email | shipping_address_vat_id | payment_method | shipping_method | coupon_code | customer_note | state | status | subtotal | discount_amount | shipping_amount | shipping_incl_tax | shipping_tax_amount | tax_amount | grand_total | total_paid | total_refunded | total_due | extension_attributes | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12345 | 000012345 | john.doe@example.com | John | 1024 | Doe | John | Doe | NULL | ["Ermou 15"] | Athens | Attica | 11523 | GR | +302101234567 | john.doe@example.com | NULL | John | Doe | NULL | ["Ermou 15"] | Athens | Attica | 11523 | GR | +302101234567 | john.doe@example.com | NULL | banktransfer | flatrate_flatrate | NULL | NULL | processing | processing | 127.4000 | 0.0000 | 5.0000 | 6.2000 | 1.2000 | 30.5000 | 157.9000 | 157.9000 | 0.0000 | 0.0000 | {"erp_id": "ORD-2025-001", "warehouse": "ATH-01"} | 2025-12-05 10:30:15 | 2025-12-05 10:30:15 |
| 12346 | 000012346 | maria.smith@example.com | Maria | NULL | Smith | Maria | Smith | Acme Corp | ["Tsimiski 25","2nd Floor"] | Thessaloniki | Central Macedonia | 54622 | GR | +302310987654 | maria.smith@example.com | EL123456789 | Anna | Papadopoulou | NULL | ["Egnatia 100"] | Thessaloniki | Central Macedonia | 54630 | GR | +302310555444 | anna.p@example.com | NULL | cashondelivery | tablerate_bestway | SUMMER2025 | Please call before delivery | complete | complete | 72.5700 | 7.2600 | 3.5000 | 4.3400 | 0.8400 | 17.4200 | 89.9900 | 89.9900 | 0.0000 | 0.0000 | {"erp_id": "ORD-2025-002", "warehouse": "TSK-01", "priority": "high"} | 2025-12-05 11:15:00 | 2025-12-05 15:30:00 |
CREATE TABLE `orders` (
`id` BIGINT UNSIGNED NOT NULL,
`number` VARCHAR(255) NOT NULL,
`status` VARCHAR(255) NOT NULL,
`currency` CHAR(3) NOT NULL,
`discount_total` DECIMAL(10,2) NOT NULL,
`discount_tax` DECIMAL(10,2) NOT NULL,
`shipping_total` DECIMAL(10,2) NOT NULL,
`shipping_tax` DECIMAL(10,2) NOT NULL,
`cart_tax` DECIMAL(10,2) NOT NULL,
`total` DECIMAL(10,2) NOT NULL,
`total_tax` DECIMAL(10,2) NOT NULL,
`prices_include_tax` TINYINT(1) NOT NULL,
`customer_id` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`customer_note` VARCHAR(255) NULL,
`billing_first_name` VARCHAR(255) NOT NULL,
`billing_last_name` VARCHAR(255) NOT NULL,
`billing_company` VARCHAR(255) NOT NULL,
`billing_address_1` VARCHAR(255) NOT NULL,
`billing_address_2` VARCHAR(255) NOT NULL,
`billing_city` VARCHAR(255) NOT NULL,
`billing_postcode` VARCHAR(255) NOT NULL,
`billing_state_code` VARCHAR(255) NOT NULL,
`billing_state_name` VARCHAR(255) NOT NULL,
`billing_country` CHAR(2) NOT NULL,
`billing_email` VARCHAR(255) NOT NULL,
`billing_phone` VARCHAR(255) NOT NULL,
`shipping_first_name` VARCHAR(255) NOT NULL,
`shipping_last_name` VARCHAR(255) NOT NULL,
`shipping_company` VARCHAR(255) NOT NULL,
`shipping_address_1` VARCHAR(255) NOT NULL,
`shipping_address_2` VARCHAR(255) NOT NULL,
`shipping_city` VARCHAR(255) NOT NULL,
`shipping_postcode` VARCHAR(255) NOT NULL,
`shipping_state_code` VARCHAR(255) NOT NULL,
`shipping_state_name` VARCHAR(255) NOT NULL,
`shipping_country` CHAR(2) NOT NULL,
`shipping_phone` VARCHAR(255) NOT NULL,
`payment_method` VARCHAR(255) NOT NULL,
`payment_method_title` VARCHAR(255) NOT NULL,
`shipping_method` VARCHAR(255) NOT NULL,
`shipping_method_title` VARCHAR(255) NOT NULL,
`transaction_id` VARCHAR(255) NOT NULL,
`metadata` JSON NULL,
`date_paid` DATETIME NULL,
`date_completed` DATETIME NULL,
`coupon_code` VARCHAR(255) NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| id | number | status | currency | customer_id | customer_note | billing_first_name | billing_last_name | billing_company | billing_address_1 | billing_address_2 | billing_city | billing_state_code | billing_state_name | billing_postcode | billing_country | billing_email | billing_phone | shipping_first_name | shipping_last_name | shipping_company | shipping_address_1 | shipping_address_2 | shipping_city | shipping_state_code | shipping_state_name | shipping_postcode | shipping_country | shipping_phone | payment_method | payment_method_title | shipping_method | shipping_method_title | transaction_id | coupon_code | discount_total | discount_tax | shipping_total | shipping_tax | cart_tax | total_tax | total | prices_include_tax | date_paid | date_completed | metadata | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5678 | 5678 | processing | EUR | 123 | NULL | George | Karamanlis | 25th August Street 45 | Heraklion | 71201 | GR | george.k@example.com | +302810123456 | George | Karamanlis | 25th August Street 45 | Heraklion | 71201 | GR | +302810123456 | bacs | Direct Bank Transfer | flat_rate | Flat Rate | TXN-2025-5678 | NULL | 0.00 | 0.00 | 5.00 | 1.20 | 35.19 | 36.39 | 179.98 | 0 | 2025-12-05 09:25:00 | NULL | {"_erp_order_id": "WC-2025-5678", "_warehouse_code": "HER-01"} | 2025-12-05 09:20:00 | 2025-12-05 09:25:00 | ||||||||
| 5679 | 5679 | completed | EUR | 0 | Gift wrap please | Elena | Papadopoulou | Agiou Nikolaou 12 | Apt 3B | Patras | 26221 | GR | elena.p@example.com | +302610654321 | Kostas | Nikolaou | Korinthou 88 | Patras | 26335 | GR | +302610777888 | cod | Cash on Delivery | free_shipping | Free Shipping | BOOK10 | 4.50 | 1.08 | 0.00 | 0.00 | 8.64 | 9.72 | 45.00 | 0 | 2025-12-05 10:50:00 | 2025-12-05 15:30:00 | {"_erp_order_id": "WC-2025-5679", "_warehouse_code": "PTR-01", "_gift_message": "Happy Birthday!"} | 2025-12-05 10:45:00 | 2025-12-05 15:30:00 |
CREATE TABLE `order_items` (
`id` BIGINT UNSIGNED NOT NULL,
`order_id` BIGINT UNSIGNED NOT NULL,
`discount_amount` DECIMAL(20,4) NULL,
`discount_percent` DECIMAL(12,4) NULL,
`extension_attributes` JSON NULL,
`name` VARCHAR(255) NULL,
`original_price` DECIMAL(20,4) NULL,
`price` DECIMAL(20,4) NULL,
`qty_canceled` DECIMAL(12,4) NULL,
`qty_invoiced` DECIMAL(12,4) NULL,
`qty_ordered` DECIMAL(12,4) NULL,
`qty_refunded` DECIMAL(12,4) NULL,
`qty_shipped` DECIMAL(12,4) NULL,
`row_total` DECIMAL(20,4) NULL,
`row_total_incl_tax` DECIMAL(20,4) NULL,
`sku` VARCHAR(255) NULL,
`tax_amount` DECIMAL(20,4) NULL,
`tax_percent` DECIMAL(12,4) NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| id | order_id | sku | name | original_price | price | discount_percent | discount_amount | qty_ordered | qty_invoiced | qty_shipped | qty_refunded | qty_canceled | row_total | row_total_incl_tax | tax_percent | tax_amount | extension_attributes | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 98765 | 12345 | TSHIRT-RED-M | T-Shirt Κόκκινο Medium | 29.9900 | 24.9900 | 16.6700 | 10.0000 | 2.0000 | 2.0000 | 2.0000 | 0.0000 | 0.0000 | 49.9800 | 61.9752 | 24.0000 | 11.9952 | {"color": "Red", "size": "M"} | 2025-12-05 10:30:15 | 2025-12-05 10:30:15 |
| 98766 | 12345 | LAPTOP-PRO-2025 | Professional Laptop 2025 | 1299.0000 | 1199.0000 | 7.6982 | 100.0000 | 1.0000 | 1.0000 | 0.0000 | 0.0000 | 0.0000 | 1199.0000 | 1486.7600 | 24.0000 | 287.7600 | {"warranty": "2 years", "serial_number": "LP2025-12345"} | 2025-12-05 10:30:15 | 2025-12-05 10:30:15 |
| 98767 | 12346 | TSHIRT-RED-L | T-Shirt Κόκκινο Large | 29.9900 | 24.9900 | 16.6700 | 5.0000 | 1.0000 | 1.0000 | 1.0000 | 0.0000 | 0.0000 | 24.9900 | 30.9876 | 24.0000 | 5.9976 | {"color": "Red", "size": "L"} | 2025-12-05 11:15:00 | 2025-12-05 15:30:00 |
CREATE TABLE `order_items` (
`id` BIGINT UNSIGNED NOT NULL,
`order_id` BIGINT UNSIGNED NOT NULL,
`product_id` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`variation_id` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`name` VARCHAR(255) NOT NULL,
`quantity` INT UNSIGNED NOT NULL,
`tax_class` VARCHAR(255) NOT NULL,
`subtotal` DECIMAL(10,2) NOT NULL,
`subtotal_tax` DECIMAL(10,2) NOT NULL,
`total` DECIMAL(10,2) NOT NULL,
`total_tax` DECIMAL(10,2) NOT NULL,
`metadata` JSON NULL,
`sku` VARCHAR(255) NULL,
`price` DECIMAL(10,2) NOT NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| id | order_id | product_id | variation_id | sku | name | quantity | price | subtotal | subtotal_tax | total | total_tax | tax_class | metadata | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 45678 | 5678 | 1234 | 5678 | SHOE-NIKE-42 | Nike Air Max No 42 | 2 | 69.99 | 139.98 | 33.60 | 139.98 | 33.60 | standard | {"pa_size": "42", "pa_color": "Black"} | 2025-12-05 09:20:00 | 2025-12-05 09:20:00 |
| 45679 | 5678 | 2345 | 0 | BOOK-PHP-2025 | PHP Programming Guide | 1 | 4.41 | 4.41 | 1.06 | 4.41 | 1.06 | reduced-rate | {"_isbn": "978-1234567890"} | 2025-12-05 09:20:00 | 2025-12-05 09:20:00 |
| 45680 | 5679 | 2345 | 0 | BOOK-PHP-2025 | PHP Programming Guide | 1 | 36.00 | 40.50 | 9.72 | 36.00 | 8.64 | reduced-rate | {"_isbn": "978-1234567890", "_edition": "2nd"} | 2025-12-05 10:45:00 | 2025-12-05 10:45:00 |
CREATE TABLE `order_notes` (
`id` BIGINT UNSIGNED NOT NULL,
`order_id` BIGINT UNSIGNED NOT NULL,
`comment` TEXT NOT NULL,
`is_customer_notified` TINYINT(1) NULL,
`status` VARCHAR(255) NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| id | order_id | comment | is_customer_notified | status | created_at | updated_at |
|---|---|---|---|---|---|---|
| 1001 | 12345 | Order confirmed by customer | 1 | processing | 2025-12-05 10:30:15 | 2025-12-05 10:30:15 |
| 1002 | 12345 | Payment received | 0 | processing | 2025-12-05 10:35:00 | 2025-12-05 10:35:00 |
| 1003 | 12346 | Package delivered successfully | 1 | complete | 2025-12-05 14:20:00 | 2025-12-05 14:20:00 |
CREATE TABLE `order_notes` (
`id` BIGINT UNSIGNED NOT NULL,
`order_id` BIGINT UNSIGNED NOT NULL,
`author` VARCHAR(255) NOT NULL,
`note` TEXT NOT NULL,
`customer_note` TINYINT(1) NULL,
`added_by_user` TINYINT(1) NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| id | order_id | author | note | customer_note | added_by_user | created_at | updated_at |
|---|---|---|---|---|---|---|---|
| 2001 | 5678 | WooCommerce | Order status changed to Processing | 0 | 0 | 2025-12-05 09:20:00 | 2025-12-05 09:20:00 |
| 2002 | 5678 | admin | Payment verified manually | 0 | 1 | 2025-12-05 09:25:00 | 2025-12-05 09:25:00 |
| 2003 | 5679 | WooCommerce | Order completed and delivered | 1 | 0 | 2025-12-05 15:30:00 | 2025-12-05 15:30:00 |
Αυτός ο πίνακας θα ενημερώνεται από την πλευρά του ERP, και έπειτα το Sébastien θα ενημερώνει την κατάσταση της παραγγελίας στο Magento ή στο WooCommerce.
Η στήλη order_id είναι το ID της παραγγελίας στο e-shop, δηλαδή η στήλη id του πίνακα παραγγελιών. Εγγραφές με order_id που δεν αντιστοιχεί σε παραγγελία αγνοούνται.
Το Sébastien διαβάζει μόνο τις εγγραφές που έχουν updated_at μεταγενέστερο από τον τελευταίο έλεγχο. Γι' αυτό η στήλη updated_at πρέπει να συμπληρώνεται σε κάθε νέα εγγραφή και να ενημερώνεται σε κάθε αλλαγή, διαφορετικά η εγγραφή δεν θα ληφθεί υπόψη.
Η στήλη status μπορεί να έχει μόνο μία από τις εξής τιμές: invoiced, shipped, complete, canceled.
CREATE TABLE `order_statuses` (
`order_id` BIGINT UNSIGNED NOT NULL,
`status` VARCHAR(255) NOT NULL,
`carrier_code` VARCHAR(255) NULL,
`carrier_title` VARCHAR(255) NULL,
`track_number` VARCHAR(255) NULL,
`notify_invoice` TINYINT(1) NULL,
`notify_shipment` TINYINT(1) NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| order_id | status | carrier_code | carrier_title | track_number | notify_invoice | notify_shipment | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|
| 12345 | invoiced | NULL | NULL | NULL | 1 | NULL | 2025-12-05 10:30:15 | 2025-12-05 10:30:15 |
| 12346 | shipped | acs | ACS Courier | ACS123456789 | 1 | 1 | 2025-12-05 11:45:22 | 2025-12-05 14:20:10 |
| 12347 | complete | elta | ELTA Courier | ELTA987654321 | 1 | 1 | 2025-12-04 09:15:33 | 2025-12-05 16:50:45 |
| 12348 | canceled | NULL | NULL | NULL | NULL | NULL | 2025-12-05 08:20:00 | 2025-12-05 08:25:18 |
Η στήλη status μπορεί να έχει μόνο μία από τις εξής τιμές: shipped, complete, canceled.
CREATE TABLE `order_statuses` (
`order_id` BIGINT UNSIGNED NOT NULL,
`status` VARCHAR(255) NOT NULL,
`shipping_method_id` VARCHAR(255) NULL,
`shipping_method_title` VARCHAR(255) NULL,
`tracking_number` VARCHAR(255) NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
);
| order_id | status | shipping_method_id | shipping_method_title | tracking_number | created_at | updated_at |
|---|---|---|---|---|---|---|
| 5679 | shipped | flat_rate | Flat Rate Shipping | ACS123456789 | 2025-12-05 11:45:22 | 2025-12-05 14:20:10 |
| 5680 | complete | free_shipping | Free Shipping | ELTA987654321 | 2025-12-04 09:15:33 | 2025-12-05 16:50:45 |
| 5681 | canceled | NULL | NULL | NULL | 2025-12-05 08:20:00 | 2025-12-05 08:25:18 |